From 7c3c8d373a4cca5191449e51fc061fd33a87f4e4 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Fri, 8 Sep 2023 18:38:18 -0700 Subject: [PATCH 01/17] feat: add multiple save for redis registry Signed-off-by: s0nicboOm --- dump.rdb | Bin 0 -> 170113 bytes examples/multi_udf/src/udf/inference.py | 2 +- numalogic/config/_config.py | 4 +- numalogic/connectors/druid.py | 2 +- numalogic/registry/redis_registry.py | 81 +- numalogic/udfs/entities.py | 3 + numalogic/udfs/inference.py | 52 +- numalogic/udfs/tools.py | 38 +- numalogic/udfs/trainer.py | 94 +- poetry.lock | 1231 +++++++++++++---------- pyproject.toml | 2 +- tests/registry/test_redis_registry.py | 14 +- tests/udfs/test_inference.py | 6 +- tests/udfs/test_postprocess.py | 11 +- tests/udfs/utility.py | 14 +- 15 files changed, 924 insertions(+), 630 deletions(-) create mode 100644 dump.rdb diff --git a/dump.rdb b/dump.rdb new file mode 100644 index 0000000000000000000000000000000000000000..de02a76c32697f8862e912041f2748274ba47219 GIT binary patch literal 170113 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 LqR@NmY_b0j=5|2Y literal 0 HcmV?d00001 diff --git a/examples/multi_udf/src/udf/inference.py b/examples/multi_udf/src/udf/inference.py index 179e4b73..17dd8a23 100644 --- a/examples/multi_udf/src/udf/inference.py +++ b/examples/multi_udf/src/udf/inference.py @@ -61,7 +61,7 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: LOGGER.info("%s - Inference complete", payload.uuid) else: # If model not found, set status as not found - LOGGER.warning("%s - Model not found", payload.uuid) + LOGGER.exception("%s - Model not found", payload.uuid) payload.is_artifact_valid = False # Convert Payload back to bytes and conditional forward to threshold vertex diff --git a/numalogic/config/_config.py b/numalogic/config/_config.py index cd33d484..e9059637 100644 --- a/numalogic/config/_config.py +++ b/numalogic/config/_config.py @@ -83,7 +83,9 @@ class TrainerConf: class NumalogicConf: """Top level config schema for numalogic.""" - model: ModelInfo = field(default_factory=ModelInfo) + model: ModelInfo = field( + default_factory=lambda: ModelInfo(name="VanillaAE", conf={"n_features": 2, "seq_len": 10}) + ) trainer: TrainerConf = field(default_factory=TrainerConf) preprocess: list[ModelInfo] = field(default_factory=list) threshold: ModelInfo = field(default_factory=lambda: ModelInfo(name="StdDevThreshold")) diff --git a/numalogic/connectors/druid.py b/numalogic/connectors/druid.py index 9e329259..7bf3ea1d 100644 --- a/numalogic/connectors/druid.py +++ b/numalogic/connectors/druid.py @@ -48,7 +48,7 @@ def fetch_data( end_dt = datetime.now(pytz.utc) start_dt = end_dt - timedelta(hours=hours) - intervals = f"{start_dt.isoformat()}/{end_dt.isoformat()}" + intervals = [f"{start_dt.isoformat()}/{end_dt.isoformat()}"] params = { "datasource": datasource, diff --git a/numalogic/registry/redis_registry.py b/numalogic/registry/redis_registry.py index 9ef98e34..e0369403 100644 --- a/numalogic/registry/redis_registry.py +++ b/numalogic/registry/redis_registry.py @@ -33,6 +33,8 @@ class RedisRegistry(ArtifactManager): client: Take in the redis client already established/created ttl: Total Time to Live (in seconds) for the key when saving in redis (dafault = 604800) cache_registry: Cache registry to use (default = None). + transactional: Flag to indicate if the registry should be transactional or + not (default = False). Examples -------- @@ -48,18 +50,20 @@ class RedisRegistry(ArtifactManager): >>> loaded_artifact = registry.load(skeys, dkeys) """ - __slots__ = ("client", "ttl", "cache_registry") + __slots__ = ("client", "ttl", "cache_registry", "transactional") def __init__( self, client: redis_client_t, ttl: int = 604800, cache_registry: Optional[ArtifactCache] = None, + transactional: bool = True, ): super().__init__("") self.client = client self.ttl = ttl self.cache_registry = cache_registry + self.transactional = transactional @staticmethod def construct_key(skeys: KEYS, dkeys: KEYS) -> str: @@ -171,6 +175,7 @@ def __load_latest_artifact(self, key: str) -> tuple[ArtifactData, bool]: def __load_version_artifact(self, version: str, key: str) -> ArtifactData: model_key = self.__construct_version_key(key, version) + print(model_key) if not self.client.exists(model_key): raise ModelKeyNotFound("Could not find model key with key: %s" % model_key) return self.__get_artifact_data( @@ -178,7 +183,7 @@ def __load_version_artifact(self, version: str, key: str) -> ArtifactData: ) def __save_artifact( - self, pipe, artifact: artifact_t, metadata: META_T, key: KEYS, version: str + self, pipe, artifact: artifact_t, key: KEYS, version: str, **metadata: META_T ) -> str: new_version_key = self.__construct_version_key(key, version) latest_key = self.__construct_latest_key(key) @@ -210,6 +215,8 @@ def load( is needed to load the respective artifact. If cache registry is provided, it will first check the cache registry for the artifact. + If latest is passed, latest key is saved otherwise version call saves the respective + version artifact in cache. Args: ---- @@ -239,7 +246,15 @@ def load( except RedisError as err: raise RedisRegistryError(f"{err.__class__.__name__} raised") from err else: - if (not is_cached) and latest: + if not is_cached: + if latest: + _LOGGER.info("Saving %s, in cache as %s", self.__construct_latest_key(key), key) + else: + _LOGGER.info( + "Saving %s, in cache as %s", + self.__construct_version_key(key, version), + key, + ) self._save_in_cache(key, artifact_data) return artifact_data @@ -248,6 +263,7 @@ def save( skeys: KEYS, dkeys: KEYS, artifact: artifact_t, + pipe=None, **metadata: META_VT, ) -> Optional[str]: """Saves the artifact into redis registry and updates version. @@ -275,10 +291,16 @@ def save( _LOGGER.debug("Latest key: %s exists for the model", latest_key) version_key = self.client.get(name=latest_key) version = int(self.get_version(version_key.decode())) + 1 - with self.client.pipeline() as pipe: - new_version_key = self.__save_artifact(pipe, artifact, metadata, key, str(version)) - pipe.expire(name=new_version_key, time=self.ttl) - pipe.execute() + redis_pipe = ( + self.client.pipeline(transaction=self.transactional) if pipe is None else pipe + ) + new_version_key = self.__save_artifact( + pipe=redis_pipe, artifact=artifact, key=key, version=str(version), **metadata + ) + redis_pipe.expire(name=new_version_key, time=self.ttl) + # if pipe is None: + # print(redis_pipe.command_stack) + # redis_pipe.execute() except RedisError as err: raise RedisRegistryError(f"{err.__class__.__name__} raised") from err else: @@ -338,3 +360,48 @@ def is_artifact_stale(artifact_data: ArtifactData, freq_hr: int) -> bool: raise RedisRegistryError("Error fetching timestamp information") from err stale_ts = (datetime.now() - timedelta(hours=freq_hr)).timestamp() return stale_ts > artifact_ts + + def save_multiple( + self, + skeys: KEYS, + list_dkeys: list[KEYS], + list_artifacts: list[artifact_t], + **metadata: META_VT, + ): + """ + Saves multiple artifacts into redis registry. The last save stores all the + artifact versions in the metadata. + + Args: + ---- + skeys: static key fields as list/tuple of strings + list_dkeys: list of dynamic key fields as list/tuple of strings + list_artifacts: list of primary artifacts to be saved + metadata: additional metadata surrounding the artifact that needs to be saved. + """ + dict_model_ver = {} + try: + with self.client.pipeline(transaction=self.transactional) as pipe: + pipe.multi() + for count, (key, artifact) in enumerate(zip(list_dkeys, list_artifacts)): + if count == len(list_artifacts) - 1: + self.save( + skeys=skeys, + dkeys=key, + artifact=artifact, + pipe=pipe, + artifact_versions=dict_model_ver, + **metadata, + ) + break + dict_model_ver = { + ":".join(key): self.save( + skeys=skeys, dkeys=key, artifact=artifact, pipe=pipe, **metadata + ) + } + pipe.execute() + _LOGGER.info("Successfully saved all the artifacts with: %s", dict_model_ver) + except RedisError as err: + raise RedisRegistryError(f"{err.__class__.__name__} raised") from err + else: + return dict_model_ver diff --git a/numalogic/udfs/entities.py b/numalogic/udfs/entities.py index ba4f75bd..4044e6e5 100644 --- a/numalogic/udfs/entities.py +++ b/numalogic/udfs/entities.py @@ -81,6 +81,9 @@ def get_data(self, original=False) -> npt.NDArray[float]: def get_metadata(self, key: str) -> dict[str, Any]: return copy(self.metadata[key]) + def add_metadata(self, data: dict[str, Any]): + self.metadata.update(data) + def __str__(self) -> str: return ( f'"StreamPayload(header={self.header}, status={self.status}, ' diff --git a/numalogic/udfs/inference.py b/numalogic/udfs/inference.py index c34bab18..44630dba 100644 --- a/numalogic/udfs/inference.py +++ b/numalogic/udfs/inference.py @@ -11,11 +11,12 @@ from pynumaflow.function import Messages, Datum, Message from numalogic.registry import RedisRegistry, LocalLRUCache, ArtifactData -from numalogic.tools.exceptions import RedisRegistryError, ModelKeyNotFound, ConfigNotFoundError +from numalogic.tools.exceptions import ConfigNotFoundError from numalogic.tools.types import artifact_t, redis_client_t from numalogic.udfs._base import NumalogicUDF from numalogic.udfs._config import StreamConf, PipelineConf from numalogic.udfs.entities import StreamPayload, Header, Status +from numalogic.udfs.tools import _load_model _LOGGER = logging.getLogger(__name__) @@ -111,8 +112,12 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: # Forward payload if a training request is tagged if payload.header == Header.TRAIN_REQUEST: return Messages(Message(keys=keys, value=payload.to_json())) - - artifact_data = self.load_artifact(keys, payload) + artifact_data = _load_model( + skeys=keys, + dkeys=[self.get_conf(payload.config_id).numalogic_conf.model.name], + payload=payload, + model_registry=self.model_registry, + ) # TODO: revisit retraining logic # Send training request if artifact loading is not successful @@ -162,47 +167,6 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: ) return Messages(Message(keys=keys, value=payload.to_json())) - def load_artifact(self, keys: list[str], payload: StreamPayload) -> Optional[ArtifactData]: - """ - Load inference artifact from the registry. - - Args: - keys: List of keys - payload: StreamPayload object - - Returns - ------- - ArtifactData instance - """ - _conf = self.get_conf(payload.config_id).numalogic_conf - try: - artifact_data = self.model_registry.load( - skeys=keys, - dkeys=[_conf.model.name], - ) - except ModelKeyNotFound: - _LOGGER.warning( - "%s - Model key not found for Keys: %s, Metric: %s", - payload.uuid, - payload.composite_keys, - payload.metrics, - ) - return None - except RedisRegistryError: - _LOGGER.exception( - "%s - Error while fetching inference artifact, Keys: %s, Metric: %s", - payload.uuid, - payload.composite_keys, - payload.metrics, - ) - return None - _LOGGER.info( - "%s - Loaded artifact data from %s", - payload.uuid, - artifact_data.extras.get("source"), - ) - return artifact_data - def is_model_stale(self, artifact_data: ArtifactData, payload: StreamPayload) -> bool: """ Check if the inference artifact is stale. diff --git a/numalogic/udfs/tools.py b/numalogic/udfs/tools.py index 04515a6c..ad831bc6 100644 --- a/numalogic/udfs/tools.py +++ b/numalogic/udfs/tools.py @@ -1,4 +1,5 @@ import logging +from dataclasses import replace from typing import Optional import numpy as np @@ -81,19 +82,20 @@ def _load_model( artifact_t object """ + version_to_load = "-1" + str_dkeys = ":".join(dkeys) + if payload.metadata and "artifact_versions" in payload.metadata: + version_to_load = payload.metadata["artifact_versions"][str_dkeys] try: - artifact = model_registry.load(skeys, dkeys) - _LOGGER.info( - "%s - Loaded Model. Source: %s , version: %s, Keys: %s, %s", - payload.uuid, - artifact.extras.get("source"), - artifact.extras.get("version"), - skeys, - dkeys, - ) + if version_to_load == -1: + artifact = model_registry.load(skeys=skeys, dkeys=dkeys) + else: + artifact = model_registry.load( + skeys=skeys, dkeys=dkeys, latest=False, version=version_to_load + ) except RedisRegistryError: _LOGGER.exception( - "%s - Error while fetching preproc artifact, Keys: %s, Metrics: %s", + "%s - Error while fetching artifact, Keys: %s, Metrics: %s", payload.uuid, skeys, payload.metrics, @@ -109,4 +111,20 @@ def _load_model( ) return None else: + _LOGGER.info( + "%s - Loaded Model. Source: %s , version: %s, Keys: %s, %s", + payload.uuid, + artifact.extras.get("source"), + artifact.extras.get("version"), + skeys, + dkeys, + ) + if artifact.metadata and "artifact_versions" in artifact.metadata: + replace( + payload, + metadata={ + "artifact_versions": artifact.metadata["artifact_versions"], + **payload.metadata, + }, + ) return artifact diff --git a/numalogic/udfs/trainer.py b/numalogic/udfs/trainer.py index a5f3a0ea..d5c2fe68 100644 --- a/numalogic/udfs/trainer.py +++ b/numalogic/udfs/trainer.py @@ -19,12 +19,11 @@ from numalogic.registry import RedisRegistry from numalogic.tools.data import StreamingDataset from numalogic.tools.exceptions import ConfigNotFoundError, RedisRegistryError -from numalogic.tools.types import redis_client_t, artifact_t +from numalogic.tools.types import redis_client_t, artifact_t, KEYS from numalogic.udfs import NumalogicUDF from numalogic.udfs._config import StreamConf, PipelineConf from numalogic.udfs.entities import TrainerPayload - _LOGGER = logging.getLogger(__name__) @@ -193,25 +192,31 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: # Save artifacts # TODO perform multi-save here - self.save_artifact( - artifacts["preproc_clf"], - skeys=payload.composite_keys, - dkeys=[_conf.name for _conf in _conf.numalogic_conf.preprocess], - uuid=payload.uuid, - ) - self.save_artifact( - artifacts["model"], - skeys=payload.composite_keys, - dkeys=[_conf.numalogic_conf.model.name], - uuid=payload.uuid, - train_size=x_train.shape[0], - ) - self.save_artifact( - artifacts["threshold_clf"], - skeys=payload.composite_keys, - dkeys=[_conf.numalogic_conf.threshold.name], - uuid=payload.uuid, + skeys = payload.composite_keys + + preproc_dkeys = [_conf.name for _conf in _conf.numalogic_conf.preprocess] + model_dkeys = [_conf.numalogic_conf.model.name] + thresh_dkeys = [_conf.numalogic_conf.threshold.name] + + # Save in reverse order so that version info is stored for other models in the + # metadata of first model + list_artifacts = [artifacts["threshold_clf"], artifacts["model"], artifacts["preproc_clf"]] + list_dkeys = [thresh_dkeys, preproc_dkeys, model_dkeys] + list_dkeys_save, list_artifacts_save = self.artifacts_to_save( + list_dkeys=list_dkeys, list_artifacts=list_artifacts ) + try: + ver_dict = self.model_registry.save_multiple( + skeys=skeys, + list_dkeys=list_dkeys_save, + list_artifacts=list_artifacts_save, + uuid=payload.uuid, + train_size=x_train.shape[0], + ) + except RedisRegistryError: + _LOGGER.exception("%s - Error while saving Model with skeys: %s", payload.uuid, skeys) + else: + _LOGGER.info("%s - Artifact saved with with versions: %s", payload.uuid, ver_dict) _LOGGER.debug( "%s - Time taken in trainer: %.4f sec", payload.uuid, time.perf_counter() - _start_time @@ -231,39 +236,32 @@ def _construct_preproc_clf(_conf: StreamConf) -> Optional[artifact_t]: return preproc_clfs[0] return make_pipeline(*preproc_clfs) - def save_artifact( - self, artifact: artifact_t, skeys: list[str], dkeys: list[str], uuid: str, **metadata - ) -> None: + @staticmethod + def artifacts_to_save( + list_artifacts: list[artifact_t], list_dkeys: list[KEYS] + ) -> tuple[list[KEYS], list[artifact_t]]: """ - Save artifact to the registry. + Identify what artifacts to save in to the registry. Args: - artifact: Artifact to save - skeys: List of keys - dkeys: List of dkeys - uuid: UUID - **metadata: Additional metadata + list_artifacts: List of artifacts + list_dkeys: List of dkeys + + Returns + ------- + Tuple of keys and artifacts + """ - if not artifact: - return + artifacts_to_save = [] + dkeys_to_save = [] + # TODO check for statelessness from config - if isinstance(artifact, StatelessTransformer): - _LOGGER.info("%s - Skipping save for stateless artifact with dkeys: %s", uuid, dkeys) - return - try: - version = self.model_registry.save( - skeys=skeys, - dkeys=dkeys, - artifact=artifact, - uuid=uuid, - **metadata, - ) - except RedisRegistryError: - _LOGGER.exception("%s - Error while saving Model with skeys: %s", uuid, skeys) - else: - _LOGGER.info( - "%s - Artifact saved with dkeys: %s with version: %s", uuid, dkeys, version - ) + for artifact, dkeys in zip(list_artifacts, list_dkeys): + if artifact: + if not isinstance(artifact, StatelessTransformer): + artifacts_to_save.append(artifact) + dkeys_to_save.append(dkeys) + return dkeys_to_save, artifacts_to_save def _is_data_sufficient(self, payload: TrainerPayload, df: pd.DataFrame) -> bool: _conf = self.get_conf(payload.config_id) diff --git a/poetry.lock b/poetry.lock index 5d116b95..f58feca2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "aiohttp" version = "3.8.5" description = "Async http client/server framework (asyncio)" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -112,6 +113,7 @@ speedups = ["Brotli", "aiodns", "cchardet"] name = "aiorun" version = "2022.11.1" description = "Boilerplate for asyncio applications" +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -126,6 +128,7 @@ dev = ["pytest", "pytest-cov"] name = "aiosignal" version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -140,6 +143,7 @@ frozenlist = ">=1.1.0" name = "antlr4-python3-runtime" version = "4.9.3" description = "ANTLR 4.9.3 runtime for Python 3.7" +category = "main" optional = false python-versions = "*" files = [ @@ -150,6 +154,7 @@ files = [ name = "anyio" version = "4.0.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -171,6 +176,7 @@ trio = ["trio (>=0.22)"] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" +category = "dev" optional = false python-versions = "*" files = [ @@ -182,6 +188,7 @@ files = [ name = "argon2-cffi" version = "23.1.0" description = "Argon2 for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -202,6 +209,7 @@ typing = ["mypy"] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -239,6 +247,7 @@ tests = ["pytest"] name = "arrow" version = "1.2.3" description = "Better dates & times for Python" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -251,17 +260,18 @@ python-dateutil = ">=2.7.0" [[package]] name = "asttokens" -version = "2.2.1" +version = "2.4.0" 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"}, + {file = "asttokens-2.4.0-py2.py3-none-any.whl", hash = "sha256:cf8fc9e61a86461aa9fb161a14a0841a03c405fa829ac6b202670b3495d2ce69"}, + {file = "asttokens-2.4.0.tar.gz", hash = "sha256:2e0171b991b2c959acc6c49318049236844a5da1d65ba2672c4880c1c894834e"}, ] [package.dependencies] -six = "*" +six = ">=1.12.0" [package.extras] test = ["astroid", "pytest"] @@ -270,6 +280,7 @@ test = ["astroid", "pytest"] name = "async-lru" version = "2.0.4" description = "Simple LRU cache for asyncio" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -284,6 +295,7 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} name = "async-timeout" version = "4.0.3" description = "Timeout context manager for asyncio programs" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -295,6 +307,7 @@ files = [ name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -313,6 +326,7 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "babel" version = "2.12.1" description = "Internationalization utilities" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -324,6 +338,7 @@ files = [ name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" +category = "dev" optional = false python-versions = "*" files = [ @@ -335,6 +350,7 @@ files = [ name = "beautifulsoup4" version = "4.12.2" description = "Screen-scraping library" +category = "dev" optional = false python-versions = ">=3.6.0" files = [ @@ -353,6 +369,7 @@ lxml = ["lxml"] name = "black" version = "23.7.0" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -399,6 +416,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "bleach" version = "6.0.0" description = "An easy safelist-based HTML-sanitizing tool." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -415,17 +433,18 @@ css = ["tinycss2 (>=1.1.0,<1.2)"] [[package]] name = "boto3" -version = "1.28.38" +version = "1.28.44" description = "The AWS SDK for Python" +category = "main" optional = false python-versions = ">= 3.7" files = [ - {file = "boto3-1.28.38-py3-none-any.whl", hash = "sha256:dae0bc5548b39d8dfcf4167d9a238ab899a0491c11c5e77934db71b3ecf34752"}, - {file = "boto3-1.28.38.tar.gz", hash = "sha256:cdb466e51ebe4c99640269d88d5450328271437d58e6ce089690d0485bef6174"}, + {file = "boto3-1.28.44-py3-none-any.whl", hash = "sha256:c53c92dfe22489ba31e918c2e7b59ff43e2e778bd3d3559e62351a739382bb5c"}, + {file = "boto3-1.28.44.tar.gz", hash = "sha256:eea3b07e0f28c9f92bccab972af24a3b0dd951c69d93da75227b8ecd3e18f6c4"}, ] [package.dependencies] -botocore = ">=1.31.38,<1.32.0" +botocore = ">=1.31.44,<1.32.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.6.0,<0.7.0" @@ -434,13 +453,14 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.31.38" +version = "1.31.44" description = "Low-level, data-driven core of boto 3." +category = "main" optional = false python-versions = ">= 3.7" files = [ - {file = "botocore-1.31.38-py3-none-any.whl", hash = "sha256:86a4c253bba046f775e07f6585ff6c3d75c21a21c171e5bfcf68bc59f29d7b4c"}, - {file = "botocore-1.31.38.tar.gz", hash = "sha256:b02de7898f0a7de0f6569be1c87046035a974006c31fd641f4b97a8dba1fad21"}, + {file = "botocore-1.31.44-py3-none-any.whl", hash = "sha256:83d61c1ca781e6ede19fcc4d5dd73004eee3825a2b220f0d7727e32069209d98"}, + {file = "botocore-1.31.44.tar.gz", hash = "sha256:84f90919fecb4a4f417fd10145c8a87ff2c4b14d6381cd34d9babf02110b3315"}, ] [package.dependencies] @@ -455,6 +475,7 @@ crt = ["awscrt (==0.16.26)"] name = "bottleneck" version = "1.3.7" description = "Fast NumPy array functions written in C" +category = "main" optional = false python-versions = "*" files = [ @@ -513,6 +534,7 @@ doc = ["gitpython", "numpydoc", "sphinx"] name = "cachetools" version = "5.3.1" description = "Extensible memoizing collections and decorators" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -524,6 +546,7 @@ files = [ name = "certifi" version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -535,6 +558,7 @@ files = [ name = "cffi" version = "1.15.1" description = "Foreign Function Interface for Python calling C code." +category = "dev" optional = false python-versions = "*" files = [ @@ -611,6 +635,7 @@ pycparser = "*" name = "cfgv" version = "3.4.0" description = "Validate configuration and produce human readable error messages." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -622,6 +647,7 @@ files = [ name = "charset-normalizer" version = "3.2.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -706,6 +732,7 @@ files = [ name = "click" version = "8.1.7" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -720,6 +747,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "cloudpickle" version = "2.2.1" description = "Extended pickling support for Python objects" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -731,6 +759,7 @@ files = [ name = "colorama" version = "0.4.6" 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 = [ @@ -742,6 +771,7 @@ files = [ name = "comm" version = "0.1.4" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -761,6 +791,7 @@ typing = ["mypy (>=0.990)"] name = "contourpy" version = "1.1.0" description = "Python library for calculating contours of 2D quadrilateral grids" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -817,63 +848,64 @@ test-no-images = ["pytest", "pytest-cov", "wurlitzer"] [[package]] name = "coverage" -version = "7.3.0" +version = "7.3.1" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db76a1bcb51f02b2007adacbed4c88b6dee75342c37b05d1822815eed19edee5"}, - {file = "coverage-7.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c02cfa6c36144ab334d556989406837336c1d05215a9bdf44c0bc1d1ac1cb637"}, - {file = "coverage-7.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:477c9430ad5d1b80b07f3c12f7120eef40bfbf849e9e7859e53b9c93b922d2af"}, - {file = "coverage-7.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce2ee86ca75f9f96072295c5ebb4ef2a43cecf2870b0ca5e7a1cbdd929cf67e1"}, - {file = "coverage-7.3.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68d8a0426b49c053013e631c0cdc09b952d857efa8f68121746b339912d27a12"}, - {file = "coverage-7.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3eb0c93e2ea6445b2173da48cb548364f8f65bf68f3d090404080d338e3a689"}, - {file = "coverage-7.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:90b6e2f0f66750c5a1178ffa9370dec6c508a8ca5265c42fbad3ccac210a7977"}, - {file = "coverage-7.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:96d7d761aea65b291a98c84e1250cd57b5b51726821a6f2f8df65db89363be51"}, - {file = "coverage-7.3.0-cp310-cp310-win32.whl", hash = "sha256:63c5b8ecbc3b3d5eb3a9d873dec60afc0cd5ff9d9f1c75981d8c31cfe4df8527"}, - {file = "coverage-7.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:97c44f4ee13bce914272589b6b41165bbb650e48fdb7bd5493a38bde8de730a1"}, - {file = "coverage-7.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74c160285f2dfe0acf0f72d425f3e970b21b6de04157fc65adc9fd07ee44177f"}, - {file = "coverage-7.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b543302a3707245d454fc49b8ecd2c2d5982b50eb63f3535244fd79a4be0c99d"}, - {file = "coverage-7.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad0f87826c4ebd3ef484502e79b39614e9c03a5d1510cfb623f4a4a051edc6fd"}, - {file = "coverage-7.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13c6cbbd5f31211d8fdb477f0f7b03438591bdd077054076eec362cf2207b4a7"}, - {file = "coverage-7.3.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fac440c43e9b479d1241fe9d768645e7ccec3fb65dc3a5f6e90675e75c3f3e3a"}, - {file = "coverage-7.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3c9834d5e3df9d2aba0275c9f67989c590e05732439b3318fa37a725dff51e74"}, - {file = "coverage-7.3.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4c8e31cf29b60859876474034a83f59a14381af50cbe8a9dbaadbf70adc4b214"}, - {file = "coverage-7.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7a9baf8e230f9621f8e1d00c580394a0aa328fdac0df2b3f8384387c44083c0f"}, - {file = "coverage-7.3.0-cp311-cp311-win32.whl", hash = "sha256:ccc51713b5581e12f93ccb9c5e39e8b5d4b16776d584c0f5e9e4e63381356482"}, - {file = "coverage-7.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:887665f00ea4e488501ba755a0e3c2cfd6278e846ada3185f42d391ef95e7e70"}, - {file = "coverage-7.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d000a739f9feed900381605a12a61f7aaced6beae832719ae0d15058a1e81c1b"}, - {file = "coverage-7.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:59777652e245bb1e300e620ce2bef0d341945842e4eb888c23a7f1d9e143c446"}, - {file = "coverage-7.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9737bc49a9255d78da085fa04f628a310c2332b187cd49b958b0e494c125071"}, - {file = "coverage-7.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5247bab12f84a1d608213b96b8af0cbb30d090d705b6663ad794c2f2a5e5b9fe"}, - {file = "coverage-7.3.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2ac9a1de294773b9fa77447ab7e529cf4fe3910f6a0832816e5f3d538cfea9a"}, - {file = "coverage-7.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:85b7335c22455ec12444cec0d600533a238d6439d8d709d545158c1208483873"}, - {file = "coverage-7.3.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:36ce5d43a072a036f287029a55b5c6a0e9bd73db58961a273b6dc11a2c6eb9c2"}, - {file = "coverage-7.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:211a4576e984f96d9fce61766ffaed0115d5dab1419e4f63d6992b480c2bd60b"}, - {file = "coverage-7.3.0-cp312-cp312-win32.whl", hash = "sha256:56afbf41fa4a7b27f6635bc4289050ac3ab7951b8a821bca46f5b024500e6321"}, - {file = "coverage-7.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f297e0c1ae55300ff688568b04ff26b01c13dfbf4c9d2b7d0cb688ac60df479"}, - {file = "coverage-7.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac0dec90e7de0087d3d95fa0533e1d2d722dcc008bc7b60e1143402a04c117c1"}, - {file = "coverage-7.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:438856d3f8f1e27f8e79b5410ae56650732a0dcfa94e756df88c7e2d24851fcd"}, - {file = "coverage-7.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1084393c6bda8875c05e04fce5cfe1301a425f758eb012f010eab586f1f3905e"}, - {file = "coverage-7.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49ab200acf891e3dde19e5aa4b0f35d12d8b4bd805dc0be8792270c71bd56c54"}, - {file = "coverage-7.3.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a67e6bbe756ed458646e1ef2b0778591ed4d1fcd4b146fc3ba2feb1a7afd4254"}, - {file = "coverage-7.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8f39c49faf5344af36042b293ce05c0d9004270d811c7080610b3e713251c9b0"}, - {file = "coverage-7.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7df91fb24c2edaabec4e0eee512ff3bc6ec20eb8dccac2e77001c1fe516c0c84"}, - {file = "coverage-7.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:34f9f0763d5fa3035a315b69b428fe9c34d4fc2f615262d6be3d3bf3882fb985"}, - {file = "coverage-7.3.0-cp38-cp38-win32.whl", hash = "sha256:bac329371d4c0d456e8d5f38a9b0816b446581b5f278474e416ea0c68c47dcd9"}, - {file = "coverage-7.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:b859128a093f135b556b4765658d5d2e758e1fae3e7cc2f8c10f26fe7005e543"}, - {file = "coverage-7.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed8d310afe013db1eedd37176d0839dc66c96bcfcce8f6607a73ffea2d6ba"}, - {file = "coverage-7.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61260ec93f99f2c2d93d264b564ba912bec502f679793c56f678ba5251f0393"}, - {file = "coverage-7.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97af9554a799bd7c58c0179cc8dbf14aa7ab50e1fd5fa73f90b9b7215874ba28"}, - {file = "coverage-7.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3558e5b574d62f9c46b76120a5c7c16c4612dc2644c3d48a9f4064a705eaee95"}, - {file = "coverage-7.3.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37d5576d35fcb765fca05654f66aa71e2808d4237d026e64ac8b397ffa66a56a"}, - {file = "coverage-7.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:07ea61bcb179f8f05ffd804d2732b09d23a1238642bf7e51dad62082b5019b34"}, - {file = "coverage-7.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:80501d1b2270d7e8daf1b64b895745c3e234289e00d5f0e30923e706f110334e"}, - {file = "coverage-7.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4eddd3153d02204f22aef0825409091a91bf2a20bce06fe0f638f5c19a85de54"}, - {file = "coverage-7.3.0-cp39-cp39-win32.whl", hash = "sha256:2d22172f938455c156e9af2612650f26cceea47dc86ca048fa4e0b2d21646ad3"}, - {file = "coverage-7.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:60f64e2007c9144375dd0f480a54d6070f00bb1a28f65c408370544091c9bc9e"}, - {file = "coverage-7.3.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:5492a6ce3bdb15c6ad66cb68a0244854d9917478877a25671d70378bdc8562d0"}, - {file = "coverage-7.3.0.tar.gz", hash = "sha256:49dbb19cdcafc130f597d9e04a29d0a032ceedf729e41b181f51cd170e6ee865"}, + {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, + {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, + {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, + {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, + {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, + {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, + {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, + {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, + {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, + {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, + {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, + {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, + {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, + {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, + {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, + {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, + {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, + {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, + {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, + {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, + {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, + {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, ] [package.dependencies] @@ -886,6 +918,7 @@ toml = ["tomli"] name = "cryptography" version = "41.0.3" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -931,6 +964,7 @@ test-randomorder = ["pytest-randomly"] name = "cycler" version = "0.11.0" description = "Composable style cycles" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -942,6 +976,7 @@ files = [ name = "databricks-cli" version = "0.17.7" description = "A command line interface for Databricks" +category = "main" optional = true python-versions = "*" files = [ @@ -960,35 +995,41 @@ urllib3 = ">=1.26.7,<2.0.0" [[package]] name = "debugpy" -version = "1.6.7.post1" +version = "1.7.0" description = "An implementation of the Debug Adapter Protocol for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "debugpy-1.6.7.post1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:903bd61d5eb433b6c25b48eae5e23821d4c1a19e25c9610205f5aeaccae64e32"}, - {file = "debugpy-1.6.7.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d16882030860081e7dd5aa619f30dec3c2f9a421e69861125f83cc372c94e57d"}, - {file = "debugpy-1.6.7.post1-cp310-cp310-win32.whl", hash = "sha256:eea8d8cfb9965ac41b99a61f8e755a8f50e9a20330938ad8271530210f54e09c"}, - {file = "debugpy-1.6.7.post1-cp310-cp310-win_amd64.whl", hash = "sha256:85969d864c45f70c3996067cfa76a319bae749b04171f2cdeceebe4add316155"}, - {file = "debugpy-1.6.7.post1-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:890f7ab9a683886a0f185786ffbda3b46495c4b929dab083b8c79d6825832a52"}, - {file = "debugpy-1.6.7.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4ac7a4dba28801d184b7fc0e024da2635ca87d8b0a825c6087bb5168e3c0d28"}, - {file = "debugpy-1.6.7.post1-cp37-cp37m-win32.whl", hash = "sha256:3370ef1b9951d15799ef7af41f8174194f3482ee689988379763ef61a5456426"}, - {file = "debugpy-1.6.7.post1-cp37-cp37m-win_amd64.whl", hash = "sha256:65b28435a17cba4c09e739621173ff90c515f7b9e8ea469b92e3c28ef8e5cdfb"}, - {file = "debugpy-1.6.7.post1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:92b6dae8bfbd497c90596bbb69089acf7954164aea3228a99d7e43e5267f5b36"}, - {file = "debugpy-1.6.7.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72f5d2ecead8125cf669e62784ef1e6300f4067b0f14d9f95ee00ae06fc7c4f7"}, - {file = "debugpy-1.6.7.post1-cp38-cp38-win32.whl", hash = "sha256:f0851403030f3975d6e2eaa4abf73232ab90b98f041e3c09ba33be2beda43fcf"}, - {file = "debugpy-1.6.7.post1-cp38-cp38-win_amd64.whl", hash = "sha256:3de5d0f97c425dc49bce4293df6a04494309eedadd2b52c22e58d95107e178d9"}, - {file = "debugpy-1.6.7.post1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:38651c3639a4e8bbf0ca7e52d799f6abd07d622a193c406be375da4d510d968d"}, - {file = "debugpy-1.6.7.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:038c51268367c9c935905a90b1c2d2dbfe304037c27ba9d19fe7409f8cdc710c"}, - {file = "debugpy-1.6.7.post1-cp39-cp39-win32.whl", hash = "sha256:4b9eba71c290852f959d2cf8a03af28afd3ca639ad374d393d53d367f7f685b2"}, - {file = "debugpy-1.6.7.post1-cp39-cp39-win_amd64.whl", hash = "sha256:973a97ed3b434eab0f792719a484566c35328196540676685c975651266fccf9"}, - {file = "debugpy-1.6.7.post1-py2.py3-none-any.whl", hash = "sha256:1093a5c541af079c13ac8c70ab8b24d1d35c8cacb676306cf11e57f699c02926"}, - {file = "debugpy-1.6.7.post1.zip", hash = "sha256:fe87ec0182ef624855d05e6ed7e0b7cb1359d2ffa2a925f8ec2d22e98b75d0ca"}, + {file = "debugpy-1.7.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:17ad9a681aca1704c55b9a5edcb495fa8f599e4655c9872b7f9cf3dc25890d48"}, + {file = "debugpy-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1285920a3f9a75f5d1acf59ab1b9da9ae6eb9a05884cd7674f95170c9cafa4de"}, + {file = "debugpy-1.7.0-cp310-cp310-win32.whl", hash = "sha256:a6f43a681c5025db1f1c0568069d1d1bad306a02e7c36144912b26d9c90e4724"}, + {file = "debugpy-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:9e9571d831ad3c75b5fb6f3efcb71c471cf2a74ba84af6ac1c79ce00683bed4b"}, + {file = "debugpy-1.7.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:538765a41198aa88cc089295b39c7322dd598f9ef1d52eaae12145c63bf9430a"}, + {file = "debugpy-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7e8cf91f8f3f9b5fad844dd88427b85d398bda1e2a0cd65d5a21312fcbc0c6f"}, + {file = "debugpy-1.7.0-cp311-cp311-win32.whl", hash = "sha256:18a69f8e142a716310dd0af6d7db08992aed99e2606108732efde101e7c65e2a"}, + {file = "debugpy-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7515a5ba5ee9bfe956685909c5f28734c1cecd4ee813523363acfe3ca824883a"}, + {file = "debugpy-1.7.0-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:bc8da67ade39d9e75608cdb8601d07e63a4e85966e0572c981f14e2cf42bcdef"}, + {file = "debugpy-1.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5036e918c6ba8fc4c4f1fd0207d81db634431a02f0dc2ba51b12fd793c8c9de"}, + {file = "debugpy-1.7.0-cp37-cp37m-win32.whl", hash = "sha256:d5be95b3946a4d7b388e45068c7b75036ac5a610f41014aee6cafcd5506423ad"}, + {file = "debugpy-1.7.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0e90314a078d4e3f009520c8387aba8f74c3034645daa7a332a3d1bb81335756"}, + {file = "debugpy-1.7.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:1565fd904f9571c430adca597771255cff4f92171486fced6f765dcbdfc8ec8d"}, + {file = "debugpy-1.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6516f36a2e95b3be27f171f12b641e443863f4ad5255d0fdcea6ae0be29bb912"}, + {file = "debugpy-1.7.0-cp38-cp38-win32.whl", hash = "sha256:2b0e489613bc066051439df04c56777ec184b957d6810cb65f235083aef7a0dc"}, + {file = "debugpy-1.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:7bf0b4bbd841b2397b6a8de15da9227f1164f6d43ceee971c50194eaed930a9d"}, + {file = "debugpy-1.7.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:ad22e1095b9977af432465c1e09132ba176e18df3834b1efcab1a449346b350b"}, + {file = "debugpy-1.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f625e427f21423e5874139db529e18cb2966bdfcc1cb87a195538c5b34d163d1"}, + {file = "debugpy-1.7.0-cp39-cp39-win32.whl", hash = "sha256:18bca8429d6632e2d3435055416d2d88f0309cc39709f4f6355c8d412cc61f24"}, + {file = "debugpy-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:dc8a12ac8b97ef3d6973c6679a093138c7c9b03eb685f0e253269a195f651559"}, + {file = "debugpy-1.7.0-py2.py3-none-any.whl", hash = "sha256:f6de2e6f24f62969e0f0ef682d78c98161c4dca29e9fb05df4d2989005005502"}, + {file = "debugpy-1.7.0.zip", hash = "sha256:676911c710e85567b17172db934a71319ed9d995104610ce23fd74a07f66e6f6"}, ] [[package]] name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1000,6 +1041,7 @@ files = [ name = "defusedxml" version = "0.7.1" 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 = [ @@ -1011,6 +1053,7 @@ files = [ name = "distlib" version = "0.3.7" description = "Distribution utilities" +category = "dev" optional = false python-versions = "*" files = [ @@ -1022,6 +1065,7 @@ files = [ name = "entrypoints" version = "0.4" description = "Discover and load entry points from installed packages." +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1033,6 +1077,7 @@ files = [ name = "exceptiongroup" version = "1.1.3" description = "Backport of PEP 654 (exception groups)" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1047,6 +1092,7 @@ test = ["pytest (>=6)"] name = "executing" version = "1.2.0" description = "Get the currently executing AST node of a frame, and other information" +category = "dev" optional = false python-versions = "*" files = [ @@ -1059,13 +1105,14 @@ tests = ["asttokens", "littleutils", "pytest", "rich"] [[package]] name = "fakeredis" -version = "2.18.0" +version = "2.18.1" description = "Python implementation of redis API, can be used for testing purposes." +category = "dev" optional = false python-versions = ">=3.7,<4.0" files = [ - {file = "fakeredis-2.18.0-py3-none-any.whl", hash = "sha256:bc7a82e9caec80096659fd9a810b72d21f833574be26ff7b97955db626d60bac"}, - {file = "fakeredis-2.18.0.tar.gz", hash = "sha256:f9c18d3dba81a470953cc042868b411e334109e065cde53a7a82beef6702a1de"}, + {file = "fakeredis-2.18.1-py3-none-any.whl", hash = "sha256:d780da2519b2e9d741056cf2b68604a4e59286bc6fde78b40a2b2b1367a51b30"}, + {file = "fakeredis-2.18.1.tar.gz", hash = "sha256:9742d6d4673df0f5f6ade4e4eee763b7f3517178ffa82508310325a6305651ec"}, ] [package.dependencies] @@ -1080,6 +1127,7 @@ lua = ["lupa (>=1.14,<3.0)"] name = "fastjsonschema" version = "2.18.0" description = "Fastest Python implementation of JSON schema" +category = "dev" optional = false python-versions = "*" files = [ @@ -1094,6 +1142,7 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc name = "filelock" version = "3.12.3" description = "A platform independent file lock." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1112,6 +1161,7 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pyt name = "fonttools" version = "4.42.1" description = "Tools to manipulate font files" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1169,6 +1219,7 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +category = "dev" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" files = [ @@ -1180,6 +1231,7 @@ files = [ name = "freezegun" version = "1.2.2" description = "Let your Python tests travel through time" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1194,6 +1246,7 @@ python-dateutil = ">=2.7" name = "frozenlist" version = "1.4.0" description = "A list-like structure which implements collections.abc.MutableSequence" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1262,13 +1315,14 @@ files = [ [[package]] name = "fsspec" -version = "2023.6.0" +version = "2023.9.0" description = "File-system specification" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "fsspec-2023.6.0-py3-none-any.whl", hash = "sha256:1cbad1faef3e391fba6dc005ae9b5bdcbf43005c9167ce78c915549c352c869a"}, - {file = "fsspec-2023.6.0.tar.gz", hash = "sha256:d0b2f935446169753e7a5c5c55681c54ea91996cc67be93c39a154fb3a2742af"}, + {file = "fsspec-2023.9.0-py3-none-any.whl", hash = "sha256:d55b9ab2a4c1f2b759888ae9f93e40c2aa72c0808132e87e282b549f9e6c4254"}, + {file = "fsspec-2023.9.0.tar.gz", hash = "sha256:4dbf0fefee035b7c6d3bbbe6bc99b2f201f40d4dca95b67c2b719be77bcd917f"}, ] [package.dependencies] @@ -1303,6 +1357,7 @@ tqdm = ["tqdm"] name = "gitdb" version = "4.0.10" description = "Git Object Database" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1315,13 +1370,14 @@ smmap = ">=3.0.1,<6" [[package]] name = "gitpython" -version = "3.1.32" +version = "3.1.35" description = "GitPython is a Python library used to interact with Git repositories" +category = "main" optional = true python-versions = ">=3.7" files = [ - {file = "GitPython-3.1.32-py3-none-any.whl", hash = "sha256:e3d59b1c2c6ebb9dfa7a184daf3b6dd4914237e7488a1730a6d8f6f5d0b4187f"}, - {file = "GitPython-3.1.32.tar.gz", hash = "sha256:8d9b8cb1e80b9735e8717c9362079d3ce4c6e5ddeebedd0361b228c3a67a62f6"}, + {file = "GitPython-3.1.35-py3-none-any.whl", hash = "sha256:c19b4292d7a1d3c0f653858db273ff8a6614100d1eb1528b014ec97286193c09"}, + {file = "GitPython-3.1.35.tar.gz", hash = "sha256:9cbefbd1789a5fe9bcf621bb34d3f441f3a90c8461d377f84eda73e721d9b06b"}, ] [package.dependencies] @@ -1331,6 +1387,7 @@ gitdb = ">=4.0.1,<5" name = "google-api-core" version = "2.11.1" description = "Google API client core library" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1353,6 +1410,7 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] name = "google-auth" version = "2.22.0" description = "Google Authentication Library" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1378,6 +1436,7 @@ requests = ["requests (>=2.20.0,<3.0.0.dev0)"] name = "google-cloud" version = "0.34.0" description = "API Client library for Google Cloud" +category = "main" optional = true python-versions = "*" files = [ @@ -1389,6 +1448,7 @@ files = [ name = "googleapis-common-protos" version = "1.60.0" description = "Common protobufs used in Google APIs" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1404,117 +1464,119 @@ grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] [[package]] name = "grpcio" -version = "1.57.0" +version = "1.58.0" description = "HTTP/2-based RPC framework" +category = "main" optional = true python-versions = ">=3.7" files = [ - {file = "grpcio-1.57.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:092fa155b945015754bdf988be47793c377b52b88d546e45c6a9f9579ac7f7b6"}, - {file = "grpcio-1.57.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:2f7349786da979a94690cc5c2b804cab4e8774a3cf59be40d037c4342c906649"}, - {file = "grpcio-1.57.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:82640e57fb86ea1d71ea9ab54f7e942502cf98a429a200b2e743d8672171734f"}, - {file = "grpcio-1.57.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40b72effd4c789de94ce1be2b5f88d7b9b5f7379fe9645f198854112a6567d9a"}, - {file = "grpcio-1.57.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f708a6a17868ad8bf586598bee69abded4996b18adf26fd2d91191383b79019"}, - {file = "grpcio-1.57.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:60fe15288a0a65d5c1cb5b4a62b1850d07336e3ba728257a810317be14f0c527"}, - {file = "grpcio-1.57.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6907b1cf8bb29b058081d2aad677b15757a44ef2d4d8d9130271d2ad5e33efca"}, - {file = "grpcio-1.57.0-cp310-cp310-win32.whl", hash = "sha256:57b183e8b252825c4dd29114d6c13559be95387aafc10a7be645462a0fc98bbb"}, - {file = "grpcio-1.57.0-cp310-cp310-win_amd64.whl", hash = "sha256:7b400807fa749a9eb286e2cd893e501b110b4d356a218426cb9c825a0474ca56"}, - {file = "grpcio-1.57.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:c6ebecfb7a31385393203eb04ed8b6a08f5002f53df3d59e5e795edb80999652"}, - {file = "grpcio-1.57.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:00258cbe3f5188629828363ae8ff78477ce976a6f63fb2bb5e90088396faa82e"}, - {file = "grpcio-1.57.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:23e7d8849a0e58b806253fd206ac105b328171e01b8f18c7d5922274958cc87e"}, - {file = "grpcio-1.57.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5371bcd861e679d63b8274f73ac281751d34bd54eccdbfcd6aa00e692a82cd7b"}, - {file = "grpcio-1.57.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aed90d93b731929e742967e236f842a4a2174dc5db077c8f9ad2c5996f89f63e"}, - {file = "grpcio-1.57.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:fe752639919aad9ffb0dee0d87f29a6467d1ef764f13c4644d212a9a853a078d"}, - {file = "grpcio-1.57.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fada6b07ec4f0befe05218181f4b85176f11d531911b64c715d1875c4736d73a"}, - {file = "grpcio-1.57.0-cp311-cp311-win32.whl", hash = "sha256:bb396952cfa7ad2f01061fbc7dc1ad91dd9d69243bcb8110cf4e36924785a0fe"}, - {file = "grpcio-1.57.0-cp311-cp311-win_amd64.whl", hash = "sha256:e503cb45ed12b924b5b988ba9576dc9949b2f5283b8e33b21dcb6be74a7c58d0"}, - {file = "grpcio-1.57.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:fd173b4cf02b20f60860dc2ffe30115c18972d7d6d2d69df97ac38dee03be5bf"}, - {file = "grpcio-1.57.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:d7f8df114d6b4cf5a916b98389aeaf1e3132035420a88beea4e3d977e5f267a5"}, - {file = "grpcio-1.57.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:76c44efa4ede1f42a9d5b2fed1fe9377e73a109bef8675fb0728eb80b0b8e8f2"}, - {file = "grpcio-1.57.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4faea2cfdf762a664ab90589b66f416274887641ae17817de510b8178356bf73"}, - {file = "grpcio-1.57.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c60b83c43faeb6d0a9831f0351d7787a0753f5087cc6fa218d78fdf38e5acef0"}, - {file = "grpcio-1.57.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b363bbb5253e5f9c23d8a0a034dfdf1b7c9e7f12e602fc788c435171e96daccc"}, - {file = "grpcio-1.57.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:f1fb0fd4a1e9b11ac21c30c169d169ef434c6e9344ee0ab27cfa6f605f6387b2"}, - {file = "grpcio-1.57.0-cp37-cp37m-win_amd64.whl", hash = "sha256:34950353539e7d93f61c6796a007c705d663f3be41166358e3d88c45760c7d98"}, - {file = "grpcio-1.57.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:871f9999e0211f9551f368612460442a5436d9444606184652117d6a688c9f51"}, - {file = "grpcio-1.57.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:a8a8e560e8dbbdf29288872e91efd22af71e88b0e5736b0daf7773c1fecd99f0"}, - {file = "grpcio-1.57.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:2313b124e475aa9017a9844bdc5eafb2d5abdda9d456af16fc4535408c7d6da6"}, - {file = "grpcio-1.57.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4098b6b638d9e0ca839a81656a2fd4bc26c9486ea707e8b1437d6f9d61c3941"}, - {file = "grpcio-1.57.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e5b58e32ae14658085c16986d11e99abd002ddbf51c8daae8a0671fffb3467f"}, - {file = "grpcio-1.57.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0f80bf37f09e1caba6a8063e56e2b87fa335add314cf2b78ebf7cb45aa7e3d06"}, - {file = "grpcio-1.57.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5b7a4ce8f862fe32b2a10b57752cf3169f5fe2915acfe7e6a1e155db3da99e79"}, - {file = "grpcio-1.57.0-cp38-cp38-win32.whl", hash = "sha256:9338bacf172e942e62e5889b6364e56657fbf8ac68062e8b25c48843e7b202bb"}, - {file = "grpcio-1.57.0-cp38-cp38-win_amd64.whl", hash = "sha256:e1cb52fa2d67d7f7fab310b600f22ce1ff04d562d46e9e0ac3e3403c2bb4cc16"}, - {file = "grpcio-1.57.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:fee387d2fab144e8a34e0e9c5ca0f45c9376b99de45628265cfa9886b1dbe62b"}, - {file = "grpcio-1.57.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:b53333627283e7241fcc217323f225c37783b5f0472316edcaa4479a213abfa6"}, - {file = "grpcio-1.57.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:f19ac6ac0a256cf77d3cc926ef0b4e64a9725cc612f97228cd5dc4bd9dbab03b"}, - {file = "grpcio-1.57.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3fdf04e402f12e1de8074458549337febb3b45f21076cc02ef4ff786aff687e"}, - {file = "grpcio-1.57.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5613a2fecc82f95d6c51d15b9a72705553aa0d7c932fad7aed7afb51dc982ee5"}, - {file = "grpcio-1.57.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b670c2faa92124b7397b42303e4d8eb64a4cd0b7a77e35a9e865a55d61c57ef9"}, - {file = "grpcio-1.57.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7a635589201b18510ff988161b7b573f50c6a48fae9cb567657920ca82022b37"}, - {file = "grpcio-1.57.0-cp39-cp39-win32.whl", hash = "sha256:d78d8b86fcdfa1e4c21f8896614b6cc7ee01a2a758ec0c4382d662f2a62cf766"}, - {file = "grpcio-1.57.0-cp39-cp39-win_amd64.whl", hash = "sha256:20ec6fc4ad47d1b6e12deec5045ec3cd5402d9a1597f738263e98f490fe07056"}, - {file = "grpcio-1.57.0.tar.gz", hash = "sha256:4b089f7ad1eb00a104078bab8015b0ed0ebcb3b589e527ab009c53893fd4e613"}, + {file = "grpcio-1.58.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:3e6bebf1dfdbeb22afd95650e4f019219fef3ab86d3fca8ebade52e4bc39389a"}, + {file = "grpcio-1.58.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:cde11577d5b6fd73a00e6bfa3cf5f428f3f33c2d2878982369b5372bbc4acc60"}, + {file = "grpcio-1.58.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:a2d67ff99e70e86b2be46c1017ae40b4840d09467d5455b2708de6d4c127e143"}, + {file = "grpcio-1.58.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1ed979b273a81de36fc9c6716d9fb09dd3443efa18dcc8652501df11da9583e9"}, + {file = "grpcio-1.58.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:458899d2ebd55d5ca2350fd3826dfd8fcb11fe0f79828ae75e2b1e6051d50a29"}, + {file = "grpcio-1.58.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bc7ffef430b80345729ff0a6825e9d96ac87efe39216e87ac58c6c4ef400de93"}, + {file = "grpcio-1.58.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5b23d75e5173faa3d1296a7bedffb25afd2fddb607ef292dfc651490c7b53c3d"}, + {file = "grpcio-1.58.0-cp310-cp310-win32.whl", hash = "sha256:fad9295fe02455d4f158ad72c90ef8b4bcaadfdb5efb5795f7ab0786ad67dd58"}, + {file = "grpcio-1.58.0-cp310-cp310-win_amd64.whl", hash = "sha256:bc325fed4d074367bebd465a20763586e5e1ed5b943e9d8bc7c162b1f44fd602"}, + {file = "grpcio-1.58.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:652978551af02373a5a313e07bfef368f406b5929cf2d50fa7e4027f913dbdb4"}, + {file = "grpcio-1.58.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:9f13a171281ebb4d7b1ba9f06574bce2455dcd3f2f6d1fbe0fd0d84615c74045"}, + {file = "grpcio-1.58.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:8774219e21b05f750eef8adc416e9431cf31b98f6ce9def288e4cea1548cbd22"}, + {file = "grpcio-1.58.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09206106848462763f7f273ca93d2d2d4d26cab475089e0de830bb76be04e9e8"}, + {file = "grpcio-1.58.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62831d5e251dd7561d9d9e83a0b8655084b2a1f8ea91e4bd6b3cedfefd32c9d2"}, + {file = "grpcio-1.58.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:212f38c6a156862098f6bdc9a79bf850760a751d259d8f8f249fc6d645105855"}, + {file = "grpcio-1.58.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4b12754af201bb993e6e2efd7812085ddaaef21d0a6f0ff128b97de1ef55aa4a"}, + {file = "grpcio-1.58.0-cp311-cp311-win32.whl", hash = "sha256:3886b4d56bd4afeac518dbc05933926198aa967a7d1d237a318e6fbc47141577"}, + {file = "grpcio-1.58.0-cp311-cp311-win_amd64.whl", hash = "sha256:002f228d197fea12797a14e152447044e14fb4fdb2eb5d6cfa496f29ddbf79ef"}, + {file = "grpcio-1.58.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:b5e8db0aff0a4819946215f156bd722b6f6c8320eb8419567ffc74850c9fd205"}, + {file = "grpcio-1.58.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:201e550b7e2ede113b63e718e7ece93cef5b0fbf3c45e8fe4541a5a4305acd15"}, + {file = "grpcio-1.58.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:d79b660681eb9bc66cc7cbf78d1b1b9e335ee56f6ea1755d34a31108b80bd3c8"}, + {file = "grpcio-1.58.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ef8d4a76d2c7d8065aba829f8d0bc0055495c998dce1964ca5b302d02514fb3"}, + {file = "grpcio-1.58.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cba491c638c76d3dc6c191d9c75041ca5b8f5c6de4b8327ecdcab527f130bb4"}, + {file = "grpcio-1.58.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6801ff6652ecd2aae08ef994a3e49ff53de29e69e9cd0fd604a79ae4e545a95c"}, + {file = "grpcio-1.58.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:24edec346e69e672daf12b2c88e95c6f737f3792d08866101d8c5f34370c54fd"}, + {file = "grpcio-1.58.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7e473a7abad9af48e3ab5f3b5d237d18208024d28ead65a459bd720401bd2f8f"}, + {file = "grpcio-1.58.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:4891bbb4bba58acd1d620759b3be11245bfe715eb67a4864c8937b855b7ed7fa"}, + {file = "grpcio-1.58.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:e9f995a8a421405958ff30599b4d0eec244f28edc760de82f0412c71c61763d2"}, + {file = "grpcio-1.58.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:2f85f87e2f087d9f632c085b37440a3169fda9cdde80cb84057c2fc292f8cbdf"}, + {file = "grpcio-1.58.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb6b92036ff312d5b4182fa72e8735d17aceca74d0d908a7f08e375456f03e07"}, + {file = "grpcio-1.58.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d81c2b2b24c32139dd2536972f1060678c6b9fbd106842a9fcdecf07b233eccd"}, + {file = "grpcio-1.58.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:fbcecb6aedd5c1891db1d70efbfbdc126c986645b5dd616a045c07d6bd2dfa86"}, + {file = "grpcio-1.58.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92ae871a902cf19833328bd6498ec007b265aabf2fda845ab5bd10abcaf4c8c6"}, + {file = "grpcio-1.58.0-cp38-cp38-win32.whl", hash = "sha256:dc72e04620d49d3007771c0e0348deb23ca341c0245d610605dddb4ac65a37cb"}, + {file = "grpcio-1.58.0-cp38-cp38-win_amd64.whl", hash = "sha256:1c1c5238c6072470c7f1614bf7c774ffde6b346a100521de9ce791d1e4453afe"}, + {file = "grpcio-1.58.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:fe643af248442221db027da43ed43e53b73e11f40c9043738de9a2b4b6ca7697"}, + {file = "grpcio-1.58.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:128eb1f8e70676d05b1b0c8e6600320fc222b3f8c985a92224248b1367122188"}, + {file = "grpcio-1.58.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:039003a5e0ae7d41c86c768ef8b3ee2c558aa0a23cf04bf3c23567f37befa092"}, + {file = "grpcio-1.58.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f061722cad3f9aabb3fbb27f3484ec9d4667b7328d1a7800c3c691a98f16bb0"}, + {file = "grpcio-1.58.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0af11938acf8cd4cf815c46156bcde36fa5850518120920d52620cc3ec1830"}, + {file = "grpcio-1.58.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d4cef77ad2fed42b1ba9143465856d7e737279854e444925d5ba45fc1f3ba727"}, + {file = "grpcio-1.58.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24765a627eb4d9288ace32d5104161c3654128fe27f2808ecd6e9b0cfa7fc8b9"}, + {file = "grpcio-1.58.0-cp39-cp39-win32.whl", hash = "sha256:f0241f7eb0d2303a545136c59bc565a35c4fc3b924ccbd69cb482f4828d6f31c"}, + {file = "grpcio-1.58.0-cp39-cp39-win_amd64.whl", hash = "sha256:dcfba7befe3a55dab6fe1eb7fc9359dc0c7f7272b30a70ae0af5d5b063842f28"}, + {file = "grpcio-1.58.0.tar.gz", hash = "sha256:532410c51ccd851b706d1fbc00a87be0f5312bd6f8e5dbf89d4e99c7f79d7499"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.57.0)"] +protobuf = ["grpcio-tools (>=1.58.0)"] [[package]] name = "grpcio-tools" -version = "1.57.0" +version = "1.58.0" description = "Protobuf code generator for gRPC" +category = "main" optional = true python-versions = ">=3.7" files = [ - {file = "grpcio-tools-1.57.0.tar.gz", hash = "sha256:2f16130d869ce27ecd623194547b649dd657333ec7e8644cc571c645781a9b85"}, - {file = "grpcio_tools-1.57.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:4fb8a8468031f858381a576078924af364a08833d8f8f3237018252c4573a802"}, - {file = "grpcio_tools-1.57.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:35bf0dad8a3562043345236c26d0053a856fb06c04d7da652f2ded914e508ae7"}, - {file = "grpcio_tools-1.57.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:ec9aab2fb6783c7fc54bc28f58eb75f1ca77594e6b0fd5e5e7a8114a95169fe0"}, - {file = "grpcio_tools-1.57.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cf5fc0a1c23f8ea34b408b72fb0e90eec0f404ad4dba98e8f6da3c9ce34e2ed"}, - {file = "grpcio_tools-1.57.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26e69d08a515554e0cfe1ec4d31568836f4b17f0ff82294f957f629388629eb9"}, - {file = "grpcio_tools-1.57.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c39a3656576b6fdaaf28abe0467f7a7231df4230c1bee132322dbc3209419e7f"}, - {file = "grpcio_tools-1.57.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f64f8ab22d27d4a5693310748d35a696061c3b5c7b8c4fb4ab3b4bc1068b6b56"}, - {file = "grpcio_tools-1.57.0-cp310-cp310-win32.whl", hash = "sha256:d2a134756f4db34759a5cc7f7e43f7eb87540b68d1cca62925593c6fb93924f7"}, - {file = "grpcio_tools-1.57.0-cp310-cp310-win_amd64.whl", hash = "sha256:9a3d60fb8d46ede26c1907c146561b3a9caa20a7aff961bc661ef8226f85a2e9"}, - {file = "grpcio_tools-1.57.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:aac98ecad8f7bd4301855669d42a5d97ef7bb34bec2b1e74c7a0641d47e313cf"}, - {file = "grpcio_tools-1.57.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:cdd020cb68b51462983b7c2dfbc3eb6ede032b8bf438d4554df0c3f08ce35c76"}, - {file = "grpcio_tools-1.57.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:f54081b08419a39221cd646363b5708857c696b3ad4784f1dcf310891e33a5f7"}, - {file = "grpcio_tools-1.57.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed85a0291fff45b67f2557fe7f117d3bc7af8b54b8619d27bf374b5c8b7e3ca2"}, - {file = "grpcio_tools-1.57.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e868cd6feb3ef07d4b35be104fe1fd0657db05259ff8f8ec5e08f4f89ca1191d"}, - {file = "grpcio_tools-1.57.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:dfb6f6120587b8e228a3cae5ee4985b5bdc18501bad05c49df61965dfc9d70a9"}, - {file = "grpcio_tools-1.57.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4a7ad7f328e28fc97c356d0f10fb10d8b5151bb65aa7cf14bf8084513f0b7306"}, - {file = "grpcio_tools-1.57.0-cp311-cp311-win32.whl", hash = "sha256:9867f2817b1a0c93c523f89ac6c9d8625548af4620a7ce438bf5a76e23327284"}, - {file = "grpcio_tools-1.57.0-cp311-cp311-win_amd64.whl", hash = "sha256:1f9e917a9f18087f6c14b4d4508fb94fca5c2f96852363a89232fb9b2124ac1f"}, - {file = "grpcio_tools-1.57.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:9f2aefa8a37bd2c4db1a3f1aca11377e2766214520fb70e67071f4ff8d8b0fa5"}, - {file = "grpcio_tools-1.57.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:850cbda0ec5d24c39e7215ede410276040692ca45d105fbbeada407fa03f0ac0"}, - {file = "grpcio_tools-1.57.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:6fa52972c9647876ea35f6dc2b51002a74ed900ec7894586cbb2fe76f64f99de"}, - {file = "grpcio_tools-1.57.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0eea89d7542719594e50e2283f51a072978b953e8b3e9fd7c59a2c762d4c1"}, - {file = "grpcio_tools-1.57.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3da5240211252fc70a6451fe00c143e2ab2f7bfc2445695ad2ed056b8e48d96"}, - {file = "grpcio_tools-1.57.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a0256f8786ac9e4db618a1aa492bb3472569a0946fd3ee862ffe23196323da55"}, - {file = "grpcio_tools-1.57.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c026bdf5c1366ce88b7bbe2d8207374d675afd3fd911f60752103de3da4a41d2"}, - {file = "grpcio_tools-1.57.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9053c2f655589545be08b9d6a673e92970173a4bf11a4b9f18cd6e9af626b587"}, - {file = "grpcio_tools-1.57.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:81ec4dbb696e095057b2528d11a8da04be6bbe2b967fa07d4ea9ba6354338cbf"}, - {file = "grpcio_tools-1.57.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:495e2946406963e0b9f063f76d5af0f2a19517dac2b367b5b044432ac9194296"}, - {file = "grpcio_tools-1.57.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:7b46fc6aa8eb7edd18cafcd21fd98703cb6c09e46b507de335fca7f0161dfccb"}, - {file = "grpcio_tools-1.57.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb81ff861692111fa81bd85f64584e624cb4013bd66fbce8a209b8893f5ce398"}, - {file = "grpcio_tools-1.57.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a42dc220eb5305f470855c9284f4c8e85ae59d6d742cd07946b0cbe5e9ca186"}, - {file = "grpcio_tools-1.57.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:90d10d9038ba46a595a223a34f136c9230e3d6d7abc2433dbf0e1c31939d3a8b"}, - {file = "grpcio_tools-1.57.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5bc3e6d338aefb052e19cedabe00452be46d0c10a4ed29ee77abb00402e438fe"}, - {file = "grpcio_tools-1.57.0-cp38-cp38-win32.whl", hash = "sha256:34b36217b17b5bea674a414229913e1fd80ede328be51e1b531fcc62abd393b0"}, - {file = "grpcio_tools-1.57.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbde4004a0688400036342ff73e3706e8940483e2871547b1354d59e93a38277"}, - {file = "grpcio_tools-1.57.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:784574709b9690dc28696617ea69352e2132352fdfc9bc89afa8e39f99ae538e"}, - {file = "grpcio_tools-1.57.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:85ac4e62eb44428cde025fd9ab7554002315fc7880f791c553fc5a0015cc9931"}, - {file = "grpcio_tools-1.57.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:dc771d4db5701f280957bbcee91745e0686d00ed1c6aa7e05ba30a58b02d70a1"}, - {file = "grpcio_tools-1.57.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3ac06703c412f8167a9062eaf6099409967e33bf98fa5b02be4b4689b6bdf39"}, - {file = "grpcio_tools-1.57.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02d78c034109f46032c7217260066d49d41e6bcaf588fa28fa40fe2f83445347"}, - {file = "grpcio_tools-1.57.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2db25f15ed44327f2e02d0c4fe741ac966f9500e407047d8a7c7fccf2df65616"}, - {file = "grpcio_tools-1.57.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2b417c97936d94874a3ce7ed8deab910f2233e3612134507cfee4af8735c38a6"}, - {file = "grpcio_tools-1.57.0-cp39-cp39-win32.whl", hash = "sha256:f717cce5093e6b6049d9ea6d12fdf3658efdb1a80772f7737db1f8510b876df6"}, - {file = "grpcio_tools-1.57.0-cp39-cp39-win_amd64.whl", hash = "sha256:1c0e8a1a32973a5d59fbcc19232f925e5c48116e9411f788033a31c5ca5130b4"}, + {file = "grpcio-tools-1.58.0.tar.gz", hash = "sha256:6f4d80ceb591e31ca4dceec747dbe56132e1392a0a9bb1c8fe001d1b5cac898a"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:60c874908f3b40f32f1bb0221f7b3ab65ecb53a4d0a9f0a394f031f1b292c177"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:1852e798f31e5437ca7b37abc910e028b34732fb19364862cedb87b1dab66fad"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:149fb48f53cb691a6328f68bed8e4036c730f7106b7f98e92c2c0403f0b9e93c"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba3d383e5ca93826038b70f326fce8e8d12dd9b2f64d363a3d612f7475f12dd2"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6997511e9d2979f7a2389479682dbb06823f21a904e8fb0a5c6baaf1b4b4a863"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8de0b701da479643f71fad71fe66885cddd89441ae16e2c724939b47742dc72e"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:43cc23908b63fcaefe690b10f68a2d8652c994b5b36ab77d2271d9608c895320"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-win32.whl", hash = "sha256:2c2221123d010dc6231799e63a37f2f4786bf614ef65b23009c387cd20d8b193"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-win_amd64.whl", hash = "sha256:df2788736bdf58abe7b0e4d6b1ff806f7686c98c5ad900da312252e3322d91c4"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:b6ea5578712cdb29b0ff60bfc6405bf0e8d681b9c71d106dd1cda54fe7fe4e55"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:c29880f491581c83181c0a84a4d11402af2b13166a5266f64e246adf1da7aa66"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:32d51e933c3565414dd0835f930bb28a1cdeba435d9d2c87fa3cf8b1d284db3c"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ad9d77f25514584b1ddc981d70c9e50dfcfc388aa5ba943eee67520c5267ed9"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4882382631e6352819059278a5c878ce0b067008dd490911d16d5616e8a36d85"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d84091a189d848d94645b7c48b61734c12ec03b0d46e5fc0049343a26989ac5c"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:85ac28a9621e9b92a3fc416288c4ce45542db0b4c31b3e23031dd8e0a0ec5590"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-win32.whl", hash = "sha256:7371d8ea80234b29affec145e25569523f549520ed7e53b2aa92bed412cdecfd"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-win_amd64.whl", hash = "sha256:6997df6e7c5cf4d3ddc764240c1ff6a04b45d70ec28913b38fbc6396ef743e12"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:ac65b8d6e3acaf88b815edf9af88ff844b6600ff3d2591c05ba4f655b45d5fb4"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:88e8191d0dd789bebf42533808728f5ce75d2c51e2a72bdf20abe5b5e3fbec42"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:a3dbece2a121761499a659b799979d4b738586d1065439053de553773eee11ca"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1086fe240c4c879b9721952b47d46996deb283c2d9355a8dc24a804811aacf70"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ae3dca059d5b358dd03fb63277428fa7d771605d4074a019138dd38d70719a"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3f8904ac7fc3da2e874f00b3a986e8b7e004f499344a8e7eb213c26dfb025041"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:aadbd8393ae332e49731adb31e741f2e689989150569b7acc939f5ea43124e2d"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1cb6e24194786687d4f23c64de1f0ce553af51de22746911bc37340f85f9783e"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:6ec43909095c630df3e479e77469bdad367067431f4af602f6ccb978a3b78afd"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:4be49ed320b0ebcbc21d19ef555fbf229c1c452105522b728e1171ee2052078e"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:28eefebddec3d3adf19baca78f8b82a2287d358e1b1575ae018cdca8eacc6269"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ef8c696e9d78676cc3f583a92bbbf2c84e94e350f7ad22f150a52559f4599d1"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9aeb5949e46558d21c51fd3ec3eeecc59c94dbca76c67c0a80d3da6b7437930c"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f7144aad9396d35fb1b80429600a970b559c2ad4d07020eeb180fe83cea2bee"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ee26e9253a721fff355737649678535f76cf5d642aa3ac0cd937832559b90af"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-win32.whl", hash = "sha256:343f572312039059a8797d6e29a7fc62196e73131ab01755660a9d48202267c1"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-win_amd64.whl", hash = "sha256:cd7acfbb43b7338a78cf4a67528d05530d574d92b7c829d185b78dfc451d158f"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:46628247fbce86d18232eead24bd22ed0826c79f3fe2fc2fbdbde45971361049"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:51587842a54e025a3d0d37afcf4ef2b7ac1def9a5d17448665cb424b53d6c287"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:a062ae3072a2a39a3c057f4d68b57b021f1dd2956cd09aab39709f6af494e1de"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eec3c93a08df11c80ef1c29a616bcbb0d83dbc6ea41b48306fcacc720416dfa7"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b63f823ac991ff77104da614d2a2485a59d37d57830eb2e387a6e2a3edc7fa2b"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:579c11a9f198847ed48dbc4f211c67fe96a73320b87c81f01b044b72e24a7d77"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6ca2fc1dd8049d417a5034d944c9df05cee76f855b3e431627ab4292e7c01c47"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-win32.whl", hash = "sha256:453023120114c35d3d9d6717ea0820e5d5c140f51f9d0b621de4397ff854471b"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-win_amd64.whl", hash = "sha256:b6c896f1df99c35cf062d4803c15663ff00a33ff09add28baa6e475cf6b5e258"}, ] [package.dependencies] -grpcio = ">=1.57.0" +grpcio = ">=1.58.0" protobuf = ">=4.21.6,<5.0dev" setuptools = "*" @@ -1522,6 +1584,7 @@ setuptools = "*" name = "hiredis" version = "2.2.3" description = "Python wrapper for hiredis" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1620,6 +1683,7 @@ files = [ name = "identify" version = "2.5.27" description = "File identification library for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1634,6 +1698,7 @@ license = ["ukkonen"] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1645,6 +1710,7 @@ files = [ name = "importlib-metadata" version = "6.8.0" description = "Read metadata from Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1664,6 +1730,7 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "importlib-resources" version = "6.0.1" description = "Read resources from Python packages" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1682,6 +1749,7 @@ testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1691,13 +1759,14 @@ files = [ [[package]] name = "ipykernel" -version = "6.25.1" +version = "6.25.2" description = "IPython Kernel for Jupyter" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.25.1-py3-none-any.whl", hash = "sha256:c8a2430b357073b37c76c21c52184db42f6b4b0e438e1eb7df3c4440d120497c"}, - {file = "ipykernel-6.25.1.tar.gz", hash = "sha256:050391364c0977e768e354bdb60cbbfbee7cbb943b1af1618382021136ffd42f"}, + {file = "ipykernel-6.25.2-py3-none-any.whl", hash = "sha256:2e2ee359baba19f10251b99415bb39de1e97d04e1fab385646f24f0596510b77"}, + {file = "ipykernel-6.25.2.tar.gz", hash = "sha256:f468ddd1f17acb48c8ce67fcfa49ba6d46d4f9ac0438c1f441be7c3d1372230b"}, ] [package.dependencies] @@ -1706,7 +1775,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -1726,6 +1795,7 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio" name = "ipympl" version = "0.9.3" description = "Matplotlib Jupyter Extension" +category = "dev" optional = false python-versions = "*" files = [ @@ -1747,13 +1817,14 @@ docs = ["Sphinx (>=1.5)", "myst-nb", "sphinx-book-theme", "sphinx-copybutton", " [[package]] name = "ipython" -version = "8.14.0" +version = "8.15.0" description = "IPython: Productive Interactive Computing" +category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "ipython-8.14.0-py3-none-any.whl", hash = "sha256:248aca623f5c99a6635bc3857677b7320b9b8039f99f070ee0d20a5ca5a8e6bf"}, - {file = "ipython-8.14.0.tar.gz", hash = "sha256:1d197b907b6ba441b692c48cf2a3a2de280dc0ac91a3405b39349a50272ca0a1"}, + {file = "ipython-8.15.0-py3-none-any.whl", hash = "sha256:45a2c3a529296870a97b7de34eda4a31bee16bc7bf954e07d39abe49caf8f887"}, + {file = "ipython-8.15.0.tar.gz", hash = "sha256:2baeb5be6949eeebf532150f81746f8333e2ccce02de1c7eedde3f23ed5e9f1e"}, ] [package.dependencies] @@ -1761,6 +1832,7 @@ appnope = {version = "*", markers = "sys_platform == \"darwin\""} backcall = "*" colorama = {version = "*", markers = "sys_platform == \"win32\""} decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} @@ -1772,9 +1844,9 @@ traitlets = ">=5" typing-extensions = {version = "*", markers = "python_version < \"3.10\""} [package.extras] -all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] black = ["black"] -doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] kernel = ["ipykernel"] nbconvert = ["nbconvert"] nbformat = ["nbformat"] @@ -1788,6 +1860,7 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "ipython-autotime" version = "0.3.1" description = "Time everything in IPython" +category = "dev" optional = false python-versions = "*" files = [ @@ -1802,6 +1875,7 @@ ipython = "*" name = "ipython-genutils" version = "0.2.0" description = "Vestigial utilities from IPython" +category = "dev" optional = false python-versions = "*" files = [ @@ -1813,6 +1887,7 @@ files = [ name = "ipywidgets" version = "8.1.0" description = "Jupyter interactive widgets" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1834,6 +1909,7 @@ test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1848,6 +1924,7 @@ arrow = ">=0.15.0" name = "jedi" version = "0.19.0" description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1867,6 +1944,7 @@ testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1884,6 +1962,7 @@ i18n = ["Babel (>=2.7)"] name = "jmespath" version = "1.0.1" description = "JSON Matching Expressions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1895,6 +1974,7 @@ files = [ name = "joblib" version = "1.3.2" description = "Lightweight pipelining with Python functions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1906,6 +1986,7 @@ files = [ name = "json5" version = "0.9.14" description = "A Python implementation of the JSON5 data format." +category = "dev" optional = false python-versions = "*" files = [ @@ -1920,6 +2001,7 @@ dev = ["hypothesis"] name = "jsonpointer" version = "2.4" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ @@ -1930,6 +2012,7 @@ files = [ name = "jsonschema" version = "4.19.0" description = "An implementation of JSON Schema validation for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1959,6 +2042,7 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2023.7.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1973,6 +2057,7 @@ referencing = ">=0.28.0" name = "jupyter" version = "1.0.0" description = "Jupyter metapackage. Install all the Jupyter components in one go." +category = "dev" optional = false python-versions = "*" files = [ @@ -1993,6 +2078,7 @@ qtconsole = "*" name = "jupyter-client" version = "8.3.1" description = "Jupyter protocol implementation and client libraries" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2002,7 +2088,7 @@ files = [ [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -2016,6 +2102,7 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt name = "jupyter-console" version = "6.6.3" description = "Jupyter terminal console" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2027,7 +2114,7 @@ files = [ ipykernel = ">=6.14" ipython = "*" jupyter-client = ">=7.0.0" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" prompt-toolkit = ">=3.0.30" pygments = "*" pyzmq = ">=17" @@ -2040,6 +2127,7 @@ test = ["flaky", "pexpect", "pytest"] name = "jupyter-core" version = "5.3.1" description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2060,6 +2148,7 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] name = "jupyter-events" version = "0.7.0" description = "Jupyter Event System library" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2085,6 +2174,7 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p name = "jupyter-lsp" version = "2.2.0" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2098,13 +2188,14 @@ jupyter-server = ">=1.1.2" [[package]] name = "jupyter-server" -version = "2.7.2" +version = "2.7.3" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server-2.7.2-py3-none-any.whl", hash = "sha256:98a375347b580e837e7016007c24680a4261ed8ad7cd35196ac087d229f48e5a"}, - {file = "jupyter_server-2.7.2.tar.gz", hash = "sha256:d64fb4e593907290e5df916e3c9399c15ab2cd7bdb71cbcd1d36452dbfb30523"}, + {file = "jupyter_server-2.7.3-py3-none-any.whl", hash = "sha256:8e4b90380b59d7a1e31086c4692231f2a2ea4cb269f5516e60aba72ce8317fc9"}, + {file = "jupyter_server-2.7.3.tar.gz", hash = "sha256:d4916c8581c4ebbc534cebdaa8eca2478d9f3bfdd88eae29fcab0120eac57649"}, ] [package.dependencies] @@ -2112,7 +2203,7 @@ anyio = ">=3.1.0" argon2-cffi = "*" jinja2 = "*" jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" jupyter-events = ">=0.6.0" jupyter-server-terminals = "*" nbconvert = ">=6.4.4" @@ -2136,6 +2227,7 @@ test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-sc name = "jupyter-server-terminals" version = "0.4.4" description = "A Jupyter Server Extension Providing Terminals." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2155,6 +2247,7 @@ test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", name = "jupyterlab" version = "4.0.5" description = "JupyterLab computational environment" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2187,6 +2280,7 @@ test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-cons name = "jupyterlab-pygments" version = "0.2.2" description = "Pygments theme using JupyterLab CSS variables" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2198,6 +2292,7 @@ files = [ name = "jupyterlab-server" version = "2.24.0" description = "A set of server components for JupyterLab and JupyterLab like applications." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2224,6 +2319,7 @@ test = ["hatch", "ipykernel", "jupyterlab-server[openapi]", "openapi-spec-valida name = "jupyterlab-widgets" version = "3.0.8" description = "Jupyter interactive widgets for JupyterLab" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2235,6 +2331,7 @@ files = [ name = "kiwisolver" version = "1.4.5" description = "A fast implementation of the Cassowary constraint solver" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2348,6 +2445,7 @@ files = [ name = "lightning-utilities" version = "0.9.0" description = "PyTorch Lightning Sample project." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2366,41 +2464,43 @@ typing = ["mypy (>=1.0.0)"] [[package]] name = "llvmlite" -version = "0.41.0rc1" +version = "0.40.1" description = "lightweight wrapper around basic LLVM functionality" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "llvmlite-0.41.0rc1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ca2ecd52ad39e3018fdffcdb937e5b787bf0e5b892d9656aa7c30b12361a6cab"}, - {file = "llvmlite-0.41.0rc1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:139040cb00610bf9987546b01c59bce7421e30caab89d8c6632b616c24e4da5c"}, - {file = "llvmlite-0.41.0rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eea7266005bbbe5dc6214c200f011bbb6d61640e57d9b663a7bf6d4e786fdd42"}, - {file = "llvmlite-0.41.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9037ffcab90d1db62c58120884e78e094b17be0f929ab7bffdbe05be56253eb8"}, - {file = "llvmlite-0.41.0rc1-cp310-cp310-win32.whl", hash = "sha256:6d3c6fbaac49fe4c6b190a06387303bd4723707c5f7d825f771fe4ad546a2bf6"}, - {file = "llvmlite-0.41.0rc1-cp310-cp310-win_amd64.whl", hash = "sha256:810fbcf49f5362f940be095ad61581ffe0546f76f79894bcae0da6d4944ecc7d"}, - {file = "llvmlite-0.41.0rc1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7e8dec776e68f2839eaaaea456fae832710088dfdba6d3bf9d40a313e6fa5e"}, - {file = "llvmlite-0.41.0rc1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67c7e5b50b31aeeeeb51f437ab7ecf0ab822e8fe7c3e4216e8d94f0c15644e71"}, - {file = "llvmlite-0.41.0rc1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90b0f37b47feed8f727eb178d71fab51ebf682f4a182692e16fcb22286f965d5"}, - {file = "llvmlite-0.41.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4190d1f148ebd79a0d9da4a60b187157d9c2c09f88f9113146f9e026b840859"}, - {file = "llvmlite-0.41.0rc1-cp311-cp311-win_amd64.whl", hash = "sha256:ed43d545edb62ba58853968520553080fdbfa4171f1fd9fa98a749b106edff3d"}, - {file = "llvmlite-0.41.0rc1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:80c8be08e5a4d30d4d3c98d8ebc9ffaf953ac649aeccf62a2be2fc7a1623f205"}, - {file = "llvmlite-0.41.0rc1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:82a372336f2b8b428dc96649de8e51a08f7c031eca901aba5319cd48b49366d0"}, - {file = "llvmlite-0.41.0rc1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea966db9703759918529e429a5a69c3644b110cfd09e36c8780bfbd15da8f5f8"}, - {file = "llvmlite-0.41.0rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:673b3cb15b70baaefe29fe8b3169b212cb27392d2d8527d3a9c469737d3442a2"}, - {file = "llvmlite-0.41.0rc1-cp38-cp38-win32.whl", hash = "sha256:84baf82e20d3e87a7dad6fd6d1f3cb467ab58cd57d855ba4928686aae47908dd"}, - {file = "llvmlite-0.41.0rc1-cp38-cp38-win_amd64.whl", hash = "sha256:3994a0b666914aba13b45b8af3503cb410c91d58d191836a10ad48c215a84456"}, - {file = "llvmlite-0.41.0rc1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a9b54bd2c143e8de200fba58b3d8abd1cc832dc25463703e78eb264eff032946"}, - {file = "llvmlite-0.41.0rc1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:80da4328f78f4d627581a74ec258cfeb2dfb8464eacf5a0d06f3200e1b18b0d1"}, - {file = "llvmlite-0.41.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c775d3917db0245547fd0ad48ffac06eca9a9f6a4abb6d8c32d420dab5a9d19"}, - {file = "llvmlite-0.41.0rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6085fecdbd4c1499c82162ec3bf63f0136b95fa2174ba74c8b1de8241748bd5a"}, - {file = "llvmlite-0.41.0rc1-cp39-cp39-win32.whl", hash = "sha256:650a646e0c530e18cc13f34856fee71f47260c9ddbc821a3d75bc8b1147aa5eb"}, - {file = "llvmlite-0.41.0rc1-cp39-cp39-win_amd64.whl", hash = "sha256:f3f143332a95a1af6e89c1a37a2e62669e001eb06140d463fcac4678fdb29844"}, - {file = "llvmlite-0.41.0rc1.tar.gz", hash = "sha256:542544e751db411ca99ce4fc3f2e65c4a79d0349be1eb144131a40d261af18aa"}, + {file = "llvmlite-0.40.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:84ce9b1c7a59936382ffde7871978cddcda14098e5a76d961e204523e5c372fb"}, + {file = "llvmlite-0.40.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3673c53cb21c65d2ff3704962b5958e967c6fc0bd0cff772998face199e8d87b"}, + {file = "llvmlite-0.40.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bba2747cf5b4954e945c287fe310b3fcc484e2a9d1b0c273e99eb17d103bb0e6"}, + {file = "llvmlite-0.40.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbd5e82cc990e5a3e343a3bf855c26fdfe3bfae55225f00efd01c05bbda79918"}, + {file = "llvmlite-0.40.1-cp310-cp310-win32.whl", hash = "sha256:09f83ea7a54509c285f905d968184bba00fc31ebf12f2b6b1494d677bb7dde9b"}, + {file = "llvmlite-0.40.1-cp310-cp310-win_amd64.whl", hash = "sha256:7b37297f3cbd68d14a97223a30620589d98ad1890e5040c9e5fc181063f4ed49"}, + {file = "llvmlite-0.40.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a66a5bd580951751b4268f4c3bddcef92682814d6bc72f3cd3bb67f335dd7097"}, + {file = "llvmlite-0.40.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:467b43836b388eaedc5a106d76761e388dbc4674b2f2237bc477c6895b15a634"}, + {file = "llvmlite-0.40.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c23edd196bd797dc3a7860799054ea3488d2824ecabc03f9135110c2e39fcbc"}, + {file = "llvmlite-0.40.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a36d9f244b6680cb90bbca66b146dabb2972f4180c64415c96f7c8a2d8b60a36"}, + {file = "llvmlite-0.40.1-cp311-cp311-win_amd64.whl", hash = "sha256:5b3076dc4e9c107d16dc15ecb7f2faf94f7736cd2d5e9f4dc06287fd672452c1"}, + {file = "llvmlite-0.40.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a7525db121f2e699809b539b5308228854ccab6693ecb01b52c44a2f5647e20"}, + {file = "llvmlite-0.40.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:84747289775d0874e506f907a4513db889471607db19b04de97d144047fec885"}, + {file = "llvmlite-0.40.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e35766e42acef0fe7d1c43169a8ffc327a47808fae6a067b049fe0e9bbf84dd5"}, + {file = "llvmlite-0.40.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cda71de10a1f48416309e408ea83dab5bf36058f83e13b86a2961defed265568"}, + {file = "llvmlite-0.40.1-cp38-cp38-win32.whl", hash = "sha256:96707ebad8b051bbb4fc40c65ef93b7eeee16643bd4d579a14d11578e4b7a647"}, + {file = "llvmlite-0.40.1-cp38-cp38-win_amd64.whl", hash = "sha256:e44f854dc11559795bcdeaf12303759e56213d42dabbf91a5897aa2d8b033810"}, + {file = "llvmlite-0.40.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f643d15aacd0b0b0dc8b74b693822ba3f9a53fa63bc6a178c2dba7cc88f42144"}, + {file = "llvmlite-0.40.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:39a0b4d0088c01a469a5860d2e2d7a9b4e6a93c0f07eb26e71a9a872a8cadf8d"}, + {file = "llvmlite-0.40.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9329b930d699699846623054121ed105fd0823ed2180906d3b3235d361645490"}, + {file = "llvmlite-0.40.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2dbbb8424037ca287983b115a29adf37d806baf7e1bf4a67bd2cffb74e085ed"}, + {file = "llvmlite-0.40.1-cp39-cp39-win32.whl", hash = "sha256:e74e7bec3235a1e1c9ad97d897a620c5007d0ed80c32c84c1d787e7daa17e4ec"}, + {file = "llvmlite-0.40.1-cp39-cp39-win_amd64.whl", hash = "sha256:ff8f31111bb99d135ff296757dc81ab36c2dee54ed4bd429158a96da9807c316"}, + {file = "llvmlite-0.40.1.tar.gz", hash = "sha256:5cdb0d45df602099d833d50bd9e81353a5e036242d3c003c5b294fc61d1986b4"}, ] [[package]] name = "markupsafe" version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2460,6 +2560,7 @@ files = [ name = "matplotlib" version = "3.7.2" description = "Python plotting package" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2522,6 +2623,7 @@ python-dateutil = ">=2.7" name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2536,6 +2638,7 @@ traitlets = "*" name = "mistune" version = "3.0.1" description = "A sane and fast Markdown parser with useful plugins and renderers" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2547,6 +2650,7 @@ files = [ name = "mlflow-skinny" version = "2.6.0" description = "MLflow: A Platform for ML Development and Productionization" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -2577,13 +2681,14 @@ sqlserver = ["mlflow-dbstore"] [[package]] name = "moto" -version = "4.2.0" +version = "4.2.2" description = "" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "moto-4.2.0-py2.py3-none-any.whl", hash = "sha256:e4835912f05627b6a53b938562b717122230fb038d023819133f8526f60ed0a7"}, - {file = "moto-4.2.0.tar.gz", hash = "sha256:00fbae396fc48c3596e47b4e3267c1a41ca01c968de023beb68e774c63910b58"}, + {file = "moto-4.2.2-py2.py3-none-any.whl", hash = "sha256:2a9cbcd9da1a66b23f95d62ef91968284445233a606b4de949379395056276fb"}, + {file = "moto-4.2.2.tar.gz", hash = "sha256:ee34c4c3f53900d953180946920c9dba127a483e2ed40e6dbf93d4ae2e760e7c"}, ] [package.dependencies] @@ -2627,6 +2732,7 @@ xray = ["aws-xray-sdk (>=0.93,!=0.96)", "setuptools"] name = "mpmath" version = "1.3.0" description = "Python library for arbitrary-precision floating-point arithmetic" +category = "dev" optional = false python-versions = "*" files = [ @@ -2644,6 +2750,7 @@ tests = ["pytest (>=4.6)"] name = "multidict" version = "6.0.4" description = "multidict implementation" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2727,6 +2834,7 @@ files = [ name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2738,6 +2846,7 @@ files = [ name = "nb-black" version = "1.0.7" description = "A simple extension for Jupyter Notebook and Jupyter Lab to beautify Python code automatically using Black." +category = "dev" optional = false python-versions = "*" files = [ @@ -2751,6 +2860,7 @@ ipython = "*" name = "nbclient" version = "0.8.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -2760,7 +2870,7 @@ files = [ [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" nbformat = ">=5.1" traitlets = ">=5.4" @@ -2773,6 +2883,7 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= name = "nbconvert" version = "7.8.0" description = "Converting Jupyter Notebooks" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2811,6 +2922,7 @@ webpdf = ["playwright"] name = "nbformat" version = "5.9.2" description = "The Jupyter Notebook format" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2832,6 +2944,7 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] name = "nest-asyncio" version = "1.5.7" description = "Patch asyncio to allow nested event loops" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2843,6 +2956,7 @@ files = [ name = "networkx" version = "3.1" description = "Python package for creating and manipulating graphs and networks" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2861,6 +2975,7 @@ test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] name = "nodeenv" version = "1.8.0" description = "Node.js virtual environment builder" +category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -2875,6 +2990,7 @@ setuptools = "*" name = "notebook" version = "7.0.3" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2898,6 +3014,7 @@ test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4 name = "notebook-shim" version = "0.2.3" description = "A shim layer for notebook traits and config" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2913,42 +3030,47 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numba" -version = "0.58.0rc1" +version = "0.57.1" description = "compiling Python code using LLVM" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "numba-0.58.0rc1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6c1223ce6daf8666805bd04247beef22197df46a9548b01446a10d4e210c9abb"}, - {file = "numba-0.58.0rc1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f0f452ef615e03961a201fec4fc43bb2567579bd0868b5b9bd12ed96c5de9b3"}, - {file = "numba-0.58.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8caf704c14f68118c16ea711471c9f56dbe5f19896a858bac3b19bfee67d8542"}, - {file = "numba-0.58.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:dab88fe58311a81fe393b156c0c390111ed90a277ab396a6d898c14288d42929"}, - {file = "numba-0.58.0rc1-cp310-cp310-win_amd64.whl", hash = "sha256:b9eda2d5cb199fa6fefdecf7e0fa8d6f41139f391c673d2700be9c4d2c70987d"}, - {file = "numba-0.58.0rc1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:47f01f282d4043441c91b9e6f3bb709b8e4a9077fc5958f67a854999e47c6a85"}, - {file = "numba-0.58.0rc1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2c877e9d6cf2d78d97df7647546b699c36aeb1934c2cb8a566d22782d950b224"}, - {file = "numba-0.58.0rc1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7a3f06ca158c27617d740d891116263ea1f1f40394ca349f030b419f884a9974"}, - {file = "numba-0.58.0rc1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ffc763c1b552f5775694f3b86b8c88228ae07b1f65d10b585cd79e87a26d2a6c"}, - {file = "numba-0.58.0rc1-cp311-cp311-win_amd64.whl", hash = "sha256:8bafc2d24fc90f9696e75ae68dd409dac0cbfc0143c2e5aa1ab0264b8ab16817"}, - {file = "numba-0.58.0rc1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:09e26c2552b5f26e3efe1edcb5498274c5d271352658cf720f430b6dd9522189"}, - {file = "numba-0.58.0rc1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f66ff39ff2ee7408e0463d61ea0c21a8d7d7023107edbc0d6140ae4071dc68c4"}, - {file = "numba-0.58.0rc1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f757807a0ee828390962bfd5146d3ef327ec275be268eed170e204f30ea6df3b"}, - {file = "numba-0.58.0rc1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f239029b9e5640ad882ce1f58bf51e2e2ef499ee3b373bef4a9807d7349146f4"}, - {file = "numba-0.58.0rc1-cp38-cp38-win_amd64.whl", hash = "sha256:31f9025872bee73f34ebefe932a1821f7b4bdd23a0059c2dc199afb89f989022"}, - {file = "numba-0.58.0rc1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9db60fdee8fdc55940e0c48889640cab948f63916a5d114761a9825f72b6be30"}, - {file = "numba-0.58.0rc1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef4b792a3c8f874231c0963e404f8e83401b0a6029ee0f83222d951da1e2e51a"}, - {file = "numba-0.58.0rc1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8c6f7cdf81615b8f56ecc24421726232b5105ce9fa9773b59cc1b3b7029ccbb2"}, - {file = "numba-0.58.0rc1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b7033722dde854088ed520b35a7440e94de2fee818d46be529870b9e9ad3fd9c"}, - {file = "numba-0.58.0rc1-cp39-cp39-win_amd64.whl", hash = "sha256:3357af70fdddd9011a00156595d53f2baef85d58d9bb4abd5814edba3314ea19"}, - {file = "numba-0.58.0rc1.tar.gz", hash = "sha256:9f330643538b5f874250058b1a196a14a1dd68f7044f472d284c39664126d8fe"}, + {file = "numba-0.57.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db8268eb5093cae2288942a8cbd69c9352f6fe6e0bfa0a9a27679436f92e4248"}, + {file = "numba-0.57.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:643cb09a9ba9e1bd8b060e910aeca455e9442361e80fce97690795ff9840e681"}, + {file = "numba-0.57.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:53e9fab973d9e82c9f8449f75994a898daaaf821d84f06fbb0b9de2293dd9306"}, + {file = "numba-0.57.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c0602e4f896e6a6d844517c3ab434bc978e7698a22a733cc8124465898c28fa8"}, + {file = "numba-0.57.1-cp310-cp310-win32.whl", hash = "sha256:3d6483c27520d16cf5d122868b79cad79e48056ecb721b52d70c126bed65431e"}, + {file = "numba-0.57.1-cp310-cp310-win_amd64.whl", hash = "sha256:a32ee263649aa3c3587b833d6311305379529570e6c20deb0c6f4fb5bc7020db"}, + {file = "numba-0.57.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c078f84b5529a7fdb8413bb33d5100f11ec7b44aa705857d9eb4e54a54ff505"}, + {file = "numba-0.57.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e447c4634d1cc99ab50d4faa68f680f1d88b06a2a05acf134aa6fcc0342adeca"}, + {file = "numba-0.57.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4838edef2df5f056cb8974670f3d66562e751040c448eb0b67c7e2fec1726649"}, + {file = "numba-0.57.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9b17fbe4a69dcd9a7cd49916b6463cd9a82af5f84911feeb40793b8bce00dfa7"}, + {file = "numba-0.57.1-cp311-cp311-win_amd64.whl", hash = "sha256:93df62304ada9b351818ba19b1cfbddaf72cd89348e81474326ca0b23bf0bae1"}, + {file = "numba-0.57.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8e00ca63c5d0ad2beeb78d77f087b3a88c45ea9b97e7622ab2ec411a868420ee"}, + {file = "numba-0.57.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ff66d5b022af6c7d81ddbefa87768e78ed4f834ab2da6ca2fd0d60a9e69b94f5"}, + {file = "numba-0.57.1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:60ec56386076e9eed106a87c96626d5686fbb16293b9834f0849cf78c9491779"}, + {file = "numba-0.57.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6c057ccedca95df23802b6ccad86bb318be624af45b5a38bb8412882be57a681"}, + {file = "numba-0.57.1-cp38-cp38-win32.whl", hash = "sha256:5a82bf37444039c732485c072fda21a361790ed990f88db57fd6941cd5e5d307"}, + {file = "numba-0.57.1-cp38-cp38-win_amd64.whl", hash = "sha256:9bcc36478773ce838f38afd9a4dfafc328d4ffb1915381353d657da7f6473282"}, + {file = "numba-0.57.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae50c8c90c2ce8057f9618b589223e13faa8cbc037d8f15b4aad95a2c33a0582"}, + {file = "numba-0.57.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9a1b2b69448e510d672ff9a6b18d2db9355241d93c6a77677baa14bec67dc2a0"}, + {file = "numba-0.57.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3cf78d74ad9d289fbc1e5b1c9f2680fca7a788311eb620581893ab347ec37a7e"}, + {file = "numba-0.57.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f47dd214adc5dcd040fe9ad2adbd2192133c9075d2189ce1b3d5f9d72863ef05"}, + {file = "numba-0.57.1-cp39-cp39-win32.whl", hash = "sha256:a3eac19529956185677acb7f01864919761bfffbb9ae04bbbe5e84bbc06cfc2b"}, + {file = "numba-0.57.1-cp39-cp39-win_amd64.whl", hash = "sha256:9587ba1bf5f3035575e45562ada17737535c6d612df751e811d702693a72d95e"}, + {file = "numba-0.57.1.tar.gz", hash = "sha256:33c0500170d213e66d90558ad6aca57d3e03e97bb11da82e6d87ab793648cb17"}, ] [package.dependencies] -llvmlite = "==0.41.*" -numpy = ">=1.21,<1.26" +llvmlite = ">=0.40.0dev0,<0.41" +numpy = ">=1.21,<1.25" [[package]] name = "numexpr" version = "2.8.5" description = "Fast numerical expression evaluator for NumPy" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2989,42 +3111,47 @@ numpy = ">=1.13.3" [[package]] name = "numpy" -version = "1.25.2" +version = "1.24.4" description = "Fundamental package for array computing in Python" +category = "main" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" files = [ - {file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"}, - {file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"}, - {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"}, - {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"}, - {file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"}, - {file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"}, - {file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"}, - {file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"}, - {file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"}, - {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"}, - {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"}, - {file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"}, - {file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"}, - {file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"}, - {file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"}, - {file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"}, - {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"}, - {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"}, - {file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"}, - {file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"}, - {file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"}, - {file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"}, + {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, + {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, + {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, + {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, + {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, + {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, + {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, + {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, + {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, + {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, + {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, ] [[package]] name = "oauthlib" version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3041,6 +3168,7 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] name = "omegaconf" version = "2.3.0" description = "A flexible configuration library" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3049,82 +3177,84 @@ files = [ ] [package.dependencies] -antlr4-python3-runtime = "==4.9.*" +antlr4-python3-runtime = ">=4.9.0,<4.10.0" PyYAML = ">=5.1.0" [[package]] name = "orjson" -version = "3.9.5" +version = "3.9.7" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "orjson-3.9.5-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ad6845912a71adcc65df7c8a7f2155eba2096cf03ad2c061c93857de70d699ad"}, - {file = "orjson-3.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e298e0aacfcc14ef4476c3f409e85475031de24e5b23605a465e9bf4b2156273"}, - {file = "orjson-3.9.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:83c9939073281ef7dd7c5ca7f54cceccb840b440cec4b8a326bda507ff88a0a6"}, - {file = "orjson-3.9.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e174cc579904a48ee1ea3acb7045e8a6c5d52c17688dfcb00e0e842ec378cabf"}, - {file = "orjson-3.9.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f8d51702f42c785b115401e1d64a27a2ea767ae7cf1fb8edaa09c7cf1571c660"}, - {file = "orjson-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f13d61c0c7414ddee1ef4d0f303e2222f8cced5a2e26d9774751aecd72324c9e"}, - {file = "orjson-3.9.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d748cc48caf5a91c883d306ab648df1b29e16b488c9316852844dd0fd000d1c2"}, - {file = "orjson-3.9.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bd19bc08fa023e4c2cbf8294ad3f2b8922f4de9ba088dbc71e6b268fdf54591c"}, - {file = "orjson-3.9.5-cp310-none-win32.whl", hash = "sha256:5793a21a21bf34e1767e3d61a778a25feea8476dcc0bdf0ae1bc506dc34561ea"}, - {file = "orjson-3.9.5-cp310-none-win_amd64.whl", hash = "sha256:2bcec0b1024d0031ab3eab7a8cb260c8a4e4a5e35993878a2da639d69cdf6a65"}, - {file = "orjson-3.9.5-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8547b95ca0e2abd17e1471973e6d676f1d8acedd5f8fb4f739e0612651602d66"}, - {file = "orjson-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87ce174d6a38d12b3327f76145acbd26f7bc808b2b458f61e94d83cd0ebb4d76"}, - {file = "orjson-3.9.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a960bb1bc9a964d16fcc2d4af5a04ce5e4dfddca84e3060c35720d0a062064fe"}, - {file = "orjson-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a7aa5573a949760d6161d826d34dc36db6011926f836851fe9ccb55b5a7d8e8"}, - {file = "orjson-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8b2852afca17d7eea85f8e200d324e38c851c96598ac7b227e4f6c4e59fbd3df"}, - {file = "orjson-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa185959c082475288da90f996a82e05e0c437216b96f2a8111caeb1d54ef926"}, - {file = "orjson-3.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:89c9332695b838438ea4b9a482bce8ffbfddde4df92750522d928fb00b7b8dce"}, - {file = "orjson-3.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2493f1351a8f0611bc26e2d3d407efb873032b4f6b8926fed8cfed39210ca4ba"}, - {file = "orjson-3.9.5-cp311-none-win32.whl", hash = "sha256:ffc544e0e24e9ae69301b9a79df87a971fa5d1c20a6b18dca885699709d01be0"}, - {file = "orjson-3.9.5-cp311-none-win_amd64.whl", hash = "sha256:89670fe2732e3c0c54406f77cad1765c4c582f67b915c74fda742286809a0cdc"}, - {file = "orjson-3.9.5-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:15df211469625fa27eced4aa08dc03e35f99c57d45a33855cc35f218ea4071b8"}, - {file = "orjson-3.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9f17c59fe6c02bc5f89ad29edb0253d3059fe8ba64806d789af89a45c35269a"}, - {file = "orjson-3.9.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ca6b96659c7690773d8cebb6115c631f4a259a611788463e9c41e74fa53bf33f"}, - {file = "orjson-3.9.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a26fafe966e9195b149950334bdbe9026eca17fe8ffe2d8fa87fdc30ca925d30"}, - {file = "orjson-3.9.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9006b1eb645ecf460da067e2dd17768ccbb8f39b01815a571bfcfab7e8da5e52"}, - {file = "orjson-3.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebfdbf695734b1785e792a1315e41835ddf2a3e907ca0e1c87a53f23006ce01d"}, - {file = "orjson-3.9.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4a3943234342ab37d9ed78fb0a8f81cd4b9532f67bf2ac0d3aa45fa3f0a339f3"}, - {file = "orjson-3.9.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e6762755470b5c82f07b96b934af32e4d77395a11768b964aaa5eb092817bc31"}, - {file = "orjson-3.9.5-cp312-none-win_amd64.whl", hash = "sha256:c74df28749c076fd6e2157190df23d43d42b2c83e09d79b51694ee7315374ad5"}, - {file = "orjson-3.9.5-cp37-cp37m-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:88e18a74d916b74f00d0978d84e365c6bf0e7ab846792efa15756b5fb2f7d49d"}, - {file = "orjson-3.9.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d28514b5b6dfaf69097be70d0cf4f1407ec29d0f93e0b4131bf9cc8fd3f3e374"}, - {file = "orjson-3.9.5-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25b81aca8c7be61e2566246b6a0ca49f8aece70dd3f38c7f5c837f398c4cb142"}, - {file = "orjson-3.9.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:385c1c713b1e47fd92e96cf55fd88650ac6dfa0b997e8aa7ecffd8b5865078b1"}, - {file = "orjson-3.9.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9850c03a8e42fba1a508466e6a0f99472fd2b4a5f30235ea49b2a1b32c04c11"}, - {file = "orjson-3.9.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4449f84bbb13bcef493d8aa669feadfced0f7c5eea2d0d88b5cc21f812183af8"}, - {file = "orjson-3.9.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:86127bf194f3b873135e44ce5dc9212cb152b7e06798d5667a898a00f0519be4"}, - {file = "orjson-3.9.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0abcd039f05ae9ab5b0ff11624d0b9e54376253b7d3217a358d09c3edf1d36f7"}, - {file = "orjson-3.9.5-cp37-none-win32.whl", hash = "sha256:10cc8ad5ff7188efcb4bec196009d61ce525a4e09488e6d5db41218c7fe4f001"}, - {file = "orjson-3.9.5-cp37-none-win_amd64.whl", hash = "sha256:ff27e98532cb87379d1a585837d59b187907228268e7b0a87abe122b2be6968e"}, - {file = "orjson-3.9.5-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5bfa79916ef5fef75ad1f377e54a167f0de334c1fa4ebb8d0224075f3ec3d8c0"}, - {file = "orjson-3.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e87dfa6ac0dae764371ab19b35eaaa46dfcb6ef2545dfca03064f21f5d08239f"}, - {file = "orjson-3.9.5-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:50ced24a7b23058b469ecdb96e36607fc611cbaee38b58e62a55c80d1b3ad4e1"}, - {file = "orjson-3.9.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b1b74ea2a3064e1375da87788897935832e806cc784de3e789fd3c4ab8eb3fa5"}, - {file = "orjson-3.9.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7cb961efe013606913d05609f014ad43edfaced82a576e8b520a5574ce3b2b9"}, - {file = "orjson-3.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1225d2d5ee76a786bda02f8c5e15017462f8432bb960de13d7c2619dba6f0275"}, - {file = "orjson-3.9.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f39f4b99199df05c7ecdd006086259ed25886cdbd7b14c8cdb10c7675cfcca7d"}, - {file = "orjson-3.9.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a461dc9fb60cac44f2d3218c36a0c1c01132314839a0e229d7fb1bba69b810d8"}, - {file = "orjson-3.9.5-cp38-none-win32.whl", hash = "sha256:dedf1a6173748202df223aea29de814b5836732a176b33501375c66f6ab7d822"}, - {file = "orjson-3.9.5-cp38-none-win_amd64.whl", hash = "sha256:fa504082f53efcbacb9087cc8676c163237beb6e999d43e72acb4bb6f0db11e6"}, - {file = "orjson-3.9.5-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6900f0248edc1bec2a2a3095a78a7e3ef4e63f60f8ddc583687eed162eedfd69"}, - {file = "orjson-3.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17404333c40047888ac40bd8c4d49752a787e0a946e728a4e5723f111b6e55a5"}, - {file = "orjson-3.9.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0eefb7cfdd9c2bc65f19f974a5d1dfecbac711dae91ed635820c6b12da7a3c11"}, - {file = "orjson-3.9.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68c78b2a3718892dc018adbc62e8bab6ef3c0d811816d21e6973dee0ca30c152"}, - {file = "orjson-3.9.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:591ad7d9e4a9f9b104486ad5d88658c79ba29b66c5557ef9edf8ca877a3f8d11"}, - {file = "orjson-3.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cc2cbf302fbb2d0b2c3c142a663d028873232a434d89ce1b2604ebe5cc93ce8"}, - {file = "orjson-3.9.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b26b5aa5e9ee1bad2795b925b3adb1b1b34122cb977f30d89e0a1b3f24d18450"}, - {file = "orjson-3.9.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ef84724f7d29dcfe3aafb1fc5fc7788dca63e8ae626bb9298022866146091a3e"}, - {file = "orjson-3.9.5-cp39-none-win32.whl", hash = "sha256:664cff27f85939059472afd39acff152fbac9a091b7137092cb651cf5f7747b5"}, - {file = "orjson-3.9.5-cp39-none-win_amd64.whl", hash = "sha256:91dda66755795ac6100e303e206b636568d42ac83c156547634256a2e68de694"}, - {file = "orjson-3.9.5.tar.gz", hash = "sha256:6daf5ee0b3cf530b9978cdbf71024f1c16ed4a67d05f6ec435c6e7fe7a52724c"}, + {file = "orjson-3.9.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b6df858e37c321cefbf27fe7ece30a950bcc3a75618a804a0dcef7ed9dd9c92d"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5198633137780d78b86bb54dafaaa9baea698b4f059456cd4554ab7009619221"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e736815b30f7e3c9044ec06a98ee59e217a833227e10eb157f44071faddd7c5"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a19e4074bc98793458b4b3ba35a9a1d132179345e60e152a1bb48c538ab863c4"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80acafe396ab689a326ab0d80f8cc61dec0dd2c5dca5b4b3825e7b1e0132c101"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:355efdbbf0cecc3bd9b12589b8f8e9f03c813a115efa53f8dc2a523bfdb01334"}, + {file = "orjson-3.9.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3aab72d2cef7f1dd6104c89b0b4d6b416b0db5ca87cc2fac5f79c5601f549cc2"}, + {file = "orjson-3.9.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:36b1df2e4095368ee388190687cb1b8557c67bc38400a942a1a77713580b50ae"}, + {file = "orjson-3.9.7-cp310-none-win32.whl", hash = "sha256:e94b7b31aa0d65f5b7c72dd8f8227dbd3e30354b99e7a9af096d967a77f2a580"}, + {file = "orjson-3.9.7-cp310-none-win_amd64.whl", hash = "sha256:82720ab0cf5bb436bbd97a319ac529aee06077ff7e61cab57cee04a596c4f9b4"}, + {file = "orjson-3.9.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1f8b47650f90e298b78ecf4df003f66f54acdba6a0f763cc4df1eab048fe3738"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f738fee63eb263530efd4d2e9c76316c1f47b3bbf38c1bf45ae9625feed0395e"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:38e34c3a21ed41a7dbd5349e24c3725be5416641fdeedf8f56fcbab6d981c900"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21a3344163be3b2c7e22cef14fa5abe957a892b2ea0525ee86ad8186921b6cf0"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23be6b22aab83f440b62a6f5975bcabeecb672bc627face6a83bc7aeb495dc7e"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5205ec0dfab1887dd383597012199f5175035e782cdb013c542187d280ca443"}, + {file = "orjson-3.9.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8769806ea0b45d7bf75cad253fba9ac6700b7050ebb19337ff6b4e9060f963fa"}, + {file = "orjson-3.9.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f9e01239abea2f52a429fe9d95c96df95f078f0172489d691b4a848ace54a476"}, + {file = "orjson-3.9.7-cp311-none-win32.whl", hash = "sha256:8bdb6c911dae5fbf110fe4f5cba578437526334df381b3554b6ab7f626e5eeca"}, + {file = "orjson-3.9.7-cp311-none-win_amd64.whl", hash = "sha256:9d62c583b5110e6a5cf5169ab616aa4ec71f2c0c30f833306f9e378cf51b6c86"}, + {file = "orjson-3.9.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1c3cee5c23979deb8d1b82dc4cc49be59cccc0547999dbe9adb434bb7af11cf7"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a347d7b43cb609e780ff8d7b3107d4bcb5b6fd09c2702aa7bdf52f15ed09fa09"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:154fd67216c2ca38a2edb4089584504fbb6c0694b518b9020ad35ecc97252bb9"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ea3e63e61b4b0beeb08508458bdff2daca7a321468d3c4b320a758a2f554d31"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb0b0b2476f357eb2975ff040ef23978137aa674cd86204cfd15d2d17318588"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b9a20a03576c6b7022926f614ac5a6b0914486825eac89196adf3267c6489d"}, + {file = "orjson-3.9.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:915e22c93e7b7b636240c5a79da5f6e4e84988d699656c8e27f2ac4c95b8dcc0"}, + {file = "orjson-3.9.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f26fb3e8e3e2ee405c947ff44a3e384e8fa1843bc35830fe6f3d9a95a1147b6e"}, + {file = "orjson-3.9.7-cp312-none-win_amd64.whl", hash = "sha256:d8692948cada6ee21f33db5e23460f71c8010d6dfcfe293c9b96737600a7df78"}, + {file = "orjson-3.9.7-cp37-cp37m-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7bab596678d29ad969a524823c4e828929a90c09e91cc438e0ad79b37ce41166"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63ef3d371ea0b7239ace284cab9cd00d9c92b73119a7c274b437adb09bda35e6"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f8fcf696bbbc584c0c7ed4adb92fd2ad7d153a50258842787bc1524e50d7081"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90fe73a1f0321265126cbba13677dcceb367d926c7a65807bd80916af4c17047"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45a47f41b6c3beeb31ac5cf0ff7524987cfcce0a10c43156eb3ee8d92d92bf22"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a2937f528c84e64be20cb80e70cea76a6dfb74b628a04dab130679d4454395c"}, + {file = "orjson-3.9.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b4fb306c96e04c5863d52ba8d65137917a3d999059c11e659eba7b75a69167bd"}, + {file = "orjson-3.9.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:410aa9d34ad1089898f3db461b7b744d0efcf9252a9415bbdf23540d4f67589f"}, + {file = "orjson-3.9.7-cp37-none-win32.whl", hash = "sha256:26ffb398de58247ff7bde895fe30817a036f967b0ad0e1cf2b54bda5f8dcfdd9"}, + {file = "orjson-3.9.7-cp37-none-win_amd64.whl", hash = "sha256:bcb9a60ed2101af2af450318cd89c6b8313e9f8df4e8fb12b657b2e97227cf08"}, + {file = "orjson-3.9.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5da9032dac184b2ae2da4bce423edff7db34bfd936ebd7d4207ea45840f03905"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7951af8f2998045c656ba8062e8edf5e83fd82b912534ab1de1345de08a41d2b"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8e59650292aa3a8ea78073fc84184538783966528e442a1b9ed653aa282edcf"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9274ba499e7dfb8a651ee876d80386b481336d3868cba29af839370514e4dce0"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca1706e8b8b565e934c142db6a9592e6401dc430e4b067a97781a997070c5378"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83cc275cf6dcb1a248e1876cdefd3f9b5f01063854acdfd687ec360cd3c9712a"}, + {file = "orjson-3.9.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:11c10f31f2c2056585f89d8229a56013bc2fe5de51e095ebc71868d070a8dd81"}, + {file = "orjson-3.9.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cf334ce1d2fadd1bf3e5e9bf15e58e0c42b26eb6590875ce65bd877d917a58aa"}, + {file = "orjson-3.9.7-cp38-none-win32.whl", hash = "sha256:76a0fc023910d8a8ab64daed8d31d608446d2d77c6474b616b34537aa7b79c7f"}, + {file = "orjson-3.9.7-cp38-none-win_amd64.whl", hash = "sha256:7a34a199d89d82d1897fd4a47820eb50947eec9cda5fd73f4578ff692a912f89"}, + {file = "orjson-3.9.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e7e7f44e091b93eb39db88bb0cb765db09b7a7f64aea2f35e7d86cbf47046c65"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01d647b2a9c45a23a84c3e70e19d120011cba5f56131d185c1b78685457320bb"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0eb850a87e900a9c484150c414e21af53a6125a13f6e378cf4cc11ae86c8f9c5"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f4b0042d8388ac85b8330b65406c84c3229420a05068445c13ca28cc222f1f7"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd3e7aae977c723cc1dbb82f97babdb5e5fbce109630fbabb2ea5053523c89d3"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c616b796358a70b1f675a24628e4823b67d9e376df2703e893da58247458956"}, + {file = "orjson-3.9.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c3ba725cf5cf87d2d2d988d39c6a2a8b6fc983d78ff71bc728b0be54c869c884"}, + {file = "orjson-3.9.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4891d4c934f88b6c29b56395dfc7014ebf7e10b9e22ffd9877784e16c6b2064f"}, + {file = "orjson-3.9.7-cp39-none-win32.whl", hash = "sha256:14d3fb6cd1040a4a4a530b28e8085131ed94ebc90d72793c59a713de34b60838"}, + {file = "orjson-3.9.7-cp39-none-win_amd64.whl", hash = "sha256:9ef82157bbcecd75d6296d5d8b2d792242afcd064eb1ac573f8847b52e58f677"}, + {file = "orjson-3.9.7.tar.gz", hash = "sha256:85e39198f78e2f7e054d296395f6c96f5e02892337746ef5b6a1bf3ed5910142"}, ] [[package]] name = "overrides" version = "7.4.0" description = "A decorator to automatically detect mismatch when overriding a method." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3136,6 +3266,7 @@ files = [ name = "packaging" version = "23.1" description = "Core utilities for Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3147,6 +3278,7 @@ files = [ name = "pandas" version = "2.1.0" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -3211,6 +3343,7 @@ xml = ["lxml (>=4.8.0)"] name = "pandocfilters" version = "1.5.0" 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 = [ @@ -3222,6 +3355,7 @@ files = [ name = "parso" version = "0.8.3" description = "A Python Parser" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3237,6 +3371,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathspec" version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3248,6 +3383,7 @@ files = [ name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." +category = "dev" optional = false python-versions = "*" files = [ @@ -3262,6 +3398,7 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" +category = "dev" optional = false python-versions = "*" files = [ @@ -3273,6 +3410,7 @@ files = [ name = "pillow" version = "10.0.0" description = "Python Imaging Library (Fork)" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3294,6 +3432,7 @@ files = [ {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3b08d4cc24f471b2c8ca24ec060abf4bebc6b144cb89cba638c720546b1cf538"}, {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737a602fbd82afd892ca746392401b634e278cb65d55c4b7a8f48e9ef8d008d"}, {file = "Pillow-10.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f"}, + {file = "Pillow-10.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:bc2ec7c7b5d66b8ec9ce9f720dbb5fa4bace0f545acd34870eff4a369b44bf37"}, {file = "Pillow-10.0.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:d80cf684b541685fccdd84c485b31ce73fc5c9b5d7523bf1394ce134a60c6883"}, {file = "Pillow-10.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76de421f9c326da8f43d690110f0e79fe3ad1e54be811545d7d91898b4c8493e"}, {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ff539a12457809666fef6624684c008e00ff6bf455b4b89fd00a140eecd640"}, @@ -3303,6 +3442,7 @@ files = [ {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d50b6aec14bc737742ca96e85d6d0a5f9bfbded018264b3b70ff9d8c33485551"}, {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:00e65f5e822decd501e374b0650146063fbb30a7264b4d2744bdd7b913e0cab5"}, {file = "Pillow-10.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:f31f9fdbfecb042d046f9d91270a0ba28368a723302786c0009ee9b9f1f60199"}, + {file = "Pillow-10.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:1ce91b6ec08d866b14413d3f0bbdea7e24dfdc8e59f562bb77bc3fe60b6144ca"}, {file = "Pillow-10.0.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:349930d6e9c685c089284b013478d6f76e3a534e36ddfa912cde493f235372f3"}, {file = "Pillow-10.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3a684105f7c32488f7153905a4e3015a3b6c7182e106fe3c37fbb5ef3e6994c3"}, {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4f69b3700201b80bb82c3a97d5e9254084f6dd5fb5b16fc1a7b974260f89f43"}, @@ -3340,6 +3480,7 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "platformdirs" version = "3.10.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 = [ @@ -3355,6 +3496,7 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co name = "pluggy" version = "1.3.0" description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3368,13 +3510,14 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.3.3" +version = "3.4.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "pre_commit-3.3.3-py2.py3-none-any.whl", hash = "sha256:10badb65d6a38caff29703362271d7dca483d01da88f9d7e05d0b97171c136cb"}, - {file = "pre_commit-3.3.3.tar.gz", hash = "sha256:a2256f489cd913d575c145132ae196fe335da32d91a8294b7afe6622335dd023"}, + {file = "pre_commit-3.4.0-py2.py3-none-any.whl", hash = "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945"}, + {file = "pre_commit-3.4.0.tar.gz", hash = "sha256:6bbd5129a64cad4c0dfaeeb12cd8f7ea7e15b77028d985341478c8af3c759522"}, ] [package.dependencies] @@ -3388,6 +3531,7 @@ virtualenv = ">=20.10.0" name = "prometheus-client" version = "0.17.1" description = "Python client for the Prometheus monitoring system." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3402,6 +3546,7 @@ twisted = ["twisted"] name = "prompt-toolkit" version = "3.0.39" description = "Library for building powerful interactive command lines in Python" +category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -3414,30 +3559,32 @@ wcwidth = "*" [[package]] name = "protobuf" -version = "4.24.2" +version = "4.24.3" description = "" +category = "main" optional = true python-versions = ">=3.7" files = [ - {file = "protobuf-4.24.2-cp310-abi3-win32.whl", hash = "sha256:58e12d2c1aa428ece2281cef09bbaa6938b083bcda606db3da4e02e991a0d924"}, - {file = "protobuf-4.24.2-cp310-abi3-win_amd64.whl", hash = "sha256:77700b55ba41144fc64828e02afb41901b42497b8217b558e4a001f18a85f2e3"}, - {file = "protobuf-4.24.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:237b9a50bd3b7307d0d834c1b0eb1a6cd47d3f4c2da840802cd03ea288ae8880"}, - {file = "protobuf-4.24.2-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:25ae91d21e3ce8d874211110c2f7edd6384816fb44e06b2867afe35139e1fd1c"}, - {file = "protobuf-4.24.2-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:c00c3c7eb9ad3833806e21e86dca448f46035242a680f81c3fe068ff65e79c74"}, - {file = "protobuf-4.24.2-cp37-cp37m-win32.whl", hash = "sha256:4e69965e7e54de4db989289a9b971a099e626f6167a9351e9d112221fc691bc1"}, - {file = "protobuf-4.24.2-cp37-cp37m-win_amd64.whl", hash = "sha256:c5cdd486af081bf752225b26809d2d0a85e575b80a84cde5172a05bbb1990099"}, - {file = "protobuf-4.24.2-cp38-cp38-win32.whl", hash = "sha256:6bd26c1fa9038b26c5c044ee77e0ecb18463e957fefbaeb81a3feb419313a54e"}, - {file = "protobuf-4.24.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb7aa97c252279da65584af0456f802bd4b2de429eb945bbc9b3d61a42a8cd16"}, - {file = "protobuf-4.24.2-cp39-cp39-win32.whl", hash = "sha256:2b23bd6e06445699b12f525f3e92a916f2dcf45ffba441026357dea7fa46f42b"}, - {file = "protobuf-4.24.2-cp39-cp39-win_amd64.whl", hash = "sha256:839952e759fc40b5d46be319a265cf94920174d88de31657d5622b5d8d6be5cd"}, - {file = "protobuf-4.24.2-py3-none-any.whl", hash = "sha256:3b7b170d3491ceed33f723bbf2d5a260f8a4e23843799a3906f16ef736ef251e"}, - {file = "protobuf-4.24.2.tar.gz", hash = "sha256:7fda70797ddec31ddfa3576cbdcc3ddbb6b3078b737a1a87ab9136af0570cd6e"}, + {file = "protobuf-4.24.3-cp310-abi3-win32.whl", hash = "sha256:20651f11b6adc70c0f29efbe8f4a94a74caf61b6200472a9aea6e19898f9fcf4"}, + {file = "protobuf-4.24.3-cp310-abi3-win_amd64.whl", hash = "sha256:3d42e9e4796a811478c783ef63dc85b5a104b44aaaca85d4864d5b886e4b05e3"}, + {file = "protobuf-4.24.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:6e514e8af0045be2b56e56ae1bb14f43ce7ffa0f68b1c793670ccbe2c4fc7d2b"}, + {file = "protobuf-4.24.3-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:ba53c2f04798a326774f0e53b9c759eaef4f6a568ea7072ec6629851c8435959"}, + {file = "protobuf-4.24.3-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:f6ccbcf027761a2978c1406070c3788f6de4a4b2cc20800cc03d52df716ad675"}, + {file = "protobuf-4.24.3-cp37-cp37m-win32.whl", hash = "sha256:1b182c7181a2891e8f7f3a1b5242e4ec54d1f42582485a896e4de81aa17540c2"}, + {file = "protobuf-4.24.3-cp37-cp37m-win_amd64.whl", hash = "sha256:b0271a701e6782880d65a308ba42bc43874dabd1a0a0f41f72d2dac3b57f8e76"}, + {file = "protobuf-4.24.3-cp38-cp38-win32.whl", hash = "sha256:e29d79c913f17a60cf17c626f1041e5288e9885c8579832580209de8b75f2a52"}, + {file = "protobuf-4.24.3-cp38-cp38-win_amd64.whl", hash = "sha256:067f750169bc644da2e1ef18c785e85071b7c296f14ac53e0900e605da588719"}, + {file = "protobuf-4.24.3-cp39-cp39-win32.whl", hash = "sha256:2da777d34b4f4f7613cdf85c70eb9a90b1fbef9d36ae4a0ccfe014b0b07906f1"}, + {file = "protobuf-4.24.3-cp39-cp39-win_amd64.whl", hash = "sha256:f631bb982c5478e0c1c70eab383af74a84be66945ebf5dd6b06fc90079668d0b"}, + {file = "protobuf-4.24.3-py3-none-any.whl", hash = "sha256:f6f8dc65625dadaad0c8545319c2e2f0424fede988368893ca3844261342c11a"}, + {file = "protobuf-4.24.3.tar.gz", hash = "sha256:12e9ad2ec079b833176d2921be2cb24281fa591f0b119b208b788adc48c2561d"}, ] [[package]] name = "psutil" version = "5.9.5" 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 = [ @@ -3464,6 +3611,7 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -3475,6 +3623,7 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" +category = "dev" optional = false python-versions = "*" files = [ @@ -3489,6 +3638,7 @@ tests = ["pytest"] name = "pyasn1" version = "0.5.0" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +category = "main" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3500,6 +3650,7 @@ files = [ name = "pyasn1-modules" version = "0.3.0" description = "A collection of ASN.1-based protocols modules" +category = "main" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3514,6 +3665,7 @@ pyasn1 = ">=0.4.6,<0.6.0" name = "pycparser" version = "2.21" description = "C parser in Python" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3523,13 +3675,13 @@ files = [ [[package]] name = "pydruid" -version = "0.6.5" +version = "0.999.0.dev0" description = "A Python connector for Druid." +category = "main" optional = true python-versions = "*" -files = [ - {file = "pydruid-0.6.5.tar.gz", hash = "sha256:30b6efa722234183239296bf8e6d41aba7eea0eec3d68233ce6c413986864fea"}, -] +files = [] +develop = false [package.dependencies] requests = "*" @@ -3540,10 +3692,17 @@ cli = ["prompt_toolkit (>=2.0.0)", "pygments", "tabulate"] pandas = ["pandas"] sqlalchemy = ["sqlalchemy"] +[package.source] +type = "git" +url = "git@github.com:cosmic-chichu/pydruid.git" +reference = "master" +resolved_reference = "0ce16bcfd2dd666ff5294469cc47263acafca1d7" + [[package]] name = "pygments" version = "2.16.1" description = "Pygments is a syntax highlighting package written in Python." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3558,6 +3717,7 @@ plugins = ["importlib-metadata"] name = "pyjwt" version = "2.8.0" description = "JSON Web Token implementation in Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3575,6 +3735,7 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] name = "pympler" version = "1.0.1" description = "A development tool to measure, monitor and analyze the memory behavior of Python objects." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3586,6 +3747,7 @@ files = [ name = "pynumaflow" version = "0.4.2" description = "Provides the interfaces of writing Python User Defined Functions and Sinks for NumaFlow." +category = "main" optional = true python-versions = ">=3.9,<3.12" files = [ @@ -3605,6 +3767,7 @@ protobuf = ">=3.20,<5.0" name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "dev" optional = false python-versions = ">=3.6.8" files = [ @@ -3617,13 +3780,14 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pytest" -version = "7.4.0" +version = "7.4.2" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, - {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, + {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, + {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, ] [package.dependencies] @@ -3641,6 +3805,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3659,6 +3824,7 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -3673,6 +3839,7 @@ six = ">=1.5" name = "python-json-logger" version = "2.0.7" description = "A python library adding a json log formatter" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3684,6 +3851,7 @@ files = [ name = "pytorch-lightning" version = "2.0.8" description = "PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3713,19 +3881,21 @@ test = ["cloudpickle (>=1.3)", "coverage (==7.3.0)", "fastapi (<0.100.0)", "onnx [[package]] name = "pytz" -version = "2023.3" +version = "2023.3.post1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ - {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, - {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, ] [[package]] name = "pywin32" version = "306" description = "Python for Window Extensions" +category = "dev" optional = false python-versions = "*" files = [ @@ -3749,6 +3919,7 @@ files = [ name = "pywinpty" version = "2.0.11" description = "Pseudo terminal support for Windows from Python." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3763,6 +3934,7 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3812,6 +3984,7 @@ files = [ name = "pyzmq" version = "25.1.1" description = "Python bindings for 0MQ" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3915,13 +4088,14 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qtconsole" -version = "5.4.3" +version = "5.4.4" description = "Jupyter Qt console" +category = "dev" optional = false python-versions = ">= 3.7" files = [ - {file = "qtconsole-5.4.3-py3-none-any.whl", hash = "sha256:35fd6e87b1f6d1fd41801b07e69339f8982e76afd4fa8ef35595bc6036717189"}, - {file = "qtconsole-5.4.3.tar.gz", hash = "sha256:5e4082a86a201796b2a5cfd4298352d22b158b51b57736531824715fc2a979dd"}, + {file = "qtconsole-5.4.4-py3-none-any.whl", hash = "sha256:a3b69b868e041c2c698bdc75b0602f42e130ffb256d6efa48f9aa756c97672aa"}, + {file = "qtconsole-5.4.4.tar.gz", hash = "sha256:b7ffb53d74f23cee29f4cdb55dd6fabc8ec312d94f3c46ba38e1dde458693dfb"}, ] [package.dependencies] @@ -3932,7 +4106,7 @@ jupyter-core = "*" packaging = "*" pygments = "*" pyzmq = ">=17.1" -qtpy = ">=2.0.1" +qtpy = ">=2.4.0" traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" [package.extras] @@ -3943,6 +4117,7 @@ test = ["flaky", "pytest", "pytest-qt"] name = "qtpy" version = "2.4.0" description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3960,6 +4135,7 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] name = "redis" version = "5.0.0" description = "Python client for Redis database and key-value store" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3979,6 +4155,7 @@ ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)" name = "referencing" version = "0.30.2" description = "JSON Referencing + Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3994,6 +4171,7 @@ rpds-py = ">=0.7.0" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4015,6 +4193,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "responses" version = "0.23.3" description = "A utility library for mocking out the `requests` Python library." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4035,6 +4214,7 @@ tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asy name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4049,6 +4229,7 @@ six = "*" name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4058,114 +4239,116 @@ files = [ [[package]] name = "rpds-py" -version = "0.10.0" +version = "0.10.2" description = "Python bindings to Rust's persistent data structures (rpds)" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.10.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:c1e0e9916301e3b3d970814b1439ca59487f0616d30f36a44cead66ee1748c31"}, - {file = "rpds_py-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ce8caa29ebbdcde67e5fd652c811d34bc01f249dbc0d61e5cc4db05ae79a83b"}, - {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad277f74b1c164f7248afa968700e410651eb858d7c160d109fb451dc45a2f09"}, - {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e1c68303ccf7fceb50fbab79064a2636119fd9aca121f28453709283dbca727"}, - {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:780fcb855be29153901c67fc9c5633d48aebef21b90aa72812fa181d731c6b00"}, - {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bbd7b24d108509a1b9b6679fcc1166a7dd031dbef1f3c2c73788f42e3ebb3beb"}, - {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0700c2133ba203c4068aaecd6a59bda22e06a5e46255c9da23cbf68c6942215d"}, - {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:576da63eae7809f375932bfcbca2cf20620a1915bf2fedce4b9cc8491eceefe3"}, - {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23750a9b8a329844ba1fe267ca456bb3184984da2880ed17ae641c5af8de3fef"}, - {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d08395595c42bcd82c3608762ce734504c6d025eef1c06f42326a6023a584186"}, - {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1d7b7b71bcb82d8713c7c2e9c5f061415598af5938666beded20d81fa23e7640"}, - {file = "rpds_py-0.10.0-cp310-none-win32.whl", hash = "sha256:97f5811df21703446b42303475b8b855ee07d6ab6cdf8565eff115540624f25d"}, - {file = "rpds_py-0.10.0-cp310-none-win_amd64.whl", hash = "sha256:cdbed8f21204398f47de39b0a9b180d7e571f02dfb18bf5f1b618e238454b685"}, - {file = "rpds_py-0.10.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:7a3a3d3e4f1e3cd2a67b93a0b6ed0f2499e33f47cc568e3a0023e405abdc0ff1"}, - {file = "rpds_py-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fc72ae476732cdb7b2c1acb5af23b478b8a0d4b6fcf19b90dd150291e0d5b26b"}, - {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0583f69522732bdd79dca4cd3873e63a29acf4a299769c7541f2ca1e4dd4bc6"}, - {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8b9a7cd381970e64849070aca7c32d53ab7d96c66db6c2ef7aa23c6e803f514"}, - {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d292cabd7c8335bdd3237ded442480a249dbcdb4ddfac5218799364a01a0f5c"}, - {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6903cdca64f1e301af9be424798328c1fe3b4b14aede35f04510989fc72f012"}, - {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bed57543c99249ab3a4586ddc8786529fbc33309e5e8a1351802a06ca2baf4c2"}, - {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15932ec5f224b0e35764dc156514533a4fca52dcfda0dfbe462a1a22b37efd59"}, - {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb2d59bc196e6d3b1827c7db06c1a898bfa0787c0574af398e65ccf2e97c0fbe"}, - {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f99d74ddf9d3b6126b509e81865f89bd1283e3fc1b568b68cd7bd9dfa15583d7"}, - {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f70bec8a14a692be6dbe7ce8aab303e88df891cbd4a39af091f90b6702e28055"}, - {file = "rpds_py-0.10.0-cp311-none-win32.whl", hash = "sha256:5f7487be65b9c2c510819e744e375bd41b929a97e5915c4852a82fbb085df62c"}, - {file = "rpds_py-0.10.0-cp311-none-win_amd64.whl", hash = "sha256:748e472345c3a82cfb462d0dff998a7bf43e621eed73374cb19f307e97e08a83"}, - {file = "rpds_py-0.10.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:d4639111e73997567343df6551da9dd90d66aece1b9fc26c786d328439488103"}, - {file = "rpds_py-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f4760e1b02173f4155203054f77a5dc0b4078de7645c922b208d28e7eb99f3e2"}, - {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a6420a36975e0073acaeee44ead260c1f6ea56812cfc6c31ec00c1c48197173"}, - {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:58fc4d66ee349a23dbf08c7e964120dc9027059566e29cf0ce6205d590ed7eca"}, - {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:063411228b852fb2ed7485cf91f8e7d30893e69b0acb207ec349db04cccc8225"}, - {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65af12f70355de29e1092f319f85a3467f4005e959ab65129cb697169ce94b86"}, - {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:298e8b5d8087e0330aac211c85428c8761230ef46a1f2c516d6a2f67fb8803c5"}, - {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5b9bf77008f2c55dabbd099fd3ac87009471d223a1c7ebea36873d39511b780a"}, - {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c7853f27195598e550fe089f78f0732c66ee1d1f0eaae8ad081589a5a2f5d4af"}, - {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:75dbfd41a61bc1fb0536bf7b1abf272dc115c53d4d77db770cd65d46d4520882"}, - {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b25136212a3d064a8f0b9ebbb6c57094c5229e0de76d15c79b76feff26aeb7b8"}, - {file = "rpds_py-0.10.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:9affee8cb1ec453382c27eb9043378ab32f49cd4bc24a24275f5c39bf186c279"}, - {file = "rpds_py-0.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4d55528ef13af4b4e074d067977b1f61408602f53ae4537dccf42ba665c2c7bd"}, - {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7865df1fb564092bcf46dac61b5def25342faf6352e4bc0e61a286e3fa26a3d"}, - {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f5cc8c7bc99d2bbcd704cef165ca7d155cd6464c86cbda8339026a42d219397"}, - {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbae50d352e4717ffc22c566afc2d0da744380e87ed44a144508e3fb9114a3f4"}, - {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fccbf0cd3411719e4c9426755df90bf3449d9fc5a89f077f4a7f1abd4f70c910"}, - {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d10c431073dc6ebceed35ab22948a016cc2b5120963c13a41e38bdde4a7212"}, - {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1b401e8b9aece651512e62c431181e6e83048a651698a727ea0eb0699e9f9b74"}, - {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:7618a082c55cf038eede4a918c1001cc8a4411dfe508dc762659bcd48d8f4c6e"}, - {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:b3226b246facae14909b465061ddcfa2dfeadb6a64f407f24300d42d69bcb1a1"}, - {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a8edd467551c1102dc0f5754ab55cd0703431cd3044edf8c8e7d9208d63fa453"}, - {file = "rpds_py-0.10.0-cp38-none-win32.whl", hash = "sha256:71333c22f7cf5f0480b59a0aef21f652cf9bbaa9679ad261b405b65a57511d1e"}, - {file = "rpds_py-0.10.0-cp38-none-win_amd64.whl", hash = "sha256:a8ab1adf04ae2d6d65835995218fd3f3eb644fe20655ca8ee233e2c7270ff53b"}, - {file = "rpds_py-0.10.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:87c93b25d538c433fb053da6228c6290117ba53ff6a537c133b0f2087948a582"}, - {file = "rpds_py-0.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7996aed3f65667c6dcc8302a69368435a87c2364079a066750a2eac75ea01e"}, - {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8856aa76839dc234d3469f1e270918ce6bec1d6a601eba928f45d68a15f04fc3"}, - {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:00215f6a9058fbf84f9d47536902558eb61f180a6b2a0fa35338d06ceb9a2e5a"}, - {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23a059143c1393015c68936370cce11690f7294731904bdae47cc3e16d0b2474"}, - {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e5c26905aa651cc8c0ddc45e0e5dea2a1296f70bdc96af17aee9d0493280a17"}, - {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c651847545422c8131660704c58606d841e228ed576c8f1666d98b3d318f89da"}, - {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80992eb20755701753e30a6952a96aa58f353d12a65ad3c9d48a8da5ec4690cf"}, - {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ffcf18ad3edf1c170e27e88b10282a2c449aa0358659592462448d71b2000cfc"}, - {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:08e08ccf5b10badb7d0a5c84829b914c6e1e1f3a716fdb2bf294e2bd01562775"}, - {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7150b83b3e3ddaac81a8bb6a9b5f93117674a0e7a2b5a5b32ab31fdfea6df27f"}, - {file = "rpds_py-0.10.0-cp39-none-win32.whl", hash = "sha256:3455ecc46ea443b5f7d9c2f946ce4017745e017b0d0f8b99c92564eff97e97f5"}, - {file = "rpds_py-0.10.0-cp39-none-win_amd64.whl", hash = "sha256:afe6b5a04b2ab1aa89bad32ca47bf71358e7302a06fdfdad857389dca8fb5f04"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:b1cb078f54af0abd835ca76f93a3152565b73be0f056264da45117d0adf5e99c"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8e7e2b3577e97fa43c2c2b12a16139b2cedbd0770235d5179c0412b4794efd9b"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae46a50d235f1631d9ec4670503f7b30405103034830bc13df29fd947207f795"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f869e34d2326e417baee430ae998e91412cc8e7fdd83d979277a90a0e79a5b47"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d544a614055b131111bed6edfa1cb0fb082a7265761bcb03321f2dd7b5c6c48"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ee9c2f6ca9774c2c24bbf7b23086264e6b5fa178201450535ec0859739e6f78d"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2da4a8c6d465fde36cea7d54bf47b5cf089073452f0e47c8632ecb9dec23c07"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac00c41dd315d147b129976204839ca9de699d83519ff1272afbe4fb9d362d12"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0155c33af0676fc38e1107679be882077680ad1abb6303956b97259c3177e85e"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:db6585b600b2e76e98131e0ac0e5195759082b51687ad0c94505970c90718f4a"}, - {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:7b6975d3763d0952c111700c0634968419268e6bbc0b55fe71138987fa66f309"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:6388e4e95a26717b94a05ced084e19da4d92aca883f392dffcf8e48c8e221a24"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:18f87baa20e02e9277ad8960cd89b63c79c05caf106f4c959a9595c43f2a34a5"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f05fc7d832e970047662b3440b190d24ea04f8d3c760e33e7163b67308c878"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:291c9ce3929a75b45ce8ddde2aa7694fc8449f2bc8f5bd93adf021efaae2d10b"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:861d25ae0985a1dd5297fee35f476b60c6029e2e6e19847d5b4d0a43a390b696"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:668d2b45d62c68c7a370ac3dce108ffda482b0a0f50abd8b4c604a813a59e08f"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:344b89384c250ba6a4ce1786e04d01500e4dac0f4137ceebcaad12973c0ac0b3"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:885e023e73ce09b11b89ab91fc60f35d80878d2c19d6213a32b42ff36543c291"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:841128a22e6ac04070a0f84776d07e9c38c4dcce8e28792a95e45fc621605517"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:899b5e7e2d5a8bc92aa533c2d4e55e5ebba095c485568a5e4bedbc163421259a"}, - {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e7947d9a6264c727a556541b1630296bbd5d0a05068d21c38dde8e7a1c703ef0"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4992266817169997854f81df7f6db7bdcda1609972d8ffd6919252f09ec3c0f6"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:26d9fd624649a10e4610fab2bc820e215a184d193e47d0be7fe53c1c8f67f370"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0028eb0967942d0d2891eae700ae1a27b7fd18604cfcb16a1ef486a790fee99e"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9e7e493ded7042712a374471203dd43ae3fff5b81e3de1a0513fa241af9fd41"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d68a8e8a3a816629283faf82358d8c93fe5bd974dd2704152394a3de4cec22a"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6d5f061f6a2aa55790b9e64a23dfd87b6664ab56e24cd06c78eb43986cb260b"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c7c4266c1b61eb429e8aeb7d8ed6a3bfe6c890a1788b18dbec090c35c6b93fa"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80772e3bda6787510d9620bc0c7572be404a922f8ccdfd436bf6c3778119464c"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b98e75b21fc2ba5285aef8efaf34131d16af1c38df36bdca2f50634bea2d3060"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:d63787f289944cc4bde518ad2b5e70a4f0d6e2ce76324635359c74c113fd188f"}, - {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:872f3dcaa8bf2245944861d7311179d2c0c9b2aaa7d3b464d99a7c2e401f01fa"}, - {file = "rpds_py-0.10.0.tar.gz", hash = "sha256:e36d7369363d2707d5f68950a64c4e025991eb0177db01ccb6aa6facae48b69f"}, + {file = "rpds_py-0.10.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:9f00d54b18dd837f1431d66b076737deb7c29ce3ebb8412ceaf44d5e1954ac0c"}, + {file = "rpds_py-0.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f4d561f4728f825e3b793a53064b606ca0b6fc264f67d09e54af452aafc5b82"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:013d6c784150d10236a74b4094a79d96a256b814457e388fc5a4ba9efe24c402"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd1142d22fdb183a0fff66d79134bf644401437fed874f81066d314c67ee193c"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a0536ed2b9297c75104e1a3da330828ba1b2639fa53b38d396f98bf7e3c68df"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:41bd430b7b63aa802c02964e331ac0b177148fef5f807d2c90d05ce71a52b4d4"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e8474f7233fe1949ce4e03bea698a600c2d5d6b51dab6d6e6336dbe69acf23e"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d9d7efaad48b859053b90dedd69bc92f2095084251e732e4c57ac9726bcb1e64"}, + {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5612b0b1de8d5114520094bd5fc3d04eb8af6f3e10d48ef05b7c8e77c1fd9545"}, + {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5d5eaf988951f6ecb6854ca3300b87123599c711183c83da7ce39717a7cbdbce"}, + {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75c8766734ac0053e1d683567e65e85306c4ec62631b0591caeb287ac8f72e08"}, + {file = "rpds_py-0.10.2-cp310-none-win32.whl", hash = "sha256:8de9b88f0cbac73cfed34220d13c57849e62a7099a714b929142425e926d223a"}, + {file = "rpds_py-0.10.2-cp310-none-win_amd64.whl", hash = "sha256:2275f1a022e2383da5d2d101fe11ccdcbae799148c4b83260a4b9309fa3e1fc2"}, + {file = "rpds_py-0.10.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dd91a7d7a9ce7f4983097c91ce211f3e5569cc21caa16f2692298a07e396f82b"}, + {file = "rpds_py-0.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e82b4a70cc67094f3f3fd77579702f48fcf1de7bdc67d79b8f1e24d089a6162c"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e281b71922208e00886e4b7ffbfcf27874486364f177418ab676f102130e7ec9"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3eb1a0d2b6d232d1bcdfc3fcc5f7b004ab3fbd9203011a3172f051d4527c0b6"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02945ae38fd78efc40900f509890de84cfd5ffe2cd2939eeb3a8800dc68b87cb"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccfb77f6dc8abffa6f1c7e3975ed9070a41ce5fcc11154d2bead8c1baa940f09"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af52078719209bef33e38131486fd784832dd8d1dc9b85f00a44f6e7437dd021"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56ba7c1100ed079527f2b995bf5486a2e557e6d5b733c52e8947476338815b69"}, + {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:899b03a3be785a7e1ff84b237da71f0efa2f021512f147dd34ffdf7aa82cb678"}, + {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:22e6de18f00583f06928cc8d0993104ecc62f7c6da6478db2255de89a30e45d1"}, + {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:edd74b760a6bb950397e7a7bd2f38e6700f6525062650b1d77c6d851b82f02c2"}, + {file = "rpds_py-0.10.2-cp311-none-win32.whl", hash = "sha256:18909093944727e068ebfc92e2e6ed1c4fa44135507c1c0555213ce211c53214"}, + {file = "rpds_py-0.10.2-cp311-none-win_amd64.whl", hash = "sha256:9568764e72d85cf7855ca78b48e07ed1be47bf230e2cea8dabda3c95f660b0ff"}, + {file = "rpds_py-0.10.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:0fc625059b83695fbb4fc8b7a8b66fa94ff9c7b78c84fb9986cd53ff88a28d80"}, + {file = "rpds_py-0.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c86231c66e4f422e7c13ea6200bb4048b3016c8bfd11b4fd0dabd04d2c8e3501"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56777c57246e048908b550af9b81b0ec9cf804fd47cb7502ccd93238bd6025c2"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a4cb372e22e9c879bd9a9cc9b20b7c1fbf30a605ac953da45ecec05d8a6e1c77"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa3b3a43dabc4cc57a7800f526cbe03f71c69121e21b863fdf497b59b462b163"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d222086daa55421d599609b32d0ebe544e57654c4a0a1490c54a7ebaa67561"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:529aab727f54a937085184e7436e1d0e19975cf10115eda12d37a683e4ee5342"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43e9b1531d6a898bdf086acb75c41265c7ec4331267d7619148d407efc72bd24"}, + {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c2772bb95062e3f9774140205cd65d8997e39620715486cf5f843cf4ad8f744c"}, + {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ba1b28e44f611f3f2b436bd8290050a61db4b59a8e24be4465f44897936b3824"}, + {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5aba767e64b494483ad60c4873bec78d16205a21f8247c99749bd990d9c846c2"}, + {file = "rpds_py-0.10.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:e1954f4b239d1a92081647eecfd51cbfd08ea16eb743b8af1cd0113258feea14"}, + {file = "rpds_py-0.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de4a2fd524993578fe093044f291b4b24aab134390030b3b9b5f87fd41ab7e75"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e69737bd56006a86fd5a78b2b85447580a6138c930a75eb9ef39fe03d90782b1"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f40abbcc0a7d9a8a80870af839d317e6932533f98682aabd977add6c53beeb23"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29ec8507664f94cc08457d98cfc41c3cdbddfa8952438e644177a29b04937876"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcde80aefe7054fad6277762fb7e9d35c72ea479a485ae1bb14629c640987b30"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a65de5c02884760a14a58304fb6303f9ddfc582e630f385daea871e1bdb18686"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e92e5817eb6bfed23aa5e45bfe30647b83602bdd6f9e25d63524d4e6258458b0"}, + {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2c8fc6c841ada60a86d29c9ebe2e8757c47eda6553f3596c560e59ca6e9b6fa1"}, + {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:8557c807388e6617161fe51b1a4747ea8d1133f2d2ad8e79583439abebe58fbd"}, + {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:00e97d43a36811b78fa9ad9d3329bf34f76a31e891a7031a2ac01450c9b168ab"}, + {file = "rpds_py-0.10.2-cp38-none-win32.whl", hash = "sha256:1ed3d5385d14be894e12a9033be989e012214a9811e7194849c94032ad69682a"}, + {file = "rpds_py-0.10.2-cp38-none-win_amd64.whl", hash = "sha256:02b4a2e28eb24dac4ef43dda4f6a6f7766e355179b143f7d0c76a1c5488a307b"}, + {file = "rpds_py-0.10.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:2a55631b93e47956fbc97d69ba2054a8c6a4016f9a3064ec4e031f5f1030cb90"}, + {file = "rpds_py-0.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2ffbf1b38c88d0466de542e91b08225d51782282512f8e2b11715126c41fda48"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213f9ef5c02ec2f883c1075d25a873149daadbaea50d18d622e9db55ec9849c2"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b00150a9a3fd0a8efaa90bc2696c105b04039d50763dd1c95a34c88c5966cb57"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ab0f7aabdbce4a202e013083eeab71afdb85efa405dc4a06fea98cde81204675"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cd0c9fb5d40887500b4ed818770c68ab4fa6e0395d286f9704be6751b1b7d98"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8578fc6c8bdd0201327503720fa581000b4bd3934abbf07e2628d1ad3de157d"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d27d08056fcd61ff47a0cd8407eff4d3e816c82cb6b9c6f0ce9a0ad49225f81"}, + {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c8f6526df47953b07c45b95c4d1da6b9a0861c0e5da0271db96bb1d807825412"}, + {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:177c033e467a66a054dd3a9534167234a3d0b2e41445807b13b626e01da25d92"}, + {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c74cbee9e532dc34371127f7686d6953e5153a1f22beab7f953d95ee4a0fe09"}, + {file = "rpds_py-0.10.2-cp39-none-win32.whl", hash = "sha256:05a1382905026bdd560f806c8c7c16e0f3e3fb359ba8868203ca6e5799884968"}, + {file = "rpds_py-0.10.2-cp39-none-win_amd64.whl", hash = "sha256:3fd503c27e7b7034128e30847ecdb4bff4ca5e60f29ad022a9f66ae8940d54ac"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4a96147791e49e84207dd1530109aa0e9eeaf1c8b7a59f150047fc0fcdf9bb64"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:203eb1532d51591d32e8dfafd60b5d31347ea7278c8da02b4b550287f6abe28b"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2f416cdfe92f5fbb77177f5f3f7830059d1582db05f2c7119bf80069d1ab69b"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2660000e1a113869c86eb5cc07f3343467490f3cd9d0299f81da9ddae7137b7"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1adb04e4b4e41bf30aaa77eeb169c1b9ba9e5010e2e6ce8d6c17e1446edc9b68"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bca97521ee786087f0c5ef318fef3eef0266a9c3deff88205523cf353af7394"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4969592e3cdeefa4cbb15a26cec102cbd4a1d6e5b695fac9fa026e19741138c8"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df61f818edf7c8626bfa392f825860fb670b5f8336e238eb0ec7e2a5689cdded"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b589d93a60e78fe55d5bc76ee8c2bf945dbdbb7cd16044c53e0307604e448de1"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:73da69e1f612c3e682e34dcb971272d90d6f27b2c99acff444ca455a89978574"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:89438e8885a186c69fe31f7ef98bb2bf29688c466c3caf9060f404c0be89ae80"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c4ecc4e9a5d73a816cae36ee6b5d8b7a0c72013cae1e101406e832887c3dc2d8"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:907b214da5d2fcff0b6ddb83de1333890ca92abaf4bbf8d9c61dc1b95c87fd6e"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb44644371eaa29a3aba7b69b1862d0d56f073bb7585baa32e4271a71a91ee82"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:80c3cf46511653f94dfe07c7c79ab105c4164d6e1dfcb35b7214fb9af53eaef4"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaba0613c759ebf95988a84f766ca6b7432d55ce399194f95dde588ad1be0878"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0527c97dcd8bb983822ee31d3760187083fd3ba18ac4dd22cf5347c89d5628f4"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cdfd649011ce2d90cb0dd304c5aba1190fac0c266d19a9e2b96b81cfd150a09"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:75eea40355a8690459c7291ce6c8ce39c27bd223675c7da6619f510c728feb97"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1b804cfad04f862d6a84af9d1ad941b06f671878f0f7ecad6c92007d423de6"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:bf77f9017fcfa1232f98598a637406e6c33982ccba8a5922339575c3e2b90ea5"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:46c4c550bf59ce05d6bff2c98053822549aaf9fbaf81103edea325e03350bca1"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:46af4a742b90c7460e94214f923452c2c1d050a9da1d2b8d4c70cbc045e692b7"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2a86d246a160d98d820ee7d02dc18c923c228de095be362e57b9fd8970b2c4a1"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae141c9017f8f473a6ee07a9425da021816a9f8c0683c2e5442f0ccf56b0fc62"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1147bc3d0dd1e549d991110d0a09557ec9f925dbc1ca62871fcdab2ec9d716b"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fce7a8ee8d0f682c953c0188735d823f0fcb62779bf92cd6ba473a8e730e26ad"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c7f9d70f99e1fbcbf57c75328b80e1c0a7f6cad43e75efa90a97221be5efe15"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b309908b6ff5ffbf6394818cb73b5a2a74073acee2c57fe8719046389aeff0d"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ff1f585a0fdc1415bd733b804f33d386064a308672249b14828130dd43e7c31"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0188b580c490bccb031e9b67e9e8c695a3c44ac5e06218b152361eca847317c3"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:abe081453166e206e3a8c6d8ace57214c17b6d9477d7601ac14a365344dbc1f4"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9118de88c16947eaf5b92f749e65b0501ea69e7c2be7bd6aefc12551622360e1"}, + {file = "rpds_py-0.10.2.tar.gz", hash = "sha256:289073f68452b96e70990085324be7223944c7409973d13ddfe0eea1c1b5663b"}, ] [[package]] name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" +category = "main" optional = true python-versions = ">=3.6,<4" files = [ @@ -4178,34 +4361,36 @@ pyasn1 = ">=0.1.3" [[package]] name = "ruff" -version = "0.0.286" +version = "0.0.287" description = "An extremely fast Python linter, written in Rust." +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.0.286-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:8e22cb557e7395893490e7f9cfea1073d19a5b1dd337f44fd81359b2767da4e9"}, - {file = "ruff-0.0.286-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:68ed8c99c883ae79a9133cb1a86d7130feee0397fdf5ba385abf2d53e178d3fa"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8301f0bb4ec1a5b29cfaf15b83565136c47abefb771603241af9d6038f8981e8"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:acc4598f810bbc465ce0ed84417ac687e392c993a84c7eaf3abf97638701c1ec"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88c8e358b445eb66d47164fa38541cfcc267847d1e7a92dd186dddb1a0a9a17f"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:0433683d0c5dbcf6162a4beb2356e820a593243f1fa714072fec15e2e4f4c939"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddb61a0c4454cbe4623f4a07fef03c5ae921fe04fede8d15c6e36703c0a73b07"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:47549c7c0be24c8ae9f2bce6f1c49fbafea83bca80142d118306f08ec7414041"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:559aa793149ac23dc4310f94f2c83209eedb16908a0343663be19bec42233d25"}, - {file = "ruff-0.0.286-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d73cfb1c3352e7aa0ce6fb2321f36fa1d4a2c48d2ceac694cb03611ddf0e4db6"}, - {file = "ruff-0.0.286-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:3dad93b1f973c6d1db4b6a5da8690c5625a3fa32bdf38e543a6936e634b83dc3"}, - {file = "ruff-0.0.286-py3-none-musllinux_1_2_i686.whl", hash = "sha256:26afc0851f4fc3738afcf30f5f8b8612a31ac3455cb76e611deea80f5c0bf3ce"}, - {file = "ruff-0.0.286-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:9b6b116d1c4000de1b9bf027131dbc3b8a70507788f794c6b09509d28952c512"}, - {file = "ruff-0.0.286-py3-none-win32.whl", hash = "sha256:556e965ac07c1e8c1c2d759ac512e526ecff62c00fde1a046acb088d3cbc1a6c"}, - {file = "ruff-0.0.286-py3-none-win_amd64.whl", hash = "sha256:5d295c758961376c84aaa92d16e643d110be32add7465e197bfdaec5a431a107"}, - {file = "ruff-0.0.286-py3-none-win_arm64.whl", hash = "sha256:1d6142d53ab7f164204b3133d053c4958d4d11ec3a39abf23a40b13b0784e3f0"}, - {file = "ruff-0.0.286.tar.gz", hash = "sha256:f1e9d169cce81a384a26ee5bb8c919fe9ae88255f39a1a69fd1ebab233a85ed2"}, + {file = "ruff-0.0.287-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:1e0f9ee4c3191444eefeda97d7084721d9b8e29017f67997a20c153457f2eafd"}, + {file = "ruff-0.0.287-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:e9843e5704d4fb44e1a8161b0d31c1a38819723f0942639dfeb53d553be9bfb5"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca1ed11d759a29695aed2bfc7f914b39bcadfe2ef08d98ff69c873f639ad3a8"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1cf4d5ad3073af10f186ea22ce24bc5a8afa46151f6896f35c586e40148ba20b"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d9d58bcb29afd72d2afe67120afcc7d240efc69a235853813ad556443dc922"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:06ac5df7dd3ba8bf83bba1490a72f97f1b9b21c7cbcba8406a09de1a83f36083"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2bfb478e1146a60aa740ab9ebe448b1f9e3c0dfb54be3cc58713310eef059c30"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00d579a011949108c4b4fa04c4f1ee066dab536a9ba94114e8e580c96be2aeb4"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a810a79b8029cc92d06c36ea1f10be5298d2323d9024e1d21aedbf0a1a13e5"}, + {file = "ruff-0.0.287-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:150007028ad4976ce9a7704f635ead6d0e767f73354ce0137e3e44f3a6c0963b"}, + {file = "ruff-0.0.287-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a24a280db71b0fa2e0de0312b4aecb8e6d08081d1b0b3c641846a9af8e35b4a7"}, + {file = "ruff-0.0.287-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2918cb7885fa1611d542de1530bea3fbd63762da793751cc8c8d6e4ba234c3d8"}, + {file = "ruff-0.0.287-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:33d7b251afb60bec02a64572b0fd56594b1923ee77585bee1e7e1daf675e7ae7"}, + {file = "ruff-0.0.287-py3-none-win32.whl", hash = "sha256:022f8bed2dcb5e5429339b7c326155e968a06c42825912481e10be15dafb424b"}, + {file = "ruff-0.0.287-py3-none-win_amd64.whl", hash = "sha256:26bd0041d135a883bd6ab3e0b29c42470781fb504cf514e4c17e970e33411d90"}, + {file = "ruff-0.0.287-py3-none-win_arm64.whl", hash = "sha256:44bceb3310ac04f0e59d4851e6227f7b1404f753997c7859192e41dbee9f5c8d"}, + {file = "ruff-0.0.287.tar.gz", hash = "sha256:02dc4f5bf53ef136e459d467f3ce3e04844d509bc46c025a05b018feb37bbc39"}, ] [[package]] name = "s3transfer" version = "0.6.2" description = "An Amazon S3 Transfer Manager" +category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -4223,6 +4408,7 @@ crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] name = "scikit-learn" version = "1.3.0" description = "A set of python modules for machine learning and data mining" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4265,6 +4451,7 @@ tests = ["black (>=23.3.0)", "matplotlib (>=3.1.3)", "mypy (>=1.3)", "numpydoc ( name = "scipy" version = "1.11.2" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false python-versions = "<3.13,>=3.9" files = [ @@ -4307,6 +4494,7 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo name = "send2trash" version = "1.8.2" description = "Send file to trash natively under Mac OS X, Windows and Linux" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -4321,24 +4509,26 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "68.1.2" +version = "68.2.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-68.1.2-py3-none-any.whl", hash = "sha256:3d8083eed2d13afc9426f227b24fd1659489ec107c0e86cec2ffdde5c92e790b"}, - {file = "setuptools-68.1.2.tar.gz", hash = "sha256:3d4dfa6d95f1b101d695a6160a7626e15583af71a5f52176efa5d39a054d475d"}, + {file = "setuptools-68.2.0-py3-none-any.whl", hash = "sha256:af3d5949030c3f493f550876b2fd1dd5ec66689c4ee5d5344f009746f71fd5a8"}, + {file = "setuptools-68.2.0.tar.gz", hash = "sha256:00478ca80aeebeecb2f288d3206b0de568df5cd2b8fada1209843cc9a8d88a48"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5,<=7.1.2)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +docs = ["furo", "jaraco.packaging (>=9.3)", "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 (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "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"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -4350,6 +4540,7 @@ files = [ name = "smmap" version = "5.0.0" description = "A pure Python implementation of a sliding window memory map manager" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -4361,6 +4552,7 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4372,6 +4564,7 @@ files = [ name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" +category = "dev" optional = false python-versions = "*" files = [ @@ -4381,19 +4574,21 @@ files = [ [[package]] name = "soupsieve" -version = "2.4.1" +version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." +category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "soupsieve-2.4.1-py3-none-any.whl", hash = "sha256:1c1bfee6819544a3447586c889157365a27e10d88cde3ad3da0cf0ddf646feb8"}, - {file = "soupsieve-2.4.1.tar.gz", hash = "sha256:89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea"}, + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, ] [[package]] name = "sqlparse" version = "0.4.4" description = "A non-validating SQL parser." +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -4410,6 +4605,7 @@ test = ["pytest", "pytest-cov"] name = "stack-data" version = "0.6.2" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" optional = false python-versions = "*" files = [ @@ -4429,6 +4625,7 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "sympy" version = "1.12" description = "Computer algebra system (CAS) in Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4443,6 +4640,7 @@ mpmath = ">=0.19" name = "tabulate" version = "0.9.0" description = "Pretty-print tabular data" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -4457,6 +4655,7 @@ widechars = ["wcwidth"] name = "terminado" version = "0.17.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4477,6 +4676,7 @@ test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] name = "threadpoolctl" version = "3.2.0" description = "threadpoolctl" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4488,6 +4688,7 @@ files = [ name = "tinycss2" version = "1.2.1" description = "A tiny CSS parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4506,6 +4707,7 @@ test = ["flake8", "isort", "pytest"] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4517,6 +4719,7 @@ files = [ name = "torch" version = "2.0.1" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -4556,6 +4759,7 @@ opt-einsum = ["opt-einsum (>=3.3)"] name = "torchinfo" version = "1.8.0" description = "Model summary in PyTorch, based off of the original torchsummary." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4567,6 +4771,7 @@ files = [ name = "torchmetrics" version = "1.1.1" description = "PyTorch native Metrics" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4595,6 +4800,7 @@ visual = ["SciencePlots (>=2.0.0)", "matplotlib (>=3.2.0)"] name = "tornado" version = "6.3.3" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "dev" optional = false python-versions = ">= 3.8" files = [ @@ -4615,6 +4821,7 @@ files = [ name = "tqdm" version = "4.66.1" description = "Fast, Extensible Progress Meter" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4635,6 +4842,7 @@ telegram = ["requests"] name = "traitlets" version = "5.9.0" description = "Traitlets Python configuration system" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4650,6 +4858,7 @@ test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] name = "types-pyyaml" version = "6.0.12.11" description = "Typing stubs for PyYAML" +category = "dev" optional = false python-versions = "*" files = [ @@ -4661,6 +4870,7 @@ files = [ name = "typing-extensions" version = "4.7.1" description = "Backported and Experimental Type Hints for Python 3.7+" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4672,6 +4882,7 @@ files = [ name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ @@ -4683,6 +4894,7 @@ files = [ name = "uri-template" version = "1.3.0" description = "RFC 6570 URI Template Processor" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4697,6 +4909,7 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake name = "urllib3" version = "1.26.16" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -4711,13 +4924,14 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "virtualenv" -version = "20.24.4" +version = "20.24.5" description = "Virtual Python Environment builder" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.24.4-py3-none-any.whl", hash = "sha256:29c70bb9b88510f6414ac3e55c8b413a1f96239b6b789ca123437d5e892190cb"}, - {file = "virtualenv-20.24.4.tar.gz", hash = "sha256:772b05bfda7ed3b8ecd16021ca9716273ad9f4467c801f27e83ac73430246dca"}, + {file = "virtualenv-20.24.5-py3-none-any.whl", hash = "sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b"}, + {file = "virtualenv-20.24.5.tar.gz", hash = "sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"}, ] [package.dependencies] @@ -4733,6 +4947,7 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess name = "wcwidth" version = "0.2.6" description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -4744,6 +4959,7 @@ files = [ name = "webcolors" version = "1.13" description = "A library for working with the color formats defined by HTML and CSS." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4759,6 +4975,7 @@ tests = ["pytest", "pytest-cov"] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "dev" optional = false python-versions = "*" files = [ @@ -4770,6 +4987,7 @@ files = [ name = "websocket-client" version = "1.6.2" description = "WebSocket client for Python with low level API options" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4786,6 +5004,7 @@ test = ["websockets"] name = "werkzeug" version = "2.3.7" description = "The comprehensive WSGI web application library." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4803,6 +5022,7 @@ watchdog = ["watchdog (>=2.3)"] name = "widgetsnbextension" version = "4.0.8" description = "Jupyter interactive widgets for Jupyter Notebook" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4814,6 +5034,7 @@ files = [ name = "xmltodict" version = "0.13.0" description = "Makes working with XML feel like you are working with JSON" +category = "dev" optional = false python-versions = ">=3.4" files = [ @@ -4825,6 +5046,7 @@ files = [ name = "yarl" version = "1.9.2" description = "Yet another URL library" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4912,6 +5134,7 @@ multidict = ">=4.0" name = "zipp" version = "3.16.2" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4933,4 +5156,4 @@ redis = ["redis"] [metadata] lock-version = "2.0" python-versions = ">=3.9, <3.12" -content-hash = "899239bed4f29bd788fa45e49bdd8fae699a8e9013336b683a4169d418b0b9ba" +content-hash = "5340edac100acd328dff7dd1d2e9f1650205441a0bc8f95cfcaa6fc49d22d927" diff --git a/pyproject.toml b/pyproject.toml index 0eff5dac..56108d78 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ mlflow-skinny = { version = ">2.0, <3.0", optional = true } redis = {extras = ["hiredis"], version = "^5.0", optional = true} pynumaflow = { version = "~0.4", optional = true } boto3 = { version = "^1.24.64", optional = true } -pydruid = {version = "^0.6", optional = true } +pydruid= {git="git@github.com:cosmic-chichu/pydruid.git", branch = "master", optional = true } [tool.poetry.extras] mlflow = ["mlflow-skinny"] diff --git a/tests/registry/test_redis_registry.py b/tests/registry/test_redis_registry.py index 59c3fdb6..80199491 100644 --- a/tests/registry/test_redis_registry.py +++ b/tests/registry/test_redis_registry.py @@ -62,9 +62,10 @@ def test_save_model_without_metadata_cache_hit(self): data = self.registry.load(skeys=self.skeys, dkeys=self.dkeys) self.assertEqual(data.extras["version"], save_version) resave_version1 = self.registry.save( - skeys=self.skeys, dkeys=self.dkeys, artifact=self.pytorch_model + skeys=self.skeys, dkeys=self.dkeys, artifact=self.pytorch_model, **{"lr": 0.01} ) resave_data = self.registry.load(skeys=self.skeys, dkeys=self.dkeys) + print(resave_data.extras) self.assertEqual(save_version, "0") self.assertEqual(resave_version1, "1") self.assertEqual(resave_data.extras["version"], "0") @@ -185,6 +186,17 @@ def test_load_latest_cache_ttl_expire(self): self.assertEqual("registry", artifact_data_1.extras["source"]) self.assertEqual("registry", artifact_data_2.extras["source"]) + def test_multiple_save(self): + self.registry.save_multiple( + skeys=self.skeys, + list_dkeys=[["AE"], ["scaler"]], + list_artifacts=[VanillaAE, StandardScaler()], + **{"a": "b"} + ) + artifact_data = self.registry.load(skeys=self.skeys, dkeys=["AE"]) + self.assertEqual("registry", artifact_data.extras["source"]) + self.assertIsNotNone(artifact_data.artifact) + def test_load_non_latest_model_twice(self): old_version = self.registry.save( skeys=self.skeys, dkeys=self.dkeys, artifact=self.pytorch_model diff --git a/tests/udfs/test_inference.py b/tests/udfs/test_inference.py index 9ebc3cfa..5536cfec 100644 --- a/tests/udfs/test_inference.py +++ b/tests/udfs/test_inference.py @@ -70,11 +70,12 @@ ], "header": "model_inference", "metadata": { + "artifact_versions": {"VanillaAE": "0"}, "tags": { "asset_alias": "some-alias", "asset_id": "362557362191815079", "env": "prd", - } + }, }, } @@ -83,6 +84,7 @@ class TestInferenceUDF(unittest.TestCase): def setUp(self) -> None: self.udf = InferenceUDF(REDIS_CLIENT) self.udf.register_conf("conf1", StreamConf(config_id="conf1")) + print(self.udf.get_conf("conf1")) @patch.object( RedisRegistry, @@ -90,7 +92,7 @@ def setUp(self) -> None: Mock( return_value=ArtifactData( artifact=VanillaAE(seq_len=12, n_features=2), - extras=dict(version="1", timestamp=time.time(), source="registry"), + extras=dict(version="0", timestamp=time.time(), source="registry"), metadata={}, ) ), diff --git a/tests/udfs/test_postprocess.py b/tests/udfs/test_postprocess.py index a13924ca..f4066afd 100644 --- a/tests/udfs/test_postprocess.py +++ b/tests/udfs/test_postprocess.py @@ -77,7 +77,7 @@ "status": "artifact_found", "header": "model_inference", "metadata": { - "model_version": 0, + "artifact_versions": {"StdDevThreshold": "0"}, "tags": {"asset_alias": "data", "asset_id": "123456789", "env": "prd"}, }, } @@ -113,12 +113,13 @@ def test_postprocess_infer_model_stale(self): data = deepcopy(DATA) data["status"] = Status.ARTIFACT_STALE data["header"] = Header.MODEL_INFERENCE - self.registry.save( - KEYS, ["StdDevThreshold"], StdDevThreshold().fit(np.asarray([[0, 1], [1, 2]])) + print( + self.registry.save( + KEYS, ["StdDevThreshold"], StdDevThreshold().fit(np.asarray([[0, 1], [1, 2]])) + ) ) - msg = self.udf(KEYS, Datum(keys=KEYS, value=orjson.dumps(data), **DATUM_KW)) - self.assertEqual(2, len(msg)) + self.assertEqual(1, len(msg)) def test_postprocess_all_model_present(self): data = deepcopy(DATA) diff --git a/tests/udfs/utility.py b/tests/udfs/utility.py index a0299fa3..c9c2d058 100644 --- a/tests/udfs/utility.py +++ b/tests/udfs/utility.py @@ -6,6 +6,7 @@ from sklearn.pipeline import make_pipeline from numalogic.config import PreprocessFactory +from numalogic.models.autoencoder.variants import VanillaAE def input_json_from_file(data_path: str) -> Datum: @@ -45,11 +46,14 @@ def store_in_redis(pl_conf, registry): ): preproc_clf = make_pipeline(*preproc_clfs) preproc_clf.fit(np.asarray([[1, 3], [4, 6]])) - registry.save( + registry.save_multiple( skeys=pl_conf.stream_confs["druid-config"].composite_keys, - dkeys=[ - _conf.name - for _conf in pl_conf.stream_confs["druid-config"].numalogic_conf.preprocess + list_dkeys=[ + ["AE"], + [ + _conf.name + for _conf in pl_conf.stream_confs["druid-config"].numalogic_conf.preprocess + ], ], - artifact=preproc_clf, + list_artifacts=[VanillaAE(10), preproc_clf], ) From d7c3e59356ab15073898e453f96fb98f9ab8fff9 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Mon, 11 Sep 2023 18:32:29 -0700 Subject: [PATCH 02/17] fix: typos Signed-off-by: s0nicboOm --- dump.rdb | Bin 170113 -> 0 bytes examples/multi_udf/src/udf/inference.py | 2 +- numalogic/registry/redis_registry.py | 54 +- numalogic/udfs/__main__.py | 5 + numalogic/udfs/inference.py | 6 +- numalogic/udfs/postprocess.py | 11 +- numalogic/udfs/preprocess.py | 6 +- numalogic/udfs/tools.py | 34 +- numalogic/udfs/trainer.py | 2 +- poetry.lock | 5159 ----------------------- pyproject.toml | 4 +- tests/registry/test_redis_registry.py | 2 +- tests/udfs/test_postprocess.py | 2 +- tests/udfs/test_preprocess.py | 6 +- 14 files changed, 82 insertions(+), 5211 deletions(-) delete mode 100644 dump.rdb delete mode 100644 poetry.lock diff --git a/dump.rdb b/dump.rdb deleted file mode 100644 index de02a76c32697f8862e912041f2748274ba47219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170113 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 LqR@NmY_b0j=5|2Y diff --git a/examples/multi_udf/src/udf/inference.py b/examples/multi_udf/src/udf/inference.py index 17dd8a23..179e4b73 100644 --- a/examples/multi_udf/src/udf/inference.py +++ b/examples/multi_udf/src/udf/inference.py @@ -61,7 +61,7 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: LOGGER.info("%s - Inference complete", payload.uuid) else: # If model not found, set status as not found - LOGGER.exception("%s - Model not found", payload.uuid) + LOGGER.warning("%s - Model not found", payload.uuid) payload.is_artifact_valid = False # Convert Payload back to bytes and conditional forward to threshold vertex diff --git a/numalogic/registry/redis_registry.py b/numalogic/registry/redis_registry.py index e0369403..a5e3eadf 100644 --- a/numalogic/registry/redis_registry.py +++ b/numalogic/registry/redis_registry.py @@ -159,27 +159,33 @@ def __load_latest_artifact(self, key: str) -> tuple[ArtifactData, bool]: ------ ModelKeyNotFound: If the model key is not found in the registry. """ - cached_artifact = self._load_from_cache(key) + latest_key = self.__construct_latest_key(key) + cached_artifact = self._load_from_cache(latest_key) if cached_artifact: - _LOGGER.debug("Found cached artifact for key: %s", key) + _LOGGER.debug("Found cached artifact for key: %s", latest_key) return cached_artifact, True - latest_key = self.__construct_latest_key(key) if not self.client.exists(latest_key): raise ModelKeyNotFound(f"latest key: {latest_key}, Not Found !!!") model_key = self.client.get(latest_key) _LOGGER.debug("latest key, %s, is pointing to the key : %s", latest_key, model_key) - return ( - self.__load_version_artifact(version=self.get_version(model_key.decode()), key=key), - False, + artifact, _ = self.__load_version_artifact( + version=self.get_version(model_key.decode()), key=key ) + return artifact, False - def __load_version_artifact(self, version: str, key: str) -> ArtifactData: - model_key = self.__construct_version_key(key, version) - print(model_key) - if not self.client.exists(model_key): - raise ModelKeyNotFound("Could not find model key with key: %s" % model_key) - return self.__get_artifact_data( - model_key=model_key, + def __load_version_artifact(self, version: str, key: str) -> tuple[ArtifactData, bool]: + version_key = self.__construct_version_key(key, version) + cached_artifact = self._load_from_cache(version_key) + if cached_artifact: + _LOGGER.debug("Found cached version artifact for key: %s", version_key) + return cached_artifact, True + if not self.client.exists(version_key): + raise ModelKeyNotFound("Could not find model key with key: %s" % version_key) + return ( + self.__get_artifact_data( + model_key=version_key, + ), + False, ) def __save_artifact( @@ -237,25 +243,25 @@ def load( if (latest and version) or (not latest and not version): raise ValueError("Either One of 'latest' or 'version' needed in load method call") key = self.construct_key(skeys, dkeys) - is_cached = False try: if latest: artifact_data, is_cached = self.__load_latest_artifact(key) else: - artifact_data = self.__load_version_artifact(version, key) + artifact_data, is_cached = self.__load_version_artifact(version, key) except RedisError as err: raise RedisRegistryError(f"{err.__class__.__name__} raised") from err else: if not is_cached: if latest: _LOGGER.info("Saving %s, in cache as %s", self.__construct_latest_key(key), key) + self._save_in_cache(self.__construct_latest_key(key), artifact_data) else: _LOGGER.info( "Saving %s, in cache as %s", self.__construct_version_key(key, version), key, ) - self._save_in_cache(key, artifact_data) + self._save_in_cache(self.__construct_version_key(key, version), artifact_data) return artifact_data def save( @@ -298,9 +304,8 @@ def save( pipe=redis_pipe, artifact=artifact, key=key, version=str(version), **metadata ) redis_pipe.expire(name=new_version_key, time=self.ttl) - # if pipe is None: - # print(redis_pipe.command_stack) - # redis_pipe.execute() + if pipe is None: + redis_pipe.execute() except RedisError as err: raise RedisRegistryError(f"{err.__class__.__name__} raised") from err else: @@ -384,6 +389,9 @@ def save_multiple( with self.client.pipeline(transaction=self.transactional) as pipe: pipe.multi() for count, (key, artifact) in enumerate(zip(list_dkeys, list_artifacts)): + dict_model_ver[":".join(key)] = self.save( + skeys=skeys, dkeys=key, artifact=artifact, pipe=pipe, **metadata + ) if count == len(list_artifacts) - 1: self.save( skeys=skeys, @@ -393,15 +401,11 @@ def save_multiple( artifact_versions=dict_model_ver, **metadata, ) - break - dict_model_ver = { - ":".join(key): self.save( - skeys=skeys, dkeys=key, artifact=artifact, pipe=pipe, **metadata - ) - } pipe.execute() _LOGGER.info("Successfully saved all the artifacts with: %s", dict_model_ver) except RedisError as err: raise RedisRegistryError(f"{err.__class__.__name__} raised") from err + except IndexError as index_err: + raise RedisRegistryError(f"{index_err.__class__.__name__} raised") from index_err else: return dict_model_ver diff --git a/numalogic/udfs/__main__.py b/numalogic/udfs/__main__.py index e8927e4e..d787df95 100644 --- a/numalogic/udfs/__main__.py +++ b/numalogic/udfs/__main__.py @@ -12,8 +12,13 @@ CONF_FILE_PATH = os.getenv( "CONF_PATH", default=os.path.join(BASE_CONF_DIR, "default-configs", "config.yaml") ) +pipeline_conf = load_pipeline_conf(CONF_FILE_PATH) +logging.info("Pipeline config: %s", pipeline_conf) +redis_client = get_redis_client_from_conf(pipeline_conf.redis_conf) +for key in redis_client.scan_iter("*"): + redis_client.delete(key) if __name__ == "__main__": set_logger() step = sys.argv[1] diff --git a/numalogic/udfs/inference.py b/numalogic/udfs/inference.py index 44630dba..46daadee 100644 --- a/numalogic/udfs/inference.py +++ b/numalogic/udfs/inference.py @@ -16,13 +16,14 @@ from numalogic.udfs._base import NumalogicUDF from numalogic.udfs._config import StreamConf, PipelineConf from numalogic.udfs.entities import StreamPayload, Header, Status -from numalogic.udfs.tools import _load_model +from numalogic.udfs.tools import _load_artifact _LOGGER = logging.getLogger(__name__) # TODO: move to config LOCAL_CACHE_TTL = int(os.getenv("LOCAL_CACHE_TTL", "3600")) LOCAL_CACHE_SIZE = int(os.getenv("LOCAL_CACHE_SIZE", "10000")) +LOAD_LATEST = os.getenv("LOAD_LATEST", "false").lower() == "true" class InferenceUDF(NumalogicUDF): @@ -112,11 +113,12 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: # Forward payload if a training request is tagged if payload.header == Header.TRAIN_REQUEST: return Messages(Message(keys=keys, value=payload.to_json())) - artifact_data = _load_model( + artifact_data, payload = _load_artifact( skeys=keys, dkeys=[self.get_conf(payload.config_id).numalogic_conf.model.name], payload=payload, model_registry=self.model_registry, + load_latest=LOAD_LATEST, ) # TODO: revisit retraining logic diff --git a/numalogic/udfs/postprocess.py b/numalogic/udfs/postprocess.py index cb8263d7..338e6c46 100644 --- a/numalogic/udfs/postprocess.py +++ b/numalogic/udfs/postprocess.py @@ -16,11 +16,12 @@ from numalogic.udfs import NumalogicUDF from numalogic.udfs._config import StreamConf, PipelineConf from numalogic.udfs.entities import StreamPayload, Header, Status, TrainerPayload, OutputPayload -from numalogic.udfs.tools import _load_model +from numalogic.udfs.tools import _load_artifact # TODO: move to config LOCAL_CACHE_TTL = int(os.getenv("LOCAL_CACHE_TTL", "3600")) LOCAL_CACHE_SIZE = int(os.getenv("LOCAL_CACHE_SIZE", "10000")) +LOAD_LATEST = os.getenv("LOAD_LATEST", "false").lower() == "true" _LOGGER = logging.getLogger(__name__) @@ -88,8 +89,12 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: postprocess_cfg = self.get_conf(payload.config_id).numalogic_conf.postprocess # load artifact - thresh_artifact = _load_model( - skeys=keys, dkeys=[thresh_cfg.name], payload=payload, model_registry=self.model_registry + thresh_artifact, payload = _load_artifact( + skeys=keys, + dkeys=[thresh_cfg.name], + payload=payload, + model_registry=self.model_registry, + load_latest=LOAD_LATEST, ) postproc_clf = self.postproc_factory.get_instance(postprocess_cfg) diff --git a/numalogic/udfs/preprocess.py b/numalogic/udfs/preprocess.py index f3001105..b84d91f8 100644 --- a/numalogic/udfs/preprocess.py +++ b/numalogic/udfs/preprocess.py @@ -16,11 +16,12 @@ from numalogic.udfs import NumalogicUDF from numalogic.udfs._config import StreamConf, PipelineConf from numalogic.udfs.entities import Status, Header -from numalogic.udfs.tools import make_stream_payload, get_df, _load_model +from numalogic.udfs.tools import make_stream_payload, get_df, _load_artifact # TODO: move to config LOCAL_CACHE_TTL = int(os.getenv("LOCAL_CACHE_TTL", "3600")) LOCAL_CACHE_SIZE = int(os.getenv("LOCAL_CACHE_SIZE", "10000")) +LOAD_LATEST = os.getenv("LOAD_LATEST", "false").lower() == "true" _LOGGER = logging.getLogger(__name__) @@ -108,7 +109,7 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: if any( [_conf.stateful for _conf in self.get_conf(payload.config_id).numalogic_conf.preprocess] ): - preproc_artifact = _load_model( + preproc_artifact, payload = _load_artifact( skeys=keys, dkeys=[ _conf.name @@ -116,6 +117,7 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: ], payload=payload, model_registry=self.model_registry, + load_latest=LOAD_LATEST, ) if preproc_artifact: preproc_clf = preproc_artifact.artifact diff --git a/numalogic/udfs/tools.py b/numalogic/udfs/tools.py index ad831bc6..5c3ed61a 100644 --- a/numalogic/udfs/tools.py +++ b/numalogic/udfs/tools.py @@ -66,9 +66,13 @@ def make_stream_payload( # TODO: move to base NumalogicUDF class -def _load_model( - skeys: KEYS, dkeys: KEYS, payload: StreamPayload, model_registry: ArtifactManager -) -> Optional[ArtifactData]: +def _load_artifact( + skeys: KEYS, + dkeys: KEYS, + payload: StreamPayload, + model_registry: ArtifactManager, + load_latest: bool, +) -> tuple[Optional[ArtifactData], StreamPayload]: """ Load artifact from redis Args: @@ -80,27 +84,35 @@ def _load_model( Returns ------- artifact_t object + StreamPayload object """ version_to_load = "-1" - str_dkeys = ":".join(dkeys) if payload.metadata and "artifact_versions" in payload.metadata: - version_to_load = payload.metadata["artifact_versions"][str_dkeys] + version_to_load = payload.metadata["artifact_versions"][":".join(dkeys)] + _LOGGER.info("%s - Found version info for keys: %s, %s", payload.uuid, skeys, dkeys) + else: + _LOGGER.info( + "%s - No version info passed on! Loading latest artifact version for Keys: %s", + payload.uuid, + skeys, + ) + load_latest = True try: - if version_to_load == -1: + if load_latest: artifact = model_registry.load(skeys=skeys, dkeys=dkeys) else: artifact = model_registry.load( skeys=skeys, dkeys=dkeys, latest=False, version=version_to_load ) except RedisRegistryError: - _LOGGER.exception( + _LOGGER.warning( "%s - Error while fetching artifact, Keys: %s, Metrics: %s", payload.uuid, skeys, payload.metrics, ) - return None + return None, payload except Exception: _LOGGER.exception( @@ -109,7 +121,7 @@ def _load_model( payload.composite_keys, payload.metrics, ) - return None + return None, payload else: _LOGGER.info( "%s - Loaded Model. Source: %s , version: %s, Keys: %s, %s", @@ -120,11 +132,11 @@ def _load_model( dkeys, ) if artifact.metadata and "artifact_versions" in artifact.metadata: - replace( + payload = replace( payload, metadata={ "artifact_versions": artifact.metadata["artifact_versions"], **payload.metadata, }, ) - return artifact + return artifact, payload diff --git a/numalogic/udfs/trainer.py b/numalogic/udfs/trainer.py index d5c2fe68..e9ecef22 100644 --- a/numalogic/udfs/trainer.py +++ b/numalogic/udfs/trainer.py @@ -201,7 +201,7 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: # Save in reverse order so that version info is stored for other models in the # metadata of first model list_artifacts = [artifacts["threshold_clf"], artifacts["model"], artifacts["preproc_clf"]] - list_dkeys = [thresh_dkeys, preproc_dkeys, model_dkeys] + list_dkeys = [thresh_dkeys, model_dkeys, preproc_dkeys] list_dkeys_save, list_artifacts_save = self.artifacts_to_save( list_dkeys=list_dkeys, list_artifacts=list_artifacts ) diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index f58feca2..00000000 --- a/poetry.lock +++ /dev/null @@ -1,5159 +0,0 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. - -[[package]] -name = "aiohttp" -version = "3.8.5" -description = "Async http client/server framework (asyncio)" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a94159871304770da4dd371f4291b20cac04e8c94f11bdea1c3478e557fbe0d8"}, - {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:13bf85afc99ce6f9ee3567b04501f18f9f8dbbb2ea11ed1a2e079670403a7c84"}, - {file = "aiohttp-3.8.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ce2ac5708501afc4847221a521f7e4b245abf5178cf5ddae9d5b3856ddb2f3a"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96943e5dcc37a6529d18766597c491798b7eb7a61d48878611298afc1fca946c"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ad5c3c4590bb3cc28b4382f031f3783f25ec223557124c68754a2231d989e2b"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c413c633d0512df4dc7fd2373ec06cc6a815b7b6d6c2f208ada7e9e93a5061d"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df72ac063b97837a80d80dec8d54c241af059cc9bb42c4de68bd5b61ceb37caa"}, - {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c48c5c0271149cfe467c0ff8eb941279fd6e3f65c9a388c984e0e6cf57538e14"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:368a42363c4d70ab52c2c6420a57f190ed3dfaca6a1b19afda8165ee16416a82"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7607ec3ce4993464368505888af5beb446845a014bc676d349efec0e05085905"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0d21c684808288a98914e5aaf2a7c6a3179d4df11d249799c32d1808e79503b5"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:312fcfbacc7880a8da0ae8b6abc6cc7d752e9caa0051a53d217a650b25e9a691"}, - {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ad093e823df03bb3fd37e7dec9d4670c34f9e24aeace76808fc20a507cace825"}, - {file = "aiohttp-3.8.5-cp310-cp310-win32.whl", hash = "sha256:33279701c04351a2914e1100b62b2a7fdb9a25995c4a104259f9a5ead7ed4802"}, - {file = "aiohttp-3.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:6e4a280e4b975a2e7745573e3fc9c9ba0d1194a3738ce1cbaa80626cc9b4f4df"}, - {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae871a964e1987a943d83d6709d20ec6103ca1eaf52f7e0d36ee1b5bebb8b9b9"}, - {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:461908b2578955045efde733719d62f2b649c404189a09a632d245b445c9c975"}, - {file = "aiohttp-3.8.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:72a860c215e26192379f57cae5ab12b168b75db8271f111019509a1196dfc780"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc14be025665dba6202b6a71cfcdb53210cc498e50068bc088076624471f8bb9"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8af740fc2711ad85f1a5c034a435782fbd5b5f8314c9a3ef071424a8158d7f6b"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:841cd8233cbd2111a0ef0a522ce016357c5e3aff8a8ce92bcfa14cef890d698f"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed1c46fb119f1b59304b5ec89f834f07124cd23ae5b74288e364477641060ff"}, - {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84f8ae3e09a34f35c18fa57f015cc394bd1389bce02503fb30c394d04ee6b938"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62360cb771707cb70a6fd114b9871d20d7dd2163a0feafe43fd115cfe4fe845e"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:23fb25a9f0a1ca1f24c0a371523546366bb642397c94ab45ad3aedf2941cec6a"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0ba0d15164eae3d878260d4c4df859bbdc6466e9e6689c344a13334f988bb53"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5d20003b635fc6ae3f96d7260281dfaf1894fc3aa24d1888a9b2628e97c241e5"}, - {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0175d745d9e85c40dcc51c8f88c74bfbaef9e7afeeeb9d03c37977270303064c"}, - {file = "aiohttp-3.8.5-cp311-cp311-win32.whl", hash = "sha256:2e1b1e51b0774408f091d268648e3d57f7260c1682e7d3a63cb00d22d71bb945"}, - {file = "aiohttp-3.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:043d2299f6dfdc92f0ac5e995dfc56668e1587cea7f9aa9d8a78a1b6554e5755"}, - {file = "aiohttp-3.8.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cae533195e8122584ec87531d6df000ad07737eaa3c81209e85c928854d2195c"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f21e83f355643c345177a5d1d8079f9f28b5133bcd154193b799d380331d5d3"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a75ef35f2df54ad55dbf4b73fe1da96f370e51b10c91f08b19603c64004acc"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e2e9839e14dd5308ee773c97115f1e0a1cb1d75cbeeee9f33824fa5144c7634"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44e65da1de4403d0576473e2344828ef9c4c6244d65cf4b75549bb46d40b8dd"}, - {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d847e4cde6ecc19125ccbc9bfac4a7ab37c234dd88fbb3c5c524e8e14da543"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:c7a815258e5895d8900aec4454f38dca9aed71085f227537208057853f9d13f2"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:8b929b9bd7cd7c3939f8bcfffa92fae7480bd1aa425279d51a89327d600c704d"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:5db3a5b833764280ed7618393832e0853e40f3d3e9aa128ac0ba0f8278d08649"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:a0215ce6041d501f3155dc219712bc41252d0ab76474615b9700d63d4d9292af"}, - {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fd1ed388ea7fbed22c4968dd64bab0198de60750a25fe8c0c9d4bef5abe13824"}, - {file = "aiohttp-3.8.5-cp36-cp36m-win32.whl", hash = "sha256:6e6783bcc45f397fdebc118d772103d751b54cddf5b60fbcc958382d7dd64f3e"}, - {file = "aiohttp-3.8.5-cp36-cp36m-win_amd64.whl", hash = "sha256:b5411d82cddd212644cf9360879eb5080f0d5f7d809d03262c50dad02f01421a"}, - {file = "aiohttp-3.8.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:01d4c0c874aa4ddfb8098e85d10b5e875a70adc63db91f1ae65a4b04d3344cda"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5980a746d547a6ba173fd5ee85ce9077e72d118758db05d229044b469d9029a"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a482e6da906d5e6e653be079b29bc173a48e381600161c9932d89dfae5942ef"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80bd372b8d0715c66c974cf57fe363621a02f359f1ec81cba97366948c7fc873"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1161b345c0a444ebcf46bf0a740ba5dcf50612fd3d0528883fdc0eff578006a"}, - {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd56db019015b6acfaaf92e1ac40eb8434847d9bf88b4be4efe5bfd260aee692"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:153c2549f6c004d2754cc60603d4668899c9895b8a89397444a9c4efa282aaf4"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4a01951fabc4ce26ab791da5f3f24dca6d9a6f24121746eb19756416ff2d881b"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bfb9162dcf01f615462b995a516ba03e769de0789de1cadc0f916265c257e5d8"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:7dde0009408969a43b04c16cbbe252c4f5ef4574ac226bc8815cd7342d2028b6"}, - {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4149d34c32f9638f38f544b3977a4c24052042affa895352d3636fa8bffd030a"}, - {file = "aiohttp-3.8.5-cp37-cp37m-win32.whl", hash = "sha256:68c5a82c8779bdfc6367c967a4a1b2aa52cd3595388bf5961a62158ee8a59e22"}, - {file = "aiohttp-3.8.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2cf57fb50be5f52bda004b8893e63b48530ed9f0d6c96c84620dc92fe3cd9b9d"}, - {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:eca4bf3734c541dc4f374ad6010a68ff6c6748f00451707f39857f429ca36ced"}, - {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1274477e4c71ce8cfe6c1ec2f806d57c015ebf84d83373676036e256bc55d690"}, - {file = "aiohttp-3.8.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:28c543e54710d6158fc6f439296c7865b29e0b616629767e685a7185fab4a6b9"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:910bec0c49637d213f5d9877105d26e0c4a4de2f8b1b29405ff37e9fc0ad52b8"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5443910d662db951b2e58eb70b0fbe6b6e2ae613477129a5805d0b66c54b6cb7"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e460be6978fc24e3df83193dc0cc4de46c9909ed92dd47d349a452ef49325b7"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb1558def481d84f03b45888473fc5a1f35747b5f334ef4e7a571bc0dfcb11f8"}, - {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34dd0c107799dcbbf7d48b53be761a013c0adf5571bf50c4ecad5643fe9cfcd0"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aa1990247f02a54185dc0dff92a6904521172a22664c863a03ff64c42f9b5410"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0e584a10f204a617d71d359fe383406305a4b595b333721fa50b867b4a0a1548"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:a3cf433f127efa43fee6b90ea4c6edf6c4a17109d1d037d1a52abec84d8f2e42"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c11f5b099adafb18e65c2c997d57108b5bbeaa9eeee64a84302c0978b1ec948b"}, - {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:84de26ddf621d7ac4c975dbea4c945860e08cccde492269db4e1538a6a6f3c35"}, - {file = "aiohttp-3.8.5-cp38-cp38-win32.whl", hash = "sha256:ab88bafedc57dd0aab55fa728ea10c1911f7e4d8b43e1d838a1739f33712921c"}, - {file = "aiohttp-3.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:5798a9aad1879f626589f3df0f8b79b3608a92e9beab10e5fda02c8a2c60db2e"}, - {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a6ce61195c6a19c785df04e71a4537e29eaa2c50fe745b732aa937c0c77169f3"}, - {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:773dd01706d4db536335fcfae6ea2440a70ceb03dd3e7378f3e815b03c97ab51"}, - {file = "aiohttp-3.8.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f83a552443a526ea38d064588613aca983d0ee0038801bc93c0c916428310c28"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f7372f7341fcc16f57b2caded43e81ddd18df53320b6f9f042acad41f8e049a"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea353162f249c8097ea63c2169dd1aa55de1e8fecbe63412a9bc50816e87b761"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d47ae48db0b2dcf70bc8a3bc72b3de86e2a590fc299fdbbb15af320d2659de"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d827176898a2b0b09694fbd1088c7a31836d1a505c243811c87ae53a3f6273c1"}, - {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3562b06567c06439d8b447037bb655ef69786c590b1de86c7ab81efe1c9c15d8"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4e874cbf8caf8959d2adf572a78bba17cb0e9d7e51bb83d86a3697b686a0ab4d"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6809a00deaf3810e38c628e9a33271892f815b853605a936e2e9e5129762356c"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:33776e945d89b29251b33a7e7d006ce86447b2cfd66db5e5ded4e5cd0340585c"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:eaeed7abfb5d64c539e2db173f63631455f1196c37d9d8d873fc316470dfbacd"}, - {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e91d635961bec2d8f19dfeb41a539eb94bd073f075ca6dae6c8dc0ee89ad6f91"}, - {file = "aiohttp-3.8.5-cp39-cp39-win32.whl", hash = "sha256:00ad4b6f185ec67f3e6562e8a1d2b69660be43070bd0ef6fcec5211154c7df67"}, - {file = "aiohttp-3.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:c0a9034379a37ae42dea7ac1e048352d96286626251862e448933c0f59cbd79c"}, - {file = "aiohttp-3.8.5.tar.gz", hash = "sha256:b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc"}, -] - -[package.dependencies] -aiosignal = ">=1.1.2" -async-timeout = ">=4.0.0a3,<5.0" -attrs = ">=17.3.0" -charset-normalizer = ">=2.0,<4.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -yarl = ">=1.0,<2.0" - -[package.extras] -speedups = ["Brotli", "aiodns", "cchardet"] - -[[package]] -name = "aiorun" -version = "2022.11.1" -description = "Boilerplate for asyncio applications" -category = "main" -optional = true -python-versions = ">=3.5" -files = [ - {file = "aiorun-2022.11.1-py3-none-any.whl", hash = "sha256:8fbfc2aab258021deef2b1f38284c652af9fd3710e94c7b0e736a55d161fa0cb"}, - {file = "aiorun-2022.11.1.tar.gz", hash = "sha256:d820cebffdea82f9c1750cc396f3a58e4c0d277a2c51f11e86ed6ab7736dce59"}, -] - -[package.extras] -dev = ["pytest", "pytest-cov"] - -[[package]] -name = "aiosignal" -version = "1.3.1" -description = "aiosignal: a list of registered asynchronous callbacks" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, - {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" - -[[package]] -name = "antlr4-python3-runtime" -version = "4.9.3" -description = "ANTLR 4.9.3 runtime for Python 3.7" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b"}, -] - -[[package]] -name = "anyio" -version = "4.0.0" -description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "anyio-4.0.0-py3-none-any.whl", hash = "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f"}, - {file = "anyio-4.0.0.tar.gz", hash = "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"}, -] - -[package.dependencies] -exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} -idna = ">=2.8" -sniffio = ">=1.1" - -[package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (>=0.22)"] - -[[package]] -name = "appnope" -version = "0.1.3" -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 = "argon2-cffi" -version = "23.1.0" -description = "Argon2 for Python" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, - {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, -] - -[package.dependencies] -argon2-cffi-bindings = "*" - -[package.extras] -dev = ["argon2-cffi[tests,typing]", "tox (>4)"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] -tests = ["hypothesis", "pytest"] -typing = ["mypy"] - -[[package]] -name = "argon2-cffi-bindings" -version = "21.2.0" -description = "Low-level CFFI bindings for Argon2" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, - {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, -] - -[package.dependencies] -cffi = ">=1.0.1" - -[package.extras] -dev = ["cogapp", "pre-commit", "pytest", "wheel"] -tests = ["pytest"] - -[[package]] -name = "arrow" -version = "1.2.3" -description = "Better dates & times for Python" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "arrow-1.2.3-py3-none-any.whl", hash = "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2"}, - {file = "arrow-1.2.3.tar.gz", hash = "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1"}, -] - -[package.dependencies] -python-dateutil = ">=2.7.0" - -[[package]] -name = "asttokens" -version = "2.4.0" -description = "Annotate AST trees with source code positions" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "asttokens-2.4.0-py2.py3-none-any.whl", hash = "sha256:cf8fc9e61a86461aa9fb161a14a0841a03c405fa829ac6b202670b3495d2ce69"}, - {file = "asttokens-2.4.0.tar.gz", hash = "sha256:2e0171b991b2c959acc6c49318049236844a5da1d65ba2672c4880c1c894834e"}, -] - -[package.dependencies] -six = ">=1.12.0" - -[package.extras] -test = ["astroid", "pytest"] - -[[package]] -name = "async-lru" -version = "2.0.4" -description = "Simple LRU cache for asyncio" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, - {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} - -[[package]] -name = "async-timeout" -version = "4.0.3" -description = "Timeout context manager for asyncio programs" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, - {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, -] - -[[package]] -name = "attrs" -version = "23.1.0" -description = "Classes Without Boilerplate" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, - {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, -] - -[package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] - -[[package]] -name = "babel" -version = "2.12.1" -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]] -name = "backcall" -version = "0.2.0" -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 = "beautifulsoup4" -version = "4.12.2" -description = "Screen-scraping library" -category = "dev" -optional = false -python-versions = ">=3.6.0" -files = [ - {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, - {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, -] - -[package.dependencies] -soupsieve = ">1.2" - -[package.extras] -html5lib = ["html5lib"] -lxml = ["lxml"] - -[[package]] -name = "black" -version = "23.7.0" -description = "The uncompromising code formatter." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "black-23.7.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:5c4bc552ab52f6c1c506ccae05681fab58c3f72d59ae6e6639e8885e94fe2587"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:552513d5cd5694590d7ef6f46e1767a4df9af168d449ff767b13b084c020e63f"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:86cee259349b4448adb4ef9b204bb4467aae74a386bce85d56ba4f5dc0da27be"}, - {file = "black-23.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:501387a9edcb75d7ae8a4412bb8749900386eaef258f1aefab18adddea1936bc"}, - {file = "black-23.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb074d8b213749fa1d077d630db0d5f8cc3b2ae63587ad4116e8a436e9bbe995"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b5b0ee6d96b345a8b420100b7d71ebfdd19fab5e8301aff48ec270042cd40ac2"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:893695a76b140881531062d48476ebe4a48f5d1e9388177e175d76234ca247cd"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:c333286dc3ddca6fdff74670b911cccedacb4ef0a60b34e491b8a67c833b343a"}, - {file = "black-23.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831d8f54c3a8c8cf55f64d0422ee875eecac26f5f649fb6c1df65316b67c8926"}, - {file = "black-23.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7f3bf2dec7d541b4619b8ce526bda74a6b0bffc480a163fed32eb8b3c9aed8ad"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:f9062af71c59c004cd519e2fb8f5d25d39e46d3af011b41ab43b9c74e27e236f"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:01ede61aac8c154b55f35301fac3e730baf0c9cf8120f65a9cd61a81cfb4a0c3"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:327a8c2550ddc573b51e2c352adb88143464bb9d92c10416feb86b0f5aee5ff6"}, - {file = "black-23.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1c6022b86f83b632d06f2b02774134def5d4d4f1dac8bef16d90cda18ba28a"}, - {file = "black-23.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:27eb7a0c71604d5de083757fbdb245b1a4fae60e9596514c6ec497eb63f95320"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:8417dbd2f57b5701492cd46edcecc4f9208dc75529bcf76c514864e48da867d9"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:47e56d83aad53ca140da0af87678fb38e44fd6bc0af71eebab2d1f59b1acf1d3"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:25cc308838fe71f7065df53aedd20327969d05671bac95b38fdf37ebe70ac087"}, - {file = "black-23.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:642496b675095d423f9b8448243336f8ec71c9d4d57ec17bf795b67f08132a91"}, - {file = "black-23.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:ad0014efc7acf0bd745792bd0d8857413652979200ab924fbf239062adc12491"}, - {file = "black-23.7.0-py3-none-any.whl", hash = "sha256:9fd59d418c60c0348505f2ddf9609c1e1de8e7493eab96198fc89d9f865e7a96"}, - {file = "black-23.7.0.tar.gz", hash = "sha256:022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb"}, -] - -[package.dependencies] -click = ">=8.0.0" -mypy-extensions = ">=0.4.3" -packaging = ">=22.0" -pathspec = ">=0.9.0" -platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} - -[package.extras] -colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] -jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -uvloop = ["uvloop (>=0.15.2)"] - -[[package]] -name = "bleach" -version = "6.0.0" -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" -webencodings = "*" - -[package.extras] -css = ["tinycss2 (>=1.1.0,<1.2)"] - -[[package]] -name = "boto3" -version = "1.28.44" -description = "The AWS SDK for Python" -category = "main" -optional = false -python-versions = ">= 3.7" -files = [ - {file = "boto3-1.28.44-py3-none-any.whl", hash = "sha256:c53c92dfe22489ba31e918c2e7b59ff43e2e778bd3d3559e62351a739382bb5c"}, - {file = "boto3-1.28.44.tar.gz", hash = "sha256:eea3b07e0f28c9f92bccab972af24a3b0dd951c69d93da75227b8ecd3e18f6c4"}, -] - -[package.dependencies] -botocore = ">=1.31.44,<1.32.0" -jmespath = ">=0.7.1,<2.0.0" -s3transfer = ">=0.6.0,<0.7.0" - -[package.extras] -crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] - -[[package]] -name = "botocore" -version = "1.31.44" -description = "Low-level, data-driven core of boto 3." -category = "main" -optional = false -python-versions = ">= 3.7" -files = [ - {file = "botocore-1.31.44-py3-none-any.whl", hash = "sha256:83d61c1ca781e6ede19fcc4d5dd73004eee3825a2b220f0d7727e32069209d98"}, - {file = "botocore-1.31.44.tar.gz", hash = "sha256:84f90919fecb4a4f417fd10145c8a87ff2c4b14d6381cd34d9babf02110b3315"}, -] - -[package.dependencies] -jmespath = ">=0.7.1,<2.0.0" -python-dateutil = ">=2.1,<3.0.0" -urllib3 = ">=1.25.4,<1.27" - -[package.extras] -crt = ["awscrt (==0.16.26)"] - -[[package]] -name = "bottleneck" -version = "1.3.7" -description = "Fast NumPy array functions written in C" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "Bottleneck-1.3.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ada1a9ff93fd6b1b19f12398a6761940372b00e53d86db98bd4613a751c60043"}, - {file = "Bottleneck-1.3.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a477101ee12155a0d2f9a82cd3e2a44b9b1aa53afe5b20acc065c91cf35c3106"}, - {file = "Bottleneck-1.3.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfe5f3010e9ad8ae54871d1e8fd61109c5981ed8d9d14e8496a1c37fe2050a04"}, - {file = "Bottleneck-1.3.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:955df78713ff58cf815c0a1fa4782b2dc51a8787c0971688472c64b267303855"}, - {file = "Bottleneck-1.3.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92fc5d3ecfedde3b28c56ca686cff70a8125d1ddc281eb468b5e9d6a61269802"}, - {file = "Bottleneck-1.3.7-cp310-cp310-win32.whl", hash = "sha256:e2a290dcb148c0ddf182052e333892e46730c7d39a1f251af87e3d81a43cdde3"}, - {file = "Bottleneck-1.3.7-cp310-cp310-win_amd64.whl", hash = "sha256:9170ebee4cff423c92b3760afec179bded90eaede7c70dd27cf5f406cc00a1e7"}, - {file = "Bottleneck-1.3.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:752c97d64ebebdc10a5568d97b81b4971238fa4b53533248d227c4ea759aee4e"}, - {file = "Bottleneck-1.3.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbda2b27e81a47b7578bce6a8cb2f5eb899279c828d8efb5a154d8ede785093d"}, - {file = "Bottleneck-1.3.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79160e49a5a0438468b970967e29addde2d9c6a6ce930144de7ccd8151077603"}, - {file = "Bottleneck-1.3.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:abfc22762640cc7716c1bd9a409bde0f834167a2584775eb644c6afe7bae3319"}, - {file = "Bottleneck-1.3.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2a39049aa1cb798538f96150098f50badb37417c41cecfa8a441c0c4e6433c7e"}, - {file = "Bottleneck-1.3.7-cp311-cp311-win32.whl", hash = "sha256:b624023f173332d209ed5bd4134fae43d2432d61c6b17a49a6b7c5591caa7cc4"}, - {file = "Bottleneck-1.3.7-cp311-cp311-win_amd64.whl", hash = "sha256:bd69b1844c90f6bcf1b679a608fb2c0909be5e045f91674d61a0e4c3596644be"}, - {file = "Bottleneck-1.3.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c8fa2d85298cdd0f88f51fb46604039abe9a5a2b57e00acfe2b64f546754c053"}, - {file = "Bottleneck-1.3.7-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09fa97df2f572aed5da487d3fe467829c2212c97b1d63c768ec9be9fd1c57a9"}, - {file = "Bottleneck-1.3.7-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f239ba0d992c013564979cff4fecf2b251614de3730641e79d05ecc09268c00c"}, - {file = "Bottleneck-1.3.7-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:f5409cf6db5e60256626a7c110b2b4c80d9f6b0d1ec0b66565bbab978f96b7a6"}, - {file = "Bottleneck-1.3.7-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b3c65a9aedada04872cba450676d132d7af8b9da47f58b82f20ffe9b9ff77a46"}, - {file = "Bottleneck-1.3.7-cp36-cp36m-win32.whl", hash = "sha256:b4a47f972e919d22c1725ff7262d209e6ea3a4d9bcfea71fb454a18e166515ec"}, - {file = "Bottleneck-1.3.7-cp36-cp36m-win_amd64.whl", hash = "sha256:8d6865327ebbea5578f99b073538789df2123cf9009e99fe94efc4d25a4b888b"}, - {file = "Bottleneck-1.3.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:685812254238c2059810f8e25c8215b09795b974f5b1a89f0accda3d93cc8734"}, - {file = "Bottleneck-1.3.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5977f1fd02f01035176a99c01b3fb0eefdaff002c30a4710f7279215b0a317f5"}, - {file = "Bottleneck-1.3.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e26c655736701365d66c64056fc272952d0e2a52718c637254d7dd9a7efa97a8"}, - {file = "Bottleneck-1.3.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d982e1e3f72cc7ca4f558e9ef7db7a97ce68a915b1db8249fe088b3e78974b21"}, - {file = "Bottleneck-1.3.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b5ec31e0b52cbfd716255695ec5fe87662a5961d2b8b49936f3608e36a04d926"}, - {file = "Bottleneck-1.3.7-cp37-cp37m-win32.whl", hash = "sha256:f2c8b631552908b11905cf87b4a90dd4af332b0726dd9b49d26d6a0fbb38e6d4"}, - {file = "Bottleneck-1.3.7-cp37-cp37m-win_amd64.whl", hash = "sha256:1045f9b199bba2675bd7642c25dec5daa21a03a5f0444eb863f2790af52b00b0"}, - {file = "Bottleneck-1.3.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5af0c679da9dc41d6a3c436785c664fff41b4c1178d46afaa630620ab31e970f"}, - {file = "Bottleneck-1.3.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c65d0a9498b2ccda236b28b1b36bc35402e81ebc4575b6cf44033b7e4460f067"}, - {file = "Bottleneck-1.3.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:752f4c3fc5b7cc49814d41e9ecf6f228f33ea407bdb8c889da53716b5628abc7"}, - {file = "Bottleneck-1.3.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:54fc579445688c5309a0af7634db3be4e17659c6b664f9332ec404738e847894"}, - {file = "Bottleneck-1.3.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:175ae3d92142769a5acd169ac2d7df22107b72f6d4c932ff56f5afcef39d5877"}, - {file = "Bottleneck-1.3.7-cp38-cp38-win32.whl", hash = "sha256:64ef9ad7187282745205b735e8c33307ec14c7be39f9971bc3f375104355cfb9"}, - {file = "Bottleneck-1.3.7-cp38-cp38-win_amd64.whl", hash = "sha256:fa80c318b5164e39e4f2d5abf95f5ff42744e3d8535a4c85ede94ccc5fca8f9b"}, - {file = "Bottleneck-1.3.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:01e61a512d645193cf4cf4fdacf98d3140c26ace0fcf4c4ed8fdfa366c57e0d1"}, - {file = "Bottleneck-1.3.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:699fb76ef50cf85be8f8d644b533488de3cec4c6ddf00fd770f73cc5caac9938"}, - {file = "Bottleneck-1.3.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6311ee47641ed5fbc543d2e49cbfa90bd9ece208a0c1bdc2c2b14b9132982b2a"}, - {file = "Bottleneck-1.3.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a1e50fb506693186a4b8f85ac79df1a5af1ab1f774bf20004280e0658a731a89"}, - {file = "Bottleneck-1.3.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4d2ae3e1ac0626107c6916783befc39473900bb22a9b275e21550c99abe8283c"}, - {file = "Bottleneck-1.3.7-cp39-cp39-win32.whl", hash = "sha256:68d0f9d32d45f62028ab27d2b51d1a2af72a5ca6a7c3b1f86e9115fedb266300"}, - {file = "Bottleneck-1.3.7-cp39-cp39-win_amd64.whl", hash = "sha256:83d71c49dd9d6b99def958b6ccba3c8b5aac7b90849a5a9fe935648436dd46b9"}, - {file = "Bottleneck-1.3.7.tar.gz", hash = "sha256:e1467e373ad469da340ed0ff283214d6531cc08bfdca2083361a3aa6470681f8"}, -] - -[package.dependencies] -numpy = "*" - -[package.extras] -doc = ["gitpython", "numpydoc", "sphinx"] - -[[package]] -name = "cachetools" -version = "5.3.1" -description = "Extensible memoizing collections and decorators" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"}, - {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"}, -] - -[[package]] -name = "certifi" -version = "2023.7.22" -description = "Python package for providing Mozilla's CA Bundle." -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, -] - -[[package]] -name = "cffi" -version = "1.15.1" -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 = "*" - -[[package]] -name = "cfgv" -version = "3.4.0" -description = "Validate configuration and produce human readable error messages." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, - {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.2.0" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, -] - -[[package]] -name = "click" -version = "8.1.7" -description = "Composable command line interface toolkit" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "cloudpickle" -version = "2.2.1" -description = "Extended pickling support for Python objects" -category = "main" -optional = true -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" -version = "0.4.6" -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 = "comm" -version = "0.1.4" -description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "comm-0.1.4-py3-none-any.whl", hash = "sha256:6d52794cba11b36ed9860999cd10fd02d6b2eac177068fdd585e1e2f8a96e67a"}, - {file = "comm-0.1.4.tar.gz", hash = "sha256:354e40a59c9dd6db50c5cc6b4acc887d82e9603787f83b68c01a80a923984d15"}, -] - -[package.dependencies] -traitlets = ">=4" - -[package.extras] -lint = ["black (>=22.6.0)", "mdformat (>0.7)", "mdformat-gfm (>=0.3.5)", "ruff (>=0.0.156)"] -test = ["pytest"] -typing = ["mypy (>=0.990)"] - -[[package]] -name = "contourpy" -version = "1.1.0" -description = "Python library for calculating contours of 2D quadrilateral grids" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "contourpy-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:89f06eff3ce2f4b3eb24c1055a26981bffe4e7264acd86f15b97e40530b794bc"}, - {file = "contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dffcc2ddec1782dd2f2ce1ef16f070861af4fb78c69862ce0aab801495dda6a3"}, - {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25ae46595e22f93592d39a7eac3d638cda552c3e1160255258b695f7b58e5655"}, - {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:17cfaf5ec9862bc93af1ec1f302457371c34e688fbd381f4035a06cd47324f48"}, - {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18a64814ae7bce73925131381603fff0116e2df25230dfc80d6d690aa6e20b37"}, - {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c81f22b4f572f8a2110b0b741bb64e5a6427e0a198b2cdc1fbaf85f352a3aa"}, - {file = "contourpy-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53cc3a40635abedbec7f1bde60f8c189c49e84ac180c665f2cd7c162cc454baa"}, - {file = "contourpy-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:1f795597073b09d631782e7245016a4323cf1cf0b4e06eef7ea6627e06a37ff2"}, - {file = "contourpy-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0b7b04ed0961647691cfe5d82115dd072af7ce8846d31a5fac6c142dcce8b882"}, - {file = "contourpy-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27bc79200c742f9746d7dd51a734ee326a292d77e7d94c8af6e08d1e6c15d545"}, - {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052cc634bf903c604ef1a00a5aa093c54f81a2612faedaa43295809ffdde885e"}, - {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9382a1c0bc46230fb881c36229bfa23d8c303b889b788b939365578d762b5c18"}, - {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5cec36c5090e75a9ac9dbd0ff4a8cf7cecd60f1b6dc23a374c7d980a1cd710e"}, - {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f0cbd657e9bde94cd0e33aa7df94fb73c1ab7799378d3b3f902eb8eb2e04a3a"}, - {file = "contourpy-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:181cbace49874f4358e2929aaf7ba84006acb76694102e88dd15af861996c16e"}, - {file = "contourpy-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb3b7d9e6243bfa1efb93ccfe64ec610d85cfe5aec2c25f97fbbd2e58b531256"}, - {file = "contourpy-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bcb41692aa09aeb19c7c213411854402f29f6613845ad2453d30bf421fe68fed"}, - {file = "contourpy-1.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5d123a5bc63cd34c27ff9c7ac1cd978909e9c71da12e05be0231c608048bb2ae"}, - {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62013a2cf68abc80dadfd2307299bfa8f5aa0dcaec5b2954caeb5fa094171103"}, - {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0b6616375d7de55797d7a66ee7d087efe27f03d336c27cf1f32c02b8c1a5ac70"}, - {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:317267d915490d1e84577924bd61ba71bf8681a30e0d6c545f577363157e5e94"}, - {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d551f3a442655f3dcc1285723f9acd646ca5858834efeab4598d706206b09c9f"}, - {file = "contourpy-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7a117ce7df5a938fe035cad481b0189049e8d92433b4b33aa7fc609344aafa1"}, - {file = "contourpy-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4f26b25b4f86087e7d75e63212756c38546e70f2a92d2be44f80114826e1cd4"}, - {file = "contourpy-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc00bb4225d57bff7ebb634646c0ee2a1298402ec10a5fe7af79df9a51c1bfd9"}, - {file = "contourpy-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:189ceb1525eb0655ab8487a9a9c41f42a73ba52d6789754788d1883fb06b2d8a"}, - {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f2931ed4741f98f74b410b16e5213f71dcccee67518970c42f64153ea9313b9"}, - {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30f511c05fab7f12e0b1b7730ebdc2ec8deedcfb505bc27eb570ff47c51a8f15"}, - {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:143dde50520a9f90e4a2703f367cf8ec96a73042b72e68fcd184e1279962eb6f"}, - {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e94bef2580e25b5fdb183bf98a2faa2adc5b638736b2c0a4da98691da641316a"}, - {file = "contourpy-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ed614aea8462735e7d70141374bd7650afd1c3f3cb0c2dbbcbe44e14331bf002"}, - {file = "contourpy-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:438ba416d02f82b692e371858143970ed2eb6337d9cdbbede0d8ad9f3d7dd17d"}, - {file = "contourpy-1.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a698c6a7a432789e587168573a864a7ea374c6be8d4f31f9d87c001d5a843493"}, - {file = "contourpy-1.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:397b0ac8a12880412da3551a8cb5a187d3298a72802b45a3bd1805e204ad8439"}, - {file = "contourpy-1.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a67259c2b493b00e5a4d0f7bfae51fb4b3371395e47d079a4446e9b0f4d70e76"}, - {file = "contourpy-1.1.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2b836d22bd2c7bb2700348e4521b25e077255ebb6ab68e351ab5aa91ca27e027"}, - {file = "contourpy-1.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084eaa568400cfaf7179b847ac871582199b1b44d5699198e9602ecbbb5f6104"}, - {file = "contourpy-1.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:911ff4fd53e26b019f898f32db0d4956c9d227d51338fb3b03ec72ff0084ee5f"}, - {file = "contourpy-1.1.0.tar.gz", hash = "sha256:e53046c3863828d21d531cc3b53786e6580eb1ba02477e8681009b6aa0870b21"}, -] - -[package.dependencies] -numpy = ">=1.16" - -[package.extras] -bokeh = ["bokeh", "selenium"] -docs = ["furo", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.2.0)", "types-Pillow"] -test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "wurlitzer"] - -[[package]] -name = "coverage" -version = "7.3.1" -description = "Code coverage measurement for Python" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, - {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, - {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, - {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, - {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, - {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, - {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, - {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, - {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, - {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, - {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, - {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, - {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, - {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, -] - -[package.dependencies] -tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "cryptography" -version = "41.0.3" -description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "cryptography-41.0.3-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:652627a055cb52a84f8c448185922241dd5217443ca194d5739b44612c5e6507"}, - {file = "cryptography-41.0.3-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:8f09daa483aedea50d249ef98ed500569841d6498aa9c9f4b0531b9964658922"}, - {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fd871184321100fb400d759ad0cddddf284c4b696568204d281c902fc7b0d81"}, - {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84537453d57f55a50a5b6835622ee405816999a7113267739a1b4581f83535bd"}, - {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3fb248989b6363906827284cd20cca63bb1a757e0a2864d4c1682a985e3dca47"}, - {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:42cb413e01a5d36da9929baa9d70ca90d90b969269e5a12d39c1e0d475010116"}, - {file = "cryptography-41.0.3-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:aeb57c421b34af8f9fe830e1955bf493a86a7996cc1338fe41b30047d16e962c"}, - {file = "cryptography-41.0.3-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6af1c6387c531cd364b72c28daa29232162010d952ceb7e5ca8e2827526aceae"}, - {file = "cryptography-41.0.3-cp37-abi3-win32.whl", hash = "sha256:0d09fb5356f975974dbcb595ad2d178305e5050656affb7890a1583f5e02a306"}, - {file = "cryptography-41.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:a983e441a00a9d57a4d7c91b3116a37ae602907a7618b882c8013b5762e80574"}, - {file = "cryptography-41.0.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5259cb659aa43005eb55a0e4ff2c825ca111a0da1814202c64d28a985d33b087"}, - {file = "cryptography-41.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:67e120e9a577c64fe1f611e53b30b3e69744e5910ff3b6e97e935aeb96005858"}, - {file = "cryptography-41.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:7efe8041897fe7a50863e51b77789b657a133c75c3b094e51b5e4b5cec7bf906"}, - {file = "cryptography-41.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ce785cf81a7bdade534297ef9e490ddff800d956625020ab2ec2780a556c313e"}, - {file = "cryptography-41.0.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:57a51b89f954f216a81c9d057bf1a24e2f36e764a1ca9a501a6964eb4a6800dd"}, - {file = "cryptography-41.0.3-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c2f0d35703d61002a2bbdcf15548ebb701cfdd83cdc12471d2bae80878a4207"}, - {file = "cryptography-41.0.3-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:23c2d778cf829f7d0ae180600b17e9fceea3c2ef8b31a99e3c694cbbf3a24b84"}, - {file = "cryptography-41.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:95dd7f261bb76948b52a5330ba5202b91a26fbac13ad0e9fc8a3ac04752058c7"}, - {file = "cryptography-41.0.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:41d7aa7cdfded09b3d73a47f429c298e80796c8e825ddfadc84c8a7f12df212d"}, - {file = "cryptography-41.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d0d651aa754ef58d75cec6edfbd21259d93810b73f6ec246436a21b7841908de"}, - {file = "cryptography-41.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ab8de0d091acbf778f74286f4989cf3d1528336af1b59f3e5d2ebca8b5fe49e1"}, - {file = "cryptography-41.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a74fbcdb2a0d46fe00504f571a2a540532f4c188e6ccf26f1f178480117b33c4"}, - {file = "cryptography-41.0.3.tar.gz", hash = "sha256:6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34"}, -] - -[package.dependencies] -cffi = ">=1.12" - -[package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] -nox = ["nox"] -pep8test = ["black", "check-sdist", "mypy", "ruff"] -sdist = ["build"] -ssh = ["bcrypt (>=3.1.5)"] -test = ["pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] -test-randomorder = ["pytest-randomly"] - -[[package]] -name = "cycler" -version = "0.11.0" -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 = "databricks-cli" -version = "0.17.7" -description = "A command line interface for Databricks" -category = "main" -optional = true -python-versions = "*" -files = [ - {file = "databricks-cli-0.17.7.tar.gz", hash = "sha256:5a545063449f3b9ad904644c0f251058485e29e564dedf8d4e4a7b45caf9549b"}, - {file = "databricks_cli-0.17.7-py2-none-any.whl", hash = "sha256:5b025943c70bbd374415264d38bfaddfb34ce070fadb083d851aec311e0f8901"}, -] - -[package.dependencies] -click = ">=7.0" -oauthlib = ">=3.1.0" -pyjwt = ">=1.7.0" -requests = ">=2.17.3" -six = ">=1.10.0" -tabulate = ">=0.7.7" -urllib3 = ">=1.26.7,<2.0.0" - -[[package]] -name = "debugpy" -version = "1.7.0" -description = "An implementation of the Debug Adapter Protocol for Python" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "debugpy-1.7.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:17ad9a681aca1704c55b9a5edcb495fa8f599e4655c9872b7f9cf3dc25890d48"}, - {file = "debugpy-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1285920a3f9a75f5d1acf59ab1b9da9ae6eb9a05884cd7674f95170c9cafa4de"}, - {file = "debugpy-1.7.0-cp310-cp310-win32.whl", hash = "sha256:a6f43a681c5025db1f1c0568069d1d1bad306a02e7c36144912b26d9c90e4724"}, - {file = "debugpy-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:9e9571d831ad3c75b5fb6f3efcb71c471cf2a74ba84af6ac1c79ce00683bed4b"}, - {file = "debugpy-1.7.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:538765a41198aa88cc089295b39c7322dd598f9ef1d52eaae12145c63bf9430a"}, - {file = "debugpy-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7e8cf91f8f3f9b5fad844dd88427b85d398bda1e2a0cd65d5a21312fcbc0c6f"}, - {file = "debugpy-1.7.0-cp311-cp311-win32.whl", hash = "sha256:18a69f8e142a716310dd0af6d7db08992aed99e2606108732efde101e7c65e2a"}, - {file = "debugpy-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7515a5ba5ee9bfe956685909c5f28734c1cecd4ee813523363acfe3ca824883a"}, - {file = "debugpy-1.7.0-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:bc8da67ade39d9e75608cdb8601d07e63a4e85966e0572c981f14e2cf42bcdef"}, - {file = "debugpy-1.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5036e918c6ba8fc4c4f1fd0207d81db634431a02f0dc2ba51b12fd793c8c9de"}, - {file = "debugpy-1.7.0-cp37-cp37m-win32.whl", hash = "sha256:d5be95b3946a4d7b388e45068c7b75036ac5a610f41014aee6cafcd5506423ad"}, - {file = "debugpy-1.7.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0e90314a078d4e3f009520c8387aba8f74c3034645daa7a332a3d1bb81335756"}, - {file = "debugpy-1.7.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:1565fd904f9571c430adca597771255cff4f92171486fced6f765dcbdfc8ec8d"}, - {file = "debugpy-1.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6516f36a2e95b3be27f171f12b641e443863f4ad5255d0fdcea6ae0be29bb912"}, - {file = "debugpy-1.7.0-cp38-cp38-win32.whl", hash = "sha256:2b0e489613bc066051439df04c56777ec184b957d6810cb65f235083aef7a0dc"}, - {file = "debugpy-1.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:7bf0b4bbd841b2397b6a8de15da9227f1164f6d43ceee971c50194eaed930a9d"}, - {file = "debugpy-1.7.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:ad22e1095b9977af432465c1e09132ba176e18df3834b1efcab1a449346b350b"}, - {file = "debugpy-1.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f625e427f21423e5874139db529e18cb2966bdfcc1cb87a195538c5b34d163d1"}, - {file = "debugpy-1.7.0-cp39-cp39-win32.whl", hash = "sha256:18bca8429d6632e2d3435055416d2d88f0309cc39709f4f6355c8d412cc61f24"}, - {file = "debugpy-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:dc8a12ac8b97ef3d6973c6679a093138c7c9b03eb685f0e253269a195f651559"}, - {file = "debugpy-1.7.0-py2.py3-none-any.whl", hash = "sha256:f6de2e6f24f62969e0f0ef682d78c98161c4dca29e9fb05df4d2989005005502"}, - {file = "debugpy-1.7.0.zip", hash = "sha256:676911c710e85567b17172db934a71319ed9d995104610ce23fd74a07f66e6f6"}, -] - -[[package]] -name = "decorator" -version = "5.1.1" -description = "Decorators for Humans" -category = "dev" -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" -version = "0.7.1" -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 = "distlib" -version = "0.3.7" -description = "Distribution utilities" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, - {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, -] - -[[package]] -name = "entrypoints" -version = "0.4" -description = "Discover and load entry points from installed packages." -category = "main" -optional = true -python-versions = ">=3.6" -files = [ - {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, - {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, -] - -[[package]] -name = "exceptiongroup" -version = "1.1.3" -description = "Backport of PEP 654 (exception groups)" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, - {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "executing" -version = "1.2.0" -description = "Get the currently executing AST node of a frame, and other information" -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"] - -[[package]] -name = "fakeredis" -version = "2.18.1" -description = "Python implementation of redis API, can be used for testing purposes." -category = "dev" -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "fakeredis-2.18.1-py3-none-any.whl", hash = "sha256:d780da2519b2e9d741056cf2b68604a4e59286bc6fde78b40a2b2b1367a51b30"}, - {file = "fakeredis-2.18.1.tar.gz", hash = "sha256:9742d6d4673df0f5f6ade4e4eee763b7f3517178ffa82508310325a6305651ec"}, -] - -[package.dependencies] -redis = ">=4" -sortedcontainers = ">=2,<3" - -[package.extras] -json = ["jsonpath-ng (>=1.5,<2.0)"] -lua = ["lupa (>=1.14,<3.0)"] - -[[package]] -name = "fastjsonschema" -version = "2.18.0" -description = "Fastest Python implementation of JSON schema" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "fastjsonschema-2.18.0-py3-none-any.whl", hash = "sha256:128039912a11a807068a7c87d0da36660afbfd7202780db26c4aa7153cfdc799"}, - {file = "fastjsonschema-2.18.0.tar.gz", hash = "sha256:e820349dd16f806e4bd1467a138dced9def4bc7d6213a34295272a6cac95b5bd"}, -] - -[package.extras] -devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] - -[[package]] -name = "filelock" -version = "3.12.3" -description = "A platform independent file lock." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "filelock-3.12.3-py3-none-any.whl", hash = "sha256:f067e40ccc40f2b48395a80fcbd4728262fab54e232e090a4063ab804179efeb"}, - {file = "filelock-3.12.3.tar.gz", hash = "sha256:0ecc1dd2ec4672a10c8550a8182f1bd0c0a5088470ecd5a125e45f49472fac3d"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] - -[[package]] -name = "fonttools" -version = "4.42.1" -description = "Tools to manipulate font files" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ed1a13a27f59d1fc1920394a7f596792e9d546c9ca5a044419dca70c37815d7c"}, - {file = "fonttools-4.42.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c9b1ce7a45978b821a06d375b83763b27a3a5e8a2e4570b3065abad240a18760"}, - {file = "fonttools-4.42.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f720fa82a11c0f9042376fd509b5ed88dab7e3cd602eee63a1af08883b37342b"}, - {file = "fonttools-4.42.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db55cbaea02a20b49fefbd8e9d62bd481aaabe1f2301dabc575acc6b358874fa"}, - {file = "fonttools-4.42.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a35981d90feebeaef05e46e33e6b9e5b5e618504672ca9cd0ff96b171e4bfff"}, - {file = "fonttools-4.42.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:68a02bbe020dc22ee0540e040117535f06df9358106d3775e8817d826047f3fd"}, - {file = "fonttools-4.42.1-cp310-cp310-win32.whl", hash = "sha256:12a7c247d1b946829bfa2f331107a629ea77dc5391dfd34fdcd78efa61f354ca"}, - {file = "fonttools-4.42.1-cp310-cp310-win_amd64.whl", hash = "sha256:a398bdadb055f8de69f62b0fc70625f7cbdab436bbb31eef5816e28cab083ee8"}, - {file = "fonttools-4.42.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:689508b918332fb40ce117131633647731d098b1b10d092234aa959b4251add5"}, - {file = "fonttools-4.42.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e36344e48af3e3bde867a1ca54f97c308735dd8697005c2d24a86054a114a71"}, - {file = "fonttools-4.42.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19b7db825c8adee96fac0692e6e1ecd858cae9affb3b4812cdb9d934a898b29e"}, - {file = "fonttools-4.42.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:113337c2d29665839b7d90b39f99b3cac731f72a0eda9306165a305c7c31d341"}, - {file = "fonttools-4.42.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:37983b6bdab42c501202500a2be3a572f50d4efe3237e0686ee9d5f794d76b35"}, - {file = "fonttools-4.42.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6ed2662a3d9c832afa36405f8748c250be94ae5dfc5283d668308391f2102861"}, - {file = "fonttools-4.42.1-cp311-cp311-win32.whl", hash = "sha256:179737095eb98332a2744e8f12037b2977f22948cf23ff96656928923ddf560a"}, - {file = "fonttools-4.42.1-cp311-cp311-win_amd64.whl", hash = "sha256:f2b82f46917d8722e6b5eafeefb4fb585d23babd15d8246c664cd88a5bddd19c"}, - {file = "fonttools-4.42.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:62f481ac772fd68901573956231aea3e4b1ad87b9b1089a61613a91e2b50bb9b"}, - {file = "fonttools-4.42.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f2f806990160d1ce42d287aa419df3ffc42dfefe60d473695fb048355fe0c6a0"}, - {file = "fonttools-4.42.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db372213d39fa33af667c2aa586a0c1235e88e9c850f5dd5c8e1f17515861868"}, - {file = "fonttools-4.42.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d18fc642fd0ac29236ff88ecfccff229ec0386090a839dd3f1162e9a7944a40"}, - {file = "fonttools-4.42.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8708b98c278012ad267ee8a7433baeb809948855e81922878118464b274c909d"}, - {file = "fonttools-4.42.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c95b0724a6deea2c8c5d3222191783ced0a2f09bd6d33f93e563f6f1a4b3b3a4"}, - {file = "fonttools-4.42.1-cp38-cp38-win32.whl", hash = "sha256:4aa79366e442dbca6e2c8595645a3a605d9eeabdb7a094d745ed6106816bef5d"}, - {file = "fonttools-4.42.1-cp38-cp38-win_amd64.whl", hash = "sha256:acb47f6f8680de24c1ab65ebde39dd035768e2a9b571a07c7b8da95f6c8815fd"}, - {file = "fonttools-4.42.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5fb289b7a815638a7613d46bcf324c9106804725b2bb8ad913c12b6958ffc4ec"}, - {file = "fonttools-4.42.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:53eb5091ddc8b1199330bb7b4a8a2e7995ad5d43376cadce84523d8223ef3136"}, - {file = "fonttools-4.42.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46a0ec8adbc6ff13494eb0c9c2e643b6f009ce7320cf640de106fb614e4d4360"}, - {file = "fonttools-4.42.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cc7d685b8eeca7ae69dc6416833fbfea61660684b7089bca666067cb2937dcf"}, - {file = "fonttools-4.42.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:be24fcb80493b2c94eae21df70017351851652a37de514de553435b256b2f249"}, - {file = "fonttools-4.42.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:515607ec756d7865f23070682622c49d922901943697871fc292277cf1e71967"}, - {file = "fonttools-4.42.1-cp39-cp39-win32.whl", hash = "sha256:0eb79a2da5eb6457a6f8ab904838454accc7d4cccdaff1fd2bd3a0679ea33d64"}, - {file = "fonttools-4.42.1-cp39-cp39-win_amd64.whl", hash = "sha256:7286aed4ea271df9eab8d7a9b29e507094b51397812f7ce051ecd77915a6e26b"}, - {file = "fonttools-4.42.1-py3-none-any.whl", hash = "sha256:9398f244e28e0596e2ee6024f808b06060109e33ed38dcc9bded452fd9bbb853"}, - {file = "fonttools-4.42.1.tar.gz", hash = "sha256:c391cd5af88aacaf41dd7cfb96eeedfad297b5899a39e12f4c2c3706d0a3329d"}, -] - -[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)"] -graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "scipy"] -lxml = ["lxml (>=4.0,<5)"] -pathops = ["skia-pathops (>=0.5.0)"] -plot = ["matplotlib"] -repacker = ["uharfbuzz (>=0.23.0)"] -symfont = ["sympy"] -type1 = ["xattr"] -ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=15.0.0)"] -woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] - -[[package]] -name = "fqdn" -version = "1.5.1" -description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" -files = [ - {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, - {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, -] - -[[package]] -name = "freezegun" -version = "1.2.2" -description = "Let your Python tests travel through time" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "freezegun-1.2.2-py3-none-any.whl", hash = "sha256:ea1b963b993cb9ea195adbd893a48d573fda951b0da64f60883d7e988b606c9f"}, - {file = "freezegun-1.2.2.tar.gz", hash = "sha256:cd22d1ba06941384410cd967d8a99d5ae2442f57dfafeff2fda5de8dc5c05446"}, -] - -[package.dependencies] -python-dateutil = ">=2.7" - -[[package]] -name = "frozenlist" -version = "1.4.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:764226ceef3125e53ea2cb275000e309c0aa5464d43bd72abd661e27fffc26ab"}, - {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d6484756b12f40003c6128bfcc3fa9f0d49a687e171186c2d85ec82e3758c559"}, - {file = "frozenlist-1.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9ac08e601308e41eb533f232dbf6b7e4cea762f9f84f6357136eed926c15d12c"}, - {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d081f13b095d74b67d550de04df1c756831f3b83dc9881c38985834387487f1b"}, - {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:71932b597f9895f011f47f17d6428252fc728ba2ae6024e13c3398a087c2cdea"}, - {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:981b9ab5a0a3178ff413bca62526bb784249421c24ad7381e39d67981be2c326"}, - {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e41f3de4df3e80de75845d3e743b3f1c4c8613c3997a912dbf0229fc61a8b963"}, - {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6918d49b1f90821e93069682c06ffde41829c346c66b721e65a5c62b4bab0300"}, - {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e5c8764c7829343d919cc2dfc587a8db01c4f70a4ebbc49abde5d4b158b007b"}, - {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8d0edd6b1c7fb94922bf569c9b092ee187a83f03fb1a63076e7774b60f9481a8"}, - {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e29cda763f752553fa14c68fb2195150bfab22b352572cb36c43c47bedba70eb"}, - {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:0c7c1b47859ee2cac3846fde1c1dc0f15da6cec5a0e5c72d101e0f83dcb67ff9"}, - {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:901289d524fdd571be1c7be054f48b1f88ce8dddcbdf1ec698b27d4b8b9e5d62"}, - {file = "frozenlist-1.4.0-cp310-cp310-win32.whl", hash = "sha256:1a0848b52815006ea6596c395f87449f693dc419061cc21e970f139d466dc0a0"}, - {file = "frozenlist-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:b206646d176a007466358aa21d85cd8600a415c67c9bd15403336c331a10d956"}, - {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:de343e75f40e972bae1ef6090267f8260c1446a1695e77096db6cfa25e759a95"}, - {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad2a9eb6d9839ae241701d0918f54c51365a51407fd80f6b8289e2dfca977cc3"}, - {file = "frozenlist-1.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bd7bd3b3830247580de99c99ea2a01416dfc3c34471ca1298bccabf86d0ff4dc"}, - {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdf1847068c362f16b353163391210269e4f0569a3c166bc6a9f74ccbfc7e839"}, - {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38461d02d66de17455072c9ba981d35f1d2a73024bee7790ac2f9e361ef1cd0c"}, - {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5a32087d720c608f42caed0ef36d2b3ea61a9d09ee59a5142d6070da9041b8f"}, - {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd65632acaf0d47608190a71bfe46b209719bf2beb59507db08ccdbe712f969b"}, - {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261b9f5d17cac914531331ff1b1d452125bf5daa05faf73b71d935485b0c510b"}, - {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b89ac9768b82205936771f8d2eb3ce88503b1556324c9f903e7156669f521472"}, - {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:008eb8b31b3ea6896da16c38c1b136cb9fec9e249e77f6211d479db79a4eaf01"}, - {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e74b0506fa5aa5598ac6a975a12aa8928cbb58e1f5ac8360792ef15de1aa848f"}, - {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:490132667476f6781b4c9458298b0c1cddf237488abd228b0b3650e5ecba7467"}, - {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:76d4711f6f6d08551a7e9ef28c722f4a50dd0fc204c56b4bcd95c6cc05ce6fbb"}, - {file = "frozenlist-1.4.0-cp311-cp311-win32.whl", hash = "sha256:a02eb8ab2b8f200179b5f62b59757685ae9987996ae549ccf30f983f40602431"}, - {file = "frozenlist-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:515e1abc578dd3b275d6a5114030b1330ba044ffba03f94091842852f806f1c1"}, - {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f0ed05f5079c708fe74bf9027e95125334b6978bf07fd5ab923e9e55e5fbb9d3"}, - {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca265542ca427bf97aed183c1676e2a9c66942e822b14dc6e5f42e038f92a503"}, - {file = "frozenlist-1.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:491e014f5c43656da08958808588cc6c016847b4360e327a62cb308c791bd2d9"}, - {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17ae5cd0f333f94f2e03aaf140bb762c64783935cc764ff9c82dff626089bebf"}, - {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e78fb68cf9c1a6aa4a9a12e960a5c9dfbdb89b3695197aa7064705662515de2"}, - {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5655a942f5f5d2c9ed93d72148226d75369b4f6952680211972a33e59b1dfdc"}, - {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c11b0746f5d946fecf750428a95f3e9ebe792c1ee3b1e96eeba145dc631a9672"}, - {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e66d2a64d44d50d2543405fb183a21f76b3b5fd16f130f5c99187c3fb4e64919"}, - {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:88f7bc0fcca81f985f78dd0fa68d2c75abf8272b1f5c323ea4a01a4d7a614efc"}, - {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5833593c25ac59ede40ed4de6d67eb42928cca97f26feea219f21d0ed0959b79"}, - {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:fec520865f42e5c7f050c2a79038897b1c7d1595e907a9e08e3353293ffc948e"}, - {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:b826d97e4276750beca7c8f0f1a4938892697a6bcd8ec8217b3312dad6982781"}, - {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ceb6ec0a10c65540421e20ebd29083c50e6d1143278746a4ef6bcf6153171eb8"}, - {file = "frozenlist-1.4.0-cp38-cp38-win32.whl", hash = "sha256:2b8bcf994563466db019fab287ff390fffbfdb4f905fc77bc1c1d604b1c689cc"}, - {file = "frozenlist-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:a6c8097e01886188e5be3e6b14e94ab365f384736aa1fca6a0b9e35bd4a30bc7"}, - {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6c38721585f285203e4b4132a352eb3daa19121a035f3182e08e437cface44bf"}, - {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a0c6da9aee33ff0b1a451e867da0c1f47408112b3391dd43133838339e410963"}, - {file = "frozenlist-1.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:93ea75c050c5bb3d98016b4ba2497851eadf0ac154d88a67d7a6816206f6fa7f"}, - {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f61e2dc5ad442c52b4887f1fdc112f97caeff4d9e6ebe78879364ac59f1663e1"}, - {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa384489fefeb62321b238e64c07ef48398fe80f9e1e6afeff22e140e0850eef"}, - {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10ff5faaa22786315ef57097a279b833ecab1a0bfb07d604c9cbb1c4cdc2ed87"}, - {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:007df07a6e3eb3e33e9a1fe6a9db7af152bbd8a185f9aaa6ece10a3529e3e1c6"}, - {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f4f399d28478d1f604c2ff9119907af9726aed73680e5ed1ca634d377abb087"}, - {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c5374b80521d3d3f2ec5572e05adc94601985cc526fb276d0c8574a6d749f1b3"}, - {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ce31ae3e19f3c902de379cf1323d90c649425b86de7bbdf82871b8a2a0615f3d"}, - {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7211ef110a9194b6042449431e08c4d80c0481e5891e58d429df5899690511c2"}, - {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:556de4430ce324c836789fa4560ca62d1591d2538b8ceb0b4f68fb7b2384a27a"}, - {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7645a8e814a3ee34a89c4a372011dcd817964ce8cb273c8ed6119d706e9613e3"}, - {file = "frozenlist-1.4.0-cp39-cp39-win32.whl", hash = "sha256:19488c57c12d4e8095a922f328df3f179c820c212940a498623ed39160bc3c2f"}, - {file = "frozenlist-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:6221d84d463fb110bdd7619b69cb43878a11d51cbb9394ae3105d082d5199167"}, - {file = "frozenlist-1.4.0.tar.gz", hash = "sha256:09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"}, -] - -[[package]] -name = "fsspec" -version = "2023.9.0" -description = "File-system specification" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fsspec-2023.9.0-py3-none-any.whl", hash = "sha256:d55b9ab2a4c1f2b759888ae9f93e40c2aa72c0808132e87e282b549f9e6c4254"}, - {file = "fsspec-2023.9.0.tar.gz", hash = "sha256:4dbf0fefee035b7c6d3bbbe6bc99b2f201f40d4dca95b67c2b719be77bcd917f"}, -] - -[package.dependencies] -aiohttp = {version = "<4.0.0a0 || >4.0.0a0,<4.0.0a1 || >4.0.0a1", optional = true, markers = "extra == \"http\""} -requests = {version = "*", optional = true, markers = "extra == \"http\""} - -[package.extras] -abfs = ["adlfs"] -adl = ["adlfs"] -arrow = ["pyarrow (>=1)"] -dask = ["dask", "distributed"] -devel = ["pytest", "pytest-cov"] -dropbox = ["dropbox", "dropboxdrivefs", "requests"] -full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] -fuse = ["fusepy"] -gcs = ["gcsfs"] -git = ["pygit2"] -github = ["requests"] -gs = ["gcsfs"] -gui = ["panel"] -hdfs = ["pyarrow (>=1)"] -http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "requests"] -libarchive = ["libarchive-c"] -oci = ["ocifs"] -s3 = ["s3fs"] -sftp = ["paramiko"] -smb = ["smbprotocol"] -ssh = ["paramiko"] -tqdm = ["tqdm"] - -[[package]] -name = "gitdb" -version = "4.0.10" -description = "Git Object Database" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, - {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"}, -] - -[package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.35" -description = "GitPython is a Python library used to interact with Git repositories" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.35-py3-none-any.whl", hash = "sha256:c19b4292d7a1d3c0f653858db273ff8a6614100d1eb1528b014ec97286193c09"}, - {file = "GitPython-3.1.35.tar.gz", hash = "sha256:9cbefbd1789a5fe9bcf621bb34d3f441f3a90c8461d377f84eda73e721d9b06b"}, -] - -[package.dependencies] -gitdb = ">=4.0.1,<5" - -[[package]] -name = "google-api-core" -version = "2.11.1" -description = "Google API client core library" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "google-api-core-2.11.1.tar.gz", hash = "sha256:25d29e05a0058ed5f19c61c0a78b1b53adea4d9364b464d014fbda941f6d1c9a"}, - {file = "google_api_core-2.11.1-py3-none-any.whl", hash = "sha256:d92a5a92dc36dd4f4b9ee4e55528a90e432b059f93aee6ad857f9de8cc7ae94a"}, -] - -[package.dependencies] -google-auth = ">=2.14.1,<3.0.dev0" -googleapis-common-protos = ">=1.56.2,<2.0.dev0" -protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" -requests = ">=2.18.0,<3.0.0.dev0" - -[package.extras] -grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0)"] -grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] -grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] - -[[package]] -name = "google-auth" -version = "2.22.0" -description = "Google Authentication Library" -category = "main" -optional = true -python-versions = ">=3.6" -files = [ - {file = "google-auth-2.22.0.tar.gz", hash = "sha256:164cba9af4e6e4e40c3a4f90a1a6c12ee56f14c0b4868d1ca91b32826ab334ce"}, - {file = "google_auth-2.22.0-py2.py3-none-any.whl", hash = "sha256:d61d1b40897407b574da67da1a833bdc10d5a11642566e506565d1b1a46ba873"}, -] - -[package.dependencies] -cachetools = ">=2.0.0,<6.0" -pyasn1-modules = ">=0.2.1" -rsa = ">=3.1.4,<5" -six = ">=1.9.0" -urllib3 = "<2.0" - -[package.extras] -aiohttp = ["aiohttp (>=3.6.2,<4.0.0.dev0)", "requests (>=2.20.0,<3.0.0.dev0)"] -enterprise-cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"] -pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] -reauth = ["pyu2f (>=0.1.5)"] -requests = ["requests (>=2.20.0,<3.0.0.dev0)"] - -[[package]] -name = "google-cloud" -version = "0.34.0" -description = "API Client library for Google Cloud" -category = "main" -optional = true -python-versions = "*" -files = [ - {file = "google-cloud-0.34.0.tar.gz", hash = "sha256:01430187cf56df10a9ba775dd547393185d4b40741db0ea5889301f8e7a9d5d3"}, - {file = "google_cloud-0.34.0-py2.py3-none-any.whl", hash = "sha256:fb1ab7b0548fe44b3d538041f0a374505b7f990d448a935ea36649c5ccab5acf"}, -] - -[[package]] -name = "googleapis-common-protos" -version = "1.60.0" -description = "Common protobufs used in Google APIs" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "googleapis-common-protos-1.60.0.tar.gz", hash = "sha256:e73ebb404098db405ba95d1e1ae0aa91c3e15a71da031a2eeb6b2e23e7bc3708"}, - {file = "googleapis_common_protos-1.60.0-py2.py3-none-any.whl", hash = "sha256:69f9bbcc6acde92cab2db95ce30a70bd2b81d20b12eff3f1aabaffcbe8a93918"}, -] - -[package.dependencies] -protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" - -[package.extras] -grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] - -[[package]] -name = "grpcio" -version = "1.58.0" -description = "HTTP/2-based RPC framework" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "grpcio-1.58.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:3e6bebf1dfdbeb22afd95650e4f019219fef3ab86d3fca8ebade52e4bc39389a"}, - {file = "grpcio-1.58.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:cde11577d5b6fd73a00e6bfa3cf5f428f3f33c2d2878982369b5372bbc4acc60"}, - {file = "grpcio-1.58.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:a2d67ff99e70e86b2be46c1017ae40b4840d09467d5455b2708de6d4c127e143"}, - {file = "grpcio-1.58.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1ed979b273a81de36fc9c6716d9fb09dd3443efa18dcc8652501df11da9583e9"}, - {file = "grpcio-1.58.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:458899d2ebd55d5ca2350fd3826dfd8fcb11fe0f79828ae75e2b1e6051d50a29"}, - {file = "grpcio-1.58.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bc7ffef430b80345729ff0a6825e9d96ac87efe39216e87ac58c6c4ef400de93"}, - {file = "grpcio-1.58.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5b23d75e5173faa3d1296a7bedffb25afd2fddb607ef292dfc651490c7b53c3d"}, - {file = "grpcio-1.58.0-cp310-cp310-win32.whl", hash = "sha256:fad9295fe02455d4f158ad72c90ef8b4bcaadfdb5efb5795f7ab0786ad67dd58"}, - {file = "grpcio-1.58.0-cp310-cp310-win_amd64.whl", hash = "sha256:bc325fed4d074367bebd465a20763586e5e1ed5b943e9d8bc7c162b1f44fd602"}, - {file = "grpcio-1.58.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:652978551af02373a5a313e07bfef368f406b5929cf2d50fa7e4027f913dbdb4"}, - {file = "grpcio-1.58.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:9f13a171281ebb4d7b1ba9f06574bce2455dcd3f2f6d1fbe0fd0d84615c74045"}, - {file = "grpcio-1.58.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:8774219e21b05f750eef8adc416e9431cf31b98f6ce9def288e4cea1548cbd22"}, - {file = "grpcio-1.58.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09206106848462763f7f273ca93d2d2d4d26cab475089e0de830bb76be04e9e8"}, - {file = "grpcio-1.58.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62831d5e251dd7561d9d9e83a0b8655084b2a1f8ea91e4bd6b3cedfefd32c9d2"}, - {file = "grpcio-1.58.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:212f38c6a156862098f6bdc9a79bf850760a751d259d8f8f249fc6d645105855"}, - {file = "grpcio-1.58.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4b12754af201bb993e6e2efd7812085ddaaef21d0a6f0ff128b97de1ef55aa4a"}, - {file = "grpcio-1.58.0-cp311-cp311-win32.whl", hash = "sha256:3886b4d56bd4afeac518dbc05933926198aa967a7d1d237a318e6fbc47141577"}, - {file = "grpcio-1.58.0-cp311-cp311-win_amd64.whl", hash = "sha256:002f228d197fea12797a14e152447044e14fb4fdb2eb5d6cfa496f29ddbf79ef"}, - {file = "grpcio-1.58.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:b5e8db0aff0a4819946215f156bd722b6f6c8320eb8419567ffc74850c9fd205"}, - {file = "grpcio-1.58.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:201e550b7e2ede113b63e718e7ece93cef5b0fbf3c45e8fe4541a5a4305acd15"}, - {file = "grpcio-1.58.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:d79b660681eb9bc66cc7cbf78d1b1b9e335ee56f6ea1755d34a31108b80bd3c8"}, - {file = "grpcio-1.58.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ef8d4a76d2c7d8065aba829f8d0bc0055495c998dce1964ca5b302d02514fb3"}, - {file = "grpcio-1.58.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cba491c638c76d3dc6c191d9c75041ca5b8f5c6de4b8327ecdcab527f130bb4"}, - {file = "grpcio-1.58.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6801ff6652ecd2aae08ef994a3e49ff53de29e69e9cd0fd604a79ae4e545a95c"}, - {file = "grpcio-1.58.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:24edec346e69e672daf12b2c88e95c6f737f3792d08866101d8c5f34370c54fd"}, - {file = "grpcio-1.58.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7e473a7abad9af48e3ab5f3b5d237d18208024d28ead65a459bd720401bd2f8f"}, - {file = "grpcio-1.58.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:4891bbb4bba58acd1d620759b3be11245bfe715eb67a4864c8937b855b7ed7fa"}, - {file = "grpcio-1.58.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:e9f995a8a421405958ff30599b4d0eec244f28edc760de82f0412c71c61763d2"}, - {file = "grpcio-1.58.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:2f85f87e2f087d9f632c085b37440a3169fda9cdde80cb84057c2fc292f8cbdf"}, - {file = "grpcio-1.58.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb6b92036ff312d5b4182fa72e8735d17aceca74d0d908a7f08e375456f03e07"}, - {file = "grpcio-1.58.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d81c2b2b24c32139dd2536972f1060678c6b9fbd106842a9fcdecf07b233eccd"}, - {file = "grpcio-1.58.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:fbcecb6aedd5c1891db1d70efbfbdc126c986645b5dd616a045c07d6bd2dfa86"}, - {file = "grpcio-1.58.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92ae871a902cf19833328bd6498ec007b265aabf2fda845ab5bd10abcaf4c8c6"}, - {file = "grpcio-1.58.0-cp38-cp38-win32.whl", hash = "sha256:dc72e04620d49d3007771c0e0348deb23ca341c0245d610605dddb4ac65a37cb"}, - {file = "grpcio-1.58.0-cp38-cp38-win_amd64.whl", hash = "sha256:1c1c5238c6072470c7f1614bf7c774ffde6b346a100521de9ce791d1e4453afe"}, - {file = "grpcio-1.58.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:fe643af248442221db027da43ed43e53b73e11f40c9043738de9a2b4b6ca7697"}, - {file = "grpcio-1.58.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:128eb1f8e70676d05b1b0c8e6600320fc222b3f8c985a92224248b1367122188"}, - {file = "grpcio-1.58.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:039003a5e0ae7d41c86c768ef8b3ee2c558aa0a23cf04bf3c23567f37befa092"}, - {file = "grpcio-1.58.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f061722cad3f9aabb3fbb27f3484ec9d4667b7328d1a7800c3c691a98f16bb0"}, - {file = "grpcio-1.58.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0af11938acf8cd4cf815c46156bcde36fa5850518120920d52620cc3ec1830"}, - {file = "grpcio-1.58.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d4cef77ad2fed42b1ba9143465856d7e737279854e444925d5ba45fc1f3ba727"}, - {file = "grpcio-1.58.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24765a627eb4d9288ace32d5104161c3654128fe27f2808ecd6e9b0cfa7fc8b9"}, - {file = "grpcio-1.58.0-cp39-cp39-win32.whl", hash = "sha256:f0241f7eb0d2303a545136c59bc565a35c4fc3b924ccbd69cb482f4828d6f31c"}, - {file = "grpcio-1.58.0-cp39-cp39-win_amd64.whl", hash = "sha256:dcfba7befe3a55dab6fe1eb7fc9359dc0c7f7272b30a70ae0af5d5b063842f28"}, - {file = "grpcio-1.58.0.tar.gz", hash = "sha256:532410c51ccd851b706d1fbc00a87be0f5312bd6f8e5dbf89d4e99c7f79d7499"}, -] - -[package.extras] -protobuf = ["grpcio-tools (>=1.58.0)"] - -[[package]] -name = "grpcio-tools" -version = "1.58.0" -description = "Protobuf code generator for gRPC" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "grpcio-tools-1.58.0.tar.gz", hash = "sha256:6f4d80ceb591e31ca4dceec747dbe56132e1392a0a9bb1c8fe001d1b5cac898a"}, - {file = "grpcio_tools-1.58.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:60c874908f3b40f32f1bb0221f7b3ab65ecb53a4d0a9f0a394f031f1b292c177"}, - {file = "grpcio_tools-1.58.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:1852e798f31e5437ca7b37abc910e028b34732fb19364862cedb87b1dab66fad"}, - {file = "grpcio_tools-1.58.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:149fb48f53cb691a6328f68bed8e4036c730f7106b7f98e92c2c0403f0b9e93c"}, - {file = "grpcio_tools-1.58.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba3d383e5ca93826038b70f326fce8e8d12dd9b2f64d363a3d612f7475f12dd2"}, - {file = "grpcio_tools-1.58.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6997511e9d2979f7a2389479682dbb06823f21a904e8fb0a5c6baaf1b4b4a863"}, - {file = "grpcio_tools-1.58.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8de0b701da479643f71fad71fe66885cddd89441ae16e2c724939b47742dc72e"}, - {file = "grpcio_tools-1.58.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:43cc23908b63fcaefe690b10f68a2d8652c994b5b36ab77d2271d9608c895320"}, - {file = "grpcio_tools-1.58.0-cp310-cp310-win32.whl", hash = "sha256:2c2221123d010dc6231799e63a37f2f4786bf614ef65b23009c387cd20d8b193"}, - {file = "grpcio_tools-1.58.0-cp310-cp310-win_amd64.whl", hash = "sha256:df2788736bdf58abe7b0e4d6b1ff806f7686c98c5ad900da312252e3322d91c4"}, - {file = "grpcio_tools-1.58.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:b6ea5578712cdb29b0ff60bfc6405bf0e8d681b9c71d106dd1cda54fe7fe4e55"}, - {file = "grpcio_tools-1.58.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:c29880f491581c83181c0a84a4d11402af2b13166a5266f64e246adf1da7aa66"}, - {file = "grpcio_tools-1.58.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:32d51e933c3565414dd0835f930bb28a1cdeba435d9d2c87fa3cf8b1d284db3c"}, - {file = "grpcio_tools-1.58.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ad9d77f25514584b1ddc981d70c9e50dfcfc388aa5ba943eee67520c5267ed9"}, - {file = "grpcio_tools-1.58.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4882382631e6352819059278a5c878ce0b067008dd490911d16d5616e8a36d85"}, - {file = "grpcio_tools-1.58.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d84091a189d848d94645b7c48b61734c12ec03b0d46e5fc0049343a26989ac5c"}, - {file = "grpcio_tools-1.58.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:85ac28a9621e9b92a3fc416288c4ce45542db0b4c31b3e23031dd8e0a0ec5590"}, - {file = "grpcio_tools-1.58.0-cp311-cp311-win32.whl", hash = "sha256:7371d8ea80234b29affec145e25569523f549520ed7e53b2aa92bed412cdecfd"}, - {file = "grpcio_tools-1.58.0-cp311-cp311-win_amd64.whl", hash = "sha256:6997df6e7c5cf4d3ddc764240c1ff6a04b45d70ec28913b38fbc6396ef743e12"}, - {file = "grpcio_tools-1.58.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:ac65b8d6e3acaf88b815edf9af88ff844b6600ff3d2591c05ba4f655b45d5fb4"}, - {file = "grpcio_tools-1.58.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:88e8191d0dd789bebf42533808728f5ce75d2c51e2a72bdf20abe5b5e3fbec42"}, - {file = "grpcio_tools-1.58.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:a3dbece2a121761499a659b799979d4b738586d1065439053de553773eee11ca"}, - {file = "grpcio_tools-1.58.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1086fe240c4c879b9721952b47d46996deb283c2d9355a8dc24a804811aacf70"}, - {file = "grpcio_tools-1.58.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ae3dca059d5b358dd03fb63277428fa7d771605d4074a019138dd38d70719a"}, - {file = "grpcio_tools-1.58.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3f8904ac7fc3da2e874f00b3a986e8b7e004f499344a8e7eb213c26dfb025041"}, - {file = "grpcio_tools-1.58.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:aadbd8393ae332e49731adb31e741f2e689989150569b7acc939f5ea43124e2d"}, - {file = "grpcio_tools-1.58.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1cb6e24194786687d4f23c64de1f0ce553af51de22746911bc37340f85f9783e"}, - {file = "grpcio_tools-1.58.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:6ec43909095c630df3e479e77469bdad367067431f4af602f6ccb978a3b78afd"}, - {file = "grpcio_tools-1.58.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:4be49ed320b0ebcbc21d19ef555fbf229c1c452105522b728e1171ee2052078e"}, - {file = "grpcio_tools-1.58.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:28eefebddec3d3adf19baca78f8b82a2287d358e1b1575ae018cdca8eacc6269"}, - {file = "grpcio_tools-1.58.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ef8c696e9d78676cc3f583a92bbbf2c84e94e350f7ad22f150a52559f4599d1"}, - {file = "grpcio_tools-1.58.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9aeb5949e46558d21c51fd3ec3eeecc59c94dbca76c67c0a80d3da6b7437930c"}, - {file = "grpcio_tools-1.58.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f7144aad9396d35fb1b80429600a970b559c2ad4d07020eeb180fe83cea2bee"}, - {file = "grpcio_tools-1.58.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ee26e9253a721fff355737649678535f76cf5d642aa3ac0cd937832559b90af"}, - {file = "grpcio_tools-1.58.0-cp38-cp38-win32.whl", hash = "sha256:343f572312039059a8797d6e29a7fc62196e73131ab01755660a9d48202267c1"}, - {file = "grpcio_tools-1.58.0-cp38-cp38-win_amd64.whl", hash = "sha256:cd7acfbb43b7338a78cf4a67528d05530d574d92b7c829d185b78dfc451d158f"}, - {file = "grpcio_tools-1.58.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:46628247fbce86d18232eead24bd22ed0826c79f3fe2fc2fbdbde45971361049"}, - {file = "grpcio_tools-1.58.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:51587842a54e025a3d0d37afcf4ef2b7ac1def9a5d17448665cb424b53d6c287"}, - {file = "grpcio_tools-1.58.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:a062ae3072a2a39a3c057f4d68b57b021f1dd2956cd09aab39709f6af494e1de"}, - {file = "grpcio_tools-1.58.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eec3c93a08df11c80ef1c29a616bcbb0d83dbc6ea41b48306fcacc720416dfa7"}, - {file = "grpcio_tools-1.58.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b63f823ac991ff77104da614d2a2485a59d37d57830eb2e387a6e2a3edc7fa2b"}, - {file = "grpcio_tools-1.58.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:579c11a9f198847ed48dbc4f211c67fe96a73320b87c81f01b044b72e24a7d77"}, - {file = "grpcio_tools-1.58.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6ca2fc1dd8049d417a5034d944c9df05cee76f855b3e431627ab4292e7c01c47"}, - {file = "grpcio_tools-1.58.0-cp39-cp39-win32.whl", hash = "sha256:453023120114c35d3d9d6717ea0820e5d5c140f51f9d0b621de4397ff854471b"}, - {file = "grpcio_tools-1.58.0-cp39-cp39-win_amd64.whl", hash = "sha256:b6c896f1df99c35cf062d4803c15663ff00a33ff09add28baa6e475cf6b5e258"}, -] - -[package.dependencies] -grpcio = ">=1.58.0" -protobuf = ">=4.21.6,<5.0dev" -setuptools = "*" - -[[package]] -name = "hiredis" -version = "2.2.3" -description = "Python wrapper for hiredis" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "hiredis-2.2.3-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:9a1a80a8fa767f2fdc3870316a54b84fe9fc09fa6ab6a2686783de6a228a4604"}, - {file = "hiredis-2.2.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3f006c28c885deb99b670a5a66f367a175ab8955b0374029bad7111f5357dcd4"}, - {file = "hiredis-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffaf841546905d90ff189de7397aa56413b1ce5e54547f17a98f0ebf3a3b0a3b"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cadb0ac7ba3babfd804e425946bec9717b320564a1390f163a54af9365a720a"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33bc4721632ef9708fa44e5df0066053fccc8e65410a2c48573192517a533b48"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:227c5b4bcb60f89008c275d596e4a7b6625a6b3c827b8a66ae582eace7051f71"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61995eb826009d99ed8590747bc0da683a5f4fbb4faa8788166bf3810845cd5c"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f969edc851efe23010e0f53a64269f2629a9364135e9ec81c842e8b2277d0c1"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27e560eefb57914d742a837f1da98d3b29cb22eff013c8023b7cf52ae6e051d"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3759f4789ae1913b7df278dfc9e8749205b7a106f888cd2903d19461e24a7697"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c6cb613148422c523945cdb8b6bed617856f2602fd8750e33773ede2616e55d5"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:1d274d5c511dfc03f83f997d3238eaa9b6ee3f982640979f509373cced891e98"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b7fe075e91b9d9cff40eba4fb6a8eff74964d3979a39be9a9ef58b1b4cb3604"}, - {file = "hiredis-2.2.3-cp310-cp310-win32.whl", hash = "sha256:77924b0d32fd1f493d3df15d9609ddf9d94c31a364022a6bf6b525ce9da75bea"}, - {file = "hiredis-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:dcb0569dd5bfe6004658cd0f229efa699a3169dcb4f77bd72e188adda302063d"}, - {file = "hiredis-2.2.3-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:d115790f18daa99b5c11a506e48923b630ef712e9e4b40482af942c3d40638b8"}, - {file = "hiredis-2.2.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c3b8be557e08b234774925622e196f0ee36fe4eab66cd19df934d3efd8f3743"}, - {file = "hiredis-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3f5446068197b35a11ccc697720c41879c8657e2e761aaa8311783aac84cef20"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa17a3b22b3726d54d7af20394f65d4a1735a842a4e0f557dc67a90f6965c4bc"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7df645b6b7800e8b748c217fbd6a4ca8361bcb9a1ae6206cc02377833ec8a1aa"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fb9300959a0048138791f3d68359d61a788574ec9556bddf1fec07f2dbc5320"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d7e459fe7313925f395148d36d9b7f4f8dac65be06e45d7af356b187cef65fc"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8eceffca3941775b646cd585cd19b275d382de43cc3327d22f7c75d7b003d481"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b17baf702c6e5b4bb66e1281a3efbb1d749c9d06cdb92b665ad81e03118f78fc"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e43e2b5acaad09cf48c032f7e4926392bb3a3f01854416cf6d82ebff94d5467"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:a7205497d7276a81fe92951a29616ef96562ed2f91a02066f72b6f93cb34b40e"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:126623b03c31cb6ac3e0d138feb6fcc36dd43dd34fc7da7b7a0c38b5d75bc896"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:071c5814b850574036506a8118034f97c3cbf2fe9947ff45a27b07a48da56240"}, - {file = "hiredis-2.2.3-cp311-cp311-win32.whl", hash = "sha256:d1be9e30e675f5bc1cb534633324578f6f0944a1bcffe53242cf632f554f83b6"}, - {file = "hiredis-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9a7c987e161e3c58f992c63b7e26fea7fe0777f3b975799d23d65bbb8cb5899"}, - {file = "hiredis-2.2.3-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:f2dcb8389fa3d453927b1299f46bdb38473c293c8269d5c777d33ea0e526b610"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2df98f5e071320c7d84e8bd07c0542acdd0a7519307fc31774d60e4b842ec4f"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61a72e4a523cdfc521762137559c08dfa360a3caef63620be58c699d1717dac1"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9b9e5bde7030cae83aa900b5bd660decc65afd2db8c400f3c568c815a47ca2a"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd2614f17e261f72efc2f19f5e5ff2ee19e2296570c0dcf33409e22be30710de"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:46525fbd84523cac75af5bf524bc74aaac848beaf31b142d2df8a787d9b4bbc4"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d1a4ce40ba11da9382c14da31f4f9e88c18f7d294f523decd0fadfb81f51ad18"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5cda592405bbd29d53942e0389dc3fa77b49c362640210d7e94a10c14a677d4d"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:5e6674a017629284ef373b50496d9fb1a89b85a20a7fa100ecd109484ec748e5"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:e62ec131816c6120eff40dffe43424e140264a15fa4ab88c301bd6a595913af3"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:17e938d9d3ee92e1adbff361706f1c36cc60eeb3e3eeca7a3a353eae344f4c91"}, - {file = "hiredis-2.2.3-cp37-cp37m-win32.whl", hash = "sha256:95d2305fd2a7b179cacb48b10f618872fc565c175f9f62b854e8d1acac3e8a9e"}, - {file = "hiredis-2.2.3-cp37-cp37m-win_amd64.whl", hash = "sha256:8f9dbe12f011a9b784f58faecc171d22465bb532c310bd588d769ba79a59ef5a"}, - {file = "hiredis-2.2.3-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:5a4bcef114fc071d5f52c386c47f35aae0a5b43673197b9288a15b584da8fa3a"}, - {file = "hiredis-2.2.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:232d0a70519865741ba56e1dfefd160a580ae78c30a1517bad47b3cf95a3bc7d"}, - {file = "hiredis-2.2.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9076ce8429785c85f824650735791738de7143f61f43ae9ed83e163c0ca0fa44"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec58fb7c2062f835595c12f0f02dcda76d0eb0831423cc191d1e18c9276648de"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f2b34a6444b8f9c1e9f84bd2c639388e5d14f128afd14a869dfb3d9af893aa2"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:818dfd310aa1020a13cd08ee48e116dd8c3bb2e23b8161f8ac4df587dd5093d7"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96d9ea6c8d4cbdeee2e0d43379ce2881e4af0454b00570677c59f33f2531cd38"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1eadbcd3de55ac42310ff82550d3302cb4efcd4e17d76646a17b6e7004bb42b"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:477c34c4489666dc73cb5e89dafe2617c3e13da1298917f73d55aac4696bd793"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:14824e457e4f5cda685c3345d125da13949bcf3bb1c88eb5d248c8d2c3dee08f"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:9cd32326dfa6ce87edf754153b0105aca64486bebe93b9600ccff74fa0b224df"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:51341e70b467004dcbec3a6ce8c478d2d6241e0f6b01e4c56764afd5022e1e9d"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2443659c76b226267e2a04dbbb21bc2a3f91aa53bdc0c22964632753ae43a247"}, - {file = "hiredis-2.2.3-cp38-cp38-win32.whl", hash = "sha256:4e3e3e31423f888d396b1fc1f936936e52af868ac1ec17dd15e3eeba9dd4de24"}, - {file = "hiredis-2.2.3-cp38-cp38-win_amd64.whl", hash = "sha256:20f509e3a1a20d6e5f5794fc37ceb21f70f409101fcfe7a8bde783894d51b369"}, - {file = "hiredis-2.2.3-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:d20891e3f33803b26d54c77fd5745878497091e33f4bbbdd454cf6e71aee8890"}, - {file = "hiredis-2.2.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:50171f985e17970f87d5a29e16603d1e5b03bdbf5c2691a37e6c912942a6b657"}, - {file = "hiredis-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9944a2cac25ffe049a7e89f306e11b900640837d1ef38d9be0eaa4a4e2b73a52"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a5c8019ff94988d56eb49b15de76fe83f6b42536d76edeb6565dbf7fe14b973"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a286ded34eb16501002e3713b3130c987366eee2ba0d58c33c72f27778e31676"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b3e974ad15eb32b1f537730dea70b93a4c3db7b026de3ad2b59da49c6f7454d"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08415ea74c1c29b9d6a4ca3dd0e810dc1af343c1d1d442e15ba133b11ab5be6a"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e17d04ea58ab8cf3f2dc52e875db16077c6357846006780086fff3189fb199d"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6ccdcb635dae85b006592f78e32d97f4bc7541cb27829d505f9c7fefcef48298"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69536b821dd1bc78058a6e7541743f8d82bf2d981b91280b14c4daa6cdc7faba"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:3753df5f873d473f055e1f8837bfad0bd3b277c86f3c9bf058c58f14204cd901"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6f88cafe46612b6fa68e6dea49e25bebf160598bba00101caa51cc8c1f18d597"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:33ee3ea5cad3a8cb339352cd230b411eb437a2e75d7736c4899acab32056ccdb"}, - {file = "hiredis-2.2.3-cp39-cp39-win32.whl", hash = "sha256:b4f3d06dc16671b88a13ae85d8ca92534c0b637d59e49f0558d040a691246422"}, - {file = "hiredis-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4f674e309cd055ee7a48304ceb8cf43265d859faf4d7d01d270ce45e976ae9d3"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:8f280ab4e043b089777b43b4227bdc2035f88da5072ab36588e0ccf77d45d058"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15c2a551f3b8a26f7940d6ee10b837810201754b8d7e6f6b1391655370882c5a"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60c4e3c258eafaab21b174b17270a0cc093718d61cdbde8c03f85ec4bf835343"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc36a9dded458d4e37492fe3e619c6c83caae794d26ad925adbce61d592f8428"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:4ed68a3b1ccb4313d2a42546fd7e7439ad4745918a48b6c9bcaa61e1e3e42634"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3bf4b5bae472630c229518e4a814b1b68f10a3d9b00aeaec45f1a330f03a0251"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33a94d264e6e12a79d9bb8af333b01dc286b9f39c99072ab5fef94ce1f018e17"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fa6811a618653164f918b891a0fa07052bd71a799defa5c44d167cac5557b26"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af33f370be90b48bbaf0dab32decbdcc522b1fa95d109020a963282086518a8e"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b9953d87418ac228f508d93898ab572775e4d3b0eeb886a1a7734553bcdaf291"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5e7bb4dd524f50b71c20ef5a12bd61da9b463f8894b18a06130942fe31509881"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89a258424158eb8b3ed9f65548d68998da334ef155d09488c5637723eb1cd697"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f4a65276f6ecdebe75f2a53f578fbc40e8d2860658420d5e0611c56bbf5054c"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:334f2738700b20faa04a0d813366fb16ed17287430a6b50584161d5ad31ca6d7"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d194decd9608f11c777946f596f31d5aacad13972a0a87829ae1e6f2d26c1885"}, - {file = "hiredis-2.2.3.tar.gz", hash = "sha256:e75163773a309e56a9b58165cf5a50e0f84b755f6ff863b2c01a38918fe92daa"}, -] - -[[package]] -name = "identify" -version = "2.5.27" -description = "File identification library for Python" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "identify-2.5.27-py2.py3-none-any.whl", hash = "sha256:fdb527b2dfe24602809b2201e033c2a113d7bdf716db3ca8e3243f735dcecaba"}, - {file = "identify-2.5.27.tar.gz", hash = "sha256:287b75b04a0e22d727bc9a41f0d4f3c1bcada97490fa6eabb5b28f0e9097e733"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.4" -description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" -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 = "importlib-metadata" -version = "6.8.0" -description = "Read metadata from Python packages" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, - {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, -] - -[package.dependencies] -zipp = ">=0.5" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] - -[[package]] -name = "importlib-resources" -version = "6.0.1" -description = "Read resources from Python packages" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_resources-6.0.1-py3-none-any.whl", hash = "sha256:134832a506243891221b88b4ae1213327eea96ceb4e407a00d790bb0626f45cf"}, - {file = "importlib_resources-6.0.1.tar.gz", hash = "sha256:4359457e42708462b9626a04657c6208ad799ceb41e5c58c57ffa0e6a098a5d4"}, -] - -[package.dependencies] -zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] - -[[package]] -name = "iniconfig" -version = "2.0.0" -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" -version = "6.25.2" -description = "IPython Kernel for Jupyter" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "ipykernel-6.25.2-py3-none-any.whl", hash = "sha256:2e2ee359baba19f10251b99415bb39de1e97d04e1fab385646f24f0596510b77"}, - {file = "ipykernel-6.25.2.tar.gz", hash = "sha256:f468ddd1f17acb48c8ce67fcfa49ba6d46d4f9ac0438c1f441be7c3d1372230b"}, -] - -[package.dependencies] -appnope = {version = "*", markers = "platform_system == \"Darwin\""} -comm = ">=0.1.1" -debugpy = ">=1.6.5" -ipython = ">=7.23.1" -jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" -matplotlib-inline = ">=0.1" -nest-asyncio = "*" -packaging = "*" -psutil = "*" -pyzmq = ">=20" -tornado = ">=6.1" -traitlets = ">=5.4.0" - -[package.extras] -cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] -pyqt5 = ["pyqt5"] -pyside6 = ["pyside6"] -test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "ipympl" -version = "0.9.3" -description = "Matplotlib Jupyter Extension" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "ipympl-0.9.3-py2.py3-none-any.whl", hash = "sha256:d113cd55891bafe9b27ef99b6dd111a87beb6bb2ae550c404292272103be8013"}, - {file = "ipympl-0.9.3.tar.gz", hash = "sha256:49bab75c05673a6881d1aaec5d8ac81d4624f73d292d154c5fb7096f10236a2b"}, -] - -[package.dependencies] -ipython = "<9" -ipython-genutils = "*" -ipywidgets = ">=7.6.0,<9" -matplotlib = ">=3.4.0,<4" -numpy = "*" -pillow = "*" -traitlets = "<6" - -[package.extras] -docs = ["Sphinx (>=1.5)", "myst-nb", "sphinx-book-theme", "sphinx-copybutton", "sphinx-thebe", "sphinx-togglebutton"] - -[[package]] -name = "ipython" -version = "8.15.0" -description = "IPython: Productive Interactive Computing" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "ipython-8.15.0-py3-none-any.whl", hash = "sha256:45a2c3a529296870a97b7de34eda4a31bee16bc7bf954e07d39abe49caf8f887"}, - {file = "ipython-8.15.0.tar.gz", hash = "sha256:2baeb5be6949eeebf532150f81746f8333e2ccce02de1c7eedde3f23ed5e9f1e"}, -] - -[package.dependencies] -appnope = {version = "*", markers = "sys_platform == \"darwin\""} -backcall = "*" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -decorator = "*" -exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} -jedi = ">=0.16" -matplotlib-inline = "*" -pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} -pickleshare = "*" -prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" -pygments = ">=2.4.0" -stack-data = "*" -traitlets = ">=5" -typing-extensions = {version = "*", markers = "python_version < \"3.10\""} - -[package.extras] -all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] -black = ["black"] -doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] -kernel = ["ipykernel"] -nbconvert = ["nbconvert"] -nbformat = ["nbformat"] -notebook = ["ipywidgets", "notebook"] -parallel = ["ipyparallel"] -qtconsole = ["qtconsole"] -test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] -test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] - -[[package]] -name = "ipython-autotime" -version = "0.3.1" -description = "Time everything in IPython" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "ipython-autotime-0.3.1.tar.gz", hash = "sha256:d839aca97d54d5bfc0bbf9aa9dc34ded577cc3b38da5f6fd6d25a8fffe7f05d1"}, - {file = "ipython_autotime-0.3.1-py2.py3-none-any.whl", hash = "sha256:80ce21c6827e6b1699496e788f809351aa7b356d21cd7ee436e2471e9514da8c"}, -] - -[package.dependencies] -ipython = "*" - -[[package]] -name = "ipython-genutils" -version = "0.2.0" -description = "Vestigial utilities from IPython" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, - {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, -] - -[[package]] -name = "ipywidgets" -version = "8.1.0" -description = "Jupyter interactive widgets" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "ipywidgets-8.1.0-py3-none-any.whl", hash = "sha256:6c8396cc7b8c95dfb4e9ab0054f48c002f045e7e5d7ae523f559d64e525a98ab"}, - {file = "ipywidgets-8.1.0.tar.gz", hash = "sha256:ce97dd90525b3066fd00094690964e7eac14cf9b7745d35565b5eeac20cce687"}, -] - -[package.dependencies] -comm = ">=0.1.3" -ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.7,<3.1.0" -traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.7,<4.1.0" - -[package.extras] -test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] - -[[package]] -name = "isoduration" -version = "20.11.0" -description = "Operations with ISO 8601 durations" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, - {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, -] - -[package.dependencies] -arrow = ">=0.15.0" - -[[package]] -name = "jedi" -version = "0.19.0" -description = "An autocompletion tool for Python that can be used for text editors." -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "jedi-0.19.0-py2.py3-none-any.whl", hash = "sha256:cb8ce23fbccff0025e9386b5cf85e892f94c9b822378f8da49970471335ac64e"}, - {file = "jedi-0.19.0.tar.gz", hash = "sha256:bcf9894f1753969cbac8022a8c2eaee06bfa3724e4192470aaffe7eb6272b0c4"}, -] - -[package.dependencies] -parso = ">=0.8.3,<0.9.0" - -[package.extras] -docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] -qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] -testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] - -[[package]] -name = "jinja2" -version = "3.1.2" -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" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jmespath" -version = "1.0.1" -description = "JSON Matching Expressions" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, - {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, -] - -[[package]] -name = "joblib" -version = "1.3.2" -description = "Lightweight pipelining with Python functions" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "joblib-1.3.2-py3-none-any.whl", hash = "sha256:ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9"}, - {file = "joblib-1.3.2.tar.gz", hash = "sha256:92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1"}, -] - -[[package]] -name = "json5" -version = "0.9.14" -description = "A Python implementation of the JSON5 data format." -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "json5-0.9.14-py2.py3-none-any.whl", hash = "sha256:740c7f1b9e584a468dbb2939d8d458db3427f2c93ae2139d05f47e453eae964f"}, - {file = "json5-0.9.14.tar.gz", hash = "sha256:9ed66c3a6ca3510a976a9ef9b8c0787de24802724ab1860bc0153c7fdd589b02"}, -] - -[package.extras] -dev = ["hypothesis"] - -[[package]] -name = "jsonpointer" -version = "2.4" -description = "Identify specific nodes in a JSON document (RFC 6901)" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" -files = [ - {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, -] - -[[package]] -name = "jsonschema" -version = "4.19.0" -description = "An implementation of JSON Schema validation for Python" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jsonschema-4.19.0-py3-none-any.whl", hash = "sha256:043dc26a3845ff09d20e4420d6012a9c91c9aa8999fa184e7efcfeccb41e32cb"}, - {file = "jsonschema-4.19.0.tar.gz", hash = "sha256:6e1e7569ac13be8139b2dd2c21a55d350066ee3f80df06c608b398cdc6f30e8f"}, -] - -[package.dependencies] -attrs = ">=22.2.0" -fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} -jsonschema-specifications = ">=2023.03.6" -referencing = ">=0.28.4" -rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} -rpds-py = ">=0.7.1" -uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} - -[package.extras] -format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] - -[[package]] -name = "jsonschema-specifications" -version = "2023.7.1" -description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jsonschema_specifications-2023.7.1-py3-none-any.whl", hash = "sha256:05adf340b659828a004220a9613be00fa3f223f2b82002e273dee62fd50524b1"}, - {file = "jsonschema_specifications-2023.7.1.tar.gz", hash = "sha256:c91a50404e88a1f6ba40636778e2ee08f6e24c5613fe4c53ac24578a5a7f72bb"}, -] - -[package.dependencies] -referencing = ">=0.28.0" - -[[package]] -name = "jupyter" -version = "1.0.0" -description = "Jupyter metapackage. Install all the Jupyter components in one go." -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, - {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, - {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, -] - -[package.dependencies] -ipykernel = "*" -ipywidgets = "*" -jupyter-console = "*" -nbconvert = "*" -notebook = "*" -qtconsole = "*" - -[[package]] -name = "jupyter-client" -version = "8.3.1" -description = "Jupyter protocol implementation and client libraries" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter_client-8.3.1-py3-none-any.whl", hash = "sha256:5eb9f55eb0650e81de6b7e34308d8b92d04fe4ec41cd8193a913979e33d8e1a5"}, - {file = "jupyter_client-8.3.1.tar.gz", hash = "sha256:60294b2d5b869356c893f57b1a877ea6510d60d45cf4b38057f1672d85699ac9"}, -] - -[package.dependencies] -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" -python-dateutil = ">=2.8.2" -pyzmq = ">=23.0" -tornado = ">=6.2" -traitlets = ">=5.3" - -[package.extras] -docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] - -[[package]] -name = "jupyter-console" -version = "6.6.3" -description = "Jupyter terminal console" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, - {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, -] - -[package.dependencies] -ipykernel = ">=6.14" -ipython = "*" -jupyter-client = ">=7.0.0" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" -prompt-toolkit = ">=3.0.30" -pygments = "*" -pyzmq = ">=17" -traitlets = ">=5.4" - -[package.extras] -test = ["flaky", "pexpect", "pytest"] - -[[package]] -name = "jupyter-core" -version = "5.3.1" -description = "Jupyter core package. A base package on which Jupyter projects rely." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter_core-5.3.1-py3-none-any.whl", hash = "sha256:ae9036db959a71ec1cac33081eeb040a79e681f08ab68b0883e9a676c7a90dce"}, - {file = "jupyter_core-5.3.1.tar.gz", hash = "sha256:5ba5c7938a7f97a6b0481463f7ff0dbac7c15ba48cf46fa4035ca6e838aa1aba"}, -] - -[package.dependencies] -platformdirs = ">=2.5" -pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} -traitlets = ">=5.3" - -[package.extras] -docs = ["myst-parser", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] -test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "jupyter-events" -version = "0.7.0" -description = "Jupyter Event System library" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter_events-0.7.0-py3-none-any.whl", hash = "sha256:4753da434c13a37c3f3c89b500afa0c0a6241633441421f6adafe2fb2e2b924e"}, - {file = "jupyter_events-0.7.0.tar.gz", hash = "sha256:7be27f54b8388c03eefea123a4f79247c5b9381c49fb1cd48615ee191eb12615"}, -] - -[package.dependencies] -jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} -python-json-logger = ">=2.0.4" -pyyaml = ">=5.3" -referencing = "*" -rfc3339-validator = "*" -rfc3986-validator = ">=0.1.1" -traitlets = ">=5.3" - -[package.extras] -cli = ["click", "rich"] -docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] -test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] - -[[package]] -name = "jupyter-lsp" -version = "2.2.0" -description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter-lsp-2.2.0.tar.gz", hash = "sha256:8ebbcb533adb41e5d635eb8fe82956b0aafbf0fd443b6c4bfa906edeeb8635a1"}, - {file = "jupyter_lsp-2.2.0-py3-none-any.whl", hash = "sha256:9e06b8b4f7dd50300b70dd1a78c0c3b0c3d8fa68e0f2d8a5d1fbab62072aca3f"}, -] - -[package.dependencies] -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-server = ">=1.1.2" - -[[package]] -name = "jupyter-server" -version = "2.7.3" -description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter_server-2.7.3-py3-none-any.whl", hash = "sha256:8e4b90380b59d7a1e31086c4692231f2a2ea4cb269f5516e60aba72ce8317fc9"}, - {file = "jupyter_server-2.7.3.tar.gz", hash = "sha256:d4916c8581c4ebbc534cebdaa8eca2478d9f3bfdd88eae29fcab0120eac57649"}, -] - -[package.dependencies] -anyio = ">=3.1.0" -argon2-cffi = "*" -jinja2 = "*" -jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" -jupyter-events = ">=0.6.0" -jupyter-server-terminals = "*" -nbconvert = ">=6.4.4" -nbformat = ">=5.3.0" -overrides = "*" -packaging = "*" -prometheus-client = "*" -pywinpty = {version = "*", markers = "os_name == \"nt\""} -pyzmq = ">=24" -send2trash = ">=1.8.2" -terminado = ">=0.8.3" -tornado = ">=6.2.0" -traitlets = ">=5.6.0" -websocket-client = "*" - -[package.extras] -docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] -test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] - -[[package]] -name = "jupyter-server-terminals" -version = "0.4.4" -description = "A Jupyter Server Extension Providing Terminals." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter_server_terminals-0.4.4-py3-none-any.whl", hash = "sha256:75779164661cec02a8758a5311e18bb8eb70c4e86c6b699403100f1585a12a36"}, - {file = "jupyter_server_terminals-0.4.4.tar.gz", hash = "sha256:57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d"}, -] - -[package.dependencies] -pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} -terminado = ">=0.8.3" - -[package.extras] -docs = ["jinja2", "jupyter-server", "mistune (<3.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] -test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] - -[[package]] -name = "jupyterlab" -version = "4.0.5" -description = "JupyterLab computational environment" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyterlab-4.0.5-py3-none-any.whl", hash = "sha256:13b3a326e7b95d72746fe20dbe80ee1e71165d6905e01ceaf1320eb809cb1b47"}, - {file = "jupyterlab-4.0.5.tar.gz", hash = "sha256:de49deb75f9b9aec478ed04754cbefe9c5d22fd796a5783cdc65e212983d3611"}, -] - -[package.dependencies] -async-lru = ">=1.0.0" -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -ipykernel = "*" -jinja2 = ">=3.0.3" -jupyter-core = "*" -jupyter-lsp = ">=2.0.0" -jupyter-server = ">=2.4.0,<3" -jupyterlab-server = ">=2.19.0,<3" -notebook-shim = ">=0.2" -packaging = "*" -tomli = {version = "*", markers = "python_version < \"3.11\""} -tornado = ">=6.2.0" -traitlets = "*" - -[package.extras] -dev = ["black[jupyter] (==23.3.0)", "build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.0.271)"] -docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8)", "sphinx-copybutton"] -docs-screenshots = ["altair (==5.0.1)", "ipython (==8.14.0)", "ipywidgets (==8.0.6)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post0)", "matplotlib (==3.7.1)", "nbconvert (>=7.0.0)", "pandas (==2.0.2)", "scipy (==1.10.1)", "vega-datasets (==0.9.0)"] -test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] - -[[package]] -name = "jupyterlab-pygments" -version = "0.2.2" -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-server" -version = "2.24.0" -description = "A set of server components for JupyterLab and JupyterLab like applications." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jupyterlab_server-2.24.0-py3-none-any.whl", hash = "sha256:5f077e142bb8dc9b843d960f940c513581bceca3793a0d80f9c67d9522c4e876"}, - {file = "jupyterlab_server-2.24.0.tar.gz", hash = "sha256:4e6f99e0a5579bbbc32e449c4dbb039561d4f1a7827d5733273ed56738f21f07"}, -] - -[package.dependencies] -babel = ">=2.10" -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jinja2 = ">=3.0.3" -json5 = ">=0.9.0" -jsonschema = ">=4.17.3" -jupyter-server = ">=1.21,<3" -packaging = ">=21.3" -requests = ">=2.28" - -[package.extras] -docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] -openapi = ["openapi-core (>=0.16.1,<0.17.0)", "ruamel-yaml"] -test = ["hatch", "ipykernel", "jupyterlab-server[openapi]", "openapi-spec-validator (>=0.5.1,<0.7.0)", "pytest (>=7.0)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] - -[[package]] -name = "jupyterlab-widgets" -version = "3.0.8" -description = "Jupyter interactive widgets for JupyterLab" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jupyterlab_widgets-3.0.8-py3-none-any.whl", hash = "sha256:4715912d6ceab839c9db35953c764b3214ebbc9161c809f6e0510168845dfdf5"}, - {file = "jupyterlab_widgets-3.0.8.tar.gz", hash = "sha256:d428ab97b8d87cc7c54cbf37644d6e0f0e662f23876e05fa460a73ec3257252a"}, -] - -[[package]] -name = "kiwisolver" -version = "1.4.5" -description = "A fast implementation of the Cassowary constraint solver" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, - {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, -] - -[[package]] -name = "lightning-utilities" -version = "0.9.0" -description = "PyTorch Lightning Sample project." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "lightning-utilities-0.9.0.tar.gz", hash = "sha256:efbf2c488c257f942abdfd06cf646fb84ca215a9663b60081811e22a15ee033b"}, - {file = "lightning_utilities-0.9.0-py3-none-any.whl", hash = "sha256:918dd90c775719e3855631db6282ad75c14da4c5727c4cebdd1589d865fad03d"}, -] - -[package.dependencies] -packaging = ">=17.1" -typing-extensions = "*" - -[package.extras] -cli = ["fire"] -docs = ["requests (>=2.0.0)"] -typing = ["mypy (>=1.0.0)"] - -[[package]] -name = "llvmlite" -version = "0.40.1" -description = "lightweight wrapper around basic LLVM functionality" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "llvmlite-0.40.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:84ce9b1c7a59936382ffde7871978cddcda14098e5a76d961e204523e5c372fb"}, - {file = "llvmlite-0.40.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3673c53cb21c65d2ff3704962b5958e967c6fc0bd0cff772998face199e8d87b"}, - {file = "llvmlite-0.40.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bba2747cf5b4954e945c287fe310b3fcc484e2a9d1b0c273e99eb17d103bb0e6"}, - {file = "llvmlite-0.40.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbd5e82cc990e5a3e343a3bf855c26fdfe3bfae55225f00efd01c05bbda79918"}, - {file = "llvmlite-0.40.1-cp310-cp310-win32.whl", hash = "sha256:09f83ea7a54509c285f905d968184bba00fc31ebf12f2b6b1494d677bb7dde9b"}, - {file = "llvmlite-0.40.1-cp310-cp310-win_amd64.whl", hash = "sha256:7b37297f3cbd68d14a97223a30620589d98ad1890e5040c9e5fc181063f4ed49"}, - {file = "llvmlite-0.40.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a66a5bd580951751b4268f4c3bddcef92682814d6bc72f3cd3bb67f335dd7097"}, - {file = "llvmlite-0.40.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:467b43836b388eaedc5a106d76761e388dbc4674b2f2237bc477c6895b15a634"}, - {file = "llvmlite-0.40.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c23edd196bd797dc3a7860799054ea3488d2824ecabc03f9135110c2e39fcbc"}, - {file = "llvmlite-0.40.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a36d9f244b6680cb90bbca66b146dabb2972f4180c64415c96f7c8a2d8b60a36"}, - {file = "llvmlite-0.40.1-cp311-cp311-win_amd64.whl", hash = "sha256:5b3076dc4e9c107d16dc15ecb7f2faf94f7736cd2d5e9f4dc06287fd672452c1"}, - {file = "llvmlite-0.40.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a7525db121f2e699809b539b5308228854ccab6693ecb01b52c44a2f5647e20"}, - {file = "llvmlite-0.40.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:84747289775d0874e506f907a4513db889471607db19b04de97d144047fec885"}, - {file = "llvmlite-0.40.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e35766e42acef0fe7d1c43169a8ffc327a47808fae6a067b049fe0e9bbf84dd5"}, - {file = "llvmlite-0.40.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cda71de10a1f48416309e408ea83dab5bf36058f83e13b86a2961defed265568"}, - {file = "llvmlite-0.40.1-cp38-cp38-win32.whl", hash = "sha256:96707ebad8b051bbb4fc40c65ef93b7eeee16643bd4d579a14d11578e4b7a647"}, - {file = "llvmlite-0.40.1-cp38-cp38-win_amd64.whl", hash = "sha256:e44f854dc11559795bcdeaf12303759e56213d42dabbf91a5897aa2d8b033810"}, - {file = "llvmlite-0.40.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f643d15aacd0b0b0dc8b74b693822ba3f9a53fa63bc6a178c2dba7cc88f42144"}, - {file = "llvmlite-0.40.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:39a0b4d0088c01a469a5860d2e2d7a9b4e6a93c0f07eb26e71a9a872a8cadf8d"}, - {file = "llvmlite-0.40.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9329b930d699699846623054121ed105fd0823ed2180906d3b3235d361645490"}, - {file = "llvmlite-0.40.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2dbbb8424037ca287983b115a29adf37d806baf7e1bf4a67bd2cffb74e085ed"}, - {file = "llvmlite-0.40.1-cp39-cp39-win32.whl", hash = "sha256:e74e7bec3235a1e1c9ad97d897a620c5007d0ed80c32c84c1d787e7daa17e4ec"}, - {file = "llvmlite-0.40.1-cp39-cp39-win_amd64.whl", hash = "sha256:ff8f31111bb99d135ff296757dc81ab36c2dee54ed4bd429158a96da9807c316"}, - {file = "llvmlite-0.40.1.tar.gz", hash = "sha256:5cdb0d45df602099d833d50bd9e81353a5e036242d3c003c5b294fc61d1986b4"}, -] - -[[package]] -name = "markupsafe" -version = "2.1.3" -description = "Safely add untrusted strings to HTML/XML markup." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, -] - -[[package]] -name = "matplotlib" -version = "3.7.2" -description = "Python plotting package" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:2699f7e73a76d4c110f4f25be9d2496d6ab4f17345307738557d345f099e07de"}, - {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a8035ba590658bae7562786c9cc6ea1a84aa49d3afab157e414c9e2ea74f496d"}, - {file = "matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2f8e4a49493add46ad4a8c92f63e19d548b2b6ebbed75c6b4c7f46f57d36cdd1"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71667eb2ccca4c3537d9414b1bc00554cb7f91527c17ee4ec38027201f8f1603"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:152ee0b569a37630d8628534c628456b28686e085d51394da6b71ef84c4da201"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:070f8dddd1f5939e60aacb8fa08f19551f4b0140fab16a3669d5cd6e9cb28fc8"}, - {file = "matplotlib-3.7.2-cp310-cp310-win32.whl", hash = "sha256:fdbb46fad4fb47443b5b8ac76904b2e7a66556844f33370861b4788db0f8816a"}, - {file = "matplotlib-3.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:23fb1750934e5f0128f9423db27c474aa32534cec21f7b2153262b066a581fd1"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:30e1409b857aa8a747c5d4f85f63a79e479835f8dffc52992ac1f3f25837b544"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:50e0a55ec74bf2d7a0ebf50ac580a209582c2dd0f7ab51bc270f1b4a0027454e"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ac60daa1dc83e8821eed155796b0f7888b6b916cf61d620a4ddd8200ac70cd64"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:305e3da477dc8607336ba10bac96986d6308d614706cae2efe7d3ffa60465b24"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c308b255efb9b06b23874236ec0f10f026673ad6515f602027cc8ac7805352d"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60c521e21031632aa0d87ca5ba0c1c05f3daacadb34c093585a0be6780f698e4"}, - {file = "matplotlib-3.7.2-cp311-cp311-win32.whl", hash = "sha256:26bede320d77e469fdf1bde212de0ec889169b04f7f1179b8930d66f82b30cbc"}, - {file = "matplotlib-3.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:af4860132c8c05261a5f5f8467f1b269bf1c7c23902d75f2be57c4a7f2394b3e"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:a1733b8e84e7e40a9853e505fe68cc54339f97273bdfe6f3ed980095f769ddc7"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d9881356dc48e58910c53af82b57183879129fa30492be69058c5b0d9fddf391"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f081c03f413f59390a80b3e351cc2b2ea0205839714dbc364519bcf51f4b56ca"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1cd120fca3407a225168238b790bd5c528f0fafde6172b140a2f3ab7a4ea63e9"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2c1590b90aa7bd741b54c62b78de05d4186271e34e2377e0289d943b3522273"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d2ff3c984b8a569bc1383cd468fc06b70d7b59d5c2854ca39f1436ae8394117"}, - {file = "matplotlib-3.7.2-cp38-cp38-win32.whl", hash = "sha256:5dea00b62d28654b71ca92463656d80646675628d0828e08a5f3b57e12869e13"}, - {file = "matplotlib-3.7.2-cp38-cp38-win_amd64.whl", hash = "sha256:0f506a1776ee94f9e131af1ac6efa6e5bc7cb606a3e389b0ccb6e657f60bb676"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:6515e878f91894c2e4340d81f0911857998ccaf04dbc1bba781e3d89cbf70608"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:71f7a8c6b124e904db550f5b9fe483d28b896d4135e45c4ea381ad3b8a0e3256"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12f01b92ecd518e0697da4d97d163b2b3aa55eb3eb4e2c98235b3396d7dad55f"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7e28d6396563955f7af437894a36bf2b279462239a41028323e04b85179058b"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbcf59334ff645e6a67cd5f78b4b2cdb76384cdf587fa0d2dc85f634a72e1a3e"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:318c89edde72ff95d8df67d82aca03861240512994a597a435a1011ba18dbc7f"}, - {file = "matplotlib-3.7.2-cp39-cp39-win32.whl", hash = "sha256:ce55289d5659b5b12b3db4dc9b7075b70cef5631e56530f14b2945e8836f2d20"}, - {file = "matplotlib-3.7.2-cp39-cp39-win_amd64.whl", hash = "sha256:2ecb5be2b2815431c81dc115667e33da0f5a1bcf6143980d180d09a717c4a12e"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fdcd28360dbb6203fb5219b1a5658df226ac9bebc2542a9e8f457de959d713d0"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3cca3e842b11b55b52c6fb8bd6a4088693829acbfcdb3e815fa9b7d5c92c1b"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebf577c7a6744e9e1bd3fee45fc74a02710b214f94e2bde344912d85e0c9af7c"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:936bba394682049919dda062d33435b3be211dc3dcaa011e09634f060ec878b2"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bc221ffbc2150458b1cd71cdd9ddd5bb37962b036e41b8be258280b5b01da1dd"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35d74ebdb3f71f112b36c2629cf32323adfbf42679e2751252acd468f5001c07"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:717157e61b3a71d3d26ad4e1770dc85156c9af435659a25ee6407dc866cb258d"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:20f844d6be031948148ba49605c8b96dfe7d3711d1b63592830d650622458c11"}, - {file = "matplotlib-3.7.2.tar.gz", hash = "sha256:a8cdb91dddb04436bd2f098b8fdf4b81352e68cf4d2c6756fcc414791076569b"}, -] - -[package.dependencies] -contourpy = ">=1.0.1" -cycler = ">=0.10" -fonttools = ">=4.22.0" -importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} -kiwisolver = ">=1.0.1" -numpy = ">=1.20" -packaging = ">=20.0" -pillow = ">=6.2.0" -pyparsing = ">=2.3.1,<3.1" -python-dateutil = ">=2.7" - -[[package]] -name = "matplotlib-inline" -version = "0.1.6" -description = "Inline Matplotlib backend for Jupyter" -category = "dev" -optional = false -python-versions = ">=3.5" -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]] -name = "mistune" -version = "3.0.1" -description = "A sane and fast Markdown parser with useful plugins and renderers" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "mistune-3.0.1-py3-none-any.whl", hash = "sha256:b9b3e438efbb57c62b5beb5e134dab664800bdf1284a7ee09e8b12b13eb1aac6"}, - {file = "mistune-3.0.1.tar.gz", hash = "sha256:e912116c13aa0944f9dc530db38eb88f6a77087ab128f49f84a48f4c05ea163c"}, -] - -[[package]] -name = "mlflow-skinny" -version = "2.6.0" -description = "MLflow: A Platform for ML Development and Productionization" -category = "main" -optional = true -python-versions = ">=3.8" -files = [ - {file = "mlflow-skinny-2.6.0.tar.gz", hash = "sha256:c1a71bc4abb83169d4cff012c1c050c203775d4a7462d059c4523a481f0a9688"}, - {file = "mlflow_skinny-2.6.0-py3-none-any.whl", hash = "sha256:b63c6555645af0196b3c92da849968189dfd72d2c1397f7b149593db6b404d66"}, -] - -[package.dependencies] -click = ">=7.0,<9" -cloudpickle = "<3" -databricks-cli = ">=0.8.7,<1" -entrypoints = "<1" -gitpython = ">=2.1.0,<4" -importlib-metadata = ">=3.7.0,<4.7.0 || >4.7.0,<7" -packaging = "<24" -protobuf = ">=3.12.0,<5" -pytz = "<2024" -pyyaml = ">=5.1,<7" -requests = ">=2.17.3,<3" -sqlparse = ">=0.4.0,<1" - -[package.extras] -aliyun-oss = ["aliyunstoreplugin"] -databricks = ["azure-storage-file-datalake (>12)", "boto3 (>1)", "google-cloud-storage (>=1.30.0)"] -extras = ["azureml-core (>=1.2.0)", "boto3", "google-cloud-storage (>=1.30.0)", "kubernetes", "mlserver (>=1.2.0,!=1.3.1)", "mlserver-mlflow (>=1.2.0,!=1.3.1)", "prometheus-flask-exporter", "pyarrow", "pysftp", "requests-auth-aws-sigv4", "virtualenv"] -gateway = ["aiohttp (<4)", "fastapi (<1)", "psutil (<6)", "pydantic (>=1.0,<2)", "uvicorn[standard] (<1)", "watchfiles (<1)"] -sqlserver = ["mlflow-dbstore"] - -[[package]] -name = "moto" -version = "4.2.2" -description = "" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "moto-4.2.2-py2.py3-none-any.whl", hash = "sha256:2a9cbcd9da1a66b23f95d62ef91968284445233a606b4de949379395056276fb"}, - {file = "moto-4.2.2.tar.gz", hash = "sha256:ee34c4c3f53900d953180946920c9dba127a483e2ed40e6dbf93d4ae2e760e7c"}, -] - -[package.dependencies] -boto3 = ">=1.9.201" -botocore = ">=1.12.201" -cryptography = ">=3.3.1" -Jinja2 = ">=2.10.1" -python-dateutil = ">=2.1,<3.0.0" -requests = ">=2.5" -responses = ">=0.13.0" -werkzeug = ">=0.5,<2.2.0 || >2.2.0,<2.2.1 || >2.2.1" -xmltodict = "*" - -[package.extras] -all = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.2.8)", "py-partiql-parser (==0.3.6)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] -apigateway = ["PyYAML (>=5.1)", "ecdsa (!=0.15)", "openapi-spec-validator (>=0.2.8)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] -apigatewayv2 = ["PyYAML (>=5.1)"] -appsync = ["graphql-core"] -awslambda = ["docker (>=3.0.0)"] -batch = ["docker (>=3.0.0)"] -cloudformation = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.2.8)", "py-partiql-parser (==0.3.6)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] -cognitoidp = ["ecdsa (!=0.15)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] -ds = ["sshpubkeys (>=3.1.0)"] -dynamodb = ["docker (>=3.0.0)", "py-partiql-parser (==0.3.6)"] -dynamodbstreams = ["docker (>=3.0.0)", "py-partiql-parser (==0.3.6)"] -ebs = ["sshpubkeys (>=3.1.0)"] -ec2 = ["sshpubkeys (>=3.1.0)"] -efs = ["sshpubkeys (>=3.1.0)"] -eks = ["sshpubkeys (>=3.1.0)"] -glue = ["pyparsing (>=3.0.7)"] -iotdata = ["jsondiff (>=1.1.2)"] -resourcegroupstaggingapi = ["PyYAML (>=5.1)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.2.8)", "py-partiql-parser (==0.3.6)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "sshpubkeys (>=3.1.0)"] -route53resolver = ["sshpubkeys (>=3.1.0)"] -s3 = ["PyYAML (>=5.1)", "py-partiql-parser (==0.3.6)"] -s3crc32c = ["PyYAML (>=5.1)", "crc32c", "py-partiql-parser (==0.3.6)"] -server = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "flask (!=2.2.0,!=2.2.1)", "flask-cors", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.2.8)", "py-partiql-parser (==0.3.6)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] -ssm = ["PyYAML (>=5.1)"] -xray = ["aws-xray-sdk (>=0.93,!=0.96)", "setuptools"] - -[[package]] -name = "mpmath" -version = "1.3.0" -description = "Python library for arbitrary-precision floating-point arithmetic" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c"}, - {file = "mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f"}, -] - -[package.extras] -develop = ["codecov", "pycodestyle", "pytest (>=4.6)", "pytest-cov", "wheel"] -docs = ["sphinx"] -gmpy = ["gmpy2 (>=2.1.0a4)"] -tests = ["pytest (>=4.6)"] - -[[package]] -name = "multidict" -version = "6.0.4" -description = "multidict implementation" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, - {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, - {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, - {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, - {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, - {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, - {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, - {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, - {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, - {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, - {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, - {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, - {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, -] - -[[package]] -name = "mypy-extensions" -version = "1.0.0" -description = "Type system extensions for programs checked with the mypy type checker." -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 = "nb-black" -version = "1.0.7" -description = "A simple extension for Jupyter Notebook and Jupyter Lab to beautify Python code automatically using Black." -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "nb_black-1.0.7.tar.gz", hash = "sha256:1ca52e3a46675f6a0a6d79ac73a1f8f951bef60f919eced56173e76ab1b6d62b"}, -] - -[package.dependencies] -ipython = "*" - -[[package]] -name = "nbclient" -version = "0.8.0" -description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." -category = "dev" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "nbclient-0.8.0-py3-none-any.whl", hash = "sha256:25e861299e5303a0477568557c4045eccc7a34c17fc08e7959558707b9ebe548"}, - {file = "nbclient-0.8.0.tar.gz", hash = "sha256:f9b179cd4b2d7bca965f900a2ebf0db4a12ebff2f36a711cb66861e4ae158e55"}, -] - -[package.dependencies] -jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" -nbformat = ">=5.1" -traitlets = ">=5.4" - -[package.extras] -dev = ["pre-commit"] -docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] -test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] - -[[package]] -name = "nbconvert" -version = "7.8.0" -description = "Converting Jupyter Notebooks" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "nbconvert-7.8.0-py3-none-any.whl", hash = "sha256:aec605e051fa682ccc7934ccc338ba1e8b626cfadbab0db592106b630f63f0f2"}, - {file = "nbconvert-7.8.0.tar.gz", hash = "sha256:f5bc15a1247e14dd41ceef0c0a3bc70020e016576eb0578da62f1c5b4f950479"}, -] - -[package.dependencies] -beautifulsoup4 = "*" -bleach = "!=5.0.0" -defusedxml = "*" -importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} -jinja2 = ">=3.0" -jupyter-core = ">=4.7" -jupyterlab-pygments = "*" -markupsafe = ">=2.0" -mistune = ">=2.0.3,<4" -nbclient = ">=0.5.0" -nbformat = ">=5.7" -packaging = "*" -pandocfilters = ">=1.4.1" -pygments = ">=2.4.1" -tinycss2 = "*" -traitlets = ">=5.1" - -[package.extras] -all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"] -docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] -qtpdf = ["nbconvert[qtpng]"] -qtpng = ["pyqtwebengine (>=5.15)"] -serve = ["tornado (>=6.1)"] -test = ["flaky", "ipykernel", "ipywidgets (>=7)", "pre-commit", "pytest", "pytest-dependency"] -webpdf = ["playwright"] - -[[package]] -name = "nbformat" -version = "5.9.2" -description = "The Jupyter Notebook format" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "nbformat-5.9.2-py3-none-any.whl", hash = "sha256:1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9"}, - {file = "nbformat-5.9.2.tar.gz", hash = "sha256:5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192"}, -] - -[package.dependencies] -fastjsonschema = "*" -jsonschema = ">=2.6" -jupyter-core = "*" -traitlets = ">=5.1" - -[package.extras] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["pep440", "pre-commit", "pytest", "testpath"] - -[[package]] -name = "nest-asyncio" -version = "1.5.7" -description = "Patch asyncio to allow nested event loops" -category = "dev" -optional = false -python-versions = ">=3.5" -files = [ - {file = "nest_asyncio-1.5.7-py3-none-any.whl", hash = "sha256:5301c82941b550b3123a1ea772ba9a1c80bad3a182be8c1a5ae6ad3be57a9657"}, - {file = "nest_asyncio-1.5.7.tar.gz", hash = "sha256:6a80f7b98f24d9083ed24608977c09dd608d83f91cccc24c9d2cba6d10e01c10"}, -] - -[[package]] -name = "networkx" -version = "3.1" -description = "Python package for creating and manipulating graphs and networks" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "networkx-3.1-py3-none-any.whl", hash = "sha256:4f33f68cb2afcf86f28a45f43efc27a9386b535d567d2127f8f61d51dec58d36"}, - {file = "networkx-3.1.tar.gz", hash = "sha256:de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61"}, -] - -[package.extras] -default = ["matplotlib (>=3.4)", "numpy (>=1.20)", "pandas (>=1.3)", "scipy (>=1.8)"] -developer = ["mypy (>=1.1)", "pre-commit (>=3.2)"] -doc = ["nb2plots (>=0.6)", "numpydoc (>=1.5)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.13)", "sphinx (>=6.1)", "sphinx-gallery (>=0.12)", "texext (>=0.6.7)"] -extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.10)", "sympy (>=1.10)"] -test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] - -[[package]] -name = "nodeenv" -version = "1.8.0" -description = "Node.js virtual environment builder" -category = "dev" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" -files = [ - {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, - {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, -] - -[package.dependencies] -setuptools = "*" - -[[package]] -name = "notebook" -version = "7.0.3" -description = "Jupyter Notebook - A web-based notebook environment for interactive computing" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "notebook-7.0.3-py3-none-any.whl", hash = "sha256:786ab2e3287c068667adce3029b540dd18fc5d23f49181b4b4ee4f6b48a7ca81"}, - {file = "notebook-7.0.3.tar.gz", hash = "sha256:07f3c5062fd0e6e69864437a0347abc485d991aae87a92c47d659699f571b729"}, -] - -[package.dependencies] -jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.0.2,<5" -jupyterlab-server = ">=2.22.1,<3" -notebook-shim = ">=0.2,<0.3" -tornado = ">=6.2.0" - -[package.extras] -dev = ["hatch", "pre-commit"] -docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.22.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] - -[[package]] -name = "notebook-shim" -version = "0.2.3" -description = "A shim layer for notebook traits and config" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "notebook_shim-0.2.3-py3-none-any.whl", hash = "sha256:a83496a43341c1674b093bfcebf0fe8e74cbe7eda5fd2bbc56f8e39e1486c0c7"}, - {file = "notebook_shim-0.2.3.tar.gz", hash = "sha256:f69388ac283ae008cd506dda10d0288b09a017d822d5e8c7129a152cbd3ce7e9"}, -] - -[package.dependencies] -jupyter-server = ">=1.8,<3" - -[package.extras] -test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] - -[[package]] -name = "numba" -version = "0.57.1" -description = "compiling Python code using LLVM" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "numba-0.57.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db8268eb5093cae2288942a8cbd69c9352f6fe6e0bfa0a9a27679436f92e4248"}, - {file = "numba-0.57.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:643cb09a9ba9e1bd8b060e910aeca455e9442361e80fce97690795ff9840e681"}, - {file = "numba-0.57.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:53e9fab973d9e82c9f8449f75994a898daaaf821d84f06fbb0b9de2293dd9306"}, - {file = "numba-0.57.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c0602e4f896e6a6d844517c3ab434bc978e7698a22a733cc8124465898c28fa8"}, - {file = "numba-0.57.1-cp310-cp310-win32.whl", hash = "sha256:3d6483c27520d16cf5d122868b79cad79e48056ecb721b52d70c126bed65431e"}, - {file = "numba-0.57.1-cp310-cp310-win_amd64.whl", hash = "sha256:a32ee263649aa3c3587b833d6311305379529570e6c20deb0c6f4fb5bc7020db"}, - {file = "numba-0.57.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c078f84b5529a7fdb8413bb33d5100f11ec7b44aa705857d9eb4e54a54ff505"}, - {file = "numba-0.57.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e447c4634d1cc99ab50d4faa68f680f1d88b06a2a05acf134aa6fcc0342adeca"}, - {file = "numba-0.57.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4838edef2df5f056cb8974670f3d66562e751040c448eb0b67c7e2fec1726649"}, - {file = "numba-0.57.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9b17fbe4a69dcd9a7cd49916b6463cd9a82af5f84911feeb40793b8bce00dfa7"}, - {file = "numba-0.57.1-cp311-cp311-win_amd64.whl", hash = "sha256:93df62304ada9b351818ba19b1cfbddaf72cd89348e81474326ca0b23bf0bae1"}, - {file = "numba-0.57.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8e00ca63c5d0ad2beeb78d77f087b3a88c45ea9b97e7622ab2ec411a868420ee"}, - {file = "numba-0.57.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ff66d5b022af6c7d81ddbefa87768e78ed4f834ab2da6ca2fd0d60a9e69b94f5"}, - {file = "numba-0.57.1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:60ec56386076e9eed106a87c96626d5686fbb16293b9834f0849cf78c9491779"}, - {file = "numba-0.57.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6c057ccedca95df23802b6ccad86bb318be624af45b5a38bb8412882be57a681"}, - {file = "numba-0.57.1-cp38-cp38-win32.whl", hash = "sha256:5a82bf37444039c732485c072fda21a361790ed990f88db57fd6941cd5e5d307"}, - {file = "numba-0.57.1-cp38-cp38-win_amd64.whl", hash = "sha256:9bcc36478773ce838f38afd9a4dfafc328d4ffb1915381353d657da7f6473282"}, - {file = "numba-0.57.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae50c8c90c2ce8057f9618b589223e13faa8cbc037d8f15b4aad95a2c33a0582"}, - {file = "numba-0.57.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9a1b2b69448e510d672ff9a6b18d2db9355241d93c6a77677baa14bec67dc2a0"}, - {file = "numba-0.57.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3cf78d74ad9d289fbc1e5b1c9f2680fca7a788311eb620581893ab347ec37a7e"}, - {file = "numba-0.57.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f47dd214adc5dcd040fe9ad2adbd2192133c9075d2189ce1b3d5f9d72863ef05"}, - {file = "numba-0.57.1-cp39-cp39-win32.whl", hash = "sha256:a3eac19529956185677acb7f01864919761bfffbb9ae04bbbe5e84bbc06cfc2b"}, - {file = "numba-0.57.1-cp39-cp39-win_amd64.whl", hash = "sha256:9587ba1bf5f3035575e45562ada17737535c6d612df751e811d702693a72d95e"}, - {file = "numba-0.57.1.tar.gz", hash = "sha256:33c0500170d213e66d90558ad6aca57d3e03e97bb11da82e6d87ab793648cb17"}, -] - -[package.dependencies] -llvmlite = ">=0.40.0dev0,<0.41" -numpy = ">=1.21,<1.25" - -[[package]] -name = "numexpr" -version = "2.8.5" -description = "Fast numerical expression evaluator for NumPy" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "numexpr-2.8.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51f3ab160c3847ebcca93cd88f935a7802b54a01ab63fe93152994a64d7a6cf2"}, - {file = "numexpr-2.8.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:de29c77f674e4eb8f0846525a475cab64008c227c8bc4ba5153ab3f72441cc63"}, - {file = "numexpr-2.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf85ba1327eb87ec82ae7936f13c8850fb969a0ca34f3ba9fa3897c09d5c80d7"}, - {file = "numexpr-2.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c00be69f747f44a631830215cab482f0f77f75af2925695adff57c1cc0f9a68"}, - {file = "numexpr-2.8.5-cp310-cp310-win32.whl", hash = "sha256:c46350dcdb93e32f033eea5a21269514ffcaf501d9abd6036992d37e48a308b0"}, - {file = "numexpr-2.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:894b027438b8ec88dea32a19193716c79f4ff8ddb92302dcc9731b51ba3565a8"}, - {file = "numexpr-2.8.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6df184d40d4cf9f21c71f429962f39332f7398147762588c9f3a5c77065d0c06"}, - {file = "numexpr-2.8.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:178b85ad373c6903e55d75787d61b92380439b70d94b001cb055a501b0821335"}, - {file = "numexpr-2.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:578fe4008e4d5d6ff01bbeb2d7b7ba1ec658a5cda9c720cd26a9a8325f8ef438"}, - {file = "numexpr-2.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef621b4ee366a5c6a484f6678c9259f5b826569f8bfa0b89ba2306d5055468bb"}, - {file = "numexpr-2.8.5-cp311-cp311-win32.whl", hash = "sha256:dd57ab1a3d3aaa9274aff1cefbf93b8ddacc7973afef5b125905f6bf18fabab0"}, - {file = "numexpr-2.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:783324ba40eb804ecfc9ebae86120a1e339ab112d0ab8a1f0d48a26354d5bf9b"}, - {file = "numexpr-2.8.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:183d5430db76826e54465c69db93a3c6ecbf03cda5aa1bb96eaad0147e9b68dc"}, - {file = "numexpr-2.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39ce106f92ccea5b07b1d6f2f3c4370f05edf27691dc720a63903484a2137e48"}, - {file = "numexpr-2.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b594dc9e2d6291a0bc5c065e6d9caf3eee743b5663897832e9b17753c002947a"}, - {file = "numexpr-2.8.5-cp37-cp37m-win32.whl", hash = "sha256:62b4faf8e0627673b0210a837792bddd23050ecebc98069ab23eb0633ff1ef5f"}, - {file = "numexpr-2.8.5-cp37-cp37m-win_amd64.whl", hash = "sha256:db5c65417d69414f1ab31302ea01d3548303ef31209c38b4849d145be4e1d1ba"}, - {file = "numexpr-2.8.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eb36ffcfa1606e41aa08d559b4277bcad0e16b83941d1a4fee8d2bd5a34f8e0e"}, - {file = "numexpr-2.8.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:34af2a0e857d02a4bc5758bc037a777d50dacb13bcd57c7905268a3e44994ed6"}, - {file = "numexpr-2.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a8dad2bfaad5a5c34a2e8bbf62b9df1dfab266d345fda1feb20ff4e264b347a"}, - {file = "numexpr-2.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b93f5a866cd13a808bc3d3a9c487d94cd02eec408b275ff0aa150f2e8e5191f8"}, - {file = "numexpr-2.8.5-cp38-cp38-win32.whl", hash = "sha256:558390fea6370003ac749ed9d0f38d708aa096f5dcb707ddb6e0ca5a0dd37da1"}, - {file = "numexpr-2.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:55983806815035eb63c5039520688c49536bb7f3cc3fc1d7d64c6a00cf3f353e"}, - {file = "numexpr-2.8.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1510da20e6f5f45333610b1ded44c566e2690c6c437c84f2a212ca09627c7e01"}, - {file = "numexpr-2.8.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e8b5bf7bcb4e8dcd66522d8fc96e1db7278f901cb4fd2e155efbe62a41dde08"}, - {file = "numexpr-2.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ed0e1c1ef5f34381448539f1fe9015906d21c9cfa2797c06194d4207dadb465"}, - {file = "numexpr-2.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aea6ab45c87c0a7041183c08a798f0ad4d7c5eccbce20cfe79ce6f1a45ef3702"}, - {file = "numexpr-2.8.5-cp39-cp39-win32.whl", hash = "sha256:cbfd833ee5fdb0efb862e152aee7e6ccea9c596d5c11d22604c2e6307bff7cad"}, - {file = "numexpr-2.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:283ce8609a7ccbadf91a68f3484558b3e36d27c93c98a41ec205efb0ab43c872"}, - {file = "numexpr-2.8.5.tar.gz", hash = "sha256:45ed41e55a0abcecf3d711481e12a5fb7a904fe99d42bc282a17cc5f8ea510be"}, -] - -[package.dependencies] -numpy = ">=1.13.3" - -[[package]] -name = "numpy" -version = "1.24.4" -description = "Fundamental package for array computing in Python" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, - {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, - {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, - {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, - {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, - {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, - {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, - {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, - {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, - {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, - {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, - {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, - {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, - {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, - {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, - {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, - {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, - {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, - {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, - {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, - {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, - {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, - {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, - {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, - {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, - {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, - {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, - {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, -] - -[[package]] -name = "oauthlib" -version = "3.2.2" -description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" -category = "main" -optional = true -python-versions = ">=3.6" -files = [ - {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, - {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, -] - -[package.extras] -rsa = ["cryptography (>=3.0.0)"] -signals = ["blinker (>=1.4.0)"] -signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] - -[[package]] -name = "omegaconf" -version = "2.3.0" -description = "A flexible configuration library" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b"}, - {file = "omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7"}, -] - -[package.dependencies] -antlr4-python3-runtime = ">=4.9.0,<4.10.0" -PyYAML = ">=5.1.0" - -[[package]] -name = "orjson" -version = "3.9.7" -description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "orjson-3.9.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b6df858e37c321cefbf27fe7ece30a950bcc3a75618a804a0dcef7ed9dd9c92d"}, - {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5198633137780d78b86bb54dafaaa9baea698b4f059456cd4554ab7009619221"}, - {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e736815b30f7e3c9044ec06a98ee59e217a833227e10eb157f44071faddd7c5"}, - {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a19e4074bc98793458b4b3ba35a9a1d132179345e60e152a1bb48c538ab863c4"}, - {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80acafe396ab689a326ab0d80f8cc61dec0dd2c5dca5b4b3825e7b1e0132c101"}, - {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:355efdbbf0cecc3bd9b12589b8f8e9f03c813a115efa53f8dc2a523bfdb01334"}, - {file = "orjson-3.9.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3aab72d2cef7f1dd6104c89b0b4d6b416b0db5ca87cc2fac5f79c5601f549cc2"}, - {file = "orjson-3.9.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:36b1df2e4095368ee388190687cb1b8557c67bc38400a942a1a77713580b50ae"}, - {file = "orjson-3.9.7-cp310-none-win32.whl", hash = "sha256:e94b7b31aa0d65f5b7c72dd8f8227dbd3e30354b99e7a9af096d967a77f2a580"}, - {file = "orjson-3.9.7-cp310-none-win_amd64.whl", hash = "sha256:82720ab0cf5bb436bbd97a319ac529aee06077ff7e61cab57cee04a596c4f9b4"}, - {file = "orjson-3.9.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1f8b47650f90e298b78ecf4df003f66f54acdba6a0f763cc4df1eab048fe3738"}, - {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f738fee63eb263530efd4d2e9c76316c1f47b3bbf38c1bf45ae9625feed0395e"}, - {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:38e34c3a21ed41a7dbd5349e24c3725be5416641fdeedf8f56fcbab6d981c900"}, - {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21a3344163be3b2c7e22cef14fa5abe957a892b2ea0525ee86ad8186921b6cf0"}, - {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23be6b22aab83f440b62a6f5975bcabeecb672bc627face6a83bc7aeb495dc7e"}, - {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5205ec0dfab1887dd383597012199f5175035e782cdb013c542187d280ca443"}, - {file = "orjson-3.9.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8769806ea0b45d7bf75cad253fba9ac6700b7050ebb19337ff6b4e9060f963fa"}, - {file = "orjson-3.9.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f9e01239abea2f52a429fe9d95c96df95f078f0172489d691b4a848ace54a476"}, - {file = "orjson-3.9.7-cp311-none-win32.whl", hash = "sha256:8bdb6c911dae5fbf110fe4f5cba578437526334df381b3554b6ab7f626e5eeca"}, - {file = "orjson-3.9.7-cp311-none-win_amd64.whl", hash = "sha256:9d62c583b5110e6a5cf5169ab616aa4ec71f2c0c30f833306f9e378cf51b6c86"}, - {file = "orjson-3.9.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1c3cee5c23979deb8d1b82dc4cc49be59cccc0547999dbe9adb434bb7af11cf7"}, - {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a347d7b43cb609e780ff8d7b3107d4bcb5b6fd09c2702aa7bdf52f15ed09fa09"}, - {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:154fd67216c2ca38a2edb4089584504fbb6c0694b518b9020ad35ecc97252bb9"}, - {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ea3e63e61b4b0beeb08508458bdff2daca7a321468d3c4b320a758a2f554d31"}, - {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb0b0b2476f357eb2975ff040ef23978137aa674cd86204cfd15d2d17318588"}, - {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b9a20a03576c6b7022926f614ac5a6b0914486825eac89196adf3267c6489d"}, - {file = "orjson-3.9.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:915e22c93e7b7b636240c5a79da5f6e4e84988d699656c8e27f2ac4c95b8dcc0"}, - {file = "orjson-3.9.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f26fb3e8e3e2ee405c947ff44a3e384e8fa1843bc35830fe6f3d9a95a1147b6e"}, - {file = "orjson-3.9.7-cp312-none-win_amd64.whl", hash = "sha256:d8692948cada6ee21f33db5e23460f71c8010d6dfcfe293c9b96737600a7df78"}, - {file = "orjson-3.9.7-cp37-cp37m-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7bab596678d29ad969a524823c4e828929a90c09e91cc438e0ad79b37ce41166"}, - {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63ef3d371ea0b7239ace284cab9cd00d9c92b73119a7c274b437adb09bda35e6"}, - {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f8fcf696bbbc584c0c7ed4adb92fd2ad7d153a50258842787bc1524e50d7081"}, - {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90fe73a1f0321265126cbba13677dcceb367d926c7a65807bd80916af4c17047"}, - {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45a47f41b6c3beeb31ac5cf0ff7524987cfcce0a10c43156eb3ee8d92d92bf22"}, - {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a2937f528c84e64be20cb80e70cea76a6dfb74b628a04dab130679d4454395c"}, - {file = "orjson-3.9.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b4fb306c96e04c5863d52ba8d65137917a3d999059c11e659eba7b75a69167bd"}, - {file = "orjson-3.9.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:410aa9d34ad1089898f3db461b7b744d0efcf9252a9415bbdf23540d4f67589f"}, - {file = "orjson-3.9.7-cp37-none-win32.whl", hash = "sha256:26ffb398de58247ff7bde895fe30817a036f967b0ad0e1cf2b54bda5f8dcfdd9"}, - {file = "orjson-3.9.7-cp37-none-win_amd64.whl", hash = "sha256:bcb9a60ed2101af2af450318cd89c6b8313e9f8df4e8fb12b657b2e97227cf08"}, - {file = "orjson-3.9.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5da9032dac184b2ae2da4bce423edff7db34bfd936ebd7d4207ea45840f03905"}, - {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7951af8f2998045c656ba8062e8edf5e83fd82b912534ab1de1345de08a41d2b"}, - {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8e59650292aa3a8ea78073fc84184538783966528e442a1b9ed653aa282edcf"}, - {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9274ba499e7dfb8a651ee876d80386b481336d3868cba29af839370514e4dce0"}, - {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca1706e8b8b565e934c142db6a9592e6401dc430e4b067a97781a997070c5378"}, - {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83cc275cf6dcb1a248e1876cdefd3f9b5f01063854acdfd687ec360cd3c9712a"}, - {file = "orjson-3.9.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:11c10f31f2c2056585f89d8229a56013bc2fe5de51e095ebc71868d070a8dd81"}, - {file = "orjson-3.9.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cf334ce1d2fadd1bf3e5e9bf15e58e0c42b26eb6590875ce65bd877d917a58aa"}, - {file = "orjson-3.9.7-cp38-none-win32.whl", hash = "sha256:76a0fc023910d8a8ab64daed8d31d608446d2d77c6474b616b34537aa7b79c7f"}, - {file = "orjson-3.9.7-cp38-none-win_amd64.whl", hash = "sha256:7a34a199d89d82d1897fd4a47820eb50947eec9cda5fd73f4578ff692a912f89"}, - {file = "orjson-3.9.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e7e7f44e091b93eb39db88bb0cb765db09b7a7f64aea2f35e7d86cbf47046c65"}, - {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01d647b2a9c45a23a84c3e70e19d120011cba5f56131d185c1b78685457320bb"}, - {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0eb850a87e900a9c484150c414e21af53a6125a13f6e378cf4cc11ae86c8f9c5"}, - {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f4b0042d8388ac85b8330b65406c84c3229420a05068445c13ca28cc222f1f7"}, - {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd3e7aae977c723cc1dbb82f97babdb5e5fbce109630fbabb2ea5053523c89d3"}, - {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c616b796358a70b1f675a24628e4823b67d9e376df2703e893da58247458956"}, - {file = "orjson-3.9.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c3ba725cf5cf87d2d2d988d39c6a2a8b6fc983d78ff71bc728b0be54c869c884"}, - {file = "orjson-3.9.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4891d4c934f88b6c29b56395dfc7014ebf7e10b9e22ffd9877784e16c6b2064f"}, - {file = "orjson-3.9.7-cp39-none-win32.whl", hash = "sha256:14d3fb6cd1040a4a4a530b28e8085131ed94ebc90d72793c59a713de34b60838"}, - {file = "orjson-3.9.7-cp39-none-win_amd64.whl", hash = "sha256:9ef82157bbcecd75d6296d5d8b2d792242afcd064eb1ac573f8847b52e58f677"}, - {file = "orjson-3.9.7.tar.gz", hash = "sha256:85e39198f78e2f7e054d296395f6c96f5e02892337746ef5b6a1bf3ed5910142"}, -] - -[[package]] -name = "overrides" -version = "7.4.0" -description = "A decorator to automatically detect mismatch when overriding a method." -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "overrides-7.4.0-py3-none-any.whl", hash = "sha256:3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d"}, - {file = "overrides-7.4.0.tar.gz", hash = "sha256:9502a3cca51f4fac40b5feca985b6703a5c1f6ad815588a7ca9e285b9dca6757"}, -] - -[[package]] -name = "packaging" -version = "23.1" -description = "Core utilities for Python packages" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, -] - -[[package]] -name = "pandas" -version = "2.1.0" -description = "Powerful data structures for data analysis, time series, and statistics" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pandas-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:40dd20439ff94f1b2ed55b393ecee9cb6f3b08104c2c40b0cb7186a2f0046242"}, - {file = "pandas-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d4f38e4fedeba580285eaac7ede4f686c6701a9e618d8a857b138a126d067f2f"}, - {file = "pandas-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e6a0fe052cf27ceb29be9429428b4918f3740e37ff185658f40d8702f0b3e09"}, - {file = "pandas-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d81e1813191070440d4c7a413cb673052b3b4a984ffd86b8dd468c45742d3cc"}, - {file = "pandas-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eb20252720b1cc1b7d0b2879ffc7e0542dd568f24d7c4b2347cb035206936421"}, - {file = "pandas-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:38f74ef7ebc0ffb43b3d633e23d74882bce7e27bfa09607f3c5d3e03ffd9a4a5"}, - {file = "pandas-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cda72cc8c4761c8f1d97b169661f23a86b16fdb240bdc341173aee17e4d6cedd"}, - {file = "pandas-2.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d97daeac0db8c993420b10da4f5f5b39b01fc9ca689a17844e07c0a35ac96b4b"}, - {file = "pandas-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8c58b1113892e0c8078f006a167cc210a92bdae23322bb4614f2f0b7a4b510f"}, - {file = "pandas-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:629124923bcf798965b054a540f9ccdfd60f71361255c81fa1ecd94a904b9dd3"}, - {file = "pandas-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:70cf866af3ab346a10debba8ea78077cf3a8cd14bd5e4bed3d41555a3280041c"}, - {file = "pandas-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:d53c8c1001f6a192ff1de1efe03b31a423d0eee2e9e855e69d004308e046e694"}, - {file = "pandas-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:86f100b3876b8c6d1a2c66207288ead435dc71041ee4aea789e55ef0e06408cb"}, - {file = "pandas-2.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28f330845ad21c11db51e02d8d69acc9035edfd1116926ff7245c7215db57957"}, - {file = "pandas-2.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9a6ccf0963db88f9b12df6720e55f337447aea217f426a22d71f4213a3099a6"}, - {file = "pandas-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d99e678180bc59b0c9443314297bddce4ad35727a1a2656dbe585fd78710b3b9"}, - {file = "pandas-2.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b31da36d376d50a1a492efb18097b9101bdbd8b3fbb3f49006e02d4495d4c644"}, - {file = "pandas-2.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0164b85937707ec7f70b34a6c3a578dbf0f50787f910f21ca3b26a7fd3363437"}, - {file = "pandas-2.1.0.tar.gz", hash = "sha256:62c24c7fc59e42b775ce0679cfa7b14a5f9bfb7643cfbe708c960699e05fb918"}, -] - -[package.dependencies] -bottleneck = {version = ">=1.3.4", optional = true, markers = "extra == \"performance\""} -numba = {version = ">=0.55.2", optional = true, markers = "extra == \"performance\""} -numexpr = {version = ">=2.8.0", optional = true, markers = "extra == \"performance\""} -numpy = [ - {version = ">=1.22.4", markers = "python_version < \"3.11\""}, - {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, -] -python-dateutil = ">=2.8.2" -pytz = ">=2020.1" -tzdata = ">=2022.1" - -[package.extras] -all = ["PyQt5 (>=5.15.6)", "SQLAlchemy (>=1.4.36)", "beautifulsoup4 (>=4.11.1)", "bottleneck (>=1.3.4)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=0.8.1)", "fsspec (>=2022.05.0)", "gcsfs (>=2022.05.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.8.0)", "matplotlib (>=3.6.1)", "numba (>=0.55.2)", "numexpr (>=2.8.0)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pandas-gbq (>=0.17.5)", "psycopg2 (>=2.9.3)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.5)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "pyxlsb (>=1.0.9)", "qtpy (>=2.2.0)", "s3fs (>=2022.05.0)", "scipy (>=1.8.1)", "tables (>=3.7.0)", "tabulate (>=0.8.10)", "xarray (>=2022.03.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)", "zstandard (>=0.17.0)"] -aws = ["s3fs (>=2022.05.0)"] -clipboard = ["PyQt5 (>=5.15.6)", "qtpy (>=2.2.0)"] -compression = ["zstandard (>=0.17.0)"] -computation = ["scipy (>=1.8.1)", "xarray (>=2022.03.0)"] -consortium-standard = ["dataframe-api-compat (>=0.1.7)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pyxlsb (>=1.0.9)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)"] -feather = ["pyarrow (>=7.0.0)"] -fss = ["fsspec (>=2022.05.0)"] -gcp = ["gcsfs (>=2022.05.0)", "pandas-gbq (>=0.17.5)"] -hdf5 = ["tables (>=3.7.0)"] -html = ["beautifulsoup4 (>=4.11.1)", "html5lib (>=1.1)", "lxml (>=4.8.0)"] -mysql = ["SQLAlchemy (>=1.4.36)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.8.10)"] -parquet = ["pyarrow (>=7.0.0)"] -performance = ["bottleneck (>=1.3.4)", "numba (>=0.55.2)", "numexpr (>=2.8.0)"] -plot = ["matplotlib (>=3.6.1)"] -postgresql = ["SQLAlchemy (>=1.4.36)", "psycopg2 (>=2.9.3)"] -spss = ["pyreadstat (>=1.1.5)"] -sql-other = ["SQLAlchemy (>=1.4.36)"] -test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.8.0)"] - -[[package]] -name = "pandocfilters" -version = "1.5.0" -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" -version = "0.8.3" -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)"] -testing = ["docopt", "pytest (<6.0.0)"] - -[[package]] -name = "pathspec" -version = "0.11.2" -description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, -] - -[[package]] -name = "pexpect" -version = "4.8.0" -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" - -[[package]] -name = "pickleshare" -version = "0.7.5" -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" -version = "10.0.0" -description = "Python Imaging Library (Fork)" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "Pillow-10.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1f62406a884ae75fb2f818694469519fb685cc7eaff05d3451a9ebe55c646891"}, - {file = "Pillow-10.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d5db32e2a6ccbb3d34d87c87b432959e0db29755727afb37290e10f6e8e62614"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edf4392b77bdc81f36e92d3a07a5cd072f90253197f4a52a55a8cec48a12483b"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:520f2a520dc040512699f20fa1c363eed506e94248d71f85412b625026f6142c"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:8c11160913e3dd06c8ffdb5f233a4f254cb449f4dfc0f8f4549eda9e542c93d1"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a74ba0c356aaa3bb8e3eb79606a87669e7ec6444be352870623025d75a14a2bf"}, - {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5d0dae4cfd56969d23d94dc8e89fb6a217be461c69090768227beb8ed28c0a3"}, - {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22c10cc517668d44b211717fd9775799ccec4124b9a7f7b3635fc5386e584992"}, - {file = "Pillow-10.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:dffe31a7f47b603318c609f378ebcd57f1554a3a6a8effbc59c3c69f804296de"}, - {file = "Pillow-10.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:9fb218c8a12e51d7ead2a7c9e101a04982237d4855716af2e9499306728fb485"}, - {file = "Pillow-10.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d35e3c8d9b1268cbf5d3670285feb3528f6680420eafe35cccc686b73c1e330f"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ed64f9ca2f0a95411e88a4efbd7a29e5ce2cea36072c53dd9d26d9c76f753b3"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b6eb5502f45a60a3f411c63187db83a3d3107887ad0d036c13ce836f8a36f1d"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:c1fbe7621c167ecaa38ad29643d77a9ce7311583761abf7836e1510c580bf3dd"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:cd25d2a9d2b36fcb318882481367956d2cf91329f6892fe5d385c346c0649629"}, - {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3b08d4cc24f471b2c8ca24ec060abf4bebc6b144cb89cba638c720546b1cf538"}, - {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737a602fbd82afd892ca746392401b634e278cb65d55c4b7a8f48e9ef8d008d"}, - {file = "Pillow-10.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f"}, - {file = "Pillow-10.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:bc2ec7c7b5d66b8ec9ce9f720dbb5fa4bace0f545acd34870eff4a369b44bf37"}, - {file = "Pillow-10.0.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:d80cf684b541685fccdd84c485b31ce73fc5c9b5d7523bf1394ce134a60c6883"}, - {file = "Pillow-10.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76de421f9c326da8f43d690110f0e79fe3ad1e54be811545d7d91898b4c8493e"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ff539a12457809666fef6624684c008e00ff6bf455b4b89fd00a140eecd640"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce543ed15570eedbb85df19b0a1a7314a9c8141a36ce089c0a894adbfccb4568"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:685ac03cc4ed5ebc15ad5c23bc555d68a87777586d970c2c3e216619a5476223"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d72e2ecc68a942e8cf9739619b7f408cc7b272b279b56b2c83c6123fcfa5cdff"}, - {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d50b6aec14bc737742ca96e85d6d0a5f9bfbded018264b3b70ff9d8c33485551"}, - {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:00e65f5e822decd501e374b0650146063fbb30a7264b4d2744bdd7b913e0cab5"}, - {file = "Pillow-10.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:f31f9fdbfecb042d046f9d91270a0ba28368a723302786c0009ee9b9f1f60199"}, - {file = "Pillow-10.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:1ce91b6ec08d866b14413d3f0bbdea7e24dfdc8e59f562bb77bc3fe60b6144ca"}, - {file = "Pillow-10.0.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:349930d6e9c685c089284b013478d6f76e3a534e36ddfa912cde493f235372f3"}, - {file = "Pillow-10.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3a684105f7c32488f7153905a4e3015a3b6c7182e106fe3c37fbb5ef3e6994c3"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4f69b3700201b80bb82c3a97d5e9254084f6dd5fb5b16fc1a7b974260f89f43"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f07ea8d2f827d7d2a49ecf1639ec02d75ffd1b88dcc5b3a61bbb37a8759ad8d"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:040586f7d37b34547153fa383f7f9aed68b738992380ac911447bb78f2abe530"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:f88a0b92277de8e3ca715a0d79d68dc82807457dae3ab8699c758f07c20b3c51"}, - {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c7cf14a27b0d6adfaebb3ae4153f1e516df54e47e42dcc073d7b3d76111a8d86"}, - {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3400aae60685b06bb96f99a21e1ada7bc7a413d5f49bce739828ecd9391bb8f7"}, - {file = "Pillow-10.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbc02381779d412145331789b40cc7b11fdf449e5d94f6bc0b080db0a56ea3f0"}, - {file = "Pillow-10.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9211e7ad69d7c9401cfc0e23d49b69ca65ddd898976d660a2fa5904e3d7a9baa"}, - {file = "Pillow-10.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:faaf07ea35355b01a35cb442dd950d8f1bb5b040a7787791a535de13db15ed90"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9f72a021fbb792ce98306ffb0c348b3c9cb967dce0f12a49aa4c3d3fdefa967"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f7c16705f44e0504a3a2a14197c1f0b32a95731d251777dcb060aa83022cb2d"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:76edb0a1fa2b4745fb0c99fb9fb98f8b180a1bbceb8be49b087e0b21867e77d3"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:368ab3dfb5f49e312231b6f27b8820c823652b7cd29cfbd34090565a015e99ba"}, - {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:608bfdee0d57cf297d32bcbb3c728dc1da0907519d1784962c5f0c68bb93e5a3"}, - {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5c6e3df6bdd396749bafd45314871b3d0af81ff935b2d188385e970052091017"}, - {file = "Pillow-10.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:7be600823e4c8631b74e4a0d38384c73f680e6105a7d3c6824fcf226c178c7e6"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:92be919bbc9f7d09f7ae343c38f5bb21c973d2576c1d45600fce4b74bafa7ac0"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8182b523b2289f7c415f589118228d30ac8c355baa2f3194ced084dac2dbba"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:38250a349b6b390ee6047a62c086d3817ac69022c127f8a5dc058c31ccef17f3"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:88af2003543cc40c80f6fca01411892ec52b11021b3dc22ec3bc9d5afd1c5334"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c189af0545965fa8d3b9613cfdb0cd37f9d71349e0f7750e1fd704648d475ed2"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7b031a6fc11365970e6a5686d7ba8c63e4c1cf1ea143811acbb524295eabed"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db24668940f82321e746773a4bc617bfac06ec831e5c88b643f91f122a785684"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:efe8c0681042536e0d06c11f48cebe759707c9e9abf880ee213541c5b46c5bf3"}, - {file = "Pillow-10.0.0.tar.gz", hash = "sha256:9c82b5b3e043c7af0d95792d0d20ccf68f61a1fec6b3530e718b688422727396"}, -] - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] -tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "platformdirs" -version = "3.10.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.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, - {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, -] - -[package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] - -[[package]] -name = "pluggy" -version = "1.3.0" -description = "plugin and hook calling mechanisms for python" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "pre-commit" -version = "3.4.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pre_commit-3.4.0-py2.py3-none-any.whl", hash = "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945"}, - {file = "pre_commit-3.4.0.tar.gz", hash = "sha256:6bbd5129a64cad4c0dfaeeb12cd8f7ea7e15b77028d985341478c8af3c759522"}, -] - -[package.dependencies] -cfgv = ">=2.0.0" -identify = ">=1.0.0" -nodeenv = ">=0.11.1" -pyyaml = ">=5.1" -virtualenv = ">=20.10.0" - -[[package]] -name = "prometheus-client" -version = "0.17.1" -description = "Python client for the Prometheus monitoring system." -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "prometheus_client-0.17.1-py3-none-any.whl", hash = "sha256:e537f37160f6807b8202a6fc4764cdd19bac5480ddd3e0d463c3002b34462101"}, - {file = "prometheus_client-0.17.1.tar.gz", hash = "sha256:21e674f39831ae3f8acde238afd9a27a37d0d2fb5a28ea094f0ce25d2cbf2091"}, -] - -[package.extras] -twisted = ["twisted"] - -[[package]] -name = "prompt-toolkit" -version = "3.0.39" -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.39-py3-none-any.whl", hash = "sha256:9dffbe1d8acf91e3de75f3b544e4842382fc06c6babe903ac9acb74dc6e08d88"}, - {file = "prompt_toolkit-3.0.39.tar.gz", hash = "sha256:04505ade687dc26dc4284b1ad19a83be2f2afe83e7a828ace0c72f3a1df72aac"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "protobuf" -version = "4.24.3" -description = "" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "protobuf-4.24.3-cp310-abi3-win32.whl", hash = "sha256:20651f11b6adc70c0f29efbe8f4a94a74caf61b6200472a9aea6e19898f9fcf4"}, - {file = "protobuf-4.24.3-cp310-abi3-win_amd64.whl", hash = "sha256:3d42e9e4796a811478c783ef63dc85b5a104b44aaaca85d4864d5b886e4b05e3"}, - {file = "protobuf-4.24.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:6e514e8af0045be2b56e56ae1bb14f43ce7ffa0f68b1c793670ccbe2c4fc7d2b"}, - {file = "protobuf-4.24.3-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:ba53c2f04798a326774f0e53b9c759eaef4f6a568ea7072ec6629851c8435959"}, - {file = "protobuf-4.24.3-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:f6ccbcf027761a2978c1406070c3788f6de4a4b2cc20800cc03d52df716ad675"}, - {file = "protobuf-4.24.3-cp37-cp37m-win32.whl", hash = "sha256:1b182c7181a2891e8f7f3a1b5242e4ec54d1f42582485a896e4de81aa17540c2"}, - {file = "protobuf-4.24.3-cp37-cp37m-win_amd64.whl", hash = "sha256:b0271a701e6782880d65a308ba42bc43874dabd1a0a0f41f72d2dac3b57f8e76"}, - {file = "protobuf-4.24.3-cp38-cp38-win32.whl", hash = "sha256:e29d79c913f17a60cf17c626f1041e5288e9885c8579832580209de8b75f2a52"}, - {file = "protobuf-4.24.3-cp38-cp38-win_amd64.whl", hash = "sha256:067f750169bc644da2e1ef18c785e85071b7c296f14ac53e0900e605da588719"}, - {file = "protobuf-4.24.3-cp39-cp39-win32.whl", hash = "sha256:2da777d34b4f4f7613cdf85c70eb9a90b1fbef9d36ae4a0ccfe014b0b07906f1"}, - {file = "protobuf-4.24.3-cp39-cp39-win_amd64.whl", hash = "sha256:f631bb982c5478e0c1c70eab383af74a84be66945ebf5dd6b06fc90079668d0b"}, - {file = "protobuf-4.24.3-py3-none-any.whl", hash = "sha256:f6f8dc65625dadaad0c8545319c2e2f0424fede988368893ca3844261342c11a"}, - {file = "protobuf-4.24.3.tar.gz", hash = "sha256:12e9ad2ec079b833176d2921be2cb24281fa591f0b119b208b788adc48c2561d"}, -] - -[[package]] -name = "psutil" -version = "5.9.5" -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.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:be8929ce4313f9f8146caad4272f6abb8bf99fc6cf59344a3167ecd74f4f203f"}, - {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ab8ed1a1d77c95453db1ae00a3f9c50227ebd955437bcf2a574ba8adbf6a74d5"}, - {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4aef137f3345082a3d3232187aeb4ac4ef959ba3d7c10c33dd73763fbc063da4"}, - {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ea8518d152174e1249c4f2a1c89e3e6065941df2fa13a1ab45327716a23c2b48"}, - {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:acf2aef9391710afded549ff602b5887d7a2349831ae4c26be7c807c0a39fac4"}, - {file = "psutil-5.9.5-cp27-none-win32.whl", hash = "sha256:5b9b8cb93f507e8dbaf22af6a2fd0ccbe8244bf30b1baad6b3954e935157ae3f"}, - {file = "psutil-5.9.5-cp27-none-win_amd64.whl", hash = "sha256:8c5f7c5a052d1d567db4ddd231a9d27a74e8e4a9c3f44b1032762bd7b9fdcd42"}, - {file = "psutil-5.9.5-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3c6f686f4225553615612f6d9bc21f1c0e305f75d7d8454f9b46e901778e7217"}, - {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a7dd9997128a0d928ed4fb2c2d57e5102bb6089027939f3b722f3a210f9a8da"}, - {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89518112647f1276b03ca97b65cc7f64ca587b1eb0278383017c2a0dcc26cbe4"}, - {file = "psutil-5.9.5-cp36-abi3-win32.whl", hash = "sha256:104a5cc0e31baa2bcf67900be36acde157756b9c44017b86b2c049f11957887d"}, - {file = "psutil-5.9.5-cp36-abi3-win_amd64.whl", hash = "sha256:b258c0c1c9d145a1d5ceffab1134441c4c5113b2417fafff7315a917a026c3c9"}, - {file = "psutil-5.9.5-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:c607bb3b57dc779d55e1554846352b4e358c10fff3abf3514a7a6601beebdb30"}, - {file = "psutil-5.9.5.tar.gz", hash = "sha256:5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c"}, -] - -[package.extras] -test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] - -[[package]] -name = "ptyprocess" -version = "0.7.0" -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" -version = "0.2.2" -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"] - -[[package]] -name = "pyasn1" -version = "0.5.0" -description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" -category = "main" -optional = true -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" -files = [ - {file = "pyasn1-0.5.0-py2.py3-none-any.whl", hash = "sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57"}, - {file = "pyasn1-0.5.0.tar.gz", hash = "sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde"}, -] - -[[package]] -name = "pyasn1-modules" -version = "0.3.0" -description = "A collection of ASN.1-based protocols modules" -category = "main" -optional = true -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" -files = [ - {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, - {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"}, -] - -[package.dependencies] -pyasn1 = ">=0.4.6,<0.6.0" - -[[package]] -name = "pycparser" -version = "2.21" -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 = "pydruid" -version = "0.999.0.dev0" -description = "A Python connector for Druid." -category = "main" -optional = true -python-versions = "*" -files = [] -develop = false - -[package.dependencies] -requests = "*" - -[package.extras] -async = ["tornado"] -cli = ["prompt_toolkit (>=2.0.0)", "pygments", "tabulate"] -pandas = ["pandas"] -sqlalchemy = ["sqlalchemy"] - -[package.source] -type = "git" -url = "git@github.com:cosmic-chichu/pydruid.git" -reference = "master" -resolved_reference = "0ce16bcfd2dd666ff5294469cc47263acafca1d7" - -[[package]] -name = "pygments" -version = "2.16.1" -description = "Pygments is a syntax highlighting package written in Python." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, - {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, -] - -[package.extras] -plugins = ["importlib-metadata"] - -[[package]] -name = "pyjwt" -version = "2.8.0" -description = "JSON Web Token implementation in Python" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "PyJWT-2.8.0-py3-none-any.whl", hash = "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320"}, - {file = "PyJWT-2.8.0.tar.gz", hash = "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de"}, -] - -[package.extras] -crypto = ["cryptography (>=3.4.0)"] -dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] -docs = ["sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] -tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] - -[[package]] -name = "pympler" -version = "1.0.1" -description = "A development tool to measure, monitor and analyze the memory behavior of Python objects." -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "Pympler-1.0.1-py3-none-any.whl", hash = "sha256:d260dda9ae781e1eab6ea15bacb84015849833ba5555f141d2d9b7b7473b307d"}, - {file = "Pympler-1.0.1.tar.gz", hash = "sha256:993f1a3599ca3f4fcd7160c7545ad06310c9e12f70174ae7ae8d4e25f6c5d3fa"}, -] - -[[package]] -name = "pynumaflow" -version = "0.4.2" -description = "Provides the interfaces of writing Python User Defined Functions and Sinks for NumaFlow." -category = "main" -optional = true -python-versions = ">=3.9,<3.12" -files = [ - {file = "pynumaflow-0.4.2-py3-none-any.whl", hash = "sha256:354e44bff87578bb43df43e70d326d82be1f75280dfdaad6f8ae3d46608e886b"}, - {file = "pynumaflow-0.4.2.tar.gz", hash = "sha256:2bd4710a8467ce7f715eb3263405af03bc5b50f27ecf109fe0e9650a2646d789"}, -] - -[package.dependencies] -aiorun = ">=2022.11.1,<2023.0.0" -google-api-core = ">=2.11.0,<3.0.0" -google-cloud = ">=0.34.0,<0.35.0" -grpcio = ">=1.48.1,<2.0.0" -grpcio-tools = ">=1.48.1,<2.0.0" -protobuf = ">=3.20,<5.0" - -[[package]] -name = "pyparsing" -version = "3.0.9" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -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"] - -[[package]] -name = "pytest" -version = "7.4.2" -description = "pytest: simple powerful testing with Python" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, - {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} - -[package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-cov" -version = "4.1.0" -description = "Pytest plugin for measuring coverage." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, - {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, -] - -[package.dependencies] -coverage = {version = ">=5.2.1", extras = ["toml"]} -pytest = ">=4.6" - -[package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] - -[[package]] -name = "python-dateutil" -version = "2.8.2" -description = "Extensions to the standard Python datetime module" -category = "main" -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" - -[[package]] -name = "python-json-logger" -version = "2.0.7" -description = "A python library adding a json log formatter" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, - {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, -] - -[[package]] -name = "pytorch-lightning" -version = "2.0.8" -description = "PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytorch-lightning-2.0.8.tar.gz", hash = "sha256:fb7e8fbe473158b2c1666b6b31fb996c8aa2c3f5e8e2a54a3f50a7b5b2d00a20"}, - {file = "pytorch_lightning-2.0.8-py3-none-any.whl", hash = "sha256:718d11f22551d95ef38614b4727433553c95ea2b50cf843938fb13baf34325a6"}, -] - -[package.dependencies] -fsspec = {version = ">2021.06.0", extras = ["http"]} -lightning-utilities = ">=0.7.0" -numpy = ">=1.17.2" -packaging = ">=17.1" -PyYAML = ">=5.4" -torch = ">=1.11.0" -torchmetrics = ">=0.7.0" -tqdm = ">=4.57.0" -typing-extensions = ">=4.0.0" - -[package.extras] -all = ["deepspeed (>=0.8.2)", "gym[classic-control] (>=0.17.0)", "hydra-core (>=1.0.5)", "ipython[all] (<8.14.1)", "jsonargparse[signatures] (>=4.18.0,<4.23.0)", "lightning-utilities (>=0.7.0)", "matplotlib (>3.1)", "omegaconf (>=2.0.5)", "rich (>=12.3.0)", "tensorboardX (>=2.2)", "torchmetrics (>=0.10.0)", "torchvision (>=0.12.0)"] -deepspeed = ["deepspeed (>=0.8.2)"] -dev = ["cloudpickle (>=1.3)", "coverage (==7.3.0)", "deepspeed (>=0.8.2)", "fastapi (<0.100.0)", "gym[classic-control] (>=0.17.0)", "hydra-core (>=1.0.5)", "ipython[all] (<8.14.1)", "jsonargparse[signatures] (>=4.18.0,<4.23.0)", "lightning-utilities (>=0.7.0)", "matplotlib (>3.1)", "omegaconf (>=2.0.5)", "onnx (<1.15.0)", "onnxruntime (<1.16.0)", "pandas (>1.0)", "protobuf (<=3.20.1)", "psutil (<5.9.6)", "pytest (==7.4.0)", "pytest-cov (==4.1.0)", "pytest-forked (==1.4.0)", "pytest-rerunfailures (==10.3)", "rich (>=12.3.0)", "scikit-learn (>0.22.1)", "tensorboard (>=2.9.1)", "tensorboardX (>=2.2)", "torchmetrics (>=0.10.0)", "torchvision (>=0.12.0)", "uvicorn (<0.23.3)"] -examples = ["gym[classic-control] (>=0.17.0)", "ipython[all] (<8.14.1)", "lightning-utilities (>=0.7.0)", "torchmetrics (>=0.10.0)", "torchvision (>=0.12.0)"] -extra = ["hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.18.0,<4.23.0)", "matplotlib (>3.1)", "omegaconf (>=2.0.5)", "rich (>=12.3.0)", "tensorboardX (>=2.2)"] -strategies = ["deepspeed (>=0.8.2)"] -test = ["cloudpickle (>=1.3)", "coverage (==7.3.0)", "fastapi (<0.100.0)", "onnx (<1.15.0)", "onnxruntime (<1.16.0)", "pandas (>1.0)", "protobuf (<=3.20.1)", "psutil (<5.9.6)", "pytest (==7.4.0)", "pytest-cov (==4.1.0)", "pytest-forked (==1.4.0)", "pytest-rerunfailures (==10.3)", "scikit-learn (>0.22.1)", "tensorboard (>=2.9.1)", "uvicorn (<0.23.3)"] - -[[package]] -name = "pytz" -version = "2023.3.post1" -description = "World timezone definitions, modern and historical" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, - {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, -] - -[[package]] -name = "pywin32" -version = "306" -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 = "pywinpty" -version = "2.0.11" -description = "Pseudo terminal support for Windows from Python." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pywinpty-2.0.11-cp310-none-win_amd64.whl", hash = "sha256:452f10ac9ff8ab9151aa8cea9e491a9612a12250b1899278c6a56bc184afb47f"}, - {file = "pywinpty-2.0.11-cp311-none-win_amd64.whl", hash = "sha256:6701867d42aec1239bc0fedf49a336570eb60eb886e81763db77ea2b6c533cc3"}, - {file = "pywinpty-2.0.11-cp38-none-win_amd64.whl", hash = "sha256:0ffd287751ad871141dc9724de70ea21f7fc2ff1af50861e0d232cf70739d8c4"}, - {file = "pywinpty-2.0.11-cp39-none-win_amd64.whl", hash = "sha256:e4e7f023c28ca7aa8e1313e53ba80a4d10171fe27857b7e02f99882dfe3e8638"}, - {file = "pywinpty-2.0.11.tar.gz", hash = "sha256:e244cffe29a894876e2cd251306efd0d8d64abd5ada0a46150a4a71c0b9ad5c5"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.1" -description = "YAML parser and emitter for Python" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, -] - -[[package]] -name = "pyzmq" -version = "25.1.1" -description = "Python bindings for 0MQ" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pyzmq-25.1.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:381469297409c5adf9a0e884c5eb5186ed33137badcbbb0560b86e910a2f1e76"}, - {file = "pyzmq-25.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:955215ed0604dac5b01907424dfa28b40f2b2292d6493445dd34d0dfa72586a8"}, - {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:985bbb1316192b98f32e25e7b9958088431d853ac63aca1d2c236f40afb17c83"}, - {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:afea96f64efa98df4da6958bae37f1cbea7932c35878b185e5982821bc883369"}, - {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76705c9325d72a81155bb6ab48d4312e0032bf045fb0754889133200f7a0d849"}, - {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:77a41c26205d2353a4c94d02be51d6cbdf63c06fbc1295ea57dad7e2d3381b71"}, - {file = "pyzmq-25.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:12720a53e61c3b99d87262294e2b375c915fea93c31fc2336898c26d7aed34cd"}, - {file = "pyzmq-25.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:57459b68e5cd85b0be8184382cefd91959cafe79ae019e6b1ae6e2ba8a12cda7"}, - {file = "pyzmq-25.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:292fe3fc5ad4a75bc8df0dfaee7d0babe8b1f4ceb596437213821f761b4589f9"}, - {file = "pyzmq-25.1.1-cp310-cp310-win32.whl", hash = "sha256:35b5ab8c28978fbbb86ea54958cd89f5176ce747c1fb3d87356cf698048a7790"}, - {file = "pyzmq-25.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:11baebdd5fc5b475d484195e49bae2dc64b94a5208f7c89954e9e354fc609d8f"}, - {file = "pyzmq-25.1.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:d20a0ddb3e989e8807d83225a27e5c2eb2260eaa851532086e9e0fa0d5287d83"}, - {file = "pyzmq-25.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e1c1be77bc5fb77d923850f82e55a928f8638f64a61f00ff18a67c7404faf008"}, - {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d89528b4943d27029a2818f847c10c2cecc79fa9590f3cb1860459a5be7933eb"}, - {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:90f26dc6d5f241ba358bef79be9ce06de58d477ca8485e3291675436d3827cf8"}, - {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2b92812bd214018e50b6380ea3ac0c8bb01ac07fcc14c5f86a5bb25e74026e9"}, - {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:2f957ce63d13c28730f7fd6b72333814221c84ca2421298f66e5143f81c9f91f"}, - {file = "pyzmq-25.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:047a640f5c9c6ade7b1cc6680a0e28c9dd5a0825135acbd3569cc96ea00b2505"}, - {file = "pyzmq-25.1.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7f7e58effd14b641c5e4dec8c7dab02fb67a13df90329e61c869b9cc607ef752"}, - {file = "pyzmq-25.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c2910967e6ab16bf6fbeb1f771c89a7050947221ae12a5b0b60f3bca2ee19bca"}, - {file = "pyzmq-25.1.1-cp311-cp311-win32.whl", hash = "sha256:76c1c8efb3ca3a1818b837aea423ff8a07bbf7aafe9f2f6582b61a0458b1a329"}, - {file = "pyzmq-25.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:44e58a0554b21fc662f2712814a746635ed668d0fbc98b7cb9d74cb798d202e6"}, - {file = "pyzmq-25.1.1-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:e1ffa1c924e8c72778b9ccd386a7067cddf626884fd8277f503c48bb5f51c762"}, - {file = "pyzmq-25.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1af379b33ef33757224da93e9da62e6471cf4a66d10078cf32bae8127d3d0d4a"}, - {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cff084c6933680d1f8b2f3b4ff5bbb88538a4aac00d199ac13f49d0698727ecb"}, - {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2400a94f7dd9cb20cd012951a0cbf8249e3d554c63a9c0cdfd5cbb6c01d2dec"}, - {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d81f1ddae3858b8299d1da72dd7d19dd36aab654c19671aa8a7e7fb02f6638a"}, - {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:255ca2b219f9e5a3a9ef3081512e1358bd4760ce77828e1028b818ff5610b87b"}, - {file = "pyzmq-25.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a882ac0a351288dd18ecae3326b8a49d10c61a68b01419f3a0b9a306190baf69"}, - {file = "pyzmq-25.1.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:724c292bb26365659fc434e9567b3f1adbdb5e8d640c936ed901f49e03e5d32e"}, - {file = "pyzmq-25.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ca1ed0bb2d850aa8471387882247c68f1e62a4af0ce9c8a1dbe0d2bf69e41fb"}, - {file = "pyzmq-25.1.1-cp312-cp312-win32.whl", hash = "sha256:b3451108ab861040754fa5208bca4a5496c65875710f76789a9ad27c801a0075"}, - {file = "pyzmq-25.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:eadbefd5e92ef8a345f0525b5cfd01cf4e4cc651a2cffb8f23c0dd184975d787"}, - {file = "pyzmq-25.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:db0b2af416ba735c6304c47f75d348f498b92952f5e3e8bff449336d2728795d"}, - {file = "pyzmq-25.1.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c133e93b405eb0d36fa430c94185bdd13c36204a8635470cccc200723c13bb"}, - {file = "pyzmq-25.1.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:273bc3959bcbff3f48606b28229b4721716598d76b5aaea2b4a9d0ab454ec062"}, - {file = "pyzmq-25.1.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cbc8df5c6a88ba5ae385d8930da02201165408dde8d8322072e3e5ddd4f68e22"}, - {file = "pyzmq-25.1.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:18d43df3f2302d836f2a56f17e5663e398416e9dd74b205b179065e61f1a6edf"}, - {file = "pyzmq-25.1.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:73461eed88a88c866656e08f89299720a38cb4e9d34ae6bf5df6f71102570f2e"}, - {file = "pyzmq-25.1.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:34c850ce7976d19ebe7b9d4b9bb8c9dfc7aac336c0958e2651b88cbd46682123"}, - {file = "pyzmq-25.1.1-cp36-cp36m-win32.whl", hash = "sha256:d2045d6d9439a0078f2a34b57c7b18c4a6aef0bee37f22e4ec9f32456c852c71"}, - {file = "pyzmq-25.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:458dea649f2f02a0b244ae6aef8dc29325a2810aa26b07af8374dc2a9faf57e3"}, - {file = "pyzmq-25.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7cff25c5b315e63b07a36f0c2bab32c58eafbe57d0dce61b614ef4c76058c115"}, - {file = "pyzmq-25.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1579413ae492b05de5a6174574f8c44c2b9b122a42015c5292afa4be2507f28"}, - {file = "pyzmq-25.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3d0a409d3b28607cc427aa5c30a6f1e4452cc44e311f843e05edb28ab5e36da0"}, - {file = "pyzmq-25.1.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:21eb4e609a154a57c520e3d5bfa0d97e49b6872ea057b7c85257b11e78068222"}, - {file = "pyzmq-25.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:034239843541ef7a1aee0c7b2cb7f6aafffb005ede965ae9cbd49d5ff4ff73cf"}, - {file = "pyzmq-25.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f8115e303280ba09f3898194791a153862cbf9eef722ad8f7f741987ee2a97c7"}, - {file = "pyzmq-25.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1a5d26fe8f32f137e784f768143728438877d69a586ddeaad898558dc971a5ae"}, - {file = "pyzmq-25.1.1-cp37-cp37m-win32.whl", hash = "sha256:f32260e556a983bc5c7ed588d04c942c9a8f9c2e99213fec11a031e316874c7e"}, - {file = "pyzmq-25.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:abf34e43c531bbb510ae7e8f5b2b1f2a8ab93219510e2b287a944432fad135f3"}, - {file = "pyzmq-25.1.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:87e34f31ca8f168c56d6fbf99692cc8d3b445abb5bfd08c229ae992d7547a92a"}, - {file = "pyzmq-25.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c9c6c9b2c2f80747a98f34ef491c4d7b1a8d4853937bb1492774992a120f475d"}, - {file = "pyzmq-25.1.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5619f3f5a4db5dbb572b095ea3cb5cc035335159d9da950830c9c4db2fbb6995"}, - {file = "pyzmq-25.1.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5a34d2395073ef862b4032343cf0c32a712f3ab49d7ec4f42c9661e0294d106f"}, - {file = "pyzmq-25.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25f0e6b78220aba09815cd1f3a32b9c7cb3e02cb846d1cfc526b6595f6046618"}, - {file = "pyzmq-25.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3669cf8ee3520c2f13b2e0351c41fea919852b220988d2049249db10046a7afb"}, - {file = "pyzmq-25.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2d163a18819277e49911f7461567bda923461c50b19d169a062536fffe7cd9d2"}, - {file = "pyzmq-25.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:df27ffddff4190667d40de7beba4a950b5ce78fe28a7dcc41d6f8a700a80a3c0"}, - {file = "pyzmq-25.1.1-cp38-cp38-win32.whl", hash = "sha256:a382372898a07479bd34bda781008e4a954ed8750f17891e794521c3e21c2e1c"}, - {file = "pyzmq-25.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:52533489f28d62eb1258a965f2aba28a82aa747202c8fa5a1c7a43b5db0e85c1"}, - {file = "pyzmq-25.1.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:03b3f49b57264909aacd0741892f2aecf2f51fb053e7d8ac6767f6c700832f45"}, - {file = "pyzmq-25.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:330f9e188d0d89080cde66dc7470f57d1926ff2fb5576227f14d5be7ab30b9fa"}, - {file = "pyzmq-25.1.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2ca57a5be0389f2a65e6d3bb2962a971688cbdd30b4c0bd188c99e39c234f414"}, - {file = "pyzmq-25.1.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d457aed310f2670f59cc5b57dcfced452aeeed77f9da2b9763616bd57e4dbaae"}, - {file = "pyzmq-25.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c56d748ea50215abef7030c72b60dd723ed5b5c7e65e7bc2504e77843631c1a6"}, - {file = "pyzmq-25.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8f03d3f0d01cb5a018debeb412441996a517b11c5c17ab2001aa0597c6d6882c"}, - {file = "pyzmq-25.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:820c4a08195a681252f46926de10e29b6bbf3e17b30037bd4250d72dd3ddaab8"}, - {file = "pyzmq-25.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:17ef5f01d25b67ca8f98120d5fa1d21efe9611604e8eb03a5147360f517dd1e2"}, - {file = "pyzmq-25.1.1-cp39-cp39-win32.whl", hash = "sha256:04ccbed567171579ec2cebb9c8a3e30801723c575601f9a990ab25bcac6b51e2"}, - {file = "pyzmq-25.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:e61f091c3ba0c3578411ef505992d356a812fb200643eab27f4f70eed34a29ef"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ade6d25bb29c4555d718ac6d1443a7386595528c33d6b133b258f65f963bb0f6"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0c95ddd4f6e9fca4e9e3afaa4f9df8552f0ba5d1004e89ef0a68e1f1f9807c7"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48e466162a24daf86f6b5ca72444d2bf39a5e58da5f96370078be67c67adc978"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abc719161780932c4e11aaebb203be3d6acc6b38d2f26c0f523b5b59d2fc1996"}, - {file = "pyzmq-25.1.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1ccf825981640b8c34ae54231b7ed00271822ea1c6d8ba1090ebd4943759abf5"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c2f20ce161ebdb0091a10c9ca0372e023ce24980d0e1f810f519da6f79c60800"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:deee9ca4727f53464daf089536e68b13e6104e84a37820a88b0a057b97bba2d2"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:aa8d6cdc8b8aa19ceb319aaa2b660cdaccc533ec477eeb1309e2a291eaacc43a"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:019e59ef5c5256a2c7378f2fb8560fc2a9ff1d315755204295b2eab96b254d0a"}, - {file = "pyzmq-25.1.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:b9af3757495c1ee3b5c4e945c1df7be95562277c6e5bccc20a39aec50f826cd0"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:548d6482dc8aadbe7e79d1b5806585c8120bafa1ef841167bc9090522b610fa6"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:057e824b2aae50accc0f9a0570998adc021b372478a921506fddd6c02e60308e"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2243700cc5548cff20963f0ca92d3e5e436394375ab8a354bbea2b12911b20b0"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79986f3b4af059777111409ee517da24a529bdbd46da578b33f25580adcff728"}, - {file = "pyzmq-25.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:11d58723d44d6ed4dd677c5615b2ffb19d5c426636345567d6af82be4dff8a55"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:49d238cf4b69652257db66d0c623cd3e09b5d2e9576b56bc067a396133a00d4a"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fedbdc753827cf014c01dbbee9c3be17e5a208dcd1bf8641ce2cd29580d1f0d4"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc16ac425cc927d0a57d242589f87ee093884ea4804c05a13834d07c20db203c"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11c1d2aed9079c6b0c9550a7257a836b4a637feb334904610f06d70eb44c56d2"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e8a701123029cc240cea61dd2d16ad57cab4691804143ce80ecd9286b464d180"}, - {file = "pyzmq-25.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:61706a6b6c24bdece85ff177fec393545a3191eeda35b07aaa1458a027ad1304"}, - {file = "pyzmq-25.1.1.tar.gz", hash = "sha256:259c22485b71abacdfa8bf79720cd7bcf4b9d128b30ea554f01ae71fdbfdaa23"}, -] - -[package.dependencies] -cffi = {version = "*", markers = "implementation_name == \"pypy\""} - -[[package]] -name = "qtconsole" -version = "5.4.4" -description = "Jupyter Qt console" -category = "dev" -optional = false -python-versions = ">= 3.7" -files = [ - {file = "qtconsole-5.4.4-py3-none-any.whl", hash = "sha256:a3b69b868e041c2c698bdc75b0602f42e130ffb256d6efa48f9aa756c97672aa"}, - {file = "qtconsole-5.4.4.tar.gz", hash = "sha256:b7ffb53d74f23cee29f4cdb55dd6fabc8ec312d94f3c46ba38e1dde458693dfb"}, -] - -[package.dependencies] -ipykernel = ">=4.1" -ipython-genutils = "*" -jupyter-client = ">=4.1" -jupyter-core = "*" -packaging = "*" -pygments = "*" -pyzmq = ">=17.1" -qtpy = ">=2.4.0" -traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" - -[package.extras] -doc = ["Sphinx (>=1.3)"] -test = ["flaky", "pytest", "pytest-qt"] - -[[package]] -name = "qtpy" -version = "2.4.0" -description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "QtPy-2.4.0-py3-none-any.whl", hash = "sha256:4d4f045a41e09ac9fa57fcb47ef05781aa5af294a0a646acc1b729d14225e741"}, - {file = "QtPy-2.4.0.tar.gz", hash = "sha256:db2d508167aa6106781565c8da5c6f1487debacba33519cedc35fa8997d424d4"}, -] - -[package.dependencies] -packaging = "*" - -[package.extras] -test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] - -[[package]] -name = "redis" -version = "5.0.0" -description = "Python client for Redis database and key-value store" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "redis-5.0.0-py3-none-any.whl", hash = "sha256:06570d0b2d84d46c21defc550afbaada381af82f5b83e5b3777600e05d8e2ed0"}, - {file = "redis-5.0.0.tar.gz", hash = "sha256:5cea6c0d335c9a7332a460ed8729ceabb4d0c489c7285b0a86dbbf8a017bd120"}, -] - -[package.dependencies] -async-timeout = {version = ">=4.0.2", markers = "python_full_version <= \"3.11.2\""} -hiredis = {version = ">=1.0.0", optional = true, markers = "extra == \"hiredis\""} - -[package.extras] -hiredis = ["hiredis (>=1.0.0)"] -ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)"] - -[[package]] -name = "referencing" -version = "0.30.2" -description = "JSON Referencing + Python" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "referencing-0.30.2-py3-none-any.whl", hash = "sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf"}, - {file = "referencing-0.30.2.tar.gz", hash = "sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0"}, -] - -[package.dependencies] -attrs = ">=22.2.0" -rpds-py = ">=0.7.0" - -[[package]] -name = "requests" -version = "2.31.0" -description = "Python HTTP for Humans." -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "responses" -version = "0.23.3" -description = "A utility library for mocking out the `requests` Python library." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "responses-0.23.3-py3-none-any.whl", hash = "sha256:e6fbcf5d82172fecc0aa1860fd91e58cbfd96cee5e96da5b63fa6eb3caa10dd3"}, - {file = "responses-0.23.3.tar.gz", hash = "sha256:205029e1cb334c21cb4ec64fc7599be48b859a0fd381a42443cdd600bfe8b16a"}, -] - -[package.dependencies] -pyyaml = "*" -requests = ">=2.30.0,<3.0" -types-PyYAML = "*" -urllib3 = ">=1.25.10,<3.0" - -[package.extras] -tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-httpserver", "tomli", "tomli-w", "types-requests"] - -[[package]] -name = "rfc3339-validator" -version = "0.1.4" -description = "A pure python RFC3339 validator" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, - {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, -] - -[package.dependencies] -six = "*" - -[[package]] -name = "rfc3986-validator" -version = "0.1.1" -description = "Pure python rfc3986 validator" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, - {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, -] - -[[package]] -name = "rpds-py" -version = "0.10.2" -description = "Python bindings to Rust's persistent data structures (rpds)" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "rpds_py-0.10.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:9f00d54b18dd837f1431d66b076737deb7c29ce3ebb8412ceaf44d5e1954ac0c"}, - {file = "rpds_py-0.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f4d561f4728f825e3b793a53064b606ca0b6fc264f67d09e54af452aafc5b82"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:013d6c784150d10236a74b4094a79d96a256b814457e388fc5a4ba9efe24c402"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd1142d22fdb183a0fff66d79134bf644401437fed874f81066d314c67ee193c"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a0536ed2b9297c75104e1a3da330828ba1b2639fa53b38d396f98bf7e3c68df"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:41bd430b7b63aa802c02964e331ac0b177148fef5f807d2c90d05ce71a52b4d4"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e8474f7233fe1949ce4e03bea698a600c2d5d6b51dab6d6e6336dbe69acf23e"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d9d7efaad48b859053b90dedd69bc92f2095084251e732e4c57ac9726bcb1e64"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5612b0b1de8d5114520094bd5fc3d04eb8af6f3e10d48ef05b7c8e77c1fd9545"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5d5eaf988951f6ecb6854ca3300b87123599c711183c83da7ce39717a7cbdbce"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75c8766734ac0053e1d683567e65e85306c4ec62631b0591caeb287ac8f72e08"}, - {file = "rpds_py-0.10.2-cp310-none-win32.whl", hash = "sha256:8de9b88f0cbac73cfed34220d13c57849e62a7099a714b929142425e926d223a"}, - {file = "rpds_py-0.10.2-cp310-none-win_amd64.whl", hash = "sha256:2275f1a022e2383da5d2d101fe11ccdcbae799148c4b83260a4b9309fa3e1fc2"}, - {file = "rpds_py-0.10.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dd91a7d7a9ce7f4983097c91ce211f3e5569cc21caa16f2692298a07e396f82b"}, - {file = "rpds_py-0.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e82b4a70cc67094f3f3fd77579702f48fcf1de7bdc67d79b8f1e24d089a6162c"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e281b71922208e00886e4b7ffbfcf27874486364f177418ab676f102130e7ec9"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3eb1a0d2b6d232d1bcdfc3fcc5f7b004ab3fbd9203011a3172f051d4527c0b6"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02945ae38fd78efc40900f509890de84cfd5ffe2cd2939eeb3a8800dc68b87cb"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccfb77f6dc8abffa6f1c7e3975ed9070a41ce5fcc11154d2bead8c1baa940f09"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af52078719209bef33e38131486fd784832dd8d1dc9b85f00a44f6e7437dd021"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56ba7c1100ed079527f2b995bf5486a2e557e6d5b733c52e8947476338815b69"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:899b03a3be785a7e1ff84b237da71f0efa2f021512f147dd34ffdf7aa82cb678"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:22e6de18f00583f06928cc8d0993104ecc62f7c6da6478db2255de89a30e45d1"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:edd74b760a6bb950397e7a7bd2f38e6700f6525062650b1d77c6d851b82f02c2"}, - {file = "rpds_py-0.10.2-cp311-none-win32.whl", hash = "sha256:18909093944727e068ebfc92e2e6ed1c4fa44135507c1c0555213ce211c53214"}, - {file = "rpds_py-0.10.2-cp311-none-win_amd64.whl", hash = "sha256:9568764e72d85cf7855ca78b48e07ed1be47bf230e2cea8dabda3c95f660b0ff"}, - {file = "rpds_py-0.10.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:0fc625059b83695fbb4fc8b7a8b66fa94ff9c7b78c84fb9986cd53ff88a28d80"}, - {file = "rpds_py-0.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c86231c66e4f422e7c13ea6200bb4048b3016c8bfd11b4fd0dabd04d2c8e3501"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56777c57246e048908b550af9b81b0ec9cf804fd47cb7502ccd93238bd6025c2"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a4cb372e22e9c879bd9a9cc9b20b7c1fbf30a605ac953da45ecec05d8a6e1c77"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa3b3a43dabc4cc57a7800f526cbe03f71c69121e21b863fdf497b59b462b163"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d222086daa55421d599609b32d0ebe544e57654c4a0a1490c54a7ebaa67561"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:529aab727f54a937085184e7436e1d0e19975cf10115eda12d37a683e4ee5342"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43e9b1531d6a898bdf086acb75c41265c7ec4331267d7619148d407efc72bd24"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c2772bb95062e3f9774140205cd65d8997e39620715486cf5f843cf4ad8f744c"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ba1b28e44f611f3f2b436bd8290050a61db4b59a8e24be4465f44897936b3824"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5aba767e64b494483ad60c4873bec78d16205a21f8247c99749bd990d9c846c2"}, - {file = "rpds_py-0.10.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:e1954f4b239d1a92081647eecfd51cbfd08ea16eb743b8af1cd0113258feea14"}, - {file = "rpds_py-0.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de4a2fd524993578fe093044f291b4b24aab134390030b3b9b5f87fd41ab7e75"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e69737bd56006a86fd5a78b2b85447580a6138c930a75eb9ef39fe03d90782b1"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f40abbcc0a7d9a8a80870af839d317e6932533f98682aabd977add6c53beeb23"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29ec8507664f94cc08457d98cfc41c3cdbddfa8952438e644177a29b04937876"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcde80aefe7054fad6277762fb7e9d35c72ea479a485ae1bb14629c640987b30"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a65de5c02884760a14a58304fb6303f9ddfc582e630f385daea871e1bdb18686"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e92e5817eb6bfed23aa5e45bfe30647b83602bdd6f9e25d63524d4e6258458b0"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2c8fc6c841ada60a86d29c9ebe2e8757c47eda6553f3596c560e59ca6e9b6fa1"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:8557c807388e6617161fe51b1a4747ea8d1133f2d2ad8e79583439abebe58fbd"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:00e97d43a36811b78fa9ad9d3329bf34f76a31e891a7031a2ac01450c9b168ab"}, - {file = "rpds_py-0.10.2-cp38-none-win32.whl", hash = "sha256:1ed3d5385d14be894e12a9033be989e012214a9811e7194849c94032ad69682a"}, - {file = "rpds_py-0.10.2-cp38-none-win_amd64.whl", hash = "sha256:02b4a2e28eb24dac4ef43dda4f6a6f7766e355179b143f7d0c76a1c5488a307b"}, - {file = "rpds_py-0.10.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:2a55631b93e47956fbc97d69ba2054a8c6a4016f9a3064ec4e031f5f1030cb90"}, - {file = "rpds_py-0.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2ffbf1b38c88d0466de542e91b08225d51782282512f8e2b11715126c41fda48"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213f9ef5c02ec2f883c1075d25a873149daadbaea50d18d622e9db55ec9849c2"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b00150a9a3fd0a8efaa90bc2696c105b04039d50763dd1c95a34c88c5966cb57"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ab0f7aabdbce4a202e013083eeab71afdb85efa405dc4a06fea98cde81204675"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cd0c9fb5d40887500b4ed818770c68ab4fa6e0395d286f9704be6751b1b7d98"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8578fc6c8bdd0201327503720fa581000b4bd3934abbf07e2628d1ad3de157d"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d27d08056fcd61ff47a0cd8407eff4d3e816c82cb6b9c6f0ce9a0ad49225f81"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c8f6526df47953b07c45b95c4d1da6b9a0861c0e5da0271db96bb1d807825412"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:177c033e467a66a054dd3a9534167234a3d0b2e41445807b13b626e01da25d92"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c74cbee9e532dc34371127f7686d6953e5153a1f22beab7f953d95ee4a0fe09"}, - {file = "rpds_py-0.10.2-cp39-none-win32.whl", hash = "sha256:05a1382905026bdd560f806c8c7c16e0f3e3fb359ba8868203ca6e5799884968"}, - {file = "rpds_py-0.10.2-cp39-none-win_amd64.whl", hash = "sha256:3fd503c27e7b7034128e30847ecdb4bff4ca5e60f29ad022a9f66ae8940d54ac"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4a96147791e49e84207dd1530109aa0e9eeaf1c8b7a59f150047fc0fcdf9bb64"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:203eb1532d51591d32e8dfafd60b5d31347ea7278c8da02b4b550287f6abe28b"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2f416cdfe92f5fbb77177f5f3f7830059d1582db05f2c7119bf80069d1ab69b"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2660000e1a113869c86eb5cc07f3343467490f3cd9d0299f81da9ddae7137b7"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1adb04e4b4e41bf30aaa77eeb169c1b9ba9e5010e2e6ce8d6c17e1446edc9b68"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bca97521ee786087f0c5ef318fef3eef0266a9c3deff88205523cf353af7394"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4969592e3cdeefa4cbb15a26cec102cbd4a1d6e5b695fac9fa026e19741138c8"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df61f818edf7c8626bfa392f825860fb670b5f8336e238eb0ec7e2a5689cdded"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b589d93a60e78fe55d5bc76ee8c2bf945dbdbb7cd16044c53e0307604e448de1"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:73da69e1f612c3e682e34dcb971272d90d6f27b2c99acff444ca455a89978574"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:89438e8885a186c69fe31f7ef98bb2bf29688c466c3caf9060f404c0be89ae80"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c4ecc4e9a5d73a816cae36ee6b5d8b7a0c72013cae1e101406e832887c3dc2d8"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:907b214da5d2fcff0b6ddb83de1333890ca92abaf4bbf8d9c61dc1b95c87fd6e"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb44644371eaa29a3aba7b69b1862d0d56f073bb7585baa32e4271a71a91ee82"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:80c3cf46511653f94dfe07c7c79ab105c4164d6e1dfcb35b7214fb9af53eaef4"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaba0613c759ebf95988a84f766ca6b7432d55ce399194f95dde588ad1be0878"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0527c97dcd8bb983822ee31d3760187083fd3ba18ac4dd22cf5347c89d5628f4"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cdfd649011ce2d90cb0dd304c5aba1190fac0c266d19a9e2b96b81cfd150a09"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:75eea40355a8690459c7291ce6c8ce39c27bd223675c7da6619f510c728feb97"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1b804cfad04f862d6a84af9d1ad941b06f671878f0f7ecad6c92007d423de6"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:bf77f9017fcfa1232f98598a637406e6c33982ccba8a5922339575c3e2b90ea5"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:46c4c550bf59ce05d6bff2c98053822549aaf9fbaf81103edea325e03350bca1"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:46af4a742b90c7460e94214f923452c2c1d050a9da1d2b8d4c70cbc045e692b7"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2a86d246a160d98d820ee7d02dc18c923c228de095be362e57b9fd8970b2c4a1"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae141c9017f8f473a6ee07a9425da021816a9f8c0683c2e5442f0ccf56b0fc62"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1147bc3d0dd1e549d991110d0a09557ec9f925dbc1ca62871fcdab2ec9d716b"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fce7a8ee8d0f682c953c0188735d823f0fcb62779bf92cd6ba473a8e730e26ad"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c7f9d70f99e1fbcbf57c75328b80e1c0a7f6cad43e75efa90a97221be5efe15"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b309908b6ff5ffbf6394818cb73b5a2a74073acee2c57fe8719046389aeff0d"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ff1f585a0fdc1415bd733b804f33d386064a308672249b14828130dd43e7c31"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0188b580c490bccb031e9b67e9e8c695a3c44ac5e06218b152361eca847317c3"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:abe081453166e206e3a8c6d8ace57214c17b6d9477d7601ac14a365344dbc1f4"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9118de88c16947eaf5b92f749e65b0501ea69e7c2be7bd6aefc12551622360e1"}, - {file = "rpds_py-0.10.2.tar.gz", hash = "sha256:289073f68452b96e70990085324be7223944c7409973d13ddfe0eea1c1b5663b"}, -] - -[[package]] -name = "rsa" -version = "4.9" -description = "Pure-Python RSA implementation" -category = "main" -optional = true -python-versions = ">=3.6,<4" -files = [ - {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, - {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, -] - -[package.dependencies] -pyasn1 = ">=0.1.3" - -[[package]] -name = "ruff" -version = "0.0.287" -description = "An extremely fast Python linter, written in Rust." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.0.287-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:1e0f9ee4c3191444eefeda97d7084721d9b8e29017f67997a20c153457f2eafd"}, - {file = "ruff-0.0.287-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:e9843e5704d4fb44e1a8161b0d31c1a38819723f0942639dfeb53d553be9bfb5"}, - {file = "ruff-0.0.287-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca1ed11d759a29695aed2bfc7f914b39bcadfe2ef08d98ff69c873f639ad3a8"}, - {file = "ruff-0.0.287-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1cf4d5ad3073af10f186ea22ce24bc5a8afa46151f6896f35c586e40148ba20b"}, - {file = "ruff-0.0.287-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d9d58bcb29afd72d2afe67120afcc7d240efc69a235853813ad556443dc922"}, - {file = "ruff-0.0.287-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:06ac5df7dd3ba8bf83bba1490a72f97f1b9b21c7cbcba8406a09de1a83f36083"}, - {file = "ruff-0.0.287-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2bfb478e1146a60aa740ab9ebe448b1f9e3c0dfb54be3cc58713310eef059c30"}, - {file = "ruff-0.0.287-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00d579a011949108c4b4fa04c4f1ee066dab536a9ba94114e8e580c96be2aeb4"}, - {file = "ruff-0.0.287-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a810a79b8029cc92d06c36ea1f10be5298d2323d9024e1d21aedbf0a1a13e5"}, - {file = "ruff-0.0.287-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:150007028ad4976ce9a7704f635ead6d0e767f73354ce0137e3e44f3a6c0963b"}, - {file = "ruff-0.0.287-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a24a280db71b0fa2e0de0312b4aecb8e6d08081d1b0b3c641846a9af8e35b4a7"}, - {file = "ruff-0.0.287-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2918cb7885fa1611d542de1530bea3fbd63762da793751cc8c8d6e4ba234c3d8"}, - {file = "ruff-0.0.287-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:33d7b251afb60bec02a64572b0fd56594b1923ee77585bee1e7e1daf675e7ae7"}, - {file = "ruff-0.0.287-py3-none-win32.whl", hash = "sha256:022f8bed2dcb5e5429339b7c326155e968a06c42825912481e10be15dafb424b"}, - {file = "ruff-0.0.287-py3-none-win_amd64.whl", hash = "sha256:26bd0041d135a883bd6ab3e0b29c42470781fb504cf514e4c17e970e33411d90"}, - {file = "ruff-0.0.287-py3-none-win_arm64.whl", hash = "sha256:44bceb3310ac04f0e59d4851e6227f7b1404f753997c7859192e41dbee9f5c8d"}, - {file = "ruff-0.0.287.tar.gz", hash = "sha256:02dc4f5bf53ef136e459d467f3ce3e04844d509bc46c025a05b018feb37bbc39"}, -] - -[[package]] -name = "s3transfer" -version = "0.6.2" -description = "An Amazon S3 Transfer Manager" -category = "main" -optional = false -python-versions = ">= 3.7" -files = [ - {file = "s3transfer-0.6.2-py3-none-any.whl", hash = "sha256:b014be3a8a2aab98cfe1abc7229cc5a9a0cf05eb9c1f2b86b230fd8df3f78084"}, - {file = "s3transfer-0.6.2.tar.gz", hash = "sha256:cab66d3380cca3e70939ef2255d01cd8aece6a4907a9528740f668c4b0611861"}, -] - -[package.dependencies] -botocore = ">=1.12.36,<2.0a.0" - -[package.extras] -crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] - -[[package]] -name = "scikit-learn" -version = "1.3.0" -description = "A set of python modules for machine learning and data mining" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "scikit-learn-1.3.0.tar.gz", hash = "sha256:8be549886f5eda46436b6e555b0e4873b4f10aa21c07df45c4bc1735afbccd7a"}, - {file = "scikit_learn-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:981287869e576d42c682cf7ca96af0c6ac544ed9316328fd0d9292795c742cf5"}, - {file = "scikit_learn-1.3.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:436aaaae2c916ad16631142488e4c82f4296af2404f480e031d866863425d2a2"}, - {file = "scikit_learn-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7e28d8fa47a0b30ae1bd7a079519dd852764e31708a7804da6cb6f8b36e3630"}, - {file = "scikit_learn-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae80c08834a473d08a204d966982a62e11c976228d306a2648c575e3ead12111"}, - {file = "scikit_learn-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:552fd1b6ee22900cf1780d7386a554bb96949e9a359999177cf30211e6b20df6"}, - {file = "scikit_learn-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79970a6d759eb00a62266a31e2637d07d2d28446fca8079cf9afa7c07b0427f8"}, - {file = "scikit_learn-1.3.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:850a00b559e636b23901aabbe79b73dc604b4e4248ba9e2d6e72f95063765603"}, - {file = "scikit_learn-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee04835fb016e8062ee9fe9074aef9b82e430504e420bff51e3e5fffe72750ca"}, - {file = "scikit_learn-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d953531f5d9f00c90c34fa3b7d7cfb43ecff4c605dac9e4255a20b114a27369"}, - {file = "scikit_learn-1.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:151ac2bf65ccf363664a689b8beafc9e6aae36263db114b4ca06fbbbf827444a"}, - {file = "scikit_learn-1.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6a885a9edc9c0a341cab27ec4f8a6c58b35f3d449c9d2503a6fd23e06bbd4f6a"}, - {file = "scikit_learn-1.3.0-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:9877af9c6d1b15486e18a94101b742e9d0d2f343d35a634e337411ddb57783f3"}, - {file = "scikit_learn-1.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c470f53cea065ff3d588050955c492793bb50c19a92923490d18fcb637f6383a"}, - {file = "scikit_learn-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd6e2d7389542eae01077a1ee0318c4fec20c66c957f45c7aac0c6eb0fe3c612"}, - {file = "scikit_learn-1.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:3a11936adbc379a6061ea32fa03338d4ca7248d86dd507c81e13af428a5bc1db"}, - {file = "scikit_learn-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:998d38fcec96584deee1e79cd127469b3ad6fefd1ea6c2dfc54e8db367eb396b"}, - {file = "scikit_learn-1.3.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:ded35e810438a527e17623ac6deae3b360134345b7c598175ab7741720d7ffa7"}, - {file = "scikit_learn-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e8102d5036e28d08ab47166b48c8d5e5810704daecf3a476a4282d562be9a28"}, - {file = "scikit_learn-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7617164951c422747e7c32be4afa15d75ad8044f42e7d70d3e2e0429a50e6718"}, - {file = "scikit_learn-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:1d54fb9e6038284548072df22fd34777e434153f7ffac72c8596f2d6987110dd"}, -] - -[package.dependencies] -joblib = ">=1.1.1" -numpy = ">=1.17.3" -scipy = ">=1.5.0" -threadpoolctl = ">=2.0.0" - -[package.extras] -benchmark = ["matplotlib (>=3.1.3)", "memory-profiler (>=0.57.0)", "pandas (>=1.0.5)"] -docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.1.3)", "memory-profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.0.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.16.2)", "seaborn (>=0.9.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-gallery (>=0.10.1)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] -examples = ["matplotlib (>=3.1.3)", "pandas (>=1.0.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.16.2)", "seaborn (>=0.9.0)"] -tests = ["black (>=23.3.0)", "matplotlib (>=3.1.3)", "mypy (>=1.3)", "numpydoc (>=1.2.0)", "pandas (>=1.0.5)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.0.272)", "scikit-image (>=0.16.2)"] - -[[package]] -name = "scipy" -version = "1.11.2" -description = "Fundamental algorithms for scientific computing in Python" -category = "main" -optional = false -python-versions = "<3.13,>=3.9" -files = [ - {file = "scipy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2b997a5369e2d30c97995dcb29d638701f8000d04df01b8e947f206e5d0ac788"}, - {file = "scipy-1.11.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:95763fbda1206bec41157582bea482f50eb3702c85fffcf6d24394b071c0e87a"}, - {file = "scipy-1.11.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e367904a0fec76433bf3fbf3e85bf60dae8e9e585ffd21898ab1085a29a04d16"}, - {file = "scipy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d690e1ca993c8f7ede6d22e5637541217fc6a4d3f78b3672a6fe454dbb7eb9a7"}, - {file = "scipy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d2b813bfbe8dec6a75164523de650bad41f4405d35b0fa24c2c28ae07fcefb20"}, - {file = "scipy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:afdb0d983f6135d50770dd979df50bf1c7f58b5b33e0eb8cf5c73c70600eae1d"}, - {file = "scipy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8d9886f44ef8c9e776cb7527fb01455bf4f4a46c455c4682edc2c2cc8cd78562"}, - {file = "scipy-1.11.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1342ca385c673208f32472830c10110a9dcd053cf0c4b7d4cd7026d0335a6c1d"}, - {file = "scipy-1.11.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b133f237bd8ba73bad51bc12eb4f2d84cbec999753bf25ba58235e9fc2096d80"}, - {file = "scipy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aeb87661de987f8ec56fa6950863994cd427209158255a389fc5aea51fa7055"}, - {file = "scipy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:90d3b1364e751d8214e325c371f0ee0dd38419268bf4888b2ae1040a6b266b2a"}, - {file = "scipy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:f73102f769ee06041a3aa26b5841359b1a93cc364ce45609657751795e8f4a4a"}, - {file = "scipy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa4909c6c20c3d91480533cddbc0e7c6d849e7d9ded692918c76ce5964997898"}, - {file = "scipy-1.11.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ac74b1512d38718fb6a491c439aa7b3605b96b1ed3be6599c17d49d6c60fca18"}, - {file = "scipy-1.11.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8425fa963a32936c9773ee3ce44a765d8ff67eed5f4ac81dc1e4a819a238ee9"}, - {file = "scipy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:542a757e2a6ec409e71df3d8fd20127afbbacb1c07990cb23c5870c13953d899"}, - {file = "scipy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ea932570b1c2a30edafca922345854ff2cd20d43cd9123b6dacfdecebfc1a80b"}, - {file = "scipy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:4447ad057d7597476f9862ecbd9285bbf13ba9d73ce25acfa4e4b11c6801b4c9"}, - {file = "scipy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b0620240ef445b5ddde52460e6bc3483b7c9c750275369379e5f609a1050911c"}, - {file = "scipy-1.11.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:f28f1f6cfeb48339c192efc6275749b2a25a7e49c4d8369a28b6591da02fbc9a"}, - {file = "scipy-1.11.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:214cdf04bbae7a54784f8431f976704ed607c4bc69ba0d5d5d6a9df84374df76"}, - {file = "scipy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10eb6af2f751aa3424762948e5352f707b0dece77288206f227864ddf675aca0"}, - {file = "scipy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0f3261f14b767b316d7137c66cc4f33a80ea05841b9c87ad83a726205b901423"}, - {file = "scipy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:2c91cf049ffb5575917f2a01da1da082fd24ed48120d08a6e7297dfcac771dcd"}, - {file = "scipy-1.11.2.tar.gz", hash = "sha256:b29318a5e39bd200ca4381d80b065cdf3076c7d7281c5e36569e99273867f61d"}, -] - -[package.dependencies] -numpy = ">=1.21.6,<1.28.0" - -[package.extras] -dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] -doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] -test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] - -[[package]] -name = "send2trash" -version = "1.8.2" -description = "Send file to trash natively under Mac OS X, Windows and Linux" -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -files = [ - {file = "Send2Trash-1.8.2-py3-none-any.whl", hash = "sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679"}, - {file = "Send2Trash-1.8.2.tar.gz", hash = "sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"}, -] - -[package.extras] -nativelib = ["pyobjc-framework-Cocoa", "pywin32"] -objc = ["pyobjc-framework-Cocoa"] -win32 = ["pywin32"] - -[[package]] -name = "setuptools" -version = "68.2.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "setuptools-68.2.0-py3-none-any.whl", hash = "sha256:af3d5949030c3f493f550876b2fd1dd5ec66689c4ee5d5344f009746f71fd5a8"}, - {file = "setuptools-68.2.0.tar.gz", hash = "sha256:00478ca80aeebeecb2f288d3206b0de568df5cd2b8fada1209843cc9a8d88a48"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "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 (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "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)", "packaging", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] - -[[package]] -name = "six" -version = "1.16.0" -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 = "smmap" -version = "5.0.0" -description = "A pure Python implementation of a sliding window memory map manager" -category = "main" -optional = true -python-versions = ">=3.6" -files = [ - {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, - {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, -] - -[[package]] -name = "sniffio" -version = "1.3.0" -description = "Sniff out which async library your code is running under" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, -] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"}, - {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"}, -] - -[[package]] -name = "soupsieve" -version = "2.5" -description = "A modern CSS selector implementation for Beautiful Soup." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, - {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, -] - -[[package]] -name = "sqlparse" -version = "0.4.4" -description = "A non-validating SQL parser." -category = "main" -optional = true -python-versions = ">=3.5" -files = [ - {file = "sqlparse-0.4.4-py3-none-any.whl", hash = "sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3"}, - {file = "sqlparse-0.4.4.tar.gz", hash = "sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c"}, -] - -[package.extras] -dev = ["build", "flake8"] -doc = ["sphinx"] -test = ["pytest", "pytest-cov"] - -[[package]] -name = "stack-data" -version = "0.6.2" -description = "Extract data from python stack frames and tracebacks for informative displays" -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" -executing = ">=1.2.0" -pure-eval = "*" - -[package.extras] -tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] - -[[package]] -name = "sympy" -version = "1.12" -description = "Computer algebra system (CAS) in Python" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sympy-1.12-py3-none-any.whl", hash = "sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5"}, - {file = "sympy-1.12.tar.gz", hash = "sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8"}, -] - -[package.dependencies] -mpmath = ">=0.19" - -[[package]] -name = "tabulate" -version = "0.9.0" -description = "Pretty-print tabular data" -category = "main" -optional = true -python-versions = ">=3.7" -files = [ - {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, - {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, -] - -[package.extras] -widechars = ["wcwidth"] - -[[package]] -name = "terminado" -version = "0.17.1" -description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "terminado-0.17.1-py3-none-any.whl", hash = "sha256:8650d44334eba354dd591129ca3124a6ba42c3d5b70df5051b6921d506fdaeae"}, - {file = "terminado-0.17.1.tar.gz", hash = "sha256:6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333"}, -] - -[package.dependencies] -ptyprocess = {version = "*", markers = "os_name != \"nt\""} -pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} -tornado = ">=6.1.0" - -[package.extras] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] - -[[package]] -name = "threadpoolctl" -version = "3.2.0" -description = "threadpoolctl" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "threadpoolctl-3.2.0-py3-none-any.whl", hash = "sha256:2b7818516e423bdaebb97c723f86a7c6b0a83d3f3b0970328d66f4d9104dc032"}, - {file = "threadpoolctl-3.2.0.tar.gz", hash = "sha256:c96a0ba3bdddeaca37dc4cc7344aafad41cdb8c313f74fdfe387a867bba93355"}, -] - -[[package]] -name = "tinycss2" -version = "1.2.1" -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" - -[package.extras] -doc = ["sphinx", "sphinx_rtd_theme"] -test = ["flake8", "isort", "pytest"] - -[[package]] -name = "tomli" -version = "2.0.1" -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 = "torch" -version = "2.0.1" -description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" -category = "dev" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "torch-2.0.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:8ced00b3ba471856b993822508f77c98f48a458623596a4c43136158781e306a"}, - {file = "torch-2.0.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:359bfaad94d1cda02ab775dc1cc386d585712329bb47b8741607ef6ef4950747"}, - {file = "torch-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:7c84e44d9002182edd859f3400deaa7410f5ec948a519cc7ef512c2f9b34d2c4"}, - {file = "torch-2.0.1-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:567f84d657edc5582d716900543e6e62353dbe275e61cdc36eda4929e46df9e7"}, - {file = "torch-2.0.1-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:787b5a78aa7917465e9b96399b883920c88a08f4eb63b5a5d2d1a16e27d2f89b"}, - {file = "torch-2.0.1-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:e617b1d0abaf6ced02dbb9486803abfef0d581609b09641b34fa315c9c40766d"}, - {file = "torch-2.0.1-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b6019b1de4978e96daa21d6a3ebb41e88a0b474898fe251fd96189587408873e"}, - {file = "torch-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:dbd68cbd1cd9da32fe5d294dd3411509b3d841baecb780b38b3b7b06c7754434"}, - {file = "torch-2.0.1-cp311-none-macosx_10_9_x86_64.whl", hash = "sha256:ef654427d91600129864644e35deea761fb1fe131710180b952a6f2e2207075e"}, - {file = "torch-2.0.1-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:25aa43ca80dcdf32f13da04c503ec7afdf8e77e3a0183dd85cd3e53b2842e527"}, - {file = "torch-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:5ef3ea3d25441d3957348f7e99c7824d33798258a2bf5f0f0277cbcadad2e20d"}, - {file = "torch-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:0882243755ff28895e8e6dc6bc26ebcf5aa0911ed81b2a12f241fc4b09075b13"}, - {file = "torch-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:f66aa6b9580a22b04d0af54fcd042f52406a8479e2b6a550e3d9f95963e168c8"}, - {file = "torch-2.0.1-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:1adb60d369f2650cac8e9a95b1d5758e25d526a34808f7448d0bd599e4ae9072"}, - {file = "torch-2.0.1-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:1bcffc16b89e296826b33b98db5166f990e3b72654a2b90673e817b16c50e32b"}, - {file = "torch-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:e10e1597f2175365285db1b24019eb6f04d53dcd626c735fc502f1e8b6be9875"}, - {file = "torch-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:423e0ae257b756bb45a4b49072046772d1ad0c592265c5080070e0767da4e490"}, - {file = "torch-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:8742bdc62946c93f75ff92da00e3803216c6cce9b132fbca69664ca38cfb3e18"}, - {file = "torch-2.0.1-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:c62df99352bd6ee5a5a8d1832452110435d178b5164de450831a3a8cc14dc680"}, - {file = "torch-2.0.1-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:671a2565e3f63b8fe8e42ae3e36ad249fe5e567435ea27b94edaa672a7d0c416"}, -] - -[package.dependencies] -filelock = "*" -jinja2 = "*" -networkx = "*" -sympy = "*" -typing-extensions = "*" - -[package.extras] -opt-einsum = ["opt-einsum (>=3.3)"] - -[[package]] -name = "torchinfo" -version = "1.8.0" -description = "Model summary in PyTorch, based off of the original torchsummary." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "torchinfo-1.8.0-py3-none-any.whl", hash = "sha256:2e911c2918603f945c26ff21a3a838d12709223dc4ccf243407bce8b6e897b46"}, - {file = "torchinfo-1.8.0.tar.gz", hash = "sha256:72e94b0e9a3e64dc583a8e5b7940b8938a1ac0f033f795457f27e6f4e7afa2e9"}, -] - -[[package]] -name = "torchmetrics" -version = "1.1.1" -description = "PyTorch native Metrics" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "torchmetrics-1.1.1-py3-none-any.whl", hash = "sha256:903b4fc30537acfc5221505c48f7627e58dbf6d9dea85c16ea7b4323f9e13793"}, - {file = "torchmetrics-1.1.1.tar.gz", hash = "sha256:65ea34205c0506eecfd06b98f63f4d2a2c5c0e17367cf324e1747adc854c80a5"}, -] - -[package.dependencies] -lightning-utilities = ">=0.8.0" -numpy = ">1.20.0" -torch = ">=1.8.1" - -[package.extras] -all = ["SciencePlots (>=2.0.0)", "lpips (<=0.1.4)", "matplotlib (>=3.2.0)", "mypy (==1.5.1)", "nltk (>=3.6)", "piq (<=0.8.0)", "pycocotools (>2.0.0)", "pystoi (>=0.3.0)", "regex (>=2021.9.24)", "scipy (>1.0.0)", "torch-fidelity (<=0.4.0)", "torchaudio (>=0.10.0)", "torchvision (>=0.8)", "tqdm (>=4.41.0)", "transformers (>4.4.0)", "transformers (>=4.10.0)", "types-PyYAML", "types-emoji", "types-protobuf", "types-requests", "types-setuptools", "types-six", "types-tabulate"] -audio = ["pystoi (>=0.3.0)", "torchaudio (>=0.10.0)"] -detection = ["pycocotools (>2.0.0)", "torchvision (>=0.8)"] -dev = ["SciencePlots (>=2.0.0)", "bert-score (==0.3.13)", "cloudpickle (>1.3)", "coverage (==7.3.0)", "dython (<=0.7.4)", "fairlearn", "fast-bss-eval (>=0.1.0)", "fire (<=0.5.0)", "huggingface-hub (<0.16)", "jiwer (>=2.3.0)", "kornia (>=0.6.7)", "lpips (<=0.1.4)", "matplotlib (>=3.2.0)", "mir-eval (>=0.6)", "mypy (==1.5.1)", "netcal (>1.0.0)", "nltk (>=3.6)", "numpy (<1.25.0)", "pandas (>1.0.0)", "pandas (>=1.4.0)", "phmdoctest (==1.4.0)", "piq (<=0.8.0)", "psutil (<=5.9.5)", "pycocotools (>2.0.0)", "pystoi (>=0.3.0)", "pytest (==7.4.0)", "pytest-cov (==4.1.0)", "pytest-doctestplus (==1.0.0)", "pytest-rerunfailures (==12.0)", "pytest-timeout (==2.1.0)", "pytorch-msssim (==1.0.0)", "regex (>=2021.9.24)", "requests (<=2.31.0)", "rouge-score (>0.1.0)", "sacrebleu (>=2.0.0)", "scikit-image (>=0.19.0)", "scikit-learn (>=1.1.1)", "scipy (>1.0.0)", "sewar (>=0.4.4)", "statsmodels (>0.13.5)", "torch-complex (<=0.4.3)", "torch-fidelity (<=0.4.0)", "torchaudio (>=0.10.0)", "torchvision (>=0.8)", "tqdm (>=4.41.0)", "transformers (>4.4.0)", "transformers (>=4.10.0)", "types-PyYAML", "types-emoji", "types-protobuf", "types-requests", "types-setuptools", "types-six", "types-tabulate"] -image = ["lpips (<=0.1.4)", "scipy (>1.0.0)", "torch-fidelity (<=0.4.0)", "torchvision (>=0.8)"] -multimodal = ["piq (<=0.8.0)", "transformers (>=4.10.0)"] -test = ["bert-score (==0.3.13)", "cloudpickle (>1.3)", "coverage (==7.3.0)", "dython (<=0.7.4)", "fairlearn", "fast-bss-eval (>=0.1.0)", "fire (<=0.5.0)", "huggingface-hub (<0.16)", "jiwer (>=2.3.0)", "kornia (>=0.6.7)", "mir-eval (>=0.6)", "netcal (>1.0.0)", "numpy (<1.25.0)", "pandas (>1.0.0)", "pandas (>=1.4.0)", "phmdoctest (==1.4.0)", "psutil (<=5.9.5)", "pytest (==7.4.0)", "pytest-cov (==4.1.0)", "pytest-doctestplus (==1.0.0)", "pytest-rerunfailures (==12.0)", "pytest-timeout (==2.1.0)", "pytorch-msssim (==1.0.0)", "requests (<=2.31.0)", "rouge-score (>0.1.0)", "sacrebleu (>=2.0.0)", "scikit-image (>=0.19.0)", "scikit-learn (>=1.1.1)", "scipy (>1.0.0)", "sewar (>=0.4.4)", "statsmodels (>0.13.5)", "torch-complex (<=0.4.3)"] -text = ["nltk (>=3.6)", "regex (>=2021.9.24)", "tqdm (>=4.41.0)", "transformers (>4.4.0)"] -typing = ["mypy (==1.5.1)", "types-PyYAML", "types-emoji", "types-protobuf", "types-requests", "types-setuptools", "types-six", "types-tabulate"] -visual = ["SciencePlots (>=2.0.0)", "matplotlib (>=3.2.0)"] - -[[package]] -name = "tornado" -version = "6.3.3" -description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -category = "dev" -optional = false -python-versions = ">= 3.8" -files = [ - {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:502fba735c84450974fec147340016ad928d29f1e91f49be168c0a4c18181e1d"}, - {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:805d507b1f588320c26f7f097108eb4023bbaa984d63176d1652e184ba24270a"}, - {file = "tornado-6.3.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bd19ca6c16882e4d37368e0152f99c099bad93e0950ce55e71daed74045908f"}, - {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ac51f42808cca9b3613f51ffe2a965c8525cb1b00b7b2d56828b8045354f76a"}, - {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71a8db65160a3c55d61839b7302a9a400074c9c753040455494e2af74e2501f2"}, - {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ceb917a50cd35882b57600709dd5421a418c29ddc852da8bcdab1f0db33406b0"}, - {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:7d01abc57ea0dbb51ddfed477dfe22719d376119844e33c661d873bf9c0e4a16"}, - {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:9dc4444c0defcd3929d5c1eb5706cbe1b116e762ff3e0deca8b715d14bf6ec17"}, - {file = "tornado-6.3.3-cp38-abi3-win32.whl", hash = "sha256:65ceca9500383fbdf33a98c0087cb975b2ef3bfb874cb35b8de8740cf7f41bd3"}, - {file = "tornado-6.3.3-cp38-abi3-win_amd64.whl", hash = "sha256:22d3c2fa10b5793da13c807e6fc38ff49a4f6e1e3868b0a6f4164768bb8e20f5"}, - {file = "tornado-6.3.3.tar.gz", hash = "sha256:e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe"}, -] - -[[package]] -name = "tqdm" -version = "4.66.1" -description = "Fast, Extensible Progress Meter" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, - {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[package.extras] -dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] -notebook = ["ipywidgets (>=6)"] -slack = ["slack-sdk"] -telegram = ["requests"] - -[[package]] -name = "traitlets" -version = "5.9.0" -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"] -test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] - -[[package]] -name = "types-pyyaml" -version = "6.0.12.11" -description = "Typing stubs for PyYAML" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "types-PyYAML-6.0.12.11.tar.gz", hash = "sha256:7d340b19ca28cddfdba438ee638cd4084bde213e501a3978738543e27094775b"}, - {file = "types_PyYAML-6.0.12.11-py3-none-any.whl", hash = "sha256:a461508f3096d1d5810ec5ab95d7eeecb651f3a15b71959999988942063bf01d"}, -] - -[[package]] -name = "typing-extensions" -version = "4.7.1" -description = "Backported and Experimental Type Hints for Python 3.7+" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, -] - -[[package]] -name = "tzdata" -version = "2023.3" -description = "Provider of IANA time zone data" -category = "main" -optional = false -python-versions = ">=2" -files = [ - {file = "tzdata-2023.3-py2.py3-none-any.whl", hash = "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"}, - {file = "tzdata-2023.3.tar.gz", hash = "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a"}, -] - -[[package]] -name = "uri-template" -version = "1.3.0" -description = "RFC 6570 URI Template Processor" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, - {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, -] - -[package.extras] -dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] - -[[package]] -name = "urllib3" -version = "1.26.16" -description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -files = [ - {file = "urllib3-1.26.16-py2.py3-none-any.whl", hash = "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f"}, - {file = "urllib3-1.26.16.tar.gz", hash = "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] - -[[package]] -name = "virtualenv" -version = "20.24.5" -description = "Virtual Python Environment builder" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "virtualenv-20.24.5-py3-none-any.whl", hash = "sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b"}, - {file = "virtualenv-20.24.5.tar.gz", hash = "sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"}, -] - -[package.dependencies] -distlib = ">=0.3.7,<1" -filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<4" - -[package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] - -[[package]] -name = "wcwidth" -version = "0.2.6" -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 = "webcolors" -version = "1.13" -description = "A library for working with the color formats defined by HTML and CSS." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, - {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, -] - -[package.extras] -docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] -tests = ["pytest", "pytest-cov"] - -[[package]] -name = "webencodings" -version = "0.5.1" -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 = "websocket-client" -version = "1.6.2" -description = "WebSocket client for Python with low level API options" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "websocket-client-1.6.2.tar.gz", hash = "sha256:53e95c826bf800c4c465f50093a8c4ff091c7327023b10bfaff40cf1ef170eaa"}, - {file = "websocket_client-1.6.2-py3-none-any.whl", hash = "sha256:ce54f419dfae71f4bdba69ebe65bf7f0a93fe71bc009ad3a010aacc3eebad537"}, -] - -[package.extras] -docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] -optional = ["python-socks", "wsaccel"] -test = ["websockets"] - -[[package]] -name = "werkzeug" -version = "2.3.7" -description = "The comprehensive WSGI web application library." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "werkzeug-2.3.7-py3-none-any.whl", hash = "sha256:effc12dba7f3bd72e605ce49807bbe692bd729c3bb122a3b91747a6ae77df528"}, - {file = "werkzeug-2.3.7.tar.gz", hash = "sha256:2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8"}, -] - -[package.dependencies] -MarkupSafe = ">=2.1.1" - -[package.extras] -watchdog = ["watchdog (>=2.3)"] - -[[package]] -name = "widgetsnbextension" -version = "4.0.8" -description = "Jupyter interactive widgets for Jupyter Notebook" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "widgetsnbextension-4.0.8-py3-none-any.whl", hash = "sha256:2e37f0ce9da11651056280c7efe96f2db052fe8fc269508e3724f5cbd6c93018"}, - {file = "widgetsnbextension-4.0.8.tar.gz", hash = "sha256:9ec291ba87c2dfad42c3d5b6f68713fa18be1acd7476569516b2431682315c17"}, -] - -[[package]] -name = "xmltodict" -version = "0.13.0" -description = "Makes working with XML feel like you are working with JSON" -category = "dev" -optional = false -python-versions = ">=3.4" -files = [ - {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, - {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, -] - -[[package]] -name = "yarl" -version = "1.9.2" -description = "Yet another URL library" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c2ad583743d16ddbdf6bb14b5cd76bf43b0d0006e918809d5d4ddf7bde8dd82"}, - {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82aa6264b36c50acfb2424ad5ca537a2060ab6de158a5bd2a72a032cc75b9eb8"}, - {file = "yarl-1.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c0c77533b5ed4bcc38e943178ccae29b9bcf48ffd1063f5821192f23a1bd27b9"}, - {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee4afac41415d52d53a9833ebae7e32b344be72835bbb589018c9e938045a560"}, - {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bf345c3a4f5ba7f766430f97f9cc1320786f19584acc7086491f45524a551ac"}, - {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a96c19c52ff442a808c105901d0bdfd2e28575b3d5f82e2f5fd67e20dc5f4ea"}, - {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:891c0e3ec5ec881541f6c5113d8df0315ce5440e244a716b95f2525b7b9f3608"}, - {file = "yarl-1.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3a53ba34a636a256d767c086ceb111358876e1fb6b50dfc4d3f4951d40133d5"}, - {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:566185e8ebc0898b11f8026447eacd02e46226716229cea8db37496c8cdd26e0"}, - {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2b0738fb871812722a0ac2154be1f049c6223b9f6f22eec352996b69775b36d4"}, - {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:32f1d071b3f362c80f1a7d322bfd7b2d11e33d2adf395cc1dd4df36c9c243095"}, - {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e9fdc7ac0d42bc3ea78818557fab03af6181e076a2944f43c38684b4b6bed8e3"}, - {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56ff08ab5df8429901ebdc5d15941b59f6253393cb5da07b4170beefcf1b2528"}, - {file = "yarl-1.9.2-cp310-cp310-win32.whl", hash = "sha256:8ea48e0a2f931064469bdabca50c2f578b565fc446f302a79ba6cc0ee7f384d3"}, - {file = "yarl-1.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:50f33040f3836e912ed16d212f6cc1efb3231a8a60526a407aeb66c1c1956dde"}, - {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:646d663eb2232d7909e6601f1a9107e66f9791f290a1b3dc7057818fe44fc2b6"}, - {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aff634b15beff8902d1f918012fc2a42e0dbae6f469fce134c8a0dc51ca423bb"}, - {file = "yarl-1.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a83503934c6273806aed765035716216cc9ab4e0364f7f066227e1aaea90b8d0"}, - {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b25322201585c69abc7b0e89e72790469f7dad90d26754717f3310bfe30331c2"}, - {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22a94666751778629f1ec4280b08eb11815783c63f52092a5953faf73be24191"}, - {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ec53a0ea2a80c5cd1ab397925f94bff59222aa3cf9c6da938ce05c9ec20428d"}, - {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:159d81f22d7a43e6eabc36d7194cb53f2f15f498dbbfa8edc8a3239350f59fe7"}, - {file = "yarl-1.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:832b7e711027c114d79dffb92576acd1bd2decc467dec60e1cac96912602d0e6"}, - {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:95d2ecefbcf4e744ea952d073c6922e72ee650ffc79028eb1e320e732898d7e8"}, - {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d4e2c6d555e77b37288eaf45b8f60f0737c9efa3452c6c44626a5455aeb250b9"}, - {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:783185c75c12a017cc345015ea359cc801c3b29a2966c2655cd12b233bf5a2be"}, - {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:b8cc1863402472f16c600e3e93d542b7e7542a540f95c30afd472e8e549fc3f7"}, - {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:822b30a0f22e588b32d3120f6d41e4ed021806418b4c9f0bc3048b8c8cb3f92a"}, - {file = "yarl-1.9.2-cp311-cp311-win32.whl", hash = "sha256:a60347f234c2212a9f0361955007fcf4033a75bf600a33c88a0a8e91af77c0e8"}, - {file = "yarl-1.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:be6b3fdec5c62f2a67cb3f8c6dbf56bbf3f61c0f046f84645cd1ca73532ea051"}, - {file = "yarl-1.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38a3928ae37558bc1b559f67410df446d1fbfa87318b124bf5032c31e3447b74"}, - {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac9bb4c5ce3975aeac288cfcb5061ce60e0d14d92209e780c93954076c7c4367"}, - {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3da8a678ca8b96c8606bbb8bfacd99a12ad5dd288bc6f7979baddd62f71c63ef"}, - {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13414591ff516e04fcdee8dc051c13fd3db13b673c7a4cb1350e6b2ad9639ad3"}, - {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf74d08542c3a9ea97bb8f343d4fcbd4d8f91bba5ec9d5d7f792dbe727f88938"}, - {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e7221580dc1db478464cfeef9b03b95c5852cc22894e418562997df0d074ccc"}, - {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:494053246b119b041960ddcd20fd76224149cfea8ed8777b687358727911dd33"}, - {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:52a25809fcbecfc63ac9ba0c0fb586f90837f5425edfd1ec9f3372b119585e45"}, - {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:e65610c5792870d45d7b68c677681376fcf9cc1c289f23e8e8b39c1485384185"}, - {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:1b1bba902cba32cdec51fca038fd53f8beee88b77efc373968d1ed021024cc04"}, - {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:662e6016409828ee910f5d9602a2729a8a57d74b163c89a837de3fea050c7582"}, - {file = "yarl-1.9.2-cp37-cp37m-win32.whl", hash = "sha256:f364d3480bffd3aa566e886587eaca7c8c04d74f6e8933f3f2c996b7f09bee1b"}, - {file = "yarl-1.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6a5883464143ab3ae9ba68daae8e7c5c95b969462bbe42e2464d60e7e2698368"}, - {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5610f80cf43b6202e2c33ba3ec2ee0a2884f8f423c8f4f62906731d876ef4fac"}, - {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b9a4e67ad7b646cd6f0938c7ebfd60e481b7410f574c560e455e938d2da8e0f4"}, - {file = "yarl-1.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:83fcc480d7549ccebe9415d96d9263e2d4226798c37ebd18c930fce43dfb9574"}, - {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fcd436ea16fee7d4207c045b1e340020e58a2597301cfbcfdbe5abd2356c2fb"}, - {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84e0b1599334b1e1478db01b756e55937d4614f8654311eb26012091be109d59"}, - {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3458a24e4ea3fd8930e934c129b676c27452e4ebda80fbe47b56d8c6c7a63a9e"}, - {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:838162460b3a08987546e881a2bfa573960bb559dfa739e7800ceeec92e64417"}, - {file = "yarl-1.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4e2d08f07a3d7d3e12549052eb5ad3eab1c349c53ac51c209a0e5991bbada78"}, - {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:de119f56f3c5f0e2fb4dee508531a32b069a5f2c6e827b272d1e0ff5ac040333"}, - {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:149ddea5abf329752ea5051b61bd6c1d979e13fbf122d3a1f9f0c8be6cb6f63c"}, - {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:674ca19cbee4a82c9f54e0d1eee28116e63bc6fd1e96c43031d11cbab8b2afd5"}, - {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:9b3152f2f5677b997ae6c804b73da05a39daa6a9e85a512e0e6823d81cdad7cc"}, - {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5415d5a4b080dc9612b1b63cba008db84e908b95848369aa1da3686ae27b6d2b"}, - {file = "yarl-1.9.2-cp38-cp38-win32.whl", hash = "sha256:f7a3d8146575e08c29ed1cd287068e6d02f1c7bdff8970db96683b9591b86ee7"}, - {file = "yarl-1.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:63c48f6cef34e6319a74c727376e95626f84ea091f92c0250a98e53e62c77c72"}, - {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75df5ef94c3fdc393c6b19d80e6ef1ecc9ae2f4263c09cacb178d871c02a5ba9"}, - {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c027a6e96ef77d401d8d5a5c8d6bc478e8042f1e448272e8d9752cb0aff8b5c8"}, - {file = "yarl-1.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3b078dbe227f79be488ffcfc7a9edb3409d018e0952cf13f15fd6512847f3f7"}, - {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59723a029760079b7d991a401386390c4be5bfec1e7dd83e25a6a0881859e716"}, - {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b03917871bf859a81ccb180c9a2e6c1e04d2f6a51d953e6a5cdd70c93d4e5a2a"}, - {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1012fa63eb6c032f3ce5d2171c267992ae0c00b9e164efe4d73db818465fac3"}, - {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74dcbfe780e62f4b5a062714576f16c2f3493a0394e555ab141bf0d746bb955"}, - {file = "yarl-1.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c56986609b057b4839968ba901944af91b8e92f1725d1a2d77cbac6972b9ed1"}, - {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c315df3293cd521033533d242d15eab26583360b58f7ee5d9565f15fee1bef4"}, - {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b7232f8dfbd225d57340e441d8caf8652a6acd06b389ea2d3222b8bc89cbfca6"}, - {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:53338749febd28935d55b41bf0bcc79d634881195a39f6b2f767870b72514caf"}, - {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:066c163aec9d3d073dc9ffe5dd3ad05069bcb03fcaab8d221290ba99f9f69ee3"}, - {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8288d7cd28f8119b07dd49b7230d6b4562f9b61ee9a4ab02221060d21136be80"}, - {file = "yarl-1.9.2-cp39-cp39-win32.whl", hash = "sha256:b124e2a6d223b65ba8768d5706d103280914d61f5cae3afbc50fc3dfcc016623"}, - {file = "yarl-1.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:61016e7d582bc46a5378ffdd02cd0314fb8ba52f40f9cf4d9a5e7dbef88dee18"}, - {file = "yarl-1.9.2.tar.gz", hash = "sha256:04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" - -[[package]] -name = "zipp" -version = "3.16.2" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, - {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] - -[extras] -druid = ["pydruid"] -dynamodb = ["boto3"] -mlflow = ["mlflow-skinny"] -numaflow = ["pynumaflow"] -redis = ["redis"] - -[metadata] -lock-version = "2.0" -python-versions = ">=3.9, <3.12" -content-hash = "5340edac100acd328dff7dd1d2e9f1650205441a0bc8f95cfcaa6fc49d22d927" diff --git a/pyproject.toml b/pyproject.toml index 56108d78..5e5485f1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ mlflow-skinny = { version = ">2.0, <3.0", optional = true } redis = {extras = ["hiredis"], version = "^5.0", optional = true} pynumaflow = { version = "~0.4", optional = true } boto3 = { version = "^1.24.64", optional = true } -pydruid= {git="git@github.com:cosmic-chichu/pydruid.git", branch = "master", optional = true } +pydruid = {version = "^0.6", optional = true } [tool.poetry.extras] mlflow = ["mlflow-skinny"] @@ -121,4 +121,4 @@ convention = "numpy" [build-system] requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" +build-backend = "poetry.core.masonry.api" \ No newline at end of file diff --git a/tests/registry/test_redis_registry.py b/tests/registry/test_redis_registry.py index 80199491..777ac2ec 100644 --- a/tests/registry/test_redis_registry.py +++ b/tests/registry/test_redis_registry.py @@ -210,7 +210,7 @@ def test_load_non_latest_model_twice(self): skeys=self.skeys, dkeys=self.dkeys, latest=False, version=old_version ) self.assertEqual("registry", artifact_data_1.extras["source"]) - self.assertEqual("registry", artifact_data_2.extras["source"]) + self.assertEqual("cache", artifact_data_2.extras["source"]) def test_delete_version(self): version = self.registry.save( diff --git a/tests/udfs/test_postprocess.py b/tests/udfs/test_postprocess.py index f4066afd..20aa361f 100644 --- a/tests/udfs/test_postprocess.py +++ b/tests/udfs/test_postprocess.py @@ -119,7 +119,7 @@ def test_postprocess_infer_model_stale(self): ) ) msg = self.udf(KEYS, Datum(keys=KEYS, value=orjson.dumps(data), **DATUM_KW)) - self.assertEqual(1, len(msg)) + self.assertEqual(2, len(msg)) def test_postprocess_all_model_present(self): data = deepcopy(DATA) diff --git a/tests/udfs/test_preprocess.py b/tests/udfs/test_preprocess.py index a9802a70..487bf524 100644 --- a/tests/udfs/test_preprocess.py +++ b/tests/udfs/test_preprocess.py @@ -45,13 +45,13 @@ def setUp(self) -> None: self.udf1 = PreprocessUDF(REDIS_CLIENT, pl_conf=pl_conf) self.udf2 = PreprocessUDF(REDIS_CLIENT, pl_conf=pl_conf_2) self.udf1.register_conf("druid-config", pl_conf.stream_confs["druid-config"]) - self.udf1.register_conf("druid-config", pl_conf_2.stream_confs["druid-config"]) + self.udf2.register_conf("druid-config", pl_conf_2.stream_confs["druid-config"]) def tearDown(self) -> None: REDIS_CLIENT.flushall() def test_preprocess_load_from_registry(self): - msgs = self.udf1( + msgs = self.udf2( KEYS, DATUM, ) @@ -61,7 +61,7 @@ def test_preprocess_load_from_registry(self): self.assertEqual(payload.header, Header.MODEL_INFERENCE) def test_preprocess_load_from_config(self): - msgs = self.udf2( + msgs = self.udf1( KEYS, DATUM, ) From b03f9f9f7b21ce443ba143cd2c8cc1b60a035109 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Mon, 11 Sep 2023 18:34:24 -0700 Subject: [PATCH 03/17] update poetry.lock Signed-off-by: s0nicboOm --- poetry.lock | 4963 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4963 insertions(+) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..ed2ca515 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,4963 @@ +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. + +[[package]] +name = "aiohttp" +version = "3.8.5" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a94159871304770da4dd371f4291b20cac04e8c94f11bdea1c3478e557fbe0d8"}, + {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:13bf85afc99ce6f9ee3567b04501f18f9f8dbbb2ea11ed1a2e079670403a7c84"}, + {file = "aiohttp-3.8.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ce2ac5708501afc4847221a521f7e4b245abf5178cf5ddae9d5b3856ddb2f3a"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96943e5dcc37a6529d18766597c491798b7eb7a61d48878611298afc1fca946c"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ad5c3c4590bb3cc28b4382f031f3783f25ec223557124c68754a2231d989e2b"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c413c633d0512df4dc7fd2373ec06cc6a815b7b6d6c2f208ada7e9e93a5061d"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df72ac063b97837a80d80dec8d54c241af059cc9bb42c4de68bd5b61ceb37caa"}, + {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c48c5c0271149cfe467c0ff8eb941279fd6e3f65c9a388c984e0e6cf57538e14"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:368a42363c4d70ab52c2c6420a57f190ed3dfaca6a1b19afda8165ee16416a82"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7607ec3ce4993464368505888af5beb446845a014bc676d349efec0e05085905"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0d21c684808288a98914e5aaf2a7c6a3179d4df11d249799c32d1808e79503b5"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:312fcfbacc7880a8da0ae8b6abc6cc7d752e9caa0051a53d217a650b25e9a691"}, + {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ad093e823df03bb3fd37e7dec9d4670c34f9e24aeace76808fc20a507cace825"}, + {file = "aiohttp-3.8.5-cp310-cp310-win32.whl", hash = "sha256:33279701c04351a2914e1100b62b2a7fdb9a25995c4a104259f9a5ead7ed4802"}, + {file = "aiohttp-3.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:6e4a280e4b975a2e7745573e3fc9c9ba0d1194a3738ce1cbaa80626cc9b4f4df"}, + {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae871a964e1987a943d83d6709d20ec6103ca1eaf52f7e0d36ee1b5bebb8b9b9"}, + {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:461908b2578955045efde733719d62f2b649c404189a09a632d245b445c9c975"}, + {file = "aiohttp-3.8.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:72a860c215e26192379f57cae5ab12b168b75db8271f111019509a1196dfc780"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc14be025665dba6202b6a71cfcdb53210cc498e50068bc088076624471f8bb9"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8af740fc2711ad85f1a5c034a435782fbd5b5f8314c9a3ef071424a8158d7f6b"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:841cd8233cbd2111a0ef0a522ce016357c5e3aff8a8ce92bcfa14cef890d698f"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed1c46fb119f1b59304b5ec89f834f07124cd23ae5b74288e364477641060ff"}, + {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84f8ae3e09a34f35c18fa57f015cc394bd1389bce02503fb30c394d04ee6b938"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62360cb771707cb70a6fd114b9871d20d7dd2163a0feafe43fd115cfe4fe845e"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:23fb25a9f0a1ca1f24c0a371523546366bb642397c94ab45ad3aedf2941cec6a"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0ba0d15164eae3d878260d4c4df859bbdc6466e9e6689c344a13334f988bb53"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5d20003b635fc6ae3f96d7260281dfaf1894fc3aa24d1888a9b2628e97c241e5"}, + {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0175d745d9e85c40dcc51c8f88c74bfbaef9e7afeeeb9d03c37977270303064c"}, + {file = "aiohttp-3.8.5-cp311-cp311-win32.whl", hash = "sha256:2e1b1e51b0774408f091d268648e3d57f7260c1682e7d3a63cb00d22d71bb945"}, + {file = "aiohttp-3.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:043d2299f6dfdc92f0ac5e995dfc56668e1587cea7f9aa9d8a78a1b6554e5755"}, + {file = "aiohttp-3.8.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cae533195e8122584ec87531d6df000ad07737eaa3c81209e85c928854d2195c"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f21e83f355643c345177a5d1d8079f9f28b5133bcd154193b799d380331d5d3"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a75ef35f2df54ad55dbf4b73fe1da96f370e51b10c91f08b19603c64004acc"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e2e9839e14dd5308ee773c97115f1e0a1cb1d75cbeeee9f33824fa5144c7634"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44e65da1de4403d0576473e2344828ef9c4c6244d65cf4b75549bb46d40b8dd"}, + {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d847e4cde6ecc19125ccbc9bfac4a7ab37c234dd88fbb3c5c524e8e14da543"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:c7a815258e5895d8900aec4454f38dca9aed71085f227537208057853f9d13f2"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:8b929b9bd7cd7c3939f8bcfffa92fae7480bd1aa425279d51a89327d600c704d"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:5db3a5b833764280ed7618393832e0853e40f3d3e9aa128ac0ba0f8278d08649"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:a0215ce6041d501f3155dc219712bc41252d0ab76474615b9700d63d4d9292af"}, + {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fd1ed388ea7fbed22c4968dd64bab0198de60750a25fe8c0c9d4bef5abe13824"}, + {file = "aiohttp-3.8.5-cp36-cp36m-win32.whl", hash = "sha256:6e6783bcc45f397fdebc118d772103d751b54cddf5b60fbcc958382d7dd64f3e"}, + {file = "aiohttp-3.8.5-cp36-cp36m-win_amd64.whl", hash = "sha256:b5411d82cddd212644cf9360879eb5080f0d5f7d809d03262c50dad02f01421a"}, + {file = "aiohttp-3.8.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:01d4c0c874aa4ddfb8098e85d10b5e875a70adc63db91f1ae65a4b04d3344cda"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5980a746d547a6ba173fd5ee85ce9077e72d118758db05d229044b469d9029a"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a482e6da906d5e6e653be079b29bc173a48e381600161c9932d89dfae5942ef"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80bd372b8d0715c66c974cf57fe363621a02f359f1ec81cba97366948c7fc873"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1161b345c0a444ebcf46bf0a740ba5dcf50612fd3d0528883fdc0eff578006a"}, + {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd56db019015b6acfaaf92e1ac40eb8434847d9bf88b4be4efe5bfd260aee692"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:153c2549f6c004d2754cc60603d4668899c9895b8a89397444a9c4efa282aaf4"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4a01951fabc4ce26ab791da5f3f24dca6d9a6f24121746eb19756416ff2d881b"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bfb9162dcf01f615462b995a516ba03e769de0789de1cadc0f916265c257e5d8"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:7dde0009408969a43b04c16cbbe252c4f5ef4574ac226bc8815cd7342d2028b6"}, + {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4149d34c32f9638f38f544b3977a4c24052042affa895352d3636fa8bffd030a"}, + {file = "aiohttp-3.8.5-cp37-cp37m-win32.whl", hash = "sha256:68c5a82c8779bdfc6367c967a4a1b2aa52cd3595388bf5961a62158ee8a59e22"}, + {file = "aiohttp-3.8.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2cf57fb50be5f52bda004b8893e63b48530ed9f0d6c96c84620dc92fe3cd9b9d"}, + {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:eca4bf3734c541dc4f374ad6010a68ff6c6748f00451707f39857f429ca36ced"}, + {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1274477e4c71ce8cfe6c1ec2f806d57c015ebf84d83373676036e256bc55d690"}, + {file = "aiohttp-3.8.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:28c543e54710d6158fc6f439296c7865b29e0b616629767e685a7185fab4a6b9"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:910bec0c49637d213f5d9877105d26e0c4a4de2f8b1b29405ff37e9fc0ad52b8"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5443910d662db951b2e58eb70b0fbe6b6e2ae613477129a5805d0b66c54b6cb7"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e460be6978fc24e3df83193dc0cc4de46c9909ed92dd47d349a452ef49325b7"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb1558def481d84f03b45888473fc5a1f35747b5f334ef4e7a571bc0dfcb11f8"}, + {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34dd0c107799dcbbf7d48b53be761a013c0adf5571bf50c4ecad5643fe9cfcd0"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aa1990247f02a54185dc0dff92a6904521172a22664c863a03ff64c42f9b5410"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0e584a10f204a617d71d359fe383406305a4b595b333721fa50b867b4a0a1548"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:a3cf433f127efa43fee6b90ea4c6edf6c4a17109d1d037d1a52abec84d8f2e42"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c11f5b099adafb18e65c2c997d57108b5bbeaa9eeee64a84302c0978b1ec948b"}, + {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:84de26ddf621d7ac4c975dbea4c945860e08cccde492269db4e1538a6a6f3c35"}, + {file = "aiohttp-3.8.5-cp38-cp38-win32.whl", hash = "sha256:ab88bafedc57dd0aab55fa728ea10c1911f7e4d8b43e1d838a1739f33712921c"}, + {file = "aiohttp-3.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:5798a9aad1879f626589f3df0f8b79b3608a92e9beab10e5fda02c8a2c60db2e"}, + {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a6ce61195c6a19c785df04e71a4537e29eaa2c50fe745b732aa937c0c77169f3"}, + {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:773dd01706d4db536335fcfae6ea2440a70ceb03dd3e7378f3e815b03c97ab51"}, + {file = "aiohttp-3.8.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f83a552443a526ea38d064588613aca983d0ee0038801bc93c0c916428310c28"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f7372f7341fcc16f57b2caded43e81ddd18df53320b6f9f042acad41f8e049a"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea353162f249c8097ea63c2169dd1aa55de1e8fecbe63412a9bc50816e87b761"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d47ae48db0b2dcf70bc8a3bc72b3de86e2a590fc299fdbbb15af320d2659de"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d827176898a2b0b09694fbd1088c7a31836d1a505c243811c87ae53a3f6273c1"}, + {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3562b06567c06439d8b447037bb655ef69786c590b1de86c7ab81efe1c9c15d8"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4e874cbf8caf8959d2adf572a78bba17cb0e9d7e51bb83d86a3697b686a0ab4d"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6809a00deaf3810e38c628e9a33271892f815b853605a936e2e9e5129762356c"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:33776e945d89b29251b33a7e7d006ce86447b2cfd66db5e5ded4e5cd0340585c"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:eaeed7abfb5d64c539e2db173f63631455f1196c37d9d8d873fc316470dfbacd"}, + {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e91d635961bec2d8f19dfeb41a539eb94bd073f075ca6dae6c8dc0ee89ad6f91"}, + {file = "aiohttp-3.8.5-cp39-cp39-win32.whl", hash = "sha256:00ad4b6f185ec67f3e6562e8a1d2b69660be43070bd0ef6fcec5211154c7df67"}, + {file = "aiohttp-3.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:c0a9034379a37ae42dea7ac1e048352d96286626251862e448933c0f59cbd79c"}, + {file = "aiohttp-3.8.5.tar.gz", hash = "sha256:b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc"}, +] + +[package.dependencies] +aiosignal = ">=1.1.2" +async-timeout = ">=4.0.0a3,<5.0" +attrs = ">=17.3.0" +charset-normalizer = ">=2.0,<4.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +yarl = ">=1.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns", "cchardet"] + +[[package]] +name = "aiorun" +version = "2022.11.1" +description = "Boilerplate for asyncio applications" +optional = true +python-versions = ">=3.5" +files = [ + {file = "aiorun-2022.11.1-py3-none-any.whl", hash = "sha256:8fbfc2aab258021deef2b1f38284c652af9fd3710e94c7b0e736a55d161fa0cb"}, + {file = "aiorun-2022.11.1.tar.gz", hash = "sha256:d820cebffdea82f9c1750cc396f3a58e4c0d277a2c51f11e86ed6ab7736dce59"}, +] + +[package.extras] +dev = ["pytest", "pytest-cov"] + +[[package]] +name = "aiosignal" +version = "1.3.1" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.7" +files = [ + {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, + {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "antlr4-python3-runtime" +version = "4.9.3" +description = "ANTLR 4.9.3 runtime for Python 3.7" +optional = false +python-versions = "*" +files = [ + {file = "antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b"}, +] + +[[package]] +name = "anyio" +version = "4.0.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.0.0-py3-none-any.whl", hash = "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f"}, + {file = "anyio-4.0.0.tar.gz", hash = "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.22)"] + +[[package]] +name = "appnope" +version = "0.1.3" +description = "Disable App Nap on macOS >= 10.9" +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 = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.2.3" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "arrow-1.2.3-py3-none-any.whl", hash = "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2"}, + {file = "arrow-1.2.3.tar.gz", hash = "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" + +[[package]] +name = "asttokens" +version = "2.4.0" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = "*" +files = [ + {file = "asttokens-2.4.0-py2.py3-none-any.whl", hash = "sha256:cf8fc9e61a86461aa9fb161a14a0841a03c405fa829ac6b202670b3495d2ce69"}, + {file = "asttokens-2.4.0.tar.gz", hash = "sha256:2e0171b991b2c959acc6c49318049236844a5da1d65ba2672c4880c1c894834e"}, +] + +[package.dependencies] +six = ">=1.12.0" + +[package.extras] +test = ["astroid", "pytest"] + +[[package]] +name = "async-lru" +version = "2.0.4" +description = "Simple LRU cache for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, + {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "async-timeout" +version = "4.0.3" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.7" +files = [ + {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, + {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, +] + +[[package]] +name = "attrs" +version = "23.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, + {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, +] + +[package.extras] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[docs,tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] + +[[package]] +name = "babel" +version = "2.12.1" +description = "Internationalization utilities" +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]] +name = "backcall" +version = "0.2.0" +description = "Specifications for callback functions passed in to an API" +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 = "beautifulsoup4" +version = "4.12.2" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, + {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "black" +version = "23.9.1" +description = "The uncompromising code formatter." +optional = false +python-versions = ">=3.8" +files = [ + {file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"}, + {file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"}, + {file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"}, + {file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"}, + {file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"}, + {file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"}, + {file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"}, + {file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"}, + {file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"}, + {file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"}, + {file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"}, +] + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "bleach" +version = "6.0.0" +description = "An easy safelist-based HTML-sanitizing tool." +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" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.2)"] + +[[package]] +name = "boto3" +version = "1.28.45" +description = "The AWS SDK for Python" +optional = false +python-versions = ">= 3.7" +files = [ + {file = "boto3-1.28.45-py3-none-any.whl", hash = "sha256:682abbd304e93e726163d7de7448c1bf88108c72cf6a23dceb6bba86fdc86dff"}, + {file = "boto3-1.28.45.tar.gz", hash = "sha256:4ee914266c9bed16978677a367fd05053d8dcaddcbe998c9df30787ab73f87aa"}, +] + +[package.dependencies] +botocore = ">=1.31.45,<1.32.0" +jmespath = ">=0.7.1,<2.0.0" +s3transfer = ">=0.6.0,<0.7.0" + +[package.extras] +crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] + +[[package]] +name = "botocore" +version = "1.31.45" +description = "Low-level, data-driven core of boto 3." +optional = false +python-versions = ">= 3.7" +files = [ + {file = "botocore-1.31.45-py3-none-any.whl", hash = "sha256:cceb150cff1d7f7a6faf655510a8384eb4505a33b430495fe1744d03a70dc66a"}, + {file = "botocore-1.31.45.tar.gz", hash = "sha256:85ff64a0ac2705c4ba36268c3b2dbc1184062e9cf729a89dd66c2f54f730fc79"}, +] + +[package.dependencies] +jmespath = ">=0.7.1,<2.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = ">=1.25.4,<1.27" + +[package.extras] +crt = ["awscrt (==0.16.26)"] + +[[package]] +name = "bottleneck" +version = "1.3.7" +description = "Fast NumPy array functions written in C" +optional = false +python-versions = "*" +files = [ + {file = "Bottleneck-1.3.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ada1a9ff93fd6b1b19f12398a6761940372b00e53d86db98bd4613a751c60043"}, + {file = "Bottleneck-1.3.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a477101ee12155a0d2f9a82cd3e2a44b9b1aa53afe5b20acc065c91cf35c3106"}, + {file = "Bottleneck-1.3.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfe5f3010e9ad8ae54871d1e8fd61109c5981ed8d9d14e8496a1c37fe2050a04"}, + {file = "Bottleneck-1.3.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:955df78713ff58cf815c0a1fa4782b2dc51a8787c0971688472c64b267303855"}, + {file = "Bottleneck-1.3.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92fc5d3ecfedde3b28c56ca686cff70a8125d1ddc281eb468b5e9d6a61269802"}, + {file = "Bottleneck-1.3.7-cp310-cp310-win32.whl", hash = "sha256:e2a290dcb148c0ddf182052e333892e46730c7d39a1f251af87e3d81a43cdde3"}, + {file = "Bottleneck-1.3.7-cp310-cp310-win_amd64.whl", hash = "sha256:9170ebee4cff423c92b3760afec179bded90eaede7c70dd27cf5f406cc00a1e7"}, + {file = "Bottleneck-1.3.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:752c97d64ebebdc10a5568d97b81b4971238fa4b53533248d227c4ea759aee4e"}, + {file = "Bottleneck-1.3.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbda2b27e81a47b7578bce6a8cb2f5eb899279c828d8efb5a154d8ede785093d"}, + {file = "Bottleneck-1.3.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79160e49a5a0438468b970967e29addde2d9c6a6ce930144de7ccd8151077603"}, + {file = "Bottleneck-1.3.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:abfc22762640cc7716c1bd9a409bde0f834167a2584775eb644c6afe7bae3319"}, + {file = "Bottleneck-1.3.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2a39049aa1cb798538f96150098f50badb37417c41cecfa8a441c0c4e6433c7e"}, + {file = "Bottleneck-1.3.7-cp311-cp311-win32.whl", hash = "sha256:b624023f173332d209ed5bd4134fae43d2432d61c6b17a49a6b7c5591caa7cc4"}, + {file = "Bottleneck-1.3.7-cp311-cp311-win_amd64.whl", hash = "sha256:bd69b1844c90f6bcf1b679a608fb2c0909be5e045f91674d61a0e4c3596644be"}, + {file = "Bottleneck-1.3.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c8fa2d85298cdd0f88f51fb46604039abe9a5a2b57e00acfe2b64f546754c053"}, + {file = "Bottleneck-1.3.7-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09fa97df2f572aed5da487d3fe467829c2212c97b1d63c768ec9be9fd1c57a9"}, + {file = "Bottleneck-1.3.7-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f239ba0d992c013564979cff4fecf2b251614de3730641e79d05ecc09268c00c"}, + {file = "Bottleneck-1.3.7-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:f5409cf6db5e60256626a7c110b2b4c80d9f6b0d1ec0b66565bbab978f96b7a6"}, + {file = "Bottleneck-1.3.7-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b3c65a9aedada04872cba450676d132d7af8b9da47f58b82f20ffe9b9ff77a46"}, + {file = "Bottleneck-1.3.7-cp36-cp36m-win32.whl", hash = "sha256:b4a47f972e919d22c1725ff7262d209e6ea3a4d9bcfea71fb454a18e166515ec"}, + {file = "Bottleneck-1.3.7-cp36-cp36m-win_amd64.whl", hash = "sha256:8d6865327ebbea5578f99b073538789df2123cf9009e99fe94efc4d25a4b888b"}, + {file = "Bottleneck-1.3.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:685812254238c2059810f8e25c8215b09795b974f5b1a89f0accda3d93cc8734"}, + {file = "Bottleneck-1.3.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5977f1fd02f01035176a99c01b3fb0eefdaff002c30a4710f7279215b0a317f5"}, + {file = "Bottleneck-1.3.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e26c655736701365d66c64056fc272952d0e2a52718c637254d7dd9a7efa97a8"}, + {file = "Bottleneck-1.3.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d982e1e3f72cc7ca4f558e9ef7db7a97ce68a915b1db8249fe088b3e78974b21"}, + {file = "Bottleneck-1.3.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b5ec31e0b52cbfd716255695ec5fe87662a5961d2b8b49936f3608e36a04d926"}, + {file = "Bottleneck-1.3.7-cp37-cp37m-win32.whl", hash = "sha256:f2c8b631552908b11905cf87b4a90dd4af332b0726dd9b49d26d6a0fbb38e6d4"}, + {file = "Bottleneck-1.3.7-cp37-cp37m-win_amd64.whl", hash = "sha256:1045f9b199bba2675bd7642c25dec5daa21a03a5f0444eb863f2790af52b00b0"}, + {file = "Bottleneck-1.3.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5af0c679da9dc41d6a3c436785c664fff41b4c1178d46afaa630620ab31e970f"}, + {file = "Bottleneck-1.3.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c65d0a9498b2ccda236b28b1b36bc35402e81ebc4575b6cf44033b7e4460f067"}, + {file = "Bottleneck-1.3.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:752f4c3fc5b7cc49814d41e9ecf6f228f33ea407bdb8c889da53716b5628abc7"}, + {file = "Bottleneck-1.3.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:54fc579445688c5309a0af7634db3be4e17659c6b664f9332ec404738e847894"}, + {file = "Bottleneck-1.3.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:175ae3d92142769a5acd169ac2d7df22107b72f6d4c932ff56f5afcef39d5877"}, + {file = "Bottleneck-1.3.7-cp38-cp38-win32.whl", hash = "sha256:64ef9ad7187282745205b735e8c33307ec14c7be39f9971bc3f375104355cfb9"}, + {file = "Bottleneck-1.3.7-cp38-cp38-win_amd64.whl", hash = "sha256:fa80c318b5164e39e4f2d5abf95f5ff42744e3d8535a4c85ede94ccc5fca8f9b"}, + {file = "Bottleneck-1.3.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:01e61a512d645193cf4cf4fdacf98d3140c26ace0fcf4c4ed8fdfa366c57e0d1"}, + {file = "Bottleneck-1.3.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:699fb76ef50cf85be8f8d644b533488de3cec4c6ddf00fd770f73cc5caac9938"}, + {file = "Bottleneck-1.3.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6311ee47641ed5fbc543d2e49cbfa90bd9ece208a0c1bdc2c2b14b9132982b2a"}, + {file = "Bottleneck-1.3.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a1e50fb506693186a4b8f85ac79df1a5af1ab1f774bf20004280e0658a731a89"}, + {file = "Bottleneck-1.3.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4d2ae3e1ac0626107c6916783befc39473900bb22a9b275e21550c99abe8283c"}, + {file = "Bottleneck-1.3.7-cp39-cp39-win32.whl", hash = "sha256:68d0f9d32d45f62028ab27d2b51d1a2af72a5ca6a7c3b1f86e9115fedb266300"}, + {file = "Bottleneck-1.3.7-cp39-cp39-win_amd64.whl", hash = "sha256:83d71c49dd9d6b99def958b6ccba3c8b5aac7b90849a5a9fe935648436dd46b9"}, + {file = "Bottleneck-1.3.7.tar.gz", hash = "sha256:e1467e373ad469da340ed0ff283214d6531cc08bfdca2083361a3aa6470681f8"}, +] + +[package.dependencies] +numpy = "*" + +[package.extras] +doc = ["gitpython", "numpydoc", "sphinx"] + +[[package]] +name = "cachetools" +version = "5.3.1" +description = "Extensible memoizing collections and decorators" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"}, + {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"}, +] + +[[package]] +name = "certifi" +version = "2023.7.22" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, +] + +[[package]] +name = "cffi" +version = "1.15.1" +description = "Foreign Function Interface for Python calling C code." +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 = "*" + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.2.0" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, + {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "cloudpickle" +version = "2.2.1" +description = "Extended pickling support for Python objects" +optional = true +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" +version = "0.4.6" +description = "Cross-platform colored terminal text." +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 = "comm" +version = "0.1.4" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.6" +files = [ + {file = "comm-0.1.4-py3-none-any.whl", hash = "sha256:6d52794cba11b36ed9860999cd10fd02d6b2eac177068fdd585e1e2f8a96e67a"}, + {file = "comm-0.1.4.tar.gz", hash = "sha256:354e40a59c9dd6db50c5cc6b4acc887d82e9603787f83b68c01a80a923984d15"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +lint = ["black (>=22.6.0)", "mdformat (>0.7)", "mdformat-gfm (>=0.3.5)", "ruff (>=0.0.156)"] +test = ["pytest"] +typing = ["mypy (>=0.990)"] + +[[package]] +name = "contourpy" +version = "1.1.0" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.8" +files = [ + {file = "contourpy-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:89f06eff3ce2f4b3eb24c1055a26981bffe4e7264acd86f15b97e40530b794bc"}, + {file = "contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dffcc2ddec1782dd2f2ce1ef16f070861af4fb78c69862ce0aab801495dda6a3"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25ae46595e22f93592d39a7eac3d638cda552c3e1160255258b695f7b58e5655"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:17cfaf5ec9862bc93af1ec1f302457371c34e688fbd381f4035a06cd47324f48"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18a64814ae7bce73925131381603fff0116e2df25230dfc80d6d690aa6e20b37"}, + {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c81f22b4f572f8a2110b0b741bb64e5a6427e0a198b2cdc1fbaf85f352a3aa"}, + {file = "contourpy-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53cc3a40635abedbec7f1bde60f8c189c49e84ac180c665f2cd7c162cc454baa"}, + {file = "contourpy-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:1f795597073b09d631782e7245016a4323cf1cf0b4e06eef7ea6627e06a37ff2"}, + {file = "contourpy-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0b7b04ed0961647691cfe5d82115dd072af7ce8846d31a5fac6c142dcce8b882"}, + {file = "contourpy-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27bc79200c742f9746d7dd51a734ee326a292d77e7d94c8af6e08d1e6c15d545"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052cc634bf903c604ef1a00a5aa093c54f81a2612faedaa43295809ffdde885e"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9382a1c0bc46230fb881c36229bfa23d8c303b889b788b939365578d762b5c18"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5cec36c5090e75a9ac9dbd0ff4a8cf7cecd60f1b6dc23a374c7d980a1cd710e"}, + {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f0cbd657e9bde94cd0e33aa7df94fb73c1ab7799378d3b3f902eb8eb2e04a3a"}, + {file = "contourpy-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:181cbace49874f4358e2929aaf7ba84006acb76694102e88dd15af861996c16e"}, + {file = "contourpy-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb3b7d9e6243bfa1efb93ccfe64ec610d85cfe5aec2c25f97fbbd2e58b531256"}, + {file = "contourpy-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bcb41692aa09aeb19c7c213411854402f29f6613845ad2453d30bf421fe68fed"}, + {file = "contourpy-1.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5d123a5bc63cd34c27ff9c7ac1cd978909e9c71da12e05be0231c608048bb2ae"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62013a2cf68abc80dadfd2307299bfa8f5aa0dcaec5b2954caeb5fa094171103"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0b6616375d7de55797d7a66ee7d087efe27f03d336c27cf1f32c02b8c1a5ac70"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:317267d915490d1e84577924bd61ba71bf8681a30e0d6c545f577363157e5e94"}, + {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d551f3a442655f3dcc1285723f9acd646ca5858834efeab4598d706206b09c9f"}, + {file = "contourpy-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7a117ce7df5a938fe035cad481b0189049e8d92433b4b33aa7fc609344aafa1"}, + {file = "contourpy-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4f26b25b4f86087e7d75e63212756c38546e70f2a92d2be44f80114826e1cd4"}, + {file = "contourpy-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc00bb4225d57bff7ebb634646c0ee2a1298402ec10a5fe7af79df9a51c1bfd9"}, + {file = "contourpy-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:189ceb1525eb0655ab8487a9a9c41f42a73ba52d6789754788d1883fb06b2d8a"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f2931ed4741f98f74b410b16e5213f71dcccee67518970c42f64153ea9313b9"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30f511c05fab7f12e0b1b7730ebdc2ec8deedcfb505bc27eb570ff47c51a8f15"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:143dde50520a9f90e4a2703f367cf8ec96a73042b72e68fcd184e1279962eb6f"}, + {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e94bef2580e25b5fdb183bf98a2faa2adc5b638736b2c0a4da98691da641316a"}, + {file = "contourpy-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ed614aea8462735e7d70141374bd7650afd1c3f3cb0c2dbbcbe44e14331bf002"}, + {file = "contourpy-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:438ba416d02f82b692e371858143970ed2eb6337d9cdbbede0d8ad9f3d7dd17d"}, + {file = "contourpy-1.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a698c6a7a432789e587168573a864a7ea374c6be8d4f31f9d87c001d5a843493"}, + {file = "contourpy-1.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:397b0ac8a12880412da3551a8cb5a187d3298a72802b45a3bd1805e204ad8439"}, + {file = "contourpy-1.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a67259c2b493b00e5a4d0f7bfae51fb4b3371395e47d079a4446e9b0f4d70e76"}, + {file = "contourpy-1.1.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2b836d22bd2c7bb2700348e4521b25e077255ebb6ab68e351ab5aa91ca27e027"}, + {file = "contourpy-1.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084eaa568400cfaf7179b847ac871582199b1b44d5699198e9602ecbbb5f6104"}, + {file = "contourpy-1.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:911ff4fd53e26b019f898f32db0d4956c9d227d51338fb3b03ec72ff0084ee5f"}, + {file = "contourpy-1.1.0.tar.gz", hash = "sha256:e53046c3863828d21d531cc3b53786e6580eb1ba02477e8681009b6aa0870b21"}, +] + +[package.dependencies] +numpy = ">=1.16" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.2.0)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "wurlitzer"] + +[[package]] +name = "coverage" +version = "7.3.1" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, + {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, + {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, + {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, + {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, + {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, + {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, + {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, + {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, + {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, + {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, + {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, + {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, + {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, + {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, + {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, + {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, + {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, + {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, + {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, + {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, + {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "cryptography" +version = "41.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-41.0.3-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:652627a055cb52a84f8c448185922241dd5217443ca194d5739b44612c5e6507"}, + {file = "cryptography-41.0.3-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:8f09daa483aedea50d249ef98ed500569841d6498aa9c9f4b0531b9964658922"}, + {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fd871184321100fb400d759ad0cddddf284c4b696568204d281c902fc7b0d81"}, + {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84537453d57f55a50a5b6835622ee405816999a7113267739a1b4581f83535bd"}, + {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3fb248989b6363906827284cd20cca63bb1a757e0a2864d4c1682a985e3dca47"}, + {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:42cb413e01a5d36da9929baa9d70ca90d90b969269e5a12d39c1e0d475010116"}, + {file = "cryptography-41.0.3-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:aeb57c421b34af8f9fe830e1955bf493a86a7996cc1338fe41b30047d16e962c"}, + {file = "cryptography-41.0.3-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6af1c6387c531cd364b72c28daa29232162010d952ceb7e5ca8e2827526aceae"}, + {file = "cryptography-41.0.3-cp37-abi3-win32.whl", hash = "sha256:0d09fb5356f975974dbcb595ad2d178305e5050656affb7890a1583f5e02a306"}, + {file = "cryptography-41.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:a983e441a00a9d57a4d7c91b3116a37ae602907a7618b882c8013b5762e80574"}, + {file = "cryptography-41.0.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5259cb659aa43005eb55a0e4ff2c825ca111a0da1814202c64d28a985d33b087"}, + {file = "cryptography-41.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:67e120e9a577c64fe1f611e53b30b3e69744e5910ff3b6e97e935aeb96005858"}, + {file = "cryptography-41.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:7efe8041897fe7a50863e51b77789b657a133c75c3b094e51b5e4b5cec7bf906"}, + {file = "cryptography-41.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ce785cf81a7bdade534297ef9e490ddff800d956625020ab2ec2780a556c313e"}, + {file = "cryptography-41.0.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:57a51b89f954f216a81c9d057bf1a24e2f36e764a1ca9a501a6964eb4a6800dd"}, + {file = "cryptography-41.0.3-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c2f0d35703d61002a2bbdcf15548ebb701cfdd83cdc12471d2bae80878a4207"}, + {file = "cryptography-41.0.3-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:23c2d778cf829f7d0ae180600b17e9fceea3c2ef8b31a99e3c694cbbf3a24b84"}, + {file = "cryptography-41.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:95dd7f261bb76948b52a5330ba5202b91a26fbac13ad0e9fc8a3ac04752058c7"}, + {file = "cryptography-41.0.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:41d7aa7cdfded09b3d73a47f429c298e80796c8e825ddfadc84c8a7f12df212d"}, + {file = "cryptography-41.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d0d651aa754ef58d75cec6edfbd21259d93810b73f6ec246436a21b7841908de"}, + {file = "cryptography-41.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ab8de0d091acbf778f74286f4989cf3d1528336af1b59f3e5d2ebca8b5fe49e1"}, + {file = "cryptography-41.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a74fbcdb2a0d46fe00504f571a2a540532f4c188e6ccf26f1f178480117b33c4"}, + {file = "cryptography-41.0.3.tar.gz", hash = "sha256:6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34"}, +] + +[package.dependencies] +cffi = ">=1.12" + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] +nox = ["nox"] +pep8test = ["black", "check-sdist", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "cycler" +version = "0.11.0" +description = "Composable style cycles" +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 = "databricks-cli" +version = "0.17.7" +description = "A command line interface for Databricks" +optional = true +python-versions = "*" +files = [ + {file = "databricks-cli-0.17.7.tar.gz", hash = "sha256:5a545063449f3b9ad904644c0f251058485e29e564dedf8d4e4a7b45caf9549b"}, + {file = "databricks_cli-0.17.7-py2-none-any.whl", hash = "sha256:5b025943c70bbd374415264d38bfaddfb34ce070fadb083d851aec311e0f8901"}, +] + +[package.dependencies] +click = ">=7.0" +oauthlib = ">=3.1.0" +pyjwt = ">=1.7.0" +requests = ">=2.17.3" +six = ">=1.10.0" +tabulate = ">=0.7.7" +urllib3 = ">=1.26.7,<2.0.0" + +[[package]] +name = "debugpy" +version = "1.7.0" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "debugpy-1.7.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:17ad9a681aca1704c55b9a5edcb495fa8f599e4655c9872b7f9cf3dc25890d48"}, + {file = "debugpy-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1285920a3f9a75f5d1acf59ab1b9da9ae6eb9a05884cd7674f95170c9cafa4de"}, + {file = "debugpy-1.7.0-cp310-cp310-win32.whl", hash = "sha256:a6f43a681c5025db1f1c0568069d1d1bad306a02e7c36144912b26d9c90e4724"}, + {file = "debugpy-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:9e9571d831ad3c75b5fb6f3efcb71c471cf2a74ba84af6ac1c79ce00683bed4b"}, + {file = "debugpy-1.7.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:538765a41198aa88cc089295b39c7322dd598f9ef1d52eaae12145c63bf9430a"}, + {file = "debugpy-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7e8cf91f8f3f9b5fad844dd88427b85d398bda1e2a0cd65d5a21312fcbc0c6f"}, + {file = "debugpy-1.7.0-cp311-cp311-win32.whl", hash = "sha256:18a69f8e142a716310dd0af6d7db08992aed99e2606108732efde101e7c65e2a"}, + {file = "debugpy-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7515a5ba5ee9bfe956685909c5f28734c1cecd4ee813523363acfe3ca824883a"}, + {file = "debugpy-1.7.0-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:bc8da67ade39d9e75608cdb8601d07e63a4e85966e0572c981f14e2cf42bcdef"}, + {file = "debugpy-1.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5036e918c6ba8fc4c4f1fd0207d81db634431a02f0dc2ba51b12fd793c8c9de"}, + {file = "debugpy-1.7.0-cp37-cp37m-win32.whl", hash = "sha256:d5be95b3946a4d7b388e45068c7b75036ac5a610f41014aee6cafcd5506423ad"}, + {file = "debugpy-1.7.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0e90314a078d4e3f009520c8387aba8f74c3034645daa7a332a3d1bb81335756"}, + {file = "debugpy-1.7.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:1565fd904f9571c430adca597771255cff4f92171486fced6f765dcbdfc8ec8d"}, + {file = "debugpy-1.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6516f36a2e95b3be27f171f12b641e443863f4ad5255d0fdcea6ae0be29bb912"}, + {file = "debugpy-1.7.0-cp38-cp38-win32.whl", hash = "sha256:2b0e489613bc066051439df04c56777ec184b957d6810cb65f235083aef7a0dc"}, + {file = "debugpy-1.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:7bf0b4bbd841b2397b6a8de15da9227f1164f6d43ceee971c50194eaed930a9d"}, + {file = "debugpy-1.7.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:ad22e1095b9977af432465c1e09132ba176e18df3834b1efcab1a449346b350b"}, + {file = "debugpy-1.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f625e427f21423e5874139db529e18cb2966bdfcc1cb87a195538c5b34d163d1"}, + {file = "debugpy-1.7.0-cp39-cp39-win32.whl", hash = "sha256:18bca8429d6632e2d3435055416d2d88f0309cc39709f4f6355c8d412cc61f24"}, + {file = "debugpy-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:dc8a12ac8b97ef3d6973c6679a093138c7c9b03eb685f0e253269a195f651559"}, + {file = "debugpy-1.7.0-py2.py3-none-any.whl", hash = "sha256:f6de2e6f24f62969e0f0ef682d78c98161c4dca29e9fb05df4d2989005005502"}, + {file = "debugpy-1.7.0.zip", hash = "sha256:676911c710e85567b17172db934a71319ed9d995104610ce23fd74a07f66e6f6"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +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" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +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 = "distlib" +version = "0.3.7" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, + {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, +] + +[[package]] +name = "entrypoints" +version = "0.4" +description = "Discover and load entry points from installed packages." +optional = true +python-versions = ">=3.6" +files = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.1.3" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, + {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "executing" +version = "1.2.0" +description = "Get the currently executing AST node of a frame, and other information" +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"] + +[[package]] +name = "fakeredis" +version = "2.18.1" +description = "Python implementation of redis API, can be used for testing purposes." +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "fakeredis-2.18.1-py3-none-any.whl", hash = "sha256:d780da2519b2e9d741056cf2b68604a4e59286bc6fde78b40a2b2b1367a51b30"}, + {file = "fakeredis-2.18.1.tar.gz", hash = "sha256:9742d6d4673df0f5f6ade4e4eee763b7f3517178ffa82508310325a6305651ec"}, +] + +[package.dependencies] +redis = ">=4" +sortedcontainers = ">=2,<3" + +[package.extras] +json = ["jsonpath-ng (>=1.5,<2.0)"] +lua = ["lupa (>=1.14,<3.0)"] + +[[package]] +name = "fastjsonschema" +version = "2.18.0" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.18.0-py3-none-any.whl", hash = "sha256:128039912a11a807068a7c87d0da36660afbfd7202780db26c4aa7153cfdc799"}, + {file = "fastjsonschema-2.18.0.tar.gz", hash = "sha256:e820349dd16f806e4bd1467a138dced9def4bc7d6213a34295272a6cac95b5bd"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "filelock" +version = "3.12.3" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.12.3-py3-none-any.whl", hash = "sha256:f067e40ccc40f2b48395a80fcbd4728262fab54e232e090a4063ab804179efeb"}, + {file = "filelock-3.12.3.tar.gz", hash = "sha256:0ecc1dd2ec4672a10c8550a8182f1bd0c0a5088470ecd5a125e45f49472fac3d"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.11\""} + +[package.extras] +docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] + +[[package]] +name = "fonttools" +version = "4.42.1" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ed1a13a27f59d1fc1920394a7f596792e9d546c9ca5a044419dca70c37815d7c"}, + {file = "fonttools-4.42.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c9b1ce7a45978b821a06d375b83763b27a3a5e8a2e4570b3065abad240a18760"}, + {file = "fonttools-4.42.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f720fa82a11c0f9042376fd509b5ed88dab7e3cd602eee63a1af08883b37342b"}, + {file = "fonttools-4.42.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db55cbaea02a20b49fefbd8e9d62bd481aaabe1f2301dabc575acc6b358874fa"}, + {file = "fonttools-4.42.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a35981d90feebeaef05e46e33e6b9e5b5e618504672ca9cd0ff96b171e4bfff"}, + {file = "fonttools-4.42.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:68a02bbe020dc22ee0540e040117535f06df9358106d3775e8817d826047f3fd"}, + {file = "fonttools-4.42.1-cp310-cp310-win32.whl", hash = "sha256:12a7c247d1b946829bfa2f331107a629ea77dc5391dfd34fdcd78efa61f354ca"}, + {file = "fonttools-4.42.1-cp310-cp310-win_amd64.whl", hash = "sha256:a398bdadb055f8de69f62b0fc70625f7cbdab436bbb31eef5816e28cab083ee8"}, + {file = "fonttools-4.42.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:689508b918332fb40ce117131633647731d098b1b10d092234aa959b4251add5"}, + {file = "fonttools-4.42.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e36344e48af3e3bde867a1ca54f97c308735dd8697005c2d24a86054a114a71"}, + {file = "fonttools-4.42.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19b7db825c8adee96fac0692e6e1ecd858cae9affb3b4812cdb9d934a898b29e"}, + {file = "fonttools-4.42.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:113337c2d29665839b7d90b39f99b3cac731f72a0eda9306165a305c7c31d341"}, + {file = "fonttools-4.42.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:37983b6bdab42c501202500a2be3a572f50d4efe3237e0686ee9d5f794d76b35"}, + {file = "fonttools-4.42.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6ed2662a3d9c832afa36405f8748c250be94ae5dfc5283d668308391f2102861"}, + {file = "fonttools-4.42.1-cp311-cp311-win32.whl", hash = "sha256:179737095eb98332a2744e8f12037b2977f22948cf23ff96656928923ddf560a"}, + {file = "fonttools-4.42.1-cp311-cp311-win_amd64.whl", hash = "sha256:f2b82f46917d8722e6b5eafeefb4fb585d23babd15d8246c664cd88a5bddd19c"}, + {file = "fonttools-4.42.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:62f481ac772fd68901573956231aea3e4b1ad87b9b1089a61613a91e2b50bb9b"}, + {file = "fonttools-4.42.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f2f806990160d1ce42d287aa419df3ffc42dfefe60d473695fb048355fe0c6a0"}, + {file = "fonttools-4.42.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db372213d39fa33af667c2aa586a0c1235e88e9c850f5dd5c8e1f17515861868"}, + {file = "fonttools-4.42.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d18fc642fd0ac29236ff88ecfccff229ec0386090a839dd3f1162e9a7944a40"}, + {file = "fonttools-4.42.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8708b98c278012ad267ee8a7433baeb809948855e81922878118464b274c909d"}, + {file = "fonttools-4.42.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c95b0724a6deea2c8c5d3222191783ced0a2f09bd6d33f93e563f6f1a4b3b3a4"}, + {file = "fonttools-4.42.1-cp38-cp38-win32.whl", hash = "sha256:4aa79366e442dbca6e2c8595645a3a605d9eeabdb7a094d745ed6106816bef5d"}, + {file = "fonttools-4.42.1-cp38-cp38-win_amd64.whl", hash = "sha256:acb47f6f8680de24c1ab65ebde39dd035768e2a9b571a07c7b8da95f6c8815fd"}, + {file = "fonttools-4.42.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5fb289b7a815638a7613d46bcf324c9106804725b2bb8ad913c12b6958ffc4ec"}, + {file = "fonttools-4.42.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:53eb5091ddc8b1199330bb7b4a8a2e7995ad5d43376cadce84523d8223ef3136"}, + {file = "fonttools-4.42.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46a0ec8adbc6ff13494eb0c9c2e643b6f009ce7320cf640de106fb614e4d4360"}, + {file = "fonttools-4.42.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cc7d685b8eeca7ae69dc6416833fbfea61660684b7089bca666067cb2937dcf"}, + {file = "fonttools-4.42.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:be24fcb80493b2c94eae21df70017351851652a37de514de553435b256b2f249"}, + {file = "fonttools-4.42.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:515607ec756d7865f23070682622c49d922901943697871fc292277cf1e71967"}, + {file = "fonttools-4.42.1-cp39-cp39-win32.whl", hash = "sha256:0eb79a2da5eb6457a6f8ab904838454accc7d4cccdaff1fd2bd3a0679ea33d64"}, + {file = "fonttools-4.42.1-cp39-cp39-win_amd64.whl", hash = "sha256:7286aed4ea271df9eab8d7a9b29e507094b51397812f7ce051ecd77915a6e26b"}, + {file = "fonttools-4.42.1-py3-none-any.whl", hash = "sha256:9398f244e28e0596e2ee6024f808b06060109e33ed38dcc9bded452fd9bbb853"}, + {file = "fonttools-4.42.1.tar.gz", hash = "sha256:c391cd5af88aacaf41dd7cfb96eeedfad297b5899a39e12f4c2c3706d0a3329d"}, +] + +[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)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "scipy"] +lxml = ["lxml (>=4.0,<5)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.0.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "freezegun" +version = "1.2.2" +description = "Let your Python tests travel through time" +optional = false +python-versions = ">=3.6" +files = [ + {file = "freezegun-1.2.2-py3-none-any.whl", hash = "sha256:ea1b963b993cb9ea195adbd893a48d573fda951b0da64f60883d7e988b606c9f"}, + {file = "freezegun-1.2.2.tar.gz", hash = "sha256:cd22d1ba06941384410cd967d8a99d5ae2442f57dfafeff2fda5de8dc5c05446"}, +] + +[package.dependencies] +python-dateutil = ">=2.7" + +[[package]] +name = "frozenlist" +version = "1.4.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +files = [ + {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:764226ceef3125e53ea2cb275000e309c0aa5464d43bd72abd661e27fffc26ab"}, + {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d6484756b12f40003c6128bfcc3fa9f0d49a687e171186c2d85ec82e3758c559"}, + {file = "frozenlist-1.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9ac08e601308e41eb533f232dbf6b7e4cea762f9f84f6357136eed926c15d12c"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d081f13b095d74b67d550de04df1c756831f3b83dc9881c38985834387487f1b"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:71932b597f9895f011f47f17d6428252fc728ba2ae6024e13c3398a087c2cdea"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:981b9ab5a0a3178ff413bca62526bb784249421c24ad7381e39d67981be2c326"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e41f3de4df3e80de75845d3e743b3f1c4c8613c3997a912dbf0229fc61a8b963"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6918d49b1f90821e93069682c06ffde41829c346c66b721e65a5c62b4bab0300"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e5c8764c7829343d919cc2dfc587a8db01c4f70a4ebbc49abde5d4b158b007b"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8d0edd6b1c7fb94922bf569c9b092ee187a83f03fb1a63076e7774b60f9481a8"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e29cda763f752553fa14c68fb2195150bfab22b352572cb36c43c47bedba70eb"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:0c7c1b47859ee2cac3846fde1c1dc0f15da6cec5a0e5c72d101e0f83dcb67ff9"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:901289d524fdd571be1c7be054f48b1f88ce8dddcbdf1ec698b27d4b8b9e5d62"}, + {file = "frozenlist-1.4.0-cp310-cp310-win32.whl", hash = "sha256:1a0848b52815006ea6596c395f87449f693dc419061cc21e970f139d466dc0a0"}, + {file = "frozenlist-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:b206646d176a007466358aa21d85cd8600a415c67c9bd15403336c331a10d956"}, + {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:de343e75f40e972bae1ef6090267f8260c1446a1695e77096db6cfa25e759a95"}, + {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad2a9eb6d9839ae241701d0918f54c51365a51407fd80f6b8289e2dfca977cc3"}, + {file = "frozenlist-1.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bd7bd3b3830247580de99c99ea2a01416dfc3c34471ca1298bccabf86d0ff4dc"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdf1847068c362f16b353163391210269e4f0569a3c166bc6a9f74ccbfc7e839"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38461d02d66de17455072c9ba981d35f1d2a73024bee7790ac2f9e361ef1cd0c"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5a32087d720c608f42caed0ef36d2b3ea61a9d09ee59a5142d6070da9041b8f"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd65632acaf0d47608190a71bfe46b209719bf2beb59507db08ccdbe712f969b"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261b9f5d17cac914531331ff1b1d452125bf5daa05faf73b71d935485b0c510b"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b89ac9768b82205936771f8d2eb3ce88503b1556324c9f903e7156669f521472"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:008eb8b31b3ea6896da16c38c1b136cb9fec9e249e77f6211d479db79a4eaf01"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e74b0506fa5aa5598ac6a975a12aa8928cbb58e1f5ac8360792ef15de1aa848f"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:490132667476f6781b4c9458298b0c1cddf237488abd228b0b3650e5ecba7467"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:76d4711f6f6d08551a7e9ef28c722f4a50dd0fc204c56b4bcd95c6cc05ce6fbb"}, + {file = "frozenlist-1.4.0-cp311-cp311-win32.whl", hash = "sha256:a02eb8ab2b8f200179b5f62b59757685ae9987996ae549ccf30f983f40602431"}, + {file = "frozenlist-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:515e1abc578dd3b275d6a5114030b1330ba044ffba03f94091842852f806f1c1"}, + {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f0ed05f5079c708fe74bf9027e95125334b6978bf07fd5ab923e9e55e5fbb9d3"}, + {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca265542ca427bf97aed183c1676e2a9c66942e822b14dc6e5f42e038f92a503"}, + {file = "frozenlist-1.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:491e014f5c43656da08958808588cc6c016847b4360e327a62cb308c791bd2d9"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17ae5cd0f333f94f2e03aaf140bb762c64783935cc764ff9c82dff626089bebf"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e78fb68cf9c1a6aa4a9a12e960a5c9dfbdb89b3695197aa7064705662515de2"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5655a942f5f5d2c9ed93d72148226d75369b4f6952680211972a33e59b1dfdc"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c11b0746f5d946fecf750428a95f3e9ebe792c1ee3b1e96eeba145dc631a9672"}, + {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e66d2a64d44d50d2543405fb183a21f76b3b5fd16f130f5c99187c3fb4e64919"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:88f7bc0fcca81f985f78dd0fa68d2c75abf8272b1f5c323ea4a01a4d7a614efc"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5833593c25ac59ede40ed4de6d67eb42928cca97f26feea219f21d0ed0959b79"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:fec520865f42e5c7f050c2a79038897b1c7d1595e907a9e08e3353293ffc948e"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:b826d97e4276750beca7c8f0f1a4938892697a6bcd8ec8217b3312dad6982781"}, + {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ceb6ec0a10c65540421e20ebd29083c50e6d1143278746a4ef6bcf6153171eb8"}, + {file = "frozenlist-1.4.0-cp38-cp38-win32.whl", hash = "sha256:2b8bcf994563466db019fab287ff390fffbfdb4f905fc77bc1c1d604b1c689cc"}, + {file = "frozenlist-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:a6c8097e01886188e5be3e6b14e94ab365f384736aa1fca6a0b9e35bd4a30bc7"}, + {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6c38721585f285203e4b4132a352eb3daa19121a035f3182e08e437cface44bf"}, + {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a0c6da9aee33ff0b1a451e867da0c1f47408112b3391dd43133838339e410963"}, + {file = "frozenlist-1.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:93ea75c050c5bb3d98016b4ba2497851eadf0ac154d88a67d7a6816206f6fa7f"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f61e2dc5ad442c52b4887f1fdc112f97caeff4d9e6ebe78879364ac59f1663e1"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa384489fefeb62321b238e64c07ef48398fe80f9e1e6afeff22e140e0850eef"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10ff5faaa22786315ef57097a279b833ecab1a0bfb07d604c9cbb1c4cdc2ed87"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:007df07a6e3eb3e33e9a1fe6a9db7af152bbd8a185f9aaa6ece10a3529e3e1c6"}, + {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f4f399d28478d1f604c2ff9119907af9726aed73680e5ed1ca634d377abb087"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c5374b80521d3d3f2ec5572e05adc94601985cc526fb276d0c8574a6d749f1b3"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ce31ae3e19f3c902de379cf1323d90c649425b86de7bbdf82871b8a2a0615f3d"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7211ef110a9194b6042449431e08c4d80c0481e5891e58d429df5899690511c2"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:556de4430ce324c836789fa4560ca62d1591d2538b8ceb0b4f68fb7b2384a27a"}, + {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7645a8e814a3ee34a89c4a372011dcd817964ce8cb273c8ed6119d706e9613e3"}, + {file = "frozenlist-1.4.0-cp39-cp39-win32.whl", hash = "sha256:19488c57c12d4e8095a922f328df3f179c820c212940a498623ed39160bc3c2f"}, + {file = "frozenlist-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:6221d84d463fb110bdd7619b69cb43878a11d51cbb9394ae3105d082d5199167"}, + {file = "frozenlist-1.4.0.tar.gz", hash = "sha256:09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"}, +] + +[[package]] +name = "fsspec" +version = "2023.9.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fsspec-2023.9.0-py3-none-any.whl", hash = "sha256:d55b9ab2a4c1f2b759888ae9f93e40c2aa72c0808132e87e282b549f9e6c4254"}, + {file = "fsspec-2023.9.0.tar.gz", hash = "sha256:4dbf0fefee035b7c6d3bbbe6bc99b2f201f40d4dca95b67c2b719be77bcd917f"}, +] + +[package.dependencies] +aiohttp = {version = "<4.0.0a0 || >4.0.0a0,<4.0.0a1 || >4.0.0a1", optional = true, markers = "extra == \"http\""} +requests = {version = "*", optional = true, markers = "extra == \"http\""} + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +devel = ["pytest", "pytest-cov"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "requests"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +tqdm = ["tqdm"] + +[[package]] +name = "gitdb" +version = "4.0.10" +description = "Git Object Database" +optional = true +python-versions = ">=3.7" +files = [ + {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, + {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"}, +] + +[package.dependencies] +smmap = ">=3.0.1,<6" + +[[package]] +name = "gitpython" +version = "3.1.35" +description = "GitPython is a Python library used to interact with Git repositories" +optional = true +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.35-py3-none-any.whl", hash = "sha256:c19b4292d7a1d3c0f653858db273ff8a6614100d1eb1528b014ec97286193c09"}, + {file = "GitPython-3.1.35.tar.gz", hash = "sha256:9cbefbd1789a5fe9bcf621bb34d3f441f3a90c8461d377f84eda73e721d9b06b"}, +] + +[package.dependencies] +gitdb = ">=4.0.1,<5" + +[[package]] +name = "google-api-core" +version = "2.11.1" +description = "Google API client core library" +optional = true +python-versions = ">=3.7" +files = [ + {file = "google-api-core-2.11.1.tar.gz", hash = "sha256:25d29e05a0058ed5f19c61c0a78b1b53adea4d9364b464d014fbda941f6d1c9a"}, + {file = "google_api_core-2.11.1-py3-none-any.whl", hash = "sha256:d92a5a92dc36dd4f4b9ee4e55528a90e432b059f93aee6ad857f9de8cc7ae94a"}, +] + +[package.dependencies] +google-auth = ">=2.14.1,<3.0.dev0" +googleapis-common-protos = ">=1.56.2,<2.0.dev0" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" +requests = ">=2.18.0,<3.0.0.dev0" + +[package.extras] +grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0)"] +grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] +grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] + +[[package]] +name = "google-auth" +version = "2.23.0" +description = "Google Authentication Library" +optional = true +python-versions = ">=3.7" +files = [ + {file = "google-auth-2.23.0.tar.gz", hash = "sha256:753a26312e6f1eaeec20bc6f2644a10926697da93446e1f8e24d6d32d45a922a"}, + {file = "google_auth-2.23.0-py2.py3-none-any.whl", hash = "sha256:2cec41407bd1e207f5b802638e32bb837df968bb5c05f413d0fa526fac4cf7a7"}, +] + +[package.dependencies] +cachetools = ">=2.0.0,<6.0" +pyasn1-modules = ">=0.2.1" +rsa = ">=3.1.4,<5" +urllib3 = "<2.0" + +[package.extras] +aiohttp = ["aiohttp (>=3.6.2,<4.0.0.dev0)", "requests (>=2.20.0,<3.0.0.dev0)"] +enterprise-cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"] +pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] +reauth = ["pyu2f (>=0.1.5)"] +requests = ["requests (>=2.20.0,<3.0.0.dev0)"] + +[[package]] +name = "google-cloud" +version = "0.34.0" +description = "API Client library for Google Cloud" +optional = true +python-versions = "*" +files = [ + {file = "google-cloud-0.34.0.tar.gz", hash = "sha256:01430187cf56df10a9ba775dd547393185d4b40741db0ea5889301f8e7a9d5d3"}, + {file = "google_cloud-0.34.0-py2.py3-none-any.whl", hash = "sha256:fb1ab7b0548fe44b3d538041f0a374505b7f990d448a935ea36649c5ccab5acf"}, +] + +[[package]] +name = "googleapis-common-protos" +version = "1.60.0" +description = "Common protobufs used in Google APIs" +optional = true +python-versions = ">=3.7" +files = [ + {file = "googleapis-common-protos-1.60.0.tar.gz", hash = "sha256:e73ebb404098db405ba95d1e1ae0aa91c3e15a71da031a2eeb6b2e23e7bc3708"}, + {file = "googleapis_common_protos-1.60.0-py2.py3-none-any.whl", hash = "sha256:69f9bbcc6acde92cab2db95ce30a70bd2b81d20b12eff3f1aabaffcbe8a93918"}, +] + +[package.dependencies] +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" + +[package.extras] +grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] + +[[package]] +name = "grpcio" +version = "1.58.0" +description = "HTTP/2-based RPC framework" +optional = true +python-versions = ">=3.7" +files = [ + {file = "grpcio-1.58.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:3e6bebf1dfdbeb22afd95650e4f019219fef3ab86d3fca8ebade52e4bc39389a"}, + {file = "grpcio-1.58.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:cde11577d5b6fd73a00e6bfa3cf5f428f3f33c2d2878982369b5372bbc4acc60"}, + {file = "grpcio-1.58.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:a2d67ff99e70e86b2be46c1017ae40b4840d09467d5455b2708de6d4c127e143"}, + {file = "grpcio-1.58.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1ed979b273a81de36fc9c6716d9fb09dd3443efa18dcc8652501df11da9583e9"}, + {file = "grpcio-1.58.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:458899d2ebd55d5ca2350fd3826dfd8fcb11fe0f79828ae75e2b1e6051d50a29"}, + {file = "grpcio-1.58.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bc7ffef430b80345729ff0a6825e9d96ac87efe39216e87ac58c6c4ef400de93"}, + {file = "grpcio-1.58.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5b23d75e5173faa3d1296a7bedffb25afd2fddb607ef292dfc651490c7b53c3d"}, + {file = "grpcio-1.58.0-cp310-cp310-win32.whl", hash = "sha256:fad9295fe02455d4f158ad72c90ef8b4bcaadfdb5efb5795f7ab0786ad67dd58"}, + {file = "grpcio-1.58.0-cp310-cp310-win_amd64.whl", hash = "sha256:bc325fed4d074367bebd465a20763586e5e1ed5b943e9d8bc7c162b1f44fd602"}, + {file = "grpcio-1.58.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:652978551af02373a5a313e07bfef368f406b5929cf2d50fa7e4027f913dbdb4"}, + {file = "grpcio-1.58.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:9f13a171281ebb4d7b1ba9f06574bce2455dcd3f2f6d1fbe0fd0d84615c74045"}, + {file = "grpcio-1.58.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:8774219e21b05f750eef8adc416e9431cf31b98f6ce9def288e4cea1548cbd22"}, + {file = "grpcio-1.58.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09206106848462763f7f273ca93d2d2d4d26cab475089e0de830bb76be04e9e8"}, + {file = "grpcio-1.58.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62831d5e251dd7561d9d9e83a0b8655084b2a1f8ea91e4bd6b3cedfefd32c9d2"}, + {file = "grpcio-1.58.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:212f38c6a156862098f6bdc9a79bf850760a751d259d8f8f249fc6d645105855"}, + {file = "grpcio-1.58.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4b12754af201bb993e6e2efd7812085ddaaef21d0a6f0ff128b97de1ef55aa4a"}, + {file = "grpcio-1.58.0-cp311-cp311-win32.whl", hash = "sha256:3886b4d56bd4afeac518dbc05933926198aa967a7d1d237a318e6fbc47141577"}, + {file = "grpcio-1.58.0-cp311-cp311-win_amd64.whl", hash = "sha256:002f228d197fea12797a14e152447044e14fb4fdb2eb5d6cfa496f29ddbf79ef"}, + {file = "grpcio-1.58.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:b5e8db0aff0a4819946215f156bd722b6f6c8320eb8419567ffc74850c9fd205"}, + {file = "grpcio-1.58.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:201e550b7e2ede113b63e718e7ece93cef5b0fbf3c45e8fe4541a5a4305acd15"}, + {file = "grpcio-1.58.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:d79b660681eb9bc66cc7cbf78d1b1b9e335ee56f6ea1755d34a31108b80bd3c8"}, + {file = "grpcio-1.58.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ef8d4a76d2c7d8065aba829f8d0bc0055495c998dce1964ca5b302d02514fb3"}, + {file = "grpcio-1.58.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cba491c638c76d3dc6c191d9c75041ca5b8f5c6de4b8327ecdcab527f130bb4"}, + {file = "grpcio-1.58.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6801ff6652ecd2aae08ef994a3e49ff53de29e69e9cd0fd604a79ae4e545a95c"}, + {file = "grpcio-1.58.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:24edec346e69e672daf12b2c88e95c6f737f3792d08866101d8c5f34370c54fd"}, + {file = "grpcio-1.58.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7e473a7abad9af48e3ab5f3b5d237d18208024d28ead65a459bd720401bd2f8f"}, + {file = "grpcio-1.58.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:4891bbb4bba58acd1d620759b3be11245bfe715eb67a4864c8937b855b7ed7fa"}, + {file = "grpcio-1.58.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:e9f995a8a421405958ff30599b4d0eec244f28edc760de82f0412c71c61763d2"}, + {file = "grpcio-1.58.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:2f85f87e2f087d9f632c085b37440a3169fda9cdde80cb84057c2fc292f8cbdf"}, + {file = "grpcio-1.58.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb6b92036ff312d5b4182fa72e8735d17aceca74d0d908a7f08e375456f03e07"}, + {file = "grpcio-1.58.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d81c2b2b24c32139dd2536972f1060678c6b9fbd106842a9fcdecf07b233eccd"}, + {file = "grpcio-1.58.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:fbcecb6aedd5c1891db1d70efbfbdc126c986645b5dd616a045c07d6bd2dfa86"}, + {file = "grpcio-1.58.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92ae871a902cf19833328bd6498ec007b265aabf2fda845ab5bd10abcaf4c8c6"}, + {file = "grpcio-1.58.0-cp38-cp38-win32.whl", hash = "sha256:dc72e04620d49d3007771c0e0348deb23ca341c0245d610605dddb4ac65a37cb"}, + {file = "grpcio-1.58.0-cp38-cp38-win_amd64.whl", hash = "sha256:1c1c5238c6072470c7f1614bf7c774ffde6b346a100521de9ce791d1e4453afe"}, + {file = "grpcio-1.58.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:fe643af248442221db027da43ed43e53b73e11f40c9043738de9a2b4b6ca7697"}, + {file = "grpcio-1.58.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:128eb1f8e70676d05b1b0c8e6600320fc222b3f8c985a92224248b1367122188"}, + {file = "grpcio-1.58.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:039003a5e0ae7d41c86c768ef8b3ee2c558aa0a23cf04bf3c23567f37befa092"}, + {file = "grpcio-1.58.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f061722cad3f9aabb3fbb27f3484ec9d4667b7328d1a7800c3c691a98f16bb0"}, + {file = "grpcio-1.58.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0af11938acf8cd4cf815c46156bcde36fa5850518120920d52620cc3ec1830"}, + {file = "grpcio-1.58.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d4cef77ad2fed42b1ba9143465856d7e737279854e444925d5ba45fc1f3ba727"}, + {file = "grpcio-1.58.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24765a627eb4d9288ace32d5104161c3654128fe27f2808ecd6e9b0cfa7fc8b9"}, + {file = "grpcio-1.58.0-cp39-cp39-win32.whl", hash = "sha256:f0241f7eb0d2303a545136c59bc565a35c4fc3b924ccbd69cb482f4828d6f31c"}, + {file = "grpcio-1.58.0-cp39-cp39-win_amd64.whl", hash = "sha256:dcfba7befe3a55dab6fe1eb7fc9359dc0c7f7272b30a70ae0af5d5b063842f28"}, + {file = "grpcio-1.58.0.tar.gz", hash = "sha256:532410c51ccd851b706d1fbc00a87be0f5312bd6f8e5dbf89d4e99c7f79d7499"}, +] + +[package.extras] +protobuf = ["grpcio-tools (>=1.58.0)"] + +[[package]] +name = "grpcio-tools" +version = "1.58.0" +description = "Protobuf code generator for gRPC" +optional = true +python-versions = ">=3.7" +files = [ + {file = "grpcio-tools-1.58.0.tar.gz", hash = "sha256:6f4d80ceb591e31ca4dceec747dbe56132e1392a0a9bb1c8fe001d1b5cac898a"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:60c874908f3b40f32f1bb0221f7b3ab65ecb53a4d0a9f0a394f031f1b292c177"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:1852e798f31e5437ca7b37abc910e028b34732fb19364862cedb87b1dab66fad"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:149fb48f53cb691a6328f68bed8e4036c730f7106b7f98e92c2c0403f0b9e93c"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba3d383e5ca93826038b70f326fce8e8d12dd9b2f64d363a3d612f7475f12dd2"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6997511e9d2979f7a2389479682dbb06823f21a904e8fb0a5c6baaf1b4b4a863"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8de0b701da479643f71fad71fe66885cddd89441ae16e2c724939b47742dc72e"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:43cc23908b63fcaefe690b10f68a2d8652c994b5b36ab77d2271d9608c895320"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-win32.whl", hash = "sha256:2c2221123d010dc6231799e63a37f2f4786bf614ef65b23009c387cd20d8b193"}, + {file = "grpcio_tools-1.58.0-cp310-cp310-win_amd64.whl", hash = "sha256:df2788736bdf58abe7b0e4d6b1ff806f7686c98c5ad900da312252e3322d91c4"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:b6ea5578712cdb29b0ff60bfc6405bf0e8d681b9c71d106dd1cda54fe7fe4e55"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:c29880f491581c83181c0a84a4d11402af2b13166a5266f64e246adf1da7aa66"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:32d51e933c3565414dd0835f930bb28a1cdeba435d9d2c87fa3cf8b1d284db3c"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ad9d77f25514584b1ddc981d70c9e50dfcfc388aa5ba943eee67520c5267ed9"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4882382631e6352819059278a5c878ce0b067008dd490911d16d5616e8a36d85"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d84091a189d848d94645b7c48b61734c12ec03b0d46e5fc0049343a26989ac5c"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:85ac28a9621e9b92a3fc416288c4ce45542db0b4c31b3e23031dd8e0a0ec5590"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-win32.whl", hash = "sha256:7371d8ea80234b29affec145e25569523f549520ed7e53b2aa92bed412cdecfd"}, + {file = "grpcio_tools-1.58.0-cp311-cp311-win_amd64.whl", hash = "sha256:6997df6e7c5cf4d3ddc764240c1ff6a04b45d70ec28913b38fbc6396ef743e12"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:ac65b8d6e3acaf88b815edf9af88ff844b6600ff3d2591c05ba4f655b45d5fb4"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:88e8191d0dd789bebf42533808728f5ce75d2c51e2a72bdf20abe5b5e3fbec42"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:a3dbece2a121761499a659b799979d4b738586d1065439053de553773eee11ca"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1086fe240c4c879b9721952b47d46996deb283c2d9355a8dc24a804811aacf70"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ae3dca059d5b358dd03fb63277428fa7d771605d4074a019138dd38d70719a"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3f8904ac7fc3da2e874f00b3a986e8b7e004f499344a8e7eb213c26dfb025041"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:aadbd8393ae332e49731adb31e741f2e689989150569b7acc939f5ea43124e2d"}, + {file = "grpcio_tools-1.58.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1cb6e24194786687d4f23c64de1f0ce553af51de22746911bc37340f85f9783e"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:6ec43909095c630df3e479e77469bdad367067431f4af602f6ccb978a3b78afd"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:4be49ed320b0ebcbc21d19ef555fbf229c1c452105522b728e1171ee2052078e"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:28eefebddec3d3adf19baca78f8b82a2287d358e1b1575ae018cdca8eacc6269"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ef8c696e9d78676cc3f583a92bbbf2c84e94e350f7ad22f150a52559f4599d1"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9aeb5949e46558d21c51fd3ec3eeecc59c94dbca76c67c0a80d3da6b7437930c"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f7144aad9396d35fb1b80429600a970b559c2ad4d07020eeb180fe83cea2bee"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ee26e9253a721fff355737649678535f76cf5d642aa3ac0cd937832559b90af"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-win32.whl", hash = "sha256:343f572312039059a8797d6e29a7fc62196e73131ab01755660a9d48202267c1"}, + {file = "grpcio_tools-1.58.0-cp38-cp38-win_amd64.whl", hash = "sha256:cd7acfbb43b7338a78cf4a67528d05530d574d92b7c829d185b78dfc451d158f"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:46628247fbce86d18232eead24bd22ed0826c79f3fe2fc2fbdbde45971361049"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:51587842a54e025a3d0d37afcf4ef2b7ac1def9a5d17448665cb424b53d6c287"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:a062ae3072a2a39a3c057f4d68b57b021f1dd2956cd09aab39709f6af494e1de"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eec3c93a08df11c80ef1c29a616bcbb0d83dbc6ea41b48306fcacc720416dfa7"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b63f823ac991ff77104da614d2a2485a59d37d57830eb2e387a6e2a3edc7fa2b"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:579c11a9f198847ed48dbc4f211c67fe96a73320b87c81f01b044b72e24a7d77"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6ca2fc1dd8049d417a5034d944c9df05cee76f855b3e431627ab4292e7c01c47"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-win32.whl", hash = "sha256:453023120114c35d3d9d6717ea0820e5d5c140f51f9d0b621de4397ff854471b"}, + {file = "grpcio_tools-1.58.0-cp39-cp39-win_amd64.whl", hash = "sha256:b6c896f1df99c35cf062d4803c15663ff00a33ff09add28baa6e475cf6b5e258"}, +] + +[package.dependencies] +grpcio = ">=1.58.0" +protobuf = ">=4.21.6,<5.0dev" +setuptools = "*" + +[[package]] +name = "hiredis" +version = "2.2.3" +description = "Python wrapper for hiredis" +optional = true +python-versions = ">=3.7" +files = [ + {file = "hiredis-2.2.3-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:9a1a80a8fa767f2fdc3870316a54b84fe9fc09fa6ab6a2686783de6a228a4604"}, + {file = "hiredis-2.2.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3f006c28c885deb99b670a5a66f367a175ab8955b0374029bad7111f5357dcd4"}, + {file = "hiredis-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffaf841546905d90ff189de7397aa56413b1ce5e54547f17a98f0ebf3a3b0a3b"}, + {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cadb0ac7ba3babfd804e425946bec9717b320564a1390f163a54af9365a720a"}, + {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33bc4721632ef9708fa44e5df0066053fccc8e65410a2c48573192517a533b48"}, + {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:227c5b4bcb60f89008c275d596e4a7b6625a6b3c827b8a66ae582eace7051f71"}, + {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61995eb826009d99ed8590747bc0da683a5f4fbb4faa8788166bf3810845cd5c"}, + {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f969edc851efe23010e0f53a64269f2629a9364135e9ec81c842e8b2277d0c1"}, + {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27e560eefb57914d742a837f1da98d3b29cb22eff013c8023b7cf52ae6e051d"}, + {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3759f4789ae1913b7df278dfc9e8749205b7a106f888cd2903d19461e24a7697"}, + {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c6cb613148422c523945cdb8b6bed617856f2602fd8750e33773ede2616e55d5"}, + {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:1d274d5c511dfc03f83f997d3238eaa9b6ee3f982640979f509373cced891e98"}, + {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b7fe075e91b9d9cff40eba4fb6a8eff74964d3979a39be9a9ef58b1b4cb3604"}, + {file = "hiredis-2.2.3-cp310-cp310-win32.whl", hash = "sha256:77924b0d32fd1f493d3df15d9609ddf9d94c31a364022a6bf6b525ce9da75bea"}, + {file = "hiredis-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:dcb0569dd5bfe6004658cd0f229efa699a3169dcb4f77bd72e188adda302063d"}, + {file = "hiredis-2.2.3-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:d115790f18daa99b5c11a506e48923b630ef712e9e4b40482af942c3d40638b8"}, + {file = "hiredis-2.2.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c3b8be557e08b234774925622e196f0ee36fe4eab66cd19df934d3efd8f3743"}, + {file = "hiredis-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3f5446068197b35a11ccc697720c41879c8657e2e761aaa8311783aac84cef20"}, + {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa17a3b22b3726d54d7af20394f65d4a1735a842a4e0f557dc67a90f6965c4bc"}, + {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7df645b6b7800e8b748c217fbd6a4ca8361bcb9a1ae6206cc02377833ec8a1aa"}, + {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fb9300959a0048138791f3d68359d61a788574ec9556bddf1fec07f2dbc5320"}, + {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d7e459fe7313925f395148d36d9b7f4f8dac65be06e45d7af356b187cef65fc"}, + {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8eceffca3941775b646cd585cd19b275d382de43cc3327d22f7c75d7b003d481"}, + {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b17baf702c6e5b4bb66e1281a3efbb1d749c9d06cdb92b665ad81e03118f78fc"}, + {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e43e2b5acaad09cf48c032f7e4926392bb3a3f01854416cf6d82ebff94d5467"}, + {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:a7205497d7276a81fe92951a29616ef96562ed2f91a02066f72b6f93cb34b40e"}, + {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:126623b03c31cb6ac3e0d138feb6fcc36dd43dd34fc7da7b7a0c38b5d75bc896"}, + {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:071c5814b850574036506a8118034f97c3cbf2fe9947ff45a27b07a48da56240"}, + {file = "hiredis-2.2.3-cp311-cp311-win32.whl", hash = "sha256:d1be9e30e675f5bc1cb534633324578f6f0944a1bcffe53242cf632f554f83b6"}, + {file = "hiredis-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9a7c987e161e3c58f992c63b7e26fea7fe0777f3b975799d23d65bbb8cb5899"}, + {file = "hiredis-2.2.3-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:f2dcb8389fa3d453927b1299f46bdb38473c293c8269d5c777d33ea0e526b610"}, + {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2df98f5e071320c7d84e8bd07c0542acdd0a7519307fc31774d60e4b842ec4f"}, + {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61a72e4a523cdfc521762137559c08dfa360a3caef63620be58c699d1717dac1"}, + {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9b9e5bde7030cae83aa900b5bd660decc65afd2db8c400f3c568c815a47ca2a"}, + {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd2614f17e261f72efc2f19f5e5ff2ee19e2296570c0dcf33409e22be30710de"}, + {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:46525fbd84523cac75af5bf524bc74aaac848beaf31b142d2df8a787d9b4bbc4"}, + {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d1a4ce40ba11da9382c14da31f4f9e88c18f7d294f523decd0fadfb81f51ad18"}, + {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5cda592405bbd29d53942e0389dc3fa77b49c362640210d7e94a10c14a677d4d"}, + {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:5e6674a017629284ef373b50496d9fb1a89b85a20a7fa100ecd109484ec748e5"}, + {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:e62ec131816c6120eff40dffe43424e140264a15fa4ab88c301bd6a595913af3"}, + {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:17e938d9d3ee92e1adbff361706f1c36cc60eeb3e3eeca7a3a353eae344f4c91"}, + {file = "hiredis-2.2.3-cp37-cp37m-win32.whl", hash = "sha256:95d2305fd2a7b179cacb48b10f618872fc565c175f9f62b854e8d1acac3e8a9e"}, + {file = "hiredis-2.2.3-cp37-cp37m-win_amd64.whl", hash = "sha256:8f9dbe12f011a9b784f58faecc171d22465bb532c310bd588d769ba79a59ef5a"}, + {file = "hiredis-2.2.3-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:5a4bcef114fc071d5f52c386c47f35aae0a5b43673197b9288a15b584da8fa3a"}, + {file = "hiredis-2.2.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:232d0a70519865741ba56e1dfefd160a580ae78c30a1517bad47b3cf95a3bc7d"}, + {file = "hiredis-2.2.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9076ce8429785c85f824650735791738de7143f61f43ae9ed83e163c0ca0fa44"}, + {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec58fb7c2062f835595c12f0f02dcda76d0eb0831423cc191d1e18c9276648de"}, + {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f2b34a6444b8f9c1e9f84bd2c639388e5d14f128afd14a869dfb3d9af893aa2"}, + {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:818dfd310aa1020a13cd08ee48e116dd8c3bb2e23b8161f8ac4df587dd5093d7"}, + {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96d9ea6c8d4cbdeee2e0d43379ce2881e4af0454b00570677c59f33f2531cd38"}, + {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1eadbcd3de55ac42310ff82550d3302cb4efcd4e17d76646a17b6e7004bb42b"}, + {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:477c34c4489666dc73cb5e89dafe2617c3e13da1298917f73d55aac4696bd793"}, + {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:14824e457e4f5cda685c3345d125da13949bcf3bb1c88eb5d248c8d2c3dee08f"}, + {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:9cd32326dfa6ce87edf754153b0105aca64486bebe93b9600ccff74fa0b224df"}, + {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:51341e70b467004dcbec3a6ce8c478d2d6241e0f6b01e4c56764afd5022e1e9d"}, + {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2443659c76b226267e2a04dbbb21bc2a3f91aa53bdc0c22964632753ae43a247"}, + {file = "hiredis-2.2.3-cp38-cp38-win32.whl", hash = "sha256:4e3e3e31423f888d396b1fc1f936936e52af868ac1ec17dd15e3eeba9dd4de24"}, + {file = "hiredis-2.2.3-cp38-cp38-win_amd64.whl", hash = "sha256:20f509e3a1a20d6e5f5794fc37ceb21f70f409101fcfe7a8bde783894d51b369"}, + {file = "hiredis-2.2.3-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:d20891e3f33803b26d54c77fd5745878497091e33f4bbbdd454cf6e71aee8890"}, + {file = "hiredis-2.2.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:50171f985e17970f87d5a29e16603d1e5b03bdbf5c2691a37e6c912942a6b657"}, + {file = "hiredis-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9944a2cac25ffe049a7e89f306e11b900640837d1ef38d9be0eaa4a4e2b73a52"}, + {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a5c8019ff94988d56eb49b15de76fe83f6b42536d76edeb6565dbf7fe14b973"}, + {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a286ded34eb16501002e3713b3130c987366eee2ba0d58c33c72f27778e31676"}, + {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b3e974ad15eb32b1f537730dea70b93a4c3db7b026de3ad2b59da49c6f7454d"}, + {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08415ea74c1c29b9d6a4ca3dd0e810dc1af343c1d1d442e15ba133b11ab5be6a"}, + {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e17d04ea58ab8cf3f2dc52e875db16077c6357846006780086fff3189fb199d"}, + {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6ccdcb635dae85b006592f78e32d97f4bc7541cb27829d505f9c7fefcef48298"}, + {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69536b821dd1bc78058a6e7541743f8d82bf2d981b91280b14c4daa6cdc7faba"}, + {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:3753df5f873d473f055e1f8837bfad0bd3b277c86f3c9bf058c58f14204cd901"}, + {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6f88cafe46612b6fa68e6dea49e25bebf160598bba00101caa51cc8c1f18d597"}, + {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:33ee3ea5cad3a8cb339352cd230b411eb437a2e75d7736c4899acab32056ccdb"}, + {file = "hiredis-2.2.3-cp39-cp39-win32.whl", hash = "sha256:b4f3d06dc16671b88a13ae85d8ca92534c0b637d59e49f0558d040a691246422"}, + {file = "hiredis-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4f674e309cd055ee7a48304ceb8cf43265d859faf4d7d01d270ce45e976ae9d3"}, + {file = "hiredis-2.2.3-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:8f280ab4e043b089777b43b4227bdc2035f88da5072ab36588e0ccf77d45d058"}, + {file = "hiredis-2.2.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15c2a551f3b8a26f7940d6ee10b837810201754b8d7e6f6b1391655370882c5a"}, + {file = "hiredis-2.2.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60c4e3c258eafaab21b174b17270a0cc093718d61cdbde8c03f85ec4bf835343"}, + {file = "hiredis-2.2.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc36a9dded458d4e37492fe3e619c6c83caae794d26ad925adbce61d592f8428"}, + {file = "hiredis-2.2.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:4ed68a3b1ccb4313d2a42546fd7e7439ad4745918a48b6c9bcaa61e1e3e42634"}, + {file = "hiredis-2.2.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3bf4b5bae472630c229518e4a814b1b68f10a3d9b00aeaec45f1a330f03a0251"}, + {file = "hiredis-2.2.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33a94d264e6e12a79d9bb8af333b01dc286b9f39c99072ab5fef94ce1f018e17"}, + {file = "hiredis-2.2.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fa6811a618653164f918b891a0fa07052bd71a799defa5c44d167cac5557b26"}, + {file = "hiredis-2.2.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af33f370be90b48bbaf0dab32decbdcc522b1fa95d109020a963282086518a8e"}, + {file = "hiredis-2.2.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b9953d87418ac228f508d93898ab572775e4d3b0eeb886a1a7734553bcdaf291"}, + {file = "hiredis-2.2.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5e7bb4dd524f50b71c20ef5a12bd61da9b463f8894b18a06130942fe31509881"}, + {file = "hiredis-2.2.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89a258424158eb8b3ed9f65548d68998da334ef155d09488c5637723eb1cd697"}, + {file = "hiredis-2.2.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f4a65276f6ecdebe75f2a53f578fbc40e8d2860658420d5e0611c56bbf5054c"}, + {file = "hiredis-2.2.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:334f2738700b20faa04a0d813366fb16ed17287430a6b50584161d5ad31ca6d7"}, + {file = "hiredis-2.2.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d194decd9608f11c777946f596f31d5aacad13972a0a87829ae1e6f2d26c1885"}, + {file = "hiredis-2.2.3.tar.gz", hash = "sha256:e75163773a309e56a9b58165cf5a50e0f84b755f6ff863b2c01a38918fe92daa"}, +] + +[[package]] +name = "identify" +version = "2.5.28" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.5.28-py2.py3-none-any.whl", hash = "sha256:87816de144bf46d161bd5b3e8f5596b16cade3b80be537087334b26bc5c177f3"}, + {file = "identify-2.5.28.tar.gz", hash = "sha256:94bb59643083ebd60dc996d043497479ee554381fbc5307763915cda49b0e78f"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "idna" +version = "3.4" +description = "Internationalized Domain Names in Applications (IDNA)" +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 = "importlib-metadata" +version = "6.8.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, + {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, +] + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] + +[[package]] +name = "importlib-resources" +version = "6.0.1" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.0.1-py3-none-any.whl", hash = "sha256:134832a506243891221b88b4ae1213327eea96ceb4e407a00d790bb0626f45cf"}, + {file = "importlib_resources-6.0.1.tar.gz", hash = "sha256:4359457e42708462b9626a04657c6208ad799ceb41e5c58c57ffa0e6a098a5d4"}, +] + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +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" +version = "6.25.2" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.25.2-py3-none-any.whl", hash = "sha256:2e2ee359baba19f10251b99415bb39de1e97d04e1fab385646f24f0596510b77"}, + {file = "ipykernel-6.25.2.tar.gz", hash = "sha256:f468ddd1f17acb48c8ce67fcfa49ba6d46d4f9ac0438c1f441be7c3d1372230b"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=20" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipympl" +version = "0.9.3" +description = "Matplotlib Jupyter Extension" +optional = false +python-versions = "*" +files = [ + {file = "ipympl-0.9.3-py2.py3-none-any.whl", hash = "sha256:d113cd55891bafe9b27ef99b6dd111a87beb6bb2ae550c404292272103be8013"}, + {file = "ipympl-0.9.3.tar.gz", hash = "sha256:49bab75c05673a6881d1aaec5d8ac81d4624f73d292d154c5fb7096f10236a2b"}, +] + +[package.dependencies] +ipython = "<9" +ipython-genutils = "*" +ipywidgets = ">=7.6.0,<9" +matplotlib = ">=3.4.0,<4" +numpy = "*" +pillow = "*" +traitlets = "<6" + +[package.extras] +docs = ["Sphinx (>=1.5)", "myst-nb", "sphinx-book-theme", "sphinx-copybutton", "sphinx-thebe", "sphinx-togglebutton"] + +[[package]] +name = "ipython" +version = "8.15.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.9" +files = [ + {file = "ipython-8.15.0-py3-none-any.whl", hash = "sha256:45a2c3a529296870a97b7de34eda4a31bee16bc7bf954e07d39abe49caf8f887"}, + {file = "ipython-8.15.0.tar.gz", hash = "sha256:2baeb5be6949eeebf532150f81746f8333e2ccce02de1c7eedde3f23ed5e9f1e"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "sys_platform == \"darwin\""} +backcall = "*" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +pickleshare = "*" +prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" +typing-extensions = {version = "*", markers = "python_version < \"3.10\""} + +[package.extras] +all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] + +[[package]] +name = "ipython-autotime" +version = "0.3.1" +description = "Time everything in IPython" +optional = false +python-versions = "*" +files = [ + {file = "ipython-autotime-0.3.1.tar.gz", hash = "sha256:d839aca97d54d5bfc0bbf9aa9dc34ded577cc3b38da5f6fd6d25a8fffe7f05d1"}, + {file = "ipython_autotime-0.3.1-py2.py3-none-any.whl", hash = "sha256:80ce21c6827e6b1699496e788f809351aa7b356d21cd7ee436e2471e9514da8c"}, +] + +[package.dependencies] +ipython = "*" + +[[package]] +name = "ipython-genutils" +version = "0.2.0" +description = "Vestigial utilities from IPython" +optional = false +python-versions = "*" +files = [ + {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, + {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, +] + +[[package]] +name = "ipywidgets" +version = "8.1.0" +description = "Jupyter interactive widgets" +optional = false +python-versions = ">=3.7" +files = [ + {file = "ipywidgets-8.1.0-py3-none-any.whl", hash = "sha256:6c8396cc7b8c95dfb4e9ab0054f48c002f045e7e5d7ae523f559d64e525a98ab"}, + {file = "ipywidgets-8.1.0.tar.gz", hash = "sha256:ce97dd90525b3066fd00094690964e7eac14cf9b7745d35565b5eeac20cce687"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0.7,<3.1.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0.7,<4.1.0" + +[package.extras] +test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "jedi" +version = "0.19.0" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.0-py2.py3-none-any.whl", hash = "sha256:cb8ce23fbccff0025e9386b5cf85e892f94c9b822378f8da49970471335ac64e"}, + {file = "jedi-0.19.0.tar.gz", hash = "sha256:bcf9894f1753969cbac8022a8c2eaee06bfa3724e4192470aaffe7eb6272b0c4"}, +] + +[package.dependencies] +parso = ">=0.8.3,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +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" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jmespath" +version = "1.0.1" +description = "JSON Matching Expressions" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, + {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, +] + +[[package]] +name = "joblib" +version = "1.3.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.7" +files = [ + {file = "joblib-1.3.2-py3-none-any.whl", hash = "sha256:ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9"}, + {file = "joblib-1.3.2.tar.gz", hash = "sha256:92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1"}, +] + +[[package]] +name = "json5" +version = "0.9.14" +description = "A Python implementation of the JSON5 data format." +optional = false +python-versions = "*" +files = [ + {file = "json5-0.9.14-py2.py3-none-any.whl", hash = "sha256:740c7f1b9e584a468dbb2939d8d458db3427f2c93ae2139d05f47e453eae964f"}, + {file = "json5-0.9.14.tar.gz", hash = "sha256:9ed66c3a6ca3510a976a9ef9b8c0787de24802724ab1860bc0153c7fdd589b02"}, +] + +[package.extras] +dev = ["hypothesis"] + +[[package]] +name = "jsonpointer" +version = "2.4" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, +] + +[[package]] +name = "jsonschema" +version = "4.19.0" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.19.0-py3-none-any.whl", hash = "sha256:043dc26a3845ff09d20e4420d6012a9c91c9aa8999fa184e7efcfeccb41e32cb"}, + {file = "jsonschema-4.19.0.tar.gz", hash = "sha256:6e1e7569ac13be8139b2dd2c21a55d350066ee3f80df06c608b398cdc6f30e8f"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +rpds-py = ">=0.7.1" +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jsonschema-specifications" +version = "2023.7.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.7.1-py3-none-any.whl", hash = "sha256:05adf340b659828a004220a9613be00fa3f223f2b82002e273dee62fd50524b1"}, + {file = "jsonschema_specifications-2023.7.1.tar.gz", hash = "sha256:c91a50404e88a1f6ba40636778e2ee08f6e24c5613fe4c53ac24578a5a7f72bb"}, +] + +[package.dependencies] +referencing = ">=0.28.0" + +[[package]] +name = "jupyter" +version = "1.0.0" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +optional = false +python-versions = "*" +files = [ + {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, + {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, + {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, +] + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +nbconvert = "*" +notebook = "*" +qtconsole = "*" + +[[package]] +name = "jupyter-client" +version = "8.3.1" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.3.1-py3-none-any.whl", hash = "sha256:5eb9f55eb0650e81de6b7e34308d8b92d04fe4ec41cd8193a913979e33d8e1a5"}, + {file = "jupyter_client-8.3.1.tar.gz", hash = "sha256:60294b2d5b869356c893f57b1a877ea6510d60d45cf4b38057f1672d85699ac9"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +description = "Jupyter terminal console" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, +] + +[package.dependencies] +ipykernel = ">=6.14" +ipython = "*" +jupyter-client = ">=7.0.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +prompt-toolkit = ">=3.0.30" +pygments = "*" +pyzmq = ">=17" +traitlets = ">=5.4" + +[package.extras] +test = ["flaky", "pexpect", "pytest"] + +[[package]] +name = "jupyter-core" +version = "5.3.1" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.3.1-py3-none-any.whl", hash = "sha256:ae9036db959a71ec1cac33081eeb040a79e681f08ab68b0883e9a676c7a90dce"}, + {file = "jupyter_core-5.3.1.tar.gz", hash = "sha256:5ba5c7938a7f97a6b0481463f7ff0dbac7c15ba48cf46fa4035ca6e838aa1aba"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.7.0" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_events-0.7.0-py3-none-any.whl", hash = "sha256:4753da434c13a37c3f3c89b500afa0c0a6241633441421f6adafe2fb2e2b924e"}, + {file = "jupyter_events-0.7.0.tar.gz", hash = "sha256:7be27f54b8388c03eefea123a4f79247c5b9381c49fb1cd48615ee191eb12615"}, +] + +[package.dependencies] +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +referencing = "*" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] + +[[package]] +name = "jupyter-lsp" +version = "2.2.0" +description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter-lsp-2.2.0.tar.gz", hash = "sha256:8ebbcb533adb41e5d635eb8fe82956b0aafbf0fd443b6c4bfa906edeeb8635a1"}, + {file = "jupyter_lsp-2.2.0-py3-none-any.whl", hash = "sha256:9e06b8b4f7dd50300b70dd1a78c0c3b0c3d8fa68e0f2d8a5d1fbab62072aca3f"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jupyter-server = ">=1.1.2" + +[[package]] +name = "jupyter-server" +version = "2.7.3" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.7.3-py3-none-any.whl", hash = "sha256:8e4b90380b59d7a1e31086c4692231f2a2ea4cb269f5516e60aba72ce8317fc9"}, + {file = "jupyter_server-2.7.3.tar.gz", hash = "sha256:d4916c8581c4ebbc534cebdaa8eca2478d9f3bfdd88eae29fcab0120eac57649"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = "*" +jinja2 = "*" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.6.0" +jupyter-server-terminals = "*" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = "*" +packaging = "*" +prometheus-client = "*" +pywinpty = {version = "*", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = "*" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.4.4" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.4.4-py3-none-any.whl", hash = "sha256:75779164661cec02a8758a5311e18bb8eb70c4e86c6b699403100f1585a12a36"}, + {file = "jupyter_server_terminals-0.4.4.tar.gz", hash = "sha256:57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<3.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab" +version = "4.0.5" +description = "JupyterLab computational environment" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab-4.0.5-py3-none-any.whl", hash = "sha256:13b3a326e7b95d72746fe20dbe80ee1e71165d6905e01ceaf1320eb809cb1b47"}, + {file = "jupyterlab-4.0.5.tar.gz", hash = "sha256:de49deb75f9b9aec478ed04754cbefe9c5d22fd796a5783cdc65e212983d3611"}, +] + +[package.dependencies] +async-lru = ">=1.0.0" +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +ipykernel = "*" +jinja2 = ">=3.0.3" +jupyter-core = "*" +jupyter-lsp = ">=2.0.0" +jupyter-server = ">=2.4.0,<3" +jupyterlab-server = ">=2.19.0,<3" +notebook-shim = ">=0.2" +packaging = "*" +tomli = {version = "*", markers = "python_version < \"3.11\""} +tornado = ">=6.2.0" +traitlets = "*" + +[package.extras] +dev = ["black[jupyter] (==23.3.0)", "build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.0.271)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.0.1)", "ipython (==8.14.0)", "ipywidgets (==8.0.6)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post0)", "matplotlib (==3.7.1)", "nbconvert (>=7.0.0)", "pandas (==2.0.2)", "scipy (==1.10.1)", "vega-datasets (==0.9.0)"] +test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.2.2" +description = "Pygments theme using JupyterLab CSS variables" +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-server" +version = "2.24.0" +description = "A set of server components for JupyterLab and JupyterLab like applications." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyterlab_server-2.24.0-py3-none-any.whl", hash = "sha256:5f077e142bb8dc9b843d960f940c513581bceca3793a0d80f9c67d9522c4e876"}, + {file = "jupyterlab_server-2.24.0.tar.gz", hash = "sha256:4e6f99e0a5579bbbc32e449c4dbb039561d4f1a7827d5733273ed56738f21f07"}, +] + +[package.dependencies] +babel = ">=2.10" +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jinja2 = ">=3.0.3" +json5 = ">=0.9.0" +jsonschema = ">=4.17.3" +jupyter-server = ">=1.21,<3" +packaging = ">=21.3" +requests = ">=2.28" + +[package.extras] +docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] +openapi = ["openapi-core (>=0.16.1,<0.17.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "jupyterlab-server[openapi]", "openapi-spec-validator (>=0.5.1,<0.7.0)", "pytest (>=7.0)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.8" +description = "Jupyter interactive widgets for JupyterLab" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyterlab_widgets-3.0.8-py3-none-any.whl", hash = "sha256:4715912d6ceab839c9db35953c764b3214ebbc9161c809f6e0510168845dfdf5"}, + {file = "jupyterlab_widgets-3.0.8.tar.gz", hash = "sha256:d428ab97b8d87cc7c54cbf37644d6e0f0e662f23876e05fa460a73ec3257252a"}, +] + +[[package]] +name = "kiwisolver" +version = "1.4.5" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.7" +files = [ + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, + {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, +] + +[[package]] +name = "lightning-utilities" +version = "0.9.0" +description = "PyTorch Lightning Sample project." +optional = false +python-versions = ">=3.7" +files = [ + {file = "lightning-utilities-0.9.0.tar.gz", hash = "sha256:efbf2c488c257f942abdfd06cf646fb84ca215a9663b60081811e22a15ee033b"}, + {file = "lightning_utilities-0.9.0-py3-none-any.whl", hash = "sha256:918dd90c775719e3855631db6282ad75c14da4c5727c4cebdd1589d865fad03d"}, +] + +[package.dependencies] +packaging = ">=17.1" +typing-extensions = "*" + +[package.extras] +cli = ["fire"] +docs = ["requests (>=2.0.0)"] +typing = ["mypy (>=1.0.0)"] + +[[package]] +name = "llvmlite" +version = "0.41.0rc1" +description = "lightweight wrapper around basic LLVM functionality" +optional = false +python-versions = ">=3.8" +files = [ + {file = "llvmlite-0.41.0rc1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ca2ecd52ad39e3018fdffcdb937e5b787bf0e5b892d9656aa7c30b12361a6cab"}, + {file = "llvmlite-0.41.0rc1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:139040cb00610bf9987546b01c59bce7421e30caab89d8c6632b616c24e4da5c"}, + {file = "llvmlite-0.41.0rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eea7266005bbbe5dc6214c200f011bbb6d61640e57d9b663a7bf6d4e786fdd42"}, + {file = "llvmlite-0.41.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9037ffcab90d1db62c58120884e78e094b17be0f929ab7bffdbe05be56253eb8"}, + {file = "llvmlite-0.41.0rc1-cp310-cp310-win32.whl", hash = "sha256:6d3c6fbaac49fe4c6b190a06387303bd4723707c5f7d825f771fe4ad546a2bf6"}, + {file = "llvmlite-0.41.0rc1-cp310-cp310-win_amd64.whl", hash = "sha256:810fbcf49f5362f940be095ad61581ffe0546f76f79894bcae0da6d4944ecc7d"}, + {file = "llvmlite-0.41.0rc1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7e8dec776e68f2839eaaaea456fae832710088dfdba6d3bf9d40a313e6fa5e"}, + {file = "llvmlite-0.41.0rc1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67c7e5b50b31aeeeeb51f437ab7ecf0ab822e8fe7c3e4216e8d94f0c15644e71"}, + {file = "llvmlite-0.41.0rc1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90b0f37b47feed8f727eb178d71fab51ebf682f4a182692e16fcb22286f965d5"}, + {file = "llvmlite-0.41.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4190d1f148ebd79a0d9da4a60b187157d9c2c09f88f9113146f9e026b840859"}, + {file = "llvmlite-0.41.0rc1-cp311-cp311-win_amd64.whl", hash = "sha256:ed43d545edb62ba58853968520553080fdbfa4171f1fd9fa98a749b106edff3d"}, + {file = "llvmlite-0.41.0rc1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:80c8be08e5a4d30d4d3c98d8ebc9ffaf953ac649aeccf62a2be2fc7a1623f205"}, + {file = "llvmlite-0.41.0rc1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:82a372336f2b8b428dc96649de8e51a08f7c031eca901aba5319cd48b49366d0"}, + {file = "llvmlite-0.41.0rc1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea966db9703759918529e429a5a69c3644b110cfd09e36c8780bfbd15da8f5f8"}, + {file = "llvmlite-0.41.0rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:673b3cb15b70baaefe29fe8b3169b212cb27392d2d8527d3a9c469737d3442a2"}, + {file = "llvmlite-0.41.0rc1-cp38-cp38-win32.whl", hash = "sha256:84baf82e20d3e87a7dad6fd6d1f3cb467ab58cd57d855ba4928686aae47908dd"}, + {file = "llvmlite-0.41.0rc1-cp38-cp38-win_amd64.whl", hash = "sha256:3994a0b666914aba13b45b8af3503cb410c91d58d191836a10ad48c215a84456"}, + {file = "llvmlite-0.41.0rc1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a9b54bd2c143e8de200fba58b3d8abd1cc832dc25463703e78eb264eff032946"}, + {file = "llvmlite-0.41.0rc1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:80da4328f78f4d627581a74ec258cfeb2dfb8464eacf5a0d06f3200e1b18b0d1"}, + {file = "llvmlite-0.41.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c775d3917db0245547fd0ad48ffac06eca9a9f6a4abb6d8c32d420dab5a9d19"}, + {file = "llvmlite-0.41.0rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6085fecdbd4c1499c82162ec3bf63f0136b95fa2174ba74c8b1de8241748bd5a"}, + {file = "llvmlite-0.41.0rc1-cp39-cp39-win32.whl", hash = "sha256:650a646e0c530e18cc13f34856fee71f47260c9ddbc821a3d75bc8b1147aa5eb"}, + {file = "llvmlite-0.41.0rc1-cp39-cp39-win_amd64.whl", hash = "sha256:f3f143332a95a1af6e89c1a37a2e62669e001eb06140d463fcac4678fdb29844"}, + {file = "llvmlite-0.41.0rc1.tar.gz", hash = "sha256:542544e751db411ca99ce4fc3f2e65c4a79d0349be1eb144131a40d261af18aa"}, +] + +[[package]] +name = "markupsafe" +version = "2.1.3" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, + {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, +] + +[[package]] +name = "matplotlib" +version = "3.7.2" +description = "Python plotting package" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:2699f7e73a76d4c110f4f25be9d2496d6ab4f17345307738557d345f099e07de"}, + {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a8035ba590658bae7562786c9cc6ea1a84aa49d3afab157e414c9e2ea74f496d"}, + {file = "matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2f8e4a49493add46ad4a8c92f63e19d548b2b6ebbed75c6b4c7f46f57d36cdd1"}, + {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71667eb2ccca4c3537d9414b1bc00554cb7f91527c17ee4ec38027201f8f1603"}, + {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:152ee0b569a37630d8628534c628456b28686e085d51394da6b71ef84c4da201"}, + {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:070f8dddd1f5939e60aacb8fa08f19551f4b0140fab16a3669d5cd6e9cb28fc8"}, + {file = "matplotlib-3.7.2-cp310-cp310-win32.whl", hash = "sha256:fdbb46fad4fb47443b5b8ac76904b2e7a66556844f33370861b4788db0f8816a"}, + {file = "matplotlib-3.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:23fb1750934e5f0128f9423db27c474aa32534cec21f7b2153262b066a581fd1"}, + {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:30e1409b857aa8a747c5d4f85f63a79e479835f8dffc52992ac1f3f25837b544"}, + {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:50e0a55ec74bf2d7a0ebf50ac580a209582c2dd0f7ab51bc270f1b4a0027454e"}, + {file = "matplotlib-3.7.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ac60daa1dc83e8821eed155796b0f7888b6b916cf61d620a4ddd8200ac70cd64"}, + {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:305e3da477dc8607336ba10bac96986d6308d614706cae2efe7d3ffa60465b24"}, + {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c308b255efb9b06b23874236ec0f10f026673ad6515f602027cc8ac7805352d"}, + {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60c521e21031632aa0d87ca5ba0c1c05f3daacadb34c093585a0be6780f698e4"}, + {file = "matplotlib-3.7.2-cp311-cp311-win32.whl", hash = "sha256:26bede320d77e469fdf1bde212de0ec889169b04f7f1179b8930d66f82b30cbc"}, + {file = "matplotlib-3.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:af4860132c8c05261a5f5f8467f1b269bf1c7c23902d75f2be57c4a7f2394b3e"}, + {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:a1733b8e84e7e40a9853e505fe68cc54339f97273bdfe6f3ed980095f769ddc7"}, + {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d9881356dc48e58910c53af82b57183879129fa30492be69058c5b0d9fddf391"}, + {file = "matplotlib-3.7.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f081c03f413f59390a80b3e351cc2b2ea0205839714dbc364519bcf51f4b56ca"}, + {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1cd120fca3407a225168238b790bd5c528f0fafde6172b140a2f3ab7a4ea63e9"}, + {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2c1590b90aa7bd741b54c62b78de05d4186271e34e2377e0289d943b3522273"}, + {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d2ff3c984b8a569bc1383cd468fc06b70d7b59d5c2854ca39f1436ae8394117"}, + {file = "matplotlib-3.7.2-cp38-cp38-win32.whl", hash = "sha256:5dea00b62d28654b71ca92463656d80646675628d0828e08a5f3b57e12869e13"}, + {file = "matplotlib-3.7.2-cp38-cp38-win_amd64.whl", hash = "sha256:0f506a1776ee94f9e131af1ac6efa6e5bc7cb606a3e389b0ccb6e657f60bb676"}, + {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:6515e878f91894c2e4340d81f0911857998ccaf04dbc1bba781e3d89cbf70608"}, + {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:71f7a8c6b124e904db550f5b9fe483d28b896d4135e45c4ea381ad3b8a0e3256"}, + {file = "matplotlib-3.7.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12f01b92ecd518e0697da4d97d163b2b3aa55eb3eb4e2c98235b3396d7dad55f"}, + {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7e28d6396563955f7af437894a36bf2b279462239a41028323e04b85179058b"}, + {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbcf59334ff645e6a67cd5f78b4b2cdb76384cdf587fa0d2dc85f634a72e1a3e"}, + {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:318c89edde72ff95d8df67d82aca03861240512994a597a435a1011ba18dbc7f"}, + {file = "matplotlib-3.7.2-cp39-cp39-win32.whl", hash = "sha256:ce55289d5659b5b12b3db4dc9b7075b70cef5631e56530f14b2945e8836f2d20"}, + {file = "matplotlib-3.7.2-cp39-cp39-win_amd64.whl", hash = "sha256:2ecb5be2b2815431c81dc115667e33da0f5a1bcf6143980d180d09a717c4a12e"}, + {file = "matplotlib-3.7.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fdcd28360dbb6203fb5219b1a5658df226ac9bebc2542a9e8f457de959d713d0"}, + {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3cca3e842b11b55b52c6fb8bd6a4088693829acbfcdb3e815fa9b7d5c92c1b"}, + {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebf577c7a6744e9e1bd3fee45fc74a02710b214f94e2bde344912d85e0c9af7c"}, + {file = "matplotlib-3.7.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:936bba394682049919dda062d33435b3be211dc3dcaa011e09634f060ec878b2"}, + {file = "matplotlib-3.7.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bc221ffbc2150458b1cd71cdd9ddd5bb37962b036e41b8be258280b5b01da1dd"}, + {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35d74ebdb3f71f112b36c2629cf32323adfbf42679e2751252acd468f5001c07"}, + {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:717157e61b3a71d3d26ad4e1770dc85156c9af435659a25ee6407dc866cb258d"}, + {file = "matplotlib-3.7.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:20f844d6be031948148ba49605c8b96dfe7d3711d1b63592830d650622458c11"}, + {file = "matplotlib-3.7.2.tar.gz", hash = "sha256:a8cdb91dddb04436bd2f098b8fdf4b81352e68cf4d2c6756fcc414791076569b"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} +kiwisolver = ">=1.0.1" +numpy = ">=1.20" +packaging = ">=20.0" +pillow = ">=6.2.0" +pyparsing = ">=2.3.1,<3.1" +python-dateutil = ">=2.7" + +[[package]] +name = "matplotlib-inline" +version = "0.1.6" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.5" +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]] +name = "mistune" +version = "3.0.1" +description = "A sane and fast Markdown parser with useful plugins and renderers" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mistune-3.0.1-py3-none-any.whl", hash = "sha256:b9b3e438efbb57c62b5beb5e134dab664800bdf1284a7ee09e8b12b13eb1aac6"}, + {file = "mistune-3.0.1.tar.gz", hash = "sha256:e912116c13aa0944f9dc530db38eb88f6a77087ab128f49f84a48f4c05ea163c"}, +] + +[[package]] +name = "mlflow-skinny" +version = "2.6.0" +description = "MLflow: A Platform for ML Development and Productionization" +optional = true +python-versions = ">=3.8" +files = [ + {file = "mlflow-skinny-2.6.0.tar.gz", hash = "sha256:c1a71bc4abb83169d4cff012c1c050c203775d4a7462d059c4523a481f0a9688"}, + {file = "mlflow_skinny-2.6.0-py3-none-any.whl", hash = "sha256:b63c6555645af0196b3c92da849968189dfd72d2c1397f7b149593db6b404d66"}, +] + +[package.dependencies] +click = ">=7.0,<9" +cloudpickle = "<3" +databricks-cli = ">=0.8.7,<1" +entrypoints = "<1" +gitpython = ">=2.1.0,<4" +importlib-metadata = ">=3.7.0,<4.7.0 || >4.7.0,<7" +packaging = "<24" +protobuf = ">=3.12.0,<5" +pytz = "<2024" +pyyaml = ">=5.1,<7" +requests = ">=2.17.3,<3" +sqlparse = ">=0.4.0,<1" + +[package.extras] +aliyun-oss = ["aliyunstoreplugin"] +databricks = ["azure-storage-file-datalake (>12)", "boto3 (>1)", "google-cloud-storage (>=1.30.0)"] +extras = ["azureml-core (>=1.2.0)", "boto3", "google-cloud-storage (>=1.30.0)", "kubernetes", "mlserver (>=1.2.0,!=1.3.1)", "mlserver-mlflow (>=1.2.0,!=1.3.1)", "prometheus-flask-exporter", "pyarrow", "pysftp", "requests-auth-aws-sigv4", "virtualenv"] +gateway = ["aiohttp (<4)", "fastapi (<1)", "psutil (<6)", "pydantic (>=1.0,<2)", "uvicorn[standard] (<1)", "watchfiles (<1)"] +sqlserver = ["mlflow-dbstore"] + +[[package]] +name = "moto" +version = "4.2.2" +description = "" +optional = false +python-versions = ">=3.7" +files = [ + {file = "moto-4.2.2-py2.py3-none-any.whl", hash = "sha256:2a9cbcd9da1a66b23f95d62ef91968284445233a606b4de949379395056276fb"}, + {file = "moto-4.2.2.tar.gz", hash = "sha256:ee34c4c3f53900d953180946920c9dba127a483e2ed40e6dbf93d4ae2e760e7c"}, +] + +[package.dependencies] +boto3 = ">=1.9.201" +botocore = ">=1.12.201" +cryptography = ">=3.3.1" +Jinja2 = ">=2.10.1" +python-dateutil = ">=2.1,<3.0.0" +requests = ">=2.5" +responses = ">=0.13.0" +werkzeug = ">=0.5,<2.2.0 || >2.2.0,<2.2.1 || >2.2.1" +xmltodict = "*" + +[package.extras] +all = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.2.8)", "py-partiql-parser (==0.3.6)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] +apigateway = ["PyYAML (>=5.1)", "ecdsa (!=0.15)", "openapi-spec-validator (>=0.2.8)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] +apigatewayv2 = ["PyYAML (>=5.1)"] +appsync = ["graphql-core"] +awslambda = ["docker (>=3.0.0)"] +batch = ["docker (>=3.0.0)"] +cloudformation = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.2.8)", "py-partiql-parser (==0.3.6)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] +cognitoidp = ["ecdsa (!=0.15)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] +ds = ["sshpubkeys (>=3.1.0)"] +dynamodb = ["docker (>=3.0.0)", "py-partiql-parser (==0.3.6)"] +dynamodbstreams = ["docker (>=3.0.0)", "py-partiql-parser (==0.3.6)"] +ebs = ["sshpubkeys (>=3.1.0)"] +ec2 = ["sshpubkeys (>=3.1.0)"] +efs = ["sshpubkeys (>=3.1.0)"] +eks = ["sshpubkeys (>=3.1.0)"] +glue = ["pyparsing (>=3.0.7)"] +iotdata = ["jsondiff (>=1.1.2)"] +resourcegroupstaggingapi = ["PyYAML (>=5.1)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.2.8)", "py-partiql-parser (==0.3.6)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "sshpubkeys (>=3.1.0)"] +route53resolver = ["sshpubkeys (>=3.1.0)"] +s3 = ["PyYAML (>=5.1)", "py-partiql-parser (==0.3.6)"] +s3crc32c = ["PyYAML (>=5.1)", "crc32c", "py-partiql-parser (==0.3.6)"] +server = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "flask (!=2.2.0,!=2.2.1)", "flask-cors", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.2.8)", "py-partiql-parser (==0.3.6)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] +ssm = ["PyYAML (>=5.1)"] +xray = ["aws-xray-sdk (>=0.93,!=0.96)", "setuptools"] + +[[package]] +name = "mpmath" +version = "1.3.0" +description = "Python library for arbitrary-precision floating-point arithmetic" +optional = false +python-versions = "*" +files = [ + {file = "mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c"}, + {file = "mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f"}, +] + +[package.extras] +develop = ["codecov", "pycodestyle", "pytest (>=4.6)", "pytest-cov", "wheel"] +docs = ["sphinx"] +gmpy = ["gmpy2 (>=2.1.0a4)"] +tests = ["pytest (>=4.6)"] + +[[package]] +name = "multidict" +version = "6.0.4" +description = "multidict implementation" +optional = false +python-versions = ">=3.7" +files = [ + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, + {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, + {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, + {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, + {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, + {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, + {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, + {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, + {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, + {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, + {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, + {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, + {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +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 = "nb-black" +version = "1.0.7" +description = "A simple extension for Jupyter Notebook and Jupyter Lab to beautify Python code automatically using Black." +optional = false +python-versions = "*" +files = [ + {file = "nb_black-1.0.7.tar.gz", hash = "sha256:1ca52e3a46675f6a0a6d79ac73a1f8f951bef60f919eced56173e76ab1b6d62b"}, +] + +[package.dependencies] +ipython = "*" + +[[package]] +name = "nbclient" +version = "0.8.0" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "nbclient-0.8.0-py3-none-any.whl", hash = "sha256:25e861299e5303a0477568557c4045eccc7a34c17fc08e7959558707b9ebe548"}, + {file = "nbclient-0.8.0.tar.gz", hash = "sha256:f9b179cd4b2d7bca965f900a2ebf0db4a12ebff2f36a711cb66861e4ae158e55"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +nbformat = ">=5.1" +traitlets = ">=5.4" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.8.0" +description = "Converting Jupyter Notebooks" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbconvert-7.8.0-py3-none-any.whl", hash = "sha256:aec605e051fa682ccc7934ccc338ba1e8b626cfadbab0db592106b630f63f0f2"}, + {file = "nbconvert-7.8.0.tar.gz", hash = "sha256:f5bc15a1247e14dd41ceef0c0a3bc70020e016576eb0578da62f1c5b4f950479"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "!=5.0.0" +defusedxml = "*" +importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<4" +nbclient = ">=0.5.0" +nbformat = ">=5.7" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.1" + +[package.extras] +all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] +qtpdf = ["nbconvert[qtpng]"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["flaky", "ipykernel", "ipywidgets (>=7)", "pre-commit", "pytest", "pytest-dependency"] +webpdf = ["playwright"] + +[[package]] +name = "nbformat" +version = "5.9.2" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.9.2-py3-none-any.whl", hash = "sha256:1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9"}, + {file = "nbformat-5.9.2.tar.gz", hash = "sha256:5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192"}, +] + +[package.dependencies] +fastjsonschema = "*" +jsonschema = ">=2.6" +jupyter-core = "*" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.5.7" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.5.7-py3-none-any.whl", hash = "sha256:5301c82941b550b3123a1ea772ba9a1c80bad3a182be8c1a5ae6ad3be57a9657"}, + {file = "nest_asyncio-1.5.7.tar.gz", hash = "sha256:6a80f7b98f24d9083ed24608977c09dd608d83f91cccc24c9d2cba6d10e01c10"}, +] + +[[package]] +name = "networkx" +version = "3.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.8" +files = [ + {file = "networkx-3.1-py3-none-any.whl", hash = "sha256:4f33f68cb2afcf86f28a45f43efc27a9386b535d567d2127f8f61d51dec58d36"}, + {file = "networkx-3.1.tar.gz", hash = "sha256:de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61"}, +] + +[package.extras] +default = ["matplotlib (>=3.4)", "numpy (>=1.20)", "pandas (>=1.3)", "scipy (>=1.8)"] +developer = ["mypy (>=1.1)", "pre-commit (>=3.2)"] +doc = ["nb2plots (>=0.6)", "numpydoc (>=1.5)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.13)", "sphinx (>=6.1)", "sphinx-gallery (>=0.12)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.10)", "sympy (>=1.10)"] +test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nodeenv" +version = "1.8.0" +description = "Node.js virtual environment builder" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +files = [ + {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, + {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, +] + +[package.dependencies] +setuptools = "*" + +[[package]] +name = "notebook" +version = "7.0.3" +description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "notebook-7.0.3-py3-none-any.whl", hash = "sha256:786ab2e3287c068667adce3029b540dd18fc5d23f49181b4b4ee4f6b48a7ca81"}, + {file = "notebook-7.0.3.tar.gz", hash = "sha256:07f3c5062fd0e6e69864437a0347abc485d991aae87a92c47d659699f571b729"}, +] + +[package.dependencies] +jupyter-server = ">=2.4.0,<3" +jupyterlab = ">=4.0.2,<5" +jupyterlab-server = ">=2.22.1,<3" +notebook-shim = ">=0.2,<0.3" +tornado = ">=6.2.0" + +[package.extras] +dev = ["hatch", "pre-commit"] +docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.22.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] + +[[package]] +name = "notebook-shim" +version = "0.2.3" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.3-py3-none-any.whl", hash = "sha256:a83496a43341c1674b093bfcebf0fe8e74cbe7eda5fd2bbc56f8e39e1486c0c7"}, + {file = "notebook_shim-0.2.3.tar.gz", hash = "sha256:f69388ac283ae008cd506dda10d0288b09a017d822d5e8c7129a152cbd3ce7e9"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numba" +version = "0.58.0rc1" +description = "compiling Python code using LLVM" +optional = false +python-versions = ">=3.8" +files = [ + {file = "numba-0.58.0rc1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6c1223ce6daf8666805bd04247beef22197df46a9548b01446a10d4e210c9abb"}, + {file = "numba-0.58.0rc1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f0f452ef615e03961a201fec4fc43bb2567579bd0868b5b9bd12ed96c5de9b3"}, + {file = "numba-0.58.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8caf704c14f68118c16ea711471c9f56dbe5f19896a858bac3b19bfee67d8542"}, + {file = "numba-0.58.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:dab88fe58311a81fe393b156c0c390111ed90a277ab396a6d898c14288d42929"}, + {file = "numba-0.58.0rc1-cp310-cp310-win_amd64.whl", hash = "sha256:b9eda2d5cb199fa6fefdecf7e0fa8d6f41139f391c673d2700be9c4d2c70987d"}, + {file = "numba-0.58.0rc1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:47f01f282d4043441c91b9e6f3bb709b8e4a9077fc5958f67a854999e47c6a85"}, + {file = "numba-0.58.0rc1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2c877e9d6cf2d78d97df7647546b699c36aeb1934c2cb8a566d22782d950b224"}, + {file = "numba-0.58.0rc1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7a3f06ca158c27617d740d891116263ea1f1f40394ca349f030b419f884a9974"}, + {file = "numba-0.58.0rc1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ffc763c1b552f5775694f3b86b8c88228ae07b1f65d10b585cd79e87a26d2a6c"}, + {file = "numba-0.58.0rc1-cp311-cp311-win_amd64.whl", hash = "sha256:8bafc2d24fc90f9696e75ae68dd409dac0cbfc0143c2e5aa1ab0264b8ab16817"}, + {file = "numba-0.58.0rc1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:09e26c2552b5f26e3efe1edcb5498274c5d271352658cf720f430b6dd9522189"}, + {file = "numba-0.58.0rc1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f66ff39ff2ee7408e0463d61ea0c21a8d7d7023107edbc0d6140ae4071dc68c4"}, + {file = "numba-0.58.0rc1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f757807a0ee828390962bfd5146d3ef327ec275be268eed170e204f30ea6df3b"}, + {file = "numba-0.58.0rc1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f239029b9e5640ad882ce1f58bf51e2e2ef499ee3b373bef4a9807d7349146f4"}, + {file = "numba-0.58.0rc1-cp38-cp38-win_amd64.whl", hash = "sha256:31f9025872bee73f34ebefe932a1821f7b4bdd23a0059c2dc199afb89f989022"}, + {file = "numba-0.58.0rc1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9db60fdee8fdc55940e0c48889640cab948f63916a5d114761a9825f72b6be30"}, + {file = "numba-0.58.0rc1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef4b792a3c8f874231c0963e404f8e83401b0a6029ee0f83222d951da1e2e51a"}, + {file = "numba-0.58.0rc1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8c6f7cdf81615b8f56ecc24421726232b5105ce9fa9773b59cc1b3b7029ccbb2"}, + {file = "numba-0.58.0rc1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b7033722dde854088ed520b35a7440e94de2fee818d46be529870b9e9ad3fd9c"}, + {file = "numba-0.58.0rc1-cp39-cp39-win_amd64.whl", hash = "sha256:3357af70fdddd9011a00156595d53f2baef85d58d9bb4abd5814edba3314ea19"}, + {file = "numba-0.58.0rc1.tar.gz", hash = "sha256:9f330643538b5f874250058b1a196a14a1dd68f7044f472d284c39664126d8fe"}, +] + +[package.dependencies] +llvmlite = "==0.41.*" +numpy = ">=1.21,<1.26" + +[[package]] +name = "numexpr" +version = "2.8.5" +description = "Fast numerical expression evaluator for NumPy" +optional = false +python-versions = ">=3.7" +files = [ + {file = "numexpr-2.8.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51f3ab160c3847ebcca93cd88f935a7802b54a01ab63fe93152994a64d7a6cf2"}, + {file = "numexpr-2.8.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:de29c77f674e4eb8f0846525a475cab64008c227c8bc4ba5153ab3f72441cc63"}, + {file = "numexpr-2.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf85ba1327eb87ec82ae7936f13c8850fb969a0ca34f3ba9fa3897c09d5c80d7"}, + {file = "numexpr-2.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c00be69f747f44a631830215cab482f0f77f75af2925695adff57c1cc0f9a68"}, + {file = "numexpr-2.8.5-cp310-cp310-win32.whl", hash = "sha256:c46350dcdb93e32f033eea5a21269514ffcaf501d9abd6036992d37e48a308b0"}, + {file = "numexpr-2.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:894b027438b8ec88dea32a19193716c79f4ff8ddb92302dcc9731b51ba3565a8"}, + {file = "numexpr-2.8.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6df184d40d4cf9f21c71f429962f39332f7398147762588c9f3a5c77065d0c06"}, + {file = "numexpr-2.8.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:178b85ad373c6903e55d75787d61b92380439b70d94b001cb055a501b0821335"}, + {file = "numexpr-2.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:578fe4008e4d5d6ff01bbeb2d7b7ba1ec658a5cda9c720cd26a9a8325f8ef438"}, + {file = "numexpr-2.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef621b4ee366a5c6a484f6678c9259f5b826569f8bfa0b89ba2306d5055468bb"}, + {file = "numexpr-2.8.5-cp311-cp311-win32.whl", hash = "sha256:dd57ab1a3d3aaa9274aff1cefbf93b8ddacc7973afef5b125905f6bf18fabab0"}, + {file = "numexpr-2.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:783324ba40eb804ecfc9ebae86120a1e339ab112d0ab8a1f0d48a26354d5bf9b"}, + {file = "numexpr-2.8.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:183d5430db76826e54465c69db93a3c6ecbf03cda5aa1bb96eaad0147e9b68dc"}, + {file = "numexpr-2.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39ce106f92ccea5b07b1d6f2f3c4370f05edf27691dc720a63903484a2137e48"}, + {file = "numexpr-2.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b594dc9e2d6291a0bc5c065e6d9caf3eee743b5663897832e9b17753c002947a"}, + {file = "numexpr-2.8.5-cp37-cp37m-win32.whl", hash = "sha256:62b4faf8e0627673b0210a837792bddd23050ecebc98069ab23eb0633ff1ef5f"}, + {file = "numexpr-2.8.5-cp37-cp37m-win_amd64.whl", hash = "sha256:db5c65417d69414f1ab31302ea01d3548303ef31209c38b4849d145be4e1d1ba"}, + {file = "numexpr-2.8.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eb36ffcfa1606e41aa08d559b4277bcad0e16b83941d1a4fee8d2bd5a34f8e0e"}, + {file = "numexpr-2.8.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:34af2a0e857d02a4bc5758bc037a777d50dacb13bcd57c7905268a3e44994ed6"}, + {file = "numexpr-2.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a8dad2bfaad5a5c34a2e8bbf62b9df1dfab266d345fda1feb20ff4e264b347a"}, + {file = "numexpr-2.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b93f5a866cd13a808bc3d3a9c487d94cd02eec408b275ff0aa150f2e8e5191f8"}, + {file = "numexpr-2.8.5-cp38-cp38-win32.whl", hash = "sha256:558390fea6370003ac749ed9d0f38d708aa096f5dcb707ddb6e0ca5a0dd37da1"}, + {file = "numexpr-2.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:55983806815035eb63c5039520688c49536bb7f3cc3fc1d7d64c6a00cf3f353e"}, + {file = "numexpr-2.8.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1510da20e6f5f45333610b1ded44c566e2690c6c437c84f2a212ca09627c7e01"}, + {file = "numexpr-2.8.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e8b5bf7bcb4e8dcd66522d8fc96e1db7278f901cb4fd2e155efbe62a41dde08"}, + {file = "numexpr-2.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ed0e1c1ef5f34381448539f1fe9015906d21c9cfa2797c06194d4207dadb465"}, + {file = "numexpr-2.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aea6ab45c87c0a7041183c08a798f0ad4d7c5eccbce20cfe79ce6f1a45ef3702"}, + {file = "numexpr-2.8.5-cp39-cp39-win32.whl", hash = "sha256:cbfd833ee5fdb0efb862e152aee7e6ccea9c596d5c11d22604c2e6307bff7cad"}, + {file = "numexpr-2.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:283ce8609a7ccbadf91a68f3484558b3e36d27c93c98a41ec205efb0ab43c872"}, + {file = "numexpr-2.8.5.tar.gz", hash = "sha256:45ed41e55a0abcecf3d711481e12a5fb7a904fe99d42bc282a17cc5f8ea510be"}, +] + +[package.dependencies] +numpy = ">=1.13.3" + +[[package]] +name = "numpy" +version = "1.25.2" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"}, + {file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"}, + {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"}, + {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"}, + {file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"}, + {file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"}, + {file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"}, + {file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"}, + {file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"}, + {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"}, + {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"}, + {file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"}, + {file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"}, + {file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"}, + {file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"}, + {file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"}, + {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"}, + {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"}, + {file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"}, + {file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"}, + {file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"}, + {file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"}, +] + +[[package]] +name = "oauthlib" +version = "3.2.2" +description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" +optional = true +python-versions = ">=3.6" +files = [ + {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, + {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, +] + +[package.extras] +rsa = ["cryptography (>=3.0.0)"] +signals = ["blinker (>=1.4.0)"] +signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] + +[[package]] +name = "omegaconf" +version = "2.3.0" +description = "A flexible configuration library" +optional = false +python-versions = ">=3.6" +files = [ + {file = "omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b"}, + {file = "omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7"}, +] + +[package.dependencies] +antlr4-python3-runtime = "==4.9.*" +PyYAML = ">=5.1.0" + +[[package]] +name = "orjson" +version = "3.9.7" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.7" +files = [ + {file = "orjson-3.9.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b6df858e37c321cefbf27fe7ece30a950bcc3a75618a804a0dcef7ed9dd9c92d"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5198633137780d78b86bb54dafaaa9baea698b4f059456cd4554ab7009619221"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e736815b30f7e3c9044ec06a98ee59e217a833227e10eb157f44071faddd7c5"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a19e4074bc98793458b4b3ba35a9a1d132179345e60e152a1bb48c538ab863c4"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80acafe396ab689a326ab0d80f8cc61dec0dd2c5dca5b4b3825e7b1e0132c101"}, + {file = "orjson-3.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:355efdbbf0cecc3bd9b12589b8f8e9f03c813a115efa53f8dc2a523bfdb01334"}, + {file = "orjson-3.9.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3aab72d2cef7f1dd6104c89b0b4d6b416b0db5ca87cc2fac5f79c5601f549cc2"}, + {file = "orjson-3.9.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:36b1df2e4095368ee388190687cb1b8557c67bc38400a942a1a77713580b50ae"}, + {file = "orjson-3.9.7-cp310-none-win32.whl", hash = "sha256:e94b7b31aa0d65f5b7c72dd8f8227dbd3e30354b99e7a9af096d967a77f2a580"}, + {file = "orjson-3.9.7-cp310-none-win_amd64.whl", hash = "sha256:82720ab0cf5bb436bbd97a319ac529aee06077ff7e61cab57cee04a596c4f9b4"}, + {file = "orjson-3.9.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1f8b47650f90e298b78ecf4df003f66f54acdba6a0f763cc4df1eab048fe3738"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f738fee63eb263530efd4d2e9c76316c1f47b3bbf38c1bf45ae9625feed0395e"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:38e34c3a21ed41a7dbd5349e24c3725be5416641fdeedf8f56fcbab6d981c900"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21a3344163be3b2c7e22cef14fa5abe957a892b2ea0525ee86ad8186921b6cf0"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23be6b22aab83f440b62a6f5975bcabeecb672bc627face6a83bc7aeb495dc7e"}, + {file = "orjson-3.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5205ec0dfab1887dd383597012199f5175035e782cdb013c542187d280ca443"}, + {file = "orjson-3.9.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8769806ea0b45d7bf75cad253fba9ac6700b7050ebb19337ff6b4e9060f963fa"}, + {file = "orjson-3.9.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f9e01239abea2f52a429fe9d95c96df95f078f0172489d691b4a848ace54a476"}, + {file = "orjson-3.9.7-cp311-none-win32.whl", hash = "sha256:8bdb6c911dae5fbf110fe4f5cba578437526334df381b3554b6ab7f626e5eeca"}, + {file = "orjson-3.9.7-cp311-none-win_amd64.whl", hash = "sha256:9d62c583b5110e6a5cf5169ab616aa4ec71f2c0c30f833306f9e378cf51b6c86"}, + {file = "orjson-3.9.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1c3cee5c23979deb8d1b82dc4cc49be59cccc0547999dbe9adb434bb7af11cf7"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a347d7b43cb609e780ff8d7b3107d4bcb5b6fd09c2702aa7bdf52f15ed09fa09"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:154fd67216c2ca38a2edb4089584504fbb6c0694b518b9020ad35ecc97252bb9"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ea3e63e61b4b0beeb08508458bdff2daca7a321468d3c4b320a758a2f554d31"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb0b0b2476f357eb2975ff040ef23978137aa674cd86204cfd15d2d17318588"}, + {file = "orjson-3.9.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b9a20a03576c6b7022926f614ac5a6b0914486825eac89196adf3267c6489d"}, + {file = "orjson-3.9.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:915e22c93e7b7b636240c5a79da5f6e4e84988d699656c8e27f2ac4c95b8dcc0"}, + {file = "orjson-3.9.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f26fb3e8e3e2ee405c947ff44a3e384e8fa1843bc35830fe6f3d9a95a1147b6e"}, + {file = "orjson-3.9.7-cp312-none-win_amd64.whl", hash = "sha256:d8692948cada6ee21f33db5e23460f71c8010d6dfcfe293c9b96737600a7df78"}, + {file = "orjson-3.9.7-cp37-cp37m-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7bab596678d29ad969a524823c4e828929a90c09e91cc438e0ad79b37ce41166"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63ef3d371ea0b7239ace284cab9cd00d9c92b73119a7c274b437adb09bda35e6"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f8fcf696bbbc584c0c7ed4adb92fd2ad7d153a50258842787bc1524e50d7081"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90fe73a1f0321265126cbba13677dcceb367d926c7a65807bd80916af4c17047"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45a47f41b6c3beeb31ac5cf0ff7524987cfcce0a10c43156eb3ee8d92d92bf22"}, + {file = "orjson-3.9.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a2937f528c84e64be20cb80e70cea76a6dfb74b628a04dab130679d4454395c"}, + {file = "orjson-3.9.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b4fb306c96e04c5863d52ba8d65137917a3d999059c11e659eba7b75a69167bd"}, + {file = "orjson-3.9.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:410aa9d34ad1089898f3db461b7b744d0efcf9252a9415bbdf23540d4f67589f"}, + {file = "orjson-3.9.7-cp37-none-win32.whl", hash = "sha256:26ffb398de58247ff7bde895fe30817a036f967b0ad0e1cf2b54bda5f8dcfdd9"}, + {file = "orjson-3.9.7-cp37-none-win_amd64.whl", hash = "sha256:bcb9a60ed2101af2af450318cd89c6b8313e9f8df4e8fb12b657b2e97227cf08"}, + {file = "orjson-3.9.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5da9032dac184b2ae2da4bce423edff7db34bfd936ebd7d4207ea45840f03905"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7951af8f2998045c656ba8062e8edf5e83fd82b912534ab1de1345de08a41d2b"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8e59650292aa3a8ea78073fc84184538783966528e442a1b9ed653aa282edcf"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9274ba499e7dfb8a651ee876d80386b481336d3868cba29af839370514e4dce0"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca1706e8b8b565e934c142db6a9592e6401dc430e4b067a97781a997070c5378"}, + {file = "orjson-3.9.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83cc275cf6dcb1a248e1876cdefd3f9b5f01063854acdfd687ec360cd3c9712a"}, + {file = "orjson-3.9.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:11c10f31f2c2056585f89d8229a56013bc2fe5de51e095ebc71868d070a8dd81"}, + {file = "orjson-3.9.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cf334ce1d2fadd1bf3e5e9bf15e58e0c42b26eb6590875ce65bd877d917a58aa"}, + {file = "orjson-3.9.7-cp38-none-win32.whl", hash = "sha256:76a0fc023910d8a8ab64daed8d31d608446d2d77c6474b616b34537aa7b79c7f"}, + {file = "orjson-3.9.7-cp38-none-win_amd64.whl", hash = "sha256:7a34a199d89d82d1897fd4a47820eb50947eec9cda5fd73f4578ff692a912f89"}, + {file = "orjson-3.9.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e7e7f44e091b93eb39db88bb0cb765db09b7a7f64aea2f35e7d86cbf47046c65"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01d647b2a9c45a23a84c3e70e19d120011cba5f56131d185c1b78685457320bb"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0eb850a87e900a9c484150c414e21af53a6125a13f6e378cf4cc11ae86c8f9c5"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f4b0042d8388ac85b8330b65406c84c3229420a05068445c13ca28cc222f1f7"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd3e7aae977c723cc1dbb82f97babdb5e5fbce109630fbabb2ea5053523c89d3"}, + {file = "orjson-3.9.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c616b796358a70b1f675a24628e4823b67d9e376df2703e893da58247458956"}, + {file = "orjson-3.9.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c3ba725cf5cf87d2d2d988d39c6a2a8b6fc983d78ff71bc728b0be54c869c884"}, + {file = "orjson-3.9.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4891d4c934f88b6c29b56395dfc7014ebf7e10b9e22ffd9877784e16c6b2064f"}, + {file = "orjson-3.9.7-cp39-none-win32.whl", hash = "sha256:14d3fb6cd1040a4a4a530b28e8085131ed94ebc90d72793c59a713de34b60838"}, + {file = "orjson-3.9.7-cp39-none-win_amd64.whl", hash = "sha256:9ef82157bbcecd75d6296d5d8b2d792242afcd064eb1ac573f8847b52e58f677"}, + {file = "orjson-3.9.7.tar.gz", hash = "sha256:85e39198f78e2f7e054d296395f6c96f5e02892337746ef5b6a1bf3ed5910142"}, +] + +[[package]] +name = "overrides" +version = "7.4.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.4.0-py3-none-any.whl", hash = "sha256:3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d"}, + {file = "overrides-7.4.0.tar.gz", hash = "sha256:9502a3cca51f4fac40b5feca985b6703a5c1f6ad815588a7ca9e285b9dca6757"}, +] + +[[package]] +name = "packaging" +version = "23.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, +] + +[[package]] +name = "pandas" +version = "2.1.0" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:40dd20439ff94f1b2ed55b393ecee9cb6f3b08104c2c40b0cb7186a2f0046242"}, + {file = "pandas-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d4f38e4fedeba580285eaac7ede4f686c6701a9e618d8a857b138a126d067f2f"}, + {file = "pandas-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e6a0fe052cf27ceb29be9429428b4918f3740e37ff185658f40d8702f0b3e09"}, + {file = "pandas-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d81e1813191070440d4c7a413cb673052b3b4a984ffd86b8dd468c45742d3cc"}, + {file = "pandas-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eb20252720b1cc1b7d0b2879ffc7e0542dd568f24d7c4b2347cb035206936421"}, + {file = "pandas-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:38f74ef7ebc0ffb43b3d633e23d74882bce7e27bfa09607f3c5d3e03ffd9a4a5"}, + {file = "pandas-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cda72cc8c4761c8f1d97b169661f23a86b16fdb240bdc341173aee17e4d6cedd"}, + {file = "pandas-2.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d97daeac0db8c993420b10da4f5f5b39b01fc9ca689a17844e07c0a35ac96b4b"}, + {file = "pandas-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8c58b1113892e0c8078f006a167cc210a92bdae23322bb4614f2f0b7a4b510f"}, + {file = "pandas-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:629124923bcf798965b054a540f9ccdfd60f71361255c81fa1ecd94a904b9dd3"}, + {file = "pandas-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:70cf866af3ab346a10debba8ea78077cf3a8cd14bd5e4bed3d41555a3280041c"}, + {file = "pandas-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:d53c8c1001f6a192ff1de1efe03b31a423d0eee2e9e855e69d004308e046e694"}, + {file = "pandas-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:86f100b3876b8c6d1a2c66207288ead435dc71041ee4aea789e55ef0e06408cb"}, + {file = "pandas-2.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28f330845ad21c11db51e02d8d69acc9035edfd1116926ff7245c7215db57957"}, + {file = "pandas-2.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9a6ccf0963db88f9b12df6720e55f337447aea217f426a22d71f4213a3099a6"}, + {file = "pandas-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d99e678180bc59b0c9443314297bddce4ad35727a1a2656dbe585fd78710b3b9"}, + {file = "pandas-2.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b31da36d376d50a1a492efb18097b9101bdbd8b3fbb3f49006e02d4495d4c644"}, + {file = "pandas-2.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0164b85937707ec7f70b34a6c3a578dbf0f50787f910f21ca3b26a7fd3363437"}, + {file = "pandas-2.1.0.tar.gz", hash = "sha256:62c24c7fc59e42b775ce0679cfa7b14a5f9bfb7643cfbe708c960699e05fb918"}, +] + +[package.dependencies] +bottleneck = {version = ">=1.3.4", optional = true, markers = "extra == \"performance\""} +numba = {version = ">=0.55.2", optional = true, markers = "extra == \"performance\""} +numexpr = {version = ">=2.8.0", optional = true, markers = "extra == \"performance\""} +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.1" + +[package.extras] +all = ["PyQt5 (>=5.15.6)", "SQLAlchemy (>=1.4.36)", "beautifulsoup4 (>=4.11.1)", "bottleneck (>=1.3.4)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=0.8.1)", "fsspec (>=2022.05.0)", "gcsfs (>=2022.05.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.8.0)", "matplotlib (>=3.6.1)", "numba (>=0.55.2)", "numexpr (>=2.8.0)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pandas-gbq (>=0.17.5)", "psycopg2 (>=2.9.3)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.5)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "pyxlsb (>=1.0.9)", "qtpy (>=2.2.0)", "s3fs (>=2022.05.0)", "scipy (>=1.8.1)", "tables (>=3.7.0)", "tabulate (>=0.8.10)", "xarray (>=2022.03.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)", "zstandard (>=0.17.0)"] +aws = ["s3fs (>=2022.05.0)"] +clipboard = ["PyQt5 (>=5.15.6)", "qtpy (>=2.2.0)"] +compression = ["zstandard (>=0.17.0)"] +computation = ["scipy (>=1.8.1)", "xarray (>=2022.03.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pyxlsb (>=1.0.9)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)"] +feather = ["pyarrow (>=7.0.0)"] +fss = ["fsspec (>=2022.05.0)"] +gcp = ["gcsfs (>=2022.05.0)", "pandas-gbq (>=0.17.5)"] +hdf5 = ["tables (>=3.7.0)"] +html = ["beautifulsoup4 (>=4.11.1)", "html5lib (>=1.1)", "lxml (>=4.8.0)"] +mysql = ["SQLAlchemy (>=1.4.36)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.8.10)"] +parquet = ["pyarrow (>=7.0.0)"] +performance = ["bottleneck (>=1.3.4)", "numba (>=0.55.2)", "numexpr (>=2.8.0)"] +plot = ["matplotlib (>=3.6.1)"] +postgresql = ["SQLAlchemy (>=1.4.36)", "psycopg2 (>=2.9.3)"] +spss = ["pyreadstat (>=1.1.5)"] +sql-other = ["SQLAlchemy (>=1.4.36)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.8.0)"] + +[[package]] +name = "pandocfilters" +version = "1.5.0" +description = "Utilities for writing pandoc filters in python" +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" +version = "0.8.3" +description = "A Python Parser" +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)"] +testing = ["docopt", "pytest (<6.0.0)"] + +[[package]] +name = "pathspec" +version = "0.11.2" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, + {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, +] + +[[package]] +name = "pexpect" +version = "4.8.0" +description = "Pexpect allows easy control of interactive console applications." +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" + +[[package]] +name = "pickleshare" +version = "0.7.5" +description = "Tiny 'shelve'-like database with concurrency support" +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" +version = "10.0.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Pillow-10.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1f62406a884ae75fb2f818694469519fb685cc7eaff05d3451a9ebe55c646891"}, + {file = "Pillow-10.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d5db32e2a6ccbb3d34d87c87b432959e0db29755727afb37290e10f6e8e62614"}, + {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edf4392b77bdc81f36e92d3a07a5cd072f90253197f4a52a55a8cec48a12483b"}, + {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:520f2a520dc040512699f20fa1c363eed506e94248d71f85412b625026f6142c"}, + {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:8c11160913e3dd06c8ffdb5f233a4f254cb449f4dfc0f8f4549eda9e542c93d1"}, + {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a74ba0c356aaa3bb8e3eb79606a87669e7ec6444be352870623025d75a14a2bf"}, + {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5d0dae4cfd56969d23d94dc8e89fb6a217be461c69090768227beb8ed28c0a3"}, + {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22c10cc517668d44b211717fd9775799ccec4124b9a7f7b3635fc5386e584992"}, + {file = "Pillow-10.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:dffe31a7f47b603318c609f378ebcd57f1554a3a6a8effbc59c3c69f804296de"}, + {file = "Pillow-10.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:9fb218c8a12e51d7ead2a7c9e101a04982237d4855716af2e9499306728fb485"}, + {file = "Pillow-10.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d35e3c8d9b1268cbf5d3670285feb3528f6680420eafe35cccc686b73c1e330f"}, + {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ed64f9ca2f0a95411e88a4efbd7a29e5ce2cea36072c53dd9d26d9c76f753b3"}, + {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b6eb5502f45a60a3f411c63187db83a3d3107887ad0d036c13ce836f8a36f1d"}, + {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:c1fbe7621c167ecaa38ad29643d77a9ce7311583761abf7836e1510c580bf3dd"}, + {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:cd25d2a9d2b36fcb318882481367956d2cf91329f6892fe5d385c346c0649629"}, + {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3b08d4cc24f471b2c8ca24ec060abf4bebc6b144cb89cba638c720546b1cf538"}, + {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737a602fbd82afd892ca746392401b634e278cb65d55c4b7a8f48e9ef8d008d"}, + {file = "Pillow-10.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f"}, + {file = "Pillow-10.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:bc2ec7c7b5d66b8ec9ce9f720dbb5fa4bace0f545acd34870eff4a369b44bf37"}, + {file = "Pillow-10.0.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:d80cf684b541685fccdd84c485b31ce73fc5c9b5d7523bf1394ce134a60c6883"}, + {file = "Pillow-10.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76de421f9c326da8f43d690110f0e79fe3ad1e54be811545d7d91898b4c8493e"}, + {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ff539a12457809666fef6624684c008e00ff6bf455b4b89fd00a140eecd640"}, + {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce543ed15570eedbb85df19b0a1a7314a9c8141a36ce089c0a894adbfccb4568"}, + {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:685ac03cc4ed5ebc15ad5c23bc555d68a87777586d970c2c3e216619a5476223"}, + {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d72e2ecc68a942e8cf9739619b7f408cc7b272b279b56b2c83c6123fcfa5cdff"}, + {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d50b6aec14bc737742ca96e85d6d0a5f9bfbded018264b3b70ff9d8c33485551"}, + {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:00e65f5e822decd501e374b0650146063fbb30a7264b4d2744bdd7b913e0cab5"}, + {file = "Pillow-10.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:f31f9fdbfecb042d046f9d91270a0ba28368a723302786c0009ee9b9f1f60199"}, + {file = "Pillow-10.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:1ce91b6ec08d866b14413d3f0bbdea7e24dfdc8e59f562bb77bc3fe60b6144ca"}, + {file = "Pillow-10.0.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:349930d6e9c685c089284b013478d6f76e3a534e36ddfa912cde493f235372f3"}, + {file = "Pillow-10.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3a684105f7c32488f7153905a4e3015a3b6c7182e106fe3c37fbb5ef3e6994c3"}, + {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4f69b3700201b80bb82c3a97d5e9254084f6dd5fb5b16fc1a7b974260f89f43"}, + {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f07ea8d2f827d7d2a49ecf1639ec02d75ffd1b88dcc5b3a61bbb37a8759ad8d"}, + {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:040586f7d37b34547153fa383f7f9aed68b738992380ac911447bb78f2abe530"}, + {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:f88a0b92277de8e3ca715a0d79d68dc82807457dae3ab8699c758f07c20b3c51"}, + {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c7cf14a27b0d6adfaebb3ae4153f1e516df54e47e42dcc073d7b3d76111a8d86"}, + {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3400aae60685b06bb96f99a21e1ada7bc7a413d5f49bce739828ecd9391bb8f7"}, + {file = "Pillow-10.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbc02381779d412145331789b40cc7b11fdf449e5d94f6bc0b080db0a56ea3f0"}, + {file = "Pillow-10.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9211e7ad69d7c9401cfc0e23d49b69ca65ddd898976d660a2fa5904e3d7a9baa"}, + {file = "Pillow-10.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:faaf07ea35355b01a35cb442dd950d8f1bb5b040a7787791a535de13db15ed90"}, + {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9f72a021fbb792ce98306ffb0c348b3c9cb967dce0f12a49aa4c3d3fdefa967"}, + {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f7c16705f44e0504a3a2a14197c1f0b32a95731d251777dcb060aa83022cb2d"}, + {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:76edb0a1fa2b4745fb0c99fb9fb98f8b180a1bbceb8be49b087e0b21867e77d3"}, + {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:368ab3dfb5f49e312231b6f27b8820c823652b7cd29cfbd34090565a015e99ba"}, + {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:608bfdee0d57cf297d32bcbb3c728dc1da0907519d1784962c5f0c68bb93e5a3"}, + {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5c6e3df6bdd396749bafd45314871b3d0af81ff935b2d188385e970052091017"}, + {file = "Pillow-10.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:7be600823e4c8631b74e4a0d38384c73f680e6105a7d3c6824fcf226c178c7e6"}, + {file = "Pillow-10.0.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:92be919bbc9f7d09f7ae343c38f5bb21c973d2576c1d45600fce4b74bafa7ac0"}, + {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8182b523b2289f7c415f589118228d30ac8c355baa2f3194ced084dac2dbba"}, + {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:38250a349b6b390ee6047a62c086d3817ac69022c127f8a5dc058c31ccef17f3"}, + {file = "Pillow-10.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:88af2003543cc40c80f6fca01411892ec52b11021b3dc22ec3bc9d5afd1c5334"}, + {file = "Pillow-10.0.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c189af0545965fa8d3b9613cfdb0cd37f9d71349e0f7750e1fd704648d475ed2"}, + {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7b031a6fc11365970e6a5686d7ba8c63e4c1cf1ea143811acbb524295eabed"}, + {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db24668940f82321e746773a4bc617bfac06ec831e5c88b643f91f122a785684"}, + {file = "Pillow-10.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:efe8c0681042536e0d06c11f48cebe759707c9e9abf880ee213541c5b46c5bf3"}, + {file = "Pillow-10.0.0.tar.gz", hash = "sha256:9c82b5b3e043c7af0d95792d0d20ccf68f61a1fec6b3530e718b688422727396"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "platformdirs" +version = "3.10.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +optional = false +python-versions = ">=3.7" +files = [ + {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, + {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, +] + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] + +[[package]] +name = "pluggy" +version = "1.3.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, + {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.4.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pre_commit-3.4.0-py2.py3-none-any.whl", hash = "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945"}, + {file = "pre_commit-3.4.0.tar.gz", hash = "sha256:6bbd5129a64cad4c0dfaeeb12cd8f7ea7e15b77028d985341478c8af3c759522"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "prometheus-client" +version = "0.17.1" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.6" +files = [ + {file = "prometheus_client-0.17.1-py3-none-any.whl", hash = "sha256:e537f37160f6807b8202a6fc4764cdd19bac5480ddd3e0d463c3002b34462101"}, + {file = "prometheus_client-0.17.1.tar.gz", hash = "sha256:21e674f39831ae3f8acde238afd9a27a37d0d2fb5a28ea094f0ce25d2cbf2091"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.39" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.39-py3-none-any.whl", hash = "sha256:9dffbe1d8acf91e3de75f3b544e4842382fc06c6babe903ac9acb74dc6e08d88"}, + {file = "prompt_toolkit-3.0.39.tar.gz", hash = "sha256:04505ade687dc26dc4284b1ad19a83be2f2afe83e7a828ace0c72f3a1df72aac"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "protobuf" +version = "4.24.3" +description = "" +optional = true +python-versions = ">=3.7" +files = [ + {file = "protobuf-4.24.3-cp310-abi3-win32.whl", hash = "sha256:20651f11b6adc70c0f29efbe8f4a94a74caf61b6200472a9aea6e19898f9fcf4"}, + {file = "protobuf-4.24.3-cp310-abi3-win_amd64.whl", hash = "sha256:3d42e9e4796a811478c783ef63dc85b5a104b44aaaca85d4864d5b886e4b05e3"}, + {file = "protobuf-4.24.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:6e514e8af0045be2b56e56ae1bb14f43ce7ffa0f68b1c793670ccbe2c4fc7d2b"}, + {file = "protobuf-4.24.3-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:ba53c2f04798a326774f0e53b9c759eaef4f6a568ea7072ec6629851c8435959"}, + {file = "protobuf-4.24.3-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:f6ccbcf027761a2978c1406070c3788f6de4a4b2cc20800cc03d52df716ad675"}, + {file = "protobuf-4.24.3-cp37-cp37m-win32.whl", hash = "sha256:1b182c7181a2891e8f7f3a1b5242e4ec54d1f42582485a896e4de81aa17540c2"}, + {file = "protobuf-4.24.3-cp37-cp37m-win_amd64.whl", hash = "sha256:b0271a701e6782880d65a308ba42bc43874dabd1a0a0f41f72d2dac3b57f8e76"}, + {file = "protobuf-4.24.3-cp38-cp38-win32.whl", hash = "sha256:e29d79c913f17a60cf17c626f1041e5288e9885c8579832580209de8b75f2a52"}, + {file = "protobuf-4.24.3-cp38-cp38-win_amd64.whl", hash = "sha256:067f750169bc644da2e1ef18c785e85071b7c296f14ac53e0900e605da588719"}, + {file = "protobuf-4.24.3-cp39-cp39-win32.whl", hash = "sha256:2da777d34b4f4f7613cdf85c70eb9a90b1fbef9d36ae4a0ccfe014b0b07906f1"}, + {file = "protobuf-4.24.3-cp39-cp39-win_amd64.whl", hash = "sha256:f631bb982c5478e0c1c70eab383af74a84be66945ebf5dd6b06fc90079668d0b"}, + {file = "protobuf-4.24.3-py3-none-any.whl", hash = "sha256:f6f8dc65625dadaad0c8545319c2e2f0424fede988368893ca3844261342c11a"}, + {file = "protobuf-4.24.3.tar.gz", hash = "sha256:12e9ad2ec079b833176d2921be2cb24281fa591f0b119b208b788adc48c2561d"}, +] + +[[package]] +name = "psutil" +version = "5.9.5" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "psutil-5.9.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:be8929ce4313f9f8146caad4272f6abb8bf99fc6cf59344a3167ecd74f4f203f"}, + {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ab8ed1a1d77c95453db1ae00a3f9c50227ebd955437bcf2a574ba8adbf6a74d5"}, + {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4aef137f3345082a3d3232187aeb4ac4ef959ba3d7c10c33dd73763fbc063da4"}, + {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ea8518d152174e1249c4f2a1c89e3e6065941df2fa13a1ab45327716a23c2b48"}, + {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:acf2aef9391710afded549ff602b5887d7a2349831ae4c26be7c807c0a39fac4"}, + {file = "psutil-5.9.5-cp27-none-win32.whl", hash = "sha256:5b9b8cb93f507e8dbaf22af6a2fd0ccbe8244bf30b1baad6b3954e935157ae3f"}, + {file = "psutil-5.9.5-cp27-none-win_amd64.whl", hash = "sha256:8c5f7c5a052d1d567db4ddd231a9d27a74e8e4a9c3f44b1032762bd7b9fdcd42"}, + {file = "psutil-5.9.5-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3c6f686f4225553615612f6d9bc21f1c0e305f75d7d8454f9b46e901778e7217"}, + {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a7dd9997128a0d928ed4fb2c2d57e5102bb6089027939f3b722f3a210f9a8da"}, + {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89518112647f1276b03ca97b65cc7f64ca587b1eb0278383017c2a0dcc26cbe4"}, + {file = "psutil-5.9.5-cp36-abi3-win32.whl", hash = "sha256:104a5cc0e31baa2bcf67900be36acde157756b9c44017b86b2c049f11957887d"}, + {file = "psutil-5.9.5-cp36-abi3-win_amd64.whl", hash = "sha256:b258c0c1c9d145a1d5ceffab1134441c4c5113b2417fafff7315a917a026c3c9"}, + {file = "psutil-5.9.5-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:c607bb3b57dc779d55e1554846352b4e358c10fff3abf3514a7a6601beebdb30"}, + {file = "psutil-5.9.5.tar.gz", hash = "sha256:5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c"}, +] + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +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" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +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"] + +[[package]] +name = "pyasn1" +version = "0.5.0" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +optional = true +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pyasn1-0.5.0-py2.py3-none-any.whl", hash = "sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57"}, + {file = "pyasn1-0.5.0.tar.gz", hash = "sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde"}, +] + +[[package]] +name = "pyasn1-modules" +version = "0.3.0" +description = "A collection of ASN.1-based protocols modules" +optional = true +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, + {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"}, +] + +[package.dependencies] +pyasn1 = ">=0.4.6,<0.6.0" + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +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 = "pydruid" +version = "0.6.5" +description = "A Python connector for Druid." +optional = true +python-versions = "*" +files = [ + {file = "pydruid-0.6.5.tar.gz", hash = "sha256:30b6efa722234183239296bf8e6d41aba7eea0eec3d68233ce6c413986864fea"}, +] + +[package.dependencies] +requests = "*" + +[package.extras] +async = ["tornado"] +cli = ["prompt_toolkit (>=2.0.0)", "pygments", "tabulate"] +pandas = ["pandas"] +sqlalchemy = ["sqlalchemy"] + +[[package]] +name = "pygments" +version = "2.16.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, + {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, +] + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "pyjwt" +version = "2.8.0" +description = "JSON Web Token implementation in Python" +optional = true +python-versions = ">=3.7" +files = [ + {file = "PyJWT-2.8.0-py3-none-any.whl", hash = "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320"}, + {file = "PyJWT-2.8.0.tar.gz", hash = "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de"}, +] + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "pympler" +version = "1.0.1" +description = "A development tool to measure, monitor and analyze the memory behavior of Python objects." +optional = false +python-versions = ">=3.6" +files = [ + {file = "Pympler-1.0.1-py3-none-any.whl", hash = "sha256:d260dda9ae781e1eab6ea15bacb84015849833ba5555f141d2d9b7b7473b307d"}, + {file = "Pympler-1.0.1.tar.gz", hash = "sha256:993f1a3599ca3f4fcd7160c7545ad06310c9e12f70174ae7ae8d4e25f6c5d3fa"}, +] + +[[package]] +name = "pynumaflow" +version = "0.4.2" +description = "Provides the interfaces of writing Python User Defined Functions and Sinks for NumaFlow." +optional = true +python-versions = ">=3.9,<3.12" +files = [ + {file = "pynumaflow-0.4.2-py3-none-any.whl", hash = "sha256:354e44bff87578bb43df43e70d326d82be1f75280dfdaad6f8ae3d46608e886b"}, + {file = "pynumaflow-0.4.2.tar.gz", hash = "sha256:2bd4710a8467ce7f715eb3263405af03bc5b50f27ecf109fe0e9650a2646d789"}, +] + +[package.dependencies] +aiorun = ">=2022.11.1,<2023.0.0" +google-api-core = ">=2.11.0,<3.0.0" +google-cloud = ">=0.34.0,<0.35.0" +grpcio = ">=1.48.1,<2.0.0" +grpcio-tools = ">=1.48.1,<2.0.0" +protobuf = ">=3.20,<5.0" + +[[package]] +name = "pyparsing" +version = "3.0.9" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +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"] + +[[package]] +name = "pytest" +version = "7.4.2" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, + {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-cov" +version = "4.1.0" +description = "Pytest plugin for measuring coverage." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, + {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, +] + +[package.dependencies] +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +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" + +[[package]] +name = "python-json-logger" +version = "2.0.7" +description = "A python library adding a json log formatter" +optional = false +python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] + +[[package]] +name = "pytorch-lightning" +version = "2.0.8" +description = "PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytorch-lightning-2.0.8.tar.gz", hash = "sha256:fb7e8fbe473158b2c1666b6b31fb996c8aa2c3f5e8e2a54a3f50a7b5b2d00a20"}, + {file = "pytorch_lightning-2.0.8-py3-none-any.whl", hash = "sha256:718d11f22551d95ef38614b4727433553c95ea2b50cf843938fb13baf34325a6"}, +] + +[package.dependencies] +fsspec = {version = ">2021.06.0", extras = ["http"]} +lightning-utilities = ">=0.7.0" +numpy = ">=1.17.2" +packaging = ">=17.1" +PyYAML = ">=5.4" +torch = ">=1.11.0" +torchmetrics = ">=0.7.0" +tqdm = ">=4.57.0" +typing-extensions = ">=4.0.0" + +[package.extras] +all = ["deepspeed (>=0.8.2)", "gym[classic-control] (>=0.17.0)", "hydra-core (>=1.0.5)", "ipython[all] (<8.14.1)", "jsonargparse[signatures] (>=4.18.0,<4.23.0)", "lightning-utilities (>=0.7.0)", "matplotlib (>3.1)", "omegaconf (>=2.0.5)", "rich (>=12.3.0)", "tensorboardX (>=2.2)", "torchmetrics (>=0.10.0)", "torchvision (>=0.12.0)"] +deepspeed = ["deepspeed (>=0.8.2)"] +dev = ["cloudpickle (>=1.3)", "coverage (==7.3.0)", "deepspeed (>=0.8.2)", "fastapi (<0.100.0)", "gym[classic-control] (>=0.17.0)", "hydra-core (>=1.0.5)", "ipython[all] (<8.14.1)", "jsonargparse[signatures] (>=4.18.0,<4.23.0)", "lightning-utilities (>=0.7.0)", "matplotlib (>3.1)", "omegaconf (>=2.0.5)", "onnx (<1.15.0)", "onnxruntime (<1.16.0)", "pandas (>1.0)", "protobuf (<=3.20.1)", "psutil (<5.9.6)", "pytest (==7.4.0)", "pytest-cov (==4.1.0)", "pytest-forked (==1.4.0)", "pytest-rerunfailures (==10.3)", "rich (>=12.3.0)", "scikit-learn (>0.22.1)", "tensorboard (>=2.9.1)", "tensorboardX (>=2.2)", "torchmetrics (>=0.10.0)", "torchvision (>=0.12.0)", "uvicorn (<0.23.3)"] +examples = ["gym[classic-control] (>=0.17.0)", "ipython[all] (<8.14.1)", "lightning-utilities (>=0.7.0)", "torchmetrics (>=0.10.0)", "torchvision (>=0.12.0)"] +extra = ["hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.18.0,<4.23.0)", "matplotlib (>3.1)", "omegaconf (>=2.0.5)", "rich (>=12.3.0)", "tensorboardX (>=2.2)"] +strategies = ["deepspeed (>=0.8.2)"] +test = ["cloudpickle (>=1.3)", "coverage (==7.3.0)", "fastapi (<0.100.0)", "onnx (<1.15.0)", "onnxruntime (<1.16.0)", "pandas (>1.0)", "protobuf (<=3.20.1)", "psutil (<5.9.6)", "pytest (==7.4.0)", "pytest-cov (==4.1.0)", "pytest-forked (==1.4.0)", "pytest-rerunfailures (==10.3)", "scikit-learn (>0.22.1)", "tensorboard (>=2.9.1)", "uvicorn (<0.23.3)"] + +[[package]] +name = "pytz" +version = "2023.3.post1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, +] + +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +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 = "pywinpty" +version = "2.0.11" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.11-cp310-none-win_amd64.whl", hash = "sha256:452f10ac9ff8ab9151aa8cea9e491a9612a12250b1899278c6a56bc184afb47f"}, + {file = "pywinpty-2.0.11-cp311-none-win_amd64.whl", hash = "sha256:6701867d42aec1239bc0fedf49a336570eb60eb886e81763db77ea2b6c533cc3"}, + {file = "pywinpty-2.0.11-cp38-none-win_amd64.whl", hash = "sha256:0ffd287751ad871141dc9724de70ea21f7fc2ff1af50861e0d232cf70739d8c4"}, + {file = "pywinpty-2.0.11-cp39-none-win_amd64.whl", hash = "sha256:e4e7f023c28ca7aa8e1313e53ba80a4d10171fe27857b7e02f99882dfe3e8638"}, + {file = "pywinpty-2.0.11.tar.gz", hash = "sha256:e244cffe29a894876e2cd251306efd0d8d64abd5ada0a46150a4a71c0b9ad5c5"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "pyzmq" +version = "25.1.1" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyzmq-25.1.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:381469297409c5adf9a0e884c5eb5186ed33137badcbbb0560b86e910a2f1e76"}, + {file = "pyzmq-25.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:955215ed0604dac5b01907424dfa28b40f2b2292d6493445dd34d0dfa72586a8"}, + {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:985bbb1316192b98f32e25e7b9958088431d853ac63aca1d2c236f40afb17c83"}, + {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:afea96f64efa98df4da6958bae37f1cbea7932c35878b185e5982821bc883369"}, + {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76705c9325d72a81155bb6ab48d4312e0032bf045fb0754889133200f7a0d849"}, + {file = "pyzmq-25.1.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:77a41c26205d2353a4c94d02be51d6cbdf63c06fbc1295ea57dad7e2d3381b71"}, + {file = "pyzmq-25.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:12720a53e61c3b99d87262294e2b375c915fea93c31fc2336898c26d7aed34cd"}, + {file = "pyzmq-25.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:57459b68e5cd85b0be8184382cefd91959cafe79ae019e6b1ae6e2ba8a12cda7"}, + {file = "pyzmq-25.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:292fe3fc5ad4a75bc8df0dfaee7d0babe8b1f4ceb596437213821f761b4589f9"}, + {file = "pyzmq-25.1.1-cp310-cp310-win32.whl", hash = "sha256:35b5ab8c28978fbbb86ea54958cd89f5176ce747c1fb3d87356cf698048a7790"}, + {file = "pyzmq-25.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:11baebdd5fc5b475d484195e49bae2dc64b94a5208f7c89954e9e354fc609d8f"}, + {file = "pyzmq-25.1.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:d20a0ddb3e989e8807d83225a27e5c2eb2260eaa851532086e9e0fa0d5287d83"}, + {file = "pyzmq-25.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e1c1be77bc5fb77d923850f82e55a928f8638f64a61f00ff18a67c7404faf008"}, + {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d89528b4943d27029a2818f847c10c2cecc79fa9590f3cb1860459a5be7933eb"}, + {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:90f26dc6d5f241ba358bef79be9ce06de58d477ca8485e3291675436d3827cf8"}, + {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2b92812bd214018e50b6380ea3ac0c8bb01ac07fcc14c5f86a5bb25e74026e9"}, + {file = "pyzmq-25.1.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:2f957ce63d13c28730f7fd6b72333814221c84ca2421298f66e5143f81c9f91f"}, + {file = "pyzmq-25.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:047a640f5c9c6ade7b1cc6680a0e28c9dd5a0825135acbd3569cc96ea00b2505"}, + {file = "pyzmq-25.1.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7f7e58effd14b641c5e4dec8c7dab02fb67a13df90329e61c869b9cc607ef752"}, + {file = "pyzmq-25.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c2910967e6ab16bf6fbeb1f771c89a7050947221ae12a5b0b60f3bca2ee19bca"}, + {file = "pyzmq-25.1.1-cp311-cp311-win32.whl", hash = "sha256:76c1c8efb3ca3a1818b837aea423ff8a07bbf7aafe9f2f6582b61a0458b1a329"}, + {file = "pyzmq-25.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:44e58a0554b21fc662f2712814a746635ed668d0fbc98b7cb9d74cb798d202e6"}, + {file = "pyzmq-25.1.1-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:e1ffa1c924e8c72778b9ccd386a7067cddf626884fd8277f503c48bb5f51c762"}, + {file = "pyzmq-25.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1af379b33ef33757224da93e9da62e6471cf4a66d10078cf32bae8127d3d0d4a"}, + {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cff084c6933680d1f8b2f3b4ff5bbb88538a4aac00d199ac13f49d0698727ecb"}, + {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2400a94f7dd9cb20cd012951a0cbf8249e3d554c63a9c0cdfd5cbb6c01d2dec"}, + {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d81f1ddae3858b8299d1da72dd7d19dd36aab654c19671aa8a7e7fb02f6638a"}, + {file = "pyzmq-25.1.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:255ca2b219f9e5a3a9ef3081512e1358bd4760ce77828e1028b818ff5610b87b"}, + {file = "pyzmq-25.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a882ac0a351288dd18ecae3326b8a49d10c61a68b01419f3a0b9a306190baf69"}, + {file = "pyzmq-25.1.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:724c292bb26365659fc434e9567b3f1adbdb5e8d640c936ed901f49e03e5d32e"}, + {file = "pyzmq-25.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ca1ed0bb2d850aa8471387882247c68f1e62a4af0ce9c8a1dbe0d2bf69e41fb"}, + {file = "pyzmq-25.1.1-cp312-cp312-win32.whl", hash = "sha256:b3451108ab861040754fa5208bca4a5496c65875710f76789a9ad27c801a0075"}, + {file = "pyzmq-25.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:eadbefd5e92ef8a345f0525b5cfd01cf4e4cc651a2cffb8f23c0dd184975d787"}, + {file = "pyzmq-25.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:db0b2af416ba735c6304c47f75d348f498b92952f5e3e8bff449336d2728795d"}, + {file = "pyzmq-25.1.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c133e93b405eb0d36fa430c94185bdd13c36204a8635470cccc200723c13bb"}, + {file = "pyzmq-25.1.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:273bc3959bcbff3f48606b28229b4721716598d76b5aaea2b4a9d0ab454ec062"}, + {file = "pyzmq-25.1.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cbc8df5c6a88ba5ae385d8930da02201165408dde8d8322072e3e5ddd4f68e22"}, + {file = "pyzmq-25.1.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:18d43df3f2302d836f2a56f17e5663e398416e9dd74b205b179065e61f1a6edf"}, + {file = "pyzmq-25.1.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:73461eed88a88c866656e08f89299720a38cb4e9d34ae6bf5df6f71102570f2e"}, + {file = "pyzmq-25.1.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:34c850ce7976d19ebe7b9d4b9bb8c9dfc7aac336c0958e2651b88cbd46682123"}, + {file = "pyzmq-25.1.1-cp36-cp36m-win32.whl", hash = "sha256:d2045d6d9439a0078f2a34b57c7b18c4a6aef0bee37f22e4ec9f32456c852c71"}, + {file = "pyzmq-25.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:458dea649f2f02a0b244ae6aef8dc29325a2810aa26b07af8374dc2a9faf57e3"}, + {file = "pyzmq-25.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7cff25c5b315e63b07a36f0c2bab32c58eafbe57d0dce61b614ef4c76058c115"}, + {file = "pyzmq-25.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1579413ae492b05de5a6174574f8c44c2b9b122a42015c5292afa4be2507f28"}, + {file = "pyzmq-25.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3d0a409d3b28607cc427aa5c30a6f1e4452cc44e311f843e05edb28ab5e36da0"}, + {file = "pyzmq-25.1.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:21eb4e609a154a57c520e3d5bfa0d97e49b6872ea057b7c85257b11e78068222"}, + {file = "pyzmq-25.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:034239843541ef7a1aee0c7b2cb7f6aafffb005ede965ae9cbd49d5ff4ff73cf"}, + {file = "pyzmq-25.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f8115e303280ba09f3898194791a153862cbf9eef722ad8f7f741987ee2a97c7"}, + {file = "pyzmq-25.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1a5d26fe8f32f137e784f768143728438877d69a586ddeaad898558dc971a5ae"}, + {file = "pyzmq-25.1.1-cp37-cp37m-win32.whl", hash = "sha256:f32260e556a983bc5c7ed588d04c942c9a8f9c2e99213fec11a031e316874c7e"}, + {file = "pyzmq-25.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:abf34e43c531bbb510ae7e8f5b2b1f2a8ab93219510e2b287a944432fad135f3"}, + {file = "pyzmq-25.1.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:87e34f31ca8f168c56d6fbf99692cc8d3b445abb5bfd08c229ae992d7547a92a"}, + {file = "pyzmq-25.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c9c6c9b2c2f80747a98f34ef491c4d7b1a8d4853937bb1492774992a120f475d"}, + {file = "pyzmq-25.1.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5619f3f5a4db5dbb572b095ea3cb5cc035335159d9da950830c9c4db2fbb6995"}, + {file = "pyzmq-25.1.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5a34d2395073ef862b4032343cf0c32a712f3ab49d7ec4f42c9661e0294d106f"}, + {file = "pyzmq-25.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25f0e6b78220aba09815cd1f3a32b9c7cb3e02cb846d1cfc526b6595f6046618"}, + {file = "pyzmq-25.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3669cf8ee3520c2f13b2e0351c41fea919852b220988d2049249db10046a7afb"}, + {file = "pyzmq-25.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2d163a18819277e49911f7461567bda923461c50b19d169a062536fffe7cd9d2"}, + {file = "pyzmq-25.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:df27ffddff4190667d40de7beba4a950b5ce78fe28a7dcc41d6f8a700a80a3c0"}, + {file = "pyzmq-25.1.1-cp38-cp38-win32.whl", hash = "sha256:a382372898a07479bd34bda781008e4a954ed8750f17891e794521c3e21c2e1c"}, + {file = "pyzmq-25.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:52533489f28d62eb1258a965f2aba28a82aa747202c8fa5a1c7a43b5db0e85c1"}, + {file = "pyzmq-25.1.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:03b3f49b57264909aacd0741892f2aecf2f51fb053e7d8ac6767f6c700832f45"}, + {file = "pyzmq-25.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:330f9e188d0d89080cde66dc7470f57d1926ff2fb5576227f14d5be7ab30b9fa"}, + {file = "pyzmq-25.1.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2ca57a5be0389f2a65e6d3bb2962a971688cbdd30b4c0bd188c99e39c234f414"}, + {file = "pyzmq-25.1.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d457aed310f2670f59cc5b57dcfced452aeeed77f9da2b9763616bd57e4dbaae"}, + {file = "pyzmq-25.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c56d748ea50215abef7030c72b60dd723ed5b5c7e65e7bc2504e77843631c1a6"}, + {file = "pyzmq-25.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8f03d3f0d01cb5a018debeb412441996a517b11c5c17ab2001aa0597c6d6882c"}, + {file = "pyzmq-25.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:820c4a08195a681252f46926de10e29b6bbf3e17b30037bd4250d72dd3ddaab8"}, + {file = "pyzmq-25.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:17ef5f01d25b67ca8f98120d5fa1d21efe9611604e8eb03a5147360f517dd1e2"}, + {file = "pyzmq-25.1.1-cp39-cp39-win32.whl", hash = "sha256:04ccbed567171579ec2cebb9c8a3e30801723c575601f9a990ab25bcac6b51e2"}, + {file = "pyzmq-25.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:e61f091c3ba0c3578411ef505992d356a812fb200643eab27f4f70eed34a29ef"}, + {file = "pyzmq-25.1.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ade6d25bb29c4555d718ac6d1443a7386595528c33d6b133b258f65f963bb0f6"}, + {file = "pyzmq-25.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0c95ddd4f6e9fca4e9e3afaa4f9df8552f0ba5d1004e89ef0a68e1f1f9807c7"}, + {file = "pyzmq-25.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48e466162a24daf86f6b5ca72444d2bf39a5e58da5f96370078be67c67adc978"}, + {file = "pyzmq-25.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abc719161780932c4e11aaebb203be3d6acc6b38d2f26c0f523b5b59d2fc1996"}, + {file = "pyzmq-25.1.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1ccf825981640b8c34ae54231b7ed00271822ea1c6d8ba1090ebd4943759abf5"}, + {file = "pyzmq-25.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c2f20ce161ebdb0091a10c9ca0372e023ce24980d0e1f810f519da6f79c60800"}, + {file = "pyzmq-25.1.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:deee9ca4727f53464daf089536e68b13e6104e84a37820a88b0a057b97bba2d2"}, + {file = "pyzmq-25.1.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:aa8d6cdc8b8aa19ceb319aaa2b660cdaccc533ec477eeb1309e2a291eaacc43a"}, + {file = "pyzmq-25.1.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:019e59ef5c5256a2c7378f2fb8560fc2a9ff1d315755204295b2eab96b254d0a"}, + {file = "pyzmq-25.1.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:b9af3757495c1ee3b5c4e945c1df7be95562277c6e5bccc20a39aec50f826cd0"}, + {file = "pyzmq-25.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:548d6482dc8aadbe7e79d1b5806585c8120bafa1ef841167bc9090522b610fa6"}, + {file = "pyzmq-25.1.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:057e824b2aae50accc0f9a0570998adc021b372478a921506fddd6c02e60308e"}, + {file = "pyzmq-25.1.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2243700cc5548cff20963f0ca92d3e5e436394375ab8a354bbea2b12911b20b0"}, + {file = "pyzmq-25.1.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79986f3b4af059777111409ee517da24a529bdbd46da578b33f25580adcff728"}, + {file = "pyzmq-25.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:11d58723d44d6ed4dd677c5615b2ffb19d5c426636345567d6af82be4dff8a55"}, + {file = "pyzmq-25.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:49d238cf4b69652257db66d0c623cd3e09b5d2e9576b56bc067a396133a00d4a"}, + {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fedbdc753827cf014c01dbbee9c3be17e5a208dcd1bf8641ce2cd29580d1f0d4"}, + {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc16ac425cc927d0a57d242589f87ee093884ea4804c05a13834d07c20db203c"}, + {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11c1d2aed9079c6b0c9550a7257a836b4a637feb334904610f06d70eb44c56d2"}, + {file = "pyzmq-25.1.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e8a701123029cc240cea61dd2d16ad57cab4691804143ce80ecd9286b464d180"}, + {file = "pyzmq-25.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:61706a6b6c24bdece85ff177fec393545a3191eeda35b07aaa1458a027ad1304"}, + {file = "pyzmq-25.1.1.tar.gz", hash = "sha256:259c22485b71abacdfa8bf79720cd7bcf4b9d128b30ea554f01ae71fdbfdaa23"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "qtconsole" +version = "5.4.4" +description = "Jupyter Qt console" +optional = false +python-versions = ">= 3.7" +files = [ + {file = "qtconsole-5.4.4-py3-none-any.whl", hash = "sha256:a3b69b868e041c2c698bdc75b0602f42e130ffb256d6efa48f9aa756c97672aa"}, + {file = "qtconsole-5.4.4.tar.gz", hash = "sha256:b7ffb53d74f23cee29f4cdb55dd6fabc8ec312d94f3c46ba38e1dde458693dfb"}, +] + +[package.dependencies] +ipykernel = ">=4.1" +ipython-genutils = "*" +jupyter-client = ">=4.1" +jupyter-core = "*" +packaging = "*" +pygments = "*" +pyzmq = ">=17.1" +qtpy = ">=2.4.0" +traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" + +[package.extras] +doc = ["Sphinx (>=1.3)"] +test = ["flaky", "pytest", "pytest-qt"] + +[[package]] +name = "qtpy" +version = "2.4.0" +description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." +optional = false +python-versions = ">=3.7" +files = [ + {file = "QtPy-2.4.0-py3-none-any.whl", hash = "sha256:4d4f045a41e09ac9fa57fcb47ef05781aa5af294a0a646acc1b729d14225e741"}, + {file = "QtPy-2.4.0.tar.gz", hash = "sha256:db2d508167aa6106781565c8da5c6f1487debacba33519cedc35fa8997d424d4"}, +] + +[package.dependencies] +packaging = "*" + +[package.extras] +test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] + +[[package]] +name = "redis" +version = "5.0.0" +description = "Python client for Redis database and key-value store" +optional = false +python-versions = ">=3.7" +files = [ + {file = "redis-5.0.0-py3-none-any.whl", hash = "sha256:06570d0b2d84d46c21defc550afbaada381af82f5b83e5b3777600e05d8e2ed0"}, + {file = "redis-5.0.0.tar.gz", hash = "sha256:5cea6c0d335c9a7332a460ed8729ceabb4d0c489c7285b0a86dbbf8a017bd120"}, +] + +[package.dependencies] +async-timeout = {version = ">=4.0.2", markers = "python_full_version <= \"3.11.2\""} +hiredis = {version = ">=1.0.0", optional = true, markers = "extra == \"hiredis\""} + +[package.extras] +hiredis = ["hiredis (>=1.0.0)"] +ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)"] + +[[package]] +name = "referencing" +version = "0.30.2" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.30.2-py3-none-any.whl", hash = "sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf"}, + {file = "referencing-0.30.2.tar.gz", hash = "sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "responses" +version = "0.23.3" +description = "A utility library for mocking out the `requests` Python library." +optional = false +python-versions = ">=3.7" +files = [ + {file = "responses-0.23.3-py3-none-any.whl", hash = "sha256:e6fbcf5d82172fecc0aa1860fd91e58cbfd96cee5e96da5b63fa6eb3caa10dd3"}, + {file = "responses-0.23.3.tar.gz", hash = "sha256:205029e1cb334c21cb4ec64fc7599be48b859a0fd381a42443cdd600bfe8b16a"}, +] + +[package.dependencies] +pyyaml = "*" +requests = ">=2.30.0,<3.0" +types-PyYAML = "*" +urllib3 = ">=1.25.10,<3.0" + +[package.extras] +tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-httpserver", "tomli", "tomli-w", "types-requests"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rpds-py" +version = "0.10.2" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rpds_py-0.10.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:9f00d54b18dd837f1431d66b076737deb7c29ce3ebb8412ceaf44d5e1954ac0c"}, + {file = "rpds_py-0.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f4d561f4728f825e3b793a53064b606ca0b6fc264f67d09e54af452aafc5b82"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:013d6c784150d10236a74b4094a79d96a256b814457e388fc5a4ba9efe24c402"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd1142d22fdb183a0fff66d79134bf644401437fed874f81066d314c67ee193c"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a0536ed2b9297c75104e1a3da330828ba1b2639fa53b38d396f98bf7e3c68df"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:41bd430b7b63aa802c02964e331ac0b177148fef5f807d2c90d05ce71a52b4d4"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e8474f7233fe1949ce4e03bea698a600c2d5d6b51dab6d6e6336dbe69acf23e"}, + {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d9d7efaad48b859053b90dedd69bc92f2095084251e732e4c57ac9726bcb1e64"}, + {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5612b0b1de8d5114520094bd5fc3d04eb8af6f3e10d48ef05b7c8e77c1fd9545"}, + {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5d5eaf988951f6ecb6854ca3300b87123599c711183c83da7ce39717a7cbdbce"}, + {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75c8766734ac0053e1d683567e65e85306c4ec62631b0591caeb287ac8f72e08"}, + {file = "rpds_py-0.10.2-cp310-none-win32.whl", hash = "sha256:8de9b88f0cbac73cfed34220d13c57849e62a7099a714b929142425e926d223a"}, + {file = "rpds_py-0.10.2-cp310-none-win_amd64.whl", hash = "sha256:2275f1a022e2383da5d2d101fe11ccdcbae799148c4b83260a4b9309fa3e1fc2"}, + {file = "rpds_py-0.10.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dd91a7d7a9ce7f4983097c91ce211f3e5569cc21caa16f2692298a07e396f82b"}, + {file = "rpds_py-0.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e82b4a70cc67094f3f3fd77579702f48fcf1de7bdc67d79b8f1e24d089a6162c"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e281b71922208e00886e4b7ffbfcf27874486364f177418ab676f102130e7ec9"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3eb1a0d2b6d232d1bcdfc3fcc5f7b004ab3fbd9203011a3172f051d4527c0b6"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02945ae38fd78efc40900f509890de84cfd5ffe2cd2939eeb3a8800dc68b87cb"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccfb77f6dc8abffa6f1c7e3975ed9070a41ce5fcc11154d2bead8c1baa940f09"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af52078719209bef33e38131486fd784832dd8d1dc9b85f00a44f6e7437dd021"}, + {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56ba7c1100ed079527f2b995bf5486a2e557e6d5b733c52e8947476338815b69"}, + {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:899b03a3be785a7e1ff84b237da71f0efa2f021512f147dd34ffdf7aa82cb678"}, + {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:22e6de18f00583f06928cc8d0993104ecc62f7c6da6478db2255de89a30e45d1"}, + {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:edd74b760a6bb950397e7a7bd2f38e6700f6525062650b1d77c6d851b82f02c2"}, + {file = "rpds_py-0.10.2-cp311-none-win32.whl", hash = "sha256:18909093944727e068ebfc92e2e6ed1c4fa44135507c1c0555213ce211c53214"}, + {file = "rpds_py-0.10.2-cp311-none-win_amd64.whl", hash = "sha256:9568764e72d85cf7855ca78b48e07ed1be47bf230e2cea8dabda3c95f660b0ff"}, + {file = "rpds_py-0.10.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:0fc625059b83695fbb4fc8b7a8b66fa94ff9c7b78c84fb9986cd53ff88a28d80"}, + {file = "rpds_py-0.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c86231c66e4f422e7c13ea6200bb4048b3016c8bfd11b4fd0dabd04d2c8e3501"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56777c57246e048908b550af9b81b0ec9cf804fd47cb7502ccd93238bd6025c2"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a4cb372e22e9c879bd9a9cc9b20b7c1fbf30a605ac953da45ecec05d8a6e1c77"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa3b3a43dabc4cc57a7800f526cbe03f71c69121e21b863fdf497b59b462b163"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d222086daa55421d599609b32d0ebe544e57654c4a0a1490c54a7ebaa67561"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:529aab727f54a937085184e7436e1d0e19975cf10115eda12d37a683e4ee5342"}, + {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43e9b1531d6a898bdf086acb75c41265c7ec4331267d7619148d407efc72bd24"}, + {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c2772bb95062e3f9774140205cd65d8997e39620715486cf5f843cf4ad8f744c"}, + {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ba1b28e44f611f3f2b436bd8290050a61db4b59a8e24be4465f44897936b3824"}, + {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5aba767e64b494483ad60c4873bec78d16205a21f8247c99749bd990d9c846c2"}, + {file = "rpds_py-0.10.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:e1954f4b239d1a92081647eecfd51cbfd08ea16eb743b8af1cd0113258feea14"}, + {file = "rpds_py-0.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de4a2fd524993578fe093044f291b4b24aab134390030b3b9b5f87fd41ab7e75"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e69737bd56006a86fd5a78b2b85447580a6138c930a75eb9ef39fe03d90782b1"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f40abbcc0a7d9a8a80870af839d317e6932533f98682aabd977add6c53beeb23"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29ec8507664f94cc08457d98cfc41c3cdbddfa8952438e644177a29b04937876"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcde80aefe7054fad6277762fb7e9d35c72ea479a485ae1bb14629c640987b30"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a65de5c02884760a14a58304fb6303f9ddfc582e630f385daea871e1bdb18686"}, + {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e92e5817eb6bfed23aa5e45bfe30647b83602bdd6f9e25d63524d4e6258458b0"}, + {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2c8fc6c841ada60a86d29c9ebe2e8757c47eda6553f3596c560e59ca6e9b6fa1"}, + {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:8557c807388e6617161fe51b1a4747ea8d1133f2d2ad8e79583439abebe58fbd"}, + {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:00e97d43a36811b78fa9ad9d3329bf34f76a31e891a7031a2ac01450c9b168ab"}, + {file = "rpds_py-0.10.2-cp38-none-win32.whl", hash = "sha256:1ed3d5385d14be894e12a9033be989e012214a9811e7194849c94032ad69682a"}, + {file = "rpds_py-0.10.2-cp38-none-win_amd64.whl", hash = "sha256:02b4a2e28eb24dac4ef43dda4f6a6f7766e355179b143f7d0c76a1c5488a307b"}, + {file = "rpds_py-0.10.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:2a55631b93e47956fbc97d69ba2054a8c6a4016f9a3064ec4e031f5f1030cb90"}, + {file = "rpds_py-0.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2ffbf1b38c88d0466de542e91b08225d51782282512f8e2b11715126c41fda48"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213f9ef5c02ec2f883c1075d25a873149daadbaea50d18d622e9db55ec9849c2"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b00150a9a3fd0a8efaa90bc2696c105b04039d50763dd1c95a34c88c5966cb57"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ab0f7aabdbce4a202e013083eeab71afdb85efa405dc4a06fea98cde81204675"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cd0c9fb5d40887500b4ed818770c68ab4fa6e0395d286f9704be6751b1b7d98"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8578fc6c8bdd0201327503720fa581000b4bd3934abbf07e2628d1ad3de157d"}, + {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d27d08056fcd61ff47a0cd8407eff4d3e816c82cb6b9c6f0ce9a0ad49225f81"}, + {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c8f6526df47953b07c45b95c4d1da6b9a0861c0e5da0271db96bb1d807825412"}, + {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:177c033e467a66a054dd3a9534167234a3d0b2e41445807b13b626e01da25d92"}, + {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c74cbee9e532dc34371127f7686d6953e5153a1f22beab7f953d95ee4a0fe09"}, + {file = "rpds_py-0.10.2-cp39-none-win32.whl", hash = "sha256:05a1382905026bdd560f806c8c7c16e0f3e3fb359ba8868203ca6e5799884968"}, + {file = "rpds_py-0.10.2-cp39-none-win_amd64.whl", hash = "sha256:3fd503c27e7b7034128e30847ecdb4bff4ca5e60f29ad022a9f66ae8940d54ac"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4a96147791e49e84207dd1530109aa0e9eeaf1c8b7a59f150047fc0fcdf9bb64"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:203eb1532d51591d32e8dfafd60b5d31347ea7278c8da02b4b550287f6abe28b"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2f416cdfe92f5fbb77177f5f3f7830059d1582db05f2c7119bf80069d1ab69b"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2660000e1a113869c86eb5cc07f3343467490f3cd9d0299f81da9ddae7137b7"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1adb04e4b4e41bf30aaa77eeb169c1b9ba9e5010e2e6ce8d6c17e1446edc9b68"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bca97521ee786087f0c5ef318fef3eef0266a9c3deff88205523cf353af7394"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4969592e3cdeefa4cbb15a26cec102cbd4a1d6e5b695fac9fa026e19741138c8"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df61f818edf7c8626bfa392f825860fb670b5f8336e238eb0ec7e2a5689cdded"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b589d93a60e78fe55d5bc76ee8c2bf945dbdbb7cd16044c53e0307604e448de1"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:73da69e1f612c3e682e34dcb971272d90d6f27b2c99acff444ca455a89978574"}, + {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:89438e8885a186c69fe31f7ef98bb2bf29688c466c3caf9060f404c0be89ae80"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c4ecc4e9a5d73a816cae36ee6b5d8b7a0c72013cae1e101406e832887c3dc2d8"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:907b214da5d2fcff0b6ddb83de1333890ca92abaf4bbf8d9c61dc1b95c87fd6e"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb44644371eaa29a3aba7b69b1862d0d56f073bb7585baa32e4271a71a91ee82"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:80c3cf46511653f94dfe07c7c79ab105c4164d6e1dfcb35b7214fb9af53eaef4"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaba0613c759ebf95988a84f766ca6b7432d55ce399194f95dde588ad1be0878"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0527c97dcd8bb983822ee31d3760187083fd3ba18ac4dd22cf5347c89d5628f4"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cdfd649011ce2d90cb0dd304c5aba1190fac0c266d19a9e2b96b81cfd150a09"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:75eea40355a8690459c7291ce6c8ce39c27bd223675c7da6619f510c728feb97"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1b804cfad04f862d6a84af9d1ad941b06f671878f0f7ecad6c92007d423de6"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:bf77f9017fcfa1232f98598a637406e6c33982ccba8a5922339575c3e2b90ea5"}, + {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:46c4c550bf59ce05d6bff2c98053822549aaf9fbaf81103edea325e03350bca1"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:46af4a742b90c7460e94214f923452c2c1d050a9da1d2b8d4c70cbc045e692b7"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2a86d246a160d98d820ee7d02dc18c923c228de095be362e57b9fd8970b2c4a1"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae141c9017f8f473a6ee07a9425da021816a9f8c0683c2e5442f0ccf56b0fc62"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1147bc3d0dd1e549d991110d0a09557ec9f925dbc1ca62871fcdab2ec9d716b"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fce7a8ee8d0f682c953c0188735d823f0fcb62779bf92cd6ba473a8e730e26ad"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c7f9d70f99e1fbcbf57c75328b80e1c0a7f6cad43e75efa90a97221be5efe15"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b309908b6ff5ffbf6394818cb73b5a2a74073acee2c57fe8719046389aeff0d"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ff1f585a0fdc1415bd733b804f33d386064a308672249b14828130dd43e7c31"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0188b580c490bccb031e9b67e9e8c695a3c44ac5e06218b152361eca847317c3"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:abe081453166e206e3a8c6d8ace57214c17b6d9477d7601ac14a365344dbc1f4"}, + {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9118de88c16947eaf5b92f749e65b0501ea69e7c2be7bd6aefc12551622360e1"}, + {file = "rpds_py-0.10.2.tar.gz", hash = "sha256:289073f68452b96e70990085324be7223944c7409973d13ddfe0eea1c1b5663b"}, +] + +[[package]] +name = "rsa" +version = "4.9" +description = "Pure-Python RSA implementation" +optional = true +python-versions = ">=3.6,<4" +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "ruff" +version = "0.0.288" +description = "An extremely fast Python linter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.0.288-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:64c01615b8640c703a56a1eac3114a653166eafa5d416ffc9e6cafbfb86ab927"}, + {file = "ruff-0.0.288-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:84691fd3c8edd705c27eb7ccf745a3530c31e4c83010f9ce20e0b9eb0578f099"}, + {file = "ruff-0.0.288-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e08c81394ae272b1595580dad1bfc62de72d9356c51e76b5c2fdd546f84e6168"}, + {file = "ruff-0.0.288-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:db1de2ac1de219f29c12940b429fe365974c3d9f69464c4660c06e4b4b284dba"}, + {file = "ruff-0.0.288-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd9977eee17d7f29beca74b478f6930c7dd006d486bac615c849a3436384fc28"}, + {file = "ruff-0.0.288-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:2d5df4a49eaa11536776b1efcc4e88e373b205a958712185de8e4ae287397614"}, + {file = "ruff-0.0.288-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10feeabd15e2c6e06bce75aa97e806009cf909261cd124f24ef832385914aae9"}, + {file = "ruff-0.0.288-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0496556da7b413279370cae7de001a0415279e9318dc1fabd447a3ca7b398bce"}, + {file = "ruff-0.0.288-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9a6563bbacfc7afdba04722d742db4f1961ab6f398a2e305b43c21d418c149"}, + {file = "ruff-0.0.288-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ea0535d48f674d6a6bf1e6fb1a18c40622cb6496b0994cfdcd7aec763ef8b589"}, + {file = "ruff-0.0.288-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e450e50a936409439bf4e28e85412622693350cf4da89c69e1f14af21ddbc467"}, + {file = "ruff-0.0.288-py3-none-musllinux_1_2_i686.whl", hash = "sha256:28ee03358e4eb89e843cb4fd9cf0406eb603a7e060436ffc623b29544e374c2b"}, + {file = "ruff-0.0.288-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:13d1e6cef389dc0238ef0e97e25561c925bf255d0f59f70ed2d6bd0a13fdd7b0"}, + {file = "ruff-0.0.288-py3-none-win32.whl", hash = "sha256:7534da2f1e724b87a5041615652bca7c6e721f90ae3a01d1d8e965d08a615038"}, + {file = "ruff-0.0.288-py3-none-win_amd64.whl", hash = "sha256:73066b1da66b3d4942cce8c90fd6e09108851e0867a5f7071255d1b99aee3e75"}, + {file = "ruff-0.0.288-py3-none-win_arm64.whl", hash = "sha256:6ca84861bf046e4365e20f4d664dc0aa02b377a6896a393dad716e033ac47a65"}, + {file = "ruff-0.0.288.tar.gz", hash = "sha256:71eb3e09cb47cc02c13c6dc5561055b913572995cf5fa8286948f938bc464621"}, +] + +[[package]] +name = "s3transfer" +version = "0.6.2" +description = "An Amazon S3 Transfer Manager" +optional = false +python-versions = ">= 3.7" +files = [ + {file = "s3transfer-0.6.2-py3-none-any.whl", hash = "sha256:b014be3a8a2aab98cfe1abc7229cc5a9a0cf05eb9c1f2b86b230fd8df3f78084"}, + {file = "s3transfer-0.6.2.tar.gz", hash = "sha256:cab66d3380cca3e70939ef2255d01cd8aece6a4907a9528740f668c4b0611861"}, +] + +[package.dependencies] +botocore = ">=1.12.36,<2.0a.0" + +[package.extras] +crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] + +[[package]] +name = "scikit-learn" +version = "1.3.0" +description = "A set of python modules for machine learning and data mining" +optional = false +python-versions = ">=3.8" +files = [ + {file = "scikit-learn-1.3.0.tar.gz", hash = "sha256:8be549886f5eda46436b6e555b0e4873b4f10aa21c07df45c4bc1735afbccd7a"}, + {file = "scikit_learn-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:981287869e576d42c682cf7ca96af0c6ac544ed9316328fd0d9292795c742cf5"}, + {file = "scikit_learn-1.3.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:436aaaae2c916ad16631142488e4c82f4296af2404f480e031d866863425d2a2"}, + {file = "scikit_learn-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7e28d8fa47a0b30ae1bd7a079519dd852764e31708a7804da6cb6f8b36e3630"}, + {file = "scikit_learn-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae80c08834a473d08a204d966982a62e11c976228d306a2648c575e3ead12111"}, + {file = "scikit_learn-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:552fd1b6ee22900cf1780d7386a554bb96949e9a359999177cf30211e6b20df6"}, + {file = "scikit_learn-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79970a6d759eb00a62266a31e2637d07d2d28446fca8079cf9afa7c07b0427f8"}, + {file = "scikit_learn-1.3.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:850a00b559e636b23901aabbe79b73dc604b4e4248ba9e2d6e72f95063765603"}, + {file = "scikit_learn-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee04835fb016e8062ee9fe9074aef9b82e430504e420bff51e3e5fffe72750ca"}, + {file = "scikit_learn-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d953531f5d9f00c90c34fa3b7d7cfb43ecff4c605dac9e4255a20b114a27369"}, + {file = "scikit_learn-1.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:151ac2bf65ccf363664a689b8beafc9e6aae36263db114b4ca06fbbbf827444a"}, + {file = "scikit_learn-1.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6a885a9edc9c0a341cab27ec4f8a6c58b35f3d449c9d2503a6fd23e06bbd4f6a"}, + {file = "scikit_learn-1.3.0-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:9877af9c6d1b15486e18a94101b742e9d0d2f343d35a634e337411ddb57783f3"}, + {file = "scikit_learn-1.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c470f53cea065ff3d588050955c492793bb50c19a92923490d18fcb637f6383a"}, + {file = "scikit_learn-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd6e2d7389542eae01077a1ee0318c4fec20c66c957f45c7aac0c6eb0fe3c612"}, + {file = "scikit_learn-1.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:3a11936adbc379a6061ea32fa03338d4ca7248d86dd507c81e13af428a5bc1db"}, + {file = "scikit_learn-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:998d38fcec96584deee1e79cd127469b3ad6fefd1ea6c2dfc54e8db367eb396b"}, + {file = "scikit_learn-1.3.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:ded35e810438a527e17623ac6deae3b360134345b7c598175ab7741720d7ffa7"}, + {file = "scikit_learn-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e8102d5036e28d08ab47166b48c8d5e5810704daecf3a476a4282d562be9a28"}, + {file = "scikit_learn-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7617164951c422747e7c32be4afa15d75ad8044f42e7d70d3e2e0429a50e6718"}, + {file = "scikit_learn-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:1d54fb9e6038284548072df22fd34777e434153f7ffac72c8596f2d6987110dd"}, +] + +[package.dependencies] +joblib = ">=1.1.1" +numpy = ">=1.17.3" +scipy = ">=1.5.0" +threadpoolctl = ">=2.0.0" + +[package.extras] +benchmark = ["matplotlib (>=3.1.3)", "memory-profiler (>=0.57.0)", "pandas (>=1.0.5)"] +docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.1.3)", "memory-profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.0.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.16.2)", "seaborn (>=0.9.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-gallery (>=0.10.1)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] +examples = ["matplotlib (>=3.1.3)", "pandas (>=1.0.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.16.2)", "seaborn (>=0.9.0)"] +tests = ["black (>=23.3.0)", "matplotlib (>=3.1.3)", "mypy (>=1.3)", "numpydoc (>=1.2.0)", "pandas (>=1.0.5)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.0.272)", "scikit-image (>=0.16.2)"] + +[[package]] +name = "scipy" +version = "1.11.2" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = "<3.13,>=3.9" +files = [ + {file = "scipy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2b997a5369e2d30c97995dcb29d638701f8000d04df01b8e947f206e5d0ac788"}, + {file = "scipy-1.11.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:95763fbda1206bec41157582bea482f50eb3702c85fffcf6d24394b071c0e87a"}, + {file = "scipy-1.11.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e367904a0fec76433bf3fbf3e85bf60dae8e9e585ffd21898ab1085a29a04d16"}, + {file = "scipy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d690e1ca993c8f7ede6d22e5637541217fc6a4d3f78b3672a6fe454dbb7eb9a7"}, + {file = "scipy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d2b813bfbe8dec6a75164523de650bad41f4405d35b0fa24c2c28ae07fcefb20"}, + {file = "scipy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:afdb0d983f6135d50770dd979df50bf1c7f58b5b33e0eb8cf5c73c70600eae1d"}, + {file = "scipy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8d9886f44ef8c9e776cb7527fb01455bf4f4a46c455c4682edc2c2cc8cd78562"}, + {file = "scipy-1.11.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1342ca385c673208f32472830c10110a9dcd053cf0c4b7d4cd7026d0335a6c1d"}, + {file = "scipy-1.11.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b133f237bd8ba73bad51bc12eb4f2d84cbec999753bf25ba58235e9fc2096d80"}, + {file = "scipy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aeb87661de987f8ec56fa6950863994cd427209158255a389fc5aea51fa7055"}, + {file = "scipy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:90d3b1364e751d8214e325c371f0ee0dd38419268bf4888b2ae1040a6b266b2a"}, + {file = "scipy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:f73102f769ee06041a3aa26b5841359b1a93cc364ce45609657751795e8f4a4a"}, + {file = "scipy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa4909c6c20c3d91480533cddbc0e7c6d849e7d9ded692918c76ce5964997898"}, + {file = "scipy-1.11.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ac74b1512d38718fb6a491c439aa7b3605b96b1ed3be6599c17d49d6c60fca18"}, + {file = "scipy-1.11.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8425fa963a32936c9773ee3ce44a765d8ff67eed5f4ac81dc1e4a819a238ee9"}, + {file = "scipy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:542a757e2a6ec409e71df3d8fd20127afbbacb1c07990cb23c5870c13953d899"}, + {file = "scipy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ea932570b1c2a30edafca922345854ff2cd20d43cd9123b6dacfdecebfc1a80b"}, + {file = "scipy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:4447ad057d7597476f9862ecbd9285bbf13ba9d73ce25acfa4e4b11c6801b4c9"}, + {file = "scipy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b0620240ef445b5ddde52460e6bc3483b7c9c750275369379e5f609a1050911c"}, + {file = "scipy-1.11.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:f28f1f6cfeb48339c192efc6275749b2a25a7e49c4d8369a28b6591da02fbc9a"}, + {file = "scipy-1.11.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:214cdf04bbae7a54784f8431f976704ed607c4bc69ba0d5d5d6a9df84374df76"}, + {file = "scipy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10eb6af2f751aa3424762948e5352f707b0dece77288206f227864ddf675aca0"}, + {file = "scipy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0f3261f14b767b316d7137c66cc4f33a80ea05841b9c87ad83a726205b901423"}, + {file = "scipy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:2c91cf049ffb5575917f2a01da1da082fd24ed48120d08a6e7297dfcac771dcd"}, + {file = "scipy-1.11.2.tar.gz", hash = "sha256:b29318a5e39bd200ca4381d80b065cdf3076c7d7281c5e36569e99273867f61d"}, +] + +[package.dependencies] +numpy = ">=1.21.6,<1.28.0" + +[package.extras] +dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] +test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "send2trash" +version = "1.8.2" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.2-py3-none-any.whl", hash = "sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679"}, + {file = "Send2Trash-1.8.2.tar.gz", hash = "sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "68.2.1" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-68.2.1-py3-none-any.whl", hash = "sha256:eff96148eb336377ab11beee0c73ed84f1709a40c0b870298b0d058828761bae"}, + {file = "setuptools-68.2.1.tar.gz", hash = "sha256:56ee14884fd8d0cd015411f4a13f40b4356775a0aefd9ebc1d3bfb9a1acb32f1"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "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 (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +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 = "smmap" +version = "5.0.0" +description = "A pure Python implementation of a sliding window memory map manager" +optional = true +python-versions = ">=3.6" +files = [ + {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, + {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, +] + +[[package]] +name = "sniffio" +version = "1.3.0" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, + {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, +] + +[[package]] +name = "sortedcontainers" +version = "2.4.0" +description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" +optional = false +python-versions = "*" +files = [ + {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"}, + {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"}, +] + +[[package]] +name = "soupsieve" +version = "2.5" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + +[[package]] +name = "sqlparse" +version = "0.4.4" +description = "A non-validating SQL parser." +optional = true +python-versions = ">=3.5" +files = [ + {file = "sqlparse-0.4.4-py3-none-any.whl", hash = "sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3"}, + {file = "sqlparse-0.4.4.tar.gz", hash = "sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c"}, +] + +[package.extras] +dev = ["build", "flake8"] +doc = ["sphinx"] +test = ["pytest", "pytest-cov"] + +[[package]] +name = "stack-data" +version = "0.6.2" +description = "Extract data from python stack frames and tracebacks for informative displays" +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" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "sympy" +version = "1.12" +description = "Computer algebra system (CAS) in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "sympy-1.12-py3-none-any.whl", hash = "sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5"}, + {file = "sympy-1.12.tar.gz", hash = "sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8"}, +] + +[package.dependencies] +mpmath = ">=0.19" + +[[package]] +name = "tabulate" +version = "0.9.0" +description = "Pretty-print tabular data" +optional = true +python-versions = ">=3.7" +files = [ + {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, + {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, +] + +[package.extras] +widechars = ["wcwidth"] + +[[package]] +name = "terminado" +version = "0.17.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.7" +files = [ + {file = "terminado-0.17.1-py3-none-any.whl", hash = "sha256:8650d44334eba354dd591129ca3124a6ba42c3d5b70df5051b6921d506fdaeae"}, + {file = "terminado-0.17.1.tar.gz", hash = "sha256:6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] + +[[package]] +name = "threadpoolctl" +version = "3.2.0" +description = "threadpoolctl" +optional = false +python-versions = ">=3.8" +files = [ + {file = "threadpoolctl-3.2.0-py3-none-any.whl", hash = "sha256:2b7818516e423bdaebb97c723f86a7c6b0a83d3f3b0970328d66f4d9104dc032"}, + {file = "threadpoolctl-3.2.0.tar.gz", hash = "sha256:c96a0ba3bdddeaca37dc4cc7344aafad41cdb8c313f74fdfe387a867bba93355"}, +] + +[[package]] +name = "tinycss2" +version = "1.2.1" +description = "A tiny CSS parser" +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" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["flake8", "isort", "pytest"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +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 = "torch" +version = "2.0.1" +description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "torch-2.0.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:8ced00b3ba471856b993822508f77c98f48a458623596a4c43136158781e306a"}, + {file = "torch-2.0.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:359bfaad94d1cda02ab775dc1cc386d585712329bb47b8741607ef6ef4950747"}, + {file = "torch-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:7c84e44d9002182edd859f3400deaa7410f5ec948a519cc7ef512c2f9b34d2c4"}, + {file = "torch-2.0.1-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:567f84d657edc5582d716900543e6e62353dbe275e61cdc36eda4929e46df9e7"}, + {file = "torch-2.0.1-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:787b5a78aa7917465e9b96399b883920c88a08f4eb63b5a5d2d1a16e27d2f89b"}, + {file = "torch-2.0.1-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:e617b1d0abaf6ced02dbb9486803abfef0d581609b09641b34fa315c9c40766d"}, + {file = "torch-2.0.1-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b6019b1de4978e96daa21d6a3ebb41e88a0b474898fe251fd96189587408873e"}, + {file = "torch-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:dbd68cbd1cd9da32fe5d294dd3411509b3d841baecb780b38b3b7b06c7754434"}, + {file = "torch-2.0.1-cp311-none-macosx_10_9_x86_64.whl", hash = "sha256:ef654427d91600129864644e35deea761fb1fe131710180b952a6f2e2207075e"}, + {file = "torch-2.0.1-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:25aa43ca80dcdf32f13da04c503ec7afdf8e77e3a0183dd85cd3e53b2842e527"}, + {file = "torch-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:5ef3ea3d25441d3957348f7e99c7824d33798258a2bf5f0f0277cbcadad2e20d"}, + {file = "torch-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:0882243755ff28895e8e6dc6bc26ebcf5aa0911ed81b2a12f241fc4b09075b13"}, + {file = "torch-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:f66aa6b9580a22b04d0af54fcd042f52406a8479e2b6a550e3d9f95963e168c8"}, + {file = "torch-2.0.1-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:1adb60d369f2650cac8e9a95b1d5758e25d526a34808f7448d0bd599e4ae9072"}, + {file = "torch-2.0.1-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:1bcffc16b89e296826b33b98db5166f990e3b72654a2b90673e817b16c50e32b"}, + {file = "torch-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:e10e1597f2175365285db1b24019eb6f04d53dcd626c735fc502f1e8b6be9875"}, + {file = "torch-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:423e0ae257b756bb45a4b49072046772d1ad0c592265c5080070e0767da4e490"}, + {file = "torch-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:8742bdc62946c93f75ff92da00e3803216c6cce9b132fbca69664ca38cfb3e18"}, + {file = "torch-2.0.1-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:c62df99352bd6ee5a5a8d1832452110435d178b5164de450831a3a8cc14dc680"}, + {file = "torch-2.0.1-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:671a2565e3f63b8fe8e42ae3e36ad249fe5e567435ea27b94edaa672a7d0c416"}, +] + +[package.dependencies] +filelock = "*" +jinja2 = "*" +networkx = "*" +sympy = "*" +typing-extensions = "*" + +[package.extras] +opt-einsum = ["opt-einsum (>=3.3)"] + +[[package]] +name = "torchinfo" +version = "1.8.0" +description = "Model summary in PyTorch, based off of the original torchsummary." +optional = false +python-versions = ">=3.7" +files = [ + {file = "torchinfo-1.8.0-py3-none-any.whl", hash = "sha256:2e911c2918603f945c26ff21a3a838d12709223dc4ccf243407bce8b6e897b46"}, + {file = "torchinfo-1.8.0.tar.gz", hash = "sha256:72e94b0e9a3e64dc583a8e5b7940b8938a1ac0f033f795457f27e6f4e7afa2e9"}, +] + +[[package]] +name = "torchmetrics" +version = "1.1.2" +description = "PyTorch native Metrics" +optional = false +python-versions = ">=3.8" +files = [ + {file = "torchmetrics-1.1.2-py3-none-any.whl", hash = "sha256:19538ccf2a8556233ffc29ca288bd65a3532c49dc9b66feb8c201198b34f9504"}, + {file = "torchmetrics-1.1.2.tar.gz", hash = "sha256:44b01d3c7ca6aa925ac888adff0b0b7c2b2194ff662cf58eb6e05e0e8eb51b00"}, +] + +[package.dependencies] +lightning-utilities = ">=0.8.0" +numpy = ">1.20.0" +torch = ">=1.8.1" + +[package.extras] +all = ["SciencePlots (>=2.0.0)", "lpips (<=0.1.4)", "matplotlib (>=3.2.0)", "mypy (==1.5.1)", "nltk (>=3.6)", "piq (<=0.8.0)", "pycocotools (>2.0.0)", "pystoi (>=0.3.0)", "regex (>=2021.9.24)", "scipy (>1.0.0)", "torch-fidelity (<=0.4.0)", "torchaudio (>=0.10.0)", "torchvision (>=0.8)", "tqdm (>=4.41.0)", "transformers (>4.4.0)", "transformers (>=4.10.0)", "types-PyYAML", "types-emoji", "types-protobuf", "types-requests", "types-setuptools", "types-six", "types-tabulate"] +audio = ["pystoi (>=0.3.0)", "torchaudio (>=0.10.0)"] +detection = ["pycocotools (>2.0.0)", "torchvision (>=0.8)"] +dev = ["SciencePlots (>=2.0.0)", "bert-score (==0.3.13)", "cloudpickle (>1.3)", "coverage (==7.3.0)", "dython (<=0.7.4)", "fairlearn", "fast-bss-eval (>=0.1.0)", "fire (<=0.5.0)", "huggingface-hub (<0.16)", "jiwer (>=2.3.0)", "kornia (>=0.6.7)", "lpips (<=0.1.4)", "matplotlib (>=3.2.0)", "mir-eval (>=0.6)", "mypy (==1.5.1)", "netcal (>1.0.0)", "nltk (>=3.6)", "numpy (<1.25.0)", "pandas (>1.0.0)", "pandas (>=1.4.0)", "phmdoctest (==1.4.0)", "piq (<=0.8.0)", "psutil (<=5.9.5)", "pycocotools (>2.0.0)", "pystoi (>=0.3.0)", "pytest (==7.4.1)", "pytest-cov (==4.1.0)", "pytest-doctestplus (==1.0.0)", "pytest-rerunfailures (==12.0)", "pytest-timeout (==2.1.0)", "pytorch-msssim (==1.0.0)", "regex (>=2021.9.24)", "requests (<=2.31.0)", "rouge-score (>0.1.0)", "sacrebleu (>=2.0.0)", "scikit-image (>=0.19.0)", "scikit-learn (>=1.1.1)", "scipy (>1.0.0)", "sewar (>=0.4.4)", "statsmodels (>0.13.5)", "torch-complex (<=0.4.3)", "torch-fidelity (<=0.4.0)", "torchaudio (>=0.10.0)", "torchvision (>=0.8)", "tqdm (>=4.41.0)", "transformers (>4.4.0)", "transformers (>=4.10.0)", "types-PyYAML", "types-emoji", "types-protobuf", "types-requests", "types-setuptools", "types-six", "types-tabulate"] +image = ["lpips (<=0.1.4)", "scipy (>1.0.0)", "torch-fidelity (<=0.4.0)", "torchvision (>=0.8)"] +multimodal = ["piq (<=0.8.0)", "transformers (>=4.10.0)"] +test = ["bert-score (==0.3.13)", "cloudpickle (>1.3)", "coverage (==7.3.0)", "dython (<=0.7.4)", "fairlearn", "fast-bss-eval (>=0.1.0)", "fire (<=0.5.0)", "huggingface-hub (<0.16)", "jiwer (>=2.3.0)", "kornia (>=0.6.7)", "mir-eval (>=0.6)", "netcal (>1.0.0)", "numpy (<1.25.0)", "pandas (>1.0.0)", "pandas (>=1.4.0)", "phmdoctest (==1.4.0)", "psutil (<=5.9.5)", "pytest (==7.4.1)", "pytest-cov (==4.1.0)", "pytest-doctestplus (==1.0.0)", "pytest-rerunfailures (==12.0)", "pytest-timeout (==2.1.0)", "pytorch-msssim (==1.0.0)", "requests (<=2.31.0)", "rouge-score (>0.1.0)", "sacrebleu (>=2.0.0)", "scikit-image (>=0.19.0)", "scikit-learn (>=1.1.1)", "scipy (>1.0.0)", "sewar (>=0.4.4)", "statsmodels (>0.13.5)", "torch-complex (<=0.4.3)"] +text = ["nltk (>=3.6)", "regex (>=2021.9.24)", "tqdm (>=4.41.0)", "transformers (>4.4.0)"] +typing = ["mypy (==1.5.1)", "types-PyYAML", "types-emoji", "types-protobuf", "types-requests", "types-setuptools", "types-six", "types-tabulate"] +visual = ["SciencePlots (>=2.0.0)", "matplotlib (>=3.2.0)"] + +[[package]] +name = "tornado" +version = "6.3.3" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">= 3.8" +files = [ + {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:502fba735c84450974fec147340016ad928d29f1e91f49be168c0a4c18181e1d"}, + {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:805d507b1f588320c26f7f097108eb4023bbaa984d63176d1652e184ba24270a"}, + {file = "tornado-6.3.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bd19ca6c16882e4d37368e0152f99c099bad93e0950ce55e71daed74045908f"}, + {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ac51f42808cca9b3613f51ffe2a965c8525cb1b00b7b2d56828b8045354f76a"}, + {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71a8db65160a3c55d61839b7302a9a400074c9c753040455494e2af74e2501f2"}, + {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ceb917a50cd35882b57600709dd5421a418c29ddc852da8bcdab1f0db33406b0"}, + {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:7d01abc57ea0dbb51ddfed477dfe22719d376119844e33c661d873bf9c0e4a16"}, + {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:9dc4444c0defcd3929d5c1eb5706cbe1b116e762ff3e0deca8b715d14bf6ec17"}, + {file = "tornado-6.3.3-cp38-abi3-win32.whl", hash = "sha256:65ceca9500383fbdf33a98c0087cb975b2ef3bfb874cb35b8de8740cf7f41bd3"}, + {file = "tornado-6.3.3-cp38-abi3-win_amd64.whl", hash = "sha256:22d3c2fa10b5793da13c807e6fc38ff49a4f6e1e3868b0a6f4164768bb8e20f5"}, + {file = "tornado-6.3.3.tar.gz", hash = "sha256:e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe"}, +] + +[[package]] +name = "tqdm" +version = "4.66.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, + {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.9.0" +description = "Traitlets Python configuration system" +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"] +test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] + +[[package]] +name = "types-pyyaml" +version = "6.0.12.11" +description = "Typing stubs for PyYAML" +optional = false +python-versions = "*" +files = [ + {file = "types-PyYAML-6.0.12.11.tar.gz", hash = "sha256:7d340b19ca28cddfdba438ee638cd4084bde213e501a3978738543e27094775b"}, + {file = "types_PyYAML-6.0.12.11-py3-none-any.whl", hash = "sha256:a461508f3096d1d5810ec5ab95d7eeecb651f3a15b71959999988942063bf01d"}, +] + +[[package]] +name = "typing-extensions" +version = "4.7.1" +description = "Backported and Experimental Type Hints for Python 3.7+" +optional = false +python-versions = ">=3.7" +files = [ + {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, + {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, +] + +[[package]] +name = "tzdata" +version = "2023.3" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2023.3-py2.py3-none-any.whl", hash = "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"}, + {file = "tzdata-2023.3.tar.gz", hash = "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a"}, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "1.26.16" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +files = [ + {file = "urllib3-1.26.16-py2.py3-none-any.whl", hash = "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f"}, + {file = "urllib3-1.26.16.tar.gz", hash = "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "virtualenv" +version = "20.24.5" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.24.5-py3-none-any.whl", hash = "sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b"}, + {file = "virtualenv-20.24.5.tar.gz", hash = "sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<4" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "wcwidth" +version = "0.2.6" +description = "Measures the displayed width of unicode strings in a terminal" +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 = "webcolors" +version = "1.13" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.7" +files = [ + {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, + {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, +] + +[package.extras] +docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] +tests = ["pytest", "pytest-cov"] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +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 = "websocket-client" +version = "1.6.3" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket-client-1.6.3.tar.gz", hash = "sha256:3aad25d31284266bcfcfd1fd8a743f63282305a364b8d0948a43bd606acc652f"}, + {file = "websocket_client-1.6.3-py3-none-any.whl", hash = "sha256:6cfc30d051ebabb73a5fa246efdcc14c8fbebbd0330f8984ac3bb6d9edd2ad03"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "werkzeug" +version = "2.3.7" +description = "The comprehensive WSGI web application library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "werkzeug-2.3.7-py3-none-any.whl", hash = "sha256:effc12dba7f3bd72e605ce49807bbe692bd729c3bb122a3b91747a6ae77df528"}, + {file = "werkzeug-2.3.7.tar.gz", hash = "sha256:2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8"}, +] + +[package.dependencies] +MarkupSafe = ">=2.1.1" + +[package.extras] +watchdog = ["watchdog (>=2.3)"] + +[[package]] +name = "widgetsnbextension" +version = "4.0.8" +description = "Jupyter interactive widgets for Jupyter Notebook" +optional = false +python-versions = ">=3.7" +files = [ + {file = "widgetsnbextension-4.0.8-py3-none-any.whl", hash = "sha256:2e37f0ce9da11651056280c7efe96f2db052fe8fc269508e3724f5cbd6c93018"}, + {file = "widgetsnbextension-4.0.8.tar.gz", hash = "sha256:9ec291ba87c2dfad42c3d5b6f68713fa18be1acd7476569516b2431682315c17"}, +] + +[[package]] +name = "xmltodict" +version = "0.13.0" +description = "Makes working with XML feel like you are working with JSON" +optional = false +python-versions = ">=3.4" +files = [ + {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, + {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, +] + +[[package]] +name = "yarl" +version = "1.9.2" +description = "Yet another URL library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c2ad583743d16ddbdf6bb14b5cd76bf43b0d0006e918809d5d4ddf7bde8dd82"}, + {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82aa6264b36c50acfb2424ad5ca537a2060ab6de158a5bd2a72a032cc75b9eb8"}, + {file = "yarl-1.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c0c77533b5ed4bcc38e943178ccae29b9bcf48ffd1063f5821192f23a1bd27b9"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee4afac41415d52d53a9833ebae7e32b344be72835bbb589018c9e938045a560"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bf345c3a4f5ba7f766430f97f9cc1320786f19584acc7086491f45524a551ac"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a96c19c52ff442a808c105901d0bdfd2e28575b3d5f82e2f5fd67e20dc5f4ea"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:891c0e3ec5ec881541f6c5113d8df0315ce5440e244a716b95f2525b7b9f3608"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3a53ba34a636a256d767c086ceb111358876e1fb6b50dfc4d3f4951d40133d5"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:566185e8ebc0898b11f8026447eacd02e46226716229cea8db37496c8cdd26e0"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2b0738fb871812722a0ac2154be1f049c6223b9f6f22eec352996b69775b36d4"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:32f1d071b3f362c80f1a7d322bfd7b2d11e33d2adf395cc1dd4df36c9c243095"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e9fdc7ac0d42bc3ea78818557fab03af6181e076a2944f43c38684b4b6bed8e3"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56ff08ab5df8429901ebdc5d15941b59f6253393cb5da07b4170beefcf1b2528"}, + {file = "yarl-1.9.2-cp310-cp310-win32.whl", hash = "sha256:8ea48e0a2f931064469bdabca50c2f578b565fc446f302a79ba6cc0ee7f384d3"}, + {file = "yarl-1.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:50f33040f3836e912ed16d212f6cc1efb3231a8a60526a407aeb66c1c1956dde"}, + {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:646d663eb2232d7909e6601f1a9107e66f9791f290a1b3dc7057818fe44fc2b6"}, + {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aff634b15beff8902d1f918012fc2a42e0dbae6f469fce134c8a0dc51ca423bb"}, + {file = "yarl-1.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a83503934c6273806aed765035716216cc9ab4e0364f7f066227e1aaea90b8d0"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b25322201585c69abc7b0e89e72790469f7dad90d26754717f3310bfe30331c2"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22a94666751778629f1ec4280b08eb11815783c63f52092a5953faf73be24191"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ec53a0ea2a80c5cd1ab397925f94bff59222aa3cf9c6da938ce05c9ec20428d"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:159d81f22d7a43e6eabc36d7194cb53f2f15f498dbbfa8edc8a3239350f59fe7"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:832b7e711027c114d79dffb92576acd1bd2decc467dec60e1cac96912602d0e6"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:95d2ecefbcf4e744ea952d073c6922e72ee650ffc79028eb1e320e732898d7e8"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d4e2c6d555e77b37288eaf45b8f60f0737c9efa3452c6c44626a5455aeb250b9"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:783185c75c12a017cc345015ea359cc801c3b29a2966c2655cd12b233bf5a2be"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:b8cc1863402472f16c600e3e93d542b7e7542a540f95c30afd472e8e549fc3f7"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:822b30a0f22e588b32d3120f6d41e4ed021806418b4c9f0bc3048b8c8cb3f92a"}, + {file = "yarl-1.9.2-cp311-cp311-win32.whl", hash = "sha256:a60347f234c2212a9f0361955007fcf4033a75bf600a33c88a0a8e91af77c0e8"}, + {file = "yarl-1.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:be6b3fdec5c62f2a67cb3f8c6dbf56bbf3f61c0f046f84645cd1ca73532ea051"}, + {file = "yarl-1.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38a3928ae37558bc1b559f67410df446d1fbfa87318b124bf5032c31e3447b74"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac9bb4c5ce3975aeac288cfcb5061ce60e0d14d92209e780c93954076c7c4367"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3da8a678ca8b96c8606bbb8bfacd99a12ad5dd288bc6f7979baddd62f71c63ef"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13414591ff516e04fcdee8dc051c13fd3db13b673c7a4cb1350e6b2ad9639ad3"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf74d08542c3a9ea97bb8f343d4fcbd4d8f91bba5ec9d5d7f792dbe727f88938"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e7221580dc1db478464cfeef9b03b95c5852cc22894e418562997df0d074ccc"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:494053246b119b041960ddcd20fd76224149cfea8ed8777b687358727911dd33"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:52a25809fcbecfc63ac9ba0c0fb586f90837f5425edfd1ec9f3372b119585e45"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:e65610c5792870d45d7b68c677681376fcf9cc1c289f23e8e8b39c1485384185"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:1b1bba902cba32cdec51fca038fd53f8beee88b77efc373968d1ed021024cc04"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:662e6016409828ee910f5d9602a2729a8a57d74b163c89a837de3fea050c7582"}, + {file = "yarl-1.9.2-cp37-cp37m-win32.whl", hash = "sha256:f364d3480bffd3aa566e886587eaca7c8c04d74f6e8933f3f2c996b7f09bee1b"}, + {file = "yarl-1.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6a5883464143ab3ae9ba68daae8e7c5c95b969462bbe42e2464d60e7e2698368"}, + {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5610f80cf43b6202e2c33ba3ec2ee0a2884f8f423c8f4f62906731d876ef4fac"}, + {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b9a4e67ad7b646cd6f0938c7ebfd60e481b7410f574c560e455e938d2da8e0f4"}, + {file = "yarl-1.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:83fcc480d7549ccebe9415d96d9263e2d4226798c37ebd18c930fce43dfb9574"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fcd436ea16fee7d4207c045b1e340020e58a2597301cfbcfdbe5abd2356c2fb"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84e0b1599334b1e1478db01b756e55937d4614f8654311eb26012091be109d59"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3458a24e4ea3fd8930e934c129b676c27452e4ebda80fbe47b56d8c6c7a63a9e"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:838162460b3a08987546e881a2bfa573960bb559dfa739e7800ceeec92e64417"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4e2d08f07a3d7d3e12549052eb5ad3eab1c349c53ac51c209a0e5991bbada78"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:de119f56f3c5f0e2fb4dee508531a32b069a5f2c6e827b272d1e0ff5ac040333"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:149ddea5abf329752ea5051b61bd6c1d979e13fbf122d3a1f9f0c8be6cb6f63c"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:674ca19cbee4a82c9f54e0d1eee28116e63bc6fd1e96c43031d11cbab8b2afd5"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:9b3152f2f5677b997ae6c804b73da05a39daa6a9e85a512e0e6823d81cdad7cc"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5415d5a4b080dc9612b1b63cba008db84e908b95848369aa1da3686ae27b6d2b"}, + {file = "yarl-1.9.2-cp38-cp38-win32.whl", hash = "sha256:f7a3d8146575e08c29ed1cd287068e6d02f1c7bdff8970db96683b9591b86ee7"}, + {file = "yarl-1.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:63c48f6cef34e6319a74c727376e95626f84ea091f92c0250a98e53e62c77c72"}, + {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75df5ef94c3fdc393c6b19d80e6ef1ecc9ae2f4263c09cacb178d871c02a5ba9"}, + {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c027a6e96ef77d401d8d5a5c8d6bc478e8042f1e448272e8d9752cb0aff8b5c8"}, + {file = "yarl-1.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3b078dbe227f79be488ffcfc7a9edb3409d018e0952cf13f15fd6512847f3f7"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59723a029760079b7d991a401386390c4be5bfec1e7dd83e25a6a0881859e716"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b03917871bf859a81ccb180c9a2e6c1e04d2f6a51d953e6a5cdd70c93d4e5a2a"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1012fa63eb6c032f3ce5d2171c267992ae0c00b9e164efe4d73db818465fac3"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74dcbfe780e62f4b5a062714576f16c2f3493a0394e555ab141bf0d746bb955"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c56986609b057b4839968ba901944af91b8e92f1725d1a2d77cbac6972b9ed1"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c315df3293cd521033533d242d15eab26583360b58f7ee5d9565f15fee1bef4"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b7232f8dfbd225d57340e441d8caf8652a6acd06b389ea2d3222b8bc89cbfca6"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:53338749febd28935d55b41bf0bcc79d634881195a39f6b2f767870b72514caf"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:066c163aec9d3d073dc9ffe5dd3ad05069bcb03fcaab8d221290ba99f9f69ee3"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8288d7cd28f8119b07dd49b7230d6b4562f9b61ee9a4ab02221060d21136be80"}, + {file = "yarl-1.9.2-cp39-cp39-win32.whl", hash = "sha256:b124e2a6d223b65ba8768d5706d103280914d61f5cae3afbc50fc3dfcc016623"}, + {file = "yarl-1.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:61016e7d582bc46a5378ffdd02cd0314fb8ba52f40f9cf4d9a5e7dbef88dee18"}, + {file = "yarl-1.9.2.tar.gz", hash = "sha256:04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" + +[[package]] +name = "zipp" +version = "3.16.2" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, + {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] + +[extras] +druid = ["pydruid"] +dynamodb = ["boto3"] +mlflow = ["mlflow-skinny"] +numaflow = ["pynumaflow"] +redis = ["redis"] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.9, <3.12" +content-hash = "899239bed4f29bd788fa45e49bdd8fae699a8e9013336b683a4169d418b0b9ba" From 965c9c5711229e873ec468e84a9bfcc5f2d5bcaa Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Tue, 12 Sep 2023 16:12:26 -0700 Subject: [PATCH 04/17] fix: test cases Signed-off-by: s0nicboOm --- numalogic/registry/redis_registry.py | 4 +- poetry.lock | 378 ++++++++++++++------------ pyproject.toml | 2 +- tests/registry/test_redis_registry.py | 13 + 4 files changed, 221 insertions(+), 176 deletions(-) diff --git a/numalogic/registry/redis_registry.py b/numalogic/registry/redis_registry.py index a5e3eadf..4114c024 100644 --- a/numalogic/registry/redis_registry.py +++ b/numalogic/registry/redis_registry.py @@ -385,6 +385,8 @@ def save_multiple( metadata: additional metadata surrounding the artifact that needs to be saved. """ dict_model_ver = {} + if len(list_artifacts) != len(list_dkeys): + raise IndexError("artifact list and dkeys list should have same length!") try: with self.client.pipeline(transaction=self.transactional) as pipe: pipe.multi() @@ -405,7 +407,5 @@ def save_multiple( _LOGGER.info("Successfully saved all the artifacts with: %s", dict_model_ver) except RedisError as err: raise RedisRegistryError(f"{err.__class__.__name__} raised") from err - except IndexError as index_err: - raise RedisRegistryError(f"{index_err.__class__.__name__} raised") from index_err else: return dict_model_ver diff --git a/poetry.lock b/poetry.lock index ed2ca515..dcbb17fd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -415,17 +415,17 @@ css = ["tinycss2 (>=1.1.0,<1.2)"] [[package]] name = "boto3" -version = "1.28.45" +version = "1.28.46" description = "The AWS SDK for Python" optional = false python-versions = ">= 3.7" files = [ - {file = "boto3-1.28.45-py3-none-any.whl", hash = "sha256:682abbd304e93e726163d7de7448c1bf88108c72cf6a23dceb6bba86fdc86dff"}, - {file = "boto3-1.28.45.tar.gz", hash = "sha256:4ee914266c9bed16978677a367fd05053d8dcaddcbe998c9df30787ab73f87aa"}, + {file = "boto3-1.28.46-py3-none-any.whl", hash = "sha256:04445d70127c25fad69e2cab7e3f5cb219c8d6e60463af3657f20e29ac517957"}, + {file = "boto3-1.28.46.tar.gz", hash = "sha256:2ca2852f7b7c1bc2e56f10f968d4c8483c8228b935ecd89a444ae8292ad0dc24"}, ] [package.dependencies] -botocore = ">=1.31.45,<1.32.0" +botocore = ">=1.31.46,<1.32.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.6.0,<0.7.0" @@ -434,13 +434,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.31.45" +version = "1.31.46" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">= 3.7" files = [ - {file = "botocore-1.31.45-py3-none-any.whl", hash = "sha256:cceb150cff1d7f7a6faf655510a8384eb4505a33b430495fe1744d03a70dc66a"}, - {file = "botocore-1.31.45.tar.gz", hash = "sha256:85ff64a0ac2705c4ba36268c3b2dbc1184062e9cf729a89dd66c2f54f730fc79"}, + {file = "botocore-1.31.46-py3-none-any.whl", hash = "sha256:ac0c1258b1782cde42950bd00138fdce6bd7d04855296af8c326d5844a426473"}, + {file = "botocore-1.31.46.tar.gz", hash = "sha256:6c30be3371624a80d6a881d9c7771a80e0eb82697ee374aaf522cd59b76e14dd"}, ] [package.dependencies] @@ -960,33 +960,29 @@ urllib3 = ">=1.26.7,<2.0.0" [[package]] name = "debugpy" -version = "1.7.0" +version = "1.8.0" description = "An implementation of the Debug Adapter Protocol for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "debugpy-1.7.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:17ad9a681aca1704c55b9a5edcb495fa8f599e4655c9872b7f9cf3dc25890d48"}, - {file = "debugpy-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1285920a3f9a75f5d1acf59ab1b9da9ae6eb9a05884cd7674f95170c9cafa4de"}, - {file = "debugpy-1.7.0-cp310-cp310-win32.whl", hash = "sha256:a6f43a681c5025db1f1c0568069d1d1bad306a02e7c36144912b26d9c90e4724"}, - {file = "debugpy-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:9e9571d831ad3c75b5fb6f3efcb71c471cf2a74ba84af6ac1c79ce00683bed4b"}, - {file = "debugpy-1.7.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:538765a41198aa88cc089295b39c7322dd598f9ef1d52eaae12145c63bf9430a"}, - {file = "debugpy-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7e8cf91f8f3f9b5fad844dd88427b85d398bda1e2a0cd65d5a21312fcbc0c6f"}, - {file = "debugpy-1.7.0-cp311-cp311-win32.whl", hash = "sha256:18a69f8e142a716310dd0af6d7db08992aed99e2606108732efde101e7c65e2a"}, - {file = "debugpy-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7515a5ba5ee9bfe956685909c5f28734c1cecd4ee813523363acfe3ca824883a"}, - {file = "debugpy-1.7.0-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:bc8da67ade39d9e75608cdb8601d07e63a4e85966e0572c981f14e2cf42bcdef"}, - {file = "debugpy-1.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5036e918c6ba8fc4c4f1fd0207d81db634431a02f0dc2ba51b12fd793c8c9de"}, - {file = "debugpy-1.7.0-cp37-cp37m-win32.whl", hash = "sha256:d5be95b3946a4d7b388e45068c7b75036ac5a610f41014aee6cafcd5506423ad"}, - {file = "debugpy-1.7.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0e90314a078d4e3f009520c8387aba8f74c3034645daa7a332a3d1bb81335756"}, - {file = "debugpy-1.7.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:1565fd904f9571c430adca597771255cff4f92171486fced6f765dcbdfc8ec8d"}, - {file = "debugpy-1.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6516f36a2e95b3be27f171f12b641e443863f4ad5255d0fdcea6ae0be29bb912"}, - {file = "debugpy-1.7.0-cp38-cp38-win32.whl", hash = "sha256:2b0e489613bc066051439df04c56777ec184b957d6810cb65f235083aef7a0dc"}, - {file = "debugpy-1.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:7bf0b4bbd841b2397b6a8de15da9227f1164f6d43ceee971c50194eaed930a9d"}, - {file = "debugpy-1.7.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:ad22e1095b9977af432465c1e09132ba176e18df3834b1efcab1a449346b350b"}, - {file = "debugpy-1.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f625e427f21423e5874139db529e18cb2966bdfcc1cb87a195538c5b34d163d1"}, - {file = "debugpy-1.7.0-cp39-cp39-win32.whl", hash = "sha256:18bca8429d6632e2d3435055416d2d88f0309cc39709f4f6355c8d412cc61f24"}, - {file = "debugpy-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:dc8a12ac8b97ef3d6973c6679a093138c7c9b03eb685f0e253269a195f651559"}, - {file = "debugpy-1.7.0-py2.py3-none-any.whl", hash = "sha256:f6de2e6f24f62969e0f0ef682d78c98161c4dca29e9fb05df4d2989005005502"}, - {file = "debugpy-1.7.0.zip", hash = "sha256:676911c710e85567b17172db934a71319ed9d995104610ce23fd74a07f66e6f6"}, + {file = "debugpy-1.8.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7fb95ca78f7ac43393cd0e0f2b6deda438ec7c5e47fa5d38553340897d2fbdfb"}, + {file = "debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9ab7df0b9a42ed9c878afd3eaaff471fce3fa73df96022e1f5c9f8f8c87ada"}, + {file = "debugpy-1.8.0-cp310-cp310-win32.whl", hash = "sha256:a8b7a2fd27cd9f3553ac112f356ad4ca93338feadd8910277aff71ab24d8775f"}, + {file = "debugpy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d9de202f5d42e62f932507ee8b21e30d49aae7e46d5b1dd5c908db1d7068637"}, + {file = "debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ef54404365fae8d45cf450d0544ee40cefbcb9cb85ea7afe89a963c27028261e"}, + {file = "debugpy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60009b132c91951354f54363f8ebdf7457aeb150e84abba5ae251b8e9f29a8a6"}, + {file = "debugpy-1.8.0-cp311-cp311-win32.whl", hash = "sha256:8cd0197141eb9e8a4566794550cfdcdb8b3db0818bdf8c49a8e8f8053e56e38b"}, + {file = "debugpy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a64093656c4c64dc6a438e11d59369875d200bd5abb8f9b26c1f5f723622e153"}, + {file = "debugpy-1.8.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:b05a6b503ed520ad58c8dc682749113d2fd9f41ffd45daec16e558ca884008cd"}, + {file = "debugpy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c6fb41c98ec51dd010d7ed650accfd07a87fe5e93eca9d5f584d0578f28f35f"}, + {file = "debugpy-1.8.0-cp38-cp38-win32.whl", hash = "sha256:46ab6780159eeabb43c1495d9c84cf85d62975e48b6ec21ee10c95767c0590aa"}, + {file = "debugpy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:bdc5ef99d14b9c0fcb35351b4fbfc06ac0ee576aeab6b2511702e5a648a2e595"}, + {file = "debugpy-1.8.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:61eab4a4c8b6125d41a34bad4e5fe3d2cc145caecd63c3fe953be4cc53e65bf8"}, + {file = "debugpy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:125b9a637e013f9faac0a3d6a82bd17c8b5d2c875fb6b7e2772c5aba6d082332"}, + {file = "debugpy-1.8.0-cp39-cp39-win32.whl", hash = "sha256:57161629133113c97b387382045649a2b985a348f0c9366e22217c87b68b73c6"}, + {file = "debugpy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:e3412f9faa9ade82aa64a50b602544efcba848c91384e9f93497a458767e6926"}, + {file = "debugpy-1.8.0-py2.py3-none-any.whl", hash = "sha256:9c9b0ac1ce2a42888199df1a1906e45e6f3c9555497643a85e0bf2406e3ffbc4"}, + {file = "debugpy-1.8.0.zip", hash = "sha256:12af2c55b419521e33d5fb21bd022df0b5eb267c3e178f1d374a63a2a6bdccd0"}, ] [[package]] @@ -1319,18 +1315,21 @@ smmap = ">=3.0.1,<6" [[package]] name = "gitpython" -version = "3.1.35" +version = "3.1.36" description = "GitPython is a Python library used to interact with Git repositories" optional = true python-versions = ">=3.7" files = [ - {file = "GitPython-3.1.35-py3-none-any.whl", hash = "sha256:c19b4292d7a1d3c0f653858db273ff8a6614100d1eb1528b014ec97286193c09"}, - {file = "GitPython-3.1.35.tar.gz", hash = "sha256:9cbefbd1789a5fe9bcf621bb34d3f441f3a90c8461d377f84eda73e721d9b06b"}, + {file = "GitPython-3.1.36-py3-none-any.whl", hash = "sha256:8d22b5cfefd17c79914226982bb7851d6ade47545b1735a9d010a2a4c26d8388"}, + {file = "GitPython-3.1.36.tar.gz", hash = "sha256:4bb0c2a6995e85064140d31a33289aa5dce80133a23d36fcd372d716c54d3ebf"}, ] [package.dependencies] gitdb = ">=4.0.1,<5" +[package.extras] +test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mypy", "pre-commit", "pytest", "pytest-cov", "pytest-sugar", "virtualenv"] + [[package]] name = "google-api-core" version = "2.11.1" @@ -2201,13 +2200,13 @@ files = [ [[package]] name = "jupyterlab-server" -version = "2.24.0" +version = "2.25.0" description = "A set of server components for JupyterLab and JupyterLab like applications." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "jupyterlab_server-2.24.0-py3-none-any.whl", hash = "sha256:5f077e142bb8dc9b843d960f940c513581bceca3793a0d80f9c67d9522c4e876"}, - {file = "jupyterlab_server-2.24.0.tar.gz", hash = "sha256:4e6f99e0a5579bbbc32e449c4dbb039561d4f1a7827d5733273ed56738f21f07"}, + {file = "jupyterlab_server-2.25.0-py3-none-any.whl", hash = "sha256:c9f67a98b295c5dee87f41551b0558374e45d449f3edca153dd722140630dcb2"}, + {file = "jupyterlab_server-2.25.0.tar.gz", hash = "sha256:77c2f1f282d610f95e496e20d5bf1d2a7706826dfb7b18f3378ae2870d272fb7"}, ] [package.dependencies] @@ -2215,15 +2214,15 @@ babel = ">=2.10" importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} jinja2 = ">=3.0.3" json5 = ">=0.9.0" -jsonschema = ">=4.17.3" +jsonschema = ">=4.18.0" jupyter-server = ">=1.21,<3" packaging = ">=21.3" -requests = ">=2.28" +requests = ">=2.31" [package.extras] docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] -openapi = ["openapi-core (>=0.16.1,<0.17.0)", "ruamel-yaml"] -test = ["hatch", "ipykernel", "jupyterlab-server[openapi]", "openapi-spec-validator (>=0.5.1,<0.7.0)", "pytest (>=7.0)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] +openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.7.0)", "pytest (>=7.0)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] [[package]] name = "jupyterlab-widgets" @@ -2473,52 +2472,58 @@ files = [ [[package]] name = "matplotlib" -version = "3.7.2" +version = "3.7.3" description = "Python plotting package" optional = false python-versions = ">=3.8" files = [ - {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:2699f7e73a76d4c110f4f25be9d2496d6ab4f17345307738557d345f099e07de"}, - {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a8035ba590658bae7562786c9cc6ea1a84aa49d3afab157e414c9e2ea74f496d"}, - {file = "matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2f8e4a49493add46ad4a8c92f63e19d548b2b6ebbed75c6b4c7f46f57d36cdd1"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71667eb2ccca4c3537d9414b1bc00554cb7f91527c17ee4ec38027201f8f1603"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:152ee0b569a37630d8628534c628456b28686e085d51394da6b71ef84c4da201"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:070f8dddd1f5939e60aacb8fa08f19551f4b0140fab16a3669d5cd6e9cb28fc8"}, - {file = "matplotlib-3.7.2-cp310-cp310-win32.whl", hash = "sha256:fdbb46fad4fb47443b5b8ac76904b2e7a66556844f33370861b4788db0f8816a"}, - {file = "matplotlib-3.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:23fb1750934e5f0128f9423db27c474aa32534cec21f7b2153262b066a581fd1"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:30e1409b857aa8a747c5d4f85f63a79e479835f8dffc52992ac1f3f25837b544"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:50e0a55ec74bf2d7a0ebf50ac580a209582c2dd0f7ab51bc270f1b4a0027454e"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ac60daa1dc83e8821eed155796b0f7888b6b916cf61d620a4ddd8200ac70cd64"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:305e3da477dc8607336ba10bac96986d6308d614706cae2efe7d3ffa60465b24"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c308b255efb9b06b23874236ec0f10f026673ad6515f602027cc8ac7805352d"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60c521e21031632aa0d87ca5ba0c1c05f3daacadb34c093585a0be6780f698e4"}, - {file = "matplotlib-3.7.2-cp311-cp311-win32.whl", hash = "sha256:26bede320d77e469fdf1bde212de0ec889169b04f7f1179b8930d66f82b30cbc"}, - {file = "matplotlib-3.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:af4860132c8c05261a5f5f8467f1b269bf1c7c23902d75f2be57c4a7f2394b3e"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:a1733b8e84e7e40a9853e505fe68cc54339f97273bdfe6f3ed980095f769ddc7"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d9881356dc48e58910c53af82b57183879129fa30492be69058c5b0d9fddf391"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f081c03f413f59390a80b3e351cc2b2ea0205839714dbc364519bcf51f4b56ca"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1cd120fca3407a225168238b790bd5c528f0fafde6172b140a2f3ab7a4ea63e9"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2c1590b90aa7bd741b54c62b78de05d4186271e34e2377e0289d943b3522273"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d2ff3c984b8a569bc1383cd468fc06b70d7b59d5c2854ca39f1436ae8394117"}, - {file = "matplotlib-3.7.2-cp38-cp38-win32.whl", hash = "sha256:5dea00b62d28654b71ca92463656d80646675628d0828e08a5f3b57e12869e13"}, - {file = "matplotlib-3.7.2-cp38-cp38-win_amd64.whl", hash = "sha256:0f506a1776ee94f9e131af1ac6efa6e5bc7cb606a3e389b0ccb6e657f60bb676"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:6515e878f91894c2e4340d81f0911857998ccaf04dbc1bba781e3d89cbf70608"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:71f7a8c6b124e904db550f5b9fe483d28b896d4135e45c4ea381ad3b8a0e3256"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12f01b92ecd518e0697da4d97d163b2b3aa55eb3eb4e2c98235b3396d7dad55f"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7e28d6396563955f7af437894a36bf2b279462239a41028323e04b85179058b"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbcf59334ff645e6a67cd5f78b4b2cdb76384cdf587fa0d2dc85f634a72e1a3e"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:318c89edde72ff95d8df67d82aca03861240512994a597a435a1011ba18dbc7f"}, - {file = "matplotlib-3.7.2-cp39-cp39-win32.whl", hash = "sha256:ce55289d5659b5b12b3db4dc9b7075b70cef5631e56530f14b2945e8836f2d20"}, - {file = "matplotlib-3.7.2-cp39-cp39-win_amd64.whl", hash = "sha256:2ecb5be2b2815431c81dc115667e33da0f5a1bcf6143980d180d09a717c4a12e"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fdcd28360dbb6203fb5219b1a5658df226ac9bebc2542a9e8f457de959d713d0"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3cca3e842b11b55b52c6fb8bd6a4088693829acbfcdb3e815fa9b7d5c92c1b"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebf577c7a6744e9e1bd3fee45fc74a02710b214f94e2bde344912d85e0c9af7c"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:936bba394682049919dda062d33435b3be211dc3dcaa011e09634f060ec878b2"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bc221ffbc2150458b1cd71cdd9ddd5bb37962b036e41b8be258280b5b01da1dd"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35d74ebdb3f71f112b36c2629cf32323adfbf42679e2751252acd468f5001c07"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:717157e61b3a71d3d26ad4e1770dc85156c9af435659a25ee6407dc866cb258d"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:20f844d6be031948148ba49605c8b96dfe7d3711d1b63592830d650622458c11"}, - {file = "matplotlib-3.7.2.tar.gz", hash = "sha256:a8cdb91dddb04436bd2f098b8fdf4b81352e68cf4d2c6756fcc414791076569b"}, + {file = "matplotlib-3.7.3-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:085c33b27561d9c04386789d5aa5eb4a932ddef43cfcdd0e01735f9a6e85ce0c"}, + {file = "matplotlib-3.7.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c568e80e1c17f68a727f30f591926751b97b98314d8e59804f54f86ae6fa6a22"}, + {file = "matplotlib-3.7.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7baf98c5ad59c5c4743ea884bb025cbffa52dacdfdac0da3e6021a285a90377e"}, + {file = "matplotlib-3.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:236024f582e40dac39bca592258888b38ae47a9fed7b8de652d68d3d02d47d2b"}, + {file = "matplotlib-3.7.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12b4f6795efea037ce2d41e7c417ad8bd02d5719c6ad4a8450a0708f4a1cfb89"}, + {file = "matplotlib-3.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b2136cc6c5415b78977e0e8c608647d597204b05b1d9089ccf513c7d913733"}, + {file = "matplotlib-3.7.3-cp310-cp310-win32.whl", hash = "sha256:122dcbf9be0086e2a95d9e5e0632dbf3bd5b65eaa68c369363310a6c87753059"}, + {file = "matplotlib-3.7.3-cp310-cp310-win_amd64.whl", hash = "sha256:4aab27d9e33293389e3c1d7c881d414a72bdfda0fedc3a6bf46c6fa88d9b8015"}, + {file = "matplotlib-3.7.3-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:d5adc743de91e8e0b13df60deb1b1c285b8effea3d66223afceb14b63c9b05de"}, + {file = "matplotlib-3.7.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:55de4cf7cd0071b8ebf203981b53ab64f988a0a1f897a2dff300a1124e8bcd8b"}, + {file = "matplotlib-3.7.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ac03377fd908aaee2312d0b11735753e907adb6f4d1d102de5e2425249693f6c"}, + {file = "matplotlib-3.7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:755bafc10a46918ce9a39980009b54b02dd249594e5adf52f9c56acfddb5d0b7"}, + {file = "matplotlib-3.7.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a6094c6f8e8d18db631754df4fe9a34dec3caf074f6869a7db09f18f9b1d6b2"}, + {file = "matplotlib-3.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:272dba2f1b107790ed78ebf5385b8d14b27ad9e90419de340364b49fe549a993"}, + {file = "matplotlib-3.7.3-cp311-cp311-win32.whl", hash = "sha256:591c123bed1cb4b9996fb60b41a6d89c2ec4943244540776c5f1283fb6960a53"}, + {file = "matplotlib-3.7.3-cp311-cp311-win_amd64.whl", hash = "sha256:3bf3a178c6504694cee8b88b353df0051583f2f6f8faa146f67115c27c856881"}, + {file = "matplotlib-3.7.3-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:edf54cac8ee3603f3093616b40a931e8c063969756a4d78a86e82c2fea9659f7"}, + {file = "matplotlib-3.7.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:91e36a85ea639a1ba9f91427041eac064b04829945fe331a92617b6cb21d27e5"}, + {file = "matplotlib-3.7.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:caf5eaaf7c68f8d7df269dfbcaf46f48a70ff482bfcebdcc97519671023f2a7d"}, + {file = "matplotlib-3.7.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74bf57f505efea376097e948b7cdd87191a7ce8180616390aef496639edf601f"}, + {file = "matplotlib-3.7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee152a88a0da527840a426535514b6ed8ac4240eb856b1da92cf48124320e346"}, + {file = "matplotlib-3.7.3-cp312-cp312-win_amd64.whl", hash = "sha256:67a410a9c9e07cbc83581eeea144bbe298870bf0ac0ee2f2e10a015ab7efee19"}, + {file = "matplotlib-3.7.3-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:259999c05285cb993d7f2a419cea547863fa215379eda81f7254c9e932963729"}, + {file = "matplotlib-3.7.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3f4e7fd5a6157e1d018ce2166ec8e531a481dd4a36f035b5c23edfe05a25419a"}, + {file = "matplotlib-3.7.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:faa3d12d8811d08d14080a8b7b9caea9a457dc495350166b56df0db4b9909ef5"}, + {file = "matplotlib-3.7.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:336e88900c11441e458da01c8414fc57e04e17f9d3bb94958a76faa2652bcf6b"}, + {file = "matplotlib-3.7.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:12f4c0dd8aa280d796c8772ea8265a14f11a04319baa3a16daa5556065e8baea"}, + {file = "matplotlib-3.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1990955b11e7918d256cf3b956b10997f405b7917a3f1c7d8e69c1d15c7b1930"}, + {file = "matplotlib-3.7.3-cp38-cp38-win32.whl", hash = "sha256:e78707b751260b42b721507ad7aa60fe4026d7f51c74cca6b9cd8b123ebb633a"}, + {file = "matplotlib-3.7.3-cp38-cp38-win_amd64.whl", hash = "sha256:e594ee43c59ea39ca5c6244667cac9d017a3527febc31f5532ad9135cf7469ec"}, + {file = "matplotlib-3.7.3-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:6eaa1cf0e94c936a26b78f6d756c5fbc12e0a58c8a68b7248a2a31456ce4e234"}, + {file = "matplotlib-3.7.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:0a97af9d22e8ebedc9f00b043d9bbd29a375e9e10b656982012dded44c10fd77"}, + {file = "matplotlib-3.7.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f9c6c16597af660433ab330b59ee2934b832ee1fabcaf5cbde7b2add840f31e"}, + {file = "matplotlib-3.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7240259b4b9cbc62381f6378cff4d57af539162a18e832c1e48042fabc40b6b"}, + {file = "matplotlib-3.7.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:747c6191d2e88ae854809e69aa358dbf852ff1a5738401b85c1cc9012309897a"}, + {file = "matplotlib-3.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec726b08a5275d827aa91bb951e68234a4423adb91cf65bc0fcdc0f2777663f7"}, + {file = "matplotlib-3.7.3-cp39-cp39-win32.whl", hash = "sha256:40e3b9b450c6534f07278310c4e34caff41c2a42377e4b9d47b0f8d3ac1083a2"}, + {file = "matplotlib-3.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfc118642903a23e309b1da32886bb39a4314147d013e820c86b5fb4cb2e36d0"}, + {file = "matplotlib-3.7.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:165c8082bf8fc0360c24aa4724a22eaadbfd8c28bf1ccf7e94d685cad48261e4"}, + {file = "matplotlib-3.7.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ebd8470cc2a3594746ff0513aecbfa2c55ff6f58e6cef2efb1a54eb87c88ffa2"}, + {file = "matplotlib-3.7.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7153453669c9672b52095119fd21dd032d19225d48413a2871519b17db4b0fde"}, + {file = "matplotlib-3.7.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:498a08267dc69dd8f24c4b5d7423fa584d7ce0027ba71f7881df05fc09b89bb7"}, + {file = "matplotlib-3.7.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48999c4b19b5a0c058c9cd828ff6fc7748390679f6cf9a2ad653a3e802c87d3"}, + {file = "matplotlib-3.7.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22d65d18b4ee8070a5fea5761d59293f1f9e2fac37ec9ce090463b0e629432fd"}, + {file = "matplotlib-3.7.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c40cde976c36693cc0767e27cf5f443f91c23520060bd9496678364adfafe9c"}, + {file = "matplotlib-3.7.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:39018a2b17592448fbfdf4b8352955e6c3905359939791d4ff429296494d1a0c"}, + {file = "matplotlib-3.7.3.tar.gz", hash = "sha256:f09b3dd6bdeb588de91f853bbb2d6f0ff8ab693485b0c49035eaa510cb4f142e"}, ] [package.dependencies] @@ -2527,11 +2532,12 @@ cycler = ">=0.10" fonttools = ">=4.22.0" importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} kiwisolver = ">=1.0.1" -numpy = ">=1.20" +numpy = ">=1.20,<2" packaging = ">=20.0" pillow = ">=6.2.0" -pyparsing = ">=2.3.1,<3.1" +pyparsing = ">=2.3.1" python-dateutil = ">=2.7" +setuptools_scm = ">=7" [[package]] name = "matplotlib-inline" @@ -2560,13 +2566,13 @@ files = [ [[package]] name = "mlflow-skinny" -version = "2.6.0" +version = "2.7.0" description = "MLflow: A Platform for ML Development and Productionization" optional = true python-versions = ">=3.8" files = [ - {file = "mlflow-skinny-2.6.0.tar.gz", hash = "sha256:c1a71bc4abb83169d4cff012c1c050c203775d4a7462d059c4523a481f0a9688"}, - {file = "mlflow_skinny-2.6.0-py3-none-any.whl", hash = "sha256:b63c6555645af0196b3c92da849968189dfd72d2c1397f7b149593db6b404d66"}, + {file = "mlflow-skinny-2.7.0.tar.gz", hash = "sha256:c4ce24817227219ac03f674bd3d0f371b274807e7e3845b3d46ba79ca86dad08"}, + {file = "mlflow_skinny-2.7.0-py3-none-any.whl", hash = "sha256:0dd3855b07bfce5f1bc403b6505e84f0e165780aba5d7edcca2024cff7ca7309"}, ] [package.dependencies] @@ -2587,7 +2593,7 @@ sqlparse = ">=0.4.0,<1" aliyun-oss = ["aliyunstoreplugin"] databricks = ["azure-storage-file-datalake (>12)", "boto3 (>1)", "google-cloud-storage (>=1.30.0)"] extras = ["azureml-core (>=1.2.0)", "boto3", "google-cloud-storage (>=1.30.0)", "kubernetes", "mlserver (>=1.2.0,!=1.3.1)", "mlserver-mlflow (>=1.2.0,!=1.3.1)", "prometheus-flask-exporter", "pyarrow", "pysftp", "requests-auth-aws-sigv4", "virtualenv"] -gateway = ["aiohttp (<4)", "fastapi (<1)", "psutil (<6)", "pydantic (>=1.0,<2)", "uvicorn[standard] (<1)", "watchfiles (<1)"] +gateway = ["aiohttp (<4)", "fastapi (<1)", "psutil (<6)", "pydantic (>=1.0,<3)", "uvicorn[standard] (<1)", "watchfiles (<1)"] sqlserver = ["mlflow-dbstore"] [[package]] @@ -2928,32 +2934,32 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numba" -version = "0.58.0rc1" +version = "0.58.0rc2" description = "compiling Python code using LLVM" optional = false python-versions = ">=3.8" files = [ - {file = "numba-0.58.0rc1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6c1223ce6daf8666805bd04247beef22197df46a9548b01446a10d4e210c9abb"}, - {file = "numba-0.58.0rc1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f0f452ef615e03961a201fec4fc43bb2567579bd0868b5b9bd12ed96c5de9b3"}, - {file = "numba-0.58.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8caf704c14f68118c16ea711471c9f56dbe5f19896a858bac3b19bfee67d8542"}, - {file = "numba-0.58.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:dab88fe58311a81fe393b156c0c390111ed90a277ab396a6d898c14288d42929"}, - {file = "numba-0.58.0rc1-cp310-cp310-win_amd64.whl", hash = "sha256:b9eda2d5cb199fa6fefdecf7e0fa8d6f41139f391c673d2700be9c4d2c70987d"}, - {file = "numba-0.58.0rc1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:47f01f282d4043441c91b9e6f3bb709b8e4a9077fc5958f67a854999e47c6a85"}, - {file = "numba-0.58.0rc1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2c877e9d6cf2d78d97df7647546b699c36aeb1934c2cb8a566d22782d950b224"}, - {file = "numba-0.58.0rc1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7a3f06ca158c27617d740d891116263ea1f1f40394ca349f030b419f884a9974"}, - {file = "numba-0.58.0rc1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ffc763c1b552f5775694f3b86b8c88228ae07b1f65d10b585cd79e87a26d2a6c"}, - {file = "numba-0.58.0rc1-cp311-cp311-win_amd64.whl", hash = "sha256:8bafc2d24fc90f9696e75ae68dd409dac0cbfc0143c2e5aa1ab0264b8ab16817"}, - {file = "numba-0.58.0rc1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:09e26c2552b5f26e3efe1edcb5498274c5d271352658cf720f430b6dd9522189"}, - {file = "numba-0.58.0rc1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f66ff39ff2ee7408e0463d61ea0c21a8d7d7023107edbc0d6140ae4071dc68c4"}, - {file = "numba-0.58.0rc1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f757807a0ee828390962bfd5146d3ef327ec275be268eed170e204f30ea6df3b"}, - {file = "numba-0.58.0rc1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f239029b9e5640ad882ce1f58bf51e2e2ef499ee3b373bef4a9807d7349146f4"}, - {file = "numba-0.58.0rc1-cp38-cp38-win_amd64.whl", hash = "sha256:31f9025872bee73f34ebefe932a1821f7b4bdd23a0059c2dc199afb89f989022"}, - {file = "numba-0.58.0rc1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9db60fdee8fdc55940e0c48889640cab948f63916a5d114761a9825f72b6be30"}, - {file = "numba-0.58.0rc1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef4b792a3c8f874231c0963e404f8e83401b0a6029ee0f83222d951da1e2e51a"}, - {file = "numba-0.58.0rc1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8c6f7cdf81615b8f56ecc24421726232b5105ce9fa9773b59cc1b3b7029ccbb2"}, - {file = "numba-0.58.0rc1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b7033722dde854088ed520b35a7440e94de2fee818d46be529870b9e9ad3fd9c"}, - {file = "numba-0.58.0rc1-cp39-cp39-win_amd64.whl", hash = "sha256:3357af70fdddd9011a00156595d53f2baef85d58d9bb4abd5814edba3314ea19"}, - {file = "numba-0.58.0rc1.tar.gz", hash = "sha256:9f330643538b5f874250058b1a196a14a1dd68f7044f472d284c39664126d8fe"}, + {file = "numba-0.58.0rc2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6f4f055ab62d3f17b5c2e3b2684155916215eccbc6182c7d5985fcc04e43444f"}, + {file = "numba-0.58.0rc2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdb2c8e9bf8bcb34f274b76e104caaa44b93a2c8a05bf86f83290442f8760f33"}, + {file = "numba-0.58.0rc2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:79352bb53b081bc7300f3c8854fe3168c741ab9b199af27a7f668804b4a0e32d"}, + {file = "numba-0.58.0rc2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5de8dca9cfa5b3100cbd3aa798210478b063510d02c212dec34f41fa5913a4fe"}, + {file = "numba-0.58.0rc2-cp310-cp310-win_amd64.whl", hash = "sha256:f425e05a1832c0def0653974f2d7dcebdff17b1c3252e2b5d485d78e566ea5ca"}, + {file = "numba-0.58.0rc2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49491098aa6af37a81c7d95a1b25ddb57c116e5b0071786f47f208f3bd020435"}, + {file = "numba-0.58.0rc2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4f06c8fac0247560059643a72c2d8d1f00894b66b8f1f28dddb17af1e2eb7dd"}, + {file = "numba-0.58.0rc2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8e78bca66492112d1bfaef814e7ba34f402f0f104883f45b6fd01d2a0cee18b7"}, + {file = "numba-0.58.0rc2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fd60c9cba214c522f1f72fae5573f6b68d9cda22906e2e45ade5a591612539e2"}, + {file = "numba-0.58.0rc2-cp311-cp311-win_amd64.whl", hash = "sha256:bd49b72e28f960421b661e9a054d653a17de5ce355b68c7acdee433d7665f191"}, + {file = "numba-0.58.0rc2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e49fc5c7c32ef7a94d1c467e565e71cf34ab2cfad0777c52498da496cd0c3c6e"}, + {file = "numba-0.58.0rc2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88f2bd48dcad122124cab0d83b8b43495f9bcb9222ae0fb027f5940c9e7ee7c7"}, + {file = "numba-0.58.0rc2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c67f8a83b4d2091edca8d55337ff416bd8e1a5bddb2fd848ac7ab778a075bfcb"}, + {file = "numba-0.58.0rc2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3c1eb34708aeba7df28cf2653069da3e65e11ef7b8c7a9d6362d966a3e808791"}, + {file = "numba-0.58.0rc2-cp38-cp38-win_amd64.whl", hash = "sha256:cf64ce3ea7241675a58db10be7863c505132215415b18d01f6b7445a4efce160"}, + {file = "numba-0.58.0rc2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7f397da46c7944c9b5f8aabe6dc634f17d4f4337eb59e709249e03a029bf7089"}, + {file = "numba-0.58.0rc2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c25212c7a8eec71542bc8b4f44fe4f2131da981f4bab869cb49a53d621608192"}, + {file = "numba-0.58.0rc2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2b3f24e8141f322fa30c413e07c5f94dd847ad52b97434205dd3ab9e2e74bc17"}, + {file = "numba-0.58.0rc2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a1c6d9fff69d365fa86c2d5cbfe39512a0f8e769b76e18677bdc00850871af83"}, + {file = "numba-0.58.0rc2-cp39-cp39-win_amd64.whl", hash = "sha256:3e2d8b02b1fb8f196ec8de49c94c517571c4eaef35fe3c421ac35b24ac459e6a"}, + {file = "numba-0.58.0rc2.tar.gz", hash = "sha256:8df88077285e6fc634a657f25b254697099635a4a5992592b8c5cf3da328ed26"}, ] [package.dependencies] @@ -2962,41 +2968,41 @@ numpy = ">=1.21,<1.26" [[package]] name = "numexpr" -version = "2.8.5" +version = "2.8.6" description = "Fast numerical expression evaluator for NumPy" optional = false python-versions = ">=3.7" files = [ - {file = "numexpr-2.8.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51f3ab160c3847ebcca93cd88f935a7802b54a01ab63fe93152994a64d7a6cf2"}, - {file = "numexpr-2.8.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:de29c77f674e4eb8f0846525a475cab64008c227c8bc4ba5153ab3f72441cc63"}, - {file = "numexpr-2.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf85ba1327eb87ec82ae7936f13c8850fb969a0ca34f3ba9fa3897c09d5c80d7"}, - {file = "numexpr-2.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c00be69f747f44a631830215cab482f0f77f75af2925695adff57c1cc0f9a68"}, - {file = "numexpr-2.8.5-cp310-cp310-win32.whl", hash = "sha256:c46350dcdb93e32f033eea5a21269514ffcaf501d9abd6036992d37e48a308b0"}, - {file = "numexpr-2.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:894b027438b8ec88dea32a19193716c79f4ff8ddb92302dcc9731b51ba3565a8"}, - {file = "numexpr-2.8.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6df184d40d4cf9f21c71f429962f39332f7398147762588c9f3a5c77065d0c06"}, - {file = "numexpr-2.8.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:178b85ad373c6903e55d75787d61b92380439b70d94b001cb055a501b0821335"}, - {file = "numexpr-2.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:578fe4008e4d5d6ff01bbeb2d7b7ba1ec658a5cda9c720cd26a9a8325f8ef438"}, - {file = "numexpr-2.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef621b4ee366a5c6a484f6678c9259f5b826569f8bfa0b89ba2306d5055468bb"}, - {file = "numexpr-2.8.5-cp311-cp311-win32.whl", hash = "sha256:dd57ab1a3d3aaa9274aff1cefbf93b8ddacc7973afef5b125905f6bf18fabab0"}, - {file = "numexpr-2.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:783324ba40eb804ecfc9ebae86120a1e339ab112d0ab8a1f0d48a26354d5bf9b"}, - {file = "numexpr-2.8.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:183d5430db76826e54465c69db93a3c6ecbf03cda5aa1bb96eaad0147e9b68dc"}, - {file = "numexpr-2.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39ce106f92ccea5b07b1d6f2f3c4370f05edf27691dc720a63903484a2137e48"}, - {file = "numexpr-2.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b594dc9e2d6291a0bc5c065e6d9caf3eee743b5663897832e9b17753c002947a"}, - {file = "numexpr-2.8.5-cp37-cp37m-win32.whl", hash = "sha256:62b4faf8e0627673b0210a837792bddd23050ecebc98069ab23eb0633ff1ef5f"}, - {file = "numexpr-2.8.5-cp37-cp37m-win_amd64.whl", hash = "sha256:db5c65417d69414f1ab31302ea01d3548303ef31209c38b4849d145be4e1d1ba"}, - {file = "numexpr-2.8.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eb36ffcfa1606e41aa08d559b4277bcad0e16b83941d1a4fee8d2bd5a34f8e0e"}, - {file = "numexpr-2.8.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:34af2a0e857d02a4bc5758bc037a777d50dacb13bcd57c7905268a3e44994ed6"}, - {file = "numexpr-2.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a8dad2bfaad5a5c34a2e8bbf62b9df1dfab266d345fda1feb20ff4e264b347a"}, - {file = "numexpr-2.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b93f5a866cd13a808bc3d3a9c487d94cd02eec408b275ff0aa150f2e8e5191f8"}, - {file = "numexpr-2.8.5-cp38-cp38-win32.whl", hash = "sha256:558390fea6370003ac749ed9d0f38d708aa096f5dcb707ddb6e0ca5a0dd37da1"}, - {file = "numexpr-2.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:55983806815035eb63c5039520688c49536bb7f3cc3fc1d7d64c6a00cf3f353e"}, - {file = "numexpr-2.8.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1510da20e6f5f45333610b1ded44c566e2690c6c437c84f2a212ca09627c7e01"}, - {file = "numexpr-2.8.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e8b5bf7bcb4e8dcd66522d8fc96e1db7278f901cb4fd2e155efbe62a41dde08"}, - {file = "numexpr-2.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ed0e1c1ef5f34381448539f1fe9015906d21c9cfa2797c06194d4207dadb465"}, - {file = "numexpr-2.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aea6ab45c87c0a7041183c08a798f0ad4d7c5eccbce20cfe79ce6f1a45ef3702"}, - {file = "numexpr-2.8.5-cp39-cp39-win32.whl", hash = "sha256:cbfd833ee5fdb0efb862e152aee7e6ccea9c596d5c11d22604c2e6307bff7cad"}, - {file = "numexpr-2.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:283ce8609a7ccbadf91a68f3484558b3e36d27c93c98a41ec205efb0ab43c872"}, - {file = "numexpr-2.8.5.tar.gz", hash = "sha256:45ed41e55a0abcecf3d711481e12a5fb7a904fe99d42bc282a17cc5f8ea510be"}, + {file = "numexpr-2.8.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80acbfefb68bd92e708e09f0a02b29e04d388b9ae72f9fcd57988aca172a7833"}, + {file = "numexpr-2.8.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6e884687da8af5955dc9beb6a12d469675c90b8fb38b6c93668c989cfc2cd982"}, + {file = "numexpr-2.8.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ef7e8aaa84fce3aba2e65f243d14a9f8cc92aafd5d90d67283815febfe43eeb"}, + {file = "numexpr-2.8.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dee04d72307c09599f786b9231acffb10df7d7a74b2ce3681d74a574880d13ce"}, + {file = "numexpr-2.8.6-cp310-cp310-win32.whl", hash = "sha256:211804ec25a9f6d188eadf4198dd1a92b2f61d7d20993c6c7706139bc4199c5b"}, + {file = "numexpr-2.8.6-cp310-cp310-win_amd64.whl", hash = "sha256:18b1804923cfa3be7bbb45187d01c0540c8f6df4928c22a0f786e15568e9ebc5"}, + {file = "numexpr-2.8.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:95b9da613761e4fc79748535b2a1f58cada22500e22713ae7d9571fa88d1c2e2"}, + {file = "numexpr-2.8.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:47b45da5aa25600081a649f5e8b2aa640e35db3703f4631f34bb1f2f86d1b5b4"}, + {file = "numexpr-2.8.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84979bf14143351c2db8d9dd7fef8aca027c66ad9df9cb5e75c93bf5f7b5a338"}, + {file = "numexpr-2.8.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d36528a33aa9c23743b3ea686e57526a4f71e7128a1be66210e1511b09c4e4e9"}, + {file = "numexpr-2.8.6-cp311-cp311-win32.whl", hash = "sha256:681812e2e71ff1ba9145fac42d03f51ddf6ba911259aa83041323f68e7458002"}, + {file = "numexpr-2.8.6-cp311-cp311-win_amd64.whl", hash = "sha256:27782177a0081bd0aab229be5d37674e7f0ab4264ef576697323dd047432a4cd"}, + {file = "numexpr-2.8.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ef6e8896457a60a539cb6ba27da78315a9bb31edb246829b25b5b0304bfcee91"}, + {file = "numexpr-2.8.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e640bc0eaf1b59f3dde52bc02bbfda98e62f9950202b0584deba28baf9f36bbb"}, + {file = "numexpr-2.8.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d126938c2c3784673c9c58d94e00b1570aa65517d9c33662234d442fc9fb5795"}, + {file = "numexpr-2.8.6-cp37-cp37m-win32.whl", hash = "sha256:e93d64cd20940b726477c3cb64926e683d31b778a1e18f9079a5088fd0d8e7c8"}, + {file = "numexpr-2.8.6-cp37-cp37m-win_amd64.whl", hash = "sha256:31cf610c952eec57081171f0b4427f9bed2395ec70ec432bbf45d260c5c0cdeb"}, + {file = "numexpr-2.8.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b5f96c89aa0b1f13685ec32fa3d71028db0b5981bfd99a0bbc271035949136b3"}, + {file = "numexpr-2.8.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c8f37f7a6af3bdd61f2efd1cafcc083a9525ab0aaf5dc641e7ec8fc0ae2d3aa1"}, + {file = "numexpr-2.8.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38b8b90967026bbc36c7aa6e8ca3b8906e1990914fd21f446e2a043f4ee3bc06"}, + {file = "numexpr-2.8.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1967c16f61c27df1cdc43ba3c0ba30346157048dd420b4259832276144d0f64e"}, + {file = "numexpr-2.8.6-cp38-cp38-win32.whl", hash = "sha256:15469dc722b5ceb92324ec8635411355ebc702303db901ae8cc87f47c5e3a124"}, + {file = "numexpr-2.8.6-cp38-cp38-win_amd64.whl", hash = "sha256:95c09e814b0d6549de98b5ded7cdf7d954d934bb6b505432ff82e83a6d330bda"}, + {file = "numexpr-2.8.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:aa0f661f5f4872fd7350cc9895f5d2594794b2a7e7f1961649a351724c64acc9"}, + {file = "numexpr-2.8.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8e3e6f1588d6c03877cb3b3dcc3096482da9d330013b886b29cb9586af5af3eb"}, + {file = "numexpr-2.8.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8564186aad5a2c88d597ebc79b8171b52fd33e9b085013e1ff2208f7e4b387e3"}, + {file = "numexpr-2.8.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6a88d71c166e86b98d34701285d23e3e89d548d9f5ae3f4b60919ac7151949f"}, + {file = "numexpr-2.8.6-cp39-cp39-win32.whl", hash = "sha256:c48221b6a85494a7be5a022899764e58259af585dff031cecab337277278cc93"}, + {file = "numexpr-2.8.6-cp39-cp39-win_amd64.whl", hash = "sha256:6d7003497d82ef19458dce380b36a99343b96a3bd5773465c2d898bf8f5a38f9"}, + {file = "numexpr-2.8.6.tar.gz", hash = "sha256:6336f8dba3f456e41a4ffc3c97eb63d89c73589ff6e1707141224b930263260d"}, ] [package.dependencies] @@ -3540,13 +3546,12 @@ files = [ [[package]] name = "pydruid" -version = "0.6.5" -description = "A Python connector for Druid." +version = "0.999.0dev" +description = "" optional = true python-versions = "*" -files = [ - {file = "pydruid-0.6.5.tar.gz", hash = "sha256:30b6efa722234183239296bf8e6d41aba7eea0eec3d68233ce6c413986864fea"}, -] +files = [] +develop = false [package.dependencies] requests = "*" @@ -3557,6 +3562,12 @@ cli = ["prompt_toolkit (>=2.0.0)", "pygments", "tabulate"] pandas = ["pandas"] sqlalchemy = ["sqlalchemy"] +[package.source] +type = "git" +url = "https://github.com/cosmic-chichu/pydruid.git" +reference = "master" +resolved_reference = "0ce16bcfd2dd666ff5294469cc47263acafca1d7" + [[package]] name = "pygments" version = "2.16.1" @@ -3620,13 +3631,13 @@ protobuf = ">=3.20,<5.0" [[package]] name = "pyparsing" -version = "3.0.9" +version = "3.1.1" description = "pyparsing module - Classes and methods to define and execute parsing grammars" 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"}, + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, ] [package.extras] @@ -4205,28 +4216,28 @@ pyasn1 = ">=0.1.3" [[package]] name = "ruff" -version = "0.0.288" +version = "0.0.289" description = "An extremely fast Python linter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.0.288-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:64c01615b8640c703a56a1eac3114a653166eafa5d416ffc9e6cafbfb86ab927"}, - {file = "ruff-0.0.288-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:84691fd3c8edd705c27eb7ccf745a3530c31e4c83010f9ce20e0b9eb0578f099"}, - {file = "ruff-0.0.288-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e08c81394ae272b1595580dad1bfc62de72d9356c51e76b5c2fdd546f84e6168"}, - {file = "ruff-0.0.288-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:db1de2ac1de219f29c12940b429fe365974c3d9f69464c4660c06e4b4b284dba"}, - {file = "ruff-0.0.288-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd9977eee17d7f29beca74b478f6930c7dd006d486bac615c849a3436384fc28"}, - {file = "ruff-0.0.288-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:2d5df4a49eaa11536776b1efcc4e88e373b205a958712185de8e4ae287397614"}, - {file = "ruff-0.0.288-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10feeabd15e2c6e06bce75aa97e806009cf909261cd124f24ef832385914aae9"}, - {file = "ruff-0.0.288-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0496556da7b413279370cae7de001a0415279e9318dc1fabd447a3ca7b398bce"}, - {file = "ruff-0.0.288-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9a6563bbacfc7afdba04722d742db4f1961ab6f398a2e305b43c21d418c149"}, - {file = "ruff-0.0.288-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ea0535d48f674d6a6bf1e6fb1a18c40622cb6496b0994cfdcd7aec763ef8b589"}, - {file = "ruff-0.0.288-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e450e50a936409439bf4e28e85412622693350cf4da89c69e1f14af21ddbc467"}, - {file = "ruff-0.0.288-py3-none-musllinux_1_2_i686.whl", hash = "sha256:28ee03358e4eb89e843cb4fd9cf0406eb603a7e060436ffc623b29544e374c2b"}, - {file = "ruff-0.0.288-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:13d1e6cef389dc0238ef0e97e25561c925bf255d0f59f70ed2d6bd0a13fdd7b0"}, - {file = "ruff-0.0.288-py3-none-win32.whl", hash = "sha256:7534da2f1e724b87a5041615652bca7c6e721f90ae3a01d1d8e965d08a615038"}, - {file = "ruff-0.0.288-py3-none-win_amd64.whl", hash = "sha256:73066b1da66b3d4942cce8c90fd6e09108851e0867a5f7071255d1b99aee3e75"}, - {file = "ruff-0.0.288-py3-none-win_arm64.whl", hash = "sha256:6ca84861bf046e4365e20f4d664dc0aa02b377a6896a393dad716e033ac47a65"}, - {file = "ruff-0.0.288.tar.gz", hash = "sha256:71eb3e09cb47cc02c13c6dc5561055b913572995cf5fa8286948f938bc464621"}, + {file = "ruff-0.0.289-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:c9a89d748e90c840bac9c37afe90cf13a5bfd460ca02ea93dad9d7bee3af03b4"}, + {file = "ruff-0.0.289-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:7f7396c6ea01ba332a6ad9d47642bac25d16bd2076aaa595b001f58b2f32ff05"}, + {file = "ruff-0.0.289-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7180de86c8ecd39624dec1699136f941c07e723201b4ce979bec9e7c67b40ad2"}, + {file = "ruff-0.0.289-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:73f37c65508203dd01a539926375a10243769c20d4fcab3fa6359cd3fbfc54b7"}, + {file = "ruff-0.0.289-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c14abcd7563b5c80be2dd809eeab20e4aa716bf849860b60a22d87ddf19eb88"}, + {file = "ruff-0.0.289-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:91b6d63b6b46d4707916472c91baa87aa0592e73f62a80ff55efdf6c0668cfd6"}, + {file = "ruff-0.0.289-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6479b8c4be3c36046c6c92054762b276fa0fddb03f6b9a310fbbf4c4951267fd"}, + {file = "ruff-0.0.289-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5424318c254bcb091cb67e140ec9b9f7122074e100b06236f252923fb41e767"}, + {file = "ruff-0.0.289-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4daa90865796aedcedf0d8897fdd4cd09bf0ddd3504529a4ccf211edcaff3c7d"}, + {file = "ruff-0.0.289-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:8057e8ab0016c13b9419bad119e854f881e687bd96bc5e2d52c8baac0f278a44"}, + {file = "ruff-0.0.289-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7eebfab2e6a6991908ff1bf82f2dc1e5095fc7e316848e62124526837b445f4d"}, + {file = "ruff-0.0.289-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ebc7af550018001a7fb39ca22cdce20e1a0de4388ea4a007eb5c822f6188c297"}, + {file = "ruff-0.0.289-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6e4e6eccb753efe760ba354fc8e9f783f6bba71aa9f592756f5bd0d78db898ed"}, + {file = "ruff-0.0.289-py3-none-win32.whl", hash = "sha256:bbb3044f931c09cf17dbe5b339896eece0d6ac10c9a86e172540fcdb1974f2b7"}, + {file = "ruff-0.0.289-py3-none-win_amd64.whl", hash = "sha256:6d043c5456b792be2615a52f16056c3cf6c40506ce1f2d6f9d3083cfcb9eeab6"}, + {file = "ruff-0.0.289-py3-none-win_arm64.whl", hash = "sha256:04a720bcca5e987426bb14ad8b9c6f55e259ea774da1cbeafe71569744cfd20a"}, + {file = "ruff-0.0.289.tar.gz", hash = "sha256:2513f853b0fc42f0339b7ab0d2751b63ce7a50a0032d2689b54b2931b3b866d7"}, ] [[package]] @@ -4348,13 +4359,13 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "68.2.1" +version = "68.2.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-68.2.1-py3-none-any.whl", hash = "sha256:eff96148eb336377ab11beee0c73ed84f1709a40c0b870298b0d058828761bae"}, - {file = "setuptools-68.2.1.tar.gz", hash = "sha256:56ee14884fd8d0cd015411f4a13f40b4356775a0aefd9ebc1d3bfb9a1acb32f1"}, + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, ] [package.extras] @@ -4362,6 +4373,27 @@ docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "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" +optional = false +python-versions = ">=3.7" +files = [ + {file = "setuptools_scm-7.1.0-py3-none-any.whl", hash = "sha256:73988b6d848709e2af142aa48c986ea29592bbcfca5375678064708205253d8e"}, + {file = "setuptools_scm-7.1.0.tar.gz", hash = "sha256:6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27"}, +] + +[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 = "six" version = "1.16.0" @@ -4960,4 +4992,4 @@ redis = ["redis"] [metadata] lock-version = "2.0" python-versions = ">=3.9, <3.12" -content-hash = "899239bed4f29bd788fa45e49bdd8fae699a8e9013336b683a4169d418b0b9ba" +content-hash = "88c108c2c19c66d5fe5042c2ba5c996ba9057e4be5cda949e4a176efd516e0a0" diff --git a/pyproject.toml b/pyproject.toml index 5e5485f1..2f89929f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ mlflow-skinny = { version = ">2.0, <3.0", optional = true } redis = {extras = ["hiredis"], version = "^5.0", optional = true} pynumaflow = { version = "~0.4", optional = true } boto3 = { version = "^1.24.64", optional = true } -pydruid = {version = "^0.6", optional = true } +pydruid = {git = "https://github.com/cosmic-chichu/pydruid.git", rev = "master", optional =true} [tool.poetry.extras] mlflow = ["mlflow-skinny"] diff --git a/tests/registry/test_redis_registry.py b/tests/registry/test_redis_registry.py index 777ac2ec..387c9a3c 100644 --- a/tests/registry/test_redis_registry.py +++ b/tests/registry/test_redis_registry.py @@ -239,3 +239,16 @@ def test_exception_call2(self): def test_exception_call3(self): with self.assertRaises(RedisRegistryError): self.registry.delete(skeys=self.skeys, dkeys=self.dkeys, version="0") + + @patch("redis.Redis.set", Mock(side_effect=ConnectionError)) + def test_exception_call4(self): + with self.assertRaises(RedisRegistryError): + self.registry.save_multiple( + skeys=self.skeys, list_dkeys=[self.dkeys], list_artifacts=[self.pytorch_model] + ) + + def test_exception_call5(self): + with self.assertRaises(IndexError): + self.registry.save_multiple( + skeys=self.skeys, list_dkeys=[self.dkeys], list_artifacts=[] + ) From b230ce812a2594050752dd6a646ba33890a12f54 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Tue, 12 Sep 2023 16:14:48 -0700 Subject: [PATCH 05/17] fix: update version Signed-off-by: s0nicboOm --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2f89929f..7ebe508e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "numalogic" -version = "0.6.0a0" +version = "0.6.0a1" description = "Collection of operational Machine Learning models and tools." authors = ["Numalogic Developers"] packages = [{ include = "numalogic" }] From d00258fae6a0fa729ae5686495d3a18e08f3696b Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Tue, 12 Sep 2023 17:58:27 -0700 Subject: [PATCH 06/17] update workflows Signed-off-by: s0nicboOm --- .github/workflows/ci.yml | 2 +- .github/workflows/coverage.yml | 2 +- .github/workflows/pypi.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 95a3e3e4..be49353b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v3 - name: Install poetry - run: pipx install poetry==1.5.1 + run: pipx install poetry==1.6.1 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index e6096865..2f1b6b00 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v3 - name: Install poetry - run: pipx install poetry==1.5.1 + run: pipx install poetry==1.6.1 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 diff --git a/.github/workflows/pypi.yml b/.github/workflows/pypi.yml index 0189ea15..3e435c39 100644 --- a/.github/workflows/pypi.yml +++ b/.github/workflows/pypi.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v3 - name: Install poetry - run: pipx install poetry==1.5.1 + run: pipx install poetry==1.6.1 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 From ba9372defe7347d09fa5e446e3bcb5aa070cb7e6 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Tue, 12 Sep 2023 18:20:20 -0700 Subject: [PATCH 07/17] fix: update version Signed-off-by: s0nicboOm --- pyproject.toml | 2 +- tests/registry/test_mlflow_registry.py | 19 ------------------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 7ebe508e..5d86bd1b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "numalogic" -version = "0.6.0a1" +version = "0.6.0a2" description = "Collection of operational Machine Learning models and tools." authors = ["Numalogic Developers"] packages = [{ include = "numalogic" }] diff --git a/tests/registry/test_mlflow_registry.py b/tests/registry/test_mlflow_registry.py index 6c96a513..068ae8f8 100644 --- a/tests/registry/test_mlflow_registry.py +++ b/tests/registry/test_mlflow_registry.py @@ -7,7 +7,6 @@ from mlflow.exceptions import RestException from mlflow.protos.databricks_pb2 import RESOURCE_DOES_NOT_EXIST, ErrorCode, RESOURCE_LIMIT_EXCEEDED from mlflow.store.entities import PagedList -from sklearn.ensemble import RandomForestRegressor from numalogic.models.autoencoder.variants import VanillaAE from numalogic.registry import MLflowRegistry, ArtifactData, LocalLRUCache @@ -118,24 +117,6 @@ def test_load_model_when_pytorch_model_exist2(self): self.assertEqual(data.metadata, {}) self.assertIsInstance(data.artifact, VanillaAE) - @patch("mlflow.sklearn.log_model", mock_log_model_sklearn) - @patch("mlflow.start_run", Mock(return_value=ActiveRun(return_sklearn_rundata()))) - @patch("mlflow.active_run", Mock(return_value=return_sklearn_rundata())) - @patch("mlflow.tracking.MlflowClient.transition_model_version_stage", mock_transition_stage) - @patch("mlflow.tracking.MlflowClient.get_latest_versions", mock_get_model_version) - @patch("mlflow.tracking.MlflowClient.search_model_versions", mock_list_of_model_version2) - @patch("mlflow.sklearn.load_model", Mock(return_value=RandomForestRegressor())) - @patch("mlflow.tracking.MlflowClient.get_run", Mock(return_value=return_empty_rundata())) - def test_load_model_when_sklearn_model_exist(self): - model = self.model_sklearn - ml = MLflowRegistry(TRACKING_URI) - skeys = self.skeys - dkeys = self.dkeys - ml.save(skeys=skeys, dkeys=dkeys, artifact=model) - data = ml.load(skeys=skeys, dkeys=dkeys, artifact_type="sklearn") - self.assertIsInstance(data.artifact, RandomForestRegressor) - self.assertEqual(data.metadata, {}) - @patch("mlflow.pytorch.log_model", mock_log_model_pytorch()) @patch("mlflow.start_run", Mock(return_value=ActiveRun(return_empty_rundata()))) @patch("mlflow.active_run", Mock(return_value=return_empty_rundata())) From b30b808e8bd10244f99d0152c94fcab2dc94eb81 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Tue, 12 Sep 2023 18:58:23 -0700 Subject: [PATCH 08/17] fix: mlflow test case Signed-off-by: s0nicboOm --- tests/registry/test_mlflow_registry.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/registry/test_mlflow_registry.py b/tests/registry/test_mlflow_registry.py index 068ae8f8..e64fb9dc 100644 --- a/tests/registry/test_mlflow_registry.py +++ b/tests/registry/test_mlflow_registry.py @@ -7,6 +7,7 @@ from mlflow.exceptions import RestException from mlflow.protos.databricks_pb2 import RESOURCE_DOES_NOT_EXIST, ErrorCode, RESOURCE_LIMIT_EXCEEDED from mlflow.store.entities import PagedList +from sklearn.preprocessing import StandardScaler from numalogic.models.autoencoder.variants import VanillaAE from numalogic.registry import MLflowRegistry, ArtifactData, LocalLRUCache @@ -117,6 +118,30 @@ def test_load_model_when_pytorch_model_exist2(self): self.assertEqual(data.metadata, {}) self.assertIsInstance(data.artifact, VanillaAE) + @patch("mlflow.sklearn.log_model", mock_log_model_sklearn) + @patch("mlflow.start_run", Mock(return_value=ActiveRun(return_sklearn_rundata()))) + @patch("mlflow.active_run", Mock(return_value=return_sklearn_rundata())) + @patch("mlflow.tracking.MlflowClient.transition_model_version_stage", mock_transition_stage) + @patch("mlflow.tracking.MlflowClient.get_latest_versions", mock_get_model_version) + @patch("mlflow.tracking.MlflowClient.search_model_versions", mock_list_of_model_version2) + @patch("mlflow.sklearn.load_model", Mock(return_value=StandardScaler())) + @patch("mlflow.tracking.MlflowClient.get_run", Mock(return_value=return_empty_rundata())) + @patch.object( + MLflowRegistry, + "load", + Mock(return_value=ArtifactData(artifact=StandardScaler(), extras=None, metadata={})), + ) + def test_load_model_when_sklearn_model_exist(self): + ml = MLflowRegistry(TRACKING_URI) + skeys = self.skeys + dkeys = self.dkeys + scaler = StandardScaler() + ml.save(skeys=skeys, dkeys=dkeys, artifact=scaler) + data = ml.load(skeys=skeys, dkeys=dkeys) + print(data) + self.assertIsInstance(data.artifact, StandardScaler) + self.assertEqual(data.metadata, {}) + @patch("mlflow.pytorch.log_model", mock_log_model_pytorch()) @patch("mlflow.start_run", Mock(return_value=ActiveRun(return_empty_rundata()))) @patch("mlflow.active_run", Mock(return_value=return_empty_rundata())) From 25ba2bcfdf84d2482230c0b164564402d4e16cf3 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Wed, 13 Sep 2023 11:58:33 -0700 Subject: [PATCH 09/17] fix: remove add_metadata Signed-off-by: s0nicboOm --- numalogic/udfs/__main__.py | 2 -- numalogic/udfs/entities.py | 3 --- numalogic/udfs/tools.py | 6 +++++- tests/udfs/test_inference.py | 1 - tests/udfs/test_postprocess.py | 6 ++---- 5 files changed, 7 insertions(+), 11 deletions(-) diff --git a/numalogic/udfs/__main__.py b/numalogic/udfs/__main__.py index d787df95..5c63936d 100644 --- a/numalogic/udfs/__main__.py +++ b/numalogic/udfs/__main__.py @@ -17,8 +17,6 @@ redis_client = get_redis_client_from_conf(pipeline_conf.redis_conf) -for key in redis_client.scan_iter("*"): - redis_client.delete(key) if __name__ == "__main__": set_logger() step = sys.argv[1] diff --git a/numalogic/udfs/entities.py b/numalogic/udfs/entities.py index 4044e6e5..ba4f75bd 100644 --- a/numalogic/udfs/entities.py +++ b/numalogic/udfs/entities.py @@ -81,9 +81,6 @@ def get_data(self, original=False) -> npt.NDArray[float]: def get_metadata(self, key: str) -> dict[str, Any]: return copy(self.metadata[key]) - def add_metadata(self, data: dict[str, Any]): - self.metadata.update(data) - def __str__(self) -> str: return ( f'"StreamPayload(header={self.header}, status={self.status}, ' diff --git a/numalogic/udfs/tools.py b/numalogic/udfs/tools.py index 5c3ed61a..b2dee9de 100644 --- a/numalogic/udfs/tools.py +++ b/numalogic/udfs/tools.py @@ -131,7 +131,11 @@ def _load_artifact( skeys, dkeys, ) - if artifact.metadata and "artifact_versions" in artifact.metadata: + if ( + artifact.metadata + and "artifact_versions" in artifact.metadata + and "artifact_versions" not in payload.metadata + ): payload = replace( payload, metadata={ diff --git a/tests/udfs/test_inference.py b/tests/udfs/test_inference.py index 5536cfec..ad07e3d4 100644 --- a/tests/udfs/test_inference.py +++ b/tests/udfs/test_inference.py @@ -84,7 +84,6 @@ class TestInferenceUDF(unittest.TestCase): def setUp(self) -> None: self.udf = InferenceUDF(REDIS_CLIENT) self.udf.register_conf("conf1", StreamConf(config_id="conf1")) - print(self.udf.get_conf("conf1")) @patch.object( RedisRegistry, diff --git a/tests/udfs/test_postprocess.py b/tests/udfs/test_postprocess.py index 20aa361f..4df25ca7 100644 --- a/tests/udfs/test_postprocess.py +++ b/tests/udfs/test_postprocess.py @@ -113,10 +113,8 @@ def test_postprocess_infer_model_stale(self): data = deepcopy(DATA) data["status"] = Status.ARTIFACT_STALE data["header"] = Header.MODEL_INFERENCE - print( - self.registry.save( - KEYS, ["StdDevThreshold"], StdDevThreshold().fit(np.asarray([[0, 1], [1, 2]])) - ) + self.registry.save( + KEYS, ["StdDevThreshold"], StdDevThreshold().fit(np.asarray([[0, 1], [1, 2]])) ) msg = self.udf(KEYS, Datum(keys=KEYS, value=orjson.dumps(data), **DATUM_KW)) self.assertEqual(2, len(msg)) From e9f3f43b0ed3731efd0be83008e80552fee61000 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Wed, 13 Sep 2023 16:36:45 -0700 Subject: [PATCH 10/17] fix: introduce namedtuple for artifacts Signed-off-by: s0nicboOm --- numalogic/config/_config.py | 4 +- numalogic/registry/redis_registry.py | 27 +++++------ numalogic/tools/types.py | 4 +- numalogic/udfs/trainer.py | 68 ++++++++++++++-------------- tests/udfs/test_inference.py | 11 ++++- tests/udfs/utility.py | 20 ++++---- 6 files changed, 72 insertions(+), 62 deletions(-) diff --git a/numalogic/config/_config.py b/numalogic/config/_config.py index e9059637..cd33d484 100644 --- a/numalogic/config/_config.py +++ b/numalogic/config/_config.py @@ -83,9 +83,7 @@ class TrainerConf: class NumalogicConf: """Top level config schema for numalogic.""" - model: ModelInfo = field( - default_factory=lambda: ModelInfo(name="VanillaAE", conf={"n_features": 2, "seq_len": 10}) - ) + model: ModelInfo = field(default_factory=ModelInfo) trainer: TrainerConf = field(default_factory=TrainerConf) preprocess: list[ModelInfo] = field(default_factory=list) threshold: ModelInfo = field(default_factory=lambda: ModelInfo(name="StdDevThreshold")) diff --git a/numalogic/registry/redis_registry.py b/numalogic/registry/redis_registry.py index 4114c024..0f2aa93c 100644 --- a/numalogic/registry/redis_registry.py +++ b/numalogic/registry/redis_registry.py @@ -20,7 +20,7 @@ from numalogic.registry.artifact import ArtifactManager, ArtifactData, ArtifactCache from numalogic.registry._serialize import loads, dumps from numalogic.tools.exceptions import ModelKeyNotFound, RedisRegistryError -from numalogic.tools.types import artifact_t, redis_client_t, KEYS, META_T, META_VT +from numalogic.tools.types import artifact_t, redis_client_t, KEYS, META_T, META_VT, artifact_tuple _LOGGER = logging.getLogger(__name__) @@ -369,8 +369,7 @@ def is_artifact_stale(artifact_data: ArtifactData, freq_hr: int) -> bool: def save_multiple( self, skeys: KEYS, - list_dkeys: list[KEYS], - list_artifacts: list[artifact_t], + dict_artifacts: dict[str, artifact_tuple], **metadata: META_VT, ): """ @@ -380,25 +379,27 @@ def save_multiple( Args: ---- skeys: static key fields as list/tuple of strings - list_dkeys: list of dynamic key fields as list/tuple of strings - list_artifacts: list of primary artifacts to be saved + metadata: additional metadata surrounding the artifact that needs to be saved. """ dict_model_ver = {} - if len(list_artifacts) != len(list_dkeys): - raise IndexError("artifact list and dkeys list should have same length!") try: with self.client.pipeline(transaction=self.transactional) as pipe: pipe.multi() - for count, (key, artifact) in enumerate(zip(list_dkeys, list_artifacts)): - dict_model_ver[":".join(key)] = self.save( - skeys=skeys, dkeys=key, artifact=artifact, pipe=pipe, **metadata + for key, value in dict_artifacts.items(): + dict_model_ver[":".join(value.dkeys)] = self.save( + skeys=skeys, + dkeys=value.dkeys, + artifact=value.artifact, + pipe=pipe, + **metadata, ) - if count == len(list_artifacts) - 1: + + if len(dict_artifacts) == len(dict_model_ver): self.save( skeys=skeys, - dkeys=key, - artifact=artifact, + dkeys=value.dkeys, + artifact=value.artifact, pipe=pipe, artifact_versions=dict_model_ver, **metadata, diff --git a/numalogic/tools/types.py b/numalogic/tools/types.py index c2eb3045..778a5fc0 100644 --- a/numalogic/tools/types.py +++ b/numalogic/tools/types.py @@ -8,8 +8,7 @@ # 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 collections import namedtuple from collections.abc import Sequence from typing import Union, TypeVar, ClassVar @@ -38,6 +37,7 @@ META_VT = TypeVar("META_VT", str, int, float, list, dict) EXTRA_T = TypeVar("EXTRA_T", bound=dict[str, Union[str, list, dict]]) KEYS = TypeVar("KEYS", bound=Sequence[str], covariant=True) +artifact_tuple = namedtuple("artifact_tuple", ["dkeys", "artifact"]) class Singleton(type): diff --git a/numalogic/udfs/trainer.py b/numalogic/udfs/trainer.py index e9ecef22..edc05be7 100644 --- a/numalogic/udfs/trainer.py +++ b/numalogic/udfs/trainer.py @@ -19,7 +19,7 @@ from numalogic.registry import RedisRegistry from numalogic.tools.data import StreamingDataset from numalogic.tools.exceptions import ConfigNotFoundError, RedisRegistryError -from numalogic.tools.types import redis_client_t, artifact_t, KEYS +from numalogic.tools.types import redis_client_t, artifact_t, KEYS, artifact_tuple from numalogic.udfs import NumalogicUDF from numalogic.udfs._config import StreamConf, PipelineConf from numalogic.udfs.entities import TrainerPayload @@ -193,30 +193,24 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: # Save artifacts # TODO perform multi-save here skeys = payload.composite_keys - - preproc_dkeys = [_conf.name for _conf in _conf.numalogic_conf.preprocess] - model_dkeys = [_conf.numalogic_conf.model.name] - thresh_dkeys = [_conf.numalogic_conf.threshold.name] - - # Save in reverse order so that version info is stored for other models in the - # metadata of first model - list_artifacts = [artifacts["threshold_clf"], artifacts["model"], artifacts["preproc_clf"]] - list_dkeys = [thresh_dkeys, model_dkeys, preproc_dkeys] - list_dkeys_save, list_artifacts_save = self.artifacts_to_save( - list_dkeys=list_dkeys, list_artifacts=list_artifacts + dict_artifacts = { + "postproc": artifact_tuple( + dkeys=[_conf.numalogic_conf.threshold.name], artifact=artifacts["threshold_clf"] + ), + "inference": artifact_tuple( + dkeys=[_conf.numalogic_conf.model.name], artifact=artifacts["model"] + ), + "preproc": artifact_tuple( + dkeys=[_conf.name for _conf in _conf.numalogic_conf.preprocess], + artifact=artifacts["preproc_clf"], + ), + } + self.artifacts_to_save( + skeys=skeys, + dict_artifacts=dict_artifacts, + model_registry=self.model_registry, + payload=payload, ) - try: - ver_dict = self.model_registry.save_multiple( - skeys=skeys, - list_dkeys=list_dkeys_save, - list_artifacts=list_artifacts_save, - uuid=payload.uuid, - train_size=x_train.shape[0], - ) - except RedisRegistryError: - _LOGGER.exception("%s - Error while saving Model with skeys: %s", payload.uuid, skeys) - else: - _LOGGER.info("%s - Artifact saved with with versions: %s", payload.uuid, ver_dict) _LOGGER.debug( "%s - Time taken in trainer: %.4f sec", payload.uuid, time.perf_counter() - _start_time @@ -238,7 +232,7 @@ def _construct_preproc_clf(_conf: StreamConf) -> Optional[artifact_t]: @staticmethod def artifacts_to_save( - list_artifacts: list[artifact_t], list_dkeys: list[KEYS] + skeys, dict_artifacts: dict, model_registry, payload ) -> tuple[list[KEYS], list[artifact_t]]: """ Identify what artifacts to save in to the registry. @@ -252,16 +246,20 @@ def artifacts_to_save( Tuple of keys and artifacts """ - artifacts_to_save = [] - dkeys_to_save = [] - - # TODO check for statelessness from config - for artifact, dkeys in zip(list_artifacts, list_dkeys): - if artifact: - if not isinstance(artifact, StatelessTransformer): - artifacts_to_save.append(artifact) - dkeys_to_save.append(dkeys) - return dkeys_to_save, artifacts_to_save + for key, value in dict_artifacts.items(): + if value.artifact: + if isinstance(value.artifact, StatelessTransformer): + del dict_artifacts[key] + try: + ver_dict = model_registry.save_multiple( + skeys=skeys, + dict_artifacts=dict_artifacts, + uuid=payload.uuid, + ) + except RedisRegistryError: + _LOGGER.exception("%s - Error while saving Model with skeys: %s", payload.uuid, skeys) + else: + _LOGGER.info("%s - Artifact saved with with versions: %s", payload.uuid, ver_dict) def _is_data_sufficient(self, payload: TrainerPayload, df: pd.DataFrame) -> bool: _conf = self.get_conf(payload.config_id) diff --git a/tests/udfs/test_inference.py b/tests/udfs/test_inference.py index ad07e3d4..feab6b7a 100644 --- a/tests/udfs/test_inference.py +++ b/tests/udfs/test_inference.py @@ -8,6 +8,7 @@ from orjson import orjson from pynumaflow.function import Datum, DatumMetadata +from numalogic.config import NumalogicConf, ModelInfo, TrainerConf, LightningTrainerConf from numalogic.models.autoencoder.variants import VanillaAE from numalogic.registry import RedisRegistry, ArtifactData from numalogic.tools.exceptions import RedisRegistryError @@ -83,7 +84,15 @@ class TestInferenceUDF(unittest.TestCase): def setUp(self) -> None: self.udf = InferenceUDF(REDIS_CLIENT) - self.udf.register_conf("conf1", StreamConf(config_id="conf1")) + self.udf.register_conf( + "conf1", + StreamConf( + numalogic_conf=NumalogicConf( + model=ModelInfo(name="VanillaAE", conf={"seq_len": 12, "n_features": 2}), + trainer=TrainerConf(pltrainer_conf=LightningTrainerConf(max_epochs=1)), + ) + ), + ) @patch.object( RedisRegistry, diff --git a/tests/udfs/utility.py b/tests/udfs/utility.py index c9c2d058..38569fff 100644 --- a/tests/udfs/utility.py +++ b/tests/udfs/utility.py @@ -1,5 +1,6 @@ import datetime import json +from collections import namedtuple import numpy as np from pynumaflow.function import Datum, DatumMetadata @@ -44,16 +45,19 @@ def store_in_redis(pl_conf, registry): if any( [_conf.stateful for _conf in pl_conf.stream_confs["druid-config"].numalogic_conf.preprocess] ): + artifact_tuple = namedtuple("artifact_tuple", ["dkeys", "artifact"]) preproc_clf = make_pipeline(*preproc_clfs) preproc_clf.fit(np.asarray([[1, 3], [4, 6]])) registry.save_multiple( skeys=pl_conf.stream_confs["druid-config"].composite_keys, - list_dkeys=[ - ["AE"], - [ - _conf.name - for _conf in pl_conf.stream_confs["druid-config"].numalogic_conf.preprocess - ], - ], - list_artifacts=[VanillaAE(10), preproc_clf], + dict_artifacts={ + "inference": artifact_tuple(dkeys=["AE"], artifact=VanillaAE(10)), + "preproc": artifact_tuple( + dkeys=[ + _conf.name + for _conf in pl_conf.stream_confs["druid-config"].numalogic_conf.preprocess + ], + artifact=preproc_clf, + ), + }, ) From 9e3763f9ee935c047fce9e0e8764aecc7a4d8689 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Wed, 13 Sep 2023 16:53:56 -0700 Subject: [PATCH 11/17] fix: add typing Signed-off-by: s0nicboOm --- dump.rdb | Bin 0 -> 184227 bytes numalogic/registry/redis_registry.py | 6 +++--- numalogic/tools/types.py | 11 ++++++++--- numalogic/udfs/trainer.py | 27 ++++++++++++++++----------- tests/udfs/utility.py | 7 +++---- 5 files changed, 30 insertions(+), 21 deletions(-) create mode 100644 dump.rdb diff --git a/dump.rdb b/dump.rdb new file mode 100644 index 0000000000000000000000000000000000000000..148fb5b7e029994a7ac11c8f6e05f31fc1f69181 GIT binary patch literal 184227 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 h0la^G|FbYL`GdKwD@XEY bool: def save_multiple( self, skeys: KEYS, - dict_artifacts: dict[str, artifact_tuple], + dict_artifacts: dict[str, ArtifactTuple], **metadata: META_VT, ): """ @@ -379,7 +379,7 @@ def save_multiple( Args: ---- skeys: static key fields as list/tuple of strings - + dict_artifacts: dict of artifacts to save metadata: additional metadata surrounding the artifact that needs to be saved. """ dict_model_ver = {} diff --git a/numalogic/tools/types.py b/numalogic/tools/types.py index 778a5fc0..f50cc42d 100644 --- a/numalogic/tools/types.py +++ b/numalogic/tools/types.py @@ -8,9 +8,8 @@ # 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 collections import namedtuple from collections.abc import Sequence -from typing import Union, TypeVar, ClassVar +from typing import Union, TypeVar, ClassVar, NamedTuple from sklearn.base import BaseEstimator from torch import Tensor @@ -37,7 +36,13 @@ META_VT = TypeVar("META_VT", str, int, float, list, dict) EXTRA_T = TypeVar("EXTRA_T", bound=dict[str, Union[str, list, dict]]) KEYS = TypeVar("KEYS", bound=Sequence[str], covariant=True) -artifact_tuple = namedtuple("artifact_tuple", ["dkeys", "artifact"]) + + +class ArtifactTuple(NamedTuple): + r"""namedtuple for artifacts.""" + + dkeys: KEYS + artifact: artifact_t class Singleton(type): diff --git a/numalogic/udfs/trainer.py b/numalogic/udfs/trainer.py index edc05be7..5d53a195 100644 --- a/numalogic/udfs/trainer.py +++ b/numalogic/udfs/trainer.py @@ -19,10 +19,10 @@ from numalogic.registry import RedisRegistry from numalogic.tools.data import StreamingDataset from numalogic.tools.exceptions import ConfigNotFoundError, RedisRegistryError -from numalogic.tools.types import redis_client_t, artifact_t, KEYS, artifact_tuple +from numalogic.tools.types import redis_client_t, artifact_t, KEYS, ArtifactTuple from numalogic.udfs import NumalogicUDF from numalogic.udfs._config import StreamConf, PipelineConf -from numalogic.udfs.entities import TrainerPayload +from numalogic.udfs.entities import TrainerPayload, StreamPayload _LOGGER = logging.getLogger(__name__) @@ -194,13 +194,13 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: # TODO perform multi-save here skeys = payload.composite_keys dict_artifacts = { - "postproc": artifact_tuple( + "postproc": ArtifactTuple( dkeys=[_conf.numalogic_conf.threshold.name], artifact=artifacts["threshold_clf"] ), - "inference": artifact_tuple( + "inference": ArtifactTuple( dkeys=[_conf.numalogic_conf.model.name], artifact=artifacts["model"] ), - "preproc": artifact_tuple( + "preproc": ArtifactTuple( dkeys=[_conf.name for _conf in _conf.numalogic_conf.preprocess], artifact=artifacts["preproc_clf"], ), @@ -232,14 +232,19 @@ def _construct_preproc_clf(_conf: StreamConf) -> Optional[artifact_t]: @staticmethod def artifacts_to_save( - skeys, dict_artifacts: dict, model_registry, payload - ) -> tuple[list[KEYS], list[artifact_t]]: + skeys: KEYS, + dict_artifacts: dict[str, ArtifactTuple], + model_registry: RedisRegistry, + payload: StreamPayload, + ) -> None: """ - Identify what artifacts to save in to the registry. - + Save artifacts. Args: - list_artifacts: List of artifacts - list_dkeys: List of dkeys + _______ + skeys: list keys + dict_artifacts: artifact_tuple which has dkeys and artifact as fields + model_registry: RedisRegistry type registry that supports multiple_save + payload: payload. Returns ------- diff --git a/tests/udfs/utility.py b/tests/udfs/utility.py index 38569fff..7587e8e6 100644 --- a/tests/udfs/utility.py +++ b/tests/udfs/utility.py @@ -1,6 +1,5 @@ import datetime import json -from collections import namedtuple import numpy as np from pynumaflow.function import Datum, DatumMetadata @@ -8,6 +7,7 @@ from numalogic.config import PreprocessFactory from numalogic.models.autoencoder.variants import VanillaAE +from numalogic.tools.types import ArtifactTuple def input_json_from_file(data_path: str) -> Datum: @@ -45,14 +45,13 @@ def store_in_redis(pl_conf, registry): if any( [_conf.stateful for _conf in pl_conf.stream_confs["druid-config"].numalogic_conf.preprocess] ): - artifact_tuple = namedtuple("artifact_tuple", ["dkeys", "artifact"]) preproc_clf = make_pipeline(*preproc_clfs) preproc_clf.fit(np.asarray([[1, 3], [4, 6]])) registry.save_multiple( skeys=pl_conf.stream_confs["druid-config"].composite_keys, dict_artifacts={ - "inference": artifact_tuple(dkeys=["AE"], artifact=VanillaAE(10)), - "preproc": artifact_tuple( + "inference": ArtifactTuple(dkeys=["AE"], artifact=VanillaAE(10)), + "preproc": ArtifactTuple( dkeys=[ _conf.name for _conf in pl_conf.stream_confs["druid-config"].numalogic_conf.preprocess From 95f8a192d9272b6c7ec37b629db8ab3454db9e1f Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Wed, 13 Sep 2023 17:02:40 -0700 Subject: [PATCH 12/17] fix: test case Signed-off-by: s0nicboOm --- tests/registry/test_redis_registry.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/tests/registry/test_redis_registry.py b/tests/registry/test_redis_registry.py index 387c9a3c..09e138d4 100644 --- a/tests/registry/test_redis_registry.py +++ b/tests/registry/test_redis_registry.py @@ -13,6 +13,7 @@ from numalogic.models.autoencoder.variants import VanillaAE from numalogic.registry import RedisRegistry, LocalLRUCache, ArtifactData from numalogic.tools.exceptions import ModelKeyNotFound, RedisRegistryError +from numalogic.tools.types import ArtifactTuple logging.basicConfig(level=logging.DEBUG) @@ -189,8 +190,10 @@ def test_load_latest_cache_ttl_expire(self): def test_multiple_save(self): self.registry.save_multiple( skeys=self.skeys, - list_dkeys=[["AE"], ["scaler"]], - list_artifacts=[VanillaAE, StandardScaler()], + dict_artifacts={ + "AE": ArtifactTuple(dkeys=["AE"], artifact=VanillaAE(10)), + "scaler": ArtifactTuple(dkeys=["scaler"], artifact=StandardScaler()), + }, **{"a": "b"} ) artifact_data = self.registry.load(skeys=self.skeys, dkeys=["AE"]) @@ -244,11 +247,6 @@ def test_exception_call3(self): def test_exception_call4(self): with self.assertRaises(RedisRegistryError): self.registry.save_multiple( - skeys=self.skeys, list_dkeys=[self.dkeys], list_artifacts=[self.pytorch_model] - ) - - def test_exception_call5(self): - with self.assertRaises(IndexError): - self.registry.save_multiple( - skeys=self.skeys, list_dkeys=[self.dkeys], list_artifacts=[] + skeys=self.skeys, + dict_artifacts={"AE": ArtifactTuple(dkeys=self.dkeys, artifact=VanillaAE(10))}, ) From 7e061327a90be83b76a716fe490894ae8be9a2cc Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Wed, 13 Sep 2023 17:06:04 -0700 Subject: [PATCH 13/17] fix: remove dump.rb file Signed-off-by: s0nicboOm --- dump.rdb | Bin 184227 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 dump.rdb diff --git a/dump.rdb b/dump.rdb deleted file mode 100644 index 148fb5b7e029994a7ac11c8f6e05f31fc1f69181..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184227 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 h0la^G|FbYL`GdKwD@XEY Date: Wed, 13 Sep 2023 17:46:11 -0700 Subject: [PATCH 14/17] fix: update patch version Signed-off-by: s0nicboOm --- numalogic/udfs/__main__.py | 4 - poetry.lock | 242 ++++++++++++++++++------------------- pyproject.toml | 4 +- 3 files changed, 122 insertions(+), 128 deletions(-) diff --git a/numalogic/udfs/__main__.py b/numalogic/udfs/__main__.py index 5c63936d..9e030ea1 100644 --- a/numalogic/udfs/__main__.py +++ b/numalogic/udfs/__main__.py @@ -12,10 +12,6 @@ CONF_FILE_PATH = os.getenv( "CONF_PATH", default=os.path.join(BASE_CONF_DIR, "default-configs", "config.yaml") ) -pipeline_conf = load_pipeline_conf(CONF_FILE_PATH) -logging.info("Pipeline config: %s", pipeline_conf) - -redis_client = get_redis_client_from_conf(pipeline_conf.redis_conf) if __name__ == "__main__": set_logger() diff --git a/poetry.lock b/poetry.lock index dcbb17fd..c4f89292 100644 --- a/poetry.lock +++ b/poetry.lock @@ -415,17 +415,17 @@ css = ["tinycss2 (>=1.1.0,<1.2)"] [[package]] name = "boto3" -version = "1.28.46" +version = "1.28.47" description = "The AWS SDK for Python" optional = false python-versions = ">= 3.7" files = [ - {file = "boto3-1.28.46-py3-none-any.whl", hash = "sha256:04445d70127c25fad69e2cab7e3f5cb219c8d6e60463af3657f20e29ac517957"}, - {file = "boto3-1.28.46.tar.gz", hash = "sha256:2ca2852f7b7c1bc2e56f10f968d4c8483c8228b935ecd89a444ae8292ad0dc24"}, + {file = "boto3-1.28.47-py3-none-any.whl", hash = "sha256:27560da44099e7e2ee961d3971d8ea659de2e0dc24e78043d1c3027d89b2d8a2"}, + {file = "boto3-1.28.47.tar.gz", hash = "sha256:be69cd28e3732b63ad61f6d2429b1eac92428588911a5a7367faa4e129a4738d"}, ] [package.dependencies] -botocore = ">=1.31.46,<1.32.0" +botocore = ">=1.31.47,<1.32.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.6.0,<0.7.0" @@ -434,13 +434,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.31.46" +version = "1.31.47" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">= 3.7" files = [ - {file = "botocore-1.31.46-py3-none-any.whl", hash = "sha256:ac0c1258b1782cde42950bd00138fdce6bd7d04855296af8c326d5844a426473"}, - {file = "botocore-1.31.46.tar.gz", hash = "sha256:6c30be3371624a80d6a881d9c7771a80e0eb82697ee374aaf522cd59b76e14dd"}, + {file = "botocore-1.31.47-py3-none-any.whl", hash = "sha256:6a60f9601270458102529b17fdcba5551b918f9eedc32bbc2f467e63edfb2662"}, + {file = "botocore-1.31.47.tar.gz", hash = "sha256:a0ba5629eb17a37bf449bccda9df6ae652d5755f73145519d5eb244f6963b31b"}, ] [package.dependencies] @@ -1092,21 +1092,19 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.12.3" +version = "3.12.4" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.12.3-py3-none-any.whl", hash = "sha256:f067e40ccc40f2b48395a80fcbd4728262fab54e232e090a4063ab804179efeb"}, - {file = "filelock-3.12.3.tar.gz", hash = "sha256:0ecc1dd2ec4672a10c8550a8182f1bd0c0a5088470ecd5a125e45f49472fac3d"}, + {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, + {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.11\""} - [package.extras] docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] +typing = ["typing-extensions (>=4.7.1)"] [[package]] name = "fonttools" @@ -1814,21 +1812,21 @@ files = [ [[package]] name = "ipywidgets" -version = "8.1.0" +version = "8.1.1" description = "Jupyter interactive widgets" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.0-py3-none-any.whl", hash = "sha256:6c8396cc7b8c95dfb4e9ab0054f48c002f045e7e5d7ae523f559d64e525a98ab"}, - {file = "ipywidgets-8.1.0.tar.gz", hash = "sha256:ce97dd90525b3066fd00094690964e7eac14cf9b7745d35565b5eeac20cce687"}, + {file = "ipywidgets-8.1.1-py3-none-any.whl", hash = "sha256:2b88d728656aea3bbfd05d32c747cfd0078f9d7e159cf982433b58ad717eed7f"}, + {file = "ipywidgets-8.1.1.tar.gz", hash = "sha256:40211efb556adec6fa450ccc2a77d59ca44a060f4f9f136833df59c9f538e6e8"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.7,<3.1.0" +jupyterlab-widgets = ">=3.0.9,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.7,<4.1.0" +widgetsnbextension = ">=4.0.9,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -2226,13 +2224,13 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v [[package]] name = "jupyterlab-widgets" -version = "3.0.8" +version = "3.0.9" description = "Jupyter interactive widgets for JupyterLab" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.8-py3-none-any.whl", hash = "sha256:4715912d6ceab839c9db35953c764b3214ebbc9161c809f6e0510168845dfdf5"}, - {file = "jupyterlab_widgets-3.0.8.tar.gz", hash = "sha256:d428ab97b8d87cc7c54cbf37644d6e0f0e662f23876e05fa460a73ec3257252a"}, + {file = "jupyterlab_widgets-3.0.9-py3-none-any.whl", hash = "sha256:3cf5bdf5b897bf3bccf1c11873aa4afd776d7430200f765e0686bd352487b58d"}, + {file = "jupyterlab_widgets-3.0.9.tar.gz", hash = "sha256:6005a4e974c7beee84060fdfba341a3218495046de8ae3ec64888e5fe19fdb4c"}, ] [[package]] @@ -4096,108 +4094,108 @@ files = [ [[package]] name = "rpds-py" -version = "0.10.2" +version = "0.10.3" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.10.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:9f00d54b18dd837f1431d66b076737deb7c29ce3ebb8412ceaf44d5e1954ac0c"}, - {file = "rpds_py-0.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f4d561f4728f825e3b793a53064b606ca0b6fc264f67d09e54af452aafc5b82"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:013d6c784150d10236a74b4094a79d96a256b814457e388fc5a4ba9efe24c402"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd1142d22fdb183a0fff66d79134bf644401437fed874f81066d314c67ee193c"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a0536ed2b9297c75104e1a3da330828ba1b2639fa53b38d396f98bf7e3c68df"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:41bd430b7b63aa802c02964e331ac0b177148fef5f807d2c90d05ce71a52b4d4"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e8474f7233fe1949ce4e03bea698a600c2d5d6b51dab6d6e6336dbe69acf23e"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d9d7efaad48b859053b90dedd69bc92f2095084251e732e4c57ac9726bcb1e64"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5612b0b1de8d5114520094bd5fc3d04eb8af6f3e10d48ef05b7c8e77c1fd9545"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5d5eaf988951f6ecb6854ca3300b87123599c711183c83da7ce39717a7cbdbce"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75c8766734ac0053e1d683567e65e85306c4ec62631b0591caeb287ac8f72e08"}, - {file = "rpds_py-0.10.2-cp310-none-win32.whl", hash = "sha256:8de9b88f0cbac73cfed34220d13c57849e62a7099a714b929142425e926d223a"}, - {file = "rpds_py-0.10.2-cp310-none-win_amd64.whl", hash = "sha256:2275f1a022e2383da5d2d101fe11ccdcbae799148c4b83260a4b9309fa3e1fc2"}, - {file = "rpds_py-0.10.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dd91a7d7a9ce7f4983097c91ce211f3e5569cc21caa16f2692298a07e396f82b"}, - {file = "rpds_py-0.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e82b4a70cc67094f3f3fd77579702f48fcf1de7bdc67d79b8f1e24d089a6162c"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e281b71922208e00886e4b7ffbfcf27874486364f177418ab676f102130e7ec9"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3eb1a0d2b6d232d1bcdfc3fcc5f7b004ab3fbd9203011a3172f051d4527c0b6"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02945ae38fd78efc40900f509890de84cfd5ffe2cd2939eeb3a8800dc68b87cb"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccfb77f6dc8abffa6f1c7e3975ed9070a41ce5fcc11154d2bead8c1baa940f09"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af52078719209bef33e38131486fd784832dd8d1dc9b85f00a44f6e7437dd021"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56ba7c1100ed079527f2b995bf5486a2e557e6d5b733c52e8947476338815b69"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:899b03a3be785a7e1ff84b237da71f0efa2f021512f147dd34ffdf7aa82cb678"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:22e6de18f00583f06928cc8d0993104ecc62f7c6da6478db2255de89a30e45d1"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:edd74b760a6bb950397e7a7bd2f38e6700f6525062650b1d77c6d851b82f02c2"}, - {file = "rpds_py-0.10.2-cp311-none-win32.whl", hash = "sha256:18909093944727e068ebfc92e2e6ed1c4fa44135507c1c0555213ce211c53214"}, - {file = "rpds_py-0.10.2-cp311-none-win_amd64.whl", hash = "sha256:9568764e72d85cf7855ca78b48e07ed1be47bf230e2cea8dabda3c95f660b0ff"}, - {file = "rpds_py-0.10.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:0fc625059b83695fbb4fc8b7a8b66fa94ff9c7b78c84fb9986cd53ff88a28d80"}, - {file = "rpds_py-0.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c86231c66e4f422e7c13ea6200bb4048b3016c8bfd11b4fd0dabd04d2c8e3501"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56777c57246e048908b550af9b81b0ec9cf804fd47cb7502ccd93238bd6025c2"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a4cb372e22e9c879bd9a9cc9b20b7c1fbf30a605ac953da45ecec05d8a6e1c77"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa3b3a43dabc4cc57a7800f526cbe03f71c69121e21b863fdf497b59b462b163"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d222086daa55421d599609b32d0ebe544e57654c4a0a1490c54a7ebaa67561"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:529aab727f54a937085184e7436e1d0e19975cf10115eda12d37a683e4ee5342"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43e9b1531d6a898bdf086acb75c41265c7ec4331267d7619148d407efc72bd24"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c2772bb95062e3f9774140205cd65d8997e39620715486cf5f843cf4ad8f744c"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ba1b28e44f611f3f2b436bd8290050a61db4b59a8e24be4465f44897936b3824"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5aba767e64b494483ad60c4873bec78d16205a21f8247c99749bd990d9c846c2"}, - {file = "rpds_py-0.10.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:e1954f4b239d1a92081647eecfd51cbfd08ea16eb743b8af1cd0113258feea14"}, - {file = "rpds_py-0.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de4a2fd524993578fe093044f291b4b24aab134390030b3b9b5f87fd41ab7e75"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e69737bd56006a86fd5a78b2b85447580a6138c930a75eb9ef39fe03d90782b1"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f40abbcc0a7d9a8a80870af839d317e6932533f98682aabd977add6c53beeb23"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29ec8507664f94cc08457d98cfc41c3cdbddfa8952438e644177a29b04937876"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcde80aefe7054fad6277762fb7e9d35c72ea479a485ae1bb14629c640987b30"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a65de5c02884760a14a58304fb6303f9ddfc582e630f385daea871e1bdb18686"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e92e5817eb6bfed23aa5e45bfe30647b83602bdd6f9e25d63524d4e6258458b0"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2c8fc6c841ada60a86d29c9ebe2e8757c47eda6553f3596c560e59ca6e9b6fa1"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:8557c807388e6617161fe51b1a4747ea8d1133f2d2ad8e79583439abebe58fbd"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:00e97d43a36811b78fa9ad9d3329bf34f76a31e891a7031a2ac01450c9b168ab"}, - {file = "rpds_py-0.10.2-cp38-none-win32.whl", hash = "sha256:1ed3d5385d14be894e12a9033be989e012214a9811e7194849c94032ad69682a"}, - {file = "rpds_py-0.10.2-cp38-none-win_amd64.whl", hash = "sha256:02b4a2e28eb24dac4ef43dda4f6a6f7766e355179b143f7d0c76a1c5488a307b"}, - {file = "rpds_py-0.10.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:2a55631b93e47956fbc97d69ba2054a8c6a4016f9a3064ec4e031f5f1030cb90"}, - {file = "rpds_py-0.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2ffbf1b38c88d0466de542e91b08225d51782282512f8e2b11715126c41fda48"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213f9ef5c02ec2f883c1075d25a873149daadbaea50d18d622e9db55ec9849c2"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b00150a9a3fd0a8efaa90bc2696c105b04039d50763dd1c95a34c88c5966cb57"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ab0f7aabdbce4a202e013083eeab71afdb85efa405dc4a06fea98cde81204675"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cd0c9fb5d40887500b4ed818770c68ab4fa6e0395d286f9704be6751b1b7d98"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8578fc6c8bdd0201327503720fa581000b4bd3934abbf07e2628d1ad3de157d"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d27d08056fcd61ff47a0cd8407eff4d3e816c82cb6b9c6f0ce9a0ad49225f81"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c8f6526df47953b07c45b95c4d1da6b9a0861c0e5da0271db96bb1d807825412"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:177c033e467a66a054dd3a9534167234a3d0b2e41445807b13b626e01da25d92"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c74cbee9e532dc34371127f7686d6953e5153a1f22beab7f953d95ee4a0fe09"}, - {file = "rpds_py-0.10.2-cp39-none-win32.whl", hash = "sha256:05a1382905026bdd560f806c8c7c16e0f3e3fb359ba8868203ca6e5799884968"}, - {file = "rpds_py-0.10.2-cp39-none-win_amd64.whl", hash = "sha256:3fd503c27e7b7034128e30847ecdb4bff4ca5e60f29ad022a9f66ae8940d54ac"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4a96147791e49e84207dd1530109aa0e9eeaf1c8b7a59f150047fc0fcdf9bb64"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:203eb1532d51591d32e8dfafd60b5d31347ea7278c8da02b4b550287f6abe28b"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2f416cdfe92f5fbb77177f5f3f7830059d1582db05f2c7119bf80069d1ab69b"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2660000e1a113869c86eb5cc07f3343467490f3cd9d0299f81da9ddae7137b7"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1adb04e4b4e41bf30aaa77eeb169c1b9ba9e5010e2e6ce8d6c17e1446edc9b68"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bca97521ee786087f0c5ef318fef3eef0266a9c3deff88205523cf353af7394"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4969592e3cdeefa4cbb15a26cec102cbd4a1d6e5b695fac9fa026e19741138c8"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df61f818edf7c8626bfa392f825860fb670b5f8336e238eb0ec7e2a5689cdded"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b589d93a60e78fe55d5bc76ee8c2bf945dbdbb7cd16044c53e0307604e448de1"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:73da69e1f612c3e682e34dcb971272d90d6f27b2c99acff444ca455a89978574"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:89438e8885a186c69fe31f7ef98bb2bf29688c466c3caf9060f404c0be89ae80"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c4ecc4e9a5d73a816cae36ee6b5d8b7a0c72013cae1e101406e832887c3dc2d8"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:907b214da5d2fcff0b6ddb83de1333890ca92abaf4bbf8d9c61dc1b95c87fd6e"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb44644371eaa29a3aba7b69b1862d0d56f073bb7585baa32e4271a71a91ee82"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:80c3cf46511653f94dfe07c7c79ab105c4164d6e1dfcb35b7214fb9af53eaef4"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaba0613c759ebf95988a84f766ca6b7432d55ce399194f95dde588ad1be0878"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0527c97dcd8bb983822ee31d3760187083fd3ba18ac4dd22cf5347c89d5628f4"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cdfd649011ce2d90cb0dd304c5aba1190fac0c266d19a9e2b96b81cfd150a09"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:75eea40355a8690459c7291ce6c8ce39c27bd223675c7da6619f510c728feb97"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1b804cfad04f862d6a84af9d1ad941b06f671878f0f7ecad6c92007d423de6"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:bf77f9017fcfa1232f98598a637406e6c33982ccba8a5922339575c3e2b90ea5"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:46c4c550bf59ce05d6bff2c98053822549aaf9fbaf81103edea325e03350bca1"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:46af4a742b90c7460e94214f923452c2c1d050a9da1d2b8d4c70cbc045e692b7"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2a86d246a160d98d820ee7d02dc18c923c228de095be362e57b9fd8970b2c4a1"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae141c9017f8f473a6ee07a9425da021816a9f8c0683c2e5442f0ccf56b0fc62"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1147bc3d0dd1e549d991110d0a09557ec9f925dbc1ca62871fcdab2ec9d716b"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fce7a8ee8d0f682c953c0188735d823f0fcb62779bf92cd6ba473a8e730e26ad"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c7f9d70f99e1fbcbf57c75328b80e1c0a7f6cad43e75efa90a97221be5efe15"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b309908b6ff5ffbf6394818cb73b5a2a74073acee2c57fe8719046389aeff0d"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ff1f585a0fdc1415bd733b804f33d386064a308672249b14828130dd43e7c31"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0188b580c490bccb031e9b67e9e8c695a3c44ac5e06218b152361eca847317c3"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:abe081453166e206e3a8c6d8ace57214c17b6d9477d7601ac14a365344dbc1f4"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9118de88c16947eaf5b92f749e65b0501ea69e7c2be7bd6aefc12551622360e1"}, - {file = "rpds_py-0.10.2.tar.gz", hash = "sha256:289073f68452b96e70990085324be7223944c7409973d13ddfe0eea1c1b5663b"}, + {file = "rpds_py-0.10.3-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:485747ee62da83366a44fbba963c5fe017860ad408ccd6cd99aa66ea80d32b2e"}, + {file = "rpds_py-0.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c55f9821f88e8bee4b7a72c82cfb5ecd22b6aad04033334f33c329b29bfa4da0"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3b52a67ac66a3a64a7e710ba629f62d1e26ca0504c29ee8cbd99b97df7079a8"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3aed39db2f0ace76faa94f465d4234aac72e2f32b009f15da6492a561b3bbebd"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:271c360fdc464fe6a75f13ea0c08ddf71a321f4c55fc20a3fe62ea3ef09df7d9"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef5fddfb264e89c435be4adb3953cef5d2936fdeb4463b4161a6ba2f22e7b740"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a771417c9c06c56c9d53d11a5b084d1de75de82978e23c544270ab25e7c066ff"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:52b5cbc0469328e58180021138207e6ec91d7ca2e037d3549cc9e34e2187330a"}, + {file = "rpds_py-0.10.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6ac3fefb0d168c7c6cab24fdfc80ec62cd2b4dfd9e65b84bdceb1cb01d385c33"}, + {file = "rpds_py-0.10.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8d54bbdf5d56e2c8cf81a1857250f3ea132de77af543d0ba5dce667183b61fec"}, + {file = "rpds_py-0.10.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cd2163f42868865597d89399a01aa33b7594ce8e2c4a28503127c81a2f17784e"}, + {file = "rpds_py-0.10.3-cp310-none-win32.whl", hash = "sha256:ea93163472db26ac6043e8f7f93a05d9b59e0505c760da2a3cd22c7dd7111391"}, + {file = "rpds_py-0.10.3-cp310-none-win_amd64.whl", hash = "sha256:7cd020b1fb41e3ab7716d4d2c3972d4588fdfbab9bfbbb64acc7078eccef8860"}, + {file = "rpds_py-0.10.3-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:1d9b5ee46dcb498fa3e46d4dfabcb531e1f2e76b477e0d99ef114f17bbd38453"}, + {file = "rpds_py-0.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:563646d74a4b4456d0cf3b714ca522e725243c603e8254ad85c3b59b7c0c4bf0"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e626b864725680cd3904414d72e7b0bd81c0e5b2b53a5b30b4273034253bb41f"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485301ee56ce87a51ccb182a4b180d852c5cb2b3cb3a82f7d4714b4141119d8c"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:42f712b4668831c0cd85e0a5b5a308700fe068e37dcd24c0062904c4e372b093"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c9141af27a4e5819d74d67d227d5047a20fa3c7d4d9df43037a955b4c748ec5"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef750a20de1b65657a1425f77c525b0183eac63fe7b8f5ac0dd16f3668d3e64f"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e1a0ffc39f51aa5f5c22114a8f1906b3c17eba68c5babb86c5f77d8b1bba14d1"}, + {file = "rpds_py-0.10.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f4c179a7aeae10ddf44c6bac87938134c1379c49c884529f090f9bf05566c836"}, + {file = "rpds_py-0.10.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:176287bb998fd1e9846a9b666e240e58f8d3373e3bf87e7642f15af5405187b8"}, + {file = "rpds_py-0.10.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6446002739ca29249f0beaaf067fcbc2b5aab4bc7ee8fb941bd194947ce19aff"}, + {file = "rpds_py-0.10.3-cp311-none-win32.whl", hash = "sha256:c7aed97f2e676561416c927b063802c8a6285e9b55e1b83213dfd99a8f4f9e48"}, + {file = "rpds_py-0.10.3-cp311-none-win_amd64.whl", hash = "sha256:8bd01ff4032abaed03f2db702fa9a61078bee37add0bd884a6190b05e63b028c"}, + {file = "rpds_py-0.10.3-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:4cf0855a842c5b5c391dd32ca273b09e86abf8367572073bd1edfc52bc44446b"}, + {file = "rpds_py-0.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:69b857a7d8bd4f5d6e0db4086da8c46309a26e8cefdfc778c0c5cc17d4b11e08"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:975382d9aa90dc59253d6a83a5ca72e07f4ada3ae3d6c0575ced513db322b8ec"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35fbd23c1c8732cde7a94abe7fb071ec173c2f58c0bd0d7e5b669fdfc80a2c7b"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:106af1653007cc569d5fbb5f08c6648a49fe4de74c2df814e234e282ebc06957"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce5e7504db95b76fc89055c7f41e367eaadef5b1d059e27e1d6eabf2b55ca314"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aca759ada6b1967fcfd4336dcf460d02a8a23e6abe06e90ea7881e5c22c4de6"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b5d4bdd697195f3876d134101c40c7d06d46c6ab25159ed5cbd44105c715278a"}, + {file = "rpds_py-0.10.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a657250807b6efd19b28f5922520ae002a54cb43c2401e6f3d0230c352564d25"}, + {file = "rpds_py-0.10.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:177c9dd834cdf4dc39c27436ade6fdf9fe81484758885f2d616d5d03c0a83bd2"}, + {file = "rpds_py-0.10.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e22491d25f97199fc3581ad8dd8ce198d8c8fdb8dae80dea3512e1ce6d5fa99f"}, + {file = "rpds_py-0.10.3-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:2f3e1867dd574014253b4b8f01ba443b9c914e61d45f3674e452a915d6e929a3"}, + {file = "rpds_py-0.10.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c22211c165166de6683de8136229721f3d5c8606cc2c3d1562da9a3a5058049c"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40bc802a696887b14c002edd43c18082cb7b6f9ee8b838239b03b56574d97f71"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e271dd97c7bb8eefda5cca38cd0b0373a1fea50f71e8071376b46968582af9b"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:95cde244e7195b2c07ec9b73fa4c5026d4a27233451485caa1cd0c1b55f26dbd"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08a80cf4884920863623a9ee9a285ee04cef57ebedc1cc87b3e3e0f24c8acfe5"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:763ad59e105fca09705d9f9b29ecffb95ecdc3b0363be3bb56081b2c6de7977a"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:187700668c018a7e76e89424b7c1042f317c8df9161f00c0c903c82b0a8cac5c"}, + {file = "rpds_py-0.10.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:5267cfda873ad62591b9332fd9472d2409f7cf02a34a9c9cb367e2c0255994bf"}, + {file = "rpds_py-0.10.3-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:2ed83d53a8c5902ec48b90b2ac045e28e1698c0bea9441af9409fc844dc79496"}, + {file = "rpds_py-0.10.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:255f1a10ae39b52122cce26ce0781f7a616f502feecce9e616976f6a87992d6b"}, + {file = "rpds_py-0.10.3-cp38-none-win32.whl", hash = "sha256:a019a344312d0b1f429c00d49c3be62fa273d4a1094e1b224f403716b6d03be1"}, + {file = "rpds_py-0.10.3-cp38-none-win_amd64.whl", hash = "sha256:efb9ece97e696bb56e31166a9dd7919f8f0c6b31967b454718c6509f29ef6fee"}, + {file = "rpds_py-0.10.3-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:570cc326e78ff23dec7f41487aa9c3dffd02e5ee9ab43a8f6ccc3df8f9327623"}, + {file = "rpds_py-0.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cff7351c251c7546407827b6a37bcef6416304fc54d12d44dbfecbb717064717"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:177914f81f66c86c012311f8c7f46887ec375cfcfd2a2f28233a3053ac93a569"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:448a66b8266de0b581246ca7cd6a73b8d98d15100fb7165974535fa3b577340e"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bbac1953c17252f9cc675bb19372444aadf0179b5df575ac4b56faaec9f6294"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9dd9d9d9e898b9d30683bdd2b6c1849449158647d1049a125879cb397ee9cd12"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8c71ea77536149e36c4c784f6d420ffd20bea041e3ba21ed021cb40ce58e2c9"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16a472300bc6c83fe4c2072cc22b3972f90d718d56f241adabc7ae509f53f154"}, + {file = "rpds_py-0.10.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b9255e7165083de7c1d605e818025e8860636348f34a79d84ec533546064f07e"}, + {file = "rpds_py-0.10.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:53d7a3cd46cdc1689296348cb05ffd4f4280035770aee0c8ead3bbd4d6529acc"}, + {file = "rpds_py-0.10.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22da15b902f9f8e267020d1c8bcfc4831ca646fecb60254f7bc71763569f56b1"}, + {file = "rpds_py-0.10.3-cp39-none-win32.whl", hash = "sha256:850c272e0e0d1a5c5d73b1b7871b0a7c2446b304cec55ccdb3eaac0d792bb065"}, + {file = "rpds_py-0.10.3-cp39-none-win_amd64.whl", hash = "sha256:de61e424062173b4f70eec07e12469edde7e17fa180019a2a0d75c13a5c5dc57"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:af247fd4f12cca4129c1b82090244ea5a9d5bb089e9a82feb5a2f7c6a9fe181d"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3ad59efe24a4d54c2742929001f2d02803aafc15d6d781c21379e3f7f66ec842"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642ed0a209ced4be3a46f8cb094f2d76f1f479e2a1ceca6de6346a096cd3409d"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37d0c59548ae56fae01c14998918d04ee0d5d3277363c10208eef8c4e2b68ed6"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aad6ed9e70ddfb34d849b761fb243be58c735be6a9265b9060d6ddb77751e3e8"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f94fdd756ba1f79f988855d948ae0bad9ddf44df296770d9a58c774cfbcca72"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77076bdc8776a2b029e1e6ffbe6d7056e35f56f5e80d9dc0bad26ad4a024a762"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:87d9b206b1bd7a0523375dc2020a6ce88bca5330682ae2fe25e86fd5d45cea9c"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:8efaeb08ede95066da3a3e3c420fcc0a21693fcd0c4396d0585b019613d28515"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a4d9bfda3f84fc563868fe25ca160c8ff0e69bc4443c5647f960d59400ce6557"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:d27aa6bbc1f33be920bb7adbb95581452cdf23005d5611b29a12bb6a3468cc95"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:ed8313809571a5463fd7db43aaca68ecb43ca7a58f5b23b6e6c6c5d02bdc7882"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:e10e6a1ed2b8661201e79dff5531f8ad4cdd83548a0f81c95cf79b3184b20c33"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:015de2ce2af1586ff5dc873e804434185199a15f7d96920ce67e50604592cae9"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ae87137951bb3dc08c7d8bfb8988d8c119f3230731b08a71146e84aaa919a7a9"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0bb4f48bd0dd18eebe826395e6a48b7331291078a879295bae4e5d053be50d4c"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:09362f86ec201288d5687d1dc476b07bf39c08478cde837cb710b302864e7ec9"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821392559d37759caa67d622d0d2994c7a3f2fb29274948ac799d496d92bca73"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7170cbde4070dc3c77dec82abf86f3b210633d4f89550fa0ad2d4b549a05572a"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:5de11c041486681ce854c814844f4ce3282b6ea1656faae19208ebe09d31c5b8"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:4ed172d0c79f156c1b954e99c03bc2e3033c17efce8dd1a7c781bc4d5793dfac"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:11fdd1192240dda8d6c5d18a06146e9045cb7e3ba7c06de6973000ff035df7c6"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:f602881d80ee4228a2355c68da6b296a296cd22bbb91e5418d54577bbf17fa7c"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:691d50c99a937709ac4c4cd570d959a006bd6a6d970a484c84cc99543d4a5bbb"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24cd91a03543a0f8d09cb18d1cb27df80a84b5553d2bd94cba5979ef6af5c6e7"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fc2200e79d75b5238c8d69f6a30f8284290c777039d331e7340b6c17cad24a5a"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea65b59882d5fa8c74a23f8960db579e5e341534934f43f3b18ec1839b893e41"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:829e91f3a8574888b73e7a3feb3b1af698e717513597e23136ff4eba0bc8387a"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eab75a8569a095f2ad470b342f2751d9902f7944704f0571c8af46bede438475"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:061c3ff1f51ecec256e916cf71cc01f9975af8fb3af9b94d3c0cc8702cfea637"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:39d05e65f23a0fe897b6ac395f2a8d48c56ac0f583f5d663e0afec1da89b95da"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:4eca20917a06d2fca7628ef3c8b94a8c358f6b43f1a621c9815243462dcccf97"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e8d0f0eca087630d58b8c662085529781fd5dc80f0a54eda42d5c9029f812599"}, + {file = "rpds_py-0.10.3.tar.gz", hash = "sha256:fcc1ebb7561a3e24a6588f7c6ded15d80aec22c66a070c757559b57b17ffd1cb"}, ] [[package]] @@ -4860,13 +4858,13 @@ watchdog = ["watchdog (>=2.3)"] [[package]] name = "widgetsnbextension" -version = "4.0.8" +version = "4.0.9" description = "Jupyter interactive widgets for Jupyter Notebook" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.8-py3-none-any.whl", hash = "sha256:2e37f0ce9da11651056280c7efe96f2db052fe8fc269508e3724f5cbd6c93018"}, - {file = "widgetsnbextension-4.0.8.tar.gz", hash = "sha256:9ec291ba87c2dfad42c3d5b6f68713fa18be1acd7476569516b2431682315c17"}, + {file = "widgetsnbextension-4.0.9-py3-none-any.whl", hash = "sha256:91452ca8445beb805792f206e560c1769284267a30ceb1cec9f5bcc887d15175"}, + {file = "widgetsnbextension-4.0.9.tar.gz", hash = "sha256:3c1f5e46dc1166dfd40a42d685e6a51396fd34ff878742a3e47c6f0cc4a2a385"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index 5d86bd1b..d0975a7d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "numalogic" -version = "0.6.0a2" +version = "0.6.0a3" description = "Collection of operational Machine Learning models and tools." authors = ["Numalogic Developers"] packages = [{ include = "numalogic" }] @@ -121,4 +121,4 @@ convention = "numpy" [build-system] requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" \ No newline at end of file +build-backend = "poetry.core.masonry.api" From 7ca521a00d2885e091d90d869f79f8613aacfabf Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Thu, 14 Sep 2023 13:40:09 -0700 Subject: [PATCH 15/17] add _pipe for redis registry Signed-off-by: s0nicboOm --- numalogic/registry/redis_registry.py | 32 +++++++++++++++------------ numalogic/tools/types.py | 2 +- numalogic/udfs/tools.py | 2 +- numalogic/udfs/trainer.py | 10 ++++----- tests/registry/test_redis_registry.py | 8 +++---- tests/udfs/utility.py | 6 ++--- 6 files changed, 32 insertions(+), 28 deletions(-) diff --git a/numalogic/registry/redis_registry.py b/numalogic/registry/redis_registry.py index 0aec7530..f19c759e 100644 --- a/numalogic/registry/redis_registry.py +++ b/numalogic/registry/redis_registry.py @@ -14,13 +14,14 @@ from datetime import datetime, timedelta from typing import Optional import orjson +import redis.client from redis.exceptions import RedisError from numalogic.registry.artifact import ArtifactManager, ArtifactData, ArtifactCache from numalogic.registry._serialize import loads, dumps from numalogic.tools.exceptions import ModelKeyNotFound, RedisRegistryError -from numalogic.tools.types import artifact_t, redis_client_t, KEYS, META_T, META_VT, ArtifactTuple +from numalogic.tools.types import artifact_t, redis_client_t, KEYS, META_T, META_VT, KeyedArtifact _LOGGER = logging.getLogger(__name__) @@ -180,7 +181,7 @@ def __load_version_artifact(self, version: str, key: str) -> tuple[ArtifactData, _LOGGER.debug("Found cached version artifact for key: %s", version_key) return cached_artifact, True if not self.client.exists(version_key): - raise ModelKeyNotFound("Could not find model key with key: %s" % version_key) + raise ModelKeyNotFound(f"Could not find model key with key: {version_key}") return ( self.__get_artifact_data( model_key=version_key, @@ -253,7 +254,9 @@ def load( else: if not is_cached: if latest: - _LOGGER.info("Saving %s, in cache as %s", self.__construct_latest_key(key), key) + _LOGGER.debug( + "Saving %s, in cache as %s", self.__construct_latest_key(key), key + ) self._save_in_cache(self.__construct_latest_key(key), artifact_data) else: _LOGGER.info( @@ -269,7 +272,7 @@ def save( skeys: KEYS, dkeys: KEYS, artifact: artifact_t, - pipe=None, + _pipe: Optional[redis.client.Pipeline] = None, **metadata: META_VT, ) -> Optional[str]: """Saves the artifact into redis registry and updates version. @@ -279,6 +282,7 @@ def save( skeys: static key fields as list/tuple of strings dkeys: dynamic key fields as list/tuple of strings artifact: primary artifact to be saved + _pipe: RedisPipeline object metadata: additional metadata surrounding the artifact that needs to be saved. Returns @@ -297,15 +301,15 @@ def save( _LOGGER.debug("Latest key: %s exists for the model", latest_key) version_key = self.client.get(name=latest_key) version = int(self.get_version(version_key.decode())) + 1 - redis_pipe = ( - self.client.pipeline(transaction=self.transactional) if pipe is None else pipe + _redis_pipe = ( + self.client.pipeline(transaction=self.transactional) if _pipe is None else _pipe ) new_version_key = self.__save_artifact( - pipe=redis_pipe, artifact=artifact, key=key, version=str(version), **metadata + pipe=_redis_pipe, artifact=artifact, key=key, version=str(version), **metadata ) - redis_pipe.expire(name=new_version_key, time=self.ttl) - if pipe is None: - redis_pipe.execute() + _redis_pipe.expire(name=new_version_key, time=self.ttl) + if _pipe is None: + _redis_pipe.execute() except RedisError as err: raise RedisRegistryError(f"{err.__class__.__name__} raised") from err else: @@ -333,7 +337,7 @@ def delete(self, skeys: KEYS, dkeys: KEYS, version: str) -> None: self.client.delete(del_key) else: raise ModelKeyNotFound( - "Key to delete: %s, Not Found!" % del_key, + f"Key to delete: {del_key}, Not Found!", ) except RedisError as err: raise RedisRegistryError(f"{err.__class__.__name__} raised") from err @@ -369,7 +373,7 @@ def is_artifact_stale(artifact_data: ArtifactData, freq_hr: int) -> bool: def save_multiple( self, skeys: KEYS, - dict_artifacts: dict[str, ArtifactTuple], + dict_artifacts: dict[str, KeyedArtifact], **metadata: META_VT, ): """ @@ -391,7 +395,7 @@ def save_multiple( skeys=skeys, dkeys=value.dkeys, artifact=value.artifact, - pipe=pipe, + _pipe=pipe, **metadata, ) @@ -400,7 +404,7 @@ def save_multiple( skeys=skeys, dkeys=value.dkeys, artifact=value.artifact, - pipe=pipe, + _pipe=pipe, artifact_versions=dict_model_ver, **metadata, ) diff --git a/numalogic/tools/types.py b/numalogic/tools/types.py index f50cc42d..22214b3c 100644 --- a/numalogic/tools/types.py +++ b/numalogic/tools/types.py @@ -38,7 +38,7 @@ KEYS = TypeVar("KEYS", bound=Sequence[str], covariant=True) -class ArtifactTuple(NamedTuple): +class KeyedArtifact(NamedTuple): r"""namedtuple for artifacts.""" dkeys: KEYS diff --git a/numalogic/udfs/tools.py b/numalogic/udfs/tools.py index b2dee9de..d9cd39fb 100644 --- a/numalogic/udfs/tools.py +++ b/numalogic/udfs/tools.py @@ -65,7 +65,7 @@ def make_stream_payload( ) -# TODO: move to base NumalogicUDF class +# TODO: move to base NumalogicUDF class and look into payload mutation def _load_artifact( skeys: KEYS, dkeys: KEYS, diff --git a/numalogic/udfs/trainer.py b/numalogic/udfs/trainer.py index 5d53a195..f35b6ca9 100644 --- a/numalogic/udfs/trainer.py +++ b/numalogic/udfs/trainer.py @@ -19,7 +19,7 @@ from numalogic.registry import RedisRegistry from numalogic.tools.data import StreamingDataset from numalogic.tools.exceptions import ConfigNotFoundError, RedisRegistryError -from numalogic.tools.types import redis_client_t, artifact_t, KEYS, ArtifactTuple +from numalogic.tools.types import redis_client_t, artifact_t, KEYS, KeyedArtifact from numalogic.udfs import NumalogicUDF from numalogic.udfs._config import StreamConf, PipelineConf from numalogic.udfs.entities import TrainerPayload, StreamPayload @@ -194,13 +194,13 @@ def exec(self, keys: list[str], datum: Datum) -> Messages: # TODO perform multi-save here skeys = payload.composite_keys dict_artifacts = { - "postproc": ArtifactTuple( + "postproc": KeyedArtifact( dkeys=[_conf.numalogic_conf.threshold.name], artifact=artifacts["threshold_clf"] ), - "inference": ArtifactTuple( + "inference": KeyedArtifact( dkeys=[_conf.numalogic_conf.model.name], artifact=artifacts["model"] ), - "preproc": ArtifactTuple( + "preproc": KeyedArtifact( dkeys=[_conf.name for _conf in _conf.numalogic_conf.preprocess], artifact=artifacts["preproc_clf"], ), @@ -233,7 +233,7 @@ def _construct_preproc_clf(_conf: StreamConf) -> Optional[artifact_t]: @staticmethod def artifacts_to_save( skeys: KEYS, - dict_artifacts: dict[str, ArtifactTuple], + dict_artifacts: dict[str, KeyedArtifact], model_registry: RedisRegistry, payload: StreamPayload, ) -> None: diff --git a/tests/registry/test_redis_registry.py b/tests/registry/test_redis_registry.py index 09e138d4..de252cf1 100644 --- a/tests/registry/test_redis_registry.py +++ b/tests/registry/test_redis_registry.py @@ -13,7 +13,7 @@ from numalogic.models.autoencoder.variants import VanillaAE from numalogic.registry import RedisRegistry, LocalLRUCache, ArtifactData from numalogic.tools.exceptions import ModelKeyNotFound, RedisRegistryError -from numalogic.tools.types import ArtifactTuple +from numalogic.tools.types import KeyedArtifact logging.basicConfig(level=logging.DEBUG) @@ -191,8 +191,8 @@ def test_multiple_save(self): self.registry.save_multiple( skeys=self.skeys, dict_artifacts={ - "AE": ArtifactTuple(dkeys=["AE"], artifact=VanillaAE(10)), - "scaler": ArtifactTuple(dkeys=["scaler"], artifact=StandardScaler()), + "AE": KeyedArtifact(dkeys=["AE"], artifact=VanillaAE(10)), + "scaler": KeyedArtifact(dkeys=["scaler"], artifact=StandardScaler()), }, **{"a": "b"} ) @@ -248,5 +248,5 @@ def test_exception_call4(self): with self.assertRaises(RedisRegistryError): self.registry.save_multiple( skeys=self.skeys, - dict_artifacts={"AE": ArtifactTuple(dkeys=self.dkeys, artifact=VanillaAE(10))}, + dict_artifacts={"AE": KeyedArtifact(dkeys=self.dkeys, artifact=VanillaAE(10))}, ) diff --git a/tests/udfs/utility.py b/tests/udfs/utility.py index 7587e8e6..bb7da059 100644 --- a/tests/udfs/utility.py +++ b/tests/udfs/utility.py @@ -7,7 +7,7 @@ from numalogic.config import PreprocessFactory from numalogic.models.autoencoder.variants import VanillaAE -from numalogic.tools.types import ArtifactTuple +from numalogic.tools.types import KeyedArtifact def input_json_from_file(data_path: str) -> Datum: @@ -50,8 +50,8 @@ def store_in_redis(pl_conf, registry): registry.save_multiple( skeys=pl_conf.stream_confs["druid-config"].composite_keys, dict_artifacts={ - "inference": ArtifactTuple(dkeys=["AE"], artifact=VanillaAE(10)), - "preproc": ArtifactTuple( + "inference": KeyedArtifact(dkeys=["AE"], artifact=VanillaAE(10)), + "preproc": KeyedArtifact( dkeys=[ _conf.name for _conf in pl_conf.stream_confs["druid-config"].numalogic_conf.preprocess From d20b1e33e4e83e24deed38d45b27425843abe7b2 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Thu, 14 Sep 2023 20:33:10 -0700 Subject: [PATCH 16/17] fix: update mlflow version Signed-off-by: s0nicboOm --- .btoutput/app1:failure/data.csv | 1001 +++++ .btoutput/app1:failure/models.pt | Bin 0 -> 16224 bytes .btoutput/app1:failure/output.csv | 251 ++ .btoutput/app1:failure/plot.png | Bin 0 -> 57426 bytes .btoutput/failure/models.pt | Bin 0 -> 16224 bytes .btoutput/failure/output.csv | 5001 ++++++++++++++++++++++++ poetry.lock | 43 +- pyproject.toml | 2 +- tests/registry/test_mlflow_registry.py | 7 +- 9 files changed, 6292 insertions(+), 13 deletions(-) create mode 100644 .btoutput/app1:failure/data.csv create mode 100644 .btoutput/app1:failure/models.pt create mode 100644 .btoutput/app1:failure/output.csv create mode 100644 .btoutput/app1:failure/plot.png create mode 100644 .btoutput/failure/models.pt create mode 100644 .btoutput/failure/output.csv diff --git a/.btoutput/app1:failure/data.csv b/.btoutput/app1:failure/data.csv new file mode 100644 index 00000000..8262b213 --- /dev/null +++ b/.btoutput/app1:failure/data.csv @@ -0,0 +1,1001 @@ +timestamp,failure +2020-12-13 22:25:00+00:00,0 +2020-12-14 00:33:00+00:00,0 +2020-12-14 01:42:00+00:00,0 +2020-12-14 01:59:00+00:00,0 +2020-12-14 02:27:00+00:00,0 +2020-12-14 02:43:00+00:00,0 +2020-12-14 04:41:00+00:00,0 +2020-12-14 06:18:00+00:00,0 +2020-12-14 14:43:00+00:00,0 +2020-12-14 14:57:00+00:00,0 +2020-12-14 15:03:00+00:00,0 +2020-12-14 15:15:00+00:00,0 +2020-12-14 15:17:00+00:00,0 +2020-12-14 15:18:00+00:00,0 +2020-12-14 15:25:00+00:00,0 +2020-12-14 15:26:00+00:00,0 +2020-12-14 15:44:00+00:00,0 +2020-12-14 16:04:00+00:00,0 +2020-12-14 16:28:00+00:00,0 +2020-12-14 16:44:00+00:00,0 +2020-12-14 18:00:00+00:00,0 +2020-12-14 18:02:00+00:00,0 +2020-12-14 18:22:00+00:00,0 +2020-12-14 18:53:00+00:00,0 +2020-12-14 19:09:00+00:00,0 +2020-12-14 19:23:00+00:00,0 +2020-12-14 19:40:00+00:00,0 +2020-12-14 19:48:00+00:00,0 +2020-12-14 20:03:00+00:00,0 +2020-12-14 21:20:00+00:00,0 +2020-12-14 22:03:00+00:00,0 +2020-12-14 22:15:00+00:00,0 +2020-12-14 22:57:00+00:00,0 +2020-12-14 23:18:00+00:00,0 +2020-12-14 23:55:00+00:00,0 +2020-12-15 00:10:00+00:00,0 +2020-12-15 00:40:00+00:00,0 +2020-12-15 02:31:00+00:00,0 +2020-12-15 05:03:00+00:00,0 +2020-12-15 05:08:00+00:00,0 +2020-12-15 06:51:00+00:00,0 +2020-12-15 07:13:00+00:00,0 +2020-12-15 07:17:00+00:00,0 +2020-12-15 07:19:00+00:00,0 +2020-12-15 07:20:00+00:00,0 +2020-12-15 07:21:00+00:00,0 +2020-12-15 10:29:00+00:00,0 +2020-12-15 12:21:00+00:00,0 +2020-12-15 13:41:00+00:00,0 +2020-12-15 14:15:00+00:00,0 +2020-12-15 14:17:00+00:00,0 +2020-12-15 14:18:00+00:00,0 +2020-12-15 14:22:00+00:00,0 +2020-12-15 14:24:00+00:00,0 +2020-12-15 14:39:00+00:00,0 +2020-12-15 14:53:00+00:00,0 +2020-12-15 15:27:00+00:00,0 +2020-12-15 15:36:00+00:00,0 +2020-12-15 15:49:00+00:00,0 +2020-12-15 16:36:00+00:00,0 +2020-12-15 16:43:00+00:00,0 +2020-12-15 16:50:00+00:00,0 +2020-12-15 17:00:00+00:00,0 +2020-12-15 17:18:00+00:00,0 +2020-12-15 17:19:00+00:00,0 +2020-12-15 17:35:00+00:00,0 +2020-12-15 17:53:00+00:00,0 +2020-12-15 18:17:00+00:00,0 +2020-12-15 18:18:00+00:00,0 +2020-12-15 18:20:00+00:00,0 +2020-12-15 18:22:00+00:00,0 +2020-12-15 18:54:00+00:00,0 +2020-12-15 19:00:00+00:00,0 +2020-12-15 19:08:00+00:00,0 +2020-12-15 19:15:00+00:00,0 +2020-12-15 19:16:00+00:00,0 +2020-12-15 19:37:00+00:00,0 +2020-12-15 19:49:00+00:00,0 +2020-12-15 19:52:00+00:00,0 +2020-12-15 19:54:00+00:00,0 +2020-12-15 19:55:00+00:00,0 +2020-12-15 20:03:00+00:00,0 +2020-12-15 20:05:00+00:00,0 +2020-12-15 20:07:00+00:00,0 +2020-12-15 20:08:00+00:00,0 +2020-12-15 20:14:00+00:00,0 +2020-12-15 20:17:00+00:00,0 +2020-12-15 20:18:00+00:00,0 +2020-12-15 20:39:00+00:00,0 +2020-12-15 20:41:00+00:00,0 +2020-12-15 20:43:00+00:00,0 +2020-12-15 20:44:00+00:00,0 +2020-12-15 20:45:00+00:00,0 +2020-12-15 20:46:00+00:00,0 +2020-12-15 20:47:00+00:00,0 +2020-12-15 20:48:00+00:00,0 +2020-12-15 20:49:00+00:00,0 +2020-12-15 20:50:00+00:00,0 +2020-12-15 20:51:00+00:00,0 +2020-12-15 20:52:00+00:00,0 +2020-12-15 20:53:00+00:00,0 +2020-12-15 20:54:00+00:00,0 +2020-12-15 20:55:00+00:00,0 +2020-12-15 20:56:00+00:00,0 +2020-12-15 20:57:00+00:00,0 +2020-12-15 20:58:00+00:00,0 +2020-12-15 20:59:00+00:00,0 +2020-12-15 21:00:00+00:00,0 +2020-12-15 21:01:00+00:00,0 +2020-12-15 21:02:00+00:00,0 +2020-12-15 21:03:00+00:00,0 +2020-12-15 21:04:00+00:00,0 +2020-12-15 21:05:00+00:00,0 +2020-12-15 21:06:00+00:00,0 +2020-12-15 21:07:00+00:00,0 +2020-12-15 21:08:00+00:00,0 +2020-12-15 21:09:00+00:00,0 +2020-12-15 21:10:00+00:00,0 +2020-12-15 21:11:00+00:00,0 +2020-12-15 21:12:00+00:00,0 +2020-12-15 21:13:00+00:00,0 +2020-12-15 21:14:00+00:00,0 +2020-12-15 21:15:00+00:00,0 +2020-12-15 21:16:00+00:00,0 +2020-12-15 21:17:00+00:00,0 +2020-12-15 21:18:00+00:00,0 +2020-12-15 21:19:00+00:00,0 +2020-12-15 21:20:00+00:00,0 +2020-12-15 21:21:00+00:00,0 +2020-12-15 21:22:00+00:00,0 +2020-12-15 21:23:00+00:00,0 +2020-12-15 21:24:00+00:00,0 +2020-12-15 21:25:00+00:00,0 +2020-12-15 21:26:00+00:00,0 +2020-12-15 21:27:00+00:00,0 +2020-12-15 21:28:00+00:00,0 +2020-12-15 21:29:00+00:00,0 +2020-12-15 21:30:00+00:00,0 +2020-12-15 21:31:00+00:00,0 +2020-12-15 21:32:00+00:00,0 +2020-12-15 21:33:00+00:00,0 +2020-12-15 21:34:00+00:00,0 +2020-12-15 21:35:00+00:00,0 +2020-12-15 21:36:00+00:00,0 +2020-12-15 21:37:00+00:00,0 +2020-12-15 21:38:00+00:00,0 +2020-12-15 21:39:00+00:00,0 +2020-12-15 21:40:00+00:00,0 +2020-12-15 21:41:00+00:00,0 +2020-12-15 21:42:00+00:00,0 +2020-12-15 21:43:00+00:00,0 +2020-12-15 21:44:00+00:00,0 +2020-12-15 21:45:00+00:00,0 +2020-12-15 21:46:00+00:00,0 +2020-12-15 21:47:00+00:00,0 +2020-12-15 21:48:00+00:00,0 +2020-12-15 21:49:00+00:00,0 +2020-12-15 21:50:00+00:00,0 +2020-12-15 21:51:00+00:00,0 +2020-12-15 21:52:00+00:00,0 +2020-12-15 21:53:00+00:00,0 +2020-12-15 21:54:00+00:00,0 +2020-12-15 21:55:00+00:00,0 +2020-12-15 21:56:00+00:00,0 +2020-12-15 21:57:00+00:00,0 +2020-12-15 21:58:00+00:00,0 +2020-12-15 21:59:00+00:00,0 +2020-12-15 22:00:00+00:00,0 +2020-12-15 22:01:00+00:00,0 +2020-12-15 22:02:00+00:00,0 +2020-12-15 22:03:00+00:00,0 +2020-12-15 22:04:00+00:00,0 +2020-12-15 22:05:00+00:00,0 +2020-12-15 22:06:00+00:00,0 +2020-12-15 22:07:00+00:00,0 +2020-12-15 22:08:00+00:00,0 +2020-12-15 22:09:00+00:00,0 +2020-12-15 22:10:00+00:00,0 +2020-12-15 22:11:00+00:00,0 +2020-12-15 22:12:00+00:00,0 +2020-12-15 22:13:00+00:00,0 +2020-12-15 22:14:00+00:00,0 +2020-12-15 22:15:00+00:00,0 +2020-12-15 22:16:00+00:00,0 +2020-12-15 22:17:00+00:00,0 +2020-12-15 22:18:00+00:00,0 +2020-12-15 22:19:00+00:00,0 +2020-12-15 22:20:00+00:00,0 +2020-12-15 22:21:00+00:00,0 +2020-12-15 22:22:00+00:00,0 +2020-12-15 22:23:00+00:00,0 +2020-12-15 22:24:00+00:00,0 +2020-12-15 22:25:00+00:00,0 +2020-12-15 22:26:00+00:00,0 +2020-12-15 22:27:00+00:00,0 +2020-12-15 22:28:00+00:00,0 +2020-12-15 22:29:00+00:00,0 +2020-12-15 22:30:00+00:00,0 +2020-12-15 22:31:00+00:00,0 +2020-12-15 22:32:00+00:00,0 +2020-12-15 22:33:00+00:00,0 +2020-12-15 22:34:00+00:00,0 +2020-12-15 22:35:00+00:00,0 +2020-12-15 22:36:00+00:00,0 +2020-12-15 22:37:00+00:00,0 +2020-12-15 22:38:00+00:00,0 +2020-12-15 22:39:00+00:00,0 +2020-12-15 22:40:00+00:00,0 +2020-12-15 22:41:00+00:00,0 +2020-12-15 22:42:00+00:00,0 +2020-12-15 22:43:00+00:00,0 +2020-12-15 22:44:00+00:00,0 +2020-12-15 22:45:00+00:00,0 +2020-12-15 22:46:00+00:00,0 +2020-12-15 22:47:00+00:00,0 +2020-12-15 22:48:00+00:00,0 +2020-12-15 22:49:00+00:00,0 +2020-12-15 22:50:00+00:00,0 +2020-12-15 22:51:00+00:00,0 +2020-12-15 22:52:00+00:00,0 +2020-12-15 22:53:00+00:00,0 +2020-12-15 22:54:00+00:00,0 +2020-12-15 22:55:00+00:00,0 +2020-12-15 22:56:00+00:00,0 +2020-12-15 22:57:00+00:00,0 +2020-12-15 22:58:00+00:00,0 +2020-12-15 22:59:00+00:00,0 +2020-12-15 23:00:00+00:00,0 +2020-12-15 23:01:00+00:00,0 +2020-12-15 23:02:00+00:00,0 +2020-12-15 23:03:00+00:00,0 +2020-12-15 23:04:00+00:00,0 +2020-12-15 23:05:00+00:00,0 +2020-12-15 23:06:00+00:00,0 +2020-12-15 23:07:00+00:00,0 +2020-12-15 23:08:00+00:00,0 +2020-12-15 23:09:00+00:00,0 +2020-12-15 23:10:00+00:00,0 +2020-12-15 23:11:00+00:00,0 +2020-12-15 23:12:00+00:00,0 +2020-12-15 23:13:00+00:00,0 +2020-12-15 23:14:00+00:00,0 +2020-12-15 23:15:00+00:00,0 +2020-12-15 23:16:00+00:00,0 +2020-12-15 23:17:00+00:00,0 +2020-12-15 23:18:00+00:00,0 +2020-12-15 23:19:00+00:00,0 +2020-12-15 23:20:00+00:00,0 +2020-12-15 23:21:00+00:00,0 +2020-12-15 23:22:00+00:00,0 +2020-12-15 23:23:00+00:00,0 +2020-12-15 23:24:00+00:00,0 +2020-12-15 23:25:00+00:00,0 +2020-12-15 23:26:00+00:00,0 +2020-12-15 23:27:00+00:00,0 +2020-12-15 23:28:00+00:00,0 +2020-12-15 23:29:00+00:00,0 +2020-12-15 23:30:00+00:00,0 +2020-12-15 23:31:00+00:00,0 +2020-12-15 23:32:00+00:00,0 +2020-12-15 23:33:00+00:00,0 +2020-12-15 23:34:00+00:00,0 +2020-12-15 23:35:00+00:00,0 +2020-12-15 23:36:00+00:00,0 +2020-12-15 23:37:00+00:00,0 +2020-12-15 23:38:00+00:00,0 +2020-12-15 23:39:00+00:00,0 +2020-12-15 23:40:00+00:00,0 +2020-12-15 23:41:00+00:00,0 +2020-12-15 23:42:00+00:00,0 +2020-12-15 23:43:00+00:00,0 +2020-12-15 23:44:00+00:00,0 +2020-12-15 23:45:00+00:00,0 +2020-12-15 23:46:00+00:00,0 +2020-12-15 23:47:00+00:00,0 +2020-12-15 23:48:00+00:00,0 +2020-12-15 23:49:00+00:00,0 +2020-12-15 23:50:00+00:00,0 +2020-12-15 23:51:00+00:00,0 +2020-12-15 23:52:00+00:00,0 +2020-12-15 23:53:00+00:00,0 +2020-12-15 23:54:00+00:00,0 +2020-12-15 23:55:00+00:00,0 +2020-12-15 23:56:00+00:00,0 +2020-12-15 23:57:00+00:00,0 +2020-12-15 23:58:00+00:00,0 +2020-12-15 23:59:00+00:00,0 +2020-12-16 00:00:00+00:00,0 +2020-12-16 00:01:00+00:00,0 +2020-12-16 00:02:00+00:00,0 +2020-12-16 00:03:00+00:00,0 +2020-12-16 00:04:00+00:00,0 +2020-12-16 00:05:00+00:00,0 +2020-12-16 00:06:00+00:00,0 +2020-12-16 00:07:00+00:00,0 +2020-12-16 00:08:00+00:00,0 +2020-12-16 00:09:00+00:00,0 +2020-12-16 00:10:00+00:00,0 +2020-12-16 00:11:00+00:00,0 +2020-12-16 00:12:00+00:00,0 +2020-12-16 00:13:00+00:00,0 +2020-12-16 00:14:00+00:00,0 +2020-12-16 00:15:00+00:00,0 +2020-12-16 00:16:00+00:00,0 +2020-12-16 00:17:00+00:00,0 +2020-12-16 00:18:00+00:00,0 +2020-12-16 00:19:00+00:00,0 +2020-12-16 00:20:00+00:00,0 +2020-12-16 00:21:00+00:00,0 +2020-12-16 00:22:00+00:00,0 +2020-12-16 00:23:00+00:00,0 +2020-12-16 00:24:00+00:00,0 +2020-12-16 00:25:00+00:00,0 +2020-12-16 00:26:00+00:00,0 +2020-12-16 00:27:00+00:00,0 +2020-12-16 00:28:00+00:00,0 +2020-12-16 00:29:00+00:00,0 +2020-12-16 00:30:00+00:00,0 +2020-12-16 00:31:00+00:00,0 +2020-12-16 00:32:00+00:00,0 +2020-12-16 00:33:00+00:00,0 +2020-12-16 00:34:00+00:00,0 +2020-12-16 00:35:00+00:00,0 +2020-12-16 00:36:00+00:00,0 +2020-12-16 00:37:00+00:00,0 +2020-12-16 00:38:00+00:00,0 +2020-12-16 00:39:00+00:00,0 +2020-12-16 00:40:00+00:00,0 +2020-12-16 00:41:00+00:00,0 +2020-12-16 00:42:00+00:00,0 +2020-12-16 00:43:00+00:00,0 +2020-12-16 00:44:00+00:00,0 +2020-12-16 00:45:00+00:00,0 +2020-12-16 00:46:00+00:00,0 +2020-12-16 00:47:00+00:00,0 +2020-12-16 00:48:00+00:00,0 +2020-12-16 00:49:00+00:00,0 +2020-12-16 00:50:00+00:00,0 +2020-12-16 00:51:00+00:00,0 +2020-12-16 00:52:00+00:00,0 +2020-12-16 00:53:00+00:00,0 +2020-12-16 00:54:00+00:00,0 +2020-12-16 00:55:00+00:00,0 +2020-12-16 00:56:00+00:00,0 +2020-12-16 00:57:00+00:00,0 +2020-12-16 00:58:00+00:00,0 +2020-12-16 00:59:00+00:00,0 +2020-12-16 01:00:00+00:00,0 +2020-12-16 01:01:00+00:00,0 +2020-12-16 01:02:00+00:00,0 +2020-12-16 01:03:00+00:00,0 +2020-12-16 01:04:00+00:00,0 +2020-12-16 01:05:00+00:00,0 +2020-12-16 01:06:00+00:00,0 +2020-12-16 01:07:00+00:00,0 +2020-12-16 01:08:00+00:00,0 +2020-12-16 01:09:00+00:00,0 +2020-12-16 01:10:00+00:00,0 +2020-12-16 01:11:00+00:00,0 +2020-12-16 01:12:00+00:00,0 +2020-12-16 01:13:00+00:00,0 +2020-12-16 01:14:00+00:00,0 +2020-12-16 01:15:00+00:00,0 +2020-12-16 01:16:00+00:00,0 +2020-12-16 01:17:00+00:00,0 +2020-12-16 01:18:00+00:00,0 +2020-12-16 01:19:00+00:00,0 +2020-12-16 01:20:00+00:00,0 +2020-12-16 01:21:00+00:00,0 +2020-12-16 01:22:00+00:00,0 +2020-12-16 01:23:00+00:00,0 +2020-12-16 01:24:00+00:00,0 +2020-12-16 01:25:00+00:00,0 +2020-12-16 01:26:00+00:00,0 +2020-12-16 01:27:00+00:00,0 +2020-12-16 01:28:00+00:00,0 +2020-12-16 01:29:00+00:00,0 +2020-12-16 01:30:00+00:00,0 +2020-12-16 01:31:00+00:00,0 +2020-12-16 01:32:00+00:00,0 +2020-12-16 01:33:00+00:00,0 +2020-12-16 01:34:00+00:00,0 +2020-12-16 01:35:00+00:00,0 +2020-12-16 01:36:00+00:00,0 +2020-12-16 01:37:00+00:00,0 +2020-12-16 01:38:00+00:00,0 +2020-12-16 01:39:00+00:00,0 +2020-12-16 01:40:00+00:00,0 +2020-12-16 01:41:00+00:00,0 +2020-12-16 01:42:00+00:00,0 +2020-12-16 01:43:00+00:00,0 +2020-12-16 01:44:00+00:00,0 +2020-12-16 01:45:00+00:00,0 +2020-12-16 01:46:00+00:00,0 +2020-12-16 01:47:00+00:00,0 +2020-12-16 01:48:00+00:00,0 +2020-12-16 01:49:00+00:00,0 +2020-12-16 01:50:00+00:00,0 +2020-12-16 01:51:00+00:00,0 +2020-12-16 01:52:00+00:00,0 +2020-12-16 01:53:00+00:00,0 +2020-12-16 01:54:00+00:00,0 +2020-12-16 01:55:00+00:00,0 +2020-12-16 01:56:00+00:00,0 +2020-12-16 01:57:00+00:00,0 +2020-12-16 01:58:00+00:00,0 +2020-12-16 01:59:00+00:00,0 +2020-12-16 02:00:00+00:00,0 +2020-12-16 02:01:00+00:00,0 +2020-12-16 02:02:00+00:00,0 +2020-12-16 02:03:00+00:00,0 +2020-12-16 02:04:00+00:00,0 +2020-12-16 02:05:00+00:00,0 +2020-12-16 02:06:00+00:00,0 +2020-12-16 02:07:00+00:00,0 +2020-12-16 02:08:00+00:00,0 +2020-12-16 02:09:00+00:00,0 +2020-12-16 02:10:00+00:00,0 +2020-12-16 02:11:00+00:00,0 +2020-12-16 02:12:00+00:00,0 +2020-12-16 02:13:00+00:00,0 +2020-12-16 02:14:00+00:00,0 +2020-12-16 02:15:00+00:00,0 +2020-12-16 02:16:00+00:00,0 +2020-12-16 02:17:00+00:00,0 +2020-12-16 02:18:00+00:00,0 +2020-12-16 02:19:00+00:00,0 +2020-12-16 02:20:00+00:00,0 +2020-12-16 02:21:00+00:00,0 +2020-12-16 02:22:00+00:00,0 +2020-12-16 02:23:00+00:00,0 +2020-12-16 02:24:00+00:00,0 +2020-12-16 02:25:00+00:00,0 +2020-12-16 02:26:00+00:00,0 +2020-12-16 02:27:00+00:00,0 +2020-12-16 02:28:00+00:00,0 +2020-12-16 02:29:00+00:00,0 +2020-12-16 02:30:00+00:00,0 +2020-12-16 02:31:00+00:00,0 +2020-12-16 02:32:00+00:00,0 +2020-12-16 02:33:00+00:00,0 +2020-12-16 02:34:00+00:00,0 +2020-12-16 02:35:00+00:00,0 +2020-12-16 02:36:00+00:00,0 +2020-12-16 02:37:00+00:00,0 +2020-12-16 02:38:00+00:00,0 +2020-12-16 02:39:00+00:00,0 +2020-12-16 02:40:00+00:00,0 +2020-12-16 02:41:00+00:00,0 +2020-12-16 02:42:00+00:00,0 +2020-12-16 02:43:00+00:00,0 +2020-12-16 02:44:00+00:00,0 +2020-12-16 02:45:00+00:00,0 +2020-12-16 02:46:00+00:00,0 +2020-12-16 02:47:00+00:00,0 +2020-12-16 02:48:00+00:00,0 +2020-12-16 02:49:00+00:00,0 +2020-12-16 02:50:00+00:00,0 +2020-12-16 02:51:00+00:00,0 +2020-12-16 02:52:00+00:00,0 +2020-12-16 02:53:00+00:00,0 +2020-12-16 02:54:00+00:00,0 +2020-12-16 02:55:00+00:00,0 +2020-12-16 02:56:00+00:00,0 +2020-12-16 02:57:00+00:00,0 +2020-12-16 02:58:00+00:00,0 +2020-12-16 02:59:00+00:00,0 +2020-12-16 03:00:00+00:00,0 +2020-12-16 03:01:00+00:00,0 +2020-12-16 03:02:00+00:00,0 +2020-12-16 03:03:00+00:00,0 +2020-12-16 03:04:00+00:00,0 +2020-12-16 03:05:00+00:00,0 +2020-12-16 03:06:00+00:00,0 +2020-12-16 03:07:00+00:00,0 +2020-12-16 03:08:00+00:00,0 +2020-12-16 03:09:00+00:00,0 +2020-12-16 03:10:00+00:00,0 +2020-12-16 03:11:00+00:00,0 +2020-12-16 03:12:00+00:00,0 +2020-12-16 03:13:00+00:00,0 +2020-12-16 03:14:00+00:00,0 +2020-12-16 03:15:00+00:00,0 +2020-12-16 03:16:00+00:00,0 +2020-12-16 03:17:00+00:00,0 +2020-12-16 03:18:00+00:00,0 +2020-12-16 03:19:00+00:00,0 +2020-12-16 03:20:00+00:00,0 +2020-12-16 03:21:00+00:00,0 +2020-12-16 03:22:00+00:00,0 +2020-12-16 03:23:00+00:00,0 +2020-12-16 03:24:00+00:00,0 +2020-12-16 03:25:00+00:00,0 +2020-12-16 03:26:00+00:00,0 +2020-12-16 03:27:00+00:00,0 +2020-12-16 03:28:00+00:00,0 +2020-12-16 03:29:00+00:00,0 +2020-12-16 03:30:00+00:00,0 +2020-12-16 03:31:00+00:00,0 +2020-12-16 03:32:00+00:00,0 +2020-12-16 03:33:00+00:00,0 +2020-12-16 03:34:00+00:00,0 +2020-12-16 03:35:00+00:00,0 +2020-12-16 03:36:00+00:00,0 +2020-12-16 03:37:00+00:00,0 +2020-12-16 03:38:00+00:00,0 +2020-12-16 03:39:00+00:00,0 +2020-12-16 03:40:00+00:00,0 +2020-12-16 03:41:00+00:00,0 +2020-12-16 03:42:00+00:00,0 +2020-12-16 03:43:00+00:00,0 +2020-12-16 03:44:00+00:00,0 +2020-12-16 03:45:00+00:00,0 +2020-12-16 03:46:00+00:00,0 +2020-12-16 03:47:00+00:00,0 +2020-12-16 03:48:00+00:00,0 +2020-12-16 03:49:00+00:00,0 +2020-12-16 03:50:00+00:00,0 +2020-12-16 03:51:00+00:00,0 +2020-12-16 03:52:00+00:00,0 +2020-12-16 03:53:00+00:00,0 +2020-12-16 03:54:00+00:00,0 +2020-12-16 03:55:00+00:00,0 +2020-12-16 03:56:00+00:00,0 +2020-12-16 03:57:00+00:00,0 +2020-12-16 03:58:00+00:00,0 +2020-12-16 03:59:00+00:00,0 +2020-12-16 04:00:00+00:00,0 +2020-12-16 04:01:00+00:00,0 +2020-12-16 04:02:00+00:00,0 +2020-12-16 04:03:00+00:00,0 +2020-12-16 04:04:00+00:00,0 +2020-12-16 04:05:00+00:00,0 +2020-12-16 04:06:00+00:00,0 +2020-12-16 04:07:00+00:00,0 +2020-12-16 04:08:00+00:00,0 +2020-12-16 04:09:00+00:00,0 +2020-12-16 04:10:00+00:00,0 +2020-12-16 04:11:00+00:00,0 +2020-12-16 04:12:00+00:00,0 +2020-12-16 04:13:00+00:00,0 +2020-12-16 04:14:00+00:00,0 +2020-12-16 04:15:00+00:00,0 +2020-12-16 04:16:00+00:00,0 +2020-12-16 04:17:00+00:00,0 +2020-12-16 04:18:00+00:00,0 +2020-12-16 04:19:00+00:00,0 +2020-12-16 04:20:00+00:00,0 +2020-12-16 04:21:00+00:00,0 +2020-12-16 04:22:00+00:00,0 +2020-12-16 04:23:00+00:00,0 +2020-12-16 04:24:00+00:00,0 +2020-12-16 04:25:00+00:00,0 +2020-12-16 04:26:00+00:00,0 +2020-12-16 04:27:00+00:00,0 +2020-12-16 04:28:00+00:00,0 +2020-12-16 04:29:00+00:00,0 +2020-12-16 04:30:00+00:00,0 +2020-12-16 04:31:00+00:00,0 +2020-12-16 04:32:00+00:00,0 +2020-12-16 04:33:00+00:00,0 +2020-12-16 04:34:00+00:00,0 +2020-12-16 04:35:00+00:00,0 +2020-12-16 04:36:00+00:00,0 +2020-12-16 04:37:00+00:00,0 +2020-12-16 04:38:00+00:00,0 +2020-12-16 04:39:00+00:00,0 +2020-12-16 04:40:00+00:00,0 +2020-12-16 04:41:00+00:00,0 +2020-12-16 04:42:00+00:00,0 +2020-12-16 04:43:00+00:00,0 +2020-12-16 04:44:00+00:00,0 +2020-12-16 04:45:00+00:00,0 +2020-12-16 04:46:00+00:00,0 +2020-12-16 04:47:00+00:00,0 +2020-12-16 04:48:00+00:00,0 +2020-12-16 04:49:00+00:00,0 +2020-12-16 04:50:00+00:00,0 +2020-12-16 04:51:00+00:00,0 +2020-12-16 04:52:00+00:00,0 +2020-12-16 04:53:00+00:00,0 +2020-12-16 04:54:00+00:00,0 +2020-12-16 04:55:00+00:00,0 +2020-12-16 04:56:00+00:00,0 +2020-12-16 04:57:00+00:00,0 +2020-12-16 04:58:00+00:00,0 +2020-12-16 04:59:00+00:00,0 +2020-12-16 05:00:00+00:00,0 +2020-12-16 05:01:00+00:00,0 +2020-12-16 05:02:00+00:00,0 +2020-12-16 05:03:00+00:00,0 +2020-12-16 05:04:00+00:00,0 +2020-12-16 05:05:00+00:00,0 +2020-12-16 05:06:00+00:00,0 +2020-12-16 05:07:00+00:00,0 +2020-12-16 05:08:00+00:00,0 +2020-12-16 05:09:00+00:00,0 +2020-12-16 05:10:00+00:00,0 +2020-12-16 05:11:00+00:00,0 +2020-12-16 05:12:00+00:00,0 +2020-12-16 05:13:00+00:00,0 +2020-12-16 05:14:00+00:00,0 +2020-12-16 05:15:00+00:00,0 +2020-12-16 05:16:00+00:00,0 +2020-12-16 05:17:00+00:00,0 +2020-12-16 05:18:00+00:00,0 +2020-12-16 05:19:00+00:00,0 +2020-12-16 05:20:00+00:00,0 +2020-12-16 05:21:00+00:00,0 +2020-12-16 05:22:00+00:00,0 +2020-12-16 05:23:00+00:00,0 +2020-12-16 05:24:00+00:00,0 +2020-12-16 05:25:00+00:00,0 +2020-12-16 05:26:00+00:00,0 +2020-12-16 05:27:00+00:00,0 +2020-12-16 05:28:00+00:00,0 +2020-12-16 05:29:00+00:00,0 +2020-12-16 05:30:00+00:00,0 +2020-12-16 05:31:00+00:00,0 +2020-12-16 05:32:00+00:00,0 +2020-12-16 05:33:00+00:00,0 +2020-12-16 05:34:00+00:00,0 +2020-12-16 05:35:00+00:00,0 +2020-12-16 05:36:00+00:00,0 +2020-12-16 05:37:00+00:00,0 +2020-12-16 05:38:00+00:00,0 +2020-12-16 05:39:00+00:00,0 +2020-12-16 05:40:00+00:00,0 +2020-12-16 05:41:00+00:00,0 +2020-12-16 05:42:00+00:00,0 +2020-12-16 05:43:00+00:00,0 +2020-12-16 05:44:00+00:00,0 +2020-12-16 05:45:00+00:00,0 +2020-12-16 05:46:00+00:00,0 +2020-12-16 05:47:00+00:00,0 +2020-12-16 05:48:00+00:00,0 +2020-12-16 05:49:00+00:00,0 +2020-12-16 05:50:00+00:00,0 +2020-12-16 05:51:00+00:00,0 +2020-12-16 05:52:00+00:00,0 +2020-12-16 05:53:00+00:00,0 +2020-12-16 05:54:00+00:00,0 +2020-12-16 05:55:00+00:00,0 +2020-12-16 05:56:00+00:00,0 +2020-12-16 05:57:00+00:00,0 +2020-12-16 05:58:00+00:00,0 +2020-12-16 05:59:00+00:00,0 +2020-12-16 06:00:00+00:00,0 +2020-12-16 06:01:00+00:00,0 +2020-12-16 06:02:00+00:00,0 +2020-12-16 06:03:00+00:00,0 +2020-12-16 06:04:00+00:00,0 +2020-12-16 06:05:00+00:00,0 +2020-12-16 06:06:00+00:00,0 +2020-12-16 06:07:00+00:00,0 +2020-12-16 06:08:00+00:00,0 +2020-12-16 06:09:00+00:00,0 +2020-12-16 06:10:00+00:00,0 +2020-12-16 06:11:00+00:00,0 +2020-12-16 06:12:00+00:00,0 +2020-12-16 06:13:00+00:00,0 +2020-12-16 06:14:00+00:00,0 +2020-12-16 06:15:00+00:00,0 +2020-12-16 06:16:00+00:00,0 +2020-12-16 06:17:00+00:00,0 +2020-12-16 06:18:00+00:00,0 +2020-12-16 06:19:00+00:00,0 +2020-12-16 06:20:00+00:00,0 +2020-12-16 06:21:00+00:00,0 +2020-12-16 06:22:00+00:00,0 +2020-12-16 06:23:00+00:00,0 +2020-12-16 06:24:00+00:00,0 +2020-12-16 06:25:00+00:00,0 +2020-12-16 06:26:00+00:00,0 +2020-12-16 06:27:00+00:00,0 +2020-12-16 06:28:00+00:00,0 +2020-12-16 06:29:00+00:00,0 +2020-12-16 06:30:00+00:00,0 +2020-12-16 06:31:00+00:00,0 +2020-12-16 06:32:00+00:00,0 +2020-12-16 06:33:00+00:00,0 +2020-12-16 06:34:00+00:00,0 +2020-12-16 06:35:00+00:00,0 +2020-12-16 06:36:00+00:00,0 +2020-12-16 06:37:00+00:00,0 +2020-12-16 06:38:00+00:00,0 +2020-12-16 06:39:00+00:00,0 +2020-12-16 06:40:00+00:00,0 +2020-12-16 06:41:00+00:00,0 +2020-12-16 06:42:00+00:00,0 +2020-12-16 06:43:00+00:00,0 +2020-12-16 06:44:00+00:00,0 +2020-12-16 06:45:00+00:00,0 +2020-12-16 06:46:00+00:00,0 +2020-12-16 06:47:00+00:00,0 +2020-12-16 06:48:00+00:00,0 +2020-12-16 06:49:00+00:00,0 +2020-12-16 06:50:00+00:00,0 +2020-12-16 06:51:00+00:00,0 +2020-12-16 06:52:00+00:00,0 +2020-12-16 06:53:00+00:00,0 +2020-12-16 06:54:00+00:00,0 +2020-12-16 06:55:00+00:00,0 +2020-12-16 06:56:00+00:00,0 +2020-12-16 06:57:00+00:00,0 +2020-12-16 06:58:00+00:00,0 +2020-12-16 06:59:00+00:00,0 +2020-12-16 07:00:00+00:00,0 +2020-12-16 07:01:00+00:00,0 +2020-12-16 07:02:00+00:00,0 +2020-12-16 07:03:00+00:00,0 +2020-12-16 07:04:00+00:00,0 +2020-12-16 07:05:00+00:00,0 +2020-12-16 07:06:00+00:00,0 +2020-12-16 07:07:00+00:00,0 +2020-12-16 07:08:00+00:00,0 +2020-12-16 07:09:00+00:00,0 +2020-12-16 07:10:00+00:00,0 +2020-12-16 07:11:00+00:00,0 +2020-12-16 07:12:00+00:00,0 +2020-12-16 07:13:00+00:00,0 +2020-12-16 07:14:00+00:00,0 +2020-12-16 07:15:00+00:00,0 +2020-12-16 07:16:00+00:00,0 +2020-12-16 07:17:00+00:00,0 +2020-12-16 07:18:00+00:00,0 +2020-12-16 07:19:00+00:00,0 +2020-12-16 07:20:00+00:00,0 +2020-12-16 07:21:00+00:00,0 +2020-12-16 07:22:00+00:00,0 +2020-12-16 07:23:00+00:00,0 +2020-12-16 07:24:00+00:00,0 +2020-12-16 07:25:00+00:00,0 +2020-12-16 07:26:00+00:00,0 +2020-12-16 07:27:00+00:00,0 +2020-12-16 07:28:00+00:00,0 +2020-12-16 07:29:00+00:00,0 +2020-12-16 07:30:00+00:00,0 +2020-12-16 07:31:00+00:00,0 +2020-12-16 07:32:00+00:00,0 +2020-12-16 07:33:00+00:00,0 +2020-12-16 07:34:00+00:00,0 +2020-12-16 07:35:00+00:00,0 +2020-12-16 07:36:00+00:00,0 +2020-12-16 07:37:00+00:00,0 +2020-12-16 07:38:00+00:00,0 +2020-12-16 07:39:00+00:00,0 +2020-12-16 07:40:00+00:00,0 +2020-12-16 07:41:00+00:00,0 +2020-12-16 07:42:00+00:00,0 +2020-12-16 07:43:00+00:00,0 +2020-12-16 07:44:00+00:00,0 +2020-12-16 07:45:00+00:00,0 +2020-12-16 07:46:00+00:00,0 +2020-12-16 07:47:00+00:00,0 +2020-12-16 07:48:00+00:00,0 +2020-12-16 07:49:00+00:00,0 +2020-12-16 07:50:00+00:00,0 +2020-12-16 07:51:00+00:00,0 +2020-12-16 07:52:00+00:00,0 +2020-12-16 07:53:00+00:00,0 +2020-12-16 07:54:00+00:00,0 +2020-12-16 07:55:00+00:00,0 +2020-12-16 07:56:00+00:00,0 +2020-12-16 07:57:00+00:00,0 +2020-12-16 07:58:00+00:00,0 +2020-12-16 07:59:00+00:00,0 +2020-12-16 08:00:00+00:00,0 +2020-12-16 08:01:00+00:00,0 +2020-12-16 08:02:00+00:00,0 +2020-12-16 08:03:00+00:00,0 +2020-12-16 08:04:00+00:00,0 +2020-12-16 08:05:00+00:00,0 +2020-12-16 08:06:00+00:00,0 +2020-12-16 08:07:00+00:00,0 +2020-12-16 08:08:00+00:00,0 +2020-12-16 08:09:00+00:00,0 +2020-12-16 08:10:00+00:00,0 +2020-12-16 08:11:00+00:00,0 +2020-12-16 08:12:00+00:00,0 +2020-12-16 08:13:00+00:00,0 +2020-12-16 08:14:00+00:00,0 +2020-12-16 08:15:00+00:00,0 +2020-12-16 08:16:00+00:00,0 +2020-12-16 08:17:00+00:00,0 +2020-12-16 08:18:00+00:00,0 +2020-12-16 08:19:00+00:00,0 +2020-12-16 08:20:00+00:00,0 +2020-12-16 08:21:00+00:00,0 +2020-12-16 08:22:00+00:00,0 +2020-12-16 08:23:00+00:00,0 +2020-12-16 08:24:00+00:00,0 +2020-12-16 08:25:00+00:00,0 +2020-12-16 08:26:00+00:00,0 +2020-12-16 08:27:00+00:00,0 +2020-12-16 08:28:00+00:00,0 +2020-12-16 08:29:00+00:00,0 +2020-12-16 08:30:00+00:00,0 +2020-12-16 08:31:00+00:00,0 +2020-12-16 08:32:00+00:00,0 +2020-12-16 08:33:00+00:00,0 +2020-12-16 08:34:00+00:00,0 +2020-12-16 08:35:00+00:00,0 +2020-12-16 08:36:00+00:00,0 +2020-12-16 08:37:00+00:00,0 +2020-12-16 08:38:00+00:00,0 +2020-12-16 08:39:00+00:00,0 +2020-12-16 08:40:00+00:00,0 +2020-12-16 08:41:00+00:00,0 +2020-12-16 08:42:00+00:00,0 +2020-12-16 08:43:00+00:00,0 +2020-12-16 08:44:00+00:00,0 +2020-12-16 08:45:00+00:00,0 +2020-12-16 08:46:00+00:00,0 +2020-12-16 08:47:00+00:00,0 +2020-12-16 08:48:00+00:00,0 +2020-12-16 08:49:00+00:00,0 +2020-12-16 08:50:00+00:00,0 +2020-12-16 08:51:00+00:00,0 +2020-12-16 08:52:00+00:00,0 +2020-12-16 08:53:00+00:00,0 +2020-12-16 08:54:00+00:00,0 +2020-12-16 08:55:00+00:00,0 +2020-12-16 08:56:00+00:00,0 +2020-12-16 08:57:00+00:00,0 +2020-12-16 08:58:00+00:00,0 +2020-12-16 08:59:00+00:00,0 +2020-12-16 09:00:00+00:00,0 +2020-12-16 09:01:00+00:00,0 +2020-12-16 09:02:00+00:00,0 +2020-12-16 09:03:00+00:00,0 +2020-12-16 09:04:00+00:00,0 +2020-12-16 09:05:00+00:00,0 +2020-12-16 09:06:00+00:00,0 +2020-12-16 09:07:00+00:00,0 +2020-12-16 09:08:00+00:00,0 +2020-12-16 09:09:00+00:00,0 +2020-12-16 09:10:00+00:00,0 +2020-12-16 09:11:00+00:00,0 +2020-12-16 09:12:00+00:00,0 +2020-12-16 09:13:00+00:00,0 +2020-12-16 09:14:00+00:00,0 +2020-12-16 09:15:00+00:00,0 +2020-12-16 09:16:00+00:00,0 +2020-12-16 09:17:00+00:00,0 +2020-12-16 09:18:00+00:00,0 +2020-12-16 09:19:00+00:00,0 +2020-12-16 09:20:00+00:00,0 +2020-12-16 09:21:00+00:00,0 +2020-12-16 09:22:00+00:00,0 +2020-12-16 09:23:00+00:00,0 +2020-12-16 09:24:00+00:00,0 +2020-12-16 09:25:00+00:00,0 +2020-12-16 09:26:00+00:00,0 +2020-12-16 09:27:00+00:00,0 +2020-12-16 09:28:00+00:00,0 +2020-12-16 09:29:00+00:00,0 +2020-12-16 09:30:00+00:00,0 +2020-12-16 09:31:00+00:00,0 +2020-12-16 09:32:00+00:00,0 +2020-12-16 09:33:00+00:00,0 +2020-12-16 09:34:00+00:00,0 +2020-12-16 09:35:00+00:00,0 +2020-12-16 09:36:00+00:00,0 +2020-12-16 09:37:00+00:00,0 +2020-12-16 09:38:00+00:00,0 +2020-12-16 09:39:00+00:00,0 +2020-12-16 09:40:00+00:00,0 +2020-12-16 09:41:00+00:00,0 +2020-12-16 09:42:00+00:00,0 +2020-12-16 09:43:00+00:00,0 +2020-12-16 09:44:00+00:00,0 +2020-12-16 09:45:00+00:00,0 +2020-12-16 09:46:00+00:00,0 +2020-12-16 09:47:00+00:00,0 +2020-12-16 09:48:00+00:00,0 +2020-12-16 09:49:00+00:00,0 +2020-12-16 09:50:00+00:00,0 +2020-12-16 09:51:00+00:00,0 +2020-12-16 09:52:00+00:00,0 +2020-12-16 09:53:00+00:00,0 +2020-12-16 09:54:00+00:00,0 +2020-12-16 09:55:00+00:00,0 +2020-12-16 09:56:00+00:00,0 +2020-12-16 09:57:00+00:00,0 +2020-12-16 09:58:00+00:00,0 +2020-12-16 09:59:00+00:00,0 +2020-12-16 10:00:00+00:00,0 +2020-12-16 10:01:00+00:00,0 +2020-12-16 10:02:00+00:00,0 +2020-12-16 10:03:00+00:00,0 +2020-12-16 10:04:00+00:00,0 +2020-12-16 10:05:00+00:00,0 +2020-12-16 10:06:00+00:00,0 +2020-12-16 10:07:00+00:00,0 +2020-12-16 10:08:00+00:00,0 +2020-12-16 10:09:00+00:00,0 +2020-12-16 10:10:00+00:00,0 +2020-12-16 10:11:00+00:00,0 +2020-12-16 10:12:00+00:00,0 +2020-12-16 10:13:00+00:00,0 +2020-12-16 10:14:00+00:00,0 +2020-12-16 10:15:00+00:00,0 +2020-12-16 10:16:00+00:00,0 +2020-12-16 10:17:00+00:00,0 +2020-12-16 10:18:00+00:00,0 +2020-12-16 10:19:00+00:00,0 +2020-12-16 10:20:00+00:00,0 +2020-12-16 10:21:00+00:00,0 +2020-12-16 10:22:00+00:00,0 +2020-12-16 10:23:00+00:00,0 +2020-12-16 10:24:00+00:00,0 +2020-12-16 10:25:00+00:00,0 +2020-12-16 10:26:00+00:00,0 +2020-12-16 10:27:00+00:00,0 +2020-12-16 10:28:00+00:00,0 +2020-12-16 10:29:00+00:00,0 +2020-12-16 10:30:00+00:00,0 +2020-12-16 10:31:00+00:00,0 +2020-12-16 10:32:00+00:00,0 +2020-12-16 10:33:00+00:00,0 +2020-12-16 10:34:00+00:00,0 +2020-12-16 10:35:00+00:00,0 +2020-12-16 10:36:00+00:00,0 +2020-12-16 10:37:00+00:00,0 +2020-12-16 10:38:00+00:00,0 +2020-12-16 10:39:00+00:00,0 +2020-12-16 10:40:00+00:00,0 +2020-12-16 10:41:00+00:00,0 +2020-12-16 10:42:00+00:00,0 +2020-12-16 10:43:00+00:00,0 +2020-12-16 10:44:00+00:00,0 +2020-12-16 10:45:00+00:00,0 +2020-12-16 10:46:00+00:00,0 +2020-12-16 10:47:00+00:00,0 +2020-12-16 10:48:00+00:00,0 +2020-12-16 10:49:00+00:00,0 +2020-12-16 10:50:00+00:00,0 +2020-12-16 10:51:00+00:00,0 +2020-12-16 10:52:00+00:00,0 +2020-12-16 10:53:00+00:00,0 +2020-12-16 10:54:00+00:00,0 +2020-12-16 10:55:00+00:00,0 +2020-12-16 10:56:00+00:00,0 +2020-12-16 10:57:00+00:00,0 +2020-12-16 10:58:00+00:00,0 +2020-12-16 10:59:00+00:00,0 +2020-12-16 11:00:00+00:00,0 +2020-12-16 11:01:00+00:00,0 +2020-12-16 11:02:00+00:00,0 +2020-12-16 11:03:00+00:00,0 +2020-12-16 11:04:00+00:00,0 +2020-12-16 11:05:00+00:00,0 +2020-12-16 11:06:00+00:00,0 +2020-12-16 11:07:00+00:00,0 +2020-12-16 11:08:00+00:00,0 +2020-12-16 11:09:00+00:00,0 +2020-12-16 11:10:00+00:00,0 +2020-12-16 11:11:00+00:00,0 +2020-12-16 11:12:00+00:00,0 +2020-12-16 11:13:00+00:00,0 +2020-12-16 11:14:00+00:00,0 +2020-12-16 11:15:00+00:00,0 +2020-12-16 11:16:00+00:00,0 +2020-12-16 11:17:00+00:00,0 +2020-12-16 11:18:00+00:00,0 +2020-12-16 11:19:00+00:00,0 +2020-12-16 11:20:00+00:00,0 +2020-12-16 11:21:00+00:00,0 +2020-12-16 11:22:00+00:00,0 +2020-12-16 11:23:00+00:00,0 +2020-12-16 11:24:00+00:00,0 +2020-12-16 11:25:00+00:00,0 +2020-12-16 11:26:00+00:00,0 +2020-12-16 11:27:00+00:00,0 +2020-12-16 11:28:00+00:00,0 +2020-12-16 11:29:00+00:00,0 +2020-12-16 11:30:00+00:00,0 +2020-12-16 11:31:00+00:00,0 +2020-12-16 11:32:00+00:00,0 +2020-12-16 11:33:00+00:00,0 +2020-12-16 11:34:00+00:00,0 +2020-12-16 11:35:00+00:00,0 +2020-12-16 11:36:00+00:00,0 +2020-12-16 11:37:00+00:00,0 +2020-12-16 11:38:00+00:00,0 +2020-12-16 11:39:00+00:00,0 +2020-12-16 11:40:00+00:00,0 +2020-12-16 11:41:00+00:00,0 +2020-12-16 11:42:00+00:00,0 +2020-12-16 11:43:00+00:00,0 +2020-12-16 11:44:00+00:00,0 +2020-12-16 11:45:00+00:00,0 +2020-12-16 11:46:00+00:00,0 +2020-12-16 11:47:00+00:00,0 +2020-12-16 11:48:00+00:00,0 +2020-12-16 11:49:00+00:00,0 +2020-12-16 11:50:00+00:00,0 +2020-12-16 11:51:00+00:00,0 +2020-12-16 11:52:00+00:00,0 diff --git a/.btoutput/app1:failure/models.pt b/.btoutput/app1:failure/models.pt new file mode 100644 index 0000000000000000000000000000000000000000..dadf2e8fd6bef566e7911a1c2e196eb3eb78626e GIT binary patch literal 16224 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 v|LS=|%&Whe9?u(iVF=2.0.0)", "pytest (>=7.0)", "pytest-cov", [[package]] name = "jupyterlab" -version = "4.0.5" +version = "4.0.6" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.0.5-py3-none-any.whl", hash = "sha256:13b3a326e7b95d72746fe20dbe80ee1e71165d6905e01ceaf1320eb809cb1b47"}, - {file = "jupyterlab-4.0.5.tar.gz", hash = "sha256:de49deb75f9b9aec478ed04754cbefe9c5d22fd796a5783cdc65e212983d3611"}, + {file = "jupyterlab-4.0.6-py3-none-any.whl", hash = "sha256:7d9dacad1e3f30fe4d6d4efc97fda25fbb5012012b8f27cc03a2283abcdee708"}, + {file = "jupyterlab-4.0.6.tar.gz", hash = "sha256:6c43ae5a6a1fd2fdfafcb3454004958bde6da76331abb44cffc6f9e436b19ba1"}, ] [package.dependencies] @@ -2179,8 +2180,8 @@ tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["black[jupyter] (==23.3.0)", "build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.0.271)"] -docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8)", "sphinx-copybutton"] +dev = ["black[jupyter] (==23.7.0)", "build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.0.286)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8,<7.2.0)", "sphinx-copybutton"] docs-screenshots = ["altair (==5.0.1)", "ipython (==8.14.0)", "ipywidgets (==8.0.6)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post0)", "matplotlib (==3.7.1)", "nbconvert (>=7.0.0)", "pandas (==2.0.2)", "scipy (==1.10.1)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] @@ -2425,6 +2426,16 @@ files = [ {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, @@ -2553,13 +2564,13 @@ files = [ [[package]] name = "mlflow-skinny" -version = "2.6.0" +version = "2.7.0" description = "MLflow: A Platform for ML Development and Productionization" optional = true python-versions = ">=3.8" files = [ - {file = "mlflow-skinny-2.6.0.tar.gz", hash = "sha256:c1a71bc4abb83169d4cff012c1c050c203775d4a7462d059c4523a481f0a9688"}, - {file = "mlflow_skinny-2.6.0-py3-none-any.whl", hash = "sha256:b63c6555645af0196b3c92da849968189dfd72d2c1397f7b149593db6b404d66"}, + {file = "mlflow-skinny-2.7.0.tar.gz", hash = "sha256:c4ce24817227219ac03f674bd3d0f371b274807e7e3845b3d46ba79ca86dad08"}, + {file = "mlflow_skinny-2.7.0-py3-none-any.whl", hash = "sha256:0dd3855b07bfce5f1bc403b6505e84f0e165780aba5d7edcca2024cff7ca7309"}, ] [package.dependencies] @@ -2580,7 +2591,7 @@ sqlparse = ">=0.4.0,<1" aliyun-oss = ["aliyunstoreplugin"] databricks = ["azure-storage-file-datalake (>12)", "boto3 (>1)", "google-cloud-storage (>=1.30.0)"] extras = ["azureml-core (>=1.2.0)", "boto3", "google-cloud-storage (>=1.30.0)", "kubernetes", "mlserver (>=1.2.0,!=1.3.1)", "mlserver-mlflow (>=1.2.0,!=1.3.1)", "prometheus-flask-exporter", "pyarrow", "pysftp", "requests-auth-aws-sigv4", "virtualenv"] -gateway = ["aiohttp (<4)", "fastapi (<1)", "psutil (<6)", "pydantic (>=1.0,<2)", "uvicorn[standard] (<1)", "watchfiles (<1)"] +gateway = ["aiohttp (<4)", "fastapi (<1)", "psutil (<6)", "pydantic (>=1.0,<3)", "uvicorn[standard] (<1)", "watchfiles (<1)"] sqlserver = ["mlflow-dbstore"] [[package]] @@ -3302,6 +3313,7 @@ files = [ {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3b08d4cc24f471b2c8ca24ec060abf4bebc6b144cb89cba638c720546b1cf538"}, {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737a602fbd82afd892ca746392401b634e278cb65d55c4b7a8f48e9ef8d008d"}, {file = "Pillow-10.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f"}, + {file = "Pillow-10.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:bc2ec7c7b5d66b8ec9ce9f720dbb5fa4bace0f545acd34870eff4a369b44bf37"}, {file = "Pillow-10.0.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:d80cf684b541685fccdd84c485b31ce73fc5c9b5d7523bf1394ce134a60c6883"}, {file = "Pillow-10.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76de421f9c326da8f43d690110f0e79fe3ad1e54be811545d7d91898b4c8493e"}, {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ff539a12457809666fef6624684c008e00ff6bf455b4b89fd00a140eecd640"}, @@ -3311,6 +3323,7 @@ files = [ {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d50b6aec14bc737742ca96e85d6d0a5f9bfbded018264b3b70ff9d8c33485551"}, {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:00e65f5e822decd501e374b0650146063fbb30a7264b4d2744bdd7b913e0cab5"}, {file = "Pillow-10.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:f31f9fdbfecb042d046f9d91270a0ba28368a723302786c0009ee9b9f1f60199"}, + {file = "Pillow-10.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:1ce91b6ec08d866b14413d3f0bbdea7e24dfdc8e59f562bb77bc3fe60b6144ca"}, {file = "Pillow-10.0.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:349930d6e9c685c089284b013478d6f76e3a534e36ddfa912cde493f235372f3"}, {file = "Pillow-10.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3a684105f7c32488f7153905a4e3015a3b6c7182e106fe3c37fbb5ef3e6994c3"}, {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4f69b3700201b80bb82c3a97d5e9254084f6dd5fb5b16fc1a7b974260f89f43"}, @@ -3779,6 +3792,7 @@ files = [ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, @@ -3786,8 +3800,15 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, @@ -3804,6 +3825,7 @@ files = [ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, @@ -3811,6 +3833,7 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, @@ -4982,4 +5005,4 @@ redis = ["redis"] [metadata] lock-version = "2.0" python-versions = ">=3.9, <3.12" -content-hash = "292d29c73f389c027915552f126fb3dc3ebeaca536ca7244ffa83d94841483a6" +content-hash = "abcfdf1c496915cc32f58d90aa82892c956789bc55c045a814481445ab3f4f65" diff --git a/pyproject.toml b/pyproject.toml index c709b900..c907e947 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ pynumaflow = "~0.4" # extras -mlflow-skinny = { version = "~2.6", optional = true } +mlflow-skinny = { version = "^2.0", optional = true } redis = {extras = ["hiredis"], version = "^5.0", optional = true} boto3 = { version = "^1.24.64", optional = true } pydruid = {version = "^0.6", optional = true} diff --git a/tests/registry/test_mlflow_registry.py b/tests/registry/test_mlflow_registry.py index e64fb9dc..dcf41c37 100644 --- a/tests/registry/test_mlflow_registry.py +++ b/tests/registry/test_mlflow_registry.py @@ -124,12 +124,15 @@ def test_load_model_when_pytorch_model_exist2(self): @patch("mlflow.tracking.MlflowClient.transition_model_version_stage", mock_transition_stage) @patch("mlflow.tracking.MlflowClient.get_latest_versions", mock_get_model_version) @patch("mlflow.tracking.MlflowClient.search_model_versions", mock_list_of_model_version2) - @patch("mlflow.sklearn.load_model", Mock(return_value=StandardScaler())) @patch("mlflow.tracking.MlflowClient.get_run", Mock(return_value=return_empty_rundata())) @patch.object( MLflowRegistry, "load", - Mock(return_value=ArtifactData(artifact=StandardScaler(), extras=None, metadata={})), + Mock( + return_value=ArtifactData( + artifact=StandardScaler(), extras={"metric": ["error"]}, metadata={} + ) + ), ) def test_load_model_when_sklearn_model_exist(self): ml = MLflowRegistry(TRACKING_URI) From 909a19a095bab771d9fea07e1d27eee69652fbb3 Mon Sep 17 00:00:00 2001 From: s0nicboOm Date: Thu, 14 Sep 2023 20:34:18 -0700 Subject: [PATCH 17/17] fix: remove unwanted files Signed-off-by: s0nicboOm --- .btoutput/app1:failure/data.csv | 1001 ------ .btoutput/app1:failure/models.pt | Bin 16224 -> 0 bytes .btoutput/app1:failure/output.csv | 251 -- .btoutput/app1:failure/plot.png | Bin 57426 -> 0 bytes .btoutput/failure/models.pt | Bin 16224 -> 0 bytes .btoutput/failure/output.csv | 5001 ----------------------------- 6 files changed, 6253 deletions(-) delete mode 100644 .btoutput/app1:failure/data.csv delete mode 100644 .btoutput/app1:failure/models.pt delete mode 100644 .btoutput/app1:failure/output.csv delete mode 100644 .btoutput/app1:failure/plot.png delete mode 100644 .btoutput/failure/models.pt delete mode 100644 .btoutput/failure/output.csv diff --git a/.btoutput/app1:failure/data.csv b/.btoutput/app1:failure/data.csv deleted file mode 100644 index 8262b213..00000000 --- a/.btoutput/app1:failure/data.csv +++ /dev/null @@ -1,1001 +0,0 @@ -timestamp,failure -2020-12-13 22:25:00+00:00,0 -2020-12-14 00:33:00+00:00,0 -2020-12-14 01:42:00+00:00,0 -2020-12-14 01:59:00+00:00,0 -2020-12-14 02:27:00+00:00,0 -2020-12-14 02:43:00+00:00,0 -2020-12-14 04:41:00+00:00,0 -2020-12-14 06:18:00+00:00,0 -2020-12-14 14:43:00+00:00,0 -2020-12-14 14:57:00+00:00,0 -2020-12-14 15:03:00+00:00,0 -2020-12-14 15:15:00+00:00,0 -2020-12-14 15:17:00+00:00,0 -2020-12-14 15:18:00+00:00,0 -2020-12-14 15:25:00+00:00,0 -2020-12-14 15:26:00+00:00,0 -2020-12-14 15:44:00+00:00,0 -2020-12-14 16:04:00+00:00,0 -2020-12-14 16:28:00+00:00,0 -2020-12-14 16:44:00+00:00,0 -2020-12-14 18:00:00+00:00,0 -2020-12-14 18:02:00+00:00,0 -2020-12-14 18:22:00+00:00,0 -2020-12-14 18:53:00+00:00,0 -2020-12-14 19:09:00+00:00,0 -2020-12-14 19:23:00+00:00,0 -2020-12-14 19:40:00+00:00,0 -2020-12-14 19:48:00+00:00,0 -2020-12-14 20:03:00+00:00,0 -2020-12-14 21:20:00+00:00,0 -2020-12-14 22:03:00+00:00,0 -2020-12-14 22:15:00+00:00,0 -2020-12-14 22:57:00+00:00,0 -2020-12-14 23:18:00+00:00,0 -2020-12-14 23:55:00+00:00,0 -2020-12-15 00:10:00+00:00,0 -2020-12-15 00:40:00+00:00,0 -2020-12-15 02:31:00+00:00,0 -2020-12-15 05:03:00+00:00,0 -2020-12-15 05:08:00+00:00,0 -2020-12-15 06:51:00+00:00,0 -2020-12-15 07:13:00+00:00,0 -2020-12-15 07:17:00+00:00,0 -2020-12-15 07:19:00+00:00,0 -2020-12-15 07:20:00+00:00,0 -2020-12-15 07:21:00+00:00,0 -2020-12-15 10:29:00+00:00,0 -2020-12-15 12:21:00+00:00,0 -2020-12-15 13:41:00+00:00,0 -2020-12-15 14:15:00+00:00,0 -2020-12-15 14:17:00+00:00,0 -2020-12-15 14:18:00+00:00,0 -2020-12-15 14:22:00+00:00,0 -2020-12-15 14:24:00+00:00,0 -2020-12-15 14:39:00+00:00,0 -2020-12-15 14:53:00+00:00,0 -2020-12-15 15:27:00+00:00,0 -2020-12-15 15:36:00+00:00,0 -2020-12-15 15:49:00+00:00,0 -2020-12-15 16:36:00+00:00,0 -2020-12-15 16:43:00+00:00,0 -2020-12-15 16:50:00+00:00,0 -2020-12-15 17:00:00+00:00,0 -2020-12-15 17:18:00+00:00,0 -2020-12-15 17:19:00+00:00,0 -2020-12-15 17:35:00+00:00,0 -2020-12-15 17:53:00+00:00,0 -2020-12-15 18:17:00+00:00,0 -2020-12-15 18:18:00+00:00,0 -2020-12-15 18:20:00+00:00,0 -2020-12-15 18:22:00+00:00,0 -2020-12-15 18:54:00+00:00,0 -2020-12-15 19:00:00+00:00,0 -2020-12-15 19:08:00+00:00,0 -2020-12-15 19:15:00+00:00,0 -2020-12-15 19:16:00+00:00,0 -2020-12-15 19:37:00+00:00,0 -2020-12-15 19:49:00+00:00,0 -2020-12-15 19:52:00+00:00,0 -2020-12-15 19:54:00+00:00,0 -2020-12-15 19:55:00+00:00,0 -2020-12-15 20:03:00+00:00,0 -2020-12-15 20:05:00+00:00,0 -2020-12-15 20:07:00+00:00,0 -2020-12-15 20:08:00+00:00,0 -2020-12-15 20:14:00+00:00,0 -2020-12-15 20:17:00+00:00,0 -2020-12-15 20:18:00+00:00,0 -2020-12-15 20:39:00+00:00,0 -2020-12-15 20:41:00+00:00,0 -2020-12-15 20:43:00+00:00,0 -2020-12-15 20:44:00+00:00,0 -2020-12-15 20:45:00+00:00,0 -2020-12-15 20:46:00+00:00,0 -2020-12-15 20:47:00+00:00,0 -2020-12-15 20:48:00+00:00,0 -2020-12-15 20:49:00+00:00,0 -2020-12-15 20:50:00+00:00,0 -2020-12-15 20:51:00+00:00,0 -2020-12-15 20:52:00+00:00,0 -2020-12-15 20:53:00+00:00,0 -2020-12-15 20:54:00+00:00,0 -2020-12-15 20:55:00+00:00,0 -2020-12-15 20:56:00+00:00,0 -2020-12-15 20:57:00+00:00,0 -2020-12-15 20:58:00+00:00,0 -2020-12-15 20:59:00+00:00,0 -2020-12-15 21:00:00+00:00,0 -2020-12-15 21:01:00+00:00,0 -2020-12-15 21:02:00+00:00,0 -2020-12-15 21:03:00+00:00,0 -2020-12-15 21:04:00+00:00,0 -2020-12-15 21:05:00+00:00,0 -2020-12-15 21:06:00+00:00,0 -2020-12-15 21:07:00+00:00,0 -2020-12-15 21:08:00+00:00,0 -2020-12-15 21:09:00+00:00,0 -2020-12-15 21:10:00+00:00,0 -2020-12-15 21:11:00+00:00,0 -2020-12-15 21:12:00+00:00,0 -2020-12-15 21:13:00+00:00,0 -2020-12-15 21:14:00+00:00,0 -2020-12-15 21:15:00+00:00,0 -2020-12-15 21:16:00+00:00,0 -2020-12-15 21:17:00+00:00,0 -2020-12-15 21:18:00+00:00,0 -2020-12-15 21:19:00+00:00,0 -2020-12-15 21:20:00+00:00,0 -2020-12-15 21:21:00+00:00,0 -2020-12-15 21:22:00+00:00,0 -2020-12-15 21:23:00+00:00,0 -2020-12-15 21:24:00+00:00,0 -2020-12-15 21:25:00+00:00,0 -2020-12-15 21:26:00+00:00,0 -2020-12-15 21:27:00+00:00,0 -2020-12-15 21:28:00+00:00,0 -2020-12-15 21:29:00+00:00,0 -2020-12-15 21:30:00+00:00,0 -2020-12-15 21:31:00+00:00,0 -2020-12-15 21:32:00+00:00,0 -2020-12-15 21:33:00+00:00,0 -2020-12-15 21:34:00+00:00,0 -2020-12-15 21:35:00+00:00,0 -2020-12-15 21:36:00+00:00,0 -2020-12-15 21:37:00+00:00,0 -2020-12-15 21:38:00+00:00,0 -2020-12-15 21:39:00+00:00,0 -2020-12-15 21:40:00+00:00,0 -2020-12-15 21:41:00+00:00,0 -2020-12-15 21:42:00+00:00,0 -2020-12-15 21:43:00+00:00,0 -2020-12-15 21:44:00+00:00,0 -2020-12-15 21:45:00+00:00,0 -2020-12-15 21:46:00+00:00,0 -2020-12-15 21:47:00+00:00,0 -2020-12-15 21:48:00+00:00,0 -2020-12-15 21:49:00+00:00,0 -2020-12-15 21:50:00+00:00,0 -2020-12-15 21:51:00+00:00,0 -2020-12-15 21:52:00+00:00,0 -2020-12-15 21:53:00+00:00,0 -2020-12-15 21:54:00+00:00,0 -2020-12-15 21:55:00+00:00,0 -2020-12-15 21:56:00+00:00,0 -2020-12-15 21:57:00+00:00,0 -2020-12-15 21:58:00+00:00,0 -2020-12-15 21:59:00+00:00,0 -2020-12-15 22:00:00+00:00,0 -2020-12-15 22:01:00+00:00,0 -2020-12-15 22:02:00+00:00,0 -2020-12-15 22:03:00+00:00,0 -2020-12-15 22:04:00+00:00,0 -2020-12-15 22:05:00+00:00,0 -2020-12-15 22:06:00+00:00,0 -2020-12-15 22:07:00+00:00,0 -2020-12-15 22:08:00+00:00,0 -2020-12-15 22:09:00+00:00,0 -2020-12-15 22:10:00+00:00,0 -2020-12-15 22:11:00+00:00,0 -2020-12-15 22:12:00+00:00,0 -2020-12-15 22:13:00+00:00,0 -2020-12-15 22:14:00+00:00,0 -2020-12-15 22:15:00+00:00,0 -2020-12-15 22:16:00+00:00,0 -2020-12-15 22:17:00+00:00,0 -2020-12-15 22:18:00+00:00,0 -2020-12-15 22:19:00+00:00,0 -2020-12-15 22:20:00+00:00,0 -2020-12-15 22:21:00+00:00,0 -2020-12-15 22:22:00+00:00,0 -2020-12-15 22:23:00+00:00,0 -2020-12-15 22:24:00+00:00,0 -2020-12-15 22:25:00+00:00,0 -2020-12-15 22:26:00+00:00,0 -2020-12-15 22:27:00+00:00,0 -2020-12-15 22:28:00+00:00,0 -2020-12-15 22:29:00+00:00,0 -2020-12-15 22:30:00+00:00,0 -2020-12-15 22:31:00+00:00,0 -2020-12-15 22:32:00+00:00,0 -2020-12-15 22:33:00+00:00,0 -2020-12-15 22:34:00+00:00,0 -2020-12-15 22:35:00+00:00,0 -2020-12-15 22:36:00+00:00,0 -2020-12-15 22:37:00+00:00,0 -2020-12-15 22:38:00+00:00,0 -2020-12-15 22:39:00+00:00,0 -2020-12-15 22:40:00+00:00,0 -2020-12-15 22:41:00+00:00,0 -2020-12-15 22:42:00+00:00,0 -2020-12-15 22:43:00+00:00,0 -2020-12-15 22:44:00+00:00,0 -2020-12-15 22:45:00+00:00,0 -2020-12-15 22:46:00+00:00,0 -2020-12-15 22:47:00+00:00,0 -2020-12-15 22:48:00+00:00,0 -2020-12-15 22:49:00+00:00,0 -2020-12-15 22:50:00+00:00,0 -2020-12-15 22:51:00+00:00,0 -2020-12-15 22:52:00+00:00,0 -2020-12-15 22:53:00+00:00,0 -2020-12-15 22:54:00+00:00,0 -2020-12-15 22:55:00+00:00,0 -2020-12-15 22:56:00+00:00,0 -2020-12-15 22:57:00+00:00,0 -2020-12-15 22:58:00+00:00,0 -2020-12-15 22:59:00+00:00,0 -2020-12-15 23:00:00+00:00,0 -2020-12-15 23:01:00+00:00,0 -2020-12-15 23:02:00+00:00,0 -2020-12-15 23:03:00+00:00,0 -2020-12-15 23:04:00+00:00,0 -2020-12-15 23:05:00+00:00,0 -2020-12-15 23:06:00+00:00,0 -2020-12-15 23:07:00+00:00,0 -2020-12-15 23:08:00+00:00,0 -2020-12-15 23:09:00+00:00,0 -2020-12-15 23:10:00+00:00,0 -2020-12-15 23:11:00+00:00,0 -2020-12-15 23:12:00+00:00,0 -2020-12-15 23:13:00+00:00,0 -2020-12-15 23:14:00+00:00,0 -2020-12-15 23:15:00+00:00,0 -2020-12-15 23:16:00+00:00,0 -2020-12-15 23:17:00+00:00,0 -2020-12-15 23:18:00+00:00,0 -2020-12-15 23:19:00+00:00,0 -2020-12-15 23:20:00+00:00,0 -2020-12-15 23:21:00+00:00,0 -2020-12-15 23:22:00+00:00,0 -2020-12-15 23:23:00+00:00,0 -2020-12-15 23:24:00+00:00,0 -2020-12-15 23:25:00+00:00,0 -2020-12-15 23:26:00+00:00,0 -2020-12-15 23:27:00+00:00,0 -2020-12-15 23:28:00+00:00,0 -2020-12-15 23:29:00+00:00,0 -2020-12-15 23:30:00+00:00,0 -2020-12-15 23:31:00+00:00,0 -2020-12-15 23:32:00+00:00,0 -2020-12-15 23:33:00+00:00,0 -2020-12-15 23:34:00+00:00,0 -2020-12-15 23:35:00+00:00,0 -2020-12-15 23:36:00+00:00,0 -2020-12-15 23:37:00+00:00,0 -2020-12-15 23:38:00+00:00,0 -2020-12-15 23:39:00+00:00,0 -2020-12-15 23:40:00+00:00,0 -2020-12-15 23:41:00+00:00,0 -2020-12-15 23:42:00+00:00,0 -2020-12-15 23:43:00+00:00,0 -2020-12-15 23:44:00+00:00,0 -2020-12-15 23:45:00+00:00,0 -2020-12-15 23:46:00+00:00,0 -2020-12-15 23:47:00+00:00,0 -2020-12-15 23:48:00+00:00,0 -2020-12-15 23:49:00+00:00,0 -2020-12-15 23:50:00+00:00,0 -2020-12-15 23:51:00+00:00,0 -2020-12-15 23:52:00+00:00,0 -2020-12-15 23:53:00+00:00,0 -2020-12-15 23:54:00+00:00,0 -2020-12-15 23:55:00+00:00,0 -2020-12-15 23:56:00+00:00,0 -2020-12-15 23:57:00+00:00,0 -2020-12-15 23:58:00+00:00,0 -2020-12-15 23:59:00+00:00,0 -2020-12-16 00:00:00+00:00,0 -2020-12-16 00:01:00+00:00,0 -2020-12-16 00:02:00+00:00,0 -2020-12-16 00:03:00+00:00,0 -2020-12-16 00:04:00+00:00,0 -2020-12-16 00:05:00+00:00,0 -2020-12-16 00:06:00+00:00,0 -2020-12-16 00:07:00+00:00,0 -2020-12-16 00:08:00+00:00,0 -2020-12-16 00:09:00+00:00,0 -2020-12-16 00:10:00+00:00,0 -2020-12-16 00:11:00+00:00,0 -2020-12-16 00:12:00+00:00,0 -2020-12-16 00:13:00+00:00,0 -2020-12-16 00:14:00+00:00,0 -2020-12-16 00:15:00+00:00,0 -2020-12-16 00:16:00+00:00,0 -2020-12-16 00:17:00+00:00,0 -2020-12-16 00:18:00+00:00,0 -2020-12-16 00:19:00+00:00,0 -2020-12-16 00:20:00+00:00,0 -2020-12-16 00:21:00+00:00,0 -2020-12-16 00:22:00+00:00,0 -2020-12-16 00:23:00+00:00,0 -2020-12-16 00:24:00+00:00,0 -2020-12-16 00:25:00+00:00,0 -2020-12-16 00:26:00+00:00,0 -2020-12-16 00:27:00+00:00,0 -2020-12-16 00:28:00+00:00,0 -2020-12-16 00:29:00+00:00,0 -2020-12-16 00:30:00+00:00,0 -2020-12-16 00:31:00+00:00,0 -2020-12-16 00:32:00+00:00,0 -2020-12-16 00:33:00+00:00,0 -2020-12-16 00:34:00+00:00,0 -2020-12-16 00:35:00+00:00,0 -2020-12-16 00:36:00+00:00,0 -2020-12-16 00:37:00+00:00,0 -2020-12-16 00:38:00+00:00,0 -2020-12-16 00:39:00+00:00,0 -2020-12-16 00:40:00+00:00,0 -2020-12-16 00:41:00+00:00,0 -2020-12-16 00:42:00+00:00,0 -2020-12-16 00:43:00+00:00,0 -2020-12-16 00:44:00+00:00,0 -2020-12-16 00:45:00+00:00,0 -2020-12-16 00:46:00+00:00,0 -2020-12-16 00:47:00+00:00,0 -2020-12-16 00:48:00+00:00,0 -2020-12-16 00:49:00+00:00,0 -2020-12-16 00:50:00+00:00,0 -2020-12-16 00:51:00+00:00,0 -2020-12-16 00:52:00+00:00,0 -2020-12-16 00:53:00+00:00,0 -2020-12-16 00:54:00+00:00,0 -2020-12-16 00:55:00+00:00,0 -2020-12-16 00:56:00+00:00,0 -2020-12-16 00:57:00+00:00,0 -2020-12-16 00:58:00+00:00,0 -2020-12-16 00:59:00+00:00,0 -2020-12-16 01:00:00+00:00,0 -2020-12-16 01:01:00+00:00,0 -2020-12-16 01:02:00+00:00,0 -2020-12-16 01:03:00+00:00,0 -2020-12-16 01:04:00+00:00,0 -2020-12-16 01:05:00+00:00,0 -2020-12-16 01:06:00+00:00,0 -2020-12-16 01:07:00+00:00,0 -2020-12-16 01:08:00+00:00,0 -2020-12-16 01:09:00+00:00,0 -2020-12-16 01:10:00+00:00,0 -2020-12-16 01:11:00+00:00,0 -2020-12-16 01:12:00+00:00,0 -2020-12-16 01:13:00+00:00,0 -2020-12-16 01:14:00+00:00,0 -2020-12-16 01:15:00+00:00,0 -2020-12-16 01:16:00+00:00,0 -2020-12-16 01:17:00+00:00,0 -2020-12-16 01:18:00+00:00,0 -2020-12-16 01:19:00+00:00,0 -2020-12-16 01:20:00+00:00,0 -2020-12-16 01:21:00+00:00,0 -2020-12-16 01:22:00+00:00,0 -2020-12-16 01:23:00+00:00,0 -2020-12-16 01:24:00+00:00,0 -2020-12-16 01:25:00+00:00,0 -2020-12-16 01:26:00+00:00,0 -2020-12-16 01:27:00+00:00,0 -2020-12-16 01:28:00+00:00,0 -2020-12-16 01:29:00+00:00,0 -2020-12-16 01:30:00+00:00,0 -2020-12-16 01:31:00+00:00,0 -2020-12-16 01:32:00+00:00,0 -2020-12-16 01:33:00+00:00,0 -2020-12-16 01:34:00+00:00,0 -2020-12-16 01:35:00+00:00,0 -2020-12-16 01:36:00+00:00,0 -2020-12-16 01:37:00+00:00,0 -2020-12-16 01:38:00+00:00,0 -2020-12-16 01:39:00+00:00,0 -2020-12-16 01:40:00+00:00,0 -2020-12-16 01:41:00+00:00,0 -2020-12-16 01:42:00+00:00,0 -2020-12-16 01:43:00+00:00,0 -2020-12-16 01:44:00+00:00,0 -2020-12-16 01:45:00+00:00,0 -2020-12-16 01:46:00+00:00,0 -2020-12-16 01:47:00+00:00,0 -2020-12-16 01:48:00+00:00,0 -2020-12-16 01:49:00+00:00,0 -2020-12-16 01:50:00+00:00,0 -2020-12-16 01:51:00+00:00,0 -2020-12-16 01:52:00+00:00,0 -2020-12-16 01:53:00+00:00,0 -2020-12-16 01:54:00+00:00,0 -2020-12-16 01:55:00+00:00,0 -2020-12-16 01:56:00+00:00,0 -2020-12-16 01:57:00+00:00,0 -2020-12-16 01:58:00+00:00,0 -2020-12-16 01:59:00+00:00,0 -2020-12-16 02:00:00+00:00,0 -2020-12-16 02:01:00+00:00,0 -2020-12-16 02:02:00+00:00,0 -2020-12-16 02:03:00+00:00,0 -2020-12-16 02:04:00+00:00,0 -2020-12-16 02:05:00+00:00,0 -2020-12-16 02:06:00+00:00,0 -2020-12-16 02:07:00+00:00,0 -2020-12-16 02:08:00+00:00,0 -2020-12-16 02:09:00+00:00,0 -2020-12-16 02:10:00+00:00,0 -2020-12-16 02:11:00+00:00,0 -2020-12-16 02:12:00+00:00,0 -2020-12-16 02:13:00+00:00,0 -2020-12-16 02:14:00+00:00,0 -2020-12-16 02:15:00+00:00,0 -2020-12-16 02:16:00+00:00,0 -2020-12-16 02:17:00+00:00,0 -2020-12-16 02:18:00+00:00,0 -2020-12-16 02:19:00+00:00,0 -2020-12-16 02:20:00+00:00,0 -2020-12-16 02:21:00+00:00,0 -2020-12-16 02:22:00+00:00,0 -2020-12-16 02:23:00+00:00,0 -2020-12-16 02:24:00+00:00,0 -2020-12-16 02:25:00+00:00,0 -2020-12-16 02:26:00+00:00,0 -2020-12-16 02:27:00+00:00,0 -2020-12-16 02:28:00+00:00,0 -2020-12-16 02:29:00+00:00,0 -2020-12-16 02:30:00+00:00,0 -2020-12-16 02:31:00+00:00,0 -2020-12-16 02:32:00+00:00,0 -2020-12-16 02:33:00+00:00,0 -2020-12-16 02:34:00+00:00,0 -2020-12-16 02:35:00+00:00,0 -2020-12-16 02:36:00+00:00,0 -2020-12-16 02:37:00+00:00,0 -2020-12-16 02:38:00+00:00,0 -2020-12-16 02:39:00+00:00,0 -2020-12-16 02:40:00+00:00,0 -2020-12-16 02:41:00+00:00,0 -2020-12-16 02:42:00+00:00,0 -2020-12-16 02:43:00+00:00,0 -2020-12-16 02:44:00+00:00,0 -2020-12-16 02:45:00+00:00,0 -2020-12-16 02:46:00+00:00,0 -2020-12-16 02:47:00+00:00,0 -2020-12-16 02:48:00+00:00,0 -2020-12-16 02:49:00+00:00,0 -2020-12-16 02:50:00+00:00,0 -2020-12-16 02:51:00+00:00,0 -2020-12-16 02:52:00+00:00,0 -2020-12-16 02:53:00+00:00,0 -2020-12-16 02:54:00+00:00,0 -2020-12-16 02:55:00+00:00,0 -2020-12-16 02:56:00+00:00,0 -2020-12-16 02:57:00+00:00,0 -2020-12-16 02:58:00+00:00,0 -2020-12-16 02:59:00+00:00,0 -2020-12-16 03:00:00+00:00,0 -2020-12-16 03:01:00+00:00,0 -2020-12-16 03:02:00+00:00,0 -2020-12-16 03:03:00+00:00,0 -2020-12-16 03:04:00+00:00,0 -2020-12-16 03:05:00+00:00,0 -2020-12-16 03:06:00+00:00,0 -2020-12-16 03:07:00+00:00,0 -2020-12-16 03:08:00+00:00,0 -2020-12-16 03:09:00+00:00,0 -2020-12-16 03:10:00+00:00,0 -2020-12-16 03:11:00+00:00,0 -2020-12-16 03:12:00+00:00,0 -2020-12-16 03:13:00+00:00,0 -2020-12-16 03:14:00+00:00,0 -2020-12-16 03:15:00+00:00,0 -2020-12-16 03:16:00+00:00,0 -2020-12-16 03:17:00+00:00,0 -2020-12-16 03:18:00+00:00,0 -2020-12-16 03:19:00+00:00,0 -2020-12-16 03:20:00+00:00,0 -2020-12-16 03:21:00+00:00,0 -2020-12-16 03:22:00+00:00,0 -2020-12-16 03:23:00+00:00,0 -2020-12-16 03:24:00+00:00,0 -2020-12-16 03:25:00+00:00,0 -2020-12-16 03:26:00+00:00,0 -2020-12-16 03:27:00+00:00,0 -2020-12-16 03:28:00+00:00,0 -2020-12-16 03:29:00+00:00,0 -2020-12-16 03:30:00+00:00,0 -2020-12-16 03:31:00+00:00,0 -2020-12-16 03:32:00+00:00,0 -2020-12-16 03:33:00+00:00,0 -2020-12-16 03:34:00+00:00,0 -2020-12-16 03:35:00+00:00,0 -2020-12-16 03:36:00+00:00,0 -2020-12-16 03:37:00+00:00,0 -2020-12-16 03:38:00+00:00,0 -2020-12-16 03:39:00+00:00,0 -2020-12-16 03:40:00+00:00,0 -2020-12-16 03:41:00+00:00,0 -2020-12-16 03:42:00+00:00,0 -2020-12-16 03:43:00+00:00,0 -2020-12-16 03:44:00+00:00,0 -2020-12-16 03:45:00+00:00,0 -2020-12-16 03:46:00+00:00,0 -2020-12-16 03:47:00+00:00,0 -2020-12-16 03:48:00+00:00,0 -2020-12-16 03:49:00+00:00,0 -2020-12-16 03:50:00+00:00,0 -2020-12-16 03:51:00+00:00,0 -2020-12-16 03:52:00+00:00,0 -2020-12-16 03:53:00+00:00,0 -2020-12-16 03:54:00+00:00,0 -2020-12-16 03:55:00+00:00,0 -2020-12-16 03:56:00+00:00,0 -2020-12-16 03:57:00+00:00,0 -2020-12-16 03:58:00+00:00,0 -2020-12-16 03:59:00+00:00,0 -2020-12-16 04:00:00+00:00,0 -2020-12-16 04:01:00+00:00,0 -2020-12-16 04:02:00+00:00,0 -2020-12-16 04:03:00+00:00,0 -2020-12-16 04:04:00+00:00,0 -2020-12-16 04:05:00+00:00,0 -2020-12-16 04:06:00+00:00,0 -2020-12-16 04:07:00+00:00,0 -2020-12-16 04:08:00+00:00,0 -2020-12-16 04:09:00+00:00,0 -2020-12-16 04:10:00+00:00,0 -2020-12-16 04:11:00+00:00,0 -2020-12-16 04:12:00+00:00,0 -2020-12-16 04:13:00+00:00,0 -2020-12-16 04:14:00+00:00,0 -2020-12-16 04:15:00+00:00,0 -2020-12-16 04:16:00+00:00,0 -2020-12-16 04:17:00+00:00,0 -2020-12-16 04:18:00+00:00,0 -2020-12-16 04:19:00+00:00,0 -2020-12-16 04:20:00+00:00,0 -2020-12-16 04:21:00+00:00,0 -2020-12-16 04:22:00+00:00,0 -2020-12-16 04:23:00+00:00,0 -2020-12-16 04:24:00+00:00,0 -2020-12-16 04:25:00+00:00,0 -2020-12-16 04:26:00+00:00,0 -2020-12-16 04:27:00+00:00,0 -2020-12-16 04:28:00+00:00,0 -2020-12-16 04:29:00+00:00,0 -2020-12-16 04:30:00+00:00,0 -2020-12-16 04:31:00+00:00,0 -2020-12-16 04:32:00+00:00,0 -2020-12-16 04:33:00+00:00,0 -2020-12-16 04:34:00+00:00,0 -2020-12-16 04:35:00+00:00,0 -2020-12-16 04:36:00+00:00,0 -2020-12-16 04:37:00+00:00,0 -2020-12-16 04:38:00+00:00,0 -2020-12-16 04:39:00+00:00,0 -2020-12-16 04:40:00+00:00,0 -2020-12-16 04:41:00+00:00,0 -2020-12-16 04:42:00+00:00,0 -2020-12-16 04:43:00+00:00,0 -2020-12-16 04:44:00+00:00,0 -2020-12-16 04:45:00+00:00,0 -2020-12-16 04:46:00+00:00,0 -2020-12-16 04:47:00+00:00,0 -2020-12-16 04:48:00+00:00,0 -2020-12-16 04:49:00+00:00,0 -2020-12-16 04:50:00+00:00,0 -2020-12-16 04:51:00+00:00,0 -2020-12-16 04:52:00+00:00,0 -2020-12-16 04:53:00+00:00,0 -2020-12-16 04:54:00+00:00,0 -2020-12-16 04:55:00+00:00,0 -2020-12-16 04:56:00+00:00,0 -2020-12-16 04:57:00+00:00,0 -2020-12-16 04:58:00+00:00,0 -2020-12-16 04:59:00+00:00,0 -2020-12-16 05:00:00+00:00,0 -2020-12-16 05:01:00+00:00,0 -2020-12-16 05:02:00+00:00,0 -2020-12-16 05:03:00+00:00,0 -2020-12-16 05:04:00+00:00,0 -2020-12-16 05:05:00+00:00,0 -2020-12-16 05:06:00+00:00,0 -2020-12-16 05:07:00+00:00,0 -2020-12-16 05:08:00+00:00,0 -2020-12-16 05:09:00+00:00,0 -2020-12-16 05:10:00+00:00,0 -2020-12-16 05:11:00+00:00,0 -2020-12-16 05:12:00+00:00,0 -2020-12-16 05:13:00+00:00,0 -2020-12-16 05:14:00+00:00,0 -2020-12-16 05:15:00+00:00,0 -2020-12-16 05:16:00+00:00,0 -2020-12-16 05:17:00+00:00,0 -2020-12-16 05:18:00+00:00,0 -2020-12-16 05:19:00+00:00,0 -2020-12-16 05:20:00+00:00,0 -2020-12-16 05:21:00+00:00,0 -2020-12-16 05:22:00+00:00,0 -2020-12-16 05:23:00+00:00,0 -2020-12-16 05:24:00+00:00,0 -2020-12-16 05:25:00+00:00,0 -2020-12-16 05:26:00+00:00,0 -2020-12-16 05:27:00+00:00,0 -2020-12-16 05:28:00+00:00,0 -2020-12-16 05:29:00+00:00,0 -2020-12-16 05:30:00+00:00,0 -2020-12-16 05:31:00+00:00,0 -2020-12-16 05:32:00+00:00,0 -2020-12-16 05:33:00+00:00,0 -2020-12-16 05:34:00+00:00,0 -2020-12-16 05:35:00+00:00,0 -2020-12-16 05:36:00+00:00,0 -2020-12-16 05:37:00+00:00,0 -2020-12-16 05:38:00+00:00,0 -2020-12-16 05:39:00+00:00,0 -2020-12-16 05:40:00+00:00,0 -2020-12-16 05:41:00+00:00,0 -2020-12-16 05:42:00+00:00,0 -2020-12-16 05:43:00+00:00,0 -2020-12-16 05:44:00+00:00,0 -2020-12-16 05:45:00+00:00,0 -2020-12-16 05:46:00+00:00,0 -2020-12-16 05:47:00+00:00,0 -2020-12-16 05:48:00+00:00,0 -2020-12-16 05:49:00+00:00,0 -2020-12-16 05:50:00+00:00,0 -2020-12-16 05:51:00+00:00,0 -2020-12-16 05:52:00+00:00,0 -2020-12-16 05:53:00+00:00,0 -2020-12-16 05:54:00+00:00,0 -2020-12-16 05:55:00+00:00,0 -2020-12-16 05:56:00+00:00,0 -2020-12-16 05:57:00+00:00,0 -2020-12-16 05:58:00+00:00,0 -2020-12-16 05:59:00+00:00,0 -2020-12-16 06:00:00+00:00,0 -2020-12-16 06:01:00+00:00,0 -2020-12-16 06:02:00+00:00,0 -2020-12-16 06:03:00+00:00,0 -2020-12-16 06:04:00+00:00,0 -2020-12-16 06:05:00+00:00,0 -2020-12-16 06:06:00+00:00,0 -2020-12-16 06:07:00+00:00,0 -2020-12-16 06:08:00+00:00,0 -2020-12-16 06:09:00+00:00,0 -2020-12-16 06:10:00+00:00,0 -2020-12-16 06:11:00+00:00,0 -2020-12-16 06:12:00+00:00,0 -2020-12-16 06:13:00+00:00,0 -2020-12-16 06:14:00+00:00,0 -2020-12-16 06:15:00+00:00,0 -2020-12-16 06:16:00+00:00,0 -2020-12-16 06:17:00+00:00,0 -2020-12-16 06:18:00+00:00,0 -2020-12-16 06:19:00+00:00,0 -2020-12-16 06:20:00+00:00,0 -2020-12-16 06:21:00+00:00,0 -2020-12-16 06:22:00+00:00,0 -2020-12-16 06:23:00+00:00,0 -2020-12-16 06:24:00+00:00,0 -2020-12-16 06:25:00+00:00,0 -2020-12-16 06:26:00+00:00,0 -2020-12-16 06:27:00+00:00,0 -2020-12-16 06:28:00+00:00,0 -2020-12-16 06:29:00+00:00,0 -2020-12-16 06:30:00+00:00,0 -2020-12-16 06:31:00+00:00,0 -2020-12-16 06:32:00+00:00,0 -2020-12-16 06:33:00+00:00,0 -2020-12-16 06:34:00+00:00,0 -2020-12-16 06:35:00+00:00,0 -2020-12-16 06:36:00+00:00,0 -2020-12-16 06:37:00+00:00,0 -2020-12-16 06:38:00+00:00,0 -2020-12-16 06:39:00+00:00,0 -2020-12-16 06:40:00+00:00,0 -2020-12-16 06:41:00+00:00,0 -2020-12-16 06:42:00+00:00,0 -2020-12-16 06:43:00+00:00,0 -2020-12-16 06:44:00+00:00,0 -2020-12-16 06:45:00+00:00,0 -2020-12-16 06:46:00+00:00,0 -2020-12-16 06:47:00+00:00,0 -2020-12-16 06:48:00+00:00,0 -2020-12-16 06:49:00+00:00,0 -2020-12-16 06:50:00+00:00,0 -2020-12-16 06:51:00+00:00,0 -2020-12-16 06:52:00+00:00,0 -2020-12-16 06:53:00+00:00,0 -2020-12-16 06:54:00+00:00,0 -2020-12-16 06:55:00+00:00,0 -2020-12-16 06:56:00+00:00,0 -2020-12-16 06:57:00+00:00,0 -2020-12-16 06:58:00+00:00,0 -2020-12-16 06:59:00+00:00,0 -2020-12-16 07:00:00+00:00,0 -2020-12-16 07:01:00+00:00,0 -2020-12-16 07:02:00+00:00,0 -2020-12-16 07:03:00+00:00,0 -2020-12-16 07:04:00+00:00,0 -2020-12-16 07:05:00+00:00,0 -2020-12-16 07:06:00+00:00,0 -2020-12-16 07:07:00+00:00,0 -2020-12-16 07:08:00+00:00,0 -2020-12-16 07:09:00+00:00,0 -2020-12-16 07:10:00+00:00,0 -2020-12-16 07:11:00+00:00,0 -2020-12-16 07:12:00+00:00,0 -2020-12-16 07:13:00+00:00,0 -2020-12-16 07:14:00+00:00,0 -2020-12-16 07:15:00+00:00,0 -2020-12-16 07:16:00+00:00,0 -2020-12-16 07:17:00+00:00,0 -2020-12-16 07:18:00+00:00,0 -2020-12-16 07:19:00+00:00,0 -2020-12-16 07:20:00+00:00,0 -2020-12-16 07:21:00+00:00,0 -2020-12-16 07:22:00+00:00,0 -2020-12-16 07:23:00+00:00,0 -2020-12-16 07:24:00+00:00,0 -2020-12-16 07:25:00+00:00,0 -2020-12-16 07:26:00+00:00,0 -2020-12-16 07:27:00+00:00,0 -2020-12-16 07:28:00+00:00,0 -2020-12-16 07:29:00+00:00,0 -2020-12-16 07:30:00+00:00,0 -2020-12-16 07:31:00+00:00,0 -2020-12-16 07:32:00+00:00,0 -2020-12-16 07:33:00+00:00,0 -2020-12-16 07:34:00+00:00,0 -2020-12-16 07:35:00+00:00,0 -2020-12-16 07:36:00+00:00,0 -2020-12-16 07:37:00+00:00,0 -2020-12-16 07:38:00+00:00,0 -2020-12-16 07:39:00+00:00,0 -2020-12-16 07:40:00+00:00,0 -2020-12-16 07:41:00+00:00,0 -2020-12-16 07:42:00+00:00,0 -2020-12-16 07:43:00+00:00,0 -2020-12-16 07:44:00+00:00,0 -2020-12-16 07:45:00+00:00,0 -2020-12-16 07:46:00+00:00,0 -2020-12-16 07:47:00+00:00,0 -2020-12-16 07:48:00+00:00,0 -2020-12-16 07:49:00+00:00,0 -2020-12-16 07:50:00+00:00,0 -2020-12-16 07:51:00+00:00,0 -2020-12-16 07:52:00+00:00,0 -2020-12-16 07:53:00+00:00,0 -2020-12-16 07:54:00+00:00,0 -2020-12-16 07:55:00+00:00,0 -2020-12-16 07:56:00+00:00,0 -2020-12-16 07:57:00+00:00,0 -2020-12-16 07:58:00+00:00,0 -2020-12-16 07:59:00+00:00,0 -2020-12-16 08:00:00+00:00,0 -2020-12-16 08:01:00+00:00,0 -2020-12-16 08:02:00+00:00,0 -2020-12-16 08:03:00+00:00,0 -2020-12-16 08:04:00+00:00,0 -2020-12-16 08:05:00+00:00,0 -2020-12-16 08:06:00+00:00,0 -2020-12-16 08:07:00+00:00,0 -2020-12-16 08:08:00+00:00,0 -2020-12-16 08:09:00+00:00,0 -2020-12-16 08:10:00+00:00,0 -2020-12-16 08:11:00+00:00,0 -2020-12-16 08:12:00+00:00,0 -2020-12-16 08:13:00+00:00,0 -2020-12-16 08:14:00+00:00,0 -2020-12-16 08:15:00+00:00,0 -2020-12-16 08:16:00+00:00,0 -2020-12-16 08:17:00+00:00,0 -2020-12-16 08:18:00+00:00,0 -2020-12-16 08:19:00+00:00,0 -2020-12-16 08:20:00+00:00,0 -2020-12-16 08:21:00+00:00,0 -2020-12-16 08:22:00+00:00,0 -2020-12-16 08:23:00+00:00,0 -2020-12-16 08:24:00+00:00,0 -2020-12-16 08:25:00+00:00,0 -2020-12-16 08:26:00+00:00,0 -2020-12-16 08:27:00+00:00,0 -2020-12-16 08:28:00+00:00,0 -2020-12-16 08:29:00+00:00,0 -2020-12-16 08:30:00+00:00,0 -2020-12-16 08:31:00+00:00,0 -2020-12-16 08:32:00+00:00,0 -2020-12-16 08:33:00+00:00,0 -2020-12-16 08:34:00+00:00,0 -2020-12-16 08:35:00+00:00,0 -2020-12-16 08:36:00+00:00,0 -2020-12-16 08:37:00+00:00,0 -2020-12-16 08:38:00+00:00,0 -2020-12-16 08:39:00+00:00,0 -2020-12-16 08:40:00+00:00,0 -2020-12-16 08:41:00+00:00,0 -2020-12-16 08:42:00+00:00,0 -2020-12-16 08:43:00+00:00,0 -2020-12-16 08:44:00+00:00,0 -2020-12-16 08:45:00+00:00,0 -2020-12-16 08:46:00+00:00,0 -2020-12-16 08:47:00+00:00,0 -2020-12-16 08:48:00+00:00,0 -2020-12-16 08:49:00+00:00,0 -2020-12-16 08:50:00+00:00,0 -2020-12-16 08:51:00+00:00,0 -2020-12-16 08:52:00+00:00,0 -2020-12-16 08:53:00+00:00,0 -2020-12-16 08:54:00+00:00,0 -2020-12-16 08:55:00+00:00,0 -2020-12-16 08:56:00+00:00,0 -2020-12-16 08:57:00+00:00,0 -2020-12-16 08:58:00+00:00,0 -2020-12-16 08:59:00+00:00,0 -2020-12-16 09:00:00+00:00,0 -2020-12-16 09:01:00+00:00,0 -2020-12-16 09:02:00+00:00,0 -2020-12-16 09:03:00+00:00,0 -2020-12-16 09:04:00+00:00,0 -2020-12-16 09:05:00+00:00,0 -2020-12-16 09:06:00+00:00,0 -2020-12-16 09:07:00+00:00,0 -2020-12-16 09:08:00+00:00,0 -2020-12-16 09:09:00+00:00,0 -2020-12-16 09:10:00+00:00,0 -2020-12-16 09:11:00+00:00,0 -2020-12-16 09:12:00+00:00,0 -2020-12-16 09:13:00+00:00,0 -2020-12-16 09:14:00+00:00,0 -2020-12-16 09:15:00+00:00,0 -2020-12-16 09:16:00+00:00,0 -2020-12-16 09:17:00+00:00,0 -2020-12-16 09:18:00+00:00,0 -2020-12-16 09:19:00+00:00,0 -2020-12-16 09:20:00+00:00,0 -2020-12-16 09:21:00+00:00,0 -2020-12-16 09:22:00+00:00,0 -2020-12-16 09:23:00+00:00,0 -2020-12-16 09:24:00+00:00,0 -2020-12-16 09:25:00+00:00,0 -2020-12-16 09:26:00+00:00,0 -2020-12-16 09:27:00+00:00,0 -2020-12-16 09:28:00+00:00,0 -2020-12-16 09:29:00+00:00,0 -2020-12-16 09:30:00+00:00,0 -2020-12-16 09:31:00+00:00,0 -2020-12-16 09:32:00+00:00,0 -2020-12-16 09:33:00+00:00,0 -2020-12-16 09:34:00+00:00,0 -2020-12-16 09:35:00+00:00,0 -2020-12-16 09:36:00+00:00,0 -2020-12-16 09:37:00+00:00,0 -2020-12-16 09:38:00+00:00,0 -2020-12-16 09:39:00+00:00,0 -2020-12-16 09:40:00+00:00,0 -2020-12-16 09:41:00+00:00,0 -2020-12-16 09:42:00+00:00,0 -2020-12-16 09:43:00+00:00,0 -2020-12-16 09:44:00+00:00,0 -2020-12-16 09:45:00+00:00,0 -2020-12-16 09:46:00+00:00,0 -2020-12-16 09:47:00+00:00,0 -2020-12-16 09:48:00+00:00,0 -2020-12-16 09:49:00+00:00,0 -2020-12-16 09:50:00+00:00,0 -2020-12-16 09:51:00+00:00,0 -2020-12-16 09:52:00+00:00,0 -2020-12-16 09:53:00+00:00,0 -2020-12-16 09:54:00+00:00,0 -2020-12-16 09:55:00+00:00,0 -2020-12-16 09:56:00+00:00,0 -2020-12-16 09:57:00+00:00,0 -2020-12-16 09:58:00+00:00,0 -2020-12-16 09:59:00+00:00,0 -2020-12-16 10:00:00+00:00,0 -2020-12-16 10:01:00+00:00,0 -2020-12-16 10:02:00+00:00,0 -2020-12-16 10:03:00+00:00,0 -2020-12-16 10:04:00+00:00,0 -2020-12-16 10:05:00+00:00,0 -2020-12-16 10:06:00+00:00,0 -2020-12-16 10:07:00+00:00,0 -2020-12-16 10:08:00+00:00,0 -2020-12-16 10:09:00+00:00,0 -2020-12-16 10:10:00+00:00,0 -2020-12-16 10:11:00+00:00,0 -2020-12-16 10:12:00+00:00,0 -2020-12-16 10:13:00+00:00,0 -2020-12-16 10:14:00+00:00,0 -2020-12-16 10:15:00+00:00,0 -2020-12-16 10:16:00+00:00,0 -2020-12-16 10:17:00+00:00,0 -2020-12-16 10:18:00+00:00,0 -2020-12-16 10:19:00+00:00,0 -2020-12-16 10:20:00+00:00,0 -2020-12-16 10:21:00+00:00,0 -2020-12-16 10:22:00+00:00,0 -2020-12-16 10:23:00+00:00,0 -2020-12-16 10:24:00+00:00,0 -2020-12-16 10:25:00+00:00,0 -2020-12-16 10:26:00+00:00,0 -2020-12-16 10:27:00+00:00,0 -2020-12-16 10:28:00+00:00,0 -2020-12-16 10:29:00+00:00,0 -2020-12-16 10:30:00+00:00,0 -2020-12-16 10:31:00+00:00,0 -2020-12-16 10:32:00+00:00,0 -2020-12-16 10:33:00+00:00,0 -2020-12-16 10:34:00+00:00,0 -2020-12-16 10:35:00+00:00,0 -2020-12-16 10:36:00+00:00,0 -2020-12-16 10:37:00+00:00,0 -2020-12-16 10:38:00+00:00,0 -2020-12-16 10:39:00+00:00,0 -2020-12-16 10:40:00+00:00,0 -2020-12-16 10:41:00+00:00,0 -2020-12-16 10:42:00+00:00,0 -2020-12-16 10:43:00+00:00,0 -2020-12-16 10:44:00+00:00,0 -2020-12-16 10:45:00+00:00,0 -2020-12-16 10:46:00+00:00,0 -2020-12-16 10:47:00+00:00,0 -2020-12-16 10:48:00+00:00,0 -2020-12-16 10:49:00+00:00,0 -2020-12-16 10:50:00+00:00,0 -2020-12-16 10:51:00+00:00,0 -2020-12-16 10:52:00+00:00,0 -2020-12-16 10:53:00+00:00,0 -2020-12-16 10:54:00+00:00,0 -2020-12-16 10:55:00+00:00,0 -2020-12-16 10:56:00+00:00,0 -2020-12-16 10:57:00+00:00,0 -2020-12-16 10:58:00+00:00,0 -2020-12-16 10:59:00+00:00,0 -2020-12-16 11:00:00+00:00,0 -2020-12-16 11:01:00+00:00,0 -2020-12-16 11:02:00+00:00,0 -2020-12-16 11:03:00+00:00,0 -2020-12-16 11:04:00+00:00,0 -2020-12-16 11:05:00+00:00,0 -2020-12-16 11:06:00+00:00,0 -2020-12-16 11:07:00+00:00,0 -2020-12-16 11:08:00+00:00,0 -2020-12-16 11:09:00+00:00,0 -2020-12-16 11:10:00+00:00,0 -2020-12-16 11:11:00+00:00,0 -2020-12-16 11:12:00+00:00,0 -2020-12-16 11:13:00+00:00,0 -2020-12-16 11:14:00+00:00,0 -2020-12-16 11:15:00+00:00,0 -2020-12-16 11:16:00+00:00,0 -2020-12-16 11:17:00+00:00,0 -2020-12-16 11:18:00+00:00,0 -2020-12-16 11:19:00+00:00,0 -2020-12-16 11:20:00+00:00,0 -2020-12-16 11:21:00+00:00,0 -2020-12-16 11:22:00+00:00,0 -2020-12-16 11:23:00+00:00,0 -2020-12-16 11:24:00+00:00,0 -2020-12-16 11:25:00+00:00,0 -2020-12-16 11:26:00+00:00,0 -2020-12-16 11:27:00+00:00,0 -2020-12-16 11:28:00+00:00,0 -2020-12-16 11:29:00+00:00,0 -2020-12-16 11:30:00+00:00,0 -2020-12-16 11:31:00+00:00,0 -2020-12-16 11:32:00+00:00,0 -2020-12-16 11:33:00+00:00,0 -2020-12-16 11:34:00+00:00,0 -2020-12-16 11:35:00+00:00,0 -2020-12-16 11:36:00+00:00,0 -2020-12-16 11:37:00+00:00,0 -2020-12-16 11:38:00+00:00,0 -2020-12-16 11:39:00+00:00,0 -2020-12-16 11:40:00+00:00,0 -2020-12-16 11:41:00+00:00,0 -2020-12-16 11:42:00+00:00,0 -2020-12-16 11:43:00+00:00,0 -2020-12-16 11:44:00+00:00,0 -2020-12-16 11:45:00+00:00,0 -2020-12-16 11:46:00+00:00,0 -2020-12-16 11:47:00+00:00,0 -2020-12-16 11:48:00+00:00,0 -2020-12-16 11:49:00+00:00,0 -2020-12-16 11:50:00+00:00,0 -2020-12-16 11:51:00+00:00,0 -2020-12-16 11:52:00+00:00,0 diff --git a/.btoutput/app1:failure/models.pt b/.btoutput/app1:failure/models.pt deleted file mode 100644 index dadf2e8fd6bef566e7911a1c2e196eb3eb78626e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16224 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 v|LS=|%&Whe9?u(iVF