From 0edf0388d259b0d7ffd502f45eb3060a96fd41af Mon Sep 17 00:00:00 2001 From: Benoit Chevallier-Mames <64148533+bcm-at-zama@users.noreply.github.com> Date: Wed, 4 Dec 2024 11:21:19 +0100 Subject: [PATCH] feat: Support 3.12 python (#847) --- .github/workflows/continuous-integration.yaml | 51 +- Makefile | 25 +- README.md | 2 +- benchmarks/common.py | 2 + benchmarks/glm.py | 7 +- deps_licenses/licenses_linux_user.txt | 26 +- deps_licenses/licenses_linux_user.txt.md5 | 2 +- deps_licenses/licenses_mac_intel_user.txt | 24 +- deps_licenses/licenses_mac_intel_user.txt.md5 | 2 +- deps_licenses/licenses_mac_silicon_user.txt | 24 +- .../licenses_mac_silicon_user.txt.md5 | 2 +- docker/Dockerfile.dev | 24 +- docker/release_resources/sanity_check.py | 2 +- .../DecisionTreeClassifier.ipynb | 4 +- docs/advanced_examples/GLMComparison.ipynb | 10 +- .../LogisticRegressionTraining.ipynb | 4 +- .../advanced_examples/PoissonRegression.ipynb | 427 ++- docs/getting-started/pip_installing.md | 2 +- flake8_others.cfg | 2 +- flake8_src.cfg | 2 +- poetry.lock | 2433 +++++++++-------- pylintrc | 1 + pyproject.toml | 34 +- script/actions_utils/generate_test_matrix.py | 1 + .../actions_utils/refresh_notebooks_list.py | 2 +- script/doc_utils/gen_supported_ops.py | 4 +- .../check_installation_with_all_python.sh | 4 +- script/make_utils/licenses.sh | 2 + script/make_utils/nbqa.sh | 2 +- script/make_utils/setup_os_deps.sh | 51 +- src/concrete/ml/deployment/_utils.py | 2 +- src/concrete/ml/pandas/__init__.py | 3 +- src/concrete/ml/pandas/_operators.py | 3 +- src/concrete/ml/pandas/dataframe.py | 3 +- src/concrete/ml/sklearn/base.py | 29 + src/concrete/ml/sklearn/glm.py | 26 +- src/concrete/ml/sklearn/linear_model.py | 20 +- src/concrete/ml/sklearn/rf.py | 8 + src/concrete/ml/sklearn/tree.py | 8 + tests/onnx/test_onnx_graph_manipulations.py | 2 +- tests/quantization/test_quantized_ops.py | 7 +- tests/sklearn/test_sklearn_models.py | 16 +- tests/torch/test_compile_torch.py | 2 +- 43 files changed, 2025 insertions(+), 1282 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 8de971e81..efdb22d98 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -21,13 +21,13 @@ on: - pr linux_python_versions: - description: "Space separated list of python versions (3.8, 3.9, 3.10, 3.11 are supported) to launch on linux" + description: "Space separated list of python versions (3.8, 3.9, 3.10, 3.11, 3.12 are supported) to launch on linux" required: false type: string default: "3.8" macos_python_versions: - description: "Space separated list of python versions (3.8, 3.9, 3.10, 3.11 are supported) to launch on macos (intel)" + description: "Space separated list of python versions (3.8, 3.9, 3.10, 3.11, 3.12 are supported) to launch on macos (intel)" required: false type: string default: "3.8" @@ -165,6 +165,7 @@ jobs: needs-39-linux-runner: ${{ steps.set-matrix.outputs.needs-39-linux-runner }} needs-310-linux-runner: ${{ steps.set-matrix.outputs.needs-310-linux-runner }} needs-311-linux-runner: ${{ steps.set-matrix.outputs.needs-311-linux-runner }} + needs-312-linux-runner: ${{ steps.set-matrix.outputs.needs-312-linux-runner }} instance-type: ${{ steps.set-matrix.outputs.instance-type }} linux-python-versions: ${{ steps.set-matrix.outputs.linux-python-versions }} macos-python-versions: ${{ steps.set-matrix.outputs.macos-python-versions }} @@ -213,10 +214,10 @@ jobs: LINUX_PYTHON_VERSIONS="3.8" MACOS_PYTHON_VERSIONS="" elif [[ "${BUILD_TYPE}" == "weekly" ]]; then - LINUX_PYTHON_VERSIONS="3.8 3.9 3.10 3.11" + LINUX_PYTHON_VERSIONS="3.8 3.9 3.10 3.11 3.12" MACOS_PYTHON_VERSIONS="3.9" elif [[ "${BUILD_TYPE}" == "release" ]] || [[ "${BUILD_TYPE}" == "published_release" ]]; then - LINUX_PYTHON_VERSIONS="3.8 3.9 3.10 3.11" + LINUX_PYTHON_VERSIONS="3.8 3.9 3.10 3.11 3.12" MACOS_PYTHON_VERSIONS="" elif [[ "${BUILD_TYPE}" == "push_to_main" ]]; then LINUX_PYTHON_VERSIONS="3.8" @@ -266,6 +267,8 @@ jobs: jq -rc '. | map(select(.os_kind=="linux" and .python_version=="3.10")) | length > 0') NEEDS_LINUX_311_RUNNER=$(echo "${LINUX_MATRIX}" | \ jq -rc '. | map(select(.os_kind=="linux" and .python_version=="3.11")) | length > 0') + NEEDS_LINUX_312_RUNNER=$(echo "${LINUX_MATRIX}" | \ + jq -rc '. | map(select(.os_kind=="linux" and .python_version=="3.12")) | length > 0') echo "Needs Linux 3.8 runner:" echo "${NEEDS_LINUX_38_RUNNER}" @@ -279,10 +282,14 @@ jobs: echo "Needs Linux 3.11 runner:" echo "${NEEDS_LINUX_311_RUNNER}" + echo "Needs Linux 3.12 runner:" + echo "${NEEDS_LINUX_312_RUNNER}" + echo "needs-38-linux-runner=${NEEDS_LINUX_38_RUNNER}" >> $GITHUB_OUTPUT echo "needs-39-linux-runner=${NEEDS_LINUX_39_RUNNER}" >> $GITHUB_OUTPUT echo "needs-310-linux-runner=${NEEDS_LINUX_310_RUNNER}" >> $GITHUB_OUTPUT echo "needs-311-linux-runner=${NEEDS_LINUX_311_RUNNER}" >> $GITHUB_OUTPUT + echo "needs-312-linux-runner=${NEEDS_LINUX_312_RUNNER}" >> $GITHUB_OUTPUT echo "instance-type=${INSTANCE_TYPE}" >> $GITHUB_OUTPUT start-runner-linux: @@ -299,6 +306,8 @@ jobs: ec2-instance-id-310: ${{ steps.start-ec2-runner-310.outputs.ec2-instance-id || '' }} label-311: ${{ steps.start-ec2-runner-311.outputs.label }} ec2-instance-id-311: ${{ steps.start-ec2-runner-311.outputs.ec2-instance-id || '' }} + label-312: ${{ steps.start-ec2-runner-312.outputs.label }} + ec2-instance-id-312: ${{ steps.start-ec2-runner-312.outputs.ec2-instance-id || '' }} matrix: ${{ steps.update-linux-matrix.outputs.linux-matrix }} steps: - name: Checkout Code @@ -407,6 +416,29 @@ jobs: {"Key": "Team", "Value": "CML"} ] + - name: Start EC2 runner python 3.12 + id: start-ec2-runner-312 + if: ${{ !cancelled() && fromJSON(needs.matrix-preparation.outputs.needs-312-linux-runner) }} + uses: machulav/ec2-github-runner@fcfb31a5760dad1314a64a0e172b78ec6fc8a17e + with: + mode: start + github-token: ${{ secrets.EC2_RUNNER_BOT_TOKEN }} + ec2-image-id: ${{ secrets.AWS_EC2_AMI }} + ec2-instance-type: ${{ needs.matrix-preparation.outputs.instance-type }} + subnet-id: ${{ secrets.AWS_EC2_SUBNET_ID }} + security-group-id: ${{ secrets.AWS_EC2_SECURITY_GROUP_ID }} + aws-resource-tags: > + [ + {"Key": "Name", "Value": "cml-ci-ec2-github-runner-py312"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "Python version", "Value": "3.12"}, + {"Key": "Actor", "Value": "${{ github.actor }}"}, + {"Key": "Action", "Value": "${{ github.action }}"}, + {"Key": "GitHash", "Value": "${{ github.sha }}"}, + {"Key": "RefName", "Value": "${{ github.ref_name }}"}, + {"Key": "RunId", "Value": "${{ github.run_id }}"}, + {"Key": "Team", "Value": "CML"} + ] - name: Update Linux runs_on Matrix id: update-linux-matrix @@ -421,6 +453,8 @@ jobs: '(. | map(select(.os_kind=="linux" and .python_version=="3.10") |= . + {"runs_on": "${{ steps.start-ec2-runner-310.outputs.label }}"}) )') MATRIX=$(echo "${MATRIX}" | jq -rc \ '(. | map(select(.os_kind=="linux" and .python_version=="3.11") |= . + {"runs_on": "${{ steps.start-ec2-runner-311.outputs.label }}"}) )') + MATRIX=$(echo "${MATRIX}" | jq -rc \ + '(. | map(select(.os_kind=="linux" and .python_version=="3.12") |= . + {"runs_on": "${{ steps.start-ec2-runner-312.outputs.label }}"}) )') echo "Updated matrix:" echo "${MATRIX}" @@ -1058,6 +1092,15 @@ jobs: ec2-instance-id: ${{ needs.start-runner-linux.outputs.ec2-instance-id-311 }} mode: stop + - name: Stop EC2 runner python 3.12 + uses: machulav/ec2-github-runner@fcfb31a5760dad1314a64a0e172b78ec6fc8a17e + if: ${{ always() && needs.start-runner-linux.outputs.ec2-instance-id-312 }} + with: + github-token: ${{ secrets.EC2_RUNNER_BOT_TOKEN }} + label: ${{ needs.start-runner-linux.outputs.label-312 }} + ec2-instance-id: ${{ needs.start-runner-linux.outputs.ec2-instance-id-312 }} + mode: stop + build-macos-intel: name: Python ${{ matrix.python_version }} (macOS, intel) needs: [matrix-preparation] diff --git a/Makefile b/Makefile index b8f39c248..2d9a24d95 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,16 @@ SHELL:=$(shell /usr/bin/env which bash) +DEV_DOCKER_PYTHON?=py38 +ifeq ($(DEV_DOCKER_PYTHON),py312) +UBUNTU_BASE=24.10 +else +UBUNTU_BASE=20.04 +endif + DEV_DOCKER_IMG:=concrete-ml-dev DEV_DOCKERFILE:=docker/Dockerfile.dev -DEV_CONTAINER_VENV_VOLUME:=concrete-ml-venv -DEV_CONTAINER_CACHE_VOLUME:=concrete-ml-cache +DEV_CONTAINER_VENV_VOLUME:=concrete-ml-venv-$(DEV_DOCKER_PYTHON) +DEV_CONTAINER_CACHE_VOLUME:=concrete-ml-cache-$(DEV_DOCKER_PYTHON) DOCKER_VENV_PATH:="$${HOME}"/dev_venv/ SRC_DIR:=src TEST?=tests @@ -207,7 +214,7 @@ spcc_internal: $(SPCC_DEPS) .PHONY: pytest_internal # Run pytest pytest_internal: poetry run pytest --version - poetry run pytest $(TEST) \ + MKL_NUM_THREADS=4 OMP_NUM_THREADS=4 poetry run pytest $(TEST) \ -svv \ --count=$(COUNT) \ --randomly-dont-reorganize \ @@ -342,12 +349,12 @@ mypy_ci: .PHONY: docker_build # Build dev docker docker_build: - BUILD_ARGS=; \ + BUILD_ARGS="--build-arg UBUNTU_BASE=$(UBUNTU_BASE) ";\ if [[ $$(uname) == "Linux" ]]; then \ - BUILD_ARGS="--build-arg BUILD_UID=$$(id -u) --build-arg BUILD_GID=$$(id -g)"; \ + BUILD_ARGS+="--build-arg BUILD_UID=$$(id -u) --build-arg BUILD_GID=$$(id -g)"; \ fi; \ DOCKER_BUILDKIT=1 docker build $${BUILD_ARGS:+$$BUILD_ARGS} \ - --pull -t $(DEV_DOCKER_IMG) -f $(DEV_DOCKERFILE) . + --pull -t $(DEV_DOCKER_IMG):$(DEV_DOCKER_PYTHON) -f $(DEV_DOCKERFILE) . .PHONY: docker_rebuild # Rebuild docker docker_rebuild: docker_clean_volumes @@ -356,7 +363,7 @@ docker_rebuild: docker_clean_volumes BUILD_ARGS="--build-arg BUILD_UID=$$(id -u) --build-arg BUILD_GID=$$(id -g)"; \ fi; \ DOCKER_BUILDKIT=1 docker build $${BUILD_ARGS:+$$BUILD_ARGS} \ - --pull --no-cache -t $(DEV_DOCKER_IMG) -f $(DEV_DOCKERFILE) . + --pull --no-cache -t $(DEV_DOCKER_IMG):$(DEV_DOCKER_PYTHON) -f $(DEV_DOCKERFILE) . .PHONY: docker_start # Launch docker docker_start: @@ -371,7 +378,7 @@ docker_start: --volume /"$$(pwd)":/src \ --volume $(DEV_CONTAINER_VENV_VOLUME):/home/dev_user/dev_venv \ --volume $(DEV_CONTAINER_CACHE_VOLUME):/home/dev_user/.cache \ - $(DEV_DOCKER_IMG) || rm -f "$${EV_FILE}" + $(DEV_DOCKER_IMG):$(DEV_DOCKER_PYTHON) || rm -f "$${EV_FILE}" .PHONY: docker_build_and_start # Docker build and start docker_build_and_start: docker_build docker_start @@ -642,7 +649,7 @@ docker_publish_measurements: docker_rebuild docker run --volume /"$$(pwd)":/src \ --volume $(DEV_CONTAINER_VENV_VOLUME):/home/dev_user/dev_venv \ --volume $(DEV_CONTAINER_CACHE_VOLUME):/home/dev_user/.cache \ - $(DEV_DOCKER_IMG) \ + $(DEV_DOCKER_IMG):$(DEV_DOCKER_PYTHON) \ /bin/bash ./script/progress_tracker_utils/benchmark_and_publish_findings_in_docker.sh \ "$${LAUNCH_COMMAND}" diff --git a/README.md b/README.md index 9cd488eee..3269f2774 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Depending on your OS, Concrete ML may be installed with Docker or with pip: | macOS 11+ (Intel) | Yes | Yes | | macOS 11+ (Apple Silicon: M1, M2, etc.) | Coming soon | Yes | -Note: Concrete ML only supports Python `3.8`, `3.9`, `3.10` and `3.11`. +Note: Concrete ML only supports Python `3.8`, `3.9`, `3.10`, `3.11` and `3.12`. Concrete ML can be installed on Kaggle ([see this question on the community for more details](https://community.zama.ai/t/how-do-we-use-concrete-ml-on-kaggle/332)) and on Google Colab. #### Docker diff --git a/benchmarks/common.py b/benchmarks/common.py index 691ccf19a..3d92d521b 100644 --- a/benchmarks/common.py +++ b/benchmarks/common.py @@ -757,6 +757,8 @@ def benchmark_name_generator( elif model_name in DEEP_LEARNING_NAMES: config_str = f"_{config['n_bits']}" + else: + config_str = "UNKNOWN" # We remove underscores to make sure to not have any conflict when splitting return model_name.replace("_", "-") + config_str + joiner + dataset_name.replace("_", "-") diff --git a/benchmarks/glm.py b/benchmarks/glm.py index a3df541d4..60ddee564 100644 --- a/benchmarks/glm.py +++ b/benchmarks/glm.py @@ -8,6 +8,7 @@ import numpy as np import pandas import py_progress_tracker as progress +import sklearn from common import ( BENCHMARK_CONFIGURATION, GLMS_STRING_TO_CLASS, @@ -29,6 +30,10 @@ StandardScaler, ) +sklearn_sparse_arg = ( + {"sparse": False} if "1.1." in sklearn.__version__ else {"sparse_output": False} +) + # pylint: disable=redefined-outer-name def get_data() -> Tuple[pandas.DataFrame, str]: @@ -102,7 +107,7 @@ def get_preprocessor() -> ColumnTransformer: ("log_scaled_numeric", log_scale_transformer, ["Density"]), ( "onehot_categorical", - OneHotEncoder(sparse=False), + OneHotEncoder(**sklearn_sparse_arg), ["VehBrand", "VehPower", "VehGas", "Region", "Area"], ), ], diff --git a/deps_licenses/licenses_linux_user.txt b/deps_licenses/licenses_linux_user.txt index d15531268..2a312fecc 100644 --- a/deps_licenses/licenses_linux_user.txt +++ b/deps_licenses/licenses_linux_user.txt @@ -7,22 +7,22 @@ certifi, 2024.8.30, Mozilla Public License 2.0 (MPL 2.0) charset-normalizer, 3.4.0, MIT License coloredlogs, 15.0.1, MIT License concrete-ml-extensions, 0.1.2, BSD-3-Clause-Clear -concrete-python, 2.8.1, BSD-3-Clause +concrete-python, 2.9.0rc1.dev20241130, BSD-3-Clause dependencies, 2.0.1, BSD License dill, 0.3.9, BSD License filelock, 3.16.1, The Unlicense (Unlicense) -flatbuffers, 2.0.7, Apache Software License -fsspec, 2024.9.0, BSD License -huggingface-hub, 0.25.2, Apache Software License +flatbuffers, 24.3.25, Apache Software License +fsspec, 2024.10.0, BSD License +huggingface-hub, 0.26.3, Apache Software License humanfriendly, 10.0, MIT License hummingbird-ml, 0.4.11, MIT License idna, 3.10, BSD License importlib_resources, 6.4.5, Apache Software License joblib, 1.4.2, BSD License -jsonpickle, 3.3.0, BSD License +jsonpickle, 4.0.0, BSD License mpmath, 1.3.0, BSD License networkx, 3.1, BSD License -numpy, 1.24.2, BSD License +numpy, 1.26.4, BSD License nvidia-cublas-cu12, 12.1.3.1, Other/Proprietary License nvidia-cuda-cupti-cu12, 12.1.105, Other/Proprietary License nvidia-cuda-nvrtc-cu12, 12.1.105, Other/Proprietary License @@ -33,22 +33,22 @@ nvidia-curand-cu12, 10.3.2.106, Other/Proprietary License nvidia-cusolver-cu12, 11.4.5.107, Other/Proprietary License nvidia-cusparse-cu12, 12.1.0.106, Other/Proprietary License nvidia-nccl-cu12, 2.20.5, Other/Proprietary License -nvidia-nvjitlink-cu12, 12.6.77, Other/Proprietary License +nvidia-nvjitlink-cu12, 12.6.85, Other/Proprietary License nvidia-nvtx-cu12, 12.1.105, Other/Proprietary License -onnx, 1.16.1, Apache License v2.0 +onnx, 1.17.0, Apache License v2.0 onnxconverter-common, 1.13.0, MIT License onnxmltools, 1.12.0, Apache Software License onnxoptimizer, 0.3.13, Apache License v2.0 onnxruntime, 1.18.0, MIT License -packaging, 24.1, Apache Software License; BSD License +packaging, 24.2, Apache Software License; BSD License pandas, 2.0.3, BSD License -protobuf, 4.25.5, 3-Clause BSD License +protobuf, 3.20.3, BSD-3-Clause psutil, 5.9.8, BSD License python-dateutil, 2.9.0.post0, Apache Software License; BSD License pytz, 2024.2, MIT License requests, 2.32.3, Apache Software License -scikit-learn, 1.1.3, BSD License -scipy, 1.10.1, BSD License +scikit-learn, 1.4.0, BSD License +scipy, 1.13.1, BSD License six, 1.16.0, MIT License skl2onnx, 1.17.0, Apache Software License skops, 0.5.0, MIT @@ -57,7 +57,7 @@ sympy, 1.13.3, BSD License tabulate, 0.8.10, MIT License threadpoolctl, 3.5.0, BSD License torch, 2.3.1, BSD License -tqdm, 4.66.5, MIT License; Mozilla Public License 2.0 (MPL 2.0) +tqdm, 4.67.1, MIT License; Mozilla Public License 2.0 (MPL 2.0) triton, 2.3.1, MIT License typing_extensions, 4.12.2, Python Software Foundation License tzdata, 2024.2, Apache Software License diff --git a/deps_licenses/licenses_linux_user.txt.md5 b/deps_licenses/licenses_linux_user.txt.md5 index c5f2bcbd8..4ad1891af 100644 --- a/deps_licenses/licenses_linux_user.txt.md5 +++ b/deps_licenses/licenses_linux_user.txt.md5 @@ -1 +1 @@ -8ea8aec4f5aac03565c2dcb9f3f8a1da +85a519f8389929d8e87aa0367decff53 diff --git a/deps_licenses/licenses_mac_intel_user.txt b/deps_licenses/licenses_mac_intel_user.txt index f3917dab5..79254ffe6 100644 --- a/deps_licenses/licenses_mac_intel_user.txt +++ b/deps_licenses/licenses_mac_intel_user.txt @@ -6,36 +6,36 @@ brevitas, 0.10.2, UNKNOWN certifi, 2024.8.30, Mozilla Public License 2.0 (MPL 2.0) charset-normalizer, 3.4.0, MIT License coloredlogs, 15.0.1, MIT License -concrete-python, 2.8.1, BSD-3-Clause +concrete-python, 2.9.0rc1.dev20241130, BSD-3-Clause dependencies, 2.0.1, BSD License dill, 0.3.9, BSD License filelock, 3.16.1, The Unlicense (Unlicense) -flatbuffers, 2.0.7, Apache Software License -fsspec, 2024.9.0, BSD License -huggingface-hub, 0.25.2, Apache Software License +flatbuffers, 24.3.25, Apache Software License +fsspec, 2024.10.0, BSD License +huggingface-hub, 0.26.3, Apache Software License humanfriendly, 10.0, MIT License hummingbird-ml, 0.4.11, MIT License idna, 3.10, BSD License importlib_resources, 6.4.5, Apache Software License joblib, 1.4.2, BSD License -jsonpickle, 3.3.0, BSD License +jsonpickle, 4.0.0, BSD License mpmath, 1.3.0, BSD License networkx, 3.1, BSD License -numpy, 1.24.2, BSD License -onnx, 1.16.1, Apache License v2.0 +numpy, 1.26.4, BSD License +onnx, 1.17.0, Apache License v2.0 onnxconverter-common, 1.13.0, MIT License onnxmltools, 1.12.0, Apache Software License onnxoptimizer, 0.3.13, Apache License v2.0 onnxruntime, 1.18.0, MIT License -packaging, 24.1, Apache Software License; BSD License +packaging, 24.2, Apache Software License; BSD License pandas, 2.0.3, BSD License -protobuf, 4.25.5, 3-Clause BSD License +protobuf, 3.20.3, BSD-3-Clause psutil, 5.9.8, BSD License python-dateutil, 2.9.0.post0, Apache Software License; BSD License pytz, 2024.2, MIT License requests, 2.32.3, Apache Software License -scikit-learn, 1.1.3, BSD License -scipy, 1.10.1, BSD License +scikit-learn, 1.4.0, BSD License +scipy, 1.13.1, BSD License six, 1.16.0, MIT License skl2onnx, 1.17.0, Apache Software License skops, 0.5.0, MIT @@ -44,7 +44,7 @@ sympy, 1.13.3, BSD License tabulate, 0.8.10, MIT License threadpoolctl, 3.5.0, BSD License torch, 2.2.2, BSD License -tqdm, 4.66.5, MIT License; Mozilla Public License 2.0 (MPL 2.0) +tqdm, 4.67.1, MIT License; Mozilla Public License 2.0 (MPL 2.0) typing_extensions, 4.12.2, Python Software Foundation License tzdata, 2024.2, Apache Software License unfoldNd, 0.2.2, MIT License diff --git a/deps_licenses/licenses_mac_intel_user.txt.md5 b/deps_licenses/licenses_mac_intel_user.txt.md5 index c5f2bcbd8..4ad1891af 100644 --- a/deps_licenses/licenses_mac_intel_user.txt.md5 +++ b/deps_licenses/licenses_mac_intel_user.txt.md5 @@ -1 +1 @@ -8ea8aec4f5aac03565c2dcb9f3f8a1da +85a519f8389929d8e87aa0367decff53 diff --git a/deps_licenses/licenses_mac_silicon_user.txt b/deps_licenses/licenses_mac_silicon_user.txt index 36e4d389a..e4e68a8c1 100644 --- a/deps_licenses/licenses_mac_silicon_user.txt +++ b/deps_licenses/licenses_mac_silicon_user.txt @@ -6,36 +6,36 @@ brevitas, 0.10.2, UNKNOWN certifi, 2024.8.30, Mozilla Public License 2.0 (MPL 2.0) charset-normalizer, 3.4.0, MIT License coloredlogs, 15.0.1, MIT License -concrete-python, 2.8.1, BSD-3-Clause +concrete-python, 2.9.0rc1.dev20241130, BSD-3-Clause dependencies, 2.0.1, BSD License dill, 0.3.9, BSD License filelock, 3.16.1, The Unlicense (Unlicense) -flatbuffers, 2.0.7, Apache Software License -fsspec, 2024.9.0, BSD License -huggingface-hub, 0.25.2, Apache Software License +flatbuffers, 24.3.25, Apache Software License +fsspec, 2024.10.0, BSD License +huggingface-hub, 0.26.3, Apache Software License humanfriendly, 10.0, MIT License hummingbird-ml, 0.4.11, MIT License idna, 3.10, BSD License importlib_resources, 6.4.5, Apache Software License joblib, 1.4.2, BSD License -jsonpickle, 3.3.0, BSD License +jsonpickle, 4.0.0, BSD License mpmath, 1.3.0, BSD License networkx, 3.1, BSD License -numpy, 1.24.2, BSD License -onnx, 1.16.1, Apache License v2.0 +numpy, 1.26.4, BSD License +onnx, 1.17.0, Apache License v2.0 onnxconverter-common, 1.13.0, MIT License onnxmltools, 1.12.0, Apache Software License onnxoptimizer, 0.3.13, Apache License v2.0 onnxruntime, 1.18.0, MIT License -packaging, 24.1, Apache Software License; BSD License +packaging, 24.2, Apache Software License; BSD License pandas, 2.0.3, BSD License -protobuf, 4.25.5, 3-Clause BSD License +protobuf, 3.20.3, BSD-3-Clause psutil, 5.9.8, BSD License python-dateutil, 2.9.0.post0, Apache Software License; BSD License pytz, 2024.2, MIT License requests, 2.32.3, Apache Software License -scikit-learn, 1.1.3, BSD License -scipy, 1.10.1, BSD License +scikit-learn, 1.4.0, BSD License +scipy, 1.13.1, BSD License six, 1.16.0, MIT License skl2onnx, 1.17.0, Apache Software License skops, 0.5.0, MIT @@ -44,7 +44,7 @@ sympy, 1.13.3, BSD License tabulate, 0.8.10, MIT License threadpoolctl, 3.5.0, BSD License torch, 2.3.1, BSD License -tqdm, 4.66.5, MIT License; Mozilla Public License 2.0 (MPL 2.0) +tqdm, 4.67.1, MIT License; Mozilla Public License 2.0 (MPL 2.0) typing_extensions, 4.12.2, Python Software Foundation License tzdata, 2024.2, Apache Software License unfoldNd, 0.2.2, MIT License diff --git a/deps_licenses/licenses_mac_silicon_user.txt.md5 b/deps_licenses/licenses_mac_silicon_user.txt.md5 index c5f2bcbd8..4ad1891af 100644 --- a/deps_licenses/licenses_mac_silicon_user.txt.md5 +++ b/deps_licenses/licenses_mac_silicon_user.txt.md5 @@ -1 +1 @@ -8ea8aec4f5aac03565c2dcb9f3f8a1da +85a519f8389929d8e87aa0367decff53 diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index ecffa09bf..49120c155 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -1,4 +1,5 @@ -FROM ubuntu:20.04 +ARG UBUNTU_BASE=20.04 +FROM ubuntu:${UBUNTU_BASE} ENV TZ=Europe/Paris RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone @@ -7,10 +8,6 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # original archive showed performance issues and is farther away RUN sed -i 's|^deb http://archive|deb http://fr.archive|g' /etc/apt/sources.list -COPY ./script/make_utils/setup_os_deps.sh ./setup_os_deps.sh -COPY ./script/make_utils/detect_docker.sh ./detect_docker.sh -RUN ./setup_os_deps.sh --linux-install-python && rm ./setup_os_deps.sh && rm ./detect_docker.sh - ENV SRC_DIR=/src # Default to Ubuntu default uid for first user @@ -19,15 +16,20 @@ ARG BUILD_UID=1000 # Get sudo and vim for our future user RUN apt-get update && \ - apt-get install --no-install-recommends -y sudo vim && \ + apt-get install --no-install-recommends -y sudo vim adduser && \ rm -rf /var/lib/apt/lists/* +# For ubuntu>23 the ubuntu user will exist and use uid/gid=1000 +# we need to remove this user if it exists +RUN userdel -f -r ubuntu; exit 0 + # From https://dev.to/emmanuelnk/using-sudo-without-password-prompt-as-non-root-docker-user-52bg # Create dev_user and add it to relevant groups # Create /src and make the dev user own it # Ensure sudo group users are not asked for a password when using # sudo command by ammending sudoers file -RUN groupadd -g "${BUILD_GID}" dev_user && \ + +RUN groupadd -f -g "${BUILD_GID}" dev_user && \ adduser --disabled-password \ --uid "${BUILD_UID}" --gid "${BUILD_GID}" --shell /bin/bash --gecos "" dev_user && \ usermod -aG sudo dev_user && \ @@ -35,9 +37,17 @@ RUN groupadd -g "${BUILD_GID}" dev_user && \ chown dev_user "${SRC_DIR}" && \ echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers +RUN groupadd docker && usermod -aG docker dev_user + # Now switch to the newly created user USER dev_user +RUN cd /home/dev_user + +COPY ./script/make_utils/setup_os_deps.sh ./setup_os_deps.sh +COPY ./script/make_utils/detect_docker.sh ./detect_docker.sh +RUN ./setup_os_deps.sh --linux-install-python && sudo rm ./setup_os_deps.sh && sudo rm ./detect_docker.sh + RUN echo "source ~/dev_venv/bin/activate" >> ~/.bashrc && \ echo "if [[ \"\$?\" != \"0\" ]]; then" >> ~/.bashrc && \ echo " python3 -m venv ~/dev_venv" >> ~/.bashrc && \ diff --git a/docker/release_resources/sanity_check.py b/docker/release_resources/sanity_check.py index 535437584..911edb4dc 100644 --- a/docker/release_resources/sanity_check.py +++ b/docker/release_resources/sanity_check.py @@ -94,7 +94,7 @@ def ml_check(args, keyring_dir_as_str): print(f"Prediction sklearn : {y_pred[:nb_samples]}") print( - f"{numpy.sum(y_pred_simulated==y_pred[:nb_samples])}/{nb_samples} " + f"{numpy.sum(y_pred_simulated == y_pred[:nb_samples])}/{nb_samples} " "predictions are similar between the FHE simulated model and the clear sklearn model." ) diff --git a/docs/advanced_examples/DecisionTreeClassifier.ipynb b/docs/advanced_examples/DecisionTreeClassifier.ipynb index d7ffa485c..da5714ffb 100644 --- a/docs/advanced_examples/DecisionTreeClassifier.ipynb +++ b/docs/advanced_examples/DecisionTreeClassifier.ipynb @@ -319,7 +319,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -332,7 +332,7 @@ ], "source": [ "print(\n", - " f\"{numpy.sum(y_pred_fhe==y_pred)}/\"\n", + " f\"{numpy.sum(y_pred_fhe == y_pred)}/\"\n", " \"10 predictions are similar between the FHE model and the clear sklearn model.\"\n", ")" ] diff --git a/docs/advanced_examples/GLMComparison.ipynb b/docs/advanced_examples/GLMComparison.ipynb index b2a6171a1..f4567b28d 100644 --- a/docs/advanced_examples/GLMComparison.ipynb +++ b/docs/advanced_examples/GLMComparison.ipynb @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -42,6 +42,7 @@ "from timeit import default_timer as timer\n", "\n", "import numpy as np\n", + "import sklearn\n", "from sklearn.compose import ColumnTransformer\n", "from sklearn.datasets import fetch_openml\n", "from sklearn.linear_model import GammaRegressor as SklearnGammaRegressor\n", @@ -162,10 +163,13 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ + "sklearn_sparse_arg = (\n", + " {\"sparse\": False} if \"1.1.\" in sklearn.__version__ else {\"sparse_output\": False}\n", + ")\n", "log_scale_transformer = make_pipeline(FunctionTransformer(np.log, validate=False), StandardScaler())\n", "\n", "linear_model_preprocessor = ColumnTransformer(\n", @@ -175,7 +179,7 @@ " (\"log_scaled_numeric\", log_scale_transformer, [\"Density\"]),\n", " (\n", " \"onehot_categorical\",\n", - " OneHotEncoder(sparse=False),\n", + " OneHotEncoder(**sklearn_sparse_arg),\n", " [\"VehBrand\", \"VehPower\", \"VehGas\", \"Region\", \"Area\"],\n", " ),\n", " ],\n", diff --git a/docs/advanced_examples/LogisticRegressionTraining.ipynb b/docs/advanced_examples/LogisticRegressionTraining.ipynb index fd1ea458b..ca9d7023b 100644 --- a/docs/advanced_examples/LogisticRegressionTraining.ipynb +++ b/docs/advanced_examples/LogisticRegressionTraining.ipynb @@ -466,7 +466,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -515,7 +515,7 @@ " # Measure accuracy of the model with FHE simulation\n", " y_pred_partial_fhe = model_concrete_partial.predict(x_test, fhe=\"simulate\")\n", "\n", - " accuracy_partial = accuracy_score(y_test, y_pred_partial_fhe).mean()\n", + " accuracy_partial = accuracy_score(y_test, y_pred_partial_fhe)\n", " accuracy_scores.append(accuracy_partial)\n", "\n", "# Plot the evolution of accuracy throughout the training process\n", diff --git a/docs/advanced_examples/PoissonRegression.ipynb b/docs/advanced_examples/PoissonRegression.ipynb index 06fd4f34d..24df931c7 100644 --- a/docs/advanced_examples/PoissonRegression.ipynb +++ b/docs/advanced_examples/PoissonRegression.ipynb @@ -35,6 +35,7 @@ "import time\n", "\n", "import numpy as np\n", + "import sklearn\n", "from sklearn.datasets import fetch_openml\n", "from sklearn.linear_model import PoissonRegressor as SklearnPoissonRegressor\n", "from sklearn.metrics import mean_poisson_deviance\n", @@ -125,7 +126,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABNYAAAJwCAYAAABF4Ox2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC6GElEQVR4nOzdfXzN9f/H8efZ7MrFxlxsREiKKRTDiqKwUF9CLipGuvjmEBZ9v35dSReKEt86kgpd0AWhUrnWlYsapQtDEhE2V9lcbrN9fn+cdnKcc2afs7Ods3ncb7dz47w/7/N+vz6vzznb57z2ubAYhmEIAAAAAAAAgClB/g4AAAAAAAAAKI0orAEAAAAAAABeoLAGAAAAAAAAeIHCGgAAAAAAAOAFCmsAAAAAAACAFyisAQAAAAAAAF6gsAYAAAAAAAB4gcIaAAAAAAAA4AUKawAAAAAAAIAXKKwB8Jvt27erc+fOioqKksVi0aJFi4o0nsVi0bhx40y/7osvvpDFYtEXX3xRpPlhN27cOFksFn+HAQCAafXq1dOgQYP8HUaZN2nSJF1yySUKDg5W8+bN/R0OTFqyZImaN2+u8PBwWSwWHT161OuxirIfzj4nAgWFNVwQZs+eLYvF4vbx3//+19/hXbCSkpL0888/6+mnn9bbb7+tli1b+jukC1L+Dk3+IywsTDExMWrfvr2eeeYZHTx40N8h+lSfPn1ksVj0n//8x9+hAACKUf7+34YNG9wub9++va644ooiz/PZZ5959Ye9C9WyZcv00EMP6dprr9WsWbP0zDPPeOw7aNAgj/vwS5YsKcGoke/w4cPq06ePIiIiZLPZ9Pbbb6tChQr+Dgvwq3L+DgAoSePHj1f9+vWd2nyxQwXzTp06pXXr1unhhx/WsGHD/BrLddddp1OnTik0NNSvcfjbAw88oPj4eOXm5urgwYNau3atHn/8cU2ePFkffPCBbrjhhkKN88gjjwRswTozM1OffPKJ6tWrp3fffVfPPvssf+kEADhs27ZNQUHmjj347LPPZLPZKK4V0qpVqxQUFKQ33nijUPteYWFhev31113amzVrVhzh4TxSUlJ07NgxPfnkk+rYsaNfYwnkfU5cWCis4YLSpUuXQh8Vdfr0aYWGhpreuULh5B8FVblyZf8GIikoKEjh4eH+DsPv2rVrp969ezu1/fjjj+rcubN69eql1NRU1axZ0+PrT5w4oQoVKqhcuXIqV65kf70YhqHTp08rIiKiwH4ffvihcnNzNXPmTN1www366quvdP3115dQlACAQBcWFubvEEzL//1bWhw4cEARERGF/oNmuXLldOeddxZ6/NKWj9LmwIEDkgJjH94f+5yAO1QMAP1zKtx7772nRx55RBdddJHKly+vzMxMSdK3336rm266SVFRUSpfvryuv/56rVmzxmWcb775RvHx8QoPD1eDBg306quvupz7v2vXLlksFs2ePdvl9e6uEbZ3717dddddiomJUVhYmJo0aaKZM2e6jf+DDz7Q008/rdq1ays8PFw33nijfvvtN5d5vv32W3Xt2lVVqlRRhQoV1LRpU02dOlWSNGvWLFksFv3www8ur3vmmWcUHBysvXv3FpjPH374QV26dFFkZKQqVqyoG2+8UevXr3csHzdunOrWrStJGjNmjCwWi+rVq1fgmKdPn9a4ceN02WWXKTw8XDVr1lTPnj21Y8cOj6/5448/NHToUF1++eWKiIhQ1apVddttt2nXrl1O/dxd2yH/9JCffvpJ119/vcqXL69LL71U8+fPlyR9+eWXat26tSIiInT55ZdrxYoVTmMeO3ZMI0eOVL169RQWFqYaNWqoU6dO+v777z3GO3/+fFksFn355Zcuy1599VVZLBb98ssvkqS0tDQNHjxYtWvXVlhYmGrWrKnu3bu7rFtRNWvWTFOmTNHRo0f18ssvO9rz39epqam6/fbbVaVKFbVt29ZpWb4rrrhCHTp0cBk7Ly9PF110kVMxLy8vT1OmTFGTJk0UHh6umJgY3Xffffrrr7+cXluvXj3dfPPNWrp0qVq2bKmIiAi9+uqr512fOXPmqFOnTurQoYMaN26sOXPmuO2Xv90jIiJUu3ZtPfXUU47Pxrk5/vzzz9WuXTtVqFBBlSpVUrdu3bR58+bzxgIACDznXmMtJydHTzzxhBo2bKjw8HBVrVpVbdu21fLlyyXZT1W02WyS5HSaYr4TJ07owQcfVJ06dRQWFqbLL79czz//vAzDcJr31KlTeuCBB1StWjVVqlRJ//rXv7R3716XfcOCfv/+9NNPGjRokC655BKFh4crNjZWd911lw4fPuw0V/4Yv/76q+68805FRUWpevXqevTRR2UYhvbs2aPu3bsrMjJSsbGxeuGFFwqVuzNnzujJJ59UgwYNFBYWpnr16un//u//lJWV5ehjsVg0a9YsnThxwpErd/vEhVVQPiTpnXfeUYsWLRQREaHo6Gj169dPe/bscRlnxowZatCggSIiItSqVSt9/fXXat++vdq3b+/ok39qcWH2I6XCfX/Ij/+3337ToEGDVLlyZUVFRWnw4ME6efKkS5zvvPOOWrVqpfLly6tKlSq67rrrtGzZMkn2S6xUq1ZNOTk5Lq/r3LmzLr/88vOlU/PmzXPkq1q1arrzzjud9vvbt2+vpKQkSVJ8fLwsFst5r0m4d+9eDRkyRLVq1VJYWJjq16+v+++/X9nZ2R5f8/XXX+u2227TxRdfrLCwMNWpU0ejRo3SqVOnnPq5u8aaxWLRsGHDNG/ePMXFxSkiIkIJCQn6+eefJdn3qS+99FKFh4erffv2Lttz+/bt6tWrl2JjYxUeHq7atWurX79+ysjIOF/6cAGjvIsLSkZGhg4dOuTUVq1aNcf/n3zySYWGhmr06NHKyspSaGioVq1apS5duqhFixZ6/PHHFRQUpFmzZumGG27Q119/rVatWkmSfv75Z3Xu3FnVq1fXuHHjdObMGT3++OOKiYnxOt709HS1adPG8QuievXq+vzzzzVkyBBlZmZq5MiRTv2fffZZBQUFafTo0crIyNDEiRN1xx136Ntvv3X0Wb58uW6++WbVrFlTI0aMUGxsrLZs2aLFixdrxIgR6t27t6xWq+bMmaOrrrrKafw5c+aoffv2uuiiizzGvHnzZrVr106RkZF66KGHFBISoldffVXt27d3FKN69uypypUra9SoUerfv7+6du2qihUrehwzNzdXN998s1auXKl+/fppxIgROnbsmJYvX65ffvlFDRo0cPu6lJQUrV27Vv369VPt2rW1a9cuvfLKK2rfvr1SU1NVvnz5AvP/119/6eabb1a/fv1022236ZVXXlG/fv00Z84cjRw5Uv/+9791++23a9KkSerdu7f27NmjSpUqSZL+/e9/a/78+Ro2bJji4uJ0+PBhffPNN9qyZYuuvvpqt/N169ZNFStW1AcffOByFNX777+vJk2aOE5d7tWrlzZv3qzhw4erXr16OnDggJYvX67du3eft0hpVu/evTVkyBAtW7ZMTz/9tNOy2267TQ0bNtQzzzzj8iUhX9++fTVu3DilpaUpNjbW0f7NN99o37596tevn6Ptvvvu0+zZszV48GA98MAD2rlzp15++WX98MMPWrNmjUJCQhx9t23bpv79++u+++7TPffcc94dxn379mn16tV68803JUn9+/fXiy++qJdfftnpr+Z79+5Vhw4dZLFYNHbsWFWoUEGvv/6626MY3n77bSUlJSkxMVHPPfecTp48qVdeeUVt27bVDz/84PNtAQAwz93+nyS3BYhzjRs3ThMmTNDdd9+tVq1aKTMzUxs2bND333+vTp066b777tO+ffu0fPlyvf32206vNQxD//rXv7R69WoNGTJEzZs319KlSzVmzBjt3btXL774oqPvoEGD9MEHH2jAgAFq06aNvvzyS3Xr1s1jXO5+/y5fvly///67Bg8erNjYWG3evFkzZszQ5s2btX79epcCRN++fdW4cWM9++yz+vTTT/XUU08pOjpar776qm644QY999xzmjNnjkaPHq34+Hhdd911Bebq7rvv1ptvvqnevXvrwQcf1LfffqsJEyZoy5YtWrhwoST7780ZM2bou+++c5zeec0115x3O5y7/UJCQhQVFVVgPp5++mk9+uij6tOnj+6++24dPHhQL730kq677jr98MMPjiOu3njjDd1333265pprNHLkSP3+++/617/+pejoaNWpU+e8sblT2O8P+fr06aP69etrwoQJ+v777/X666+rRo0aeu655xx9nnjiCY0bN07XXHONxo8fr9DQUH377bdatWqVOnfurAEDBuitt97S0qVLdfPNNztel5aWplWrVunxxx8vMOb8/a/4+HhNmDBB6enpmjp1qtasWePI18MPP6zLL79cM2bMcFxix9N+uGTf92rVqpWOHj2qe++9V40aNdLevXs1f/58nTx50uNRi/PmzdPJkyd1//33q2rVqvruu+/00ksv6c8//9S8efPOm/+vv/5aH3/8saxWqyRpwoQJuvnmm/XQQw9p2rRpGjp0qP766y9NnDhRd911l1atWiVJys7OVmJiorKysjR8+HDFxsZq7969Wrx4sY4ePer0ngOcGMAFYNasWYYktw/DMIzVq1cbkoxLLrnEOHnypON1eXl5RsOGDY3ExEQjLy/P0X7y5Emjfv36RqdOnRxtPXr0MMLDw40//vjD0ZaammoEBwcbZ3/Udu7caUgyZs2a5RKnJOPxxx93PB8yZIhRs2ZN49ChQ079+vXrZ0RFRTlizY+/cePGRlZWlqPf1KlTDUnGzz//bBiGYZw5c8aoX7++UbduXeOvv/5yGvPs9evfv79Rq1YtIzc319H2/fffe4z7bD169DBCQ0ONHTt2ONr27dtnVKpUybjuuutc8jBp0qQCxzMMw5g5c6YhyZg8ebLLsrPjPjd/Z2/LfOvWrTMkGW+99ZajLT9/q1evdrRdf/31hiRj7ty5jratW7cakoygoCBj/fr1jvalS5e65CYqKsqwWq3nXbdz9e/f36hRo4Zx5swZR9v+/fuNoKAgY/z48YZhGMZff/1V6NwVRv76z5s3z2OfZs2aGVWqVHE8f/zxxw1JRv/+/V365i/Lt23bNkOS8dJLLzn1Gzp0qFGxYkXHdvr6668NScacOXOc+i1ZssSlvW7duoYkY8mSJYVez+eff96IiIgwMjMzDcMwjF9//dWQZCxcuNCp3/Dhww2LxWL88MMPjrbDhw8b0dHRhiRj586dhmEYxrFjx4zKlSsb99xzj9Pr09LSjKioKJd2AEDJKmj/L//RpEkTp9fUrVvXSEpKcjxv1qyZ0a1btwLnsVqtTr/38i1atMiQZDz11FNO7b179zYsFovx22+/GYZhGBs3bjQkGSNHjnTqN2jQIJd9m4J+/7rb73n33XcNScZXX33lMsa9997raDtz5oxRu3Ztw2KxGM8++6yj/a+//jIiIiKccuLOpk2bDEnG3Xff7dQ+evRoQ5KxatUqR1tSUpJRoUKFAsc7u6+77Xb99dc7rcu5+di1a5cRHBxsPP30007tP//8s1GuXDlHe3Z2tlGjRg2jefPmTvvQM2bMcJrHMP55P+XvB+Q7dz/SzPeH/PjvuusupzFvvfVWo2rVqo7n27dvN4KCgoxbb73Vaf88fz7DMIzc3Fyjdu3aRt++fZ2WT5482bBYLMbvv/9ueJKfhyuuuMI4deqUo33x4sWGJOOxxx5zyUNKSorH8fINHDjQCAoKcts3P253++Hu3ssTJkwwLBaL03etc/c5DcP+fSAsLMxpO7366quGJCM2NtaxH2gYhjF27FinbfrDDz+cd58YcIdTQXFBsdlsWr58udPjbElJSU7XaNq0aZO2b9+u22+/XYcPH9ahQ4d06NAhnThxQjfeeKO++uor5eXlKTc3V0uXLlWPHj108cUXO17fuHFjJSYmehWrYRj68MMPdcstt8gwDMfchw4dUmJiojIyMlxOKxw8eLDTX37atWsnSfr9998l2U/R3Llzp0aOHOlyXYSz/4o5cOBAx9E9+ebMmaOIiAj16tXLY8y5ublatmyZevTooUsuucTRXrNmTd1+++365ptvHKfXmvHhhx+qWrVqGj58uMuygi48f/a2zMnJ0eHDh3XppZeqcuXKBZ6Sma9ixYpOR1Ndfvnlqly5sho3bqzWrVs72vP/n59nyX7diW+//Vb79u077zxn69u3rw4cOOB0OsH8+fOVl5envn37OtYrNDRUX3zxhcspksWlYsWKOnbsmEv7v//97/O+9rLLLlPz5s31/vvvO9pyc3M1f/583XLLLY7tNG/ePEVFRalTp05O7/cWLVqoYsWKTu9HSapfv76pz9ecOXPUrVs3x1GFDRs2VIsWLVxOB12yZIkSEhLUvHlzR1t0dLTuuOMOp37Lly/X0aNH1b9/f6d4g4OD1bp1a5d4AQD+4W7/b/ny5WratOl5X1u5cmVt3rxZ27dvNz3vZ599puDgYD3wwANO7Q8++KAMw9Dnn38uSY67Ww4dOtSpn7v9nnzufv+evd9z+vRpHTp0SG3atJEkt/s9d999t+P/wcHBatmypQzD0JAhQxztlStX1uWXX+60j+POZ599JklKTk52an/wwQclSZ9++mmBry9IeHi4y7Y79/TUc/OxYMEC5eXlqU+fPk6/o2NjY9WwYUPH7+gNGzbowIED+ve//+20Dz1o0CCvj04q7PeHguJv166dDh8+7NhvXrRokfLy8vTYY4+5XP85f184KChId9xxhz7++GOnfbY5c+bommuucbmB29ny8zB06FCn6w5369ZNjRo18mr75eXladGiRbrlllvcXuO6sPvwJ06c0KFDh3TNNdfIMAy3l6s514033uh01kD+vnqvXr0c+4Fnt+e/v/O3+dKlS92eigt4wqmguKC0atWqwJsXnPsLJ38nKv9aAu5kZGQoKytLp06dUsOGDV2WX3755Y6dDTMOHjyoo0ePasaMGZoxY4bbPvkXD813dlFPkqpUqSJJjuJL/vXIzncn1E6dOqlmzZqaM2eObrzxRuXl5endd99V9+7dnX4ZuYv55MmTbk/Ja9y4sfLy8rRnzx41adKkwPnPtWPHDl1++eWmL0566tQpTZgwQbNmzdLevXudTlUszHUSateu7fJLPyoqyuW0gPxfwmcXuSZOnKikpCTVqVNHLVq0UNeuXTVw4ECngqM7+dfieP/993XjjTdKsp8G2rx5c1122WWS7BdWfu655/Tggw8qJiZGbdq00c0336yBAwc6nWrpS8ePH3e77QvaSTtb37599X//93/au3evLrroIn3xxRc6cOCAo1go2T9vGRkZqlGjhtsxzn2/F3ZuSdqyZYt++OEHDRw40Om6g+3bt5fNZlNmZqYiIyMl2a/Nl5CQ4DLGpZde6vQ8/+eDp7ul5o8HAPAvT/t/VapUcXuK6NnGjx+v7t2767LLLtMVV1yhm266SQMGDChUUe6PP/5QrVq1XH5/Nm7c2LE8/9+goCCX32vn/t45m7vfgUeOHNETTzyh9957z+V3prv9nnP3G6OiohQeHu50mZT89nOv03au/HU4N+bY2FhVrlzZsa7eCA4OPu/dJ93twxuG4XbfXJLj0hL5cZ3bLyQk5Lz7bJ4U9vtD/n66VPA+fGRkpHbs2KGgoCDFxcUVOPfAgQP13HPPaeHChRo4cKC2bdumjRs3avr06QW+Lj8P7vbhGzVqpG+++abA17tz8OBBZWZmnvd7hzu7d+/WY489po8//tjlj8iF2Yd3996WdN59+Pr16ys5OVmTJ0/WnDlz1K5dO/3rX/9yXIsQ8ITCGnCWc+8omP/XpEmTJjkdvXK2ihUrOl2U9Xw8/XUmNzfX7dx33nmnx1/M5+7UBQcHu+13dkGpMIKDg3X77bfrtdde07Rp07RmzRrt27fP1B2ZAsHw4cM1a9YsjRw5UgkJCYqKipLFYlG/fv1c/lLojqd8FibPffr0Ubt27bRw4UItW7ZMkyZN0nPPPacFCxaoS5cuHucMCwtTjx49tHDhQk2bNk3p6elas2aNnnnmGad+I0eO1C233KJFixZp6dKlevTRRzVhwgStWrXK5dp4RZWTk6Nff/3V7Y7R+e7Cma9v374aO3as5s2bp5EjR+qDDz5QVFSUbrrpJkefvLw81ahRw+MNBapXr+7V3JL9Yr+SNGrUKI0aNcpl+YcffqjBgwcXejzpn8/o22+/7bagyV2qAKD0u+6667Rjxw599NFHWrZsmV5//XW9+OKLmj59utMRXyXN3e/APn36aO3atRozZoyaN2+uihUrKi8vTzfddJPb/R53+zNF3Zcs6Cik4uRuH95isejzzz93u04FXdvXE7P78Of7/nA2X+3Dx8XFqUWLFnrnnXc0cOBAvfPOOwoNDVWfPn1MjeNPubm56tSpk44cOaL//Oc/atSokSpUqKC9e/dq0KBBxb4P/8ILL2jQoEGOz/wDDzygCRMmaP369apdu7Z3K4Uyj71+oAD5F+OMjIws8C9l1atXV0REhNvTBLZt2+b0PP8vUEePHnVqP/cvedWrV1elSpWUm5t73r/SFVb++vzyyy/nHXPgwIF64YUX9Mknn+jzzz9X9erVz3vaXfXq1VW+fHmXdZakrVu3KigoyKuLwDZo0EDffvutcnJynC5efz7z589XUlKS0+kCp0+fdsl9calZs6aGDh2qoUOH6sCBA7r66qv19NNPF1hYk+xFqDfffFMrV67Uli1bZBiG05Fd+Ro0aKAHH3xQDz74oLZv367mzZvrhRdecBSRfGX+/Pk6deqU16c1S/a/ALZq1Urvv/++hg0bpgULFqhHjx5ONwRo0KCBVqxYoWuvvdZU0ex8DMPQ3Llz1aFDB5fTbCT7TUvmzJnjKKzVrVvX7d10z23L/zzVqFHDZ59RAEDgiY6O1uDBgzV48GAdP35c1113ncaNG+corHkquNStW1crVqzQsWPHnI5a27p1q2N5/r95eXnauXOn05FT7n4XefLXX39p5cqVeuKJJ/TYY4852r05hdUb+euwfft2xxF5kv1GXEePHnWsa0lp0KCBDMNQ/fr1HUf8u5Mf1/bt252OQM/JydHOnTvVrFkzR1th9+EL+/3BjAYNGigvL0+pqakei3X5Bg4cqOTkZO3fv19z585Vt27dnI6Ocyc/D9u2bXM5En/btm1ebb/q1asrMjLScUf7wvr555/166+/6s0339TAgQMd7edewqc4XXnllbryyiv1yCOPaO3atbr22ms1ffp0PfXUUyUWA0oXrrEGFKBFixZq0KCBnn/+eR0/ftxl+cGDByXZ//qRmJioRYsWaffu3Y7lW7Zs0dKlS51eExkZqWrVqumrr75yap82bZrT8+DgYPXq1Usffvih219I+XObcfXVV6t+/fqaMmWKy07BuX8Ra9q0qZo2barXX39dH374ofr163feI3CCg4PVuXNnffTRR063rk5PT9fcuXPVtm1br06P69Wrlw4dOqSXX37ZZVlBf8kLDg52Wf7SSy+5/GXR13Jzc10OU69Ro4Zq1apVqKMbO3bsqOjoaL3//vt6//331apVK6dTHE6ePKnTp087vaZBgwaqVKmS0/j79+/X1q1bC3XXM09+/PFHjRw5UlWqVHHcWclbffv21fr16zVz5kwdOnTIpVjYp08f5ebm6sknn3R57ZkzZ7wuiK5Zs0a7du3S4MGD1bt3b5dH3759tXr1asf18BITE7Vu3Tpt2rTJMcaRI0dcjqRLTExUZGSknnnmGbc59uYzCgAILOeeAlmxYkVdeumlTr9vK1SoIMm14NK1a1fl5ua67L+8+OKLslgsjj+05f/h6tx9wZdeeqnQceYfiXPufs+UKVMKPUZRdO3a1e18kydPlqQC73BaHHr27Kng4GA98cQTLjkxDMOxXVu2bKnq1atr+vTpys7OdvSZPXu2y/bML5idvQ+fm5vrcsmWwn5/MKNHjx4KCgrS+PHjXY7YOnf9+vfvL4vFohEjRuj3338v1BknLVu2VI0aNTR9+nSn9/bnn3+uLVu2eLX9goKC1KNHD33yySfasGGDy3JP+/Du3suGYWjq1KmmYzArMzNTZ86ccWq78sorFRQUZOoMJVx4OGINKEBQUJBef/11denSRU2aNNHgwYN10UUXae/evVq9erUiIyP1ySefSLLfAnvJkiVq166dhg4dqjNnzuill15SkyZN9NNPPzmNe/fdd+vZZ5/V3XffrZYtW+qrr77Sr7/+6jL/s88+q9WrV6t169a65557FBcXpyNHjuj777/XihUrdOTIEdPr88orr+iWW25R8+bNNXjwYNWsWVNbt27V5s2bXYqAAwcO1OjRoyWp0KeBPvXUU1q+fLnatm2roUOHqly5cnr11VeVlZWliRMnmor37DjeeustJScn67vvvlO7du104sQJrVixQkOHDlX37t3dvu7mm2/W22+/raioKMXFxWndunVasWKFqlat6lUchXXs2DHVrl1bvXv3VrNmzVSxYkWtWLFCKSkpLhfbdSckJEQ9e/bUe++9pxMnTuj55593Wv7rr7/qxhtvVJ8+fRQXF6dy5cpp4cKFSk9Pd7rZwtixY/Xmm29q586dThdw9eTrr7/W6dOnlZubq8OHD2vNmjX6+OOPFRUVpYULFxb5+m19+vTR6NGjNXr0aEVHR7v8Fff666/XfffdpwkTJmjTpk3q3LmzQkJCtH37ds2bN09Tp05V7969Tc87Z84cBQcHe9wp/Ne//qWHH35Y7733npKTk/XQQw/pnXfeUadOnTR8+HBVqFBBr7/+ui6++GIdOXLEcWRCZGSkXnnlFQ0YMEBXX321+vXrp+rVq2v37t369NNPde2117otBgMASo+4uDi1b99eLVq0UHR0tDZs2KD58+dr2LBhjj4tWrSQJD3wwANKTExUcHCw+vXrp1tuuUUdOnTQww8/rF27dqlZs2ZatmyZPvroI40cOdJRqGnRooV69eqlKVOm6PDhw2rTpo2+/PJLx75hYU6vjIyM1HXXXaeJEycqJydHF110kZYtW6adO3cWQ1ZcNWvWTElJSZoxY4aOHj2q66+/Xt99953efPNN9ejRQx06dCiROPI1aNBATz31lMaOHatdu3apR48eqlSpknbu3KmFCxfq3nvv1ejRoxUSEqKnnnpK9913n2644Qb17dtXO3fu1KxZs1yusdakSRO1adNGY8eO1ZEjRxQdHa333nvPpRBj5vtDYV166aV6+OGH9eSTT6pdu3bq2bOnwsLClJKSolq1amnChAmOvtWrV9dNN92kefPmqXLlyoUqioWEhOi5557T4MGDdf3116t///5KT0/X1KlTVa9ePbeX0SiMZ555RsuWLdP111+ve++9V40bN9b+/fs1b948ffPNNy43U5Ps13Rr0KCBRo8erb179yoyMlIffvhhidywa9WqVRo2bJhuu+02XXbZZTpz5ozefvttxwEPgEcldv9RwI/Od1vo/Ns8e7q18g8//GD07NnTqFq1qhEWFmbUrVvX6NOnj7Fy5Uqnfl9++aXRokULIzQ01LjkkkuM6dOnu70N9MmTJ40hQ4YYUVFRRqVKlYw+ffoYBw4ccLmlumEYRnp6umG1Wo06deoYISEhRmxsrHHjjTcaM2bMOG/8O3fuNCQZs2bNcmr/5ptvjE6dOhmVKlUyKlSoYDRt2tR46aWXXNZ7//79RnBwsHHZZZe5zYsn33//vZGYmGhUrFjRKF++vNGhQwdj7dq1bmObNGlSocY8efKk8fDDDxv169d35KF3797Gjh07HH3Ozd9ff/1lDB482KhWrZpRsWJFIzEx0di6datRt25dp9vGu7vN9/XXX280adLEJY66desa3bp1c2mXZFitVsMwDCMrK8sYM2aM0axZM0eOmzVrZkybNq1Q62oYhrF8+XJDkmGxWIw9e/Y4LTt06JBhtVqNRo0aGRUqVDCioqKM1q1bGx988IFTv/xb1J97W/hz5a9//iMkJMSoXr26cd111xlPP/20ceDAAZfX5L+vDx486HGZO9dee60hybj77rs9xjNjxgyjRYsWRkREhFGpUiXjyiuvNB566CFj3759jj6etsO5srOzjapVqxrt2rUrsF/9+vWNq666yvH8hx9+MNq1a2eEhYUZtWvXNiZMmGD873//MyQZaWlpTq9dvXq1kZiYaERFRRnh4eFGgwYNjEGDBhkbNmw4b3wAgOJzvv0/d7/rz91HeOqpp4xWrVoZlStXNiIiIoxGjRoZTz/9tJGdne3oc+bMGWP48OFG9erVDYvF4vQ78NixY8aoUaOMWrVqGSEhIUbDhg2NSZMmGXl5eU7znjhxwrBarUZ0dLRRsWJFo0ePHsa2bdsMScazzz7r6FfQ798///zTuPXWW43KlSsbUVFRxm233Wbs27fPZf/I0xhJSUlGhQoVCpUnd3JycownnnjCsa9Wp04dY+zYscbp06cLNY875+tbUD4MwzA+/PBDo23btkaFChWMChUqGI0aNTKsVquxbds2p37Tpk0z6tevb4SFhRktW7Y0vvrqK+P66683rr/+eqd+O3bsMDp27GiEhYUZMTExxv/93/859tnO3o80jMJ9f/AUf/5799x9uJkzZxpXXXWVERYWZlSpUsW4/vrrjeXLl7us9wcffGBIMu69916PuXPn/fffd4wfHR1t3HHHHcaff/7pNjZPn6tz/fHHH8bAgQON6tWrG2FhYcYll1xiWK1WIysryzAM9/vhqampRseOHY2KFSsa1apVM+655x7jxx9/dPle426f8+x98nyevnec+x3q999/N+666y6jQYMGRnh4uBEdHW106NDBWLFiRaHWFRcui2GYvCIiAFPGjRvn9jD00uDQoUOqWbOmHnvsMT366KP+Dgfwq5EjR+rVV1/V8ePHPV78FgAAX9m0aZOuuuoqvfPOO7rjjjv8Hc4Fp3379pKkL774wq9xeOOjjz5Sjx499NVXX6ldu3b+Dgco87jGGgCPZs+erdzcXA0YMMDfoQAl6tSpU07PDx8+rLfffltt27alqAYA8Llzf+9I9uuVBQUF6brrrvNDRCjNXnvtNV1yySVq27atv0MBLghcYw2Ai1WrVik1NVVPP/20evToUajrcwFlSUJCgtq3b6/GjRsrPT1db7zxhjIzMzlyEwBQ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brzxRj9GBgAAEFhMF9Zq1Kihn376yaX9xx9/VNWqVX0SFAAAAPzn5ZdfVmZmpurVq6cGDRqoQYMGql+/vjIzM/XSSy/5OzwAAICAYfoaa/3799cDDzygSpUq6brrrpMkffnllxoxYoT69evn8wABAABQsurUqaPvv/9eK1as0NatWyVJjRs3VseOHf0cGQAAQGAxXVh78skntWvXLt14440qV87+8ry8PA0cOJBrrAEAAJRiq1at0rBhw7R+/XpFRkaqU6dO6tSpkyQpIyNDTZo00fTp09WuXTs/RwoAABAYTBfWQkND9f777+vJJ5/Ujz/+qIiICF155ZWqW7duccQHAACAEjJlyhTdc889ioyMdFkWFRWl++67T5MnT6awBgAA8DfThbV8l112mS677DJfxgIAAAA/+vHHH/Xcc895XN65c2c9//zzJRgRAABAYDNdWMvNzdXs2bO1cuVKHThwwOWW66tWrfJZcAAAACg56enpCgkJ8bi8XLlyOnjwYAlGBAAAENhMF9ZGjBih2bNnq1u3brriiitksViKIy4AAACUsIsuuki//PKLLr30UrfLf/rpJ9WsWbOEowIAAAhcpgtr7733nj744AN17dq1OOIBAACAn3Tt2lWPPvqobrrpJoWHhzstO3XqlB5//HHdfPPNfooOAAAg8Hh18wJPf8UEAABA6fXII49owYIFuuyyyzRs2DBdfvnlkqStW7fKZrMpNzdXDz/8sJ+jBAAACBymC2sPPvigpk6dqpdffpnTQAEAAMqQmJgYrV27Vvfff7/Gjh0rwzAkSRaLRYmJibLZbIqJifFzlAAAAIHDdGHtm2++0erVq/X555+rSZMmLhe4XbBggc+CAwAAQMmqW7euPvvsM/3111/67bffZBiGGjZsqCpVqvg7NHhQ1D925xdQAQCAeaYLa5UrV9att95aHLEAAAAgQFSpUkXx8fH+DgOlQFRUlN59911FRUXp1KlTpl9PYQ8AUJqZLqzNmjWrOOIAAAAAAAAASpUgb1505swZrVixQq+++qqOHTsmSdq3b5+OHz/u0+AAAAAAAACAQGX6iLU//vhDN910k3bv3q2srCx16tRJlSpV0nPPPaesrCxNnz69OOIEAAAAAAAAAorpI9ZGjBihli1b6q+//lJERISj/dZbb9XKlSt9GhwAAAAAAAAQqEwfsfb1119r7dq1Cg0NdWqvV6+e9u7d67PAAAAAAAAAgEBm+oi1vLw85ebmurT/+eefqlSpkk+CAgAAAAAAAAKd6cJa586dNWXKFMdzi8Wi48eP6/HHH1fXrl19GRsAAAAAAAAQsEyfCvrCCy8oMTFRcXFxOn36tG6//XZt375d1apV07vvvlscMQIAAAAAAAABx3RhrXbt2vrxxx/13nvv6aefftLx48c1ZMgQ3XHHHU43MwAAAACKas+ePRowYIAOHDigcuXK6dFHH9Vtt93m77AAAAAkeVFYk6Ry5crpzjvv9HUsAAAAgJNy5cppypQpat68udLS0tSiRQt17dpVFSpU8HdoAAAA5gtrb731VoHLBw4c6HUwAAAAwNlq1qypmjVrSpJiY2NVrVo1HTlyhMIaAAAICKYLayNGjHB6npOTo5MnTyo0NFTly5ensAYAAACHr776SpMmTdLGjRu1f/9+LVy4UD169HDqY7PZNGnSJKWlpalZs2Z66aWX1KpVK5exNm7cqNzcXNWpU6eEogcAACiY6cLaX3/95dK2fft23X///RozZoxPggIAAEDZcOLECTVr1kx33XWXevbs6bL8/fffV3JysqZPn67WrVtrypQpSkxM1LZt21SjRg1HvyNHjmjgwIF67bXXCpwvKytLWVlZjueZmZmS7H8MzsnJ8dFa/SN/zNJ8reGi5iV/3b3NQXFsF3/IX4+ysj7eIg/kIB95sCMPpTMHZmK1GIZh+GLSDRs26M4779TWrVt9MVyJyszMVFRUlDIyMhQZGenvcAAAQCnA/oN5FovF5Yi11q1bKz4+Xi+//LIkKS8vT3Xq1NHw4cP13//+V5K9WNapUyfdc889GjBgQIFzjBs3Tk888YRL+9y5c1W+fHnfrQwAACizTp48qdtvv71Q+3le3bzA7UDlymnfvn2+Gg4AAABlXHZ2tjZu3KixY8c62oKCgtSxY0etW7dOkmQYhgYNGqQbbrjhvEU1SRo7dqySk5MdzzMzM1WnTh117ty5WAqgOTk5Wr58ue666y6dOnXK5+OXhIyMjCK9PjY2VjNnzvQ6B0WdP1Dkvxc6deqkkJAQf4fjN+SBHOQjD3bkoXTmIP+I98IwXVj7+OOPnZ4bhqH9+/fr5Zdf1rXXXmt2OAAAAFygDh06pNzcXMXExDi1x8TEOM6CWLNmjd5//301bdpUixYtkiS9/fbbuvLKK92OGRYWprCwMJf2kJCQYt2ZP3XqVKktrBU1L/nr7W0OSsuXrMIq7vdaaUEeyEE+8mBHHkpXDszEabqwdu7FZi0Wi6pXr64bbrhBL7zwgtnhEMiMXOnI11LWfimsphTdTrIE+zsqAABwAWnbtq3y8vL8HQYAAIBbpgtr7NhcINIWSFtGSFl//tMWVltqPFWKdb3wMAAAgFnVqlVTcHCw0tPTndrT09MVGxvrp6gAAAAKL8ifk7/yyitq2rSpIiMjFRkZqYSEBH3++eeO5adPn5bValXVqlVVsWJF9erVy2XHa/fu3erWrZvKly+vGjVqaMyYMTpz5kxJr0rZkrZA2tTbuagmSVl77e1pC/wTFwAAKFNCQ0PVokULrVy50tGWl5enlStXKiEhoUhj22w2xcXFKT4+vqhhAgAAeGT6iLWzLwZ7PpMnTy5wee3atfXss8+qYcOGMgxDb775prp3764ffvhBTZo00ahRo/Tpp59q3rx5ioqK0rBhw9SzZ0+tWbNGkpSbm6tu3bopNjZWa9eu1f79+zVw4ECFhITomWeeMbtqkOynf24ZIcndzWINSRZp60gppjunhQIAgPM6fvy4fvvtN8fznTt3atOmTYqOjtbFF1+s5ORkJSUlqWXLlmrVqpWmTJmiEydOaPDgwUWa12q1ymq1Ou7eCgAAUBxMF9Z++OEH/fDDD8rJydHll18uSfr1118VHBysq6++2tHPYrGcd6xbbrnF6fnTTz+tV155RevXr1ft2rX1xhtvaO7cubrhhhskSbNmzVLjxo21fv16tWnTRsuWLVNqaqpWrFihmJgYNW/eXE8++aT+85//aNy4cQoNDXU7b1ZWlrKyshzPzdztocw78rXrkWpODOn0Hnu/qu1LKioAAFBKbdiwQR06dHA8z/8jbVJSkmbPnq2+ffvq4MGDeuyxx5SWlqbmzZtryZIlLjc0AAAACESmC2u33HKLKlWqpDfffFNVqlSRJP31118aPHiw2rVrpwcffNCrQHJzczVv3jydOHFCCQkJ2rhxo3JyctSxY0dHn0aNGuniiy/WunXr1KZNG61bt05XXnml045XYmKi7r//fm3evFlXXXWV27kmTJigJ554wqs4y7ys/b7tBwAALmjt27eXYbg7Ev4fw4YN07Bhw0ooIgAAAN8xfY21F154QRMmTHAU1SSpSpUqeuqpp7y6K+jPP/+sihUrKiwsTP/+97+1cOFCxcXFKS0tTaGhoapcubJT/5iYGKWlpUmS0tLS3N6ePX+ZJ2PHjlVGRobjsWfPHtNxl1lhNX3bDwAAAAAAoIwyfcRaZmamDh486NJ+8OBBHTt2zHQAl19+uTZt2qSMjAzNnz9fSUlJ+vLLL02PY0ZYWJjCwsKKdY5SK7qd/e6fWXvl/jprFim8tr0fAABAgLLZbLLZbMrNzfV3KAAAoAwzfcTarbfeqsGDB2vBggX6888/9eeff+rDDz/UkCFD1LNnT9MBhIaG6tJLL1WLFi00YcIENWvWTFOnTlVsbKyys7N19OhRp/5n3349NjbW7e3Z85fBC5ZgqfHU/CfnLrT/02gKNy4AAAABzWq1KjU1VSkpKf4OBQAAlGGmC2vTp09Xly5ddPvtt6tu3bqqW7eubr/9dt10002aNm1akQPKy8tTVlaWWrRooZCQEKfbr2/btk27d+923H49ISFBP//8sw4cOODos3z5ckVGRiouLq7IsVywYntKzedLYRc5t4fXtrfHmi+gAgAAAAAAlDWmTwUtX768pk2bpkmTJmnHjh2SpAYNGqhChQqmJx87dqy6dOmiiy++WMeOHdPcuXP1xRdfaOnSpYqKitKQIUOUnJys6OhoRUZGavjw4UpISFCbNm0kSZ07d1ZcXJwGDBigiRMnKi0tTY888oisViunehZVbE8ppvvfdwndb7+mWnQ7jlQDAAAAAAD4m+nCWr79+/dr//79uu666xQRESHDMGSxnHvqYMEOHDiggQMHav/+/YqKilLTpk21dOlSderUSZL04osvKigoSL169VJWVpYSExOdjooLDg7W4sWLdf/99yshIUEVKlRQUlKSxo8f7+1q4WyWYKlqe39HAQAAAAAAEJBMF9YOHz6sPn36aPXq1bJYLNq+fbsuueQSDRkyRFWqVDF1Z9A33nijwOXh4eGOC896UrduXX322WeFnhMAAAAAAADwBdPXWBs1apRCQkK0e/dulS9f3tHet29fLVmyxKfBAQAAAAAAAIHK9BFry5Yt09KlS1W7dm2n9oYNG+qPP/7wWWAAAACAt/LPesjNzfV3KAAAoAwzfcTaiRMnnI5Uy3fkyBFuGAAAAICAYLValZqaqpSUFH+HAgAAyjDThbV27drprbfecjy3WCzKy8vTxIkT1aFDB58GBwAAAAAAAAQq06eCTpw4UTfeeKM2bNig7OxsPfTQQ9q8ebOOHDmiNWvWFEeMAAAAAAAAQMAxfcTaFVdcoV9//VVt27ZV9+7ddeLECfXs2VM//PCDGjRoUBwxAgAAAAAAAAHH1BFrOTk5uummmzR9+nQ9/PDDxRUTAAAAAAAAEPBMHbEWEhKin376qbhiAQAAAHzCZrMpLi5O8fHx/g4FAACUYaZPBb3zzjv1xhtvFEcsAAAAgE9wV1AAAFASTN+84MyZM5o5c6ZWrFihFi1aqEKFCk7LJ0+e7LPgAAAAAAAAgEBlurD2yy+/6Oqrr5Yk/frrr07LLBaLb6ICAAAAAAAAAlyhC2u///676tevr9WrVxdnPAAAAAAAAECpUOhrrDVs2FAHDx50PO/bt6/S09OLJSgAAAAAAAAg0BW6sGYYhtPzzz77TCdOnPB5QAAAAAAAAEBpYPquoAAAAAAAAABMFNYsFovLzQm4WQEAAAAAAAAuVIW+eYFhGBo0aJDCwsIkSadPn9a///1vVahQwanfggULfBshAAAAYJLNZpPNZlNubq6/QwEAAGVYoQtrSUlJTs/vvPNOnwcDAAAA+ILVapXValVmZqaioqL8HQ4AACijCl1YmzVrVnHGAQAAAAAAAJQq3LwAAAAAAAAA8AKFNQAAAAAAAMALFNYAAAAAAAAAL1BYAwAAAAAAALxAYQ0AAAAAAADwAoU1AAAAAAAAwAvl/B0AUGhGrnTkaylrvxRWU4puJ1mC/R3VhYHcAwAAoAyyWCxFer1hGD6KBEBpRWENpUPaAmnLCCnrz3/awmpLjadKsT39F9eFgNwDAEohm80mm82m3Nxcf4cCAADKME4FReBLWyBt6u1c2JGkrL329rQF/onrQkDuAQCllNVqVWpqqlJSUvwdCgAAKMMorCGwGbn2o6Xk7hDrv9u2jrT3g2+RewAAUAIsFkuRHgAA+BOFNQS2I1+7Hi3lxJBO77H3g2+RewAAAAAACkRhDYEta79v+6HwyD0AAAAAAAWisIbAFlbTt/1QeOQeAAAAAIACUVhDYItuZ78DpTxdP8Mihdex94NvkXsAAAAAAApEYQ2BzRIsNZ6a/+TchfZ/Gk2x94NvkXsAAAAAAApEYQ2BL7an1Hy+FHaRc3t4bXt7bE//xHUhIPcAAAAAAHhUzt8BAIUS21OK6f73nSr326/rFd2Oo6VKArkHAABlmMXi6bIXhWMYho8iAQCURhTWUHpYgqWq7f0dxYWJ3AMAAAAA4IJTQQEAAAAAAAAvUFgDAAAAAAAAvEBhDQAAAGWOzWZTXFyc4uPj/R0KAAAowyisAQAAoMyxWq1KTU1VSkqKv0MBAABlGIU1AAAAAAAAwAsU1gAAAAAAAAAvUFgDAAAAAAAAvEBhDQAAAAAAAPAChTUAAAAAAADACxTWAAAAAAAAAC9QWAMAAAAAAAC8QGENAAAAAAAA8AKFNQAAAAAAAMALFNYAAAAAAAAAL1BYAwAAAAAAALxAYQ0AAAAAAADwAoU1AAAAAAAAwAvl/B0AUCoZudKRr6Ws/VJYTSm6nWQJlvKypT+mSSd3SOUbSHWHSkGh/o7Wlaf4A2lsT+MUZ+y+jL+0zAsAAAAA8JpfC2sTJkzQggULtHXrVkVEROiaa67Rc889p8svv9zR5/Tp03rwwQf13nvvKSsrS4mJiZo2bZpiYmIcfXbv3q37779fq1evVsWKFZWUlKQJEyaoXDnqhigGaQukLSOkrD//aQurLUW2kA4ulpT7T/u20VK9ZKnRxBIP0yNP8TeeKsX2DIyxPY1Ts7+0/93iid2X8ZeWeQEAAAAAReLXU0G//PJLWa1WrV+/XsuXL1dOTo46d+6sEydOOPqMGjVKn3zyiebNm6cvv/xS+/btU8+e/3zRzM3NVbdu3ZSdna21a9fqzTff1OzZs/XYY4/5Y5VQ1qUtkDb1di6ASPbnBz+SU1FNsj/fNUna+lBJRVgwj/HvtbenLfD/2AXleNek4om9wHl9NH6gzQsAAAAAKDK/FtaWLFmiQYMGqUmTJmrWrJlmz56t3bt3a+PGjZKkjIwMvfHGG5o8ebJuuOEGtWjRQrNmzdLatWu1fv16SdKyZcuUmpqqd955R82bN1eXLl305JNPymazKTs725+rh7LGyLUfVSTD/Gt3TbafJupPBcb/d9vWkfZ+/hrbqxwXMfbzzuuD8QNtXgC4ANhsNsXFxSk+Pt7foQAAgDIsoG5ekJGRIUmKjo6WJG3cuFE5OTnq2LGjo0+jRo108cUXa926dZKkdevW6corr3Q6NTQxMVGZmZnavHmz23mysrKUmZnp9ADO68jXrkcVFVqu/dpr/nTe+A3p9B57P3+N7XWOixB7oeYt4viBNi8AXACsVqtSU1OVkpLi71AAAEAZFjCFtby8PI0cOVLXXnutrrjiCklSWlqaQkNDVblyZae+MTExSktLc/Q5u6iWvzx/mTsTJkxQVFSU41GnTh0frw3KpKz9RXv9yR2+icNbhY3fm/X01dhFzbG3ry/O3ATivAAAAAAAnwiYwprVatUvv/yi9957r9jnGjt2rDIyMhyPPXv2FPucKAPCahbt9eUb+CYObxU2fm/W01djFzXH3r6+OHMTiPMCAAAAAHwiIAprw4YN0+LFi7V69WrVrl3b0R4bG6vs7GwdPXrUqX96erpiY2MdfdLT012W5y9zJywsTJGRkU4P4Lyi29nv1CiLFy8OluoO9XVE5pw3fosUXsfez19je53jIsReqHmLOH6gzQsAAAAA8Am/FtYMw9CwYcO0cOFCrVq1SvXr13da3qJFC4WEhGjlypWOtm3btmn37t1KSEiQJCUkJOjnn3/WgQMHHH2WL1+uyMhIxcXFlcyK4MJgCZYaT81/Yu619ZKloFCfh2RKgfH//bzRFHs/f43tVY6LGPt55/XB+IE2LwAAAADAJ/xaWLNarXrnnXc0d+5cVapUSWlpaUpLS9OpU6ckSVFRURoyZIiSk5O1evVqbdy4UYMHD1ZCQoLatGkjSercubPi4uI0YMAA/fjjj1q6dKkeeeQRWa1WhYWF+XP1UBbF9pSaz5fCLnJuD68jVe8u6dwCSLBUb4zUaGJJRVgwj/HXtrfH9vT/2AXluN6Yv4/w8nHsBc7ro/EDbV4AAAAAQJGV8+fkr7zyiiSpffv2Tu2zZs3SoEGDJEkvvviigoKC1KtXL2VlZSkxMVHTpv1zd8Xg4GAtXrxY999/vxISElShQgUlJSVp/PjxJbUauNDE9pRiuv99R8f99utfRbezH1WUl22/++fJHfZrqtUd6v8j1c5VUPyBMnZB41w+oXhi92X8pWVeAAAAAECR+LWwZhjGefuEh4fLZrPJZrN57FO3bl199tlnvgwNKJglWKra3rU9KFSqP7KkozHPU/yBNLancYoz9pIYP9DmBQAAAAB4za+FNRSRkev+CBdP7b4a3xN/Ha1lJk6z6+Spv6d19dU28VV/s/F7YmZ9Jd/kwNOcxRm7L3MM3/HXzzQAAAAAOA8Ka6VV2gJpywgp689/2sJqSzX7S/vfdW1vPNXctZo8je9pnK0PSbsmS8r9p23baPtF+4vz+mJm4jS7Tp76R7aQDi6Wy7pWv1nK3Fj0beKrOD3N6yl+T9vK07Z1t74hVSVD0pnDRcuBpzkjr5Yyvy+e2H2ZY7OfN3hm9vNQ3OMAAAAAwFn8evMCeCltgbSpt/MXRMn+fNckN+177f3TFhRxfA/jbH3IPu/ZxQvJ/nzXJPvy4mAmTrPrVFCOD34kt+t68KOibxNfxul23gLid7etCtq27tY357BzUa3AWLx4P2WmFF/sPsuxyc8bPDP7eSjucQAAAADgHBTWShsj137Uhc5/fbqzXmT/Z+tI++u9Ht/NOHnZfx8RVIBdk+39fMlMnGbXyascm2V23hKK8+xtVZhtWyRevp88KXLsvsqxic8bPDP7eSjucQAAAADADQprpc2Rr12PuigUQzq9x/76Io1/zjh/TJPrEUHnyv27nw+ZidPsOnmdY7PMzlsScZ61rQq1bYvKm/eTJ76I3Vc5LuTnDZ6Z/TwU9zgAAAAA4AbXWCttsvYX7+sLO35+v5M7Cte/sP0Ky2ycZvoWNcdmmZ23uOPM31a+3mYFMft+8sRXsfsqxyX9XipLfPUZL46fFQAAAADwNwprpU1YzeJ9fWHHz+9XvkHh+he2X2GZjdNM36Lm2Cyz8xZ3nPnbytfbrCBm30+e+Cp2X+W4pN9LZYmvPuPF8bMCAAAAAP7GqaClTXQ7+53sZDH5QosUXsf++iKNf844dYdKCj7P3MF/9/MhM3GaXSevc2yW2XlLIs6ztlWhtm1RefN+8sQXsfsqx4X8vMEzs5+H4h4HAAAAANygsFbaWIKlxlPznxT2RfZ/Gk2xv97r8d2MExQq1UsueMx6yfZ+vmQmTrPr5FWOzTI7bwnFefa2Ksy2LRIv30+eFDl2X+XYxOcNnpn9PBT3OAAAAADgBoW10ii2p9R8vhR2kXN7eB2p3pi/j844u722vX9szyKO72GcRhPt87ocIRRsb280sXDzmmUmTrPrVFCOq3eX23Wt3t1N7k1uE1/G6XbeAuJ3t60K2rbu1jekqlSuaiFj8eL9FBlffLH7LMcmP2/wzOznobjHAQAAAIBzcI210iq2pxTT/e873u23Xx8oup39qIvLJ7hv99X47jSaKF32lP1ujCd32K9xVXeo749UK0qcZtepoP552e7X1cgt+jbxZZye5vUUvzsFbVt36ysVPQcFzVmcsfsyx/ANs5+H4h4HAAAAAM5CYa00swRLVdsXvt1X43sSFCrVH1n0ec0yE6fZdfLU39O6+mqb+Kq/2fg9Mbu+vsiBpzmLO3ZPivvzBs/89TMNAAAAAM6DU0EBAAAAAAAAL1BYAwAAAAAAALxAYQ0AAAAAAADwAoU1AAAAAAAAwAsU1gAAAAAAAAAvUFgDAABAQLv11ltVpUoV9e7d29+hAAAAOKGwBgAAgIA2YsQIvfXWW/4OAwAAwAWFNQAAAAS09u3bq1KlSv4OAwAAwAWFNQAAABSbr776Srfccotq1aoli8WiRYsWufSx2WyqV6+ewsPD1bp1a3333XclHygAAIAXKKwBAACg2Jw4cULNmjWTzWZzu/z9999XcnKyHn/8cX3//fdq1qyZEhMTdeDAgRKOFAAAwLxy/g4AAAAAZVeXLl3UpUsXj8snT56se+65R4MHD5YkTZ8+XZ9++qlmzpyp//73v6bny8rKUlZWluN5ZmamJCknJ0c5OTmmxzuf/DEjIiJ8PnZJKWpe8tfdXznwVfxFnf/cfy9UpS0Pvtr+7tpKSw6KC3mwIw+lMwdmYrUYhmEUYyylQmZmpqKiopSRkaHIyEh/hwMAAEoB9h/Ms1gsWrhwoXr06CFJys7OVvny5TV//nxHmyQlJSXp6NGj+uijjxxtX3zxhV5++WXNnz+/wDnGjRunJ554wqV97ty5Kl++vE/WAwAAlG0nT57U7bffXqj9PI5YAwAAgF8cOnRIubm5iomJcWqPiYnR1q1bHc87duyoH3/8USdOnFDt2rU1b948JSQkuB1z7NixSk5OdjzPzMxUnTp11Llz52IpgObk5Gj58uW66667dOrUKZ+PXxIyMjKK9PrY2FjNnDnTbzkoavxRUVE+mT//vdCpUyeFhIQUaczSrLTlwVfb/2ylLQfFhTzYkYfSmYP8I94Lg8IaAAAAAtqKFSsK3TcsLExhYWEu7SEhIcW6M3/q1KlSW1gral7y19tfOfBV/L6av7jfa6VFacmDr7f/uctKQw6KG3mwIw+lKwdm4uTmBQAAAPCLatWqKTg4WOnp6U7t6enpio2N9VNUAAAAhUdhDQAAAH4RGhqqFi1aaOXKlY62vLw8rVy50uOpngAAAIGEwhoAAACKzfHjx7Vp0yZt2rRJkrRz505t2rRJu3fvliQlJyfrtdde05tvvqktW7bo/vvv14kTJxx3CfWWzWZTXFyc4uPji7oKQIEsFossFovjWl1RUVGOtsI8AAClG9dYAwAAQLHZsGGDOnTo4Hief2OBpKQkzZ49W3379tXBgwf12GOPKS0tTc2bN9eSJUtcbmhgltVqldVqddy9FQAAoDhQWAMAAECxad++vQzDKLDPsGHDNGzYsBKKCAAAwHc4FRQAAAAAAADwAoU1AAAAAAAAwAsU1gAAAFDmcPMCAABQEiisAQAAoMyxWq1KTU1VSkqKv0MBAABlGIU1AAAAAAAAwAsU1gAAAAAAAAAvUFgDAAAAAAAAvEBhDQAAAAAAAPAChTUAAACUOdwVFAAAlAQKawAAAChzuCsoAAAoCeX8HQAKwciVjnwtZe2XwmpK0e0kS7CUly39MU06uUMq30CqO1QKCpVyT0lbx0gntksVGkqNJknBEZ7HKW6e4iwN45vNvSeetomv4jHb7onZ9TLT3+z7srjbPcXur8+JGaUhRsl/cZaW/AAAAAAo9SisBbq0BdKWEVLWn/+0hdWWIltIBxdLyv2nfdtoKaKedGrHP21Hlkl7bFJkvP1L5rnjNJ4qxfYsvvi3PiTtmuwaZ71kqdHEwB7fbO49zbmxh3Two3+e52+T6t2lFouKHk/N/tL+dwvf7mmbm82lmf6ecuDpfWl2ncy2e9qG1W+WMjeW/OfEDE/vg0CKUfJfnKUlPwAAAADKBE4FDWRpC6RNvZ2/IEr25wc/klNRQLI/P7uodrbMFDfj7LWPn7bAVxE72/qQtGuS3Ma5a5J9eaCO703u3c15bkHpbAc/si8vajy7Jplo97DNzebSTP+CcuD2fWl2nbxo97QND35U8p8TMzy+DwIoRsl/cZaW/AAAAAAoMyisBSoj137UhYzinMT+z9aR9vl8KS/776OZCrBrsr1foI1flNyfPWfuKc8FpXwHP7L3K654XAez/3P2NjebSzP9C5ODgFeMnxNTYRT0PgiQGCX/xVla8gMAAACgTKGwFqiOfO161EWxMKTTe+zz+dIf0+R6RNC5cv/uF2DjFyn3Z825dUzhXnK+fj5/L5yzzc3m0kz/wuYg4BXT58SM874PAiBGyX9xlpb8AAAAAChTKKwFqqz9pXu+kx5OSfW2X0mOX9Rc5M95Ynvh+p+vX3G9F/LHNZtLM/0Lm4PSoqQ/l97M7c8Yzczv6zhLS34AlBibzaa4uDjFx8f7OxQAAFCGUVgLVGE1S/d85Rv4tl9Jjl/UXOTPWaFh4fqfr19xvRfyxzWbSzP9C5uD0qKkP5fezO3PGM3M7+s4S0t+AJQYq9Wq1NRUpaSk+DsUAABQhlFYC1TR7ex3spOlmCeySOF17PP5Ut2hkoLP0yn4734BNn6Rcn/WnI0mFe4l5+vn8/fCOdvcbC7N9C9sDgJeMX1OzDjv+yAAYpT8F2dpyQ8AAACAMoXCWqCyBEuNp+Y/Ka5J7P80mmKfz5eCQqV6yQX3qZds7xdo4xcl92fPGRwhVe9ecP/q3e39iise18Hs/5y9zc3m0kz/wuQg4BXj58RUGAW9DwIkRsl/cZaW/AAAAAAoUyisBbLYnlLz+VLYRc7t4XX+Llac+wUxWIrwcJpeZPzfR3OcPU5t+/ixPX0VsbNGE6V6Y+Q2znpj7MsDdXxvcu9uzhaLPBeWqne3Ly9qPPXGuNm2nto9bHOzuTTTv6AcuH1fml0nL9o9bcPq3Uv+c2KGx/dBAMUo+S/O0pIfAAAAAGVGOX8HgPOI7SnFdP/7jnf77dcHim5nP+oiL9t+58WTO+zXs6o71H6UUO4p+90YT2y3X+Oq0ST7kUNGrvtxilOjidJlT7mPM9DH9yb37rRY5Hmb+CqeyyeYa3fHbC7N9C8oB57el2bXyWy7p23oj8+JGQW9DwKJv+IsLfkBAAAAUCZQWCsNLMFS1fau7UGhUv2Rru3BEVKTlws/TnHzFGdpGN9s7j3xtE18FY/Zdk/MrpeZ/mbfl8Xd7il2f31OzCgNMUr+i7O05AcAAABAqcepoAAAAAAAAIAXKKwBAACgzLHZbIqLi1N8fLy/QwEAAGUYp4KWZp6uBXXmuPTjgH+uHdXsbalcRc/9zV77ysz1xQriaRyz7Z7id5eHvGzp2+ulrH1SWC2p9ZdSaLTnMcxehysnQ9rQTTq9Wwq/WGr5qRQS5XkcT/09bUOzcWYdlNa1krIPSqHVpYTvpLDq5re5pzjdjZOX7b6vmTGCIzzH7mmc7CPut63ZbWj2/Vec4xi55j5rvro+nK9yYPbagmbj99TfzDiBfk09AF6zWq2yWq3KzMxUVFSUv8MBAABllMUwDMNfk3/11VeaNGmSNm7cqP3792vhwoXq0aOHY7lhGHr88cf12muv6ejRo7r22mv1yiuvqGHDho4+R44c0fDhw/XJJ58oKChIvXr10tSpU1WxYsVCx5G/w5WRkaHIyEhfrmLxSVsgbRkhZf35T1tYbSkoTDq1w7V/RAMpL8u1f1hNKTPFtX9kvP2L5rn9I1tIBxdLyj2rc7BUL9ncXTi3PiTtmuw6TuTVUub3hW+PqOd+fctFSWcyCheLJVQysl3bIxpIp3a5zln9Zilzo2tujBwpO91DLMddxylX0X2MnuLxtE6e4rQEux9H5SSdcW32tM09rVdQeSnvpJvx3fEwp8cxPPSXRZK7H1lBkvI8jJ+lQm9DT+9vT++/4hwnuKKUe/Kc9Srgs+bpZ0Ljqebuhmn2s+kpB55+tni6G67Z+D31r9lf2v9u4cbxVc5wwSqV+w8XoOLeTjk5Ofrss8/Uv39/nTp1yufjl4Sifh0oX7683n33Xb/loKjxWywWn8QRERHhVR78+HWsWOR/Jrp27aqQkBB/h3NeRd3+7rZfactBcSEPduShdObAzP6DX08FPXHihJo1ayabzeZ2+cSJE/W///1P06dP17fffqsKFSooMTFRp0+fdvS54447tHnzZi1fvlyLFy/WV199pXvvvbekVsE/0hZIm3o7fxmU7M/dFZkke7u7/u6++Er2dnf9D34k5y/Wsj/fNcn+hbwwtj5k7+9unMwUc+2e1rewRTXJQ/FJf4/tZs6DH7nPjbvikyMWN+N4itFTPJ76e4rT0zhuC1byvM09rVehi2oFzOlxDA/93RbVJLdFNcf4Jrahp/e3p/dfcY6Te9zNenn4rHn8mbDX3p62QIXizWfTUw48/Ww5+JG0sUfR4i/oZ+CuSYUbx1c5AwAAAHBB82thrUuXLnrqqad06623uiwzDENTpkzRI488ou7du6tp06Z66623tG/fPi1atEiStGXLFi1ZskSvv/66WrdurbZt2+qll17Se++9p3379pXw2pQQI9d+hIXHAoMf7ZpsP1WsIHnZfx8NA8BrZ3/WCvyZ8Hfb1pH2fgUpyc/mwY/sp4lK5uP36mfgOeP4KmcAAAAALngBe/OCnTt3Ki0tTR07dnS0RUVFqXXr1lq3bp0kad26dapcubJatmzp6NOxY0cFBQXp22+/9Th2VlaWMjMznR6lxpGvXY+wCBh/Xw+qIH9Mk+tRLwDMOeuzdt6fCYZ0eo+9X0FK+rO5dYz9X7Pxe/0z8KxxfJUzAAAAABe8gC2spaWlSZJiYmKc2mNiYhzL0tLSVKNGDafl5cqVU3R0tKOPOxMmTFBUVJTjUadOHR9HX4yy9vs7goKd9HBqZmGXAyic/M9SYX8mnK9fSX82T2y3/2s2/qL+DMza77ucAQAAALjgBWxhrTiNHTtWGRkZjseePXv8HVLhhdX0dwQFK9+gaMsBFE7+Z6mwPxPO16+kP5sV/r4Jjdn4i/ozMKym73IGAAAA4IIXsIW12NhYSVJ6uvOF09PT0x3LYmNjdeDAAaflZ86c0ZEjRxx93AkLC1NkZKTTo9SIbme/a518c/ci3wqW6g4tuEvdofZ+AIrgrM/aeX8mWKTwOvZ+BSnpz2ajSfZ/zcbv9c/As8bxVc4AAAAAXPACtrBWv359xcbGauXKlY62zMxMffvtt0pISJAkJSQk6OjRo9q4caOjz6pVq5SXl6fWrVuXeMwlwhIsNZ6a/8SvobiolywFhRbcJyjU3g+A987+rBX4M+Hv542m2PsVpCQ/m9W7S8ER9v+bjd+rn4HnjOOrnAEAAAC44Pm1sHb8+HFt2rRJmzZtkmS/YcGmTZu0e/duWSwWjRw5Uk899ZQ+/vhj/fzzzxo4cKBq1aqlHj16SJIaN26sm266Sffcc4++++47rVmzRsOGDVO/fv1Uq1Yt/61YcYvtKTWfL4Vd5NweXkeK8HA6V0SDv4/QOKd/ZLz7/pHx7vtX7y7Xo1qCpXpjpEYTCxd/o4n2/u7GiYw31+5pfctFFS4WSbJ4KAZGNHA/Z/Xu7nMTGiO3ykW5H8dTjJ7i8dTfU5yexlE5982etrmn9Qoq72F8E3N6HMNDf4+FFA8/yoLKy9Q29PT+9vT+K85xgiu5WS8PnzWPPxNq29tje6pQvPlsesqBp58t1btLLRYVLf6CfgbWG+MmHjfj+CpnAAKWzWZTXFyc4uM9/DwCAADwAU/fXkvEhg0b1KFDB8fz5GT70RJJSUmaPXu2HnroIZ04cUL33nuvjh49qrZt22rJkiUKDw////buPS6qOv8f+GsYmGEAgRTkoiimroh5F1m8pKblrdK0IjNDrfZbYsl6S2vTdvu5tlmttrm2taltpXZZL+V6ybxlZt4xTcVLWl5ASQNEkcvM5/fHYUYG5sBcznCYw+v5ePDA+cxnPuf9+ZyLZ96c8zm2z3z88ceYOHEi+vfvDz8/P4wcORJvvfVWrfel1kWPAKKGlT/dLluaC6hhb+kKi7JC4NAYaTLyoJZAxw8B/xBAmB3XNxdJT+i7flKa9yhhnnQ1iVx9S4n0BEFr+80n1HylWmUJrwG/+3+O25FrX65cLn5H42ApAXb3AYovAsZYIHk7YGgo34bcMuXGpjQf2DcUuPkLENgM6PY/ICBMvh25+nLr0NU4i3OBXd2BklzAEAmk7AGMka6vc7k4HbVjKXFc15U29Cb52OXaKbnqeN26ug5d3f682Y4wO7+vVXdM8Pa+6eqxRYn4q6vfZq5z7Sg1ZkRUJ6WnpyM9PR0FBQUIC3PhD25ERERELtAJIYTaQajNesKVn5/vW/OtERERkWp4/uAbvL2eSktLsW7dOowaNQpFRUWKt18bPP06EBQUhOXLl6s2Bp7Gr9MpM72KyWRyaxy09nXMuk8MGTIEAQEBaodTI0/Xv6P152tj4C0cBwnHwTfHwJXzhzo7xxoREREREREREVFdxsQaERERERERERGRG5hYIyIiIiIiIiIicgMTa0RERERERERERG5gYo2IiIiIiIiIiMgNTKwRERERERERERG5gYk1IiIiIiIiIiIiNzCxRkRERERERERE5AYm1oiIiIiIiIiIiNzAxBoREREREREREZEbmFgjIiIiIs1ZuHAhEhMTkZSUpHYoRERE5IBOp/Pop67wVzsA8oAwA1d3AMXZgDEGaNgb0Only11tR6341Wqnttv2JUpta6QMtfYdX9hniYjKpaenIz09HQUFBQgLC1M7HCIiItIoJtZ8Vc5K4NgkoPj8rTJjUyBmFJC9vGp52wVA9Ajn25Gr7+34XV2uN+NXa2zqGqW2NVKGWvuOL+yzREREREREtYy3gvqinJVA5oP2X0wB6fXZeQ7KL0j1c1Y62Y5MfaUotVxvxq/W2NQ1Sm1rpAy19h1f2GeJiIiIiIhUwMSarxFm6WoPCFc+JP06niF9vsZ2HNRXilLL9Wb8ao1NXaPUtkbKUGvf8YV9loiIiIiISCVMrPmaqzuqXu3hFAHcPCd93ql2KtVXilLL9Wb8ao2NM4QZuLINuLhc+u3NJIRS2xopQ619xxf2WSIiIiIiIpVwjjVfU5ytzOedbcfT5bnbXk31vBm/WmNTk9qem0qpbY2Uoda+4wv7LBERERERkUp4xZqvMcYo83ln2/F0ee62V1M9b8av1thUR425qZTa1kgZau07vrDPEhERERERqYSJNV9zWw8Aejc+qAMC44CGvaWXDXtLVztB51x9pSi1XG/Gr9bYyFFrbqoax0FOLY9PfaHWvuML+ywREREREZFKmFjzNb99B8DVBEr5F9mE+YCuPCmn00u3EFZ8v7r6SlFqud6MX62xkaPW3FTVjoPsh6RftTk+9YVa+44v7LNEREREREQqYWLN17gz/1BgU6DT51Xn4YoeIZUbmzhXXylKLdeb8as1No6oOTeV7DjEAfHTyq9AqliuwvjUJ2rtO76wzxIREREREamADy/wNc7OP9Tm74AxSqrfsLf8VSDRI4CoYeVXRWXXXF8pSi3Xm/GrNTaVqT03VXXj0Gau+uNT36i17/jCPktERERERFTLmFjzNmH2/AukXRuNAUMToOQiHM+5pZOu/oh/tupyzEXA8WnA9ZNAcGsgYR6gN0nlZxcAN04DQS2BsG6Af4h87HLtWEqAn/95q53mEwA/g3y5nOJcYFd3oCQXMEQCKXsAY6RrYwY4Xi7gOJbq+pTz+a3y8ORbY+aoflkhcGjMrfY7fiiNpVx9uTGuGLspvuZ1bmwCwAxcXG7fjqvxyNUXZqAg81b5bT1ubQuVtx1hBvYNBW7+AgQ2A7r9DwgIcz0Wue1Grp3SfMfLdXW7lCuvbv9xpVxunTvql5/BcSw6PdCob9VNQa5tJY5DgPxyldr35eq7Gr8r9ZUaGyIiIiIiqpd0QghH39TrlYKCAoSFhSE/Px+hoaHKNZyzUpp0vuL8WMam0jxDzt7y5KiNgEZA6RVI8xJVXH3l8xQ5uqVq/3Agd03V9v3DgLL8quWmloCluGrsxhigYK/j+kVnYT//mx4I7QIUHKhaHnkvULC/avulVwHLDcdxDsirWi43xqFdgdy1lZZrndep4pjppcRV0emqbRuigJJLzpfLjaVceWiS9GXeqdj9AFiqtmFl2yYqtONndNwvV+M0RAElv6LKOjREOB4HR3QGQJQ4v0y57UlumdW2X1i1HbntUq5cqW1Ebp3Lrasq9ED8ZCDhtapvye0LMaOA7OXOl7tyfAKA49OBs2/C433f4XZfTX25OF057ipxjKZ6zWvnD6Qob6+n0tJSrFu3DqNGjUJRUZHi7dcGT78OBAUFYfny5aqNgafx63SuPqjJMZPJ5NY4aO3rmHWfGDJkCAICAtQOp0aern9H68/XxsBbOA4SjoP8GHhj/1OKK+cPvGLNW3JWApkPosoVRsUXpHJn5hOSa6P0qvTbvyFQViGZEthUmvzb2aQa4DipATj+kl98Xn4SfYdJAbPjJBzMjuOpboL+snzg63D75JrsGJ8Hch215WinM8snNOSSRnLlcmMpV+5obGRjryapBtgn1aztyHE1Tof9NTufVAMcJ72qW6bc9iS3TJfar2a7lCtXahuRW+dOMwNn50n/rJhcq25fsNZ3qtyF4xNQnlRz0I47+77D7V6uvkycrhx3lThGExERERFRvceHF3iDMEtXQThM5JSXHc+Q6rndhg7wNwHdvgY6LAOStgJ9zlT9Imgukk+q+ZqyfOk2UaCG8SHSuLNvSrdNAgrvC04enwBp+WffVGCZ7nAQpyvHXSWO0URERERERGBizTuu7qjhKhQB3Dwn1fOojfPSXECxo6R5jxzNC3R8mpNB+4hd3aXfNY4PkZaZpbnIAC/sC04cn4Dy5auZeKoUpyvHXSWO0UREREREROCtoN5RnO15PSXaAKSJ07WkpPyKNWfHh0irbpTfnuqtfaGmdm/I3B5b26xxKnXMdLcuERERERHVS7xizRuMMZ7XU6INQHoaoZYYyp8O6uz4EGlVUEvpt7f2hZratS5fbdY4XTlmKnV8JSIiIiKieo+JNW9o2Ft6shzknnChAwLjpHrebAMAEhxNLO7DUvZIv2scHyIt0wPNJ0j/VHxfcPLY0nyCFIdqKsXpyjFTqeMrEdVpCxcuRGJiIpKSktQOhcirdDqdRz9EROQZJta8QacH2i6wvqj8pvQrYb7jOdGUbAMA9CYgclhNEfsG/zDAWH7FWrXjQ6Rx8ZMBP4P0b0X3BReOLX4GKQ5VOIjTlWOmUsdXIqrT0tPTcfToUezd6+gpxURERETKYGLNW6JHAJ0+B4xN7MsDm0rllZ/e6a02AKDravnkmn+Y43JTy/IrOipS+ktmpfYC4wC/IMdV/cOAAXn2ZXLj41KceqmvjhiiXCuXG8uall9RYFz5unJ1rB20I9cvuTjdit9JOoN3l1lt+5XHUg+EJrlWrtQ2EppUdb+qbl1VoQfipwEJr9kXyx4r4qT6jpbpsNzFY0vCa1I7roxl5DDH8Tjc7uXqy8TpyjFTqeMrERERERHVa3x4gTdFjwCihpU/gS5bmq+nYW/XroJQog1ASq6Zi6SnhF4/Kc29ljBPuqKtrBA4NEaajDyoJdDxQ8A/BBDmW8stvgRk/bHm5cSlQ7riQwDnFtZQ2Qy0+TtgjLLvV3Gu9PTPklxpTrWUPbeuVKtpfJyNs/Fw4LY+0u1sfgb5sXG1vOJY+ocC+TvdGwNLifTUxRunPRtLuXWrWPwAwnoCZQW32hdmYN9Q4OYvQGAzoNv/gIAw52LRBwG5q11fpn8IUJrveLkVxzKo5a117mq5UttIxf2qpnXlZ3AciyPVHSvazHWt3BUJrwG/+3+ujaXcGLha39Vx8KQuERERERGRA0yseZtODzTq61kblhIg5/NbX9DDk6tPiMmV6/RAUCsAOqnc+uVRbwLiJ936Yqk3SeVlhcCJP0mJCj+Tc7FmfwJYipyvn/s/AH72/fIzSFeRCLP025pIkEtUVBwfCOeWe/30rWUAUjLvwgeA5QaQ9x3QYjoQ1Exa5tXtQPFF6cdcdGvsc/8nJf9unABazb4Ve8M+0lUvZXnOJaZ++SdguWmfDBJm4Map8j5Z3B/LskIgb5cUS8ll6bU1aXrzgrTO9UG3xqEiy00nxzJLWufma7fGxxApJb4Mkbe2M0uJ1KfiiwCE9BqwH0tnt5uin6V1VbmdwqNSHGWF0k9AmLT80E63ko7WeMxF0nZjTcQ1HXcrGXR1u7T/3DwPxD15q7wgU6pvvi691jsZb0UV96vK67wkt3xd5Uqv7bYDcWs9VZcUdHSsEGYpdmv923rcuiXS0fHJmWR7xSSU3BjLxS+nunYcxV9dO54ed4mIiIiIiJygE0I4mYnQroKCAoSFhSE/Px+hoaFqh2Nv/3Agd03Vcv8woCy/arlfUHnCoRJDFFDyK4CKX2z1QOS9QMF+oPj8rWJjU0CUAiWXPAzeDXLxV9svFeJ0RFd+ZQ1qSB7URK6vrjcEx0m58isKvbZcR/wBlHmp7RqWa4x2fvvWGQBR4ny5q9ul7Bi7MD6mlkDRWVTZl03xQNFp5+vHT656SykAfNcdKHAwH5GpJWAprjqWMaOA7OVVy40xjtsJTSq/utTJdkK7ArlrnY/fFTkrgWOTqi6z7QLeCkpOqdPnD2Tj7fVUWlqKdevWYdSoUSgqKlK8/drg6deBoKAgLF++XLUx8DR+pSbwN5lMbo2D2vEr/XXQuk8MGTIEAQEBirbtDd4YP18bA2/hOEg4DvJjUNeOXxW5cv7AK9bqMrmkGuA4qQbIJ0YcJp/Mjtuv+CWztsnF71K/VOIo8eIOxZJbcle6yRx8vJZUA9RJqpUvt/L2XN32LbcO5cpd3S5lx9iF8XGUPINZprya+mfLnxhcMTkll1STa6f4/K12KpfLjbOj9qtrJ9dROzLxuyJnJZD5IKrsD8UXpHLOs0ZERERERE7gwwvqKnORfFKNiEgJZ9+0v5VWLqlWV1WM3xXCLF2p5jDJXF52PKPmW1eJiIiIiKjeY2Ktrjo+Te0IiEjzzNJcbYA0p5rPqRC/K67uqOHKXAHcPCfVIyIiIiIiqgZvBa1rrJOSX/5C7UiIqD44/z6Qux4o2Kd2JO7J+dz1p4gWZzvXtrP1quPKE02JiIiIiMjnMLFWlxyfLt3a5Onk90REzrp+RPrxVfk7bz19N2uq/ANZKj6QwBjjXNvO1pPDhyMQEREREWkebwWtK45PL5+Mm0k1IiL3lD+QpcoDK8ofSJCzUnrdsLeU4ILcU4h0QGCcVM9d1ocj1BQLERERERH5NCbW6gJLSfmVakREpLxKDyTQ6aWrxgBUTa6Vv06Y7/4tm3w4AhERERFRvcHEWl3w8z/BK9WIiCoxNgEih0H+yjJXlD+Q4MCDwJ6BwJUtQIePpWVUFNgU6PS5/K2awgxc2QZcXC79dpQc48MRiIiIiIjqDc6xVhfcOK12BEREdU9xNlB8EVJizdHVX27IXS39vvoVcG4hEHE/0OFD5x4u4OycabX5cAQiIiIiIlIVE2tqqfikOKW+MBIRaYoFKNjr3UX8+gWg0wFdV1dfzzpnWuXjtXXOtIpXudXWwxGIiIiIiEh1TKypwdFVD0REpI7cNYC5CNCbHL9f45xpOmnOtKhh0tVu1ocjFF+Q+YxOuuXUk4cjEBERERFRncA51mqb3JPiiIhIPfvvV27ONLuHI8jw5OEIRERERERUZzCxVpuqveqBiIhUc/VrYG8/YGtz6Q8gFbkzZ1r0CCB+KoDKyTO9VC73cAQiIiIiIvIpTKzVphqveiAiquMCooC4iUBYT7Uj8Y6SC0DmSPvkmjtzpuWsBM6+jqpPfLZI5ZWTd0RERERE5JM4x1pt4hPgiMjXlV4Czr2tdhTed/hJoOgMcOMsYIoHDE2Akotwas40V+dk80TFB+HU9FRTIiIiIiJSHBNrtcnYWO0IiIjIGebfgKypFQr8YEuK2SXMdNKvinOmuTInW6O+7seYsxI4+px0lZ2VoQmQ+BZvNSUiIiIiqiW8FbQ2OZoUm4iIfIBF+qUPti8ObAJ0+tw+keXOnGyuylkp3bJaMakGOL6VlYiIiIiIvIZXrHmbpQT4+Z/AjdNA4TG1oyEiIk+YC+1fWxzc7unOnGw1KSsEDo2R/i8xtQB+21F9/R//oMytpkREREREVC0m1rzp+HTg7BuwXelARETaUnIByHwQ6PgJYIiUrkIzNAaMTau/HTSwqXQV88XlNc+N9l13oGDvrdfXD9ccV+kV4Mx8IDCWc68REREREXkRE2vecnw6cHae2lEQEZHXCeDQI7D7I4ouWLY2AKDkKrBvwK3XATFAu7eByMHA8WnA9ZNAcGsg73vg2n73wjpRYY44YxOgrZfnXqt4hXZQS6D5BMDPIF/f2w9ecDUeIiIiIiI3MLHmDZaS8ivViIiofqh0ZbK4XkP1G/avS7OludEquvqV52FZFZfPvZa4GPjpL0BJrnSFXcoewBgJ3MwBdnYCyvIA/3CgZyYQGC0lAHf3AYovAsZYIHk7YGgImIvsE4DwB84tsF9m1h+B+GlAm7lVE2iX1gDHnpPisrIm/6KGeZ5wc/THLWs8Ca+5PHykvrVr12LKlCmwWCx4/vnn8eSTT6odEhEREREADSXWFi5ciHnz5iEnJwcdO3bEP/7xD3Tv3l2dYM6+Dd7+SUREdc7R8bf+ffM6sNXB06pLLwHbHMz/VnYV2NII0BkAUXKrvLoE4Nl5wLlF9nPT+TcCyq5UrWtN/gU0km5ltTI2BdoucP5qu+quGLeWM7nmU8rKyjB58mRs3boVYWFh6Nq1Kx544AE0atRI7dCIiIiItPFU0E8++QSTJ0/G7NmzceDAAXTs2BEDBw7E5cuX1Qno6jZ1lktERORtFZNqzqj8wAdHSbWKSiu9X1w+j50zTzq1lNQ8DcPZeVI98hl79uxBu3bt0KRJE4SEhGDw4MH46isFr+gkIiIi8oAmEmtvvvkmnnrqKYwbNw6JiYl45513EBQUhMWLF6sT0K9fqrNcIiIizSl/8urxDGletupsHVn9+67WI0V88803uO+++xAbGwudTofVq1dXqbNw4ULEx8cjMDAQycnJ2LNnj+29ixcvokmTJrbXTZo0wYULF6q0QURERKQGn78VtKSkBPv378fMmTNtZX5+fhgwYAB27drl8DPFxcUoLi62vS4oKPB6nEREROQuAdw8J8291qivfLXStc4152w9UsT169fRsWNHjB8/HiNGVL2l13rnwTvvvIPk5GTMnz8fAwcORFZWFho3dnC7cg3kzvNKS0tRWlrqfkdkWNs0mUyKt11bPB0Xa9/VGgOl4veUu+OgdvxK7xfW9ryxv3mDN8bP18bAWzgOEo6D/BjUteOXu23rhBDCa5HUAutfMb/77jukpKTYyqdPn47t27dj9+7dVT7z8ssv489//nOV8vz8fISGhnoe1Aad520QERGRvQ7LgNhR8u+78v/vIM9PfwoKChAWFqbc+UM9oNPpsGrVKgwfPtxWlpycjKSkJLz99tsAAIvFgri4ODz77LOYMWMGvvvuO8ybNw+rVq0CAGRkZKB79+549NFHHS5D7jxv2bJlCAoKUr5TREREpDk3btzAo48+6tR5ns9fseaOmTNnYvLkybbXBQUFiIuLUzEiIiIiqpHRwUMVyKc5c+dB9+7dceTIEVy4cAFhYWFYv349XnrpJdk25c7z7rnnHq8kQEtLS7Fp0yaMHz8eRUVFirdfG/Lz8z36fHR0NBYvXqzaGHgaf1hYmCJxmEwmt8ZB7fiVXr6r4+Dp8j3ljfGzHhfuvvtuBAQEeNS+L+M4SDgO8mOg9vGrOq7c2ejzibWIiAjo9XpcunTJrvzSpUuIjo52+Bmj0Qij0ei9oExPAkX/9l77RERE9YoOCGwKNOxdfbUWbwNnJtbcXIu3lQmLPPbrr7/CbDYjKirKrjwqKgrHjx8HAPj7++ONN95Av379YLFYMH369GqfCCp3nhcQEODVLzRFRUU+m1jzdFys/VZrDJSKXymujoPa8Xtr+c6Og9qJBm+On7ePO76C4yDhOFQdA7WPX0q17fMPLzAYDOjatSs2b95sK7NYLNi8ebPdraG1qs976iyXiIhIc8pv70yYD+j01Vdtk+5ck87Wozrj/vvvx4kTJ3Dq1Cn84Q9/UDscIiIiIhufT6wBwOTJk/Hee+/hgw8+wLFjx/DMM8/g+vXrGDdunHpBKTB3CxERUZ2jMzhf19QSMDa1LwuMA0KTHNcPTXJQvynQ6XMguuqk9w7V9P8v/3+uU9y584CIiIioLtFEYi01NRWvv/46Zs2ahU6dOiEzMxMbNmyocltBrRskpNtCKzI9KX9S78rJvqttsFxeXYvR18vrUiy+Xl6XYtFEeeX/8vwAxFYqiy2v27xSeXOpPPQ5++LQ56Ty26bal982VSpPXGZfnris+vKk7+zLk76Tytt+ZF/e9qPqy3udBGC9fD1Aej1IAP0uA4HxgF+w9LvfZam8bzYQEAXojNLvvtlS+V1XgOA7AP+G0u+7rgADi4G7bwBx6UDDe6Tfd98ABlwDIocDwe2l3wOuAX1OAX3PAklbpQcPJG0F+pwBeuxx3EaPPY7rO5tUsxokqt7u2eJtJtXqIG/eebBw4UIkJiYiKUkmkUtERESkAJ9/KqgS+FQvIiIichXPH5xTWFiIU6dOAQA6d+6MN998E/369UPDhg3RrFkzfPLJJ0hLS8O//vUvdO/eHfPnz8enn36K48ePK/JHUm+vp9LSUqxbtw6jRo3y2TnWPP06EBQUhOXLl6s2Bp7Gr9O58EThaphMJrfGQe34lV6+q+Og9tdRb4yf9bgwZMiQej2nFsdBwnGQHwO1j1/VceX8wecfXkBEREREdde+ffvQr18/22vrEzvT0tKwdOlSpKamIjc3F7NmzUJOTg46depUN+48ICIiInICE2tERERE5DV9+/at8S/KEydOxMSJTjzRlYiIiKiO0cQca0RERERERERERLWNiTUiIiIi0hw+vICIiIhqAxNrRERERKQ56enpOHr0KPbu3at2KERERKRhTKwRERERERERERG5gYk1IiIiIiIiIiIiNzCxRkRERERERERE5AYm1oiIiIiIiIiIiNzAxBoRERERaQ6fCkpERES1gYk1IiIiItIcPhWUiIiIagMTa0RERERERERERG5gYo2IiIiIiIiIiMgNTKwRERERERERERG5gYk1IiIiIiIiIiIiNzCxRkRERERERERE5AYm1oiIiIhIcxYuXIjExEQkJSWpHQoRERFpmL/aAdQFQggAQEFBgcqREBERka+wnjdYzyOobklPT0d6ejry8/MRHh7utfO80tJS3Lhxw6e3A0/HRgih6hjUlXN4d8dB7fiVXr6r46B2/z3lKH7rcaGgoAABAQEqRFU3cBwkHAfvjYE3jx+unOfphC+fBSjk/PnziIuLUzsMIiIi8kHnzp1D06ZN1Q6DZPA8j4iIiNzlzHkeE2sALBYLLl68iAYNGkCn06kdDgoKChAXF4dz584hNDRU7XC8in3VpvrUV6B+9Zd91a761F+l+iqEwLVr1xAbGws/P86uUVd5+zyvPu07cjgGEo6DhOPAMbDiOEg4Dr45Bq6c5/FWUAB+fn518i/NoaGhPrPReYp91ab61FegfvWXfdWu+tRfJfoaFhamUDTkLbV1nlef9h05HAMJx0HCceAYWHEcJBwH3xsDZ8/z+OdVIiIiIiIiIiIiNzCxRkRERERERERE5AYm1uogo9GI2bNnw2g0qh2K17Gv2lSf+grUr/6yr9pVn/pbn/pK3sftiWNgxXGQcBw4BlYcBwnHQftjwIcXEBERERERERERuYFXrBEREREREREREbmBiTUiIiIiIiIiIiI3MLFGRERERERERETkBibWiIiIiIiIiIiI3MDEmkrmzp2LpKQkNGjQAI0bN8bw4cORlZVlV+fmzZtIT09Ho0aNEBISgpEjR+LSpUsqRey+RYsWoUOHDggNDUVoaChSUlKwfv162/ta6acjr776KnQ6HTIyMmxlWurvyy+/DJ1OZ/eTkJBge19LfQWACxcu4LHHHkOjRo1gMpnQvn177Nu3z/a+EAKzZs1CTEwMTCYTBgwYgJMnT6oYsXvi4+OrrFedTof09HQA2luvZrMZL730Elq0aAGTyYSWLVvilVdeQcVn+2hl3QLAtWvXkJGRgebNm8NkMqFHjx7Yu3ev7X1f7es333yD++67D7GxsdDpdFi9erXd+8706+rVqxg9ejRCQ0MRHh6OJ554AoWFhbXYC/I1CxcuRHx8PAIDA5GcnIw9e/aoHZKiuF8pd87+yy+/YOjQoQgKCkLjxo0xbdo0lJWV1WZXPKLE+byvj0Fl7p7n+/o4KHH+7+tjACjzvcDXj49KfGfQwrYAABCkioEDB4olS5aII0eOiMzMTDFkyBDRrFkzUVhYaKvz9NNPi7i4OLF582axb98+8fvf/1706NFDxajd88UXX4j//e9/4sSJEyIrK0u88MILIiAgQBw5ckQIoZ1+VrZnzx4RHx8vOnToICZNmmQr11J/Z8+eLdq1ayeys7NtP7m5ubb3tdTXq1eviubNm4uxY8eK3bt3i59++kls3LhRnDp1ylbn1VdfFWFhYWL16tXi0KFD4v777xctWrQQRUVFKkbuusuXL9ut002bNgkAYuvWrUIIba1XIYSYM2eOaNSokVi7dq04c+aM+Oyzz0RISIhYsGCBrY5W1q0QQjz88MMiMTFRbN++XZw8eVLMnj1bhIaGivPnzwshfLev69atEy+++KJYuXKlACBWrVpl974z/Ro0aJDo2LGj+P7778WOHTtEq1atxKhRo2q5J+QrVqxYIQwGg1i8eLH48ccfxVNPPSXCw8PFpUuX1A5NMdyvlDlnLysrE3fccYcYMGCAOHjwoFi3bp2IiIgQM2fOVKNLbvH0fF4LY1CRu+f5WhgHT8//tTAGSn0v8PXjo6ffGbSwLVgxsVZHXL58WQAQ27dvF0IIkZeXJwICAsRnn31mq3Ps2DEBQOzatUutMBVz2223iX//+9+a7ee1a9dE69atxaZNm0SfPn1s/+Fqrb+zZ88WHTt2dPie1vr6/PPPi169esm+b7FYRHR0tJg3b56tLC8vTxiNRrF8+fLaCNFrJk2aJFq2bCksFovm1qsQQgwdOlSMHz/ermzEiBFi9OjRQghtrdsbN24IvV4v1q5da1fepUsX8eKLL2qmr5UTAM706+jRowKA2Lt3r63O+vXrhU6nExcuXKi12Ml3dO/eXaSnp9tem81mERsbK+bOnatiVN7D/Urizjn7unXrhJ+fn8jJybHVWbRokQgNDRXFxcW12wEFuXI+r6Ux8OQ8Xwvj4On5vxbGQInvBVo8Prr6nUEL24IVbwWtI/Lz8wEADRs2BADs378fpaWlGDBggK1OQkICmjVrhl27dqkSoxLMZjNWrFiB69evIyUlRbP9TE9Px9ChQ+36BWhzvZ48eRKxsbG4/fbbMXr0aPzyyy8AtNfXL774At26dcNDDz2Exo0bo3Pnznjvvfds7585cwY5OTl2/Q0LC0NycrJP9teqpKQEH330EcaPHw+dTqe59QoAPXr0wObNm3HixAkAwKFDh/Dtt99i8ODBALS1bsvKymA2mxEYGGhXbjKZ8O2332qqrxU5069du3YhPDwc3bp1s9UZMGAA/Pz8sHv37lqPmeq2kpIS7N+/326b8vPzw4ABA3x6X3FFfd2v3Dln37VrF9q3b4+oqChbnYEDB6KgoAA//vhjLUavDHfO57U0Bp6c52tlHDw5/9fCGCjxvUBrx0d3vjNoYVuw8lc7AAIsFgsyMjLQs2dP3HHHHQCAnJwcGAwGhIeH29WNiopCTk6OClF65vDhw0hJScHNmzcREhKCVatWITExEZmZmZrqJwCsWLECBw4csJuzyEpr6zU5ORlLly5FmzZtkJ2djT//+c/o3bs3jhw5orm+/vTTT1i0aBEmT56MF154AXv37sVzzz0Hg8GAtLQ0W58q/sdgfe2L/bVavXo18vLyMHbsWADa24YBYMaMGSgoKEBCQgL0ej3MZjPmzJmD0aNHA4Cm1m2DBg2QkpKCV155BW3btkVUVBSWL1+OXbt2oVWrVprqa0XO9CsnJweNGze2e9/f3x8NGzb06b6Td/z6668wm80Ot6njx4+rFFXtqo/7lbvn7Dk5OQ7Hyfqer/DkfF4rY+Dpeb4WxsHT838tjIES3wu0dnx05zuDFrYFKybW6oD09HQcOXIE3377rdqheE2bNm2QmZmJ/Px8fP7550hLS8P27dvVDktx586dw6RJk7Bp06YqV4RokfWKHgDo0KEDkpOT0bx5c3z66acwmUwqRqY8i8WCbt264a9//SsAoHPnzjhy5AjeeecdpKWlqRyd97z//vsYPHgwYmNj1Q7Faz799FN8/PHHWLZsGdq1a4fMzExkZGQgNjZWk+v2ww8/xPjx49GkSRPo9Xp06dIFo0aNwv79+9UOjYioTqsP5+zVqS/n83Lq23m+nPp0/i+nvn4vqE59+M5QHd4KqrKJEydi7dq12Lp1K5o2bWorj46ORklJCfLy8uzqX7p0CdHR0bUcpecMBgNatWqFrl27Yu7cuejYsSMWLFiguX7u378fly9fRpcuXeDv7w9/f39s374db731Fvz9/REVFaWp/lYWHh6O3/3udzh16pTm1m1MTAwSExPtytq2bWu79N3ap8pPuvHV/gLAzz//jK+//hpPPvmkrUxr6xUApk2bhhkzZuCRRx5B+/btMWbMGPzxj3/E3LlzAWhv3bZs2RLbt29HYWEhzp07hz179qC0tBS333675vpq5Uy/oqOjcfnyZbv3y8rKcPXqVZ/uO3lHREQE9Hq95vYVV9S3/cqTc/bo6GiH42R9z1d4cj6vhTFQ4jxfC+NQmavn/1oYAyW+F2jp+OjudwYtbAtWTKypRAiBiRMnYtWqVdiyZQtatGhh937Xrl0REBCAzZs328qysrLwyy+/ICUlpbbDVZzFYkFxcbHm+tm/f38cPnwYmZmZtp9u3bph9OjRtn9rqb+VFRYW4vTp04iJidHcuu3ZsyeysrLsyk6cOIHmzZsDAFq0aIHo6Gi7/hYUFGD37t0+2V8AWLJkCRo3boyhQ4fayrS2XgHgxo0b8POz/+9Qr9fDYrEA0Oa6BYDg4GDExMTgt99+w8aNGzFs2DDN9tWZfqWkpCAvL8/uyr0tW7bAYrEgOTm51mOmus1gMKBr165225TFYsHmzZt9el9xRX3Zr5Q4Z09JScHhw4ftvkRv2rQJoaGhVb6c+xJXzue1MAZKnOdrYRwqc/X8XwtjoMT3Ai0cH63c/c6ghW3BRu2nJ9RXzzzzjAgLCxPbtm2ze0TtjRs3bHWefvpp0axZM7Flyxaxb98+kZKSIlJSUlSM2j0zZswQ27dvF2fOnBE//PCDmDFjhtDpdOKrr74SQminn3IqPi1ICG31d8qUKWLbtm3izJkzYufOnWLAgAEiIiJCXL58WQihrb7u2bNH+Pv7izlz5oiTJ0+Kjz/+WAQFBYmPPvrIVufVV18V4eHhYs2aNeKHH34Qw4YNq/JYbV9hNptFs2bNxPPPP1/lPS2tVyGESEtLE02aNBFr164VZ86cEStXrhQRERFi+vTptjpaWrcbNmwQ69evFz/99JP46quvRMeOHUVycrIoKSkRQvhuX69duyYOHjwoDh48KACIN998Uxw8eFD8/PPPQgjn+jVo0CDRuXNnsXv3bvHtt9+K1q1b+9Rj76l2rVixQhiNRrF06VJx9OhR8Yc//EGEh4fbPd3M13G/UuacvaysTNxxxx3innvuEZmZmWLDhg0iMjJSzJw5U40uucXT83ktjIEjrp7na2EcPD3/18IYKPW9wNePj0J49p1BC9uCFRNrKgHg8GfJkiW2OkVFRWLChAnitttuE0FBQeKBBx4Q2dnZ6gXtpvHjx4vmzZsLg8EgIiMjRf/+/W3/CQuhnX7Kqfwfrpb6m5qaKmJiYoTBYBBNmjQRqamp4tSpU7b3tdRXIYT48ssvxR133CGMRqNISEgQ7777rt37FotFvPTSSyIqKkoYjUbRv39/kZWVpVK0ntm4caMA4DB+ra3XgoICMWnSJNGsWTMRGBgobr/9dvHiiy/aPeZbS+v2k08+EbfffrswGAwiOjpapKeni7y8PNv7vtrXrVu3Ovx/NS0tTQjhXL+uXLkiRo0aJUJCQkRoaKgYN26cuHbtmgq9IV/xj3/8QzRr1kwYDAbRvXt38f3336sdkqK4Xyl3zn727FkxePBgYTKZREREhJgyZYooLS2t5d64T4nzeV8fA0fcOc/39XFQ4vzf18dACGW+F/j68VEIz78zaGFbEEIInRBC1NbVcURERERERERERFrBOdaIiIiIiIiIiIjcwMQaERERERERERGRG5hYIyIiIiIiIiIicgMTa0RERERERERERG5gYo2IiIiIiIiIiMgNTKwRERERERERERG5gYk1IiIiIiIiIiIiNzCxRkRERERERERE5AYm1ohIc7Zt2wadToe8vDy1QyEiIiIijTt+/Dh+//vfIzAwEJ06dXL582fPnoVOp0NmZqbTnxk7diyGDx/u8rKISHlMrBFRnTN27FjodDrodDoEBAQgKioKd999NxYvXgyLxVLj53v06IHs7GyEhYXVQrSOFRUVoWHDhoiIiEBxcbFqcRARERFVVPE8q+LPqVOn1A7NZ82ePRvBwcHIysrC5s2ba2WZCxYswNKlS2tlWURUPSbWiKhOGjRoELKzs3H27FmsX78e/fr1w6RJk3DvvfeirKxM9nOlpaUwGAyIjo6GTqfzWnwlJSXVvv/f//4X7dq1Q0JCAlavXu21OIiIiIhcZT3PqvjTokWLKvVqOt8hyenTp9GrVy80b94cjRo1qpVlhoWFITw8vFaWRUTVY2KNiOoko9GI6OhoNGnSBF26dMELL7yANWvWYP369XZ/ndPpdFi0aBHuv/9+BAcHY86cOXa3ghYUFMBkMmH9+vV27a9atQoNGjTAjRs3AADnzp3Dww8/jPDwcDRs2BDDhg3D2bNnbfWtl9vPmTMHsbGxaNOmTbXxv//++3jsscfw2GOP4f3336/y/vHjx9GrVy8EBgYiMTERX3/9NXQ6nV0SrqaYiIiIiNxhPc+q+KPX69G3b19MnDgRGRkZiIiIwMCBAwEAR44cweDBgxESEoKoqCiMGTMGv/76q62969ev4/HHH0dISAhiYmLwxhtvoG/fvsjIyLDVqXyeAwDh4eF253XOno+9/vrriImJQaNGjZCeno7S0lJbneLiYjz//POIi4uD0WhEq1at8P7770MIgVatWuH111+3iyEzM7PaK/YsFgv+8pe/oGnTpjAajejUqRM2bNhg16/9+/fjL3/5C3Q6HV5++WXZdl577TW0atUKRqMRzZo1w5w5cxzWNZvNeOKJJ9CiRQuYTCa0adMGCxYssKtT+VbQvn374tlnn0VGRgZuu+02REVF4b333sP169cxbtw4NGjQAK1atbI7J/7tt98wevRoREZGwmQyoXXr1liyZInDmIhIHhNr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", + "image/png": "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jOrVq6eQkBDVqVNH//d//6eMjAxHH4vFolmzZunUqVOOXLnaJy6o/PIhSe+9955atGihsLAwRUZGql+/ftq3b1+ecWbMmKF69eopLCxMrVq10jfffKP27durffv2jj65pxYXZD9SKtj3h9z4f/31Vw0aNEgVK1ZURESEBg8erNOnT+eJ87333lOrVq1UtmxZVapUSTfccIOWL18uyX6JlSpVqigrKyvP6zp37qwGDRpcLJ2aP3++I19VqlTR3Xff7bTf3759eyUkJEiSYmNjZbFYLnpNwv3792vIkCGqUaOGQkJCVLduXT344IPKzMx0+5pvvvlGd9xxhy6//HKFhISoVq1aGjlypM6cOePUz9U11iwWi4YNG6b58+crJiZGYWFhiouL09atWyXZ96mvvPJKhYaGqn379nm2565du9SrVy9FR0crNDRUNWvWVL9+/ZSWlnax9OESRnkXl5S0tDQdOXLEqa1KlSqO/z/zzDMKDg7WqFGjlJGRoeDgYK1evVpdunRRixYt9NRTTykgIECzZs3STTfdpG+++UatWrWSJG3dulWdO3dW1apVNXbsWJ07d05PPfWUoqKiPI43NTVVbdq0cfyCqFq1qr744gsNGTJE6enpGjFihFP/F154QQEBARo1apTS0tI0ceJE3XXXXfruu+8cfVasWKFbb71V1atX18MPP6zo6Ght375dS5Ys0cMPP6zevXvLarVqzpw5uuaaa5zGnzNnjtq3b6/LLrvMbczbtm1Tu3btFB4erkcffVRBQUF6/fXX1b59e0cxqmfPnqpYsaJGjhyp/v37q2vXripfvrzbMbOzs3Xrrbdq1apV6tevnx5++GGdOHFCK1as0M8//6x69eq5fF1SUpLWrVunfv36qWbNmtqzZ49ee+01tW/fXsnJySpbtmy++f/rr7906623ql+/frrjjjv02muvqV+/fpozZ45GjBihf//737rzzjs1adIk9e7dW/v27VOFChUkSf/+97+1YMECDRs2TDExMTp69Ki+/fZbbd++Xddee63L+bp166by5cvrww8/zHMU1QcffKDGjRs7Tl3u1auXtm3bpuHDh6tOnTo6dOiQVqxYob179160SGlW7969NWTIEC1fvlzPPfec07I77rhD9evX1/PPP5/nS0Kuvn37auzYsUpJSVF0dLSj/dtvv9WBAwfUr18/R9sD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rZxOcTh9+rTOnj3r9Jp69eqpQoUKTuMfPHhQO3bsKNBdz9z58ccfNWLECFWqVMlxZyVP9e3bVxs2bNDMmTN15MiRPMXCPn36KDs7W88880ye1547d87jgujatWu1Z88eDR48WL17987z6Nu3r9asWeO4Hl58fLzWr1+vLVu2OMY4duxYniPp4uPjFR4erueff95ljj35jAIA/MuFp0CWL19eV155pdPv23LlyknKW3Dp2rWrsrOz8+y/vPzyy7JYLI4/tOX+4erCfcFXXnmlwHHmHolz4X7PlClTCjxGYXTt2tXlfJMnT5akfO9wWhR69uypwMBAPf3003lyYhiGY7u2bNlSVatW1fTp05WZmenoM3v27DzbM7dgdv4+fHZ2dp5LthT0+4MZPXr0UEBAgMaNG5fniK0L169///6yWCx6+OGH9fvvvxfojJOWLVuqWrVqmj59utN7+4svvtD27ds92n4BAQHq0aOHPv30U23cuDHPcnf78K7ey4ZhaOrUqaZjMCs9PV3nzp1zamvSpIkCAgJMnaGESw9HrAH5CAgI0JtvvqkuXbqocePGGjx4sC677DLt379fa9asUXh4uD799FNJ9ltgL126VO3atdPQoUN17tw5vfLKK2rcuLF++uknp3HvvfdevfDCC7r33nvVsmVLff311/rll1/yzP/CCy9ozZo1at26te677z7FxMTo2LFj+uGHH7Ry5UodO3bM9Pq89tpruu2229S8eXMNHjxY1atX144dO7Rt27Y8RcCBAwdq1KhRklTg00CfffZZrVixQm3bttXQoUNVpkwZvf7668rIyNDEiRNNxXt+HO+8844SExP1/fffq127djp16pRWrlypoUOHqnv37i5fd+utt+rdd99VRESEYmJitH79eq1cuVKVK1f2KI6COnHihGrWrKnevXurWbNmKl++vFauXKmkpKQ8F9t1JSgoSD179tS8efN06tQpvfjii07Lf/nlF918883q06ePYmJiVKZMGS1atEipqalON1sYM2aM3n77be3evdvpAq7ufPPNNzp79qyys7N19OhRrV27Vp988okiIiK0aNGiQl+/rU+fPho1apRGjRqlyMjIPH/FvfHGG/XAAw9o/Pjx2rJlizp37qygoCDt2rVL8+fP19SpU9W7d2/T886ZM0eBgYFudwr/9a9/6bHHHtO8efOUmJio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", "text/plain": [ "
" ] @@ -186,8 +187,8 @@ "metadata": {}, "outputs": [], "source": [ - "train_data = df_train[\"DrivAge\"].values.reshape(-1, 1)\n", - "test_data = np.sort(df_test[\"DrivAge\"].values).reshape(-1, 1)" + "train_data = df_train[\"DrivAge\"].values.reshape(-1, 1).astype(np.float64)\n", + "test_data = np.sort(df_test[\"DrivAge\"].values).reshape(-1, 1).astype(np.float64)" ] }, { @@ -295,7 +296,411 @@ { "data": { "text/html": [ - "
PoissonRegressor()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
PoissonRegressor()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "PoissonRegressor()" @@ -516,7 +921,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Key generation time: 0.0002 seconds\n" + "Key generation time: 0.0027 seconds\n" ] } ], @@ -545,7 +950,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Execution time: 0.0022 seconds per sample\n" + "Execution time: 0.0027 seconds per sample\n" ] } ], @@ -742,6 +1147,10 @@ "metadata": {}, "outputs": [], "source": [ + "sklearn_sparse_arg = (\n", + " {\"sparse\": False} if \"1.1.\" in sklearn.__version__ else {\"sparse_output\": False}\n", + ")\n", + "\n", "log_scale_transformer = make_pipeline(FunctionTransformer(np.log, validate=False), StandardScaler())\n", "\n", "linear_model_preprocessor = ColumnTransformer(\n", @@ -751,7 +1160,7 @@ " (\"log_scaled_numeric\", log_scale_transformer, [\"Density\"]),\n", " (\n", " \"onehot_categorical\",\n", - " OneHotEncoder(sparse=False),\n", + " OneHotEncoder(**sklearn_sparse_arg),\n", " [\"VehBrand\", \"VehPower\", \"VehGas\", \"Region\", \"Area\"],\n", " ),\n", " ],\n", @@ -1075,7 +1484,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Key generation time: 0.0002 seconds\n" + "Key generation time: 0.0007 seconds\n" ] } ], @@ -1103,7 +1512,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "FHE execution time: 0.0181 seconds per sample\n", + "FHE execution time: 0.0392 seconds per sample\n", "\n", "scikit-learn (clear) deviance score: 1.5934\n", "Concrete ML (FHE) deviance score: 1.5925\n", diff --git a/docs/getting-started/pip_installing.md b/docs/getting-started/pip_installing.md index 433be6f9d..5425e9bd5 100644 --- a/docs/getting-started/pip_installing.md +++ b/docs/getting-started/pip_installing.md @@ -24,7 +24,7 @@ Depending on your OS/HW, Concrete ML may be installed with Docker or with pip: ### Python support -- **Version**: In the current release, Concrete ML supports only `3.8`, `3.9`, `3.10` and `3.11` versions of `python`. +- **Version**: In the current release, Concrete ML supports only `3.8`, `3.9`, `3.10`, `3.11` and `3.12` versions of `python`. - **Linux requirement**: The Concrete ML Python package requires `glibc >= 2.28`. On Linux, you can check your `glibc` version by running `ldd --version`. - **Kaggle installation**: Concrete ML can be installed on Kaggle ([see question on community for more details](https://community.zama.ai/t/how-do-we-use-concrete-ml-on-kaggle/332)) and on Google Colab. diff --git a/flake8_others.cfg b/flake8_others.cfg index f268c51d5..588624aab 100644 --- a/flake8_others.cfg +++ b/flake8_others.cfg @@ -4,4 +4,4 @@ max-line-length = 100 per-file-ignores = __init__.py:F401, tests/sklearn/test_dump_onnx.py: E501 -extend-ignore = DAR,E203 +extend-ignore = DAR,E203,E226 diff --git a/flake8_src.cfg b/flake8_src.cfg index 3a2e41610..0d8227caa 100644 --- a/flake8_src.cfg +++ b/flake8_src.cfg @@ -1,4 +1,4 @@ [flake8] max-line-length = 100 per-file-ignores = __init__.py:F401 -extend-ignore = E203 +extend-ignore = E203, E226 diff --git a/poetry.lock b/poetry.lock index 86cbeb4cb..9b7f52a26 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,14 +1,14 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. [[package]] name = "accelerate" -version = "1.0.0" +version = "1.0.1" description = "Accelerate" optional = false python-versions = ">=3.8.0" files = [ - {file = "accelerate-1.0.0-py3-none-any.whl", hash = "sha256:6fc65cd7a43c41530e3cf8ffb1fbe3ac6e416ec3f4c9a55ddf407d374b887b68"}, - {file = "accelerate-1.0.0.tar.gz", hash = "sha256:e39c99327d37c4583b4e6b70946915072b56f892836942eca22e1d25b71d6d4b"}, + {file = "accelerate-1.0.1-py3-none-any.whl", hash = "sha256:c6aa0c7b8a797cb150471e90e3ca36ac41f5d4b40512cdd6f058b8bf25589467"}, + {file = "accelerate-1.0.1.tar.gz", hash = "sha256:e8f95fc2db14915dc0a9182edfcf3068e5ddb2fa310b583717ad44e5c442399c"}, ] [package.dependencies] @@ -33,119 +33,119 @@ testing = ["bitsandbytes", "datasets", "diffusers", "evaluate", "parameterized", [[package]] name = "aiohappyeyeballs" -version = "2.4.3" +version = "2.4.4" description = "Happy Eyeballs for asyncio" optional = false python-versions = ">=3.8" files = [ - {file = "aiohappyeyeballs-2.4.3-py3-none-any.whl", hash = "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572"}, - {file = "aiohappyeyeballs-2.4.3.tar.gz", hash = "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586"}, + {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, + {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, ] [[package]] name = "aiohttp" -version = "3.10.9" +version = "3.10.11" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.8" files = [ - {file = "aiohttp-3.10.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8b3fb28a9ac8f2558760d8e637dbf27aef1e8b7f1d221e8669a1074d1a266bb2"}, - {file = "aiohttp-3.10.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:91aa966858593f64c8a65cdefa3d6dc8fe3c2768b159da84c1ddbbb2c01ab4ef"}, - {file = "aiohttp-3.10.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:63649309da83277f06a15bbdc2a54fbe75efb92caa2c25bb57ca37762789c746"}, - {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3e7fabedb3fe06933f47f1538df7b3a8d78e13d7167195f51ca47ee12690373"}, - {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c070430fda1a550a1c3a4c2d7281d3b8cfc0c6715f616e40e3332201a253067"}, - {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:51d0a4901b27272ae54e42067bc4b9a90e619a690b4dc43ea5950eb3070afc32"}, - {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fec5fac7aea6c060f317f07494961236434928e6f4374e170ef50b3001e14581"}, - {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:172ad884bb61ad31ed7beed8be776eb17e7fb423f1c1be836d5cb357a096bf12"}, - {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d646fdd74c25bbdd4a055414f0fe32896c400f38ffbdfc78c68e62812a9e0257"}, - {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e86260b76786c28acf0b5fe31c8dca4c2add95098c709b11e8c35b424ebd4f5b"}, - {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d7cafc11d70fdd8801abfc2ff276744ae4cb39d8060b6b542c7e44e5f2cfc2"}, - {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:fc262c3df78c8ff6020c782d9ce02e4bcffe4900ad71c0ecdad59943cba54442"}, - {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:482c85cf3d429844396d939b22bc2a03849cb9ad33344689ad1c85697bcba33a"}, - {file = "aiohttp-3.10.9-cp310-cp310-win32.whl", hash = "sha256:aeebd3061f6f1747c011e1d0b0b5f04f9f54ad1a2ca183e687e7277bef2e0da2"}, - {file = "aiohttp-3.10.9-cp310-cp310-win_amd64.whl", hash = "sha256:fa430b871220dc62572cef9c69b41e0d70fcb9d486a4a207a5de4c1f25d82593"}, - {file = "aiohttp-3.10.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:16e6a51d8bc96b77f04a6764b4ad03eeef43baa32014fce71e882bd71302c7e4"}, - {file = "aiohttp-3.10.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8bd9125dd0cc8ebd84bff2be64b10fdba7dc6fd7be431b5eaf67723557de3a31"}, - {file = "aiohttp-3.10.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dcf354661f54e6a49193d0b5653a1b011ba856e0b7a76bda2c33e4c6892f34ea"}, - {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42775de0ca04f90c10c5c46291535ec08e9bcc4756f1b48f02a0657febe89b10"}, - {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d1e4185c5d7187684d41ebb50c9aeaaaa06ca1875f4c57593071b0409d2444"}, - {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2695c61cf53a5d4345a43d689f37fc0f6d3a2dc520660aec27ec0f06288d1f9"}, - {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a3f063b41cc06e8d0b3fcbbfc9c05b7420f41287e0cd4f75ce0a1f3d80729e6"}, - {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2d37f4718002863b82c6f391c8efd4d3a817da37030a29e2682a94d2716209de"}, - {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2746d8994ebca1bdc55a1e998feff4e94222da709623bb18f6e5cfec8ec01baf"}, - {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6f3c6648aa123bcd73d6f26607d59967b607b0da8ffcc27d418a4b59f4c98c7c"}, - {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:558b3d223fd631ad134d89adea876e7fdb4c93c849ef195049c063ada82b7d08"}, - {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:4e6cb75f8ddd9c2132d00bc03c9716add57f4beff1263463724f6398b813e7eb"}, - {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:608cecd8d58d285bfd52dbca5b6251ca8d6ea567022c8a0eaae03c2589cd9af9"}, - {file = "aiohttp-3.10.9-cp311-cp311-win32.whl", hash = "sha256:36d4fba838be5f083f5490ddd281813b44d69685db910907636bc5dca6322316"}, - {file = "aiohttp-3.10.9-cp311-cp311-win_amd64.whl", hash = "sha256:8be1a65487bdfc285bd5e9baf3208c2132ca92a9b4020e9f27df1b16fab998a9"}, - {file = "aiohttp-3.10.9-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4fd16b30567c5b8e167923be6e027eeae0f20cf2b8a26b98a25115f28ad48ee0"}, - {file = "aiohttp-3.10.9-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:40ff5b7660f903dc587ed36ef08a88d46840182d9d4b5694e7607877ced698a1"}, - {file = "aiohttp-3.10.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4edc3fd701e2b9a0d605a7b23d3de4ad23137d23fc0dbab726aa71d92f11aaaf"}, - {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e525b69ee8a92c146ae5b4da9ecd15e518df4d40003b01b454ad694a27f498b5"}, - {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5002a02c17fcfd796d20bac719981d2fca9c006aac0797eb8f430a58e9d12431"}, - {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd4ceeae2fb8cabdd1b71c82bfdd39662473d3433ec95b962200e9e752fb70d0"}, - {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6e395c3d1f773cf0651cd3559e25182eb0c03a2777b53b4575d8adc1149c6e9"}, - {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbdb8def5268f3f9cd753a265756f49228a20ed14a480d151df727808b4531dd"}, - {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f82ace0ec57c94aaf5b0e118d4366cff5889097412c75aa14b4fd5fc0c44ee3e"}, - {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6ebdc3b3714afe1b134b3bbeb5f745eed3ecbcff92ab25d80e4ef299e83a5465"}, - {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f9ca09414003c0e96a735daa1f071f7d7ed06962ef4fa29ceb6c80d06696d900"}, - {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1298b854fd31d0567cbb916091be9d3278168064fca88e70b8468875ef9ff7e7"}, - {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:60ad5b8a7452c0f5645c73d4dad7490afd6119d453d302cd5b72b678a85d6044"}, - {file = "aiohttp-3.10.9-cp312-cp312-win32.whl", hash = "sha256:1a0ee6c0d590c917f1b9629371fce5f3d3f22c317aa96fbdcce3260754d7ea21"}, - {file = "aiohttp-3.10.9-cp312-cp312-win_amd64.whl", hash = "sha256:c46131c6112b534b178d4e002abe450a0a29840b61413ac25243f1291613806a"}, - {file = "aiohttp-3.10.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2bd9f3eac515c16c4360a6a00c38119333901b8590fe93c3257a9b536026594d"}, - {file = "aiohttp-3.10.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8cc0d13b4e3b1362d424ce3f4e8c79e1f7247a00d792823ffd640878abf28e56"}, - {file = "aiohttp-3.10.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ba1a599255ad6a41022e261e31bc2f6f9355a419575b391f9655c4d9e5df5ff5"}, - {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:776e9f3c9b377fcf097c4a04b241b15691e6662d850168642ff976780609303c"}, - {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8debb45545ad95b58cc16c3c1cc19ad82cffcb106db12b437885dbee265f0ab5"}, - {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2555e4949c8d8782f18ef20e9d39730d2656e218a6f1a21a4c4c0b56546a02e"}, - {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c54dc329cd44f7f7883a9f4baaefe686e8b9662e2c6c184ea15cceee587d8d69"}, - {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e709d6ac598c5416f879bb1bae3fd751366120ac3fa235a01de763537385d036"}, - {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:17c272cfe7b07a5bb0c6ad3f234e0c336fb53f3bf17840f66bd77b5815ab3d16"}, - {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0c21c82df33b264216abffff9f8370f303dab65d8eee3767efbbd2734363f677"}, - {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9331dd34145ff105177855017920dde140b447049cd62bb589de320fd6ddd582"}, - {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ac3196952c673822ebed8871cf8802e17254fff2a2ed4835d9c045d9b88c5ec7"}, - {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2c33fa6e10bb7ed262e3ff03cc69d52869514f16558db0626a7c5c61dde3c29f"}, - {file = "aiohttp-3.10.9-cp313-cp313-win32.whl", hash = "sha256:a14e4b672c257a6b94fe934ee62666bacbc8e45b7876f9dd9502d0f0fe69db16"}, - {file = "aiohttp-3.10.9-cp313-cp313-win_amd64.whl", hash = "sha256:a35ed3d03910785f7d9d6f5381f0c24002b2b888b298e6f941b2fc94c5055fcd"}, - {file = "aiohttp-3.10.9-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f392ef50e22c31fa49b5a46af7f983fa3f118f3eccb8522063bee8bfa6755f8"}, - {file = "aiohttp-3.10.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d1f5c9169e26db6a61276008582d945405b8316aae2bb198220466e68114a0f5"}, - {file = "aiohttp-3.10.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8d9d10d10ec27c0d46ddaecc3c5598c4db9ce4e6398ca872cdde0525765caa2f"}, - {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d97273a52d7f89a75b11ec386f786d3da7723d7efae3034b4dda79f6f093edc1"}, - {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d271f770b52e32236d945911b2082f9318e90ff835d45224fa9e28374303f729"}, - {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7003f33f5f7da1eb02f0446b0f8d2ccf57d253ca6c2e7a5732d25889da82b517"}, - {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6e00c8a92e7663ed2be6fcc08a2997ff06ce73c8080cd0df10cc0321a3168d7"}, - {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a61df62966ce6507aafab24e124e0c3a1cfbe23c59732987fc0fd0d71daa0b88"}, - {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:60555211a006d26e1a389222e3fab8cd379f28e0fbf7472ee55b16c6c529e3a6"}, - {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:d15a29424e96fad56dc2f3abed10a89c50c099f97d2416520c7a543e8fddf066"}, - {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:a19caae0d670771ea7854ca30df76f676eb47e0fd9b2ee4392d44708f272122d"}, - {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:99f9678bf0e2b1b695e8028fedac24ab6770937932eda695815d5a6618c37e04"}, - {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2914caa46054f3b5ff910468d686742ff8cff54b8a67319d75f5d5945fd0a13d"}, - {file = "aiohttp-3.10.9-cp38-cp38-win32.whl", hash = "sha256:0bc059ecbce835630e635879f5f480a742e130d9821fbe3d2f76610a6698ee25"}, - {file = "aiohttp-3.10.9-cp38-cp38-win_amd64.whl", hash = "sha256:e883b61b75ca6efc2541fcd52a5c8ccfe288b24d97e20ac08fdf343b8ac672ea"}, - {file = "aiohttp-3.10.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fcd546782d03181b0b1d20b43d612429a90a68779659ba8045114b867971ab71"}, - {file = "aiohttp-3.10.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:85711eec2d875cd88c7eb40e734c4ca6d9ae477d6f26bd2b5bb4f7f60e41b156"}, - {file = "aiohttp-3.10.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:02d1d6610588bcd743fae827bd6f2e47e0d09b346f230824b4c6fb85c6065f9c"}, - {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3668d0c2a4d23fb136a753eba42caa2c0abbd3d9c5c87ee150a716a16c6deec1"}, - {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d7c071235a47d407b0e93aa6262b49422dbe48d7d8566e1158fecc91043dd948"}, - {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ac74e794e3aee92ae8f571bfeaa103a141e409863a100ab63a253b1c53b707eb"}, - {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bbf94d4a0447705b7775417ca8bb8086cc5482023a6e17cdc8f96d0b1b5aba6"}, - {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb0b2d5d51f96b6cc19e6ab46a7b684be23240426ae951dcdac9639ab111b45e"}, - {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e83dfefb4f7d285c2d6a07a22268344a97d61579b3e0dce482a5be0251d672ab"}, - {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f0a44bb40b6aaa4fb9a5c1ee07880570ecda2065433a96ccff409c9c20c1624a"}, - {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c2b627d3c8982691b06d89d31093cee158c30629fdfebe705a91814d49b554f8"}, - {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:03690541e4cc866eef79626cfa1ef4dd729c5c1408600c8cb9e12e1137eed6ab"}, - {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad3675c126f2a95bde637d162f8231cff6bc0bc9fbe31bd78075f9ff7921e322"}, - {file = "aiohttp-3.10.9-cp39-cp39-win32.whl", hash = "sha256:1321658f12b6caffafdc35cfba6c882cb014af86bef4e78c125e7e794dfb927b"}, - {file = "aiohttp-3.10.9-cp39-cp39-win_amd64.whl", hash = "sha256:9fdf5c839bf95fc67be5794c780419edb0dbef776edcfc6c2e5e2ffd5ee755fa"}, - {file = "aiohttp-3.10.9.tar.gz", hash = "sha256:143b0026a9dab07a05ad2dd9e46aa859bffdd6348ddc5967b42161168c24f857"}, + {file = "aiohttp-3.10.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5077b1a5f40ffa3ba1f40d537d3bec4383988ee51fbba6b74aa8fb1bc466599e"}, + {file = "aiohttp-3.10.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8d6a14a4d93b5b3c2891fca94fa9d41b2322a68194422bef0dd5ec1e57d7d298"}, + {file = "aiohttp-3.10.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffbfde2443696345e23a3c597049b1dd43049bb65337837574205e7368472177"}, + {file = "aiohttp-3.10.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20b3d9e416774d41813bc02fdc0663379c01817b0874b932b81c7f777f67b217"}, + {file = "aiohttp-3.10.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b943011b45ee6bf74b22245c6faab736363678e910504dd7531a58c76c9015a"}, + {file = "aiohttp-3.10.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48bc1d924490f0d0b3658fe5c4b081a4d56ebb58af80a6729d4bd13ea569797a"}, + {file = "aiohttp-3.10.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e12eb3f4b1f72aaaf6acd27d045753b18101524f72ae071ae1c91c1cd44ef115"}, + {file = "aiohttp-3.10.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f14ebc419a568c2eff3c1ed35f634435c24ead2fe19c07426af41e7adb68713a"}, + {file = "aiohttp-3.10.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:72b191cdf35a518bfc7ca87d770d30941decc5aaf897ec8b484eb5cc8c7706f3"}, + {file = "aiohttp-3.10.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5ab2328a61fdc86424ee540d0aeb8b73bbcad7351fb7cf7a6546fc0bcffa0038"}, + {file = "aiohttp-3.10.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:aa93063d4af05c49276cf14e419550a3f45258b6b9d1f16403e777f1addf4519"}, + {file = "aiohttp-3.10.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:30283f9d0ce420363c24c5c2421e71a738a2155f10adbb1a11a4d4d6d2715cfc"}, + {file = "aiohttp-3.10.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e5358addc8044ee49143c546d2182c15b4ac3a60be01c3209374ace05af5733d"}, + {file = "aiohttp-3.10.11-cp310-cp310-win32.whl", hash = "sha256:e1ffa713d3ea7cdcd4aea9cddccab41edf6882fa9552940344c44e59652e1120"}, + {file = "aiohttp-3.10.11-cp310-cp310-win_amd64.whl", hash = "sha256:778cbd01f18ff78b5dd23c77eb82987ee4ba23408cbed233009fd570dda7e674"}, + {file = "aiohttp-3.10.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:80ff08556c7f59a7972b1e8919f62e9c069c33566a6d28586771711e0eea4f07"}, + {file = "aiohttp-3.10.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c8f96e9ee19f04c4914e4e7a42a60861066d3e1abf05c726f38d9d0a466e695"}, + {file = "aiohttp-3.10.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fb8601394d537da9221947b5d6e62b064c9a43e88a1ecd7414d21a1a6fba9c24"}, + {file = "aiohttp-3.10.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ea224cf7bc2d8856d6971cea73b1d50c9c51d36971faf1abc169a0d5f85a382"}, + {file = "aiohttp-3.10.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db9503f79e12d5d80b3efd4d01312853565c05367493379df76d2674af881caa"}, + {file = "aiohttp-3.10.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0f449a50cc33f0384f633894d8d3cd020e3ccef81879c6e6245c3c375c448625"}, + {file = "aiohttp-3.10.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82052be3e6d9e0c123499127782a01a2b224b8af8c62ab46b3f6197035ad94e9"}, + {file = "aiohttp-3.10.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:20063c7acf1eec550c8eb098deb5ed9e1bb0521613b03bb93644b810986027ac"}, + {file = "aiohttp-3.10.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:489cced07a4c11488f47aab1f00d0c572506883f877af100a38f1fedaa884c3a"}, + {file = "aiohttp-3.10.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ea9b3bab329aeaa603ed3bf605f1e2a6f36496ad7e0e1aa42025f368ee2dc07b"}, + {file = "aiohttp-3.10.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ca117819d8ad113413016cb29774b3f6d99ad23c220069789fc050267b786c16"}, + {file = "aiohttp-3.10.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2dfb612dcbe70fb7cdcf3499e8d483079b89749c857a8f6e80263b021745c730"}, + {file = "aiohttp-3.10.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9b615d3da0d60e7d53c62e22b4fd1c70f4ae5993a44687b011ea3a2e49051b8"}, + {file = "aiohttp-3.10.11-cp311-cp311-win32.whl", hash = "sha256:29103f9099b6068bbdf44d6a3d090e0a0b2be6d3c9f16a070dd9d0d910ec08f9"}, + {file = "aiohttp-3.10.11-cp311-cp311-win_amd64.whl", hash = "sha256:236b28ceb79532da85d59aa9b9bf873b364e27a0acb2ceaba475dc61cffb6f3f"}, + {file = "aiohttp-3.10.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7480519f70e32bfb101d71fb9a1f330fbd291655a4c1c922232a48c458c52710"}, + {file = "aiohttp-3.10.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f65267266c9aeb2287a6622ee2bb39490292552f9fbf851baabc04c9f84e048d"}, + {file = "aiohttp-3.10.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7400a93d629a0608dc1d6c55f1e3d6e07f7375745aaa8bd7f085571e4d1cee97"}, + {file = "aiohttp-3.10.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f34b97e4b11b8d4eb2c3a4f975be626cc8af99ff479da7de49ac2c6d02d35725"}, + {file = "aiohttp-3.10.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e7b825da878464a252ccff2958838f9caa82f32a8dbc334eb9b34a026e2c636"}, + {file = "aiohttp-3.10.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9f92a344c50b9667827da308473005f34767b6a2a60d9acff56ae94f895f385"}, + {file = "aiohttp-3.10.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f1ab987a27b83c5268a17218463c2ec08dbb754195113867a27b166cd6087"}, + {file = "aiohttp-3.10.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1dc0f4ca54842173d03322793ebcf2c8cc2d34ae91cc762478e295d8e361e03f"}, + {file = "aiohttp-3.10.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7ce6a51469bfaacff146e59e7fb61c9c23006495d11cc24c514a455032bcfa03"}, + {file = "aiohttp-3.10.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:aad3cd91d484d065ede16f3cf15408254e2469e3f613b241a1db552c5eb7ab7d"}, + {file = "aiohttp-3.10.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f4df4b8ca97f658c880fb4b90b1d1ec528315d4030af1ec763247ebfd33d8b9a"}, + {file = "aiohttp-3.10.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2e4e18a0a2d03531edbc06c366954e40a3f8d2a88d2b936bbe78a0c75a3aab3e"}, + {file = "aiohttp-3.10.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6ce66780fa1a20e45bc753cda2a149daa6dbf1561fc1289fa0c308391c7bc0a4"}, + {file = "aiohttp-3.10.11-cp312-cp312-win32.whl", hash = "sha256:a919c8957695ea4c0e7a3e8d16494e3477b86f33067478f43106921c2fef15bb"}, + {file = "aiohttp-3.10.11-cp312-cp312-win_amd64.whl", hash = "sha256:b5e29706e6389a2283a91611c91bf24f218962717c8f3b4e528ef529d112ee27"}, + {file = "aiohttp-3.10.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:703938e22434d7d14ec22f9f310559331f455018389222eed132808cd8f44127"}, + {file = "aiohttp-3.10.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9bc50b63648840854e00084c2b43035a62e033cb9b06d8c22b409d56eb098413"}, + {file = "aiohttp-3.10.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f0463bf8b0754bc744e1feb61590706823795041e63edf30118a6f0bf577461"}, + {file = "aiohttp-3.10.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6c6dec398ac5a87cb3a407b068e1106b20ef001c344e34154616183fe684288"}, + {file = "aiohttp-3.10.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bcaf2d79104d53d4dcf934f7ce76d3d155302d07dae24dff6c9fffd217568067"}, + {file = "aiohttp-3.10.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:25fd5470922091b5a9aeeb7e75be609e16b4fba81cdeaf12981393fb240dd10e"}, + {file = "aiohttp-3.10.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbde2ca67230923a42161b1f408c3992ae6e0be782dca0c44cb3206bf330dee1"}, + {file = "aiohttp-3.10.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:249c8ff8d26a8b41a0f12f9df804e7c685ca35a207e2410adbd3e924217b9006"}, + {file = "aiohttp-3.10.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:878ca6a931ee8c486a8f7b432b65431d095c522cbeb34892bee5be97b3481d0f"}, + {file = "aiohttp-3.10.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8663f7777ce775f0413324be0d96d9730959b2ca73d9b7e2c2c90539139cbdd6"}, + {file = "aiohttp-3.10.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6cd3f10b01f0c31481fba8d302b61603a2acb37b9d30e1d14e0f5a58b7b18a31"}, + {file = "aiohttp-3.10.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:4e8d8aad9402d3aa02fdc5ca2fe68bcb9fdfe1f77b40b10410a94c7f408b664d"}, + {file = "aiohttp-3.10.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:38e3c4f80196b4f6c3a85d134a534a56f52da9cb8d8e7af1b79a32eefee73a00"}, + {file = "aiohttp-3.10.11-cp313-cp313-win32.whl", hash = "sha256:fc31820cfc3b2863c6e95e14fcf815dc7afe52480b4dc03393c4873bb5599f71"}, + {file = "aiohttp-3.10.11-cp313-cp313-win_amd64.whl", hash = "sha256:4996ff1345704ffdd6d75fb06ed175938c133425af616142e7187f28dc75f14e"}, + {file = "aiohttp-3.10.11-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:74baf1a7d948b3d640badeac333af581a367ab916b37e44cf90a0334157cdfd2"}, + {file = "aiohttp-3.10.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:473aebc3b871646e1940c05268d451f2543a1d209f47035b594b9d4e91ce8339"}, + {file = "aiohttp-3.10.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c2f746a6968c54ab2186574e15c3f14f3e7f67aef12b761e043b33b89c5b5f95"}, + {file = "aiohttp-3.10.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d110cabad8360ffa0dec8f6ec60e43286e9d251e77db4763a87dcfe55b4adb92"}, + {file = "aiohttp-3.10.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0099c7d5d7afff4202a0c670e5b723f7718810000b4abcbc96b064129e64bc7"}, + {file = "aiohttp-3.10.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0316e624b754dbbf8c872b62fe6dcb395ef20c70e59890dfa0de9eafccd2849d"}, + {file = "aiohttp-3.10.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a5f7ab8baf13314e6b2485965cbacb94afff1e93466ac4d06a47a81c50f9cca"}, + {file = "aiohttp-3.10.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c891011e76041e6508cbfc469dd1a8ea09bc24e87e4c204e05f150c4c455a5fa"}, + {file = "aiohttp-3.10.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9208299251370ee815473270c52cd3f7069ee9ed348d941d574d1457d2c73e8b"}, + {file = "aiohttp-3.10.11-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:459f0f32c8356e8125f45eeff0ecf2b1cb6db1551304972702f34cd9e6c44658"}, + {file = "aiohttp-3.10.11-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:14cdc8c1810bbd4b4b9f142eeee23cda528ae4e57ea0923551a9af4820980e39"}, + {file = "aiohttp-3.10.11-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:971aa438a29701d4b34e4943e91b5e984c3ae6ccbf80dd9efaffb01bd0b243a9"}, + {file = "aiohttp-3.10.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:9a309c5de392dfe0f32ee57fa43ed8fc6ddf9985425e84bd51ed66bb16bce3a7"}, + {file = "aiohttp-3.10.11-cp38-cp38-win32.whl", hash = "sha256:9ec1628180241d906a0840b38f162a3215114b14541f1a8711c368a8739a9be4"}, + {file = "aiohttp-3.10.11-cp38-cp38-win_amd64.whl", hash = "sha256:9c6e0ffd52c929f985c7258f83185d17c76d4275ad22e90aa29f38e211aacbec"}, + {file = "aiohttp-3.10.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cdc493a2e5d8dc79b2df5bec9558425bcd39aff59fc949810cbd0832e294b106"}, + {file = "aiohttp-3.10.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b3e70f24e7d0405be2348da9d5a7836936bf3a9b4fd210f8c37e8d48bc32eca6"}, + {file = "aiohttp-3.10.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:968b8fb2a5eee2770eda9c7b5581587ef9b96fbdf8dcabc6b446d35ccc69df01"}, + {file = "aiohttp-3.10.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deef4362af9493d1382ef86732ee2e4cbc0d7c005947bd54ad1a9a16dd59298e"}, + {file = "aiohttp-3.10.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:686b03196976e327412a1b094f4120778c7c4b9cff9bce8d2fdfeca386b89829"}, + {file = "aiohttp-3.10.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3bf6d027d9d1d34e1c2e1645f18a6498c98d634f8e373395221121f1c258ace8"}, + {file = "aiohttp-3.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:099fd126bf960f96d34a760e747a629c27fb3634da5d05c7ef4d35ef4ea519fc"}, + {file = "aiohttp-3.10.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c73c4d3dae0b4644bc21e3de546530531d6cdc88659cdeb6579cd627d3c206aa"}, + {file = "aiohttp-3.10.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0c5580f3c51eea91559db3facd45d72e7ec970b04528b4709b1f9c2555bd6d0b"}, + {file = "aiohttp-3.10.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:fdf6429f0caabfd8a30c4e2eaecb547b3c340e4730ebfe25139779b9815ba138"}, + {file = "aiohttp-3.10.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d97187de3c276263db3564bb9d9fad9e15b51ea10a371ffa5947a5ba93ad6777"}, + {file = "aiohttp-3.10.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:0acafb350cfb2eba70eb5d271f55e08bd4502ec35e964e18ad3e7d34d71f7261"}, + {file = "aiohttp-3.10.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c13ed0c779911c7998a58e7848954bd4d63df3e3575f591e321b19a2aec8df9f"}, + {file = "aiohttp-3.10.11-cp39-cp39-win32.whl", hash = "sha256:22b7c540c55909140f63ab4f54ec2c20d2635c0289cdd8006da46f3327f971b9"}, + {file = "aiohttp-3.10.11-cp39-cp39-win_amd64.whl", hash = "sha256:7b26b1551e481012575dab8e3727b16fe7dd27eb2711d2e63ced7368756268fb"}, + {file = "aiohttp-3.10.11.tar.gz", hash = "sha256:9dc2b8f3dcab2e39e0fa309c8da50c3b55e6f34ab25f1a71d3288f24924d33a7"}, ] [package.dependencies] aiohappyeyeballs = ">=2.3.0" aiosignal = ">=1.1.2" -async-timeout = {version = ">=4.0,<5.0", markers = "python_version < \"3.11\""} +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" frozenlist = ">=1.1.1" multidict = ">=4.5,<7.0" @@ -181,13 +181,13 @@ files = [ [[package]] name = "anyio" -version = "4.5.0" +version = "4.5.2" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" files = [ - {file = "anyio-4.5.0-py3-none-any.whl", hash = "sha256:fdeb095b7cc5a5563175eedd926ec4ae55413bb4be5770c424af0ba46ccb4a78"}, - {file = "anyio-4.5.0.tar.gz", hash = "sha256:c5a275fe5ca0afd788001f58fca1e69e29ce706d746e317d660e21f70c530ef9"}, + {file = "anyio-4.5.2-py3-none-any.whl", hash = "sha256:c011ee36bc1e8ba40e5a81cb9df91925c218fe9b778554e0b56a21e1b5d4716f"}, + {file = "anyio-4.5.2.tar.gz", hash = "sha256:23009af4ed04ce05991845451e11ef02fc7c5ed29179ac9a420e5ad0ac7ddc5b"}, ] [package.dependencies] @@ -198,7 +198,7 @@ typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.21.0b1)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] trio = ["trio (>=0.26.1)"] [[package]] @@ -290,40 +290,32 @@ test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock [[package]] name = "astroid" -version = "2.15.8" +version = "3.2.4" description = "An abstract syntax tree for Python with inference support." optional = false -python-versions = ">=3.7.2" +python-versions = ">=3.8.0" files = [ - {file = "astroid-2.15.8-py3-none-any.whl", hash = "sha256:1aa149fc5c6589e3d0ece885b4491acd80af4f087baafa3fb5203b113e68cd3c"}, - {file = "astroid-2.15.8.tar.gz", hash = "sha256:6c107453dffee9055899705de3c9ead36e74119cee151e5a9aaf7f0b0e020a6a"}, + {file = "astroid-3.2.4-py3-none-any.whl", hash = "sha256:413658a61eeca6202a59231abb473f932038fbcbf1666587f66d482083413a25"}, + {file = "astroid-3.2.4.tar.gz", hash = "sha256:0e14202810b30da1b735827f78f5157be2bbd4a7a59b7707ca0bfc2fb4c0063a"}, ] [package.dependencies] -lazy-object-proxy = ">=1.4.0" typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} -wrapt = [ - {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, - {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, -] [[package]] name = "asttokens" -version = "2.4.1" +version = "3.0.0" description = "Annotate AST trees with source code positions" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, - {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, + {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, + {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, ] -[package.dependencies] -six = ">=1.12.0" - [package.extras] -astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] -test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] +astroid = ["astroid (>=2,<4)"] +test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "async-lru" @@ -341,13 +333,13 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "async-timeout" -version = "4.0.3" +version = "5.0.1" description = "Timeout context manager for asyncio programs" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" 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"}, + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, ] [[package]] @@ -371,17 +363,17 @@ tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "autopep8" -version = "2.0.4" +version = "2.3.1" description = "A tool that automatically formats Python code to conform to the PEP 8 style guide" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "autopep8-2.0.4-py2.py3-none-any.whl", hash = "sha256:067959ca4a07b24dbd5345efa8325f5f58da4298dab0dde0443d5ed765de80cb"}, - {file = "autopep8-2.0.4.tar.gz", hash = "sha256:2913064abd97b3419d1cc83ea71f042cb821f87e45b9c88cad5ad3c4ea87fe0c"}, + {file = "autopep8-2.3.1-py2.py3-none-any.whl", hash = "sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d"}, + {file = "autopep8-2.3.1.tar.gz", hash = "sha256:8d6c87eba648fdcfc83e29b788910b8643171c395d9c4bcf115ece035b9c9dda"}, ] [package.dependencies] -pycodestyle = ">=2.10.0" +pycodestyle = ">=2.12.0" tomli = {version = "*", markers = "python_version < \"3.11\""} [[package]] @@ -558,13 +550,13 @@ vision = ["torchvision", "tqdm"] [[package]] name = "cachecontrol" -version = "0.14.0" +version = "0.14.1" description = "httplib2 caching for requests" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "cachecontrol-0.14.0-py3-none-any.whl", hash = "sha256:f5bf3f0620c38db2e5122c0726bdebb0d16869de966ea6a2befe92470b740ea0"}, - {file = "cachecontrol-0.14.0.tar.gz", hash = "sha256:7db1195b41c81f8274a7bbd97c956f44e8348265a1bc7641c37dfebc39f0c938"}, + {file = "cachecontrol-0.14.1-py3-none-any.whl", hash = "sha256:65e3abd62b06382ce3894df60dde9e0deb92aeb734724f68fa4f3b91e97206b9"}, + {file = "cachecontrol-0.14.1.tar.gz", hash = "sha256:06ef916a1e4eb7dba9948cdfc9c76e749db2e02104a9a1277e8b642591a0f717"}, ] [package.dependencies] @@ -573,7 +565,7 @@ msgpack = ">=0.5.2,<2.0.0" requests = ">=2.16.0" [package.extras] -dev = ["CacheControl[filecache,redis]", "black", "build", "cherrypy", "furo", "mypy", "pytest", "pytest-cov", "sphinx", "sphinx-copybutton", "tox", "types-redis", "types-requests"] +dev = ["CacheControl[filecache,redis]", "build", "cherrypy", "codespell[tomli]", "furo", "mypy", "pytest", "pytest-cov", "ruff", "sphinx", "sphinx-copybutton", "tox", "types-redis", "types-requests"] filecache = ["filelock (>=3.8.0)"] redis = ["redis (>=2.10.5)"] @@ -883,23 +875,26 @@ files = [ [[package]] name = "concrete-python" -version = "2.8.1" +version = "2.9.0rc1.dev20241130" description = "A state-of-the-art homomorphic encryption framework" optional = false python-versions = ">=3.8" files = [ - {file = "concrete_python-2.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1615fe4991883e378408f1a88a5df448217cbc035a72bdd141e1d01be09a3772"}, - {file = "concrete_python-2.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:9bba6bf4faddc260c40364cc48da98b8785625b61dbb0153dfd729a25c9ca407"}, - {file = "concrete_python-2.8.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a93024b3199e30161465733dc7cb91202a6dd1fe8646ae87a9c7279e2f2fc2c1"}, - {file = "concrete_python-2.8.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e32cc6dac2ff4568c02e06a4bc40879c394e1eb5778786b79547a258c31c391c"}, - {file = "concrete_python-2.8.1-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:dfa5349e526611835453da0f1683538c2a07880ca0442856d514a585808a6c09"}, - {file = "concrete_python-2.8.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:c9ded07e6966d469add51624cd6803b640098dd9d35918b40067c8e56e15e689"}, - {file = "concrete_python-2.8.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9ecc6361d404422381c0d7bcffa51aa53ed03e19f4fb5d7f99f12899b895849a"}, - {file = "concrete_python-2.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:782acf5a420704323456554e48bf64b6d942c866a50adced3238db6591bdacae"}, - {file = "concrete_python-2.8.1-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:3b40f737236eb7758d3522f75324b7185a075960f51544435d94e2a2c3e309f7"}, - {file = "concrete_python-2.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:577c06f485eb1ff115ea7196b85ac7f468fdc28ea4d6edf2caa4775e22df9839"}, - {file = "concrete_python-2.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:d6c5cc28c3c35e09b5123075e23a659891c913c8ef9ec8679b88a3c3b1ec1afd"}, - {file = "concrete_python-2.8.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:9a097af5736a9c97cc63e81febfcaa2be035a5ea76a16d7c383b531a23229fe3"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:336acc03fd14b68ce2c2c3dcbcdef86b26daa890463f235e7f5ec7ba7c496af7"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3d2eca05b1c25cf1be9366dd9d9cbd27049ee72b93b13918d70031f9dd7da997"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b7ce03a3fd3538d7374bc2ab1cbea606b57e99c56f703e0d30dc30050f3b8242"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2d1c7ec21625f10f8b5f56adb689dcdca858cb97eff88e5e434bf4250b8d26ed"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:fe2f519e96056eaf6bfc4b0758b5fcc6c284dd483968f0ef5113ed4b02a9dea4"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:db3e43fb9aae3acbd5f1e7636f566a2f41e0de86da43057184c372d1f32edcd5"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0c375f3f32d26f41e4141f19bd0047c438bd50f59668be4a49680ade30815114"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:4fdab5a8945736ac24dee50ff9fdcae4e74477bc64acee182e5c9ca780ccac16"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6f42226a0d4a2e9e66c132791679434f7b72142cd79884da95d99d6097875843"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2f98b356906d75f8ce3b74aa9ce03d521ab1f2cfea3c99537758f050cfbffa67"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:92c81c7d774a14dc7fe5cea37465dc0a2c9ee63b64f1ca94942e3ee50259c174"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:30cc54a9d927bbcee83e0287eda532aead4ebeedf565d31036e7834ee9962efb"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:71856f0060f9ef7d2491dffd49c7c65a94fb4f38f540be66a71d56836778a015"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:853ad8a3c22131e7da21b5945cf72d6466513f66254fe9b17299167bd04fb7a2"}, + {file = "concrete_python-2.9.0rc1.dev20241130-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:277d96e8d7d7335e64bea6d1ba66e4a47f96c2d80b88cce475c9ea8a7b9a1d7b"}, ] [package.dependencies] @@ -982,7 +977,10 @@ files = [ ] [package.dependencies] -numpy = {version = ">=1.16,<2.0", markers = "python_version <= \"3.11\""} +numpy = [ + {version = ">=1.16,<2.0", markers = "python_version <= \"3.11\""}, + {version = ">=1.26.0rc1,<2.0", markers = "python_version >= \"3.12\""}, +] [package.extras] bokeh = ["bokeh", "selenium"] @@ -1080,38 +1078,38 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "43.0.1" +version = "43.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-43.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a"}, - {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042"}, - {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494"}, - {file = "cryptography-43.0.1-cp37-abi3-win32.whl", hash = "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2"}, - {file = "cryptography-43.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d"}, - {file = "cryptography-43.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1"}, - {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa"}, - {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4"}, - {file = "cryptography-43.0.1-cp39-abi3-win32.whl", hash = "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47"}, - {file = "cryptography-43.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2"}, - {file = "cryptography-43.0.1.tar.gz", hash = "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d"}, + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, ] [package.dependencies] @@ -1124,7 +1122,7 @@ nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.1)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -1177,33 +1175,37 @@ files = [ [[package]] name = "debugpy" -version = "1.8.6" +version = "1.8.9" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:30f467c5345d9dfdcc0afdb10e018e47f092e383447500f125b4e013236bf14b"}, - {file = "debugpy-1.8.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d73d8c52614432f4215d0fe79a7e595d0dd162b5c15233762565be2f014803b"}, - {file = "debugpy-1.8.6-cp310-cp310-win32.whl", hash = "sha256:e3e182cd98eac20ee23a00653503315085b29ab44ed66269482349d307b08df9"}, - {file = "debugpy-1.8.6-cp310-cp310-win_amd64.whl", hash = "sha256:e3a82da039cfe717b6fb1886cbbe5c4a3f15d7df4765af857f4307585121c2dd"}, - {file = "debugpy-1.8.6-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:67479a94cf5fd2c2d88f9615e087fcb4fec169ec780464a3f2ba4a9a2bb79955"}, - {file = "debugpy-1.8.6-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb8653f6cbf1dd0a305ac1aa66ec246002145074ea57933978346ea5afdf70b"}, - {file = "debugpy-1.8.6-cp311-cp311-win32.whl", hash = "sha256:cdaf0b9691879da2d13fa39b61c01887c34558d1ff6e5c30e2eb698f5384cd43"}, - {file = "debugpy-1.8.6-cp311-cp311-win_amd64.whl", hash = "sha256:43996632bee7435583952155c06881074b9a742a86cee74e701d87ca532fe833"}, - {file = "debugpy-1.8.6-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:db891b141fc6ee4b5fc6d1cc8035ec329cabc64bdd2ae672b4550c87d4ecb128"}, - {file = "debugpy-1.8.6-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:567419081ff67da766c898ccf21e79f1adad0e321381b0dfc7a9c8f7a9347972"}, - {file = "debugpy-1.8.6-cp312-cp312-win32.whl", hash = "sha256:c9834dfd701a1f6bf0f7f0b8b1573970ae99ebbeee68314116e0ccc5c78eea3c"}, - {file = "debugpy-1.8.6-cp312-cp312-win_amd64.whl", hash = "sha256:e4ce0570aa4aca87137890d23b86faeadf184924ad892d20c54237bcaab75d8f"}, - {file = "debugpy-1.8.6-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:df5dc9eb4ca050273b8e374a4cd967c43be1327eeb42bfe2f58b3cdfe7c68dcb"}, - {file = "debugpy-1.8.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a85707c6a84b0c5b3db92a2df685b5230dd8fb8c108298ba4f11dba157a615a"}, - {file = "debugpy-1.8.6-cp38-cp38-win32.whl", hash = "sha256:538c6cdcdcdad310bbefd96d7850be1cd46e703079cc9e67d42a9ca776cdc8a8"}, - {file = "debugpy-1.8.6-cp38-cp38-win_amd64.whl", hash = "sha256:22140bc02c66cda6053b6eb56dfe01bbe22a4447846581ba1dd6df2c9f97982d"}, - {file = "debugpy-1.8.6-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:c1cef65cffbc96e7b392d9178dbfd524ab0750da6c0023c027ddcac968fd1caa"}, - {file = "debugpy-1.8.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1e60bd06bb3cc5c0e957df748d1fab501e01416c43a7bdc756d2a992ea1b881"}, - {file = "debugpy-1.8.6-cp39-cp39-win32.whl", hash = "sha256:f7158252803d0752ed5398d291dee4c553bb12d14547c0e1843ab74ee9c31123"}, - {file = "debugpy-1.8.6-cp39-cp39-win_amd64.whl", hash = "sha256:3358aa619a073b620cd0d51d8a6176590af24abcc3fe2e479929a154bf591b51"}, - {file = "debugpy-1.8.6-py2.py3-none-any.whl", hash = "sha256:b48892df4d810eff21d3ef37274f4c60d32cdcafc462ad5647239036b0f0649f"}, - {file = "debugpy-1.8.6.zip", hash = "sha256:c931a9371a86784cee25dec8d65bc2dc7a21f3f1552e3833d9ef8f919d22280a"}, + {file = "debugpy-1.8.9-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:cfe1e6c6ad7178265f74981edf1154ffce97b69005212fbc90ca22ddfe3d017e"}, + {file = "debugpy-1.8.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada7fb65102a4d2c9ab62e8908e9e9f12aed9d76ef44880367bc9308ebe49a0f"}, + {file = "debugpy-1.8.9-cp310-cp310-win32.whl", hash = "sha256:c36856343cbaa448171cba62a721531e10e7ffb0abff838004701454149bc037"}, + {file = "debugpy-1.8.9-cp310-cp310-win_amd64.whl", hash = "sha256:17c5e0297678442511cf00a745c9709e928ea4ca263d764e90d233208889a19e"}, + {file = "debugpy-1.8.9-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:b74a49753e21e33e7cf030883a92fa607bddc4ede1aa4145172debc637780040"}, + {file = "debugpy-1.8.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d22dacdb0e296966d7d74a7141aaab4bec123fa43d1a35ddcb39bf9fd29d70"}, + {file = "debugpy-1.8.9-cp311-cp311-win32.whl", hash = "sha256:8138efff315cd09b8dcd14226a21afda4ca582284bf4215126d87342bba1cc66"}, + {file = "debugpy-1.8.9-cp311-cp311-win_amd64.whl", hash = "sha256:ff54ef77ad9f5c425398efb150239f6fe8e20c53ae2f68367eba7ece1e96226d"}, + {file = "debugpy-1.8.9-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:957363d9a7a6612a37458d9a15e72d03a635047f946e5fceee74b50d52a9c8e2"}, + {file = "debugpy-1.8.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e565fc54b680292b418bb809f1386f17081d1346dca9a871bf69a8ac4071afe"}, + {file = "debugpy-1.8.9-cp312-cp312-win32.whl", hash = "sha256:3e59842d6c4569c65ceb3751075ff8d7e6a6ada209ceca6308c9bde932bcef11"}, + {file = "debugpy-1.8.9-cp312-cp312-win_amd64.whl", hash = "sha256:66eeae42f3137eb428ea3a86d4a55f28da9bd5a4a3d369ba95ecc3a92c1bba53"}, + {file = "debugpy-1.8.9-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:957ecffff80d47cafa9b6545de9e016ae8c9547c98a538ee96ab5947115fb3dd"}, + {file = "debugpy-1.8.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1efbb3ff61487e2c16b3e033bc8595aea578222c08aaf3c4bf0f93fadbd662ee"}, + {file = "debugpy-1.8.9-cp313-cp313-win32.whl", hash = "sha256:7c4d65d03bee875bcb211c76c1d8f10f600c305dbd734beaed4077e902606fee"}, + {file = "debugpy-1.8.9-cp313-cp313-win_amd64.whl", hash = "sha256:e46b420dc1bea64e5bbedd678148be512442bc589b0111bd799367cde051e71a"}, + {file = "debugpy-1.8.9-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:472a3994999fe6c0756945ffa359e9e7e2d690fb55d251639d07208dbc37caea"}, + {file = "debugpy-1.8.9-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:365e556a4772d7d0d151d7eb0e77ec4db03bcd95f26b67b15742b88cacff88e9"}, + {file = "debugpy-1.8.9-cp38-cp38-win32.whl", hash = "sha256:54a7e6d3014c408eb37b0b06021366ee985f1539e12fe49ca2ee0d392d9ceca5"}, + {file = "debugpy-1.8.9-cp38-cp38-win_amd64.whl", hash = "sha256:8e99c0b1cc7bf86d83fb95d5ccdc4ad0586d4432d489d1f54e4055bcc795f693"}, + {file = "debugpy-1.8.9-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:7e8b079323a56f719977fde9d8115590cb5e7a1cba2fcee0986ef8817116e7c1"}, + {file = "debugpy-1.8.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6953b335b804a41f16a192fa2e7851bdcfd92173cbb2f9f777bb934f49baab65"}, + {file = "debugpy-1.8.9-cp39-cp39-win32.whl", hash = "sha256:7e646e62d4602bb8956db88b1e72fe63172148c1e25c041e03b103a25f36673c"}, + {file = "debugpy-1.8.9-cp39-cp39-win_amd64.whl", hash = "sha256:3d9755e77a2d680ce3d2c5394a444cf42be4a592caaf246dbfbdd100ffcf7ae5"}, + {file = "debugpy-1.8.9-py2.py3-none-any.whl", hash = "sha256:cc37a6c9987ad743d9c3a14fa1b1a14b7e4e6041f9dd0c8abf8895fe7a97b899"}, + {file = "debugpy-1.8.9.zip", hash = "sha256:1339e14c7d980407248f09824d1b25ff5c5616651689f1e0f0e51bdead3ea13e"}, ] [[package]] @@ -1340,13 +1342,13 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fastjsonschema" -version = "2.20.0" +version = "2.21.0" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, - {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, + {file = "fastjsonschema-2.21.0-py3-none-any.whl", hash = "sha256:5b23b8e7c9c6adc0ecb91c03a0768cb48cd154d9159378a69c8318532e0b5cbf"}, + {file = "fastjsonschema-2.21.0.tar.gz", hash = "sha256:a02026bbbedc83729da3bfff215564b71902757f33f60089f1abae193daa4771"}, ] [package.extras] @@ -1370,19 +1372,19 @@ typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "flake8" -version = "6.0.0" +version = "7.1.1" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.8.1" files = [ - {file = "flake8-6.0.0-py2.py3-none-any.whl", hash = "sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7"}, - {file = "flake8-6.0.0.tar.gz", hash = "sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181"}, + {file = "flake8-7.1.1-py2.py3-none-any.whl", hash = "sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"}, + {file = "flake8-7.1.1.tar.gz", hash = "sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38"}, ] [package.dependencies] mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.10.0,<2.11.0" -pyflakes = ">=3.0.0,<3.1.0" +pycodestyle = ">=2.12.0,<2.13.0" +pyflakes = ">=3.2.0,<3.3.0" [[package]] name = "flake8-bugbear" @@ -1413,61 +1415,74 @@ files = [ {file = "flatbuffers-2.0.7.tar.gz", hash = "sha256:0ae7d69c5b82bf41962ca5fde9cc43033bc9501311d975fd5a25e8a7d29c1245"}, ] +[[package]] +name = "flatbuffers" +version = "24.3.25" +description = "The FlatBuffers serialization format for Python" +optional = false +python-versions = "*" +files = [ + {file = "flatbuffers-24.3.25-py2.py3-none-any.whl", hash = "sha256:8dbdec58f935f3765e4f7f3cf635ac3a77f83568138d6a2311f524ec96364812"}, + {file = "flatbuffers-24.3.25.tar.gz", hash = "sha256:de2ec5b203f21441716617f38443e0a8ebf3d25bf0d9c0bb0ce68fa00ad546a4"}, +] + [[package]] name = "fonttools" -version = "4.54.1" +version = "4.55.0" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.54.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ed7ee041ff7b34cc62f07545e55e1468808691dddfd315d51dd82a6b37ddef2"}, - {file = "fonttools-4.54.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41bb0b250c8132b2fcac148e2e9198e62ff06f3cc472065dff839327945c5882"}, - {file = "fonttools-4.54.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7965af9b67dd546e52afcf2e38641b5be956d68c425bef2158e95af11d229f10"}, - {file = "fonttools-4.54.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278913a168f90d53378c20c23b80f4e599dca62fbffae4cc620c8eed476b723e"}, - {file = "fonttools-4.54.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0e88e3018ac809b9662615072dcd6b84dca4c2d991c6d66e1970a112503bba7e"}, - {file = "fonttools-4.54.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4aa4817f0031206e637d1e685251ac61be64d1adef111060df84fdcbc6ab6c44"}, - {file = "fonttools-4.54.1-cp310-cp310-win32.whl", hash = "sha256:7e3b7d44e18c085fd8c16dcc6f1ad6c61b71ff463636fcb13df7b1b818bd0c02"}, - {file = "fonttools-4.54.1-cp310-cp310-win_amd64.whl", hash = "sha256:dd9cc95b8d6e27d01e1e1f1fae8559ef3c02c76317da650a19047f249acd519d"}, - {file = "fonttools-4.54.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5419771b64248484299fa77689d4f3aeed643ea6630b2ea750eeab219588ba20"}, - {file = "fonttools-4.54.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:301540e89cf4ce89d462eb23a89464fef50915255ece765d10eee8b2bf9d75b2"}, - {file = "fonttools-4.54.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ae5091547e74e7efecc3cbf8e75200bc92daaeb88e5433c5e3e95ea8ce5aa7"}, - {file = "fonttools-4.54.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82834962b3d7c5ca98cb56001c33cf20eb110ecf442725dc5fdf36d16ed1ab07"}, - {file = "fonttools-4.54.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d26732ae002cc3d2ecab04897bb02ae3f11f06dd7575d1df46acd2f7c012a8d8"}, - {file = "fonttools-4.54.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:58974b4987b2a71ee08ade1e7f47f410c367cdfc5a94fabd599c88165f56213a"}, - {file = "fonttools-4.54.1-cp311-cp311-win32.whl", hash = "sha256:ab774fa225238986218a463f3fe151e04d8c25d7de09df7f0f5fce27b1243dbc"}, - {file = "fonttools-4.54.1-cp311-cp311-win_amd64.whl", hash = "sha256:07e005dc454eee1cc60105d6a29593459a06321c21897f769a281ff2d08939f6"}, - {file = "fonttools-4.54.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:54471032f7cb5fca694b5f1a0aaeba4af6e10ae989df408e0216f7fd6cdc405d"}, - {file = "fonttools-4.54.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fa92cb248e573daab8d032919623cc309c005086d743afb014c836636166f08"}, - {file = "fonttools-4.54.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a911591200114969befa7f2cb74ac148bce5a91df5645443371aba6d222e263"}, - {file = "fonttools-4.54.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93d458c8a6a354dc8b48fc78d66d2a8a90b941f7fec30e94c7ad9982b1fa6bab"}, - {file = "fonttools-4.54.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5eb2474a7c5be8a5331146758debb2669bf5635c021aee00fd7c353558fc659d"}, - {file = "fonttools-4.54.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c9c563351ddc230725c4bdf7d9e1e92cbe6ae8553942bd1fb2b2ff0884e8b714"}, - {file = "fonttools-4.54.1-cp312-cp312-win32.whl", hash = "sha256:fdb062893fd6d47b527d39346e0c5578b7957dcea6d6a3b6794569370013d9ac"}, - {file = "fonttools-4.54.1-cp312-cp312-win_amd64.whl", hash = "sha256:e4564cf40cebcb53f3dc825e85910bf54835e8a8b6880d59e5159f0f325e637e"}, - {file = "fonttools-4.54.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6e37561751b017cf5c40fce0d90fd9e8274716de327ec4ffb0df957160be3bff"}, - {file = "fonttools-4.54.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:357cacb988a18aace66e5e55fe1247f2ee706e01debc4b1a20d77400354cddeb"}, - {file = "fonttools-4.54.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e953cc0bddc2beaf3a3c3b5dd9ab7554677da72dfaf46951e193c9653e515a"}, - {file = "fonttools-4.54.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:58d29b9a294573d8319f16f2f79e42428ba9b6480442fa1836e4eb89c4d9d61c"}, - {file = "fonttools-4.54.1-cp313-cp313-win32.whl", hash = "sha256:9ef1b167e22709b46bf8168368b7b5d3efeaaa746c6d39661c1b4405b6352e58"}, - {file = "fonttools-4.54.1-cp313-cp313-win_amd64.whl", hash = "sha256:262705b1663f18c04250bd1242b0515d3bbae177bee7752be67c979b7d47f43d"}, - {file = "fonttools-4.54.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ed2f80ca07025551636c555dec2b755dd005e2ea8fbeb99fc5cdff319b70b23b"}, - {file = "fonttools-4.54.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9dc080e5a1c3b2656caff2ac2633d009b3a9ff7b5e93d0452f40cd76d3da3b3c"}, - {file = "fonttools-4.54.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d152d1be65652fc65e695e5619e0aa0982295a95a9b29b52b85775243c06556"}, - {file = "fonttools-4.54.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8583e563df41fdecef31b793b4dd3af8a9caa03397be648945ad32717a92885b"}, - {file = "fonttools-4.54.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0d1d353ef198c422515a3e974a1e8d5b304cd54a4c2eebcae708e37cd9eeffb1"}, - {file = "fonttools-4.54.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:fda582236fee135d4daeca056c8c88ec5f6f6d88a004a79b84a02547c8f57386"}, - {file = "fonttools-4.54.1-cp38-cp38-win32.whl", hash = "sha256:e7d82b9e56716ed32574ee106cabca80992e6bbdcf25a88d97d21f73a0aae664"}, - {file = "fonttools-4.54.1-cp38-cp38-win_amd64.whl", hash = "sha256:ada215fd079e23e060157aab12eba0d66704316547f334eee9ff26f8c0d7b8ab"}, - {file = "fonttools-4.54.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f5b8a096e649768c2f4233f947cf9737f8dbf8728b90e2771e2497c6e3d21d13"}, - {file = "fonttools-4.54.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4e10d2e0a12e18f4e2dd031e1bf7c3d7017be5c8dbe524d07706179f355c5dac"}, - {file = "fonttools-4.54.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31c32d7d4b0958600eac75eaf524b7b7cb68d3a8c196635252b7a2c30d80e986"}, - {file = "fonttools-4.54.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c39287f5c8f4a0c5a55daf9eaf9ccd223ea59eed3f6d467133cc727d7b943a55"}, - {file = "fonttools-4.54.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a7a310c6e0471602fe3bf8efaf193d396ea561486aeaa7adc1f132e02d30c4b9"}, - {file = "fonttools-4.54.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d3b659d1029946f4ff9b6183984578041b520ce0f8fb7078bb37ec7445806b33"}, - {file = "fonttools-4.54.1-cp39-cp39-win32.whl", hash = "sha256:e96bc94c8cda58f577277d4a71f51c8e2129b8b36fd05adece6320dd3d57de8a"}, - {file = "fonttools-4.54.1-cp39-cp39-win_amd64.whl", hash = "sha256:e8a4b261c1ef91e7188a30571be6ad98d1c6d9fa2427244c545e2fa0a2494dd7"}, - {file = "fonttools-4.54.1-py3-none-any.whl", hash = "sha256:37cddd62d83dc4f72f7c3f3c2bcf2697e89a30efb152079896544a93907733bd"}, - {file = "fonttools-4.54.1.tar.gz", hash = "sha256:957f669d4922f92c171ba01bef7f29410668db09f6c02111e22b2bce446f3285"}, + {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:51c029d4c0608a21a3d3d169dfc3fb776fde38f00b35ca11fdab63ba10a16f61"}, + {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bca35b4e411362feab28e576ea10f11268b1aeed883b9f22ed05675b1e06ac69"}, + {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ce4ba6981e10f7e0ccff6348e9775ce25ffadbee70c9fd1a3737e3e9f5fa74f"}, + {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31d00f9852a6051dac23294a4cf2df80ced85d1d173a61ba90a3d8f5abc63c60"}, + {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e198e494ca6e11f254bac37a680473a311a88cd40e58f9cc4dc4911dfb686ec6"}, + {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7208856f61770895e79732e1dcbe49d77bd5783adf73ae35f87fcc267df9db81"}, + {file = "fonttools-4.55.0-cp310-cp310-win32.whl", hash = "sha256:e7e6a352ff9e46e8ef8a3b1fe2c4478f8a553e1b5a479f2e899f9dc5f2055880"}, + {file = "fonttools-4.55.0-cp310-cp310-win_amd64.whl", hash = "sha256:636caaeefe586d7c84b5ee0734c1a5ab2dae619dc21c5cf336f304ddb8f6001b"}, + {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51"}, + {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189"}, + {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967"}, + {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6"}, + {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3"}, + {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c"}, + {file = "fonttools-4.55.0-cp311-cp311-win32.whl", hash = "sha256:2b3ab90ec0f7b76c983950ac601b58949f47aca14c3f21eed858b38d7ec42b05"}, + {file = "fonttools-4.55.0-cp311-cp311-win_amd64.whl", hash = "sha256:aa046f6a63bb2ad521004b2769095d4c9480c02c1efa7d7796b37826508980b6"}, + {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:838d2d8870f84fc785528a692e724f2379d5abd3fc9dad4d32f91cf99b41e4a7"}, + {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f46b863d74bab7bb0d395f3b68d3f52a03444964e67ce5c43ce43a75efce9246"}, + {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33b52a9cfe4e658e21b1f669f7309b4067910321757fec53802ca8f6eae96a5a"}, + {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:732a9a63d6ea4a81b1b25a1f2e5e143761b40c2e1b79bb2b68e4893f45139a40"}, + {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7dd91ac3fcb4c491bb4763b820bcab6c41c784111c24172616f02f4bc227c17d"}, + {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1f0e115281a32ff532118aa851ef497a1b7cda617f4621c1cdf81ace3e36fb0c"}, + {file = "fonttools-4.55.0-cp312-cp312-win32.whl", hash = "sha256:6c99b5205844f48a05cb58d4a8110a44d3038c67ed1d79eb733c4953c628b0f6"}, + {file = "fonttools-4.55.0-cp312-cp312-win_amd64.whl", hash = "sha256:f8c8c76037d05652510ae45be1cd8fb5dd2fd9afec92a25374ac82255993d57c"}, + {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8118dc571921dc9e4b288d9cb423ceaf886d195a2e5329cc427df82bba872cd9"}, + {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01124f2ca6c29fad4132d930da69158d3f49b2350e4a779e1efbe0e82bd63f6c"}, + {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ffd58d2691f11f7c8438796e9f21c374828805d33e83ff4b76e4635633674c"}, + {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5435e5f1eb893c35c2bc2b9cd3c9596b0fcb0a59e7a14121562986dd4c47b8dd"}, + {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d12081729280c39d001edd0f4f06d696014c26e6e9a0a55488fabc37c28945e4"}, + {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7ad1f1b98ab6cb927ab924a38a8649f1ffd7525c75fe5b594f5dab17af70e18"}, + {file = "fonttools-4.55.0-cp313-cp313-win32.whl", hash = "sha256:abe62987c37630dca69a104266277216de1023cf570c1643bb3a19a9509e7a1b"}, + {file = "fonttools-4.55.0-cp313-cp313-win_amd64.whl", hash = "sha256:2863555ba90b573e4201feaf87a7e71ca3b97c05aa4d63548a4b69ea16c9e998"}, + {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:00f7cf55ad58a57ba421b6a40945b85ac7cc73094fb4949c41171d3619a3a47e"}, + {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f27526042efd6f67bfb0cc2f1610fa20364396f8b1fc5edb9f45bb815fb090b2"}, + {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e67974326af6a8879dc2a4ec63ab2910a1c1a9680ccd63e4a690950fceddbe"}, + {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61dc0a13451143c5e987dec5254d9d428f3c2789a549a7cf4f815b63b310c1cc"}, + {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:b2e526b325a903868c62155a6a7e24df53f6ce4c5c3160214d8fe1be2c41b478"}, + {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b7ef9068a1297714e6fefe5932c33b058aa1d45a2b8be32a4c6dee602ae22b5c"}, + {file = "fonttools-4.55.0-cp38-cp38-win32.whl", hash = "sha256:55718e8071be35dff098976bc249fc243b58efa263768c611be17fe55975d40a"}, + {file = "fonttools-4.55.0-cp38-cp38-win_amd64.whl", hash = "sha256:553bd4f8cc327f310c20158e345e8174c8eed49937fb047a8bda51daf2c353c8"}, + {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f901cef813f7c318b77d1c5c14cf7403bae5cb977cede023e22ba4316f0a8f6"}, + {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c9679fc0dd7e8a5351d321d8d29a498255e69387590a86b596a45659a39eb0d"}, + {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd2820a8b632f3307ebb0bf57948511c2208e34a4939cf978333bc0a3f11f838"}, + {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23bbbb49bec613a32ed1b43df0f2b172313cee690c2509f1af8fdedcf0a17438"}, + {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a656652e1f5d55b9728937a7e7d509b73d23109cddd4e89ee4f49bde03b736c6"}, + {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f50a1f455902208486fbca47ce33054208a4e437b38da49d6721ce2fef732fcf"}, + {file = "fonttools-4.55.0-cp39-cp39-win32.whl", hash = "sha256:161d1ac54c73d82a3cded44202d0218ab007fde8cf194a23d3dd83f7177a2f03"}, + {file = "fonttools-4.55.0-cp39-cp39-win_amd64.whl", hash = "sha256:ca7fd6987c68414fece41c96836e945e1f320cda56fc96ffdc16e54a44ec57a2"}, + {file = "fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f"}, + {file = "fonttools-4.55.0.tar.gz", hash = "sha256:7636acc6ab733572d5e7eec922b254ead611f1cdad17be3f0be7418e8bfaca71"}, ] [package.extras] @@ -1497,99 +1512,114 @@ files = [ [[package]] name = "frozenlist" -version = "1.4.1" +version = "1.5.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false python-versions = ">=3.8" files = [ - {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, - {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, - {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"}, - {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"}, - {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"}, - {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"}, - {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"}, - {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"}, - {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"}, - {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"}, - {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"}, - {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"}, - {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"}, - {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"}, - {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, ] [[package]] name = "fsspec" -version = "2024.9.0" +version = "2024.10.0" description = "File-system specification" optional = false python-versions = ">=3.8" files = [ - {file = "fsspec-2024.9.0-py3-none-any.whl", hash = "sha256:a0947d552d8a6efa72cc2c730b12c41d043509156966cca4fb157b0f2a0c574b"}, - {file = "fsspec-2024.9.0.tar.gz", hash = "sha256:4b0afb90c2f21832df142f292649035d80b421f60a9e1c027802e5a0da2b04e8"}, + {file = "fsspec-2024.10.0-py3-none-any.whl", hash = "sha256:03b9a6785766a4de40368b88906366755e2819e758b83705c88cd7cb5fe81871"}, + {file = "fsspec-2024.10.0.tar.gz", hash = "sha256:eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493"}, ] [package.extras] @@ -1686,13 +1716,13 @@ lxml = ["lxml"] [[package]] name = "httpcore" -version = "1.0.6" +version = "1.0.7" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpcore-1.0.6-py3-none-any.whl", hash = "sha256:27b59625743b85577a8c0e10e55b50b5368a4f2cfe8cc7bcfa9cf00829c2682f"}, - {file = "httpcore-1.0.6.tar.gz", hash = "sha256:73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f"}, + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, ] [package.dependencies] @@ -1707,13 +1737,13 @@ trio = ["trio (>=0.22.0,<1.0)"] [[package]] name = "httpx" -version = "0.27.2" +version = "0.28.0" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, - {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, + {file = "httpx-0.28.0-py3-none-any.whl", hash = "sha256:dc0b419a0cfeb6e8b34e85167c0da2671206f5095f1baa9663d23bcfd6b535fc"}, + {file = "httpx-0.28.0.tar.gz", hash = "sha256:0858d3bab51ba7e386637f22a61d8ccddaeec5f3fe4209da3a6168dbb91573e0"}, ] [package.dependencies] @@ -1721,7 +1751,6 @@ anyio = "*" certifi = "*" httpcore = "==1.*" idna = "*" -sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] @@ -1732,13 +1761,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "huggingface-hub" -version = "0.25.2" +version = "0.26.3" description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" optional = false python-versions = ">=3.8.0" files = [ - {file = "huggingface_hub-0.25.2-py3-none-any.whl", hash = "sha256:1897caf88ce7f97fe0110603d8f66ac264e3ba6accdf30cd66cc0fed5282ad25"}, - {file = "huggingface_hub-0.25.2.tar.gz", hash = "sha256:a1014ea111a5f40ccd23f7f7ba8ac46e20fa3b658ced1f86a00c75c06ec6423c"}, + {file = "huggingface_hub-0.26.3-py3-none-any.whl", hash = "sha256:e66aa99e569c2d5419240a9e553ad07245a5b1300350bfbc5a4945cf7432991b"}, + {file = "huggingface_hub-0.26.3.tar.gz", hash = "sha256:90e1fe62ffc26757a073aaad618422b899ccf9447c2bba8c902a90bef5b42e1d"}, ] [package.dependencies] @@ -1751,16 +1780,16 @@ tqdm = ">=4.42.1" typing-extensions = ">=3.7.4.3" [package.extras] -all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio", "jedi", "minijinja (>=1.0)", "mypy (==1.5.1)", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.5.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] +all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio (>=4.0.0)", "jedi", "libcst (==1.4.0)", "mypy (==1.5.1)", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.5.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] cli = ["InquirerPy (==0.3.4)"] -dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio", "jedi", "minijinja (>=1.0)", "mypy (==1.5.1)", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.5.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] +dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio (>=4.0.0)", "jedi", "libcst (==1.4.0)", "mypy (==1.5.1)", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.5.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] fastai = ["fastai (>=2.4)", "fastcore (>=1.3.27)", "toml"] hf-transfer = ["hf-transfer (>=0.1.4)"] -inference = ["aiohttp", "minijinja (>=1.0)"] -quality = ["mypy (==1.5.1)", "ruff (>=0.5.0)"] +inference = ["aiohttp"] +quality = ["libcst (==1.4.0)", "mypy (==1.5.1)", "ruff (>=0.5.0)"] tensorflow = ["graphviz", "pydot", "tensorflow"] tensorflow-testing = ["keras (<3.0)", "tensorflow"] -testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio", "jedi", "minijinja (>=1.0)", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"] +testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio (>=4.0.0)", "jedi", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"] torch = ["safetensors[torch]", "torch"] typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)"] @@ -2096,22 +2125,22 @@ type = ["pytest-mypy"] [[package]] name = "jedi" -version = "0.19.1" +version = "0.19.2" description = "An autocompletion tool for Python that can be used for text editors." optional = false python-versions = ">=3.6" files = [ - {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, - {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, ] [package.dependencies] -parso = ">=0.8.3,<0.9.0" +parso = ">=0.8.4,<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", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] [[package]] name = "jeepney" @@ -2158,30 +2187,35 @@ files = [ [[package]] name = "json5" -version = "0.9.25" +version = "0.10.0" description = "A Python implementation of the JSON5 data format." optional = false -python-versions = ">=3.8" +python-versions = ">=3.8.0" files = [ - {file = "json5-0.9.25-py3-none-any.whl", hash = "sha256:34ed7d834b1341a86987ed52f3f76cd8ee184394906b6e22a1e0deb9ab294e8f"}, - {file = "json5-0.9.25.tar.gz", hash = "sha256:548e41b9be043f9426776f05df8635a00fe06104ea51ed24b67f908856e151ae"}, + {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"}, + {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"}, ] +[package.extras] +dev = ["build (==1.2.2.post1)", "coverage (==7.5.3)", "mypy (==1.13.0)", "pip (==24.3.1)", "pylint (==3.2.3)", "ruff (==0.7.3)", "twine (==5.1.1)", "uv (==0.5.1)"] + [[package]] name = "jsonpickle" -version = "3.3.0" -description = "Python library for serializing arbitrary object graphs into JSON" +version = "4.0.0" +description = "jsonpickle encodes/decodes any Python object to/from JSON" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "jsonpickle-3.3.0-py3-none-any.whl", hash = "sha256:287c12143f35571ab00e224fa323aa4b090d5a7f086f5f494d7ee9c7eb1a380a"}, - {file = "jsonpickle-3.3.0.tar.gz", hash = "sha256:ab467e601e5b1a1cd76f1819d014795165da071744ef30bf3786e9bc549de25a"}, + {file = "jsonpickle-4.0.0-py3-none-any.whl", hash = "sha256:53730b9e094bc41f540bfdd25eaf6e6cf43811590e9e1477abcec44b866ddcd9"}, + {file = "jsonpickle-4.0.0.tar.gz", hash = "sha256:fc670852b204d77601b08f8f9333149ac37ab6d3fe4e6ed3b578427291f63736"}, ] [package.extras] -docs = ["furo", "rst.linker (>=1.9)", "sphinx"] -packaging = ["build", "twine"] -testing = ["bson", "ecdsa", "feedparser", "gmpy2", "numpy", "pandas", "pymongo", "pytest (>=3.5,!=3.7.3)", "pytest-benchmark", "pytest-benchmark[histogram]", "pytest-checkdocs (>=1.2.3)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-ruff (>=0.2.1)", "scikit-learn", "scipy", "scipy (>=1.9.3)", "simplejson", "sqlalchemy", "ujson"] +cov = ["pytest-cov"] +dev = ["black", "pyupgrade"] +docs = ["furo", "rst.linker (>=1.9)", "sphinx (>=3.5)"] +packaging = ["build", "setuptools (>=61.2)", "setuptools-scm[toml] (>=6.0)", "twine"] +testing = ["PyYAML", "atheris (>=2.3.0,<2.4.0)", "bson", "ecdsa", "feedparser", "gmpy2", "numpy", "pandas", "pymongo", "pytest (>=6.0,!=8.1.*)", "pytest-benchmark", "pytest-benchmark[histogram]", "pytest-checkdocs (>=1.2.3)", "pytest-enabler (>=1.0.1)", "pytest-ruff (>=0.2.1)", "scikit-learn", "scipy", "scipy (>=1.9.3)", "simplejson", "sqlalchemy", "ujson"] [[package]] name = "jsonpointer" @@ -2423,13 +2457,13 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.2.5" +version = "4.3.1" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.2.5-py3-none-any.whl", hash = "sha256:73b6e0775d41a9fee7ee756c80f58a6bed4040869ccc21411dc559818874d321"}, - {file = "jupyterlab-4.2.5.tar.gz", hash = "sha256:ae7f3a1b8cb88b4f55009ce79fa7c06f99d70cd63601ee4aa91815d054f46f75"}, + {file = "jupyterlab-4.3.1-py3-none-any.whl", hash = "sha256:2d9a1c305bc748e277819a17a5d5e22452e533e835f4237b2f30f3b0e491e01f"}, + {file = "jupyterlab-4.3.1.tar.gz", hash = "sha256:a4a338327556443521731d82f2a6ccf926df478914ca029616621704d47c3c65"}, ] [package.dependencies] @@ -2451,9 +2485,9 @@ tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.3.5)"] -docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] -docs-screenshots = ["altair (==5.3.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.2)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.1.post2)", "matplotlib (==3.8.3)", "nbconvert (>=7.0.0)", "pandas (==2.2.1)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.6.9)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<8.1.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.4.1)", "ipython (==8.16.1)", "ipywidgets (==8.1.5)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.2.post3)", "matplotlib (==3.9.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.3)", "scipy (==1.14.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"] upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] @@ -2527,13 +2561,13 @@ urllib3 = "*" [[package]] name = "keyring" -version = "25.4.1" +version = "25.5.0" description = "Store and access your passwords safely." optional = false python-versions = ">=3.8" files = [ - {file = "keyring-25.4.1-py3-none-any.whl", hash = "sha256:5426f817cf7f6f007ba5ec722b1bcad95a75b27d780343772ad76b17cb47b0bf"}, - {file = "keyring-25.4.1.tar.gz", hash = "sha256:b07ebc55f3e8ed86ac81dd31ef14e81ace9dd9c3d4b5d77a6e9a2016d0d71a1b"}, + {file = "keyring-25.5.0-py3-none-any.whl", hash = "sha256:e67f8ac32b04be4714b42fe84ce7dad9c40985b9ca827c592cc303e7c26d9741"}, + {file = "keyring-25.5.0.tar.gz", hash = "sha256:4c753b3ec91717fe713c4edd522d625889d8973a349b0e582622f49766de58e6"}, ] [package.dependencies] @@ -2678,52 +2712,6 @@ files = [ {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, ] -[[package]] -name = "lazy-object-proxy" -version = "1.10.0" -description = "A fast and thorough lazy object proxy." -optional = false -python-versions = ">=3.8" -files = [ - {file = "lazy-object-proxy-1.10.0.tar.gz", hash = "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-win32.whl", hash = "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9"}, - {file = "lazy_object_proxy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-win32.whl", hash = "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03"}, - {file = "lazy_object_proxy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-win32.whl", hash = "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074"}, - {file = "lazy_object_proxy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-win32.whl", hash = "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4"}, - {file = "lazy_object_proxy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-win32.whl", hash = "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70"}, - {file = "lazy_object_proxy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd"}, - {file = "lazy_object_proxy-1.10.0-pp310.pp311.pp312.pp38.pp39-none-any.whl", hash = "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d"}, -] - [[package]] name = "lazydocs" version = "0.4.8" @@ -2795,13 +2783,13 @@ tests = ["pytest"] [[package]] name = "mako" -version = "1.3.5" +version = "1.3.6" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." optional = false python-versions = ">=3.8" files = [ - {file = "Mako-1.3.5-py3-none-any.whl", hash = "sha256:260f1dbc3a519453a9c856dedfe4beb4e50bd5a26d96386cb6c80856556bb91a"}, - {file = "Mako-1.3.5.tar.gz", hash = "sha256:48dbc20568c1d276a2698b36d968fa76161bf127194907ea6fc594fa81f943bc"}, + {file = "Mako-1.3.6-py3-none-any.whl", hash = "sha256:a91198468092a2f1a0de86ca92690fb0cfc43ca90ee17e15d93662b4c04b241a"}, + {file = "mako-1.3.6.tar.gz", hash = "sha256:9ec3a1583713479fae654f83ed9fa8c9a4c16b7bb0daba0e6bbebff50c0d983d"}, ] [package.dependencies] @@ -3383,38 +3371,43 @@ typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} [[package]] name = "mypy" -version = "1.11.2" +version = "1.13.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d42a6dd818ffce7be66cce644f1dff482f1d97c53ca70908dff0b9ddc120b77a"}, - {file = "mypy-1.11.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:801780c56d1cdb896eacd5619a83e427ce436d86a3bdf9112527f24a66618fef"}, - {file = "mypy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41ea707d036a5307ac674ea172875f40c9d55c5394f888b168033177fce47383"}, - {file = "mypy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6e658bd2d20565ea86da7d91331b0eed6d2eee22dc031579e6297f3e12c758c8"}, - {file = "mypy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:478db5f5036817fe45adb7332d927daa62417159d49783041338921dcf646fc7"}, - {file = "mypy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75746e06d5fa1e91bfd5432448d00d34593b52e7e91a187d981d08d1f33d4385"}, - {file = "mypy-1.11.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a976775ab2256aadc6add633d44f100a2517d2388906ec4f13231fafbb0eccca"}, - {file = "mypy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd953f221ac1379050a8a646585a29574488974f79d8082cedef62744f0a0104"}, - {file = "mypy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:57555a7715c0a34421013144a33d280e73c08df70f3a18a552938587ce9274f4"}, - {file = "mypy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:36383a4fcbad95f2657642a07ba22ff797de26277158f1cc7bd234821468b1b6"}, - {file = "mypy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318"}, - {file = "mypy-1.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36"}, - {file = "mypy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987"}, - {file = "mypy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca"}, - {file = "mypy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:969ea3ef09617aff826885a22ece0ddef69d95852cdad2f60c8bb06bf1f71f70"}, - {file = "mypy-1.11.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37c7fa6121c1cdfcaac97ce3d3b5588e847aa79b580c1e922bb5d5d2902df19b"}, - {file = "mypy-1.11.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a8a53bc3ffbd161b5b2a4fff2f0f1e23a33b0168f1c0778ec70e1a3d66deb86"}, - {file = "mypy-1.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ff93107f01968ed834f4256bc1fc4475e2fecf6c661260066a985b52741ddce"}, - {file = "mypy-1.11.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:edb91dded4df17eae4537668b23f0ff6baf3707683734b6a818d5b9d0c0c31a1"}, - {file = "mypy-1.11.2-cp38-cp38-win_amd64.whl", hash = "sha256:ee23de8530d99b6db0573c4ef4bd8f39a2a6f9b60655bf7a1357e585a3486f2b"}, - {file = "mypy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:801ca29f43d5acce85f8e999b1e431fb479cb02d0e11deb7d2abb56bdaf24fd6"}, - {file = "mypy-1.11.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af8d155170fcf87a2afb55b35dc1a0ac21df4431e7d96717621962e4b9192e70"}, - {file = "mypy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7821776e5c4286b6a13138cc935e2e9b6fde05e081bdebf5cdb2bb97c9df81d"}, - {file = "mypy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539c570477a96a4e6fb718b8d5c3e0c0eba1f485df13f86d2970c91f0673148d"}, - {file = "mypy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:3f14cd3d386ac4d05c5a39a51b84387403dadbd936e17cb35882134d4f8f0d24"}, - {file = "mypy-1.11.2-py3-none-any.whl", hash = "sha256:b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12"}, - {file = "mypy-1.11.2.tar.gz", hash = "sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, + {file = "mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7"}, + {file = "mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f"}, + {file = "mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d"}, + {file = "mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b"}, + {file = "mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73"}, + {file = "mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e"}, + {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, + {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, + {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"}, + {file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"}, + {file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"}, + {file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:100fac22ce82925f676a734af0db922ecfea991e1d7ec0ceb1e115ebe501301a"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bcb0bb7f42a978bb323a7c88f1081d1b5dee77ca86f4100735a6f541299d8fb"}, + {file = "mypy-1.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bde31fc887c213e223bbfc34328070996061b0833b0a4cfec53745ed61f3519b"}, + {file = "mypy-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07de989f89786f62b937851295ed62e51774722e5444a27cecca993fc3f9cd74"}, + {file = "mypy-1.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:4bde84334fbe19bad704b3f5b78c4abd35ff1026f8ba72b29de70dda0916beb6"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0246bcb1b5de7f08f2826451abd947bf656945209b140d16ed317f65a17dc7dc"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f5b7deae912cf8b77e990b9280f170381fdfbddf61b4ef80927edd813163732"}, + {file = "mypy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7029881ec6ffb8bc233a4fa364736789582c738217b133f1b55967115288a2bc"}, + {file = "mypy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3e38b980e5681f28f033f3be86b099a247b13c491f14bb8b1e1e134d23bb599d"}, + {file = "mypy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:a6789be98a2017c912ae6ccb77ea553bbaf13d27605d2ca20a76dfbced631b24"}, + {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, + {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, ] [package.dependencies] @@ -3424,6 +3417,7 @@ typing-extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] install-types = ["pip"] mypyc = ["setuptools (>=50)"] reports = ["lxml"] @@ -3614,51 +3608,59 @@ test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] [[package]] name = "nh3" -version = "0.2.18" +version = "0.2.19" description = "Python bindings to the ammonia HTML sanitization library." optional = false python-versions = "*" files = [ - {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:14c5a72e9fe82aea5fe3072116ad4661af5cf8e8ff8fc5ad3450f123e4925e86"}, - {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:7b7c2a3c9eb1a827d42539aa64091640bd275b81e097cd1d8d82ef91ffa2e811"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c64511469005058cd17cc1537578eac40ae9f7200bedcfd1fc1a05f4f8c200"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0411beb0589eacb6734f28d5497ca2ed379eafab8ad8c84b31bb5c34072b7164"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5f36b271dae35c465ef5e9090e1fdaba4a60a56f0bb0ba03e0932a66f28b9189"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34c03fa78e328c691f982b7c03d4423bdfd7da69cd707fe572f544cf74ac23ad"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19aaba96e0f795bd0a6c56291495ff59364f4300d4a39b29a0abc9cb3774a84b"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6955369e4d9f48f41e3f238a9e60f9410645db7e07435e62c6a9ea6135a4907f"}, - {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f0eca9ca8628dbb4e916ae2491d72957fdd35f7a5d326b7032a345f111ac07fe"}, - {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:3a157ab149e591bb638a55c8c6bcb8cdb559c8b12c13a8affaba6cedfe51713a"}, - {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:c8b3a1cebcba9b3669ed1a84cc65bf005728d2f0bc1ed2a6594a992e817f3a50"}, - {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36c95d4b70530b320b365659bb5034341316e6a9b30f0b25fa9c9eff4c27a204"}, - {file = "nh3-0.2.18-cp37-abi3-win32.whl", hash = "sha256:a7f1b5b2c15866f2db413a3649a8fe4fd7b428ae58be2c0f6bca5eefd53ca2be"}, - {file = "nh3-0.2.18-cp37-abi3-win_amd64.whl", hash = "sha256:8ce0f819d2f1933953fca255db2471ad58184a60508f03e6285e5114b6254844"}, - {file = "nh3-0.2.18.tar.gz", hash = "sha256:94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4"}, + {file = "nh3-0.2.19-cp313-cp313t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:ec9c8bf86e397cb88c560361f60fdce478b5edb8b93f04ead419b72fbe937ea6"}, + {file = "nh3-0.2.19-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0adf00e2b2026fa10a42537b60d161e516f206781c7515e4e97e09f72a8c5d0"}, + {file = "nh3-0.2.19-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3805161c4e12088bd74752ba69630e915bc30fe666034f47217a2f16b16efc37"}, + {file = "nh3-0.2.19-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3dedd7858a21312f7675841529941035a2ac91057db13402c8fe907aa19205a"}, + {file = "nh3-0.2.19-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:0b6820fc64f2ff7ef3e7253a093c946a87865c877b3889149a6d21d322ed8dbd"}, + {file = "nh3-0.2.19-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:833b3b5f1783ce95834a13030300cea00cbdfd64ea29260d01af9c4821da0aa9"}, + {file = "nh3-0.2.19-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5d4f5e2189861b352b73acb803b5f4bb409c2f36275d22717e27d4e0c217ae55"}, + {file = "nh3-0.2.19-cp313-cp313t-win32.whl", hash = "sha256:2b926f179eb4bce72b651bfdf76f8aa05d167b2b72bc2f3657fd319f40232adc"}, + {file = "nh3-0.2.19-cp313-cp313t-win_amd64.whl", hash = "sha256:ac536a4b5c073fdadd8f5f4889adabe1cbdae55305366fb870723c96ca7f49c3"}, + {file = "nh3-0.2.19-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:c2e3f0d18cc101132fe10ab7ef5c4f41411297e639e23b64b5e888ccaad63f41"}, + {file = "nh3-0.2.19-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11270b16c1b012677e3e2dd166c1aa273388776bf99a3e3677179db5097ee16a"}, + {file = "nh3-0.2.19-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fc483dd8d20f8f8c010783a25a84db3bebeadced92d24d34b40d687f8043ac69"}, + {file = "nh3-0.2.19-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:d53a4577b6123ca1d7e8483fad3e13cb7eda28913d516bd0a648c1a473aa21a9"}, + {file = "nh3-0.2.19-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fdb20740d24ab9f2a1341458a00a11205294e97e905de060eeab1ceca020c09c"}, + {file = "nh3-0.2.19-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d8325d51e47cb5b11f649d55e626d56c76041ba508cd59e0cb1cf687cc7612f1"}, + {file = "nh3-0.2.19-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8eb7affc590e542fa7981ef508cd1644f62176bcd10d4429890fc629b47f0bc"}, + {file = "nh3-0.2.19-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2eb021804e9df1761abeb844bb86648d77aa118a663c82f50ea04110d87ed707"}, + {file = "nh3-0.2.19-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a7b928862daddb29805a1010a0282f77f4b8b238a37b5f76bc6c0d16d930fd22"}, + {file = "nh3-0.2.19-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ed06ed78f6b69d57463b46a04f68f270605301e69d80756a8adf7519002de57d"}, + {file = "nh3-0.2.19-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:df8eac98fec80bd6f5fd0ae27a65de14f1e1a65a76d8e2237eb695f9cd1121d9"}, + {file = "nh3-0.2.19-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:00810cd5275f5c3f44b9eb0e521d1a841ee2f8023622de39ffc7d88bd533d8e0"}, + {file = "nh3-0.2.19-cp38-abi3-win32.whl", hash = "sha256:7e98621856b0a911c21faa5eef8f8ea3e691526c2433f9afc2be713cb6fbdb48"}, + {file = "nh3-0.2.19-cp38-abi3-win_amd64.whl", hash = "sha256:75c7cafb840f24430b009f7368945cb5ca88b2b54bb384ebfba495f16bc9c121"}, + {file = "nh3-0.2.19.tar.gz", hash = "sha256:790056b54c068ff8dceb443eaefb696b84beff58cca6c07afd754d17692a4804"}, ] [[package]] name = "notebook" -version = "7.2.2" +version = "7.0.7" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.8" files = [ - {file = "notebook-7.2.2-py3-none-any.whl", hash = "sha256:c89264081f671bc02eec0ed470a627ed791b9156cad9285226b31611d3e9fe1c"}, - {file = "notebook-7.2.2.tar.gz", hash = "sha256:2ef07d4220421623ad3fe88118d687bc0450055570cdd160814a59cf3a1c516e"}, + {file = "notebook-7.0.7-py3-none-any.whl", hash = "sha256:289b606d7e173f75a18beb1406ef411b43f97f7a9c55ba03efa3622905a62346"}, + {file = "notebook-7.0.7.tar.gz", hash = "sha256:3bcff00c17b3ac142ef5f436d50637d936b274cfa0b41f6ac0175363de9b4e09"}, ] [package.dependencies] jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.2.0,<4.3" -jupyterlab-server = ">=2.27.1,<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.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] +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" @@ -3679,39 +3681,84 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numpy" -version = "1.24.2" -description = "Fundamental package for array computing in Python" +version = "1.23.5" +description = "NumPy is the fundamental package for array computing with Python." optional = false python-versions = ">=3.8" files = [ - {file = "numpy-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d"}, - {file = "numpy-1.24.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5"}, - {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253"}, - {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978"}, - {file = "numpy-1.24.2-cp310-cp310-win32.whl", hash = "sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9"}, - {file = "numpy-1.24.2-cp310-cp310-win_amd64.whl", hash = "sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0"}, - {file = "numpy-1.24.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a"}, - {file = "numpy-1.24.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0"}, - {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281"}, - {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910"}, - {file = "numpy-1.24.2-cp311-cp311-win32.whl", hash = "sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95"}, - {file = "numpy-1.24.2-cp311-cp311-win_amd64.whl", hash = "sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04"}, - {file = "numpy-1.24.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2"}, - {file = "numpy-1.24.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5"}, - {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a"}, - {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96"}, - {file = "numpy-1.24.2-cp38-cp38-win32.whl", hash = "sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d"}, - {file = "numpy-1.24.2-cp38-cp38-win_amd64.whl", hash = "sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756"}, - {file = "numpy-1.24.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a"}, - {file = "numpy-1.24.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f"}, - {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb"}, - {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780"}, - {file = "numpy-1.24.2-cp39-cp39-win32.whl", hash = "sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468"}, - {file = "numpy-1.24.2-cp39-cp39-win_amd64.whl", hash = "sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f"}, - {file = "numpy-1.24.2.tar.gz", hash = "sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22"}, + {file = "numpy-1.23.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9c88793f78fca17da0145455f0d7826bcb9f37da4764af27ac945488116efe63"}, + {file = "numpy-1.23.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e9f4c4e51567b616be64e05d517c79a8a22f3606499941d97bb76f2ca59f982d"}, + {file = "numpy-1.23.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7903ba8ab592b82014713c491f6c5d3a1cde5b4a3bf116404e08f5b52f6daf43"}, + {file = "numpy-1.23.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e05b1c973a9f858c74367553e236f287e749465f773328c8ef31abe18f691e1"}, + {file = "numpy-1.23.5-cp310-cp310-win32.whl", hash = "sha256:522e26bbf6377e4d76403826ed689c295b0b238f46c28a7251ab94716da0b280"}, + {file = "numpy-1.23.5-cp310-cp310-win_amd64.whl", hash = "sha256:dbee87b469018961d1ad79b1a5d50c0ae850000b639bcb1b694e9981083243b6"}, + {file = "numpy-1.23.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ce571367b6dfe60af04e04a1834ca2dc5f46004ac1cc756fb95319f64c095a96"}, + {file = "numpy-1.23.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56e454c7833e94ec9769fa0f86e6ff8e42ee38ce0ce1fa4cbb747ea7e06d56aa"}, + {file = "numpy-1.23.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5039f55555e1eab31124a5768898c9e22c25a65c1e0037f4d7c495a45778c9f2"}, + {file = "numpy-1.23.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58f545efd1108e647604a1b5aa809591ccd2540f468a880bedb97247e72db387"}, + {file = "numpy-1.23.5-cp311-cp311-win32.whl", hash = "sha256:b2a9ab7c279c91974f756c84c365a669a887efa287365a8e2c418f8b3ba73fb0"}, + {file = "numpy-1.23.5-cp311-cp311-win_amd64.whl", hash = "sha256:0cbe9848fad08baf71de1a39e12d1b6310f1d5b2d0ea4de051058e6e1076852d"}, + {file = "numpy-1.23.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f063b69b090c9d918f9df0a12116029e274daf0181df392839661c4c7ec9018a"}, + {file = "numpy-1.23.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0aaee12d8883552fadfc41e96b4c82ee7d794949e2a7c3b3a7201e968c7ecab9"}, + {file = "numpy-1.23.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92c8c1e89a1f5028a4c6d9e3ccbe311b6ba53694811269b992c0b224269e2398"}, + {file = "numpy-1.23.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d208a0f8729f3fb790ed18a003f3a57895b989b40ea4dce4717e9cf4af62c6bb"}, + {file = "numpy-1.23.5-cp38-cp38-win32.whl", hash = "sha256:06005a2ef6014e9956c09ba07654f9837d9e26696a0470e42beedadb78c11b07"}, + {file = "numpy-1.23.5-cp38-cp38-win_amd64.whl", hash = "sha256:ca51fcfcc5f9354c45f400059e88bc09215fb71a48d3768fb80e357f3b457e1e"}, + {file = "numpy-1.23.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8969bfd28e85c81f3f94eb4a66bc2cf1dbdc5c18efc320af34bffc54d6b1e38f"}, + {file = "numpy-1.23.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a7ac231a08bb37f852849bbb387a20a57574a97cfc7b6cabb488a4fc8be176de"}, + {file = "numpy-1.23.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf837dc63ba5c06dc8797c398db1e223a466c7ece27a1f7b5232ba3466aafe3d"}, + {file = "numpy-1.23.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33161613d2269025873025b33e879825ec7b1d831317e68f4f2f0f84ed14c719"}, + {file = "numpy-1.23.5-cp39-cp39-win32.whl", hash = "sha256:af1da88f6bc3d2338ebbf0e22fe487821ea4d8e89053e25fa59d1d79786e7481"}, + {file = "numpy-1.23.5-cp39-cp39-win_amd64.whl", hash = "sha256:09b7847f7e83ca37c6e627682f145856de331049013853f344f37b0c9690e3df"}, + {file = "numpy-1.23.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:abdde9f795cf292fb9651ed48185503a2ff29be87770c3b8e2a14b0cd7aa16f8"}, + {file = "numpy-1.23.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9a909a8bae284d46bbfdefbdd4a262ba19d3bc9921b1e76126b1d21c3c34135"}, + {file = "numpy-1.23.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:01dd17cbb340bf0fc23981e52e1d18a9d4050792e8fb8363cecbf066a84b827d"}, + {file = "numpy-1.23.5.tar.gz", hash = "sha256:1b1766d6f397c18153d40015ddfc79ddb715cabadc04d2d228d4e5a8bc4ded1a"}, +] + +[[package]] +name = "numpy" +version = "1.26.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, ] [[package]] @@ -3836,14 +3883,14 @@ files = [ [[package]] name = "nvidia-nvjitlink-cu12" -version = "12.6.77" +version = "12.6.85" description = "Nvidia JIT LTO Library" optional = false python-versions = ">=3" files = [ - {file = "nvidia_nvjitlink_cu12-12.6.77-py3-none-manylinux2014_aarch64.whl", hash = "sha256:3bf10d85bb1801e9c894c6e197e44dd137d2a0a9e43f8450e9ad13f2df0dd52d"}, - {file = "nvidia_nvjitlink_cu12-12.6.77-py3-none-manylinux2014_x86_64.whl", hash = "sha256:9ae346d16203ae4ea513be416495167a0101d33d2d14935aa9c1829a3fb45142"}, - {file = "nvidia_nvjitlink_cu12-12.6.77-py3-none-win_amd64.whl", hash = "sha256:410718cd44962bed862a31dd0318620f6f9a8b28a6291967bcfcb446a6516771"}, + {file = "nvidia_nvjitlink_cu12-12.6.85-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:eedc36df9e88b682efe4309aa16b5b4e78c2407eac59e8c10a6a47535164369a"}, + {file = "nvidia_nvjitlink_cu12-12.6.85-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cf4eaa7d4b6b543ffd69d6abfb11efdeb2db48270d94dfd3a452c24150829e41"}, + {file = "nvidia_nvjitlink_cu12-12.6.85-py3-none-win_amd64.whl", hash = "sha256:e61120e52ed675747825cdd16febc6a0730537451d867ee58bee3853b1b13d1c"}, ] [[package]] @@ -3859,37 +3906,37 @@ files = [ [[package]] name = "onnx" -version = "1.16.1" +version = "1.17.0" description = "Open Neural Network Exchange" optional = false python-versions = ">=3.8" files = [ - {file = "onnx-1.16.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:bb2d392e5b7060082c2fb38eb5c44f67eb34ff5f0681bd6f45beff9abc6f7094"}, - {file = "onnx-1.16.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15abf94a7868eed6db15a8b5024ba570c891cae77ca4d0e7258dabdad76980df"}, - {file = "onnx-1.16.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6251910e554f811fdd070164b0bc76d76b067b95576cb9dad4d52ae64fe014b5"}, - {file = "onnx-1.16.1-cp310-cp310-win32.whl", hash = "sha256:c11e3b15eee46cd20767e505cc3ba97457ef5ac93c3e459cdfb77943ff8fe9a7"}, - {file = "onnx-1.16.1-cp310-cp310-win_amd64.whl", hash = "sha256:b3d10405706807ec2ef493b2a78519fa0264cf190363e89478585aac1179b596"}, - {file = "onnx-1.16.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:006ba5059c85ce43e89a1486cc0276d0f1a8ec9c6efd1a9334fd3fa0f6e33b64"}, - {file = "onnx-1.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1521ea7cd3497ecaf57d3b5e72d637ca5ebca632122a0806a9df99bedbeecdf8"}, - {file = "onnx-1.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45cf20421aeac03872bea5fd6ebf92abe15c4d1461a2572eb839add5059e2a09"}, - {file = "onnx-1.16.1-cp311-cp311-win32.whl", hash = "sha256:f98e275b4f46a617a9c527e60c02531eae03cf67a04c26db8a1c20acee539533"}, - {file = "onnx-1.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:95aa20aa65a9035d7543e81713e8b0f611e213fc02171959ef4ee09311d1bf28"}, - {file = "onnx-1.16.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:32e11d39bee04f927fab09f74c46cf76584094462311bab1aca9ccdae6ed3366"}, - {file = "onnx-1.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8884bf53b552873c0c9b072cb8625e7d4e8f3cc0529191632d24e3de58a3b93a"}, - {file = "onnx-1.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:595b2830093f81361961295f7b0ebb6000423bcd04123d516d081c306002e387"}, - {file = "onnx-1.16.1-cp312-cp312-win32.whl", hash = "sha256:2fde4dd5bc278b3fc8148f460bce8807b2874c66f48529df9444cdbc9ecf456b"}, - {file = "onnx-1.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:e69ad8c110d8c37d759cad019d498fdf3fd24e0bfaeb960e52fed0469a5d2974"}, - {file = "onnx-1.16.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:0fc189195a40b5862fb77d97410c89823197fe19c1088ce150444eec72f200c1"}, - {file = "onnx-1.16.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:496ba17b16a74711081772e1b03f3207959972e351298e51abdc600051027a22"}, - {file = "onnx-1.16.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3faf239b48418b3ea6fe73bd4d86807b903d0b2ebd20b8b8c84f83741b0f18"}, - {file = "onnx-1.16.1-cp38-cp38-win32.whl", hash = "sha256:18b22143836838591f6551b089196e69f60c47fabce52b4b72b4cb37522645aa"}, - {file = "onnx-1.16.1-cp38-cp38-win_amd64.whl", hash = "sha256:8c2b70d602acfb90056fbdc60ef26f4658f964591212a4e9dbbda922ff43061b"}, - {file = "onnx-1.16.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:2bed6fe05905b073206cabbb4463c58050cf8d544192303c09927b229f93ac14"}, - {file = "onnx-1.16.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5798414332534a41404a7ff83677d49ced01d70160e1541484cce647f2295051"}, - {file = "onnx-1.16.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa7518d6d27f357261a4014079dec364cad6fef827d0b3fe1d3ff59939a68394"}, - {file = "onnx-1.16.1-cp39-cp39-win32.whl", hash = "sha256:67f372db4fe8fe61e00b762af5b0833aa72b5baa37e7e2f47d8668964ebff411"}, - {file = "onnx-1.16.1-cp39-cp39-win_amd64.whl", hash = "sha256:1c059fea6229c44d2d39c8f6e2f2f0d676d587c97f4c854c86f3e7bc97e0b31c"}, - {file = "onnx-1.16.1.tar.gz", hash = "sha256:8299193f0f2a3849bfc069641aa8e4f93696602da8d165632af8ee48ec7556b6"}, + {file = "onnx-1.17.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:38b5df0eb22012198cdcee527cc5f917f09cce1f88a69248aaca22bd78a7f023"}, + {file = "onnx-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d545335cb49d4d8c47cc803d3a805deb7ad5d9094dc67657d66e568610a36d7d"}, + {file = "onnx-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3193a3672fc60f1a18c0f4c93ac81b761bc72fd8a6c2035fa79ff5969f07713e"}, + {file = "onnx-1.17.0-cp310-cp310-win32.whl", hash = "sha256:0141c2ce806c474b667b7e4499164227ef594584da432fd5613ec17c1855e311"}, + {file = "onnx-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:dfd777d95c158437fda6b34758f0877d15b89cbe9ff45affbedc519b35345cf9"}, + {file = "onnx-1.17.0-cp311-cp311-macosx_12_0_universal2.whl", hash = "sha256:d6fc3a03fc0129b8b6ac03f03bc894431ffd77c7d79ec023d0afd667b4d35869"}, + {file = "onnx-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f01a4b63d4e1d8ec3e2f069e7b798b2955810aa434f7361f01bc8ca08d69cce4"}, + {file = "onnx-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a183c6178be001bf398260e5ac2c927dc43e7746e8638d6c05c20e321f8c949"}, + {file = "onnx-1.17.0-cp311-cp311-win32.whl", hash = "sha256:081ec43a8b950171767d99075b6b92553901fa429d4bc5eb3ad66b36ef5dbe3a"}, + {file = "onnx-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:95c03e38671785036bb704c30cd2e150825f6ab4763df3a4f1d249da48525957"}, + {file = "onnx-1.17.0-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:0e906e6a83437de05f8139ea7eaf366bf287f44ae5cc44b2850a30e296421f2f"}, + {file = "onnx-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d955ba2939878a520a97614bcf2e79c1df71b29203e8ced478fa78c9a9c63c2"}, + {file = "onnx-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f3fb5cc4e2898ac5312a7dc03a65133dd2abf9a5e520e69afb880a7251ec97a"}, + {file = "onnx-1.17.0-cp312-cp312-win32.whl", hash = "sha256:317870fca3349d19325a4b7d1b5628f6de3811e9710b1e3665c68b073d0e68d7"}, + {file = "onnx-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:659b8232d627a5460d74fd3c96947ae83db6d03f035ac633e20cd69cfa029227"}, + {file = "onnx-1.17.0-cp38-cp38-macosx_12_0_universal2.whl", hash = "sha256:23b8d56a9df492cdba0eb07b60beea027d32ff5e4e5fe271804eda635bed384f"}, + {file = "onnx-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecf2b617fd9a39b831abea2df795e17bac705992a35a98e1f0363f005c4a5247"}, + {file = "onnx-1.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea5023a8dcdadbb23fd0ed0179ce64c1f6b05f5b5c34f2909b4e927589ebd0e4"}, + {file = "onnx-1.17.0-cp38-cp38-win32.whl", hash = "sha256:f0e437f8f2f0c36f629e9743d28cf266312baa90be6a899f405f78f2d4cb2e1d"}, + {file = "onnx-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:e4673276b558b5b572b960b7f9ef9214dce9305673683eb289bb97a7df379a4b"}, + {file = "onnx-1.17.0-cp39-cp39-macosx_12_0_universal2.whl", hash = "sha256:67e1c59034d89fff43b5301b6178222e54156eadd6ab4cd78ddc34b2f6274a66"}, + {file = "onnx-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e19fd064b297f7773b4c1150f9ce6213e6d7d041d7a9201c0d348041009cdcd"}, + {file = "onnx-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8167295f576055158a966161f8ef327cb491c06ede96cc23392be6022071b6ed"}, + {file = "onnx-1.17.0-cp39-cp39-win32.whl", hash = "sha256:76884fe3e0258c911c749d7d09667fb173365fd27ee66fcedaf9fa039210fd13"}, + {file = "onnx-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:5ca7a0894a86d028d509cdcf99ed1864e19bfe5727b44322c11691d834a1c546"}, + {file = "onnx-1.17.0.tar.gz", hash = "sha256:48ca1a91ff73c1d5e3ea2eef20ae5d0e709bb8a2355ed798ffc2169753013fd3"}, ] [package.dependencies] @@ -4021,13 +4068,13 @@ files = [ [[package]] name = "packageurl-python" -version = "0.15.6" +version = "0.16.0" description = "A purl aka. Package URL parser and builder" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "packageurl_python-0.15.6-py3-none-any.whl", hash = "sha256:a40210652c89022772a6c8340d6066f7d5dc67132141e5284a4db7a27d0a8ab0"}, - {file = "packageurl_python-0.15.6.tar.gz", hash = "sha256:cbc89afd15d5f4d05db4f1b61297e5b97a43f61f28799f6d282aff467ed2ee96"}, + {file = "packageurl_python-0.16.0-py3-none-any.whl", hash = "sha256:5c3872638b177b0f1cf01c3673017b7b27ebee485693ae12a8bed70fa7fa7c35"}, + {file = "packageurl_python-0.16.0.tar.gz", hash = "sha256:69e3bf8a3932fe9c2400f56aaeb9f86911ecee2f9398dbe1b58ec34340be365d"}, ] [package.extras] @@ -4038,13 +4085,13 @@ test = ["pytest"] [[package]] name = "packaging" -version = "24.1" +version = "24.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] [[package]] @@ -4319,13 +4366,13 @@ xmp = ["defusedxml"] [[package]] name = "pip" -version = "24.2" +version = "24.3.1" description = "The PyPA recommended tool for installing Python packages." optional = false python-versions = ">=3.8" files = [ - {file = "pip-24.2-py3-none-any.whl", hash = "sha256:2cd581cf58ab7fcfca4ce8efa6dcacd0de5bf8d0a3eb9ec927e07405f4d9e2a2"}, - {file = "pip-24.2.tar.gz", hash = "sha256:5b5e490b5e9cb275c879595064adce9ebd31b854e3e803740b72f9ccf34a45b8"}, + {file = "pip-24.3.1-py3-none-any.whl", hash = "sha256:3790624780082365f47549d032f3770eeb2b1e8bd1f7b2e02dace1afa361b4ed"}, + {file = "pip-24.3.1.tar.gz", hash = "sha256:ebcb60557f2aefabc2e0f918751cd24ea0d56d8ec5445fe1807f1d2109660b99"}, ] [[package]] @@ -4391,13 +4438,13 @@ testing = ["aboutcode-toolkit (>=6.0.0)", "black", "pytest (>=6,!=7.0.0)", "pyte [[package]] name = "pkginfo" -version = "1.11.1" +version = "1.11.2" description = "Query metadata from sdists / bdists / installed packages." optional = false python-versions = ">=3.8" files = [ - {file = "pkginfo-1.11.1-py3-none-any.whl", hash = "sha256:bfa76a714fdfc18a045fcd684dbfc3816b603d9d075febef17cb6582bea29573"}, - {file = "pkginfo-1.11.1.tar.gz", hash = "sha256:2e0dca1cf4c8e39644eed32408ea9966ee15e0d324c62ba899a393b3c6b467aa"}, + {file = "pkginfo-1.11.2-py3-none-any.whl", hash = "sha256:9ec518eefccd159de7ed45386a6bb4c6ca5fa2cb3bd9b71154fae44f6f1b36a3"}, + {file = "pkginfo-1.11.2.tar.gz", hash = "sha256:c6bc916b8298d159e31f2c216e35ee5b86da7da18874f879798d0a1983537c86"}, ] [package.extras] @@ -4582,22 +4629,53 @@ files = [ [[package]] name = "protobuf" -version = "4.25.5" +version = "3.20.3" +description = "Protocol Buffers" +optional = false +python-versions = ">=3.7" +files = [ + {file = "protobuf-3.20.3-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99"}, + {file = "protobuf-3.20.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e"}, + {file = "protobuf-3.20.3-cp310-cp310-win32.whl", hash = "sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c"}, + {file = "protobuf-3.20.3-cp310-cp310-win_amd64.whl", hash = "sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7"}, + {file = "protobuf-3.20.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469"}, + {file = "protobuf-3.20.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4"}, + {file = "protobuf-3.20.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4"}, + {file = "protobuf-3.20.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454"}, + {file = "protobuf-3.20.3-cp37-cp37m-win32.whl", hash = "sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905"}, + {file = "protobuf-3.20.3-cp37-cp37m-win_amd64.whl", hash = "sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c"}, + {file = "protobuf-3.20.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7"}, + {file = "protobuf-3.20.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee"}, + {file = "protobuf-3.20.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050"}, + {file = "protobuf-3.20.3-cp38-cp38-win32.whl", hash = "sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86"}, + {file = "protobuf-3.20.3-cp38-cp38-win_amd64.whl", hash = "sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9"}, + {file = "protobuf-3.20.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b"}, + {file = "protobuf-3.20.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b"}, + {file = "protobuf-3.20.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402"}, + {file = "protobuf-3.20.3-cp39-cp39-win32.whl", hash = "sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480"}, + {file = "protobuf-3.20.3-cp39-cp39-win_amd64.whl", hash = "sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7"}, + {file = "protobuf-3.20.3-py2.py3-none-any.whl", hash = "sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db"}, + {file = "protobuf-3.20.3.tar.gz", hash = "sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2"}, +] + +[[package]] +name = "protobuf" +version = "5.29.0" description = "" optional = false python-versions = ">=3.8" files = [ - {file = "protobuf-4.25.5-cp310-abi3-win32.whl", hash = "sha256:5e61fd921603f58d2f5acb2806a929b4675f8874ff5f330b7d6f7e2e784bbcd8"}, - {file = "protobuf-4.25.5-cp310-abi3-win_amd64.whl", hash = "sha256:4be0571adcbe712b282a330c6e89eae24281344429ae95c6d85e79e84780f5ea"}, - {file = "protobuf-4.25.5-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:b2fde3d805354df675ea4c7c6338c1aecd254dfc9925e88c6d31a2bcb97eb173"}, - {file = "protobuf-4.25.5-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:919ad92d9b0310070f8356c24b855c98df2b8bd207ebc1c0c6fcc9ab1e007f3d"}, - {file = "protobuf-4.25.5-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:fe14e16c22be926d3abfcb500e60cab068baf10b542b8c858fa27e098123e331"}, - {file = "protobuf-4.25.5-cp38-cp38-win32.whl", hash = "sha256:98d8d8aa50de6a2747efd9cceba361c9034050ecce3e09136f90de37ddba66e1"}, - {file = "protobuf-4.25.5-cp38-cp38-win_amd64.whl", hash = "sha256:b0234dd5a03049e4ddd94b93400b67803c823cfc405689688f59b34e0742381a"}, - {file = "protobuf-4.25.5-cp39-cp39-win32.whl", hash = "sha256:abe32aad8561aa7cc94fc7ba4fdef646e576983edb94a73381b03c53728a626f"}, - {file = "protobuf-4.25.5-cp39-cp39-win_amd64.whl", hash = "sha256:7a183f592dc80aa7c8da7ad9e55091c4ffc9497b3054452d629bb85fa27c2a45"}, - {file = "protobuf-4.25.5-py3-none-any.whl", hash = "sha256:0aebecb809cae990f8129ada5ca273d9d670b76d9bfc9b1809f0a9c02b7dbf41"}, - {file = "protobuf-4.25.5.tar.gz", hash = "sha256:7f8249476b4a9473645db7f8ab42b02fe1488cbe5fb72fddd445e0665afd8584"}, + {file = "protobuf-5.29.0-cp310-abi3-win32.whl", hash = "sha256:ea7fb379b257911c8c020688d455e8f74efd2f734b72dc1ea4b4d7e9fd1326f2"}, + {file = "protobuf-5.29.0-cp310-abi3-win_amd64.whl", hash = "sha256:34a90cf30c908f47f40ebea7811f743d360e202b6f10d40c02529ebd84afc069"}, + {file = "protobuf-5.29.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:c931c61d0cc143a2e756b1e7f8197a508de5365efd40f83c907a9febf36e6b43"}, + {file = "protobuf-5.29.0-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:85286a47caf63b34fa92fdc1fd98b649a8895db595cfa746c5286eeae890a0b1"}, + {file = "protobuf-5.29.0-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:0d10091d6d03537c3f902279fcf11e95372bdd36a79556311da0487455791b20"}, + {file = "protobuf-5.29.0-cp38-cp38-win32.whl", hash = "sha256:0cd67a1e5c2d88930aa767f702773b2d054e29957432d7c6a18f8be02a07719a"}, + {file = "protobuf-5.29.0-cp38-cp38-win_amd64.whl", hash = "sha256:e467f81fdd12ded9655cea3e9b83dc319d93b394ce810b556fb0f421d8613e86"}, + {file = "protobuf-5.29.0-cp39-cp39-win32.whl", hash = "sha256:17d128eebbd5d8aee80300aed7a43a48a25170af3337f6f1333d1fac2c6839ac"}, + {file = "protobuf-5.29.0-cp39-cp39-win_amd64.whl", hash = "sha256:6c3009e22717c6cc9e6594bb11ef9f15f669b19957ad4087214d69e08a213368"}, + {file = "protobuf-5.29.0-py3-none-any.whl", hash = "sha256:88c4af76a73183e21061881360240c0cdd3c39d263b4e8fb570aaf83348d608f"}, + {file = "protobuf-5.29.0.tar.gz", hash = "sha256:445a0c02483869ed8513a585d80020d012c6dc60075f96fa0563a724987b1001"}, ] [[package]] @@ -4697,13 +4775,13 @@ defusedxml = ">=0.7.1,<0.8.0" [[package]] name = "pycodestyle" -version = "2.10.0" +version = "2.12.1" description = "Python style guide checker" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pycodestyle-2.10.0-py2.py3-none-any.whl", hash = "sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610"}, - {file = "pycodestyle-2.10.0.tar.gz", hash = "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053"}, + {file = "pycodestyle-2.12.1-py2.py3-none-any.whl", hash = "sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3"}, + {file = "pycodestyle-2.12.1.tar.gz", hash = "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"}, ] [[package]] @@ -4736,13 +4814,13 @@ toml = ["tomli (>=1.2.3)"] [[package]] name = "pyflakes" -version = "3.0.1" +version = "3.2.0" description = "passive checker of Python programs" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pyflakes-3.0.1-py2.py3-none-any.whl", hash = "sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf"}, - {file = "pyflakes-3.0.1.tar.gz", hash = "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd"}, + {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, + {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, ] [[package]] @@ -4775,23 +4853,24 @@ pygments = ">=1.5" [[package]] name = "pylint" -version = "2.17.7" +version = "3.2.7" description = "python code static checker" optional = false -python-versions = ">=3.7.2" +python-versions = ">=3.8.0" files = [ - {file = "pylint-2.17.7-py3-none-any.whl", hash = "sha256:27a8d4c7ddc8c2f8c18aa0050148f89ffc09838142193fdbe98f172781a3ff87"}, - {file = "pylint-2.17.7.tar.gz", hash = "sha256:f4fcac7ae74cfe36bc8451e931d8438e4a476c20314b1101c458ad0f05191fad"}, + {file = "pylint-3.2.7-py3-none-any.whl", hash = "sha256:02f4aedeac91be69fb3b4bea997ce580a4ac68ce58b89eaefeaf06749df73f4b"}, + {file = "pylint-3.2.7.tar.gz", hash = "sha256:1b7a721b575eaeaa7d39db076b6e7743c993ea44f57979127c517c6c572c803e"}, ] [package.dependencies] -astroid = ">=2.15.8,<=2.17.0-dev0" +astroid = ">=3.2.4,<=3.3.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, - {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, + {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, ] -isort = ">=4.2.5,<6" +isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} @@ -5085,29 +5164,29 @@ files = [ [[package]] name = "pywin32" -version = "307" +version = "308" description = "Python for Window Extensions" optional = false python-versions = "*" files = [ - {file = "pywin32-307-cp310-cp310-win32.whl", hash = "sha256:f8f25d893c1e1ce2d685ef6d0a481e87c6f510d0f3f117932781f412e0eba31b"}, - {file = "pywin32-307-cp310-cp310-win_amd64.whl", hash = "sha256:36e650c5e5e6b29b5d317385b02d20803ddbac5d1031e1f88d20d76676dd103d"}, - {file = "pywin32-307-cp310-cp310-win_arm64.whl", hash = "sha256:0c12d61e0274e0c62acee79e3e503c312426ddd0e8d4899c626cddc1cafe0ff4"}, - {file = "pywin32-307-cp311-cp311-win32.whl", hash = "sha256:fec5d27cc893178fab299de911b8e4d12c5954e1baf83e8a664311e56a272b75"}, - {file = "pywin32-307-cp311-cp311-win_amd64.whl", hash = "sha256:987a86971753ed7fdd52a7fb5747aba955b2c7fbbc3d8b76ec850358c1cc28c3"}, - {file = "pywin32-307-cp311-cp311-win_arm64.whl", hash = "sha256:fd436897c186a2e693cd0437386ed79f989f4d13d6f353f8787ecbb0ae719398"}, - {file = "pywin32-307-cp312-cp312-win32.whl", hash = "sha256:07649ec6b01712f36debf39fc94f3d696a46579e852f60157a729ac039df0815"}, - {file = "pywin32-307-cp312-cp312-win_amd64.whl", hash = "sha256:00d047992bb5dcf79f8b9b7c81f72e0130f9fe4b22df613f755ab1cc021d8347"}, - {file = "pywin32-307-cp312-cp312-win_arm64.whl", hash = "sha256:b53658acbfc6a8241d72cc09e9d1d666be4e6c99376bc59e26cdb6223c4554d2"}, - {file = "pywin32-307-cp313-cp313-win32.whl", hash = "sha256:ea4d56e48dc1ab2aa0a5e3c0741ad6e926529510516db7a3b6981a1ae74405e5"}, - {file = "pywin32-307-cp313-cp313-win_amd64.whl", hash = "sha256:576d09813eaf4c8168d0bfd66fb7cb3b15a61041cf41598c2db4a4583bf832d2"}, - {file = "pywin32-307-cp313-cp313-win_arm64.whl", hash = "sha256:b30c9bdbffda6a260beb2919f918daced23d32c79109412c2085cbc513338a0a"}, - {file = "pywin32-307-cp37-cp37m-win32.whl", hash = "sha256:5101472f5180c647d4525a0ed289ec723a26231550dbfd369ec19d5faf60e511"}, - {file = "pywin32-307-cp37-cp37m-win_amd64.whl", hash = "sha256:05de55a7c110478dc4b202230e98af5e0720855360d2b31a44bb4e296d795fba"}, - {file = "pywin32-307-cp38-cp38-win32.whl", hash = "sha256:13d059fb7f10792542082f5731d5d3d9645320fc38814759313e5ee97c3fac01"}, - {file = "pywin32-307-cp38-cp38-win_amd64.whl", hash = "sha256:7e0b2f93769d450a98ac7a31a087e07b126b6d571e8b4386a5762eb85325270b"}, - {file = "pywin32-307-cp39-cp39-win32.whl", hash = "sha256:55ee87f2f8c294e72ad9d4261ca423022310a6e79fb314a8ca76ab3f493854c6"}, - {file = "pywin32-307-cp39-cp39-win_amd64.whl", hash = "sha256:e9d5202922e74985b037c9ef46778335c102b74b95cec70f629453dbe7235d87"}, + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, ] [[package]] @@ -5123,17 +5202,17 @@ files = [ [[package]] name = "pywinpty" -version = "2.0.13" +version = "2.0.14" description = "Pseudo terminal support for Windows from Python." optional = false python-versions = ">=3.8" files = [ - {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, - {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, - {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, - {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, - {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, - {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, + {file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"}, + {file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"}, + {file = "pywinpty-2.0.14-cp312-none-win_amd64.whl", hash = "sha256:55dad362ef3e9408ade68fd173e4f9032b3ce08f68cfe7eacb2c263ea1179737"}, + {file = "pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819"}, + {file = "pywinpty-2.0.14-cp39-none-win_amd64.whl", hash = "sha256:5725fd56f73c0531ec218663bd8c8ff5acc43c78962fab28564871b5fce053fd"}, + {file = "pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e"}, ] [[package]] @@ -5355,105 +5434,105 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2024.9.11" +version = "2024.11.6" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" files = [ - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a"}, - {file = "regex-2024.9.11-cp310-cp310-win32.whl", hash = "sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0"}, - {file = "regex-2024.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1"}, - {file = "regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9"}, - {file = "regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a"}, - {file = "regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776"}, - {file = "regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8"}, - {file = "regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8"}, - {file = "regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd"}, - {file = "regex-2024.9.11-cp38-cp38-win32.whl", hash = "sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771"}, - {file = "regex-2024.9.11-cp38-cp38-win_amd64.whl", hash = "sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35"}, - {file = "regex-2024.9.11-cp39-cp39-win32.whl", hash = "sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142"}, - {file = "regex-2024.9.11-cp39-cp39-win_amd64.whl", hash = "sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919"}, - {file = "regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, ] [[package]] @@ -5532,13 +5611,13 @@ files = [ [[package]] name = "rich" -version = "13.9.2" +version = "13.9.4" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.8.0" files = [ - {file = "rich-13.9.2-py3-none-any.whl", hash = "sha256:8c82a3d3f8dcfe9e734771313e606b39d8247bb6b826e196f4914b333b743cf1"}, - {file = "rich-13.9.2.tar.gz", hash = "sha256:51a2c62057461aaf7152b4d611168f93a9fc73068f8ded2790f29fe2b5366d0c"}, + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, ] [package.dependencies] @@ -5551,114 +5630,114 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rpds-py" -version = "0.20.0" +version = "0.20.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2"}, - {file = "rpds_py-0.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140"}, - {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f"}, - {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce"}, - {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94"}, - {file = "rpds_py-0.20.0-cp310-none-win32.whl", hash = "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee"}, - {file = "rpds_py-0.20.0-cp310-none-win_amd64.whl", hash = "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399"}, - {file = "rpds_py-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489"}, - {file = "rpds_py-0.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3"}, - {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272"}, - {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad"}, - {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58"}, - {file = "rpds_py-0.20.0-cp311-none-win32.whl", hash = "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0"}, - {file = "rpds_py-0.20.0-cp311-none-win_amd64.whl", hash = "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c"}, - {file = "rpds_py-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6"}, - {file = "rpds_py-0.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef"}, - {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821"}, - {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940"}, - {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174"}, - {file = "rpds_py-0.20.0-cp312-none-win32.whl", hash = "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139"}, - {file = "rpds_py-0.20.0-cp312-none-win_amd64.whl", hash = "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585"}, - {file = "rpds_py-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29"}, - {file = "rpds_py-0.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f"}, - {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c"}, - {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2"}, - {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57"}, - {file = "rpds_py-0.20.0-cp313-none-win32.whl", hash = "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a"}, - {file = "rpds_py-0.20.0-cp313-none-win_amd64.whl", hash = "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2"}, - {file = "rpds_py-0.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24"}, - {file = "rpds_py-0.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8"}, - {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e"}, - {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253"}, - {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a"}, - {file = "rpds_py-0.20.0-cp38-none-win32.whl", hash = "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5"}, - {file = "rpds_py-0.20.0-cp38-none-win_amd64.whl", hash = "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232"}, - {file = "rpds_py-0.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22"}, - {file = "rpds_py-0.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580"}, - {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b"}, - {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420"}, - {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b"}, - {file = "rpds_py-0.20.0-cp39-none-win32.whl", hash = "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7"}, - {file = "rpds_py-0.20.0-cp39-none-win_amd64.whl", hash = "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8"}, - {file = "rpds_py-0.20.0.tar.gz", hash = "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121"}, + {file = "rpds_py-0.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a649dfd735fff086e8a9d0503a9f0c7d01b7912a333c7ae77e1515c08c146dad"}, + {file = "rpds_py-0.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f16bc1334853e91ddaaa1217045dd7be166170beec337576818461268a3de67f"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14511a539afee6f9ab492b543060c7491c99924314977a55c98bfa2ee29ce78c"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3ccb8ac2d3c71cda472b75af42818981bdacf48d2e21c36331b50b4f16930163"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c142b88039b92e7e0cb2552e8967077e3179b22359e945574f5e2764c3953dcf"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f19169781dddae7478a32301b499b2858bc52fc45a112955e798ee307e294977"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13c56de6518e14b9bf6edde23c4c39dac5b48dcf04160ea7bce8fca8397cdf86"}, + {file = "rpds_py-0.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:925d176a549f4832c6f69fa6026071294ab5910e82a0fe6c6228fce17b0706bd"}, + {file = "rpds_py-0.20.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:78f0b6877bfce7a3d1ff150391354a410c55d3cdce386f862926a4958ad5ab7e"}, + {file = "rpds_py-0.20.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3dd645e2b0dcb0fd05bf58e2e54c13875847687d0b71941ad2e757e5d89d4356"}, + {file = "rpds_py-0.20.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4f676e21db2f8c72ff0936f895271e7a700aa1f8d31b40e4e43442ba94973899"}, + {file = "rpds_py-0.20.1-cp310-none-win32.whl", hash = "sha256:648386ddd1e19b4a6abab69139b002bc49ebf065b596119f8f37c38e9ecee8ff"}, + {file = "rpds_py-0.20.1-cp310-none-win_amd64.whl", hash = "sha256:d9ecb51120de61e4604650666d1f2b68444d46ae18fd492245a08f53ad2b7711"}, + {file = "rpds_py-0.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:762703bdd2b30983c1d9e62b4c88664df4a8a4d5ec0e9253b0231171f18f6d75"}, + {file = "rpds_py-0.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0b581f47257a9fce535c4567782a8976002d6b8afa2c39ff616edf87cbeff712"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:842c19a6ce894493563c3bd00d81d5100e8e57d70209e84d5491940fdb8b9e3a"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42cbde7789f5c0bcd6816cb29808e36c01b960fb5d29f11e052215aa85497c93"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c8e9340ce5a52f95fa7d3b552b35c7e8f3874d74a03a8a69279fd5fca5dc751"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ba6f89cac95c0900d932c9efb7f0fb6ca47f6687feec41abcb1bd5e2bd45535"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a916087371afd9648e1962e67403c53f9c49ca47b9680adbeef79da3a7811b0"}, + {file = "rpds_py-0.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:200a23239781f46149e6a415f1e870c5ef1e712939fe8fa63035cd053ac2638e"}, + {file = "rpds_py-0.20.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:58b1d5dd591973d426cbb2da5e27ba0339209832b2f3315928c9790e13f159e8"}, + {file = "rpds_py-0.20.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6b73c67850ca7cae0f6c56f71e356d7e9fa25958d3e18a64927c2d930859b8e4"}, + {file = "rpds_py-0.20.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d8761c3c891cc51e90bc9926d6d2f59b27beaf86c74622c8979380a29cc23ac3"}, + {file = "rpds_py-0.20.1-cp311-none-win32.whl", hash = "sha256:cd945871335a639275eee904caef90041568ce3b42f402c6959b460d25ae8732"}, + {file = "rpds_py-0.20.1-cp311-none-win_amd64.whl", hash = "sha256:7e21b7031e17c6b0e445f42ccc77f79a97e2687023c5746bfb7a9e45e0921b84"}, + {file = "rpds_py-0.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:36785be22066966a27348444b40389f8444671630063edfb1a2eb04318721e17"}, + {file = "rpds_py-0.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:142c0a5124d9bd0e2976089484af5c74f47bd3298f2ed651ef54ea728d2ea42c"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbddc10776ca7ebf2a299c41a4dde8ea0d8e3547bfd731cb87af2e8f5bf8962d"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15a842bb369e00295392e7ce192de9dcbf136954614124a667f9f9f17d6a216f"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be5ef2f1fc586a7372bfc355986226484e06d1dc4f9402539872c8bb99e34b01"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbcf360c9e3399b056a238523146ea77eeb2a596ce263b8814c900263e46031a"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecd27a66740ffd621d20b9a2f2b5ee4129a56e27bfb9458a3bcc2e45794c96cb"}, + {file = "rpds_py-0.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0b937b2a1988f184a3e9e577adaa8aede21ec0b38320d6009e02bd026db04fa"}, + {file = "rpds_py-0.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6889469bfdc1eddf489729b471303739bf04555bb151fe8875931f8564309afc"}, + {file = "rpds_py-0.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:19b73643c802f4eaf13d97f7855d0fb527fbc92ab7013c4ad0e13a6ae0ed23bd"}, + {file = "rpds_py-0.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3c6afcf2338e7f374e8edc765c79fbcb4061d02b15dd5f8f314a4af2bdc7feb5"}, + {file = "rpds_py-0.20.1-cp312-none-win32.whl", hash = "sha256:dc73505153798c6f74854aba69cc75953888cf9866465196889c7cdd351e720c"}, + {file = "rpds_py-0.20.1-cp312-none-win_amd64.whl", hash = "sha256:8bbe951244a838a51289ee53a6bae3a07f26d4e179b96fc7ddd3301caf0518eb"}, + {file = "rpds_py-0.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6ca91093a4a8da4afae7fe6a222c3b53ee4eef433ebfee4d54978a103435159e"}, + {file = "rpds_py-0.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b9c2fe36d1f758b28121bef29ed1dee9b7a2453e997528e7d1ac99b94892527c"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f009c69bc8c53db5dfab72ac760895dc1f2bc1b62ab7408b253c8d1ec52459fc"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6740a3e8d43a32629bb9b009017ea5b9e713b7210ba48ac8d4cb6d99d86c8ee8"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:32b922e13d4c0080d03e7b62991ad7f5007d9cd74e239c4b16bc85ae8b70252d"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe00a9057d100e69b4ae4a094203a708d65b0f345ed546fdef86498bf5390982"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49fe9b04b6fa685bd39237d45fad89ba19e9163a1ccaa16611a812e682913496"}, + {file = "rpds_py-0.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa7ac11e294304e615b43f8c441fee5d40094275ed7311f3420d805fde9b07b4"}, + {file = "rpds_py-0.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aa97af1558a9bef4025f8f5d8c60d712e0a3b13a2fe875511defc6ee77a1ab7"}, + {file = "rpds_py-0.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:483b29f6f7ffa6af845107d4efe2e3fa8fb2693de8657bc1849f674296ff6a5a"}, + {file = "rpds_py-0.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37fe0f12aebb6a0e3e17bb4cd356b1286d2d18d2e93b2d39fe647138458b4bcb"}, + {file = "rpds_py-0.20.1-cp313-none-win32.whl", hash = "sha256:a624cc00ef2158e04188df5e3016385b9353638139a06fb77057b3498f794782"}, + {file = "rpds_py-0.20.1-cp313-none-win_amd64.whl", hash = "sha256:b71b8666eeea69d6363248822078c075bac6ed135faa9216aa85f295ff009b1e"}, + {file = "rpds_py-0.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:5b48e790e0355865197ad0aca8cde3d8ede347831e1959e158369eb3493d2191"}, + {file = "rpds_py-0.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3e310838a5801795207c66c73ea903deda321e6146d6f282e85fa7e3e4854804"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2249280b870e6a42c0d972339e9cc22ee98730a99cd7f2f727549af80dd5a963"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e79059d67bea28b53d255c1437b25391653263f0e69cd7dec170d778fdbca95e"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b431c777c9653e569986ecf69ff4a5dba281cded16043d348bf9ba505486f36"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da584ff96ec95e97925174eb8237e32f626e7a1a97888cdd27ee2f1f24dd0ad8"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a0629ec053fc013808a85178524e3cb63a61dbc35b22499870194a63578fb9"}, + {file = "rpds_py-0.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fbf15aff64a163db29a91ed0868af181d6f68ec1a3a7d5afcfe4501252840bad"}, + {file = "rpds_py-0.20.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:07924c1b938798797d60c6308fa8ad3b3f0201802f82e4a2c41bb3fafb44cc28"}, + {file = "rpds_py-0.20.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4a5a844f68776a7715ecb30843b453f07ac89bad393431efbf7accca3ef599c1"}, + {file = "rpds_py-0.20.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:518d2ca43c358929bf08f9079b617f1c2ca6e8848f83c1225c88caeac46e6cbc"}, + {file = "rpds_py-0.20.1-cp38-none-win32.whl", hash = "sha256:3aea7eed3e55119635a74bbeb80b35e776bafccb70d97e8ff838816c124539f1"}, + {file = "rpds_py-0.20.1-cp38-none-win_amd64.whl", hash = "sha256:7dca7081e9a0c3b6490a145593f6fe3173a94197f2cb9891183ef75e9d64c425"}, + {file = "rpds_py-0.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b41b6321805c472f66990c2849e152aff7bc359eb92f781e3f606609eac877ad"}, + {file = "rpds_py-0.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a90c373ea2975519b58dece25853dbcb9779b05cc46b4819cb1917e3b3215b6"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16d4477bcb9fbbd7b5b0e4a5d9b493e42026c0bf1f06f723a9353f5153e75d30"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:84b8382a90539910b53a6307f7c35697bc7e6ffb25d9c1d4e998a13e842a5e83"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4888e117dd41b9d34194d9e31631af70d3d526efc363085e3089ab1a62c32ed1"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5265505b3d61a0f56618c9b941dc54dc334dc6e660f1592d112cd103d914a6db"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e75ba609dba23f2c95b776efb9dd3f0b78a76a151e96f96cc5b6b1b0004de66f"}, + {file = "rpds_py-0.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1791ff70bc975b098fe6ecf04356a10e9e2bd7dc21fa7351c1742fdeb9b4966f"}, + {file = "rpds_py-0.20.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d126b52e4a473d40232ec2052a8b232270ed1f8c9571aaf33f73a14cc298c24f"}, + {file = "rpds_py-0.20.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c14937af98c4cc362a1d4374806204dd51b1e12dded1ae30645c298e5a5c4cb1"}, + {file = "rpds_py-0.20.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3d089d0b88996df627693639d123c8158cff41c0651f646cd8fd292c7da90eaf"}, + {file = "rpds_py-0.20.1-cp39-none-win32.whl", hash = "sha256:653647b8838cf83b2e7e6a0364f49af96deec64d2a6578324db58380cff82aca"}, + {file = "rpds_py-0.20.1-cp39-none-win_amd64.whl", hash = "sha256:fa41a64ac5b08b292906e248549ab48b69c5428f3987b09689ab2441f267d04d"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7a07ced2b22f0cf0b55a6a510078174c31b6d8544f3bc00c2bcee52b3d613f74"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:68cb0a499f2c4a088fd2f521453e22ed3527154136a855c62e148b7883b99f9a"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa3060d885657abc549b2a0f8e1b79699290e5d83845141717c6c90c2df38311"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95f3b65d2392e1c5cec27cff08fdc0080270d5a1a4b2ea1d51d5f4a2620ff08d"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2cc3712a4b0b76a1d45a9302dd2f53ff339614b1c29603a911318f2357b04dd2"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d4eea0761e37485c9b81400437adb11c40e13ef513375bbd6973e34100aeb06"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f5179583d7a6cdb981151dd349786cbc318bab54963a192692d945dd3f6435d"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fbb0ffc754490aff6dabbf28064be47f0f9ca0b9755976f945214965b3ace7e"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:a94e52537a0e0a85429eda9e49f272ada715506d3b2431f64b8a3e34eb5f3e75"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:92b68b79c0da2a980b1c4197e56ac3dd0c8a149b4603747c4378914a68706979"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:93da1d3db08a827eda74356f9f58884adb254e59b6664f64cc04cdff2cc19b0d"}, + {file = "rpds_py-0.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:754bbed1a4ca48479e9d4182a561d001bbf81543876cdded6f695ec3d465846b"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ca449520e7484534a2a44faf629362cae62b660601432d04c482283c47eaebab"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9c4cb04a16b0f199a8c9bf807269b2f63b7b5b11425e4a6bd44bd6961d28282c"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb63804105143c7e24cee7db89e37cb3f3941f8e80c4379a0b355c52a52b6780"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:55cd1fa4ecfa6d9f14fbd97ac24803e6f73e897c738f771a9fe038f2f11ff07c"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f8f741b6292c86059ed175d80eefa80997125b7c478fb8769fd9ac8943a16c0"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fc212779bf8411667234b3cdd34d53de6c2b8b8b958e1e12cb473a5f367c338"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ad56edabcdb428c2e33bbf24f255fe2b43253b7d13a2cdbf05de955217313e6"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a3a1e9ee9728b2c1734f65d6a1d376c6f2f6fdcc13bb007a08cc4b1ff576dc5"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e13de156137b7095442b288e72f33503a469aa1980ed856b43c353ac86390519"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:07f59760ef99f31422c49038964b31c4dfcfeb5d2384ebfc71058a7c9adae2d2"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:59240685e7da61fb78f65a9f07f8108e36a83317c53f7b276b4175dc44151684"}, + {file = "rpds_py-0.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:83cba698cfb3c2c5a7c3c6bac12fe6c6a51aae69513726be6411076185a8b24a"}, + {file = "rpds_py-0.20.1.tar.gz", hash = "sha256:e1791c4aabd117653530dccd24108fa03cc6baf21f58b950d0a73c3b3b29a350"}, ] [[package]] @@ -5937,6 +6016,68 @@ docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.1.2)", "memory-profiler (>=0.57.0)" examples = ["matplotlib (>=3.1.2)", "pandas (>=1.0.5)", "scikit-image (>=0.16.2)", "seaborn (>=0.9.0)"] tests = ["black (>=22.3.0)", "flake8 (>=3.8.2)", "matplotlib (>=3.1.2)", "mypy (>=0.961)", "numpydoc (>=1.2.0)", "pandas (>=1.0.5)", "pyamg (>=4.0.0)", "pytest (>=5.0.1)", "pytest-cov (>=2.9.0)", "scikit-image (>=0.16.2)"] +[[package]] +name = "scikit-learn" +version = "1.4.0" +description = "A set of python modules for machine learning and data mining" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scikit-learn-1.4.0.tar.gz", hash = "sha256:d4373c984eba20e393216edd51a3e3eede56cbe93d4247516d205643c3b93121"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fce93a7473e2f4ee4cc280210968288d6a7d7ad8dc6fa7bb7892145e407085f9"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d77df3d1e15fc37a9329999979fa7868ba8655dbab21fe97fc7ddabac9e08cc7"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2404659fedec40eeafa310cd14d613e564d13dbf8f3c752d31c095195ec05de6"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e98632da8f6410e6fb6bf66937712c949b4010600ccd3f22a5388a83e610cc3c"}, + {file = "scikit_learn-1.4.0-1-cp310-cp310-win_amd64.whl", hash = "sha256:11b3b140f70fbc9f6a08884631ae8dd60a4bb2d7d6d1de92738ea42b740d8992"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a8341eabdc754d5ab91641a7763243845e96b6d68e03e472531e88a4f1b09f21"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d1f6bce875ac2bb6b52514f67c185c564ccd299a05b65b7bab091a4c13dde12d"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c408b46b2fd61952d519ea1af2f8f0a7a703e1433923ab1704c4131520b2083b"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b465dd1dcd237b7b1dcd1a9048ccbf70a98c659474324fa708464c3a2533fad"}, + {file = "scikit_learn-1.4.0-1-cp311-cp311-win_amd64.whl", hash = "sha256:0db8e22c42f7980fe5eb22069b1f84c48966f3e0d23a01afde5999e3987a2501"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7eef6ea2ed289af40e88c0be9f7704ca8b5de18508a06897c3fe21e0905efdf"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:349669b01435bc4dbf25c6410b0892073befdaec52637d1a1d1ff53865dc8db3"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d439c584e58434d0350701bd33f6c10b309e851fccaf41c121aed55f6851d8cf"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0e2427d9ef46477625ab9b55c1882844fe6fc500f418c3f8e650200182457bc"}, + {file = "scikit_learn-1.4.0-1-cp312-cp312-win_amd64.whl", hash = "sha256:d3d75343940e7bf9b85c830c93d34039fa015eeb341c5c0b4cd7a90dadfe00d4"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:76986d22e884ab062b1beecdd92379656e9d3789ecc1f9870923c178de55f9fe"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e22446ad89f1cb7657f0d849dcdc345b48e2d10afa3daf2925fdb740f85b714c"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74812c9eabb265be69d738a8ea8d4884917a59637fcbf88a5f0e9020498bc6b3"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad2a63e0dd386b92da3270887a29b308af4d7c750d8c4995dfd9a4798691bcc"}, + {file = "scikit_learn-1.4.0-1-cp39-cp39-win_amd64.whl", hash = "sha256:53b9e29177897c37e2ff9d4ba6ca12fdb156e22523e463db05def303f5c72b5c"}, + {file = "scikit_learn-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cb8f044a8f5962613ce1feb4351d66f8d784bd072d36393582f351859b065f7d"}, + {file = "scikit_learn-1.4.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:a6372c90bbf302387792108379f1ec77719c1618d88496d0df30cb8e370b4661"}, + {file = "scikit_learn-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:785ce3c352bf697adfda357c3922c94517a9376002971bc5ea50896144bc8916"}, + {file = "scikit_learn-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0aba2a20d89936d6e72d95d05e3bf1db55bca5c5920926ad7b92c34f5e7d3bbe"}, + {file = "scikit_learn-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:2bac5d56b992f8f06816f2cd321eb86071c6f6d44bb4b1cb3d626525820d754b"}, + {file = "scikit_learn-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27ae4b0f1b2c77107c096a7e05b33458354107b47775428d1f11b23e30a73e8a"}, + {file = "scikit_learn-1.4.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5c5c62ffb52c3ffb755eb21fa74cc2cbf2c521bd53f5c04eaa10011dbecf5f80"}, + {file = "scikit_learn-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f0d2018ac6fa055dab65fe8a485967990d33c672d55bc254c56c35287b02fab"}, + {file = "scikit_learn-1.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a8918c415c4b4bf1d60c38d32958849a9191c2428ab35d30b78354085c7c7a"}, + {file = "scikit_learn-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:80a21de63275f8bcd7877b3e781679d2ff1eddfed515a599f95b2502a3283d42"}, + {file = "scikit_learn-1.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0f33bbafb310c26b81c4d41ecaebdbc1f63498a3f13461d50ed9a2e8f24d28e4"}, + {file = "scikit_learn-1.4.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:8b6ac1442ec714b4911e5aef8afd82c691b5c88b525ea58299d455acc4e8dcec"}, + {file = "scikit_learn-1.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05fc5915b716c6cc60a438c250108e9a9445b522975ed37e416d5ea4f9a63381"}, + {file = "scikit_learn-1.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:842b7d6989f3c574685e18da6f91223eb32301d0f93903dd399894250835a6f7"}, + {file = "scikit_learn-1.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:88bcb586fdff865372df1bc6be88bb7e6f9e0aa080dab9f54f5cac7eca8e2b6b"}, + {file = "scikit_learn-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f77674647dd31f56cb12ed13ed25b6ed43a056fffef051715022d2ebffd7a7d1"}, + {file = "scikit_learn-1.4.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:833999872e2920ce00f3a50839946bdac7539454e200eb6db54898a41f4bfd43"}, + {file = "scikit_learn-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:970ec697accaef10fb4f51763f3a7b1250f9f0553cf05514d0e94905322a0172"}, + {file = "scikit_learn-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:923d778f378ebacca2c672ab1740e5a413e437fb45ab45ab02578f8b689e5d43"}, + {file = "scikit_learn-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:1d041bc95006b545b59e458399e3175ab11ca7a03dc9a74a573ac891f5df1489"}, +] + +[package.dependencies] +joblib = ">=1.2.0" +numpy = ">=1.19.5" +scipy = ">=1.6.0" +threadpoolctl = ">=2.0.0" + +[package.extras] +benchmark = ["matplotlib (>=3.3.4)", "memory-profiler (>=0.57.0)", "pandas (>=1.1.5)"] +docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.3.4)", "memory-profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-gallery (>=0.15.0)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] +examples = ["matplotlib (>=3.3.4)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)"] +tests = ["black (>=23.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.3)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "polars (>=0.19.12)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.0.272)", "scikit-image (>=0.17.2)"] + [[package]] name = "scipy" version = "1.10.1" @@ -5975,6 +6116,48 @@ dev = ["click", "doit (>=0.36.0)", "flake8", "mypy", "pycodestyle", "pydevtool", doc = ["matplotlib (>2)", "numpydoc", "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 = "scipy" +version = "1.13.1" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + [[package]] name = "seaborn" version = "0.12.2" @@ -6040,19 +6223,23 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "65.6.3" +version = "75.3.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "setuptools-65.6.3-py3-none-any.whl", hash = "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54"}, - {file = "setuptools-65.6.3.tar.gz", hash = "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75"}, + {file = "setuptools-75.3.0-py3-none-any.whl", hash = "sha256:f2504966861356aa38616760c0f66568e535562374995367b4e69c7143cf6bcd"}, + {file = "setuptools-75.3.0.tar.gz", hash = "sha256:fba5dd4d766e97be1b1681d98712680ae8f2f26d7881245f2ce9e40714f1a686"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.12.*)", "pytest-mypy"] [[package]] name = "shellingham" @@ -6436,6 +6623,24 @@ onnx = ">=1.4.1" requests = "*" six = "*" +[[package]] +name = "tf2onnx" +version = "1.16.1" +description = "Tensorflow to ONNX converter" +optional = false +python-versions = "*" +files = [ + {file = "tf2onnx-1.16.1-py3-none-any.whl", hash = "sha256:90fb5f62575896d47884d27dc313cfebff36b8783e1094335ad00824ce923a8a"}, +] + +[package.dependencies] +flatbuffers = ">=1.12" +numpy = ">=1.14.1" +onnx = ">=1.4.1" +protobuf = ">=3.20,<4.0" +requests = "*" +six = "*" + [[package]] name = "threadpoolctl" version = "3.5.0" @@ -6449,13 +6654,13 @@ files = [ [[package]] name = "tinycss2" -version = "1.3.0" +version = "1.4.0" description = "A tiny CSS parser" optional = false python-versions = ">=3.8" files = [ - {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, - {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, ] [package.dependencies] @@ -6478,111 +6683,123 @@ files = [ [[package]] name = "tokenizers" -version = "0.20.1" +version = "0.20.3" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "tokenizers-0.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:439261da7c0a5c88bda97acb284d49fbdaf67e9d3b623c0bfd107512d22787a9"}, - {file = "tokenizers-0.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:03dae629d99068b1ea5416d50de0fea13008f04129cc79af77a2a6392792d93c"}, - {file = "tokenizers-0.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b61f561f329ffe4b28367798b89d60c4abf3f815d37413b6352bc6412a359867"}, - {file = "tokenizers-0.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ec870fce1ee5248a10be69f7a8408a234d6f2109f8ea827b4f7ecdbf08c9fd15"}, - {file = "tokenizers-0.20.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d388d1ea8b7447da784e32e3b86a75cce55887e3b22b31c19d0b186b1c677800"}, - {file = "tokenizers-0.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:299c85c1d21135bc01542237979bf25c32efa0d66595dd0069ae259b97fb2dbe"}, - {file = "tokenizers-0.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e96f6c14c9752bb82145636b614d5a78e9cde95edfbe0a85dad0dd5ddd6ec95c"}, - {file = "tokenizers-0.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc9e95ad49c932b80abfbfeaf63b155761e695ad9f8a58c52a47d962d76e310f"}, - {file = "tokenizers-0.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f22dee205329a636148c325921c73cf3e412e87d31f4d9c3153b302a0200057b"}, - {file = "tokenizers-0.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2ffd9a8895575ac636d44500c66dffaef133823b6b25067604fa73bbc5ec09d"}, - {file = "tokenizers-0.20.1-cp310-none-win32.whl", hash = "sha256:2847843c53f445e0f19ea842a4e48b89dd0db4e62ba6e1e47a2749d6ec11f50d"}, - {file = "tokenizers-0.20.1-cp310-none-win_amd64.whl", hash = "sha256:f9aa93eacd865f2798b9e62f7ce4533cfff4f5fbd50c02926a78e81c74e432cd"}, - {file = "tokenizers-0.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4a717dcb08f2dabbf27ae4b6b20cbbb2ad7ed78ce05a829fae100ff4b3c7ff15"}, - {file = "tokenizers-0.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3f84dad1ff1863c648d80628b1b55353d16303431283e4efbb6ab1af56a75832"}, - {file = "tokenizers-0.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:929c8f3afa16a5130a81ab5079c589226273ec618949cce79b46d96e59a84f61"}, - {file = "tokenizers-0.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d10766473954397e2d370f215ebed1cc46dcf6fd3906a2a116aa1d6219bfedc3"}, - {file = "tokenizers-0.20.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9300fac73ddc7e4b0330acbdda4efaabf74929a4a61e119a32a181f534a11b47"}, - {file = "tokenizers-0.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0ecaf7b0e39caeb1aa6dd6e0975c405716c82c1312b55ac4f716ef563a906969"}, - {file = "tokenizers-0.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5170be9ec942f3d1d317817ced8d749b3e1202670865e4fd465e35d8c259de83"}, - {file = "tokenizers-0.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef3f1ae08fa9aea5891cbd69df29913e11d3841798e0bfb1ff78b78e4e7ea0a4"}, - {file = "tokenizers-0.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ee86d4095d3542d73579e953c2e5e07d9321af2ffea6ecc097d16d538a2dea16"}, - {file = "tokenizers-0.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:86dcd08da163912e17b27bbaba5efdc71b4fbffb841530fdb74c5707f3c49216"}, - {file = "tokenizers-0.20.1-cp311-none-win32.whl", hash = "sha256:9af2dc4ee97d037bc6b05fa4429ddc87532c706316c5e11ce2f0596dfcfa77af"}, - {file = "tokenizers-0.20.1-cp311-none-win_amd64.whl", hash = "sha256:899152a78b095559c287b4c6d0099469573bb2055347bb8154db106651296f39"}, - {file = "tokenizers-0.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:407ab666b38e02228fa785e81f7cf79ef929f104bcccf68a64525a54a93ceac9"}, - {file = "tokenizers-0.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f13a2d16032ebc8bd812eb8099b035ac65887d8f0c207261472803b9633cf3e"}, - {file = "tokenizers-0.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e98eee4dca22849fbb56a80acaa899eec5b72055d79637dd6aa15d5e4b8628c9"}, - {file = "tokenizers-0.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47c1bcdd61e61136087459cb9e0b069ff23b5568b008265e5cbc927eae3387ce"}, - {file = "tokenizers-0.20.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:128c1110e950534426e2274837fc06b118ab5f2fa61c3436e60e0aada0ccfd67"}, - {file = "tokenizers-0.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2e2d47a819d2954f2c1cd0ad51bb58ffac6f53a872d5d82d65d79bf76b9896d"}, - {file = "tokenizers-0.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bdd67a0e3503a9a7cf8bc5a4a49cdde5fa5bada09a51e4c7e1c73900297539bd"}, - {file = "tokenizers-0.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:689b93d2e26d04da337ac407acec8b5d081d8d135e3e5066a88edd5bdb5aff89"}, - {file = "tokenizers-0.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0c6a796ddcd9a19ad13cf146997cd5895a421fe6aec8fd970d69f9117bddb45c"}, - {file = "tokenizers-0.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3ea919687aa7001a8ff1ba36ac64f165c4e89035f57998fa6cedcfd877be619d"}, - {file = "tokenizers-0.20.1-cp312-none-win32.whl", hash = "sha256:6d3ac5c1f48358ffe20086bf065e843c0d0a9fce0d7f0f45d5f2f9fba3609ca5"}, - {file = "tokenizers-0.20.1-cp312-none-win_amd64.whl", hash = "sha256:b0874481aea54a178f2bccc45aa2d0c99cd3f79143a0948af6a9a21dcc49173b"}, - {file = "tokenizers-0.20.1-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:96af92e833bd44760fb17f23f402e07a66339c1dcbe17d79a9b55bb0cc4f038e"}, - {file = "tokenizers-0.20.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:65f34e5b731a262dfa562820818533c38ce32a45864437f3d9c82f26c139ca7f"}, - {file = "tokenizers-0.20.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17f98fccb5c12ab1ce1f471731a9cd86df5d4bd2cf2880c5a66b229802d96145"}, - {file = "tokenizers-0.20.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8c0fc3542cf9370bf92c932eb71bdeb33d2d4aeeb4126d9fd567b60bd04cb30"}, - {file = "tokenizers-0.20.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b39356df4575d37f9b187bb623aab5abb7b62c8cb702867a1768002f814800c"}, - {file = "tokenizers-0.20.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfdad27b0e50544f6b838895a373db6114b85112ba5c0cefadffa78d6daae563"}, - {file = "tokenizers-0.20.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:094663dd0e85ee2e573126918747bdb40044a848fde388efb5b09d57bc74c680"}, - {file = "tokenizers-0.20.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14e4cf033a2aa207d7ac790e91adca598b679999710a632c4a494aab0fc3a1b2"}, - {file = "tokenizers-0.20.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9310951c92c9fb91660de0c19a923c432f110dbfad1a2d429fbc44fa956bf64f"}, - {file = "tokenizers-0.20.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:05e41e302c315bd2ed86c02e917bf03a6cf7d2f652c9cee1a0eb0d0f1ca0d32c"}, - {file = "tokenizers-0.20.1-cp37-none-win32.whl", hash = "sha256:212231ab7dfcdc879baf4892ca87c726259fa7c887e1688e3f3cead384d8c305"}, - {file = "tokenizers-0.20.1-cp37-none-win_amd64.whl", hash = "sha256:896195eb9dfdc85c8c052e29947169c1fcbe75a254c4b5792cdbd451587bce85"}, - {file = "tokenizers-0.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:741fb22788482d09d68e73ece1495cfc6d9b29a06c37b3df90564a9cfa688e6d"}, - {file = "tokenizers-0.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:10be14ebd8082086a342d969e17fc2d6edc856c59dbdbddd25f158fa40eaf043"}, - {file = "tokenizers-0.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:514cf279b22fa1ae0bc08e143458c74ad3b56cd078b319464959685a35c53d5e"}, - {file = "tokenizers-0.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a647c5b7cb896d6430cf3e01b4e9a2d77f719c84cefcef825d404830c2071da2"}, - {file = "tokenizers-0.20.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7cdf379219e1e1dd432091058dab325a2e6235ebb23e0aec8d0508567c90cd01"}, - {file = "tokenizers-0.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ba72260449e16c4c2f6f3252823b059fbf2d31b32617e582003f2b18b415c39"}, - {file = "tokenizers-0.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:910b96ed87316e4277b23c7bcaf667ce849c7cc379a453fa179e7e09290eeb25"}, - {file = "tokenizers-0.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e53975a6694428a0586534cc1354b2408d4e010a3103117f617cbb550299797c"}, - {file = "tokenizers-0.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:07c4b7be58da142b0730cc4e5fd66bb7bf6f57f4986ddda73833cd39efef8a01"}, - {file = "tokenizers-0.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b605c540753e62199bf15cf69c333e934077ef2350262af2ccada46026f83d1c"}, - {file = "tokenizers-0.20.1-cp38-none-win32.whl", hash = "sha256:88b3bc76ab4db1ab95ead623d49c95205411e26302cf9f74203e762ac7e85685"}, - {file = "tokenizers-0.20.1-cp38-none-win_amd64.whl", hash = "sha256:d412a74cf5b3f68a90c615611a5aa4478bb303d1c65961d22db45001df68afcb"}, - {file = "tokenizers-0.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a25dcb2f41a0a6aac31999e6c96a75e9152fa0127af8ece46c2f784f23b8197a"}, - {file = "tokenizers-0.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a12c3cebb8c92e9c35a23ab10d3852aee522f385c28d0b4fe48c0b7527d59762"}, - {file = "tokenizers-0.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02e18da58cf115b7c40de973609c35bde95856012ba42a41ee919c77935af251"}, - {file = "tokenizers-0.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f326a1ac51ae909b9760e34671c26cd0dfe15662f447302a9d5bb2d872bab8ab"}, - {file = "tokenizers-0.20.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b4872647ea6f25224e2833b044b0b19084e39400e8ead3cfe751238b0802140"}, - {file = "tokenizers-0.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce6238a3311bb8e4c15b12600927d35c267b92a52c881ef5717a900ca14793f7"}, - {file = "tokenizers-0.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57b7a8880b208866508b06ce365dc631e7a2472a3faa24daa430d046fb56c885"}, - {file = "tokenizers-0.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a908c69c2897a68f412aa05ba38bfa87a02980df70f5a72fa8490479308b1f2d"}, - {file = "tokenizers-0.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:da1001aa46f4490099c82e2facc4fbc06a6a32bf7de3918ba798010954b775e0"}, - {file = "tokenizers-0.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:42c097390e2f0ed0a5c5d569e6669dd4e9fff7b31c6a5ce6e9c66a61687197de"}, - {file = "tokenizers-0.20.1-cp39-none-win32.whl", hash = "sha256:3d4d218573a3d8b121a1f8c801029d70444ffb6d8f129d4cca1c7b672ee4a24c"}, - {file = "tokenizers-0.20.1-cp39-none-win_amd64.whl", hash = "sha256:37d1e6f616c84fceefa7c6484a01df05caf1e207669121c66213cb5b2911d653"}, - {file = "tokenizers-0.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48689da7a395df41114f516208d6550e3e905e1239cc5ad386686d9358e9cef0"}, - {file = "tokenizers-0.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:712f90ea33f9bd2586b4a90d697c26d56d0a22fd3c91104c5858c4b5b6489a79"}, - {file = "tokenizers-0.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:359eceb6a620c965988fc559cebc0a98db26713758ec4df43fb76d41486a8ed5"}, - {file = "tokenizers-0.20.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d3caf244ce89d24c87545aafc3448be15870096e796c703a0d68547187192e1"}, - {file = "tokenizers-0.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03b03cf8b9a32254b1bf8a305fb95c6daf1baae0c1f93b27f2b08c9759f41dee"}, - {file = "tokenizers-0.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:218e5a3561561ea0f0ef1559c6d95b825308dbec23fb55b70b92589e7ff2e1e8"}, - {file = "tokenizers-0.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f40df5e0294a95131cc5f0e0eb91fe86d88837abfbee46b9b3610b09860195a7"}, - {file = "tokenizers-0.20.1-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:08aaa0d72bb65058e8c4b0455f61b840b156c557e2aca57627056624c3a93976"}, - {file = "tokenizers-0.20.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:998700177b45f70afeb206ad22c08d9e5f3a80639dae1032bf41e8cbc4dada4b"}, - {file = "tokenizers-0.20.1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62f7fbd3c2c38b179556d879edae442b45f68312019c3a6013e56c3947a4e648"}, - {file = "tokenizers-0.20.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31e87fca4f6bbf5cc67481b562147fe932f73d5602734de7dd18a8f2eee9c6dd"}, - {file = "tokenizers-0.20.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:956f21d359ae29dd51ca5726d2c9a44ffafa041c623f5aa33749da87cfa809b9"}, - {file = "tokenizers-0.20.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:1fbbaf17a393c78d8aedb6a334097c91cb4119a9ced4764ab8cfdc8d254dc9f9"}, - {file = "tokenizers-0.20.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ebe63e31f9c1a970c53866d814e35ec2ec26fda03097c486f82f3891cee60830"}, - {file = "tokenizers-0.20.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:81970b80b8ac126910295f8aab2d7ef962009ea39e0d86d304769493f69aaa1e"}, - {file = "tokenizers-0.20.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130e35e76f9337ed6c31be386e75d4925ea807055acf18ca1a9b0eec03d8fe23"}, - {file = "tokenizers-0.20.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd28a8614f5c82a54ab2463554e84ad79526c5184cf4573bbac2efbbbcead457"}, - {file = "tokenizers-0.20.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9041ee665d0fa7f5c4ccf0f81f5e6b7087f797f85b143c094126fc2611fec9d0"}, - {file = "tokenizers-0.20.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:62eb9daea2a2c06bcd8113a5824af8ef8ee7405d3a71123ba4d52c79bb3d9f1a"}, - {file = "tokenizers-0.20.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f861889707b54a9ab1204030b65fd6c22bdd4a95205deec7994dc22a8baa2ea4"}, - {file = "tokenizers-0.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:89d5c337d74ea6e5e7dc8af124cf177be843bbb9ca6e58c01f75ea103c12c8a9"}, - {file = "tokenizers-0.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0b7f515c83397e73292accdbbbedc62264e070bae9682f06061e2ddce67cacaf"}, - {file = "tokenizers-0.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0305fc1ec6b1e5052d30d9c1d5c807081a7bd0cae46a33d03117082e91908c"}, - {file = "tokenizers-0.20.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5dc611e6ac0fa00a41de19c3bf6391a05ea201d2d22b757d63f5491ec0e67faa"}, - {file = "tokenizers-0.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5ffe0d7f7bfcfa3b2585776ecf11da2e01c317027c8573c78ebcb8985279e23"}, - {file = "tokenizers-0.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e7edb8ec12c100d5458d15b1e47c0eb30ad606a05641f19af7563bc3d1608c14"}, - {file = "tokenizers-0.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:de291633fb9303555793cc544d4a86e858da529b7d0b752bcaf721ae1d74b2c9"}, - {file = "tokenizers-0.20.1.tar.gz", hash = "sha256:84edcc7cdeeee45ceedb65d518fffb77aec69311c9c8e30f77ad84da3025f002"}, + {file = "tokenizers-0.20.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:31ccab28dbb1a9fe539787210b0026e22debeab1662970f61c2d921f7557f7e4"}, + {file = "tokenizers-0.20.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c6361191f762bda98c773da418cf511cbaa0cb8d0a1196f16f8c0119bde68ff8"}, + {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f128d5da1202b78fa0a10d8d938610472487da01b57098d48f7e944384362514"}, + {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:79c4121a2e9433ad7ef0769b9ca1f7dd7fa4c0cd501763d0a030afcbc6384481"}, + {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7850fde24197fe5cd6556e2fdba53a6d3bae67c531ea33a3d7c420b90904141"}, + {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b357970c095dc134978a68c67d845a1e3803ab7c4fbb39195bde914e7e13cf8b"}, + {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a333d878c4970b72d6c07848b90c05f6b045cf9273fc2bc04a27211721ad6118"}, + {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd9fee817f655a8f50049f685e224828abfadd436b8ff67979fc1d054b435f1"}, + {file = "tokenizers-0.20.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9e7816808b402129393a435ea2a509679b41246175d6e5e9f25b8692bfaa272b"}, + {file = "tokenizers-0.20.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ba96367db9d8a730d3a1d5996b4b7babb846c3994b8ef14008cd8660f55db59d"}, + {file = "tokenizers-0.20.3-cp310-none-win32.whl", hash = "sha256:ee31ba9d7df6a98619426283e80c6359f167e2e9882d9ce1b0254937dbd32f3f"}, + {file = "tokenizers-0.20.3-cp310-none-win_amd64.whl", hash = "sha256:a845c08fdad554fe0871d1255df85772f91236e5fd6b9287ef8b64f5807dbd0c"}, + {file = "tokenizers-0.20.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:585b51e06ca1f4839ce7759941e66766d7b060dccfdc57c4ca1e5b9a33013a90"}, + {file = "tokenizers-0.20.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:61cbf11954f3b481d08723ebd048ba4b11e582986f9be74d2c3bdd9293a4538d"}, + {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef820880d5e4e8484e2fa54ff8d297bb32519eaa7815694dc835ace9130a3eea"}, + {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:67ef4dcb8841a4988cd00dd288fb95dfc8e22ed021f01f37348fd51c2b055ba9"}, + {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff1ef8bd47a02b0dc191688ccb4da53600df5d4c9a05a4b68e1e3de4823e78eb"}, + {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:444d188186eab3148baf0615b522461b41b1f0cd58cd57b862ec94b6ac9780f1"}, + {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37c04c032c1442740b2c2d925f1857885c07619224a533123ac7ea71ca5713da"}, + {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:453c7769d22231960ee0e883d1005c93c68015025a5e4ae56275406d94a3c907"}, + {file = "tokenizers-0.20.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4bb31f7b2847e439766aaa9cc7bccf7ac7088052deccdb2275c952d96f691c6a"}, + {file = "tokenizers-0.20.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:843729bf0f991b29655a069a2ff58a4c24375a553c70955e15e37a90dd4e045c"}, + {file = "tokenizers-0.20.3-cp311-none-win32.whl", hash = "sha256:efcce3a927b1e20ca694ba13f7a68c59b0bd859ef71e441db68ee42cf20c2442"}, + {file = "tokenizers-0.20.3-cp311-none-win_amd64.whl", hash = "sha256:88301aa0801f225725b6df5dea3d77c80365ff2362ca7e252583f2b4809c4cc0"}, + {file = "tokenizers-0.20.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:49d12a32e190fad0e79e5bdb788d05da2f20d8e006b13a70859ac47fecf6ab2f"}, + {file = "tokenizers-0.20.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:282848cacfb9c06d5e51489f38ec5aa0b3cd1e247a023061945f71f41d949d73"}, + {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abe4e08c7d0cd6154c795deb5bf81d2122f36daf075e0c12a8b050d824ef0a64"}, + {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ca94fc1b73b3883c98f0c88c77700b13d55b49f1071dfd57df2b06f3ff7afd64"}, + {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef279c7e239f95c8bdd6ff319d9870f30f0d24915b04895f55b1adcf96d6c60d"}, + {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16384073973f6ccbde9852157a4fdfe632bb65208139c9d0c0bd0176a71fd67f"}, + {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:312d522caeb8a1a42ebdec87118d99b22667782b67898a76c963c058a7e41d4f"}, + {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2b7cb962564785a83dafbba0144ecb7f579f1d57d8c406cdaa7f32fe32f18ad"}, + {file = "tokenizers-0.20.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:124c5882ebb88dadae1fc788a582299fcd3a8bd84fc3e260b9918cf28b8751f5"}, + {file = "tokenizers-0.20.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2b6e54e71f84c4202111a489879005cb14b92616a87417f6c102c833af961ea2"}, + {file = "tokenizers-0.20.3-cp312-none-win32.whl", hash = "sha256:83d9bfbe9af86f2d9df4833c22e94d94750f1d0cd9bfb22a7bb90a86f61cdb1c"}, + {file = "tokenizers-0.20.3-cp312-none-win_amd64.whl", hash = "sha256:44def74cee574d609a36e17c8914311d1b5dbcfe37c55fd29369d42591b91cf2"}, + {file = "tokenizers-0.20.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0b630e0b536ef0e3c8b42c685c1bc93bd19e98c0f1543db52911f8ede42cf84"}, + {file = "tokenizers-0.20.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a02d160d2b19bcbfdf28bd9a4bf11be4cb97d0499c000d95d4c4b1a4312740b6"}, + {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e3d80d89b068bc30034034b5319218c7c0a91b00af19679833f55f3becb6945"}, + {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:174a54910bed1b089226512b4458ea60d6d6fd93060254734d3bc3540953c51c"}, + {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:098b8a632b8656aa5802c46689462c5c48f02510f24029d71c208ec2c822e771"}, + {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:78c8c143e3ae41e718588281eb3e212c2b31623c9d6d40410ec464d7d6221fb5"}, + {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b26b0aadb18cd8701077362ba359a06683662d5cafe3e8e8aba10eb05c037f1"}, + {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07d7851a72717321022f3774e84aa9d595a041d643fafa2e87fbc9b18711dac0"}, + {file = "tokenizers-0.20.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:bd44e48a430ada902c6266a8245f5036c4fe744fcb51f699999fbe82aa438797"}, + {file = "tokenizers-0.20.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:a4c186bb006ccbe1f5cc4e0380d1ce7806f5955c244074fd96abc55e27b77f01"}, + {file = "tokenizers-0.20.3-cp313-none-win32.whl", hash = "sha256:6e19e0f1d854d6ab7ea0c743d06e764d1d9a546932be0a67f33087645f00fe13"}, + {file = "tokenizers-0.20.3-cp313-none-win_amd64.whl", hash = "sha256:d50ede425c7e60966a9680d41b58b3a0950afa1bb570488e2972fa61662c4273"}, + {file = "tokenizers-0.20.3-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:9adda1ff5fb9dcdf899ceca672a4e2ce9e797adb512a6467305ca3d8bfcfbdd0"}, + {file = "tokenizers-0.20.3-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:6dde2cae6004ba7a3badff4a11911cae03ebf23e97eebfc0e71fef2530e5074f"}, + {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4a7fd678b35614fca708579eb95b7587a5e8a6d328171bd2488fd9f27d82be4"}, + {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b80e3c7283a01a356bd2210f53d1a4a5d32b269c2024389ed0173137708d50e"}, + {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a8cc0e8176b762973758a77f0d9c4467d310e33165fb74173418ca3734944da4"}, + {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5634b2e2f5f3d2b4439d2d74066e22eb4b1f04f3fea05cb2a3c12d89b5a3bcd"}, + {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b4ba635165bc1ea46f2da8e5d80b5f70f6ec42161e38d96dbef33bb39df73964"}, + {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18e4c7c64172e7789bd8b07aa3087ea87c4c4de7e90937a2aa036b5d92332536"}, + {file = "tokenizers-0.20.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1f74909ef7675c26d4095a817ec3393d67f3158ca4836c233212e5613ef640c4"}, + {file = "tokenizers-0.20.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0e9b81321a1e05b16487d312b4264984513f8b4a7556229cafac6e88c2036b09"}, + {file = "tokenizers-0.20.3-cp37-none-win32.whl", hash = "sha256:ab48184cd58b4a03022a2ec75b54c9f600ffea9a733612c02325ed636f353729"}, + {file = "tokenizers-0.20.3-cp37-none-win_amd64.whl", hash = "sha256:60ac483cebee1c12c71878523e768df02fa17e4c54412966cb3ac862c91b36c1"}, + {file = "tokenizers-0.20.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3229ef103c89583d10b9378afa5d601b91e6337530a0988e17ca8d635329a996"}, + {file = "tokenizers-0.20.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6ac52cc24bad3de865c7e65b1c4e7b70d00938a8ae09a92a453b8f676e714ad5"}, + {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04627b7b502fa6a2a005e1bd446fa4247d89abcb1afaa1b81eb90e21aba9a60f"}, + {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c27ceb887f0e81a3c377eb4605dca7a95a81262761c0fba308d627b2abb98f2b"}, + {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65ab780194da4e1fcf5670523a2f377c4838ebf5249efe41fa1eddd2a84fb49d"}, + {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98d343134f47159e81f7f242264b0eb222e6b802f37173c8d7d7b64d5c9d1388"}, + {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2475bb004ab2009d29aff13b5047bfdb3d4b474f0aa9d4faa13a7f34dbbbb43"}, + {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b6583a65c01db1197c1eb36857ceba8ec329d53afadd268b42a6b04f4965724"}, + {file = "tokenizers-0.20.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:62d00ba208358c037eeab7bfc00a905adc67b2d31b68ab40ed09d75881e114ea"}, + {file = "tokenizers-0.20.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0fc7a39e5bedc817bda395a798dfe2d9c5f7c71153c90d381b5135a0328d9520"}, + {file = "tokenizers-0.20.3-cp38-none-win32.whl", hash = "sha256:84d40ee0f8550d64d3ea92dd7d24a8557a9172165bdb986c9fb2503b4fe4e3b6"}, + {file = "tokenizers-0.20.3-cp38-none-win_amd64.whl", hash = "sha256:205a45246ed7f1718cf3785cff88450ba603352412aaf220ace026384aa3f1c0"}, + {file = "tokenizers-0.20.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:93e37f0269a11dc3b1a953f1fca9707f0929ebf8b4063c591c71a0664219988e"}, + {file = "tokenizers-0.20.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f4cb0c614b0135e781de96c2af87e73da0389ac1458e2a97562ed26e29490d8d"}, + {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7eb2fb1c432f5746b22f8a7f09fc18c4156cb0031c77f53cb19379d82d43297a"}, + {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bfa8d029bb156181b006643309d6b673615a24e4ed24cf03aa191d599b996f51"}, + {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f90549622de3bf476ad9f1dd6f3f952ec3ed6ab8615ae88ef060d0c5bfad55d"}, + {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1d469c74eebf5c43fd61cd9b030e271d17198edd7bd45392e03a3c091d7d6d4"}, + {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bee8f53b2594749f4460d53253bae55d718f04e9b633efa0f5df8938bd98e4f0"}, + {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:938441babf3e5720e4459e306ef2809fb267680df9d1ff2873458b22aef60248"}, + {file = "tokenizers-0.20.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7310ab23d7b0caebecc0e8be11a1146f320f5f07284000f6ea54793e83de1b75"}, + {file = "tokenizers-0.20.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:16121eb030a2b13094cfec936b0c12e8b4063c5f839591ea7d0212336d8f9921"}, + {file = "tokenizers-0.20.3-cp39-none-win32.whl", hash = "sha256:401cc21ef642ee235985d747f65e18f639464d377c70836c9003df208d582064"}, + {file = "tokenizers-0.20.3-cp39-none-win_amd64.whl", hash = "sha256:7498f3ea7746133335a6adb67a77cf77227a8b82c8483f644a2e5f86fea42b8d"}, + {file = "tokenizers-0.20.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e919f2e3e68bb51dc31de4fcbbeff3bdf9c1cad489044c75e2b982a91059bd3c"}, + {file = "tokenizers-0.20.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b8e9608f2773996cc272156e305bd79066163a66b0390fe21750aff62df1ac07"}, + {file = "tokenizers-0.20.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39270a7050deaf50f7caff4c532c01b3c48f6608d42b3eacdebdc6795478c8df"}, + {file = "tokenizers-0.20.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e005466632b1c5d2d2120f6de8aa768cc9d36cd1ab7d51d0c27a114c91a1e6ee"}, + {file = "tokenizers-0.20.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a07962340b36189b6c8feda552ea1bfeee6cf067ff922a1d7760662c2ee229e5"}, + {file = "tokenizers-0.20.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:55046ad3dd5f2b3c67501fcc8c9cbe3e901d8355f08a3b745e9b57894855f85b"}, + {file = "tokenizers-0.20.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:efcf0eb939988b627558aaf2b9dc3e56d759cad2e0cfa04fcab378e4b48fc4fd"}, + {file = "tokenizers-0.20.3-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f3558a7ae6a6d38a77dfce12172a1e2e1bf3e8871e744a1861cd7591ea9ebe24"}, + {file = "tokenizers-0.20.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d53029fe44bc70c3ff14ef512460a0cf583495a0f8e2f4b70e26eb9438e38a9"}, + {file = "tokenizers-0.20.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57a2a56397b2bec5a629b516b23f0f8a3e4f978c7488d4a299980f8375954b85"}, + {file = "tokenizers-0.20.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e5bfaae740ef9ece000f8a07e78ac0e2b085c5ce9648f8593ddf0243c9f76d"}, + {file = "tokenizers-0.20.3-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:fbaf3ea28fedfb2283da60e710aff25492e795a7397cad8a50f1e079b65a5a70"}, + {file = "tokenizers-0.20.3-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:c47c037116310dc976eb96b008e41b9cfaba002ed8005848d4d632ee0b7ba9ae"}, + {file = "tokenizers-0.20.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c31751f0721f58f5e19bb27c1acc259aeff860d8629c4e1a900b26a1979ada8e"}, + {file = "tokenizers-0.20.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:c697cbd3be7a79ea250ea5f380d6f12e534c543cfb137d5c734966b3ee4f34cc"}, + {file = "tokenizers-0.20.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b48971b88ef9130bf35b41b35fd857c3c4dae4a9cd7990ebc7fc03e59cc92438"}, + {file = "tokenizers-0.20.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e615de179bbe060ab33773f0d98a8a8572b5883dd7dac66c1de8c056c7e748c"}, + {file = "tokenizers-0.20.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da1ec842035ed9999c62e45fbe0ff14b7e8a7e02bb97688cc6313cf65e5cd755"}, + {file = "tokenizers-0.20.3-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:6ee4954c1dd23aadc27958dad759006e71659d497dcb0ef0c7c87ea992c16ebd"}, + {file = "tokenizers-0.20.3-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3eda46ca402751ec82553a321bf35a617b76bbed7586e768c02ccacbdda94d6d"}, + {file = "tokenizers-0.20.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:de082392a85eb0055cc055c535bff2f0cc15d7a000bdc36fbf601a0f3cf8507a"}, + {file = "tokenizers-0.20.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c3db46cc0647bfd88263afdb739b92017a02a87ee30945cb3e86c7e25c7c9917"}, + {file = "tokenizers-0.20.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a292392f24ab9abac5cfa8197e5a6208f2e43723420217e1ceba0b4ec77816ac"}, + {file = "tokenizers-0.20.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dcd91f4e60f62b20d83a87a84fe062035a1e3ff49a8c2bbdeb2d441c8e311f4"}, + {file = "tokenizers-0.20.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:900991a2b8ee35961b1095db7e265342e0e42a84c1a594823d5ee9f8fb791958"}, + {file = "tokenizers-0.20.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5a8d8261ca2133d4f98aa9627c748189502b3787537ba3d7e2beb4f7cfc5d627"}, + {file = "tokenizers-0.20.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:c4fd4d71e6deb6ddf99d8d0eab87d1d16f635898906e631914a9bae8ae9f2cfb"}, + {file = "tokenizers-0.20.3.tar.gz", hash = "sha256:2278b34c5d0dd78e087e1ca7f9b1dcbf129d80211afa645f214bd6e051037539"}, ] [package.dependencies] @@ -6606,13 +6823,43 @@ files = [ [[package]] name = "tomli" -version = "2.0.2" +version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" files = [ - {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, - {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] [[package]] @@ -6807,40 +7054,41 @@ scipy = ["scipy"] [[package]] name = "tornado" -version = "6.4.1" +version = "6.4.2" 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.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, - {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, - {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, - {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, - {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, ] [[package]] name = "tqdm" -version = "4.66.5" +version = "4.67.1" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.66.5-py3-none-any.whl", hash = "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd"}, - {file = "tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad"}, + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] -dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] telegram = ["requests"] @@ -6862,13 +7110,13 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0, [[package]] name = "transformers" -version = "4.45.2" +version = "4.46.3" description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" optional = false python-versions = ">=3.8.0" files = [ - {file = "transformers-4.45.2-py3-none-any.whl", hash = "sha256:c551b33660cfc815bae1f9f097ecfd1e65be623f13c6ee0dda372bd881460210"}, - {file = "transformers-4.45.2.tar.gz", hash = "sha256:72bc390f6b203892561f05f86bbfaa0e234aab8e927a83e62b9d92ea7e3ae101"}, + {file = "transformers-4.46.3-py3-none-any.whl", hash = "sha256:a12ef6f52841fd190a3e5602145b542d03507222f2c64ebb7ee92e8788093aef"}, + {file = "transformers-4.46.3.tar.gz", hash = "sha256:8ee4b3ae943fe33e82afff8e837f4b052058b07ca9be3cb5b729ed31295f72cc"}, ] [package.dependencies] @@ -6886,13 +7134,13 @@ tqdm = ">=4.27" [package.extras] accelerate = ["accelerate (>=0.26.0)"] agents = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "datasets (!=2.5.0)", "diffusers", "opencv-python", "sentencepiece (>=0.1.91,!=0.1.92)", "torch"] -all = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "av (==9.2.0)", "codecarbon (==1.2.0)", "decord (==0.6.0)", "flax (>=0.4.1,<=0.7.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "librosa", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "phonemizer", "protobuf", "pyctcdecode (>=0.4.0)", "ray[tune] (>=2.7.0)", "scipy (<1.13.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timm (<=0.9.16)", "tokenizers (>=0.20,<0.21)", "torch", "torchaudio", "torchvision"] +all = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "av (==9.2.0)", "codecarbon (==1.2.0)", "flax (>=0.4.1,<=0.7.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "librosa", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "phonemizer", "protobuf", "pyctcdecode (>=0.4.0)", "ray[tune] (>=2.7.0)", "scipy (<1.13.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timm (<=0.9.16)", "tokenizers (>=0.20,<0.21)", "torch", "torchaudio", "torchvision"] audio = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)"] benchmark = ["optimum-benchmark (>=0.3.0)"] codecarbon = ["codecarbon (==1.2.0)"] deepspeed = ["accelerate (>=0.26.0)", "deepspeed (>=0.9.3)"] deepspeed-testing = ["GitPython (<3.1.19)", "accelerate (>=0.26.0)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "deepspeed (>=0.9.3)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "nltk (<=3.8.1)", "optuna", "parameterized", "protobuf", "psutil", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-rich", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "timeout-decorator"] -dev = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "av (==9.2.0)", "beautifulsoup4", "codecarbon (==1.2.0)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "decord (==0.6.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "flax (>=0.4.1,<=0.7.0)", "fugashi (>=1.0)", "ipadic (>=1.0.0,<2.0)", "isort (>=5.5.4)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "libcst", "librosa", "nltk (<=3.8.1)", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-rich", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "scipy (<1.13.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "timm (<=0.9.16)", "tokenizers (>=0.20,<0.21)", "torch", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] +dev = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "av (==9.2.0)", "beautifulsoup4", "codecarbon (==1.2.0)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "flax (>=0.4.1,<=0.7.0)", "fugashi (>=1.0)", "ipadic (>=1.0.0,<2.0)", "isort (>=5.5.4)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "libcst", "librosa", "nltk (<=3.8.1)", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-rich", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "scipy (<1.13.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "timm (<=0.9.16)", "tokenizers (>=0.20,<0.21)", "torch", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] dev-tensorflow = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "isort (>=5.5.4)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "libcst", "librosa", "nltk (<=3.8.1)", "onnxconverter-common", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-rich", "pytest-timeout", "pytest-xdist", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "tokenizers (>=0.20,<0.21)", "urllib3 (<2.0.0)"] dev-torch = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "beautifulsoup4", "codecarbon (==1.2.0)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "fugashi (>=1.0)", "ipadic (>=1.0.0,<2.0)", "isort (>=5.5.4)", "kenlm", "libcst", "librosa", "nltk (<=3.8.1)", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "optuna", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-rich", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "timeout-decorator", "timm (<=0.9.16)", "tokenizers (>=0.20,<0.21)", "torch", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] flax = ["flax (>=0.4.1,<=0.7.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "optax (>=0.0.8,<=0.1.4)", "scipy (<1.13.0)"] @@ -6926,7 +7174,7 @@ torch = ["accelerate (>=0.26.0)", "torch"] torch-speech = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)", "torchaudio"] torch-vision = ["Pillow (>=10.0.1,<=15.0)", "torchvision"] torchhub = ["filelock", "huggingface-hub (>=0.23.2,<1.0)", "importlib-metadata", "numpy (>=1.17)", "packaging (>=20.0)", "protobuf", "regex (!=2019.12.17)", "requests", "sentencepiece (>=0.1.91,!=0.1.92)", "tokenizers (>=0.20,<0.21)", "torch", "tqdm (>=4.27)"] -video = ["av (==9.2.0)", "decord (==0.6.0)"] +video = ["av (==9.2.0)"] vision = ["Pillow (>=10.0.1,<=15.0)"] [[package]] @@ -6977,13 +7225,13 @@ urllib3 = ">=1.26.0" [[package]] name = "typer" -version = "0.12.5" +version = "0.14.0" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." optional = false python-versions = ">=3.7" files = [ - {file = "typer-0.12.5-py3-none-any.whl", hash = "sha256:62fe4e471711b147e3365034133904df3e235698399bc4de2b36c8579298d52b"}, - {file = "typer-0.12.5.tar.gz", hash = "sha256:f592f089bedcc8ec1b974125d64851029c3b1af145f04aca64d69410f0c9b722"}, + {file = "typer-0.14.0-py3-none-any.whl", hash = "sha256:f476233a25770ab3e7b2eebf7c68f3bc702031681a008b20167573a4b7018f09"}, + {file = "typer-0.14.0.tar.gz", hash = "sha256:af58f737f8d0c0c37b9f955a6d39000b9ff97813afcbeef56af5e37cf743b45a"}, ] [package.dependencies] @@ -7005,13 +7253,13 @@ files = [ [[package]] name = "types-requests" -version = "2.32.0.20240914" +version = "2.32.0.20241016" description = "Typing stubs for requests" optional = false python-versions = ">=3.8" files = [ - {file = "types-requests-2.32.0.20240914.tar.gz", hash = "sha256:2850e178db3919d9bf809e434eef65ba49d0e7e33ac92d588f4a5e295fffd405"}, - {file = "types_requests-2.32.0.20240914-py3-none-any.whl", hash = "sha256:59c2f673eb55f32a99b2894faf6020e1a9f4a402ad0f192bfee0b64469054310"}, + {file = "types-requests-2.32.0.20241016.tar.gz", hash = "sha256:0d9cad2f27515d0e3e3da7134a1b6f28fb97129d86b867f24d9c726452634d95"}, + {file = "types_requests-2.32.0.20241016-py3-none-any.whl", hash = "sha256:4195d62d6d3e043a4eaaf08ff8a62184584d2e8684e9d2aa178c7915a7da3747"}, ] [package.dependencies] @@ -7144,13 +7392,13 @@ test = ["websockets"] [[package]] name = "wheel" -version = "0.44.0" +version = "0.45.1" description = "A built-package format for Python" optional = false python-versions = ">=3.8" files = [ - {file = "wheel-0.44.0-py3-none-any.whl", hash = "sha256:2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f"}, - {file = "wheel-0.44.0.tar.gz", hash = "sha256:a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49"}, + {file = "wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248"}, + {file = "wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729"}, ] [package.extras] @@ -7167,85 +7415,6 @@ files = [ {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, ] -[[package]] -name = "wrapt" -version = "1.16.0" -description = "Module for decorators, wrappers and monkey patching." -optional = false -python-versions = ">=3.6" -files = [ - {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, - {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, - {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, - {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, - {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, - {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, - {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, - {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, - {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, - {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, - {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, - {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, - {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, - {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, - {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, - {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, - {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, - {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, -] - [[package]] name = "xgboost" version = "1.6.2" @@ -7274,103 +7443,109 @@ scikit-learn = ["scikit-learn"] [[package]] name = "yarl" -version = "1.14.0" +version = "1.15.2" description = "Yet another URL library" optional = false python-versions = ">=3.8" files = [ - {file = "yarl-1.14.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1bfc25aa6a7c99cf86564210f79a0b7d4484159c67e01232b116e445b3036547"}, - {file = "yarl-1.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0cf21f46a15d445417de8fc89f2568852cf57fe8ca1ab3d19ddb24d45c0383ae"}, - {file = "yarl-1.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1dda53508df0de87b6e6b0a52d6718ff6c62a5aca8f5552748404963df639269"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:587c3cc59bc148a9b1c07a019346eda2549bc9f468acd2f9824d185749acf0a6"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3007a5b75cb50140708420fe688c393e71139324df599434633019314ceb8b59"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:06ff23462398333c78b6f4f8d3d70410d657a471c2c5bbe6086133be43fc8f1a"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:689a99a42ee4583fcb0d3a67a0204664aa1539684aed72bdafcbd505197a91c4"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0547ab1e9345dc468cac8368d88ea4c5bd473ebc1d8d755347d7401982b5dd8"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:742aef0a99844faaac200564ea6f5e08facb285d37ea18bd1a5acf2771f3255a"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:176110bff341b6730f64a1eb3a7070e12b373cf1c910a9337e7c3240497db76f"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:46a9772a1efa93f9cd170ad33101c1817c77e0e9914d4fe33e2da299d7cf0f9b"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:ee2c68e4f2dd1b1c15b849ba1c96fac105fca6ffdb7c1e8be51da6fabbdeafb9"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:047b258e00b99091b6f90355521f026238c63bd76dcf996d93527bb13320eefd"}, - {file = "yarl-1.14.0-cp310-cp310-win32.whl", hash = "sha256:0aa92e3e30a04f9462a25077db689c4ac5ea9ab6cc68a2e563881b987d42f16d"}, - {file = "yarl-1.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:d9baec588f015d0ee564057aa7574313c53a530662ffad930b7886becc85abdf"}, - {file = "yarl-1.14.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:07f9eaf57719d6721ab15805d85f4b01a5b509a0868d7320134371bcb652152d"}, - {file = "yarl-1.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c14b504a74e58e2deb0378b3eca10f3d076635c100f45b113c18c770b4a47a50"}, - {file = "yarl-1.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:16a682a127930f3fc4e42583becca6049e1d7214bcad23520c590edd741d2114"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73bedd2be05f48af19f0f2e9e1353921ce0c83f4a1c9e8556ecdcf1f1eae4892"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3ab950f8814f3b7b5e3eebc117986f817ec933676f68f0a6c5b2137dd7c9c69"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b693c63e7e64b524f54aa4888403c680342d1ad0d97be1707c531584d6aeeb4f"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85cb3e40eaa98489f1e2e8b29f5ad02ee1ee40d6ce6b88d50cf0f205de1d9d2c"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f24f08b6c9b9818fd80612c97857d28f9779f0d1211653ece9844fc7b414df2"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:29a84a46ec3ebae7a1c024c055612b11e9363a8a23238b3e905552d77a2bc51b"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5cd5dad8366e0168e0fd23d10705a603790484a6dbb9eb272b33673b8f2cce72"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a152751af7ef7b5d5fa6d215756e508dd05eb07d0cf2ba51f3e740076aa74373"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:3d569f877ed9a708e4c71a2d13d2940cb0791da309f70bd970ac1a5c088a0a92"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6a615cad11ec3428020fb3c5a88d85ce1b5c69fd66e9fcb91a7daa5e855325dd"}, - {file = "yarl-1.14.0-cp311-cp311-win32.whl", hash = "sha256:bab03192091681d54e8225c53f270b0517637915d9297028409a2a5114ff4634"}, - {file = "yarl-1.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:985623575e5c4ea763056ffe0e2d63836f771a8c294b3de06d09480538316b13"}, - {file = "yarl-1.14.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fc2c80bc87fba076e6cbb926216c27fba274dae7100a7b9a0983b53132dd99f2"}, - {file = "yarl-1.14.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:55c144d363ad4626ca744556c049c94e2b95096041ac87098bb363dcc8635e8d"}, - {file = "yarl-1.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b03384eed107dbeb5f625a99dc3a7de8be04fc8480c9ad42fccbc73434170b20"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f72a0d746d38cb299b79ce3d4d60ba0892c84bbc905d0d49c13df5bace1b65f8"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8648180b34faaea4aa5b5ca7e871d9eb1277033fa439693855cf0ea9195f85f1"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9557c9322aaa33174d285b0c1961fb32499d65ad1866155b7845edc876c3c835"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f50eb3837012a937a2b649ec872b66ba9541ad9d6f103ddcafb8231cfcafd22"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8892fa575ac9b1b25fae7b221bc4792a273877b9b56a99ee2d8d03eeb3dbb1d2"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e6a2c5c5bb2556dfbfffffc2bcfb9c235fd2b566d5006dfb2a37afc7e3278a07"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ab3abc0b78a5dfaa4795a6afbe7b282b6aa88d81cf8c1bb5e394993d7cae3457"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:47eede5d11d669ab3759b63afb70d28d5328c14744b8edba3323e27dc52d298d"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fe4d2536c827f508348d7b40c08767e8c7071614250927233bf0c92170451c0a"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0fd7b941dd1b00b5f0acb97455fea2c4b7aac2dd31ea43fb9d155e9bc7b78664"}, - {file = "yarl-1.14.0-cp312-cp312-win32.whl", hash = "sha256:99ff3744f5fe48288be6bc402533b38e89749623a43208e1d57091fc96b783b9"}, - {file = "yarl-1.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:1ca3894e9e9f72da93544f64988d9c052254a338a9f855165f37f51edb6591de"}, - {file = "yarl-1.14.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5d02d700705d67e09e1f57681f758f0b9d4412eeb70b2eb8d96ca6200b486db3"}, - {file = "yarl-1.14.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:30600ba5db60f7c0820ef38a2568bb7379e1418ecc947a0f76fd8b2ff4257a97"}, - {file = "yarl-1.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e85d86527baebb41a214cc3b45c17177177d900a2ad5783dbe6f291642d4906f"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37001e5d4621cef710c8dc1429ca04e189e572f128ab12312eab4e04cf007132"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4f4547944d4f5cfcdc03f3f097d6f05bbbc915eaaf80a2ee120d0e756de377d"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75ff4c819757f9bdb35de049a509814d6ce851fe26f06eb95a392a5640052482"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68ac1a09392ed6e3fd14be880d39b951d7b981fd135416db7d18a6208c536561"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96952f642ac69075e44c7d0284528938fdff39422a1d90d3e45ce40b72e5e2d9"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a56fbe3d7f3bce1d060ea18d2413a2ca9ca814eea7cedc4d247b5f338d54844e"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7e2637d75e92763d1322cb5041573279ec43a80c0f7fbbd2d64f5aee98447b17"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9abe80ae2c9d37c17599557b712e6515f4100a80efb2cda15f5f070306477cd2"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:217a782020b875538eebf3948fac3a7f9bbbd0fd9bf8538f7c2ad7489e80f4e8"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9cfef3f14f75bf6aba73a76caf61f9d00865912a04a4393c468a7ce0981b519"}, - {file = "yarl-1.14.0-cp313-cp313-win32.whl", hash = "sha256:d8361c7d04e6a264481f0b802e395f647cd3f8bbe27acfa7c12049efea675bd1"}, - {file = "yarl-1.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:bc24f968b82455f336b79bf37dbb243b7d76cd40897489888d663d4e028f5069"}, - {file = "yarl-1.14.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:91d875f75fabf76b3018c5f196bf3d308ed2b49ddcb46c1576d6b075754a1393"}, - {file = "yarl-1.14.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4009def9be3a7e5175db20aa2d7307ecd00bbf50f7f0f989300710eee1d0b0b9"}, - {file = "yarl-1.14.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:582cedde49603f139be572252a318b30dc41039bc0b8165f070f279e5d12187f"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbd9ff43a04f8ffe8a959a944c2dca10d22f5f99fc6a459f49c3ebfb409309d9"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9f805e37ed16cc212fdc538a608422d7517e7faf539bedea4fe69425bc55d76"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:95e16e9eaa2d7f5d87421b8fe694dd71606aa61d74b824c8d17fc85cc51983d1"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:816d24f584edefcc5ca63428f0b38fee00b39fe64e3c5e558f895a18983efe96"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd2660c01367eb3ef081b8fa0a5da7fe767f9427aa82023a961a5f28f0d4af6c"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:94b2bb9bcfd5be9d27004ea4398fb640373dd0c1a9e219084f42c08f77a720ab"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c2089a9afef887664115f7fa6d3c0edd6454adaca5488dba836ca91f60401075"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:2192f718db4a8509f63dd6d950f143279211fa7e6a2c612edc17d85bf043d36e"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:8385ab36bf812e9d37cf7613999a87715f27ef67a53f0687d28c44b819df7cb0"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b4c1ecba93e7826dc71ddba75fb7740cdb52e7bd0be9f03136b83f54e6a1f511"}, - {file = "yarl-1.14.0-cp38-cp38-win32.whl", hash = "sha256:e749af6c912a7bb441d105c50c1a3da720474e8acb91c89350080dd600228f0e"}, - {file = "yarl-1.14.0-cp38-cp38-win_amd64.whl", hash = "sha256:147e36331f6f63e08a14640acf12369e041e0751bb70d9362df68c2d9dcf0c87"}, - {file = "yarl-1.14.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a9f917966d27f7ce30039fe8d900f913c5304134096554fd9bea0774bcda6d1"}, - {file = "yarl-1.14.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a2f8fb7f944bcdfecd4e8d855f84c703804a594da5123dd206f75036e536d4d"}, - {file = "yarl-1.14.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f4e475f29a9122f908d0f1f706e1f2fc3656536ffd21014ff8a6f2e1b14d1d8"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8089d4634d8fa2b1806ce44fefa4979b1ab2c12c0bc7ef3dfa45c8a374811348"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b16f6c75cffc2dc0616ea295abb0e1967601bd1fb1e0af6a1de1c6c887f3439"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498b3c55087b9d762636bca9b45f60d37e51d24341786dc01b81253f9552a607"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3f8bfc1db82589ef965ed234b87de30d140db8b6dc50ada9e33951ccd8ec07a"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:625f207b1799e95e7c823f42f473c1e9dbfb6192bd56bba8695656d92be4535f"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:781e2495e408a81e4eaeedeb41ba32b63b1980dddf8b60dbbeff6036bcd35049"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:659603d26d40dd4463200df9bfbc339fbfaed3fe32e5c432fe1dc2b5d4aa94b4"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4e0d45ebf975634468682c8bec021618b3ad52c37619e5c938f8f831fa1ac5c0"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:a2e4725a08cb2b4794db09e350c86dee18202bb8286527210e13a1514dc9a59a"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:19268b4fec1d7760134f2de46ef2608c2920134fb1fa61e451f679e41356dc55"}, - {file = "yarl-1.14.0-cp39-cp39-win32.whl", hash = "sha256:337912bcdcf193ade64b9aae5a4017a0a1950caf8ca140362e361543c6773f21"}, - {file = "yarl-1.14.0-cp39-cp39-win_amd64.whl", hash = "sha256:b6d0147574ce2e7b812c989e50fa72bbc5338045411a836bd066ce5fc8ac0bce"}, - {file = "yarl-1.14.0-py3-none-any.whl", hash = "sha256:c8ed4034f0765f8861620c1f2f2364d2e58520ea288497084dae880424fc0d9f"}, - {file = "yarl-1.14.0.tar.gz", hash = "sha256:88c7d9d58aab0724b979ab5617330acb1c7030b79379c8138c1c8c94e121d1b3"}, + {file = "yarl-1.15.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e4ee8b8639070ff246ad3649294336b06db37a94bdea0d09ea491603e0be73b8"}, + {file = "yarl-1.15.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7cf963a357c5f00cb55b1955df8bbe68d2f2f65de065160a1c26b85a1e44172"}, + {file = "yarl-1.15.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:43ebdcc120e2ca679dba01a779333a8ea76b50547b55e812b8b92818d604662c"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3433da95b51a75692dcf6cc8117a31410447c75a9a8187888f02ad45c0a86c50"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38d0124fa992dbacd0c48b1b755d3ee0a9f924f427f95b0ef376556a24debf01"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ded1b1803151dd0f20a8945508786d57c2f97a50289b16f2629f85433e546d47"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ace4cad790f3bf872c082366c9edd7f8f8f77afe3992b134cfc810332206884f"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c77494a2f2282d9bbbbcab7c227a4d1b4bb829875c96251f66fb5f3bae4fb053"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b7f227ca6db5a9fda0a2b935a2ea34a7267589ffc63c8045f0e4edb8d8dcf956"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:31561a5b4d8dbef1559b3600b045607cf804bae040f64b5f5bca77da38084a8a"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3e52474256a7db9dcf3c5f4ca0b300fdea6c21cca0148c8891d03a025649d935"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0e1af74a9529a1137c67c887ed9cde62cff53aa4d84a3adbec329f9ec47a3936"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:15c87339490100c63472a76d87fe7097a0835c705eb5ae79fd96e343473629ed"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:74abb8709ea54cc483c4fb57fb17bb66f8e0f04438cff6ded322074dbd17c7ec"}, + {file = "yarl-1.15.2-cp310-cp310-win32.whl", hash = "sha256:ffd591e22b22f9cb48e472529db6a47203c41c2c5911ff0a52e85723196c0d75"}, + {file = "yarl-1.15.2-cp310-cp310-win_amd64.whl", hash = "sha256:1695497bb2a02a6de60064c9f077a4ae9c25c73624e0d43e3aa9d16d983073c2"}, + {file = "yarl-1.15.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9fcda20b2de7042cc35cf911702fa3d8311bd40055a14446c1e62403684afdc5"}, + {file = "yarl-1.15.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0545de8c688fbbf3088f9e8b801157923be4bf8e7b03e97c2ecd4dfa39e48e0e"}, + {file = "yarl-1.15.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fbda058a9a68bec347962595f50546a8a4a34fd7b0654a7b9697917dc2bf810d"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ac2bc069f4a458634c26b101c2341b18da85cb96afe0015990507efec2e417"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd126498171f752dd85737ab1544329a4520c53eed3997f9b08aefbafb1cc53b"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3db817b4e95eb05c362e3b45dafe7144b18603e1211f4a5b36eb9522ecc62bcf"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:076b1ed2ac819933895b1a000904f62d615fe4533a5cf3e052ff9a1da560575c"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f8cfd847e6b9ecf9f2f2531c8427035f291ec286c0a4944b0a9fce58c6446046"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:32b66be100ac5739065496c74c4b7f3015cef792c3174982809274d7e51b3e04"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:34a2d76a1984cac04ff8b1bfc939ec9dc0914821264d4a9c8fd0ed6aa8d4cfd2"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0afad2cd484908f472c8fe2e8ef499facee54a0a6978be0e0cff67b1254fd747"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c68e820879ff39992c7f148113b46efcd6ec765a4865581f2902b3c43a5f4bbb"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:98f68df80ec6ca3015186b2677c208c096d646ef37bbf8b49764ab4a38183931"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c56ec1eacd0a5d35b8a29f468659c47f4fe61b2cab948ca756c39b7617f0aa5"}, + {file = "yarl-1.15.2-cp311-cp311-win32.whl", hash = "sha256:eedc3f247ee7b3808ea07205f3e7d7879bc19ad3e6222195cd5fbf9988853e4d"}, + {file = "yarl-1.15.2-cp311-cp311-win_amd64.whl", hash = "sha256:0ccaa1bc98751fbfcf53dc8dfdb90d96e98838010fc254180dd6707a6e8bb179"}, + {file = "yarl-1.15.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82d5161e8cb8f36ec778fd7ac4d740415d84030f5b9ef8fe4da54784a1f46c94"}, + {file = "yarl-1.15.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fa2bea05ff0a8fb4d8124498e00e02398f06d23cdadd0fe027d84a3f7afde31e"}, + {file = "yarl-1.15.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:99e12d2bf587b44deb74e0d6170fec37adb489964dbca656ec41a7cd8f2ff178"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:243fbbbf003754fe41b5bdf10ce1e7f80bcc70732b5b54222c124d6b4c2ab31c"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:856b7f1a7b98a8c31823285786bd566cf06226ac4f38b3ef462f593c608a9bd6"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:553dad9af802a9ad1a6525e7528152a015b85fb8dbf764ebfc755c695f488367"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30c3ff305f6e06650a761c4393666f77384f1cc6c5c0251965d6bfa5fbc88f7f"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:353665775be69bbfc6d54c8d134bfc533e332149faeddd631b0bc79df0897f46"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f4fe99ce44128c71233d0d72152db31ca119711dfc5f2c82385ad611d8d7f897"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:9c1e3ff4b89cdd2e1a24c214f141e848b9e0451f08d7d4963cb4108d4d798f1f"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:711bdfae4e699a6d4f371137cbe9e740dc958530cb920eb6f43ff9551e17cfbc"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4388c72174868884f76affcdd3656544c426407e0043c89b684d22fb265e04a5"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f0e1844ad47c7bd5d6fa784f1d4accc5f4168b48999303a868fe0f8597bde715"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a5cafb02cf097a82d74403f7e0b6b9df3ffbfe8edf9415ea816314711764a27b"}, + {file = "yarl-1.15.2-cp312-cp312-win32.whl", hash = "sha256:156ececdf636143f508770bf8a3a0498de64da5abd890c7dbb42ca9e3b6c05b8"}, + {file = "yarl-1.15.2-cp312-cp312-win_amd64.whl", hash = "sha256:435aca062444a7f0c884861d2e3ea79883bd1cd19d0a381928b69ae1b85bc51d"}, + {file = "yarl-1.15.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:416f2e3beaeae81e2f7a45dc711258be5bdc79c940a9a270b266c0bec038fb84"}, + {file = "yarl-1.15.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:173563f3696124372831007e3d4b9821746964a95968628f7075d9231ac6bb33"}, + {file = "yarl-1.15.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9ce2e0f6123a60bd1a7f5ae3b2c49b240c12c132847f17aa990b841a417598a2"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaea112aed589131f73d50d570a6864728bd7c0c66ef6c9154ed7b59f24da611"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4ca3b9f370f218cc2a0309542cab8d0acdfd66667e7c37d04d617012485f904"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23ec1d3c31882b2a8a69c801ef58ebf7bae2553211ebbddf04235be275a38548"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75119badf45f7183e10e348edff5a76a94dc19ba9287d94001ff05e81475967b"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78e6fdc976ec966b99e4daa3812fac0274cc28cd2b24b0d92462e2e5ef90d368"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8657d3f37f781d987037f9cc20bbc8b40425fa14380c87da0cb8dfce7c92d0fb"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:93bed8a8084544c6efe8856c362af08a23e959340c87a95687fdbe9c9f280c8b"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:69d5856d526802cbda768d3e6246cd0d77450fa2a4bc2ea0ea14f0d972c2894b"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ccad2800dfdff34392448c4bf834be124f10a5bc102f254521d931c1c53c455a"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:a880372e2e5dbb9258a4e8ff43f13888039abb9dd6d515f28611c54361bc5644"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c998d0558805860503bc3a595994895ca0f7835e00668dadc673bbf7f5fbfcbe"}, + {file = "yarl-1.15.2-cp313-cp313-win32.whl", hash = "sha256:533a28754e7f7439f217550a497bb026c54072dbe16402b183fdbca2431935a9"}, + {file = "yarl-1.15.2-cp313-cp313-win_amd64.whl", hash = "sha256:5838f2b79dc8f96fdc44077c9e4e2e33d7089b10788464609df788eb97d03aad"}, + {file = "yarl-1.15.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fbbb63bed5fcd70cd3dd23a087cd78e4675fb5a2963b8af53f945cbbca79ae16"}, + {file = "yarl-1.15.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e2e93b88ecc8f74074012e18d679fb2e9c746f2a56f79cd5e2b1afcf2a8a786b"}, + {file = "yarl-1.15.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af8ff8d7dc07ce873f643de6dfbcd45dc3db2c87462e5c387267197f59e6d776"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66f629632220a4e7858b58e4857927dd01a850a4cef2fb4044c8662787165cf7"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:833547179c31f9bec39b49601d282d6f0ea1633620701288934c5f66d88c3e50"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2aa738e0282be54eede1e3f36b81f1e46aee7ec7602aa563e81e0e8d7b67963f"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a13a07532e8e1c4a5a3afff0ca4553da23409fad65def1b71186fb867eeae8d"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c45817e3e6972109d1a2c65091504a537e257bc3c885b4e78a95baa96df6a3f8"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:670eb11325ed3a6209339974b276811867defe52f4188fe18dc49855774fa9cf"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:d417a4f6943112fae3924bae2af7112562285848d9bcee737fc4ff7cbd450e6c"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bc8936d06cd53fddd4892677d65e98af514c8d78c79864f418bbf78a4a2edde4"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:954dde77c404084c2544e572f342aef384240b3e434e06cecc71597e95fd1ce7"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:5bc0df728e4def5e15a754521e8882ba5a5121bd6b5a3a0ff7efda5d6558ab3d"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b71862a652f50babab4a43a487f157d26b464b1dedbcc0afda02fd64f3809d04"}, + {file = "yarl-1.15.2-cp38-cp38-win32.whl", hash = "sha256:63eab904f8630aed5a68f2d0aeab565dcfc595dc1bf0b91b71d9ddd43dea3aea"}, + {file = "yarl-1.15.2-cp38-cp38-win_amd64.whl", hash = "sha256:2cf441c4b6e538ba0d2591574f95d3fdd33f1efafa864faa077d9636ecc0c4e9"}, + {file = "yarl-1.15.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a32d58f4b521bb98b2c0aa9da407f8bd57ca81f34362bcb090e4a79e9924fefc"}, + {file = "yarl-1.15.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:766dcc00b943c089349d4060b935c76281f6be225e39994c2ccec3a2a36ad627"}, + {file = "yarl-1.15.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bed1b5dbf90bad3bfc19439258c97873eab453c71d8b6869c136346acfe497e7"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed20a4bdc635f36cb19e630bfc644181dd075839b6fc84cac51c0f381ac472e2"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d538df442c0d9665664ab6dd5fccd0110fa3b364914f9c85b3ef9b7b2e157980"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c6cf1d92edf936ceedc7afa61b07e9d78a27b15244aa46bbcd534c7458ee1b"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce44217ad99ffad8027d2fde0269ae368c86db66ea0571c62a000798d69401fb"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47a6000a7e833ebfe5886b56a31cb2ff12120b1efd4578a6fcc38df16cc77bd"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e52f77a0cd246086afde8815039f3e16f8d2be51786c0a39b57104c563c5cbb0"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:f9ca0e6ce7774dc7830dc0cc4bb6b3eec769db667f230e7c770a628c1aa5681b"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:136f9db0f53c0206db38b8cd0c985c78ded5fd596c9a86ce5c0b92afb91c3a19"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:173866d9f7409c0fb514cf6e78952e65816600cb888c68b37b41147349fe0057"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:6e840553c9c494a35e449a987ca2c4f8372668ee954a03a9a9685075228e5036"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:458c0c65802d816a6b955cf3603186de79e8fdb46d4f19abaec4ef0a906f50a7"}, + {file = "yarl-1.15.2-cp39-cp39-win32.whl", hash = "sha256:5b48388ded01f6f2429a8c55012bdbd1c2a0c3735b3e73e221649e524c34a58d"}, + {file = "yarl-1.15.2-cp39-cp39-win_amd64.whl", hash = "sha256:81dadafb3aa124f86dc267a2168f71bbd2bfb163663661ab0038f6e4b8edb810"}, + {file = "yarl-1.15.2-py3-none-any.whl", hash = "sha256:0d3105efab7c5c091609abacad33afff33bdff0035bece164c98bcf5a85ef90a"}, + {file = "yarl-1.15.2.tar.gz", hash = "sha256:a39c36f4218a5bb668b4f06874d676d35a035ee668e6e7e3538835c703634b84"}, ] [package.dependencies] @@ -7418,5 +7593,5 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" -python-versions = ">=3.8.1,<3.12" -content-hash = "9cfc1c5179451a7ba4944770ae4b9685fb8a01769be070c44a56ef947c21ee39" +python-versions = ">=3.8.1,<3.13" +content-hash = "7ef78c238cb4dd54339b4e273aceeb3d11555940e92da06c18e0a9685e31b36c" diff --git a/pylintrc b/pylintrc index 7d5c1de85..da1c75af2 100644 --- a/pylintrc +++ b/pylintrc @@ -90,6 +90,7 @@ disable=bad-inline-option, comparison-of-constants, # fixme import-outside-toplevel, # fixme consider-using-generator, # fixme + too-many-ancestors # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option # multiple time (only on the command line, not in the configuration file where diff --git a/pyproject.toml b/pyproject.toml index 33c9ebfc4..dce01e65e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,16 +33,16 @@ readme = "README.md" [tool.poetry.dependencies] # Investigate if it is better to fix specific versions or use lower and upper bounds # FIXME: https://github.com/zama-ai/concrete-ml-internal/issues/2665 -python = ">=3.8.1,<3.12" +python = ">=3.8.1,<3.13" # Based on the following link, explicitly indicating the source makes poetry only look for that # source, so we should only use this for Concrete Python's non-public releases # https://python-poetry.org/docs/1.7/repositories#project-configuration # concrete-python = {version="==2.7.0", source = "zama-pypi-cpu"} -concrete-python = {version="==2.8.1", source = "zama-pypi-cpu"} concrete-ml-extensions = [ {version = "0.1.2", platform = "linux" } ] -setuptools = "65.6.3" +concrete-python = {version="==2.9.0rc1.dev20241130", source = "zama-pypi-cpu"} +setuptools = "75.3.0" skops = {version = "0.5.0"} xgboost = "1.6.2" skorch = "0.11.0" @@ -53,16 +53,28 @@ torch = [ ] typing-extensions = "^4.5.0" brevitas = "0.10.2" -onnx = "1.16.1" +onnx = "1.17.0" onnxoptimizer = "0.3.13" # onnxruntime versions supported by onnx versions and opsets can be found here : # https://onnxruntime.ai/docs/reference/compatibility.html#onnx-opset-support onnxruntime = "1.18" hummingbird-ml = {version="0.4.11", extras = ["onnx"]} -scikit-learn = "1.1.3" -scipy = "1.10.1" -numpy = "1.24.2" -protobuf = "^4.25.2" +scikit-learn = [ + {version = "1.1.3", python = "<3.9" }, + {version = "1.4.0", python = ">=3.9.0"} + ] +scipy = [ + {version = "1.10.1", python = "3.8"}, + {version = ">=1.10.1", python = ">3.8"} + ] +numpy = [ + {version = "1.23.5", python = "<3.9" }, + {version = "1.26.4", python = ">=3.9.0"} + ] +protobuf = [ + {version = "^5.28.3", python = ">3.11"}, + {version = "3.20.3", python = "<=3.11"} +] pandas = "2.0.3" # Zama sources @@ -78,7 +90,7 @@ optional = true [tool.poetry.group.dev.dependencies] isort = "^5.10.1" black = "^24.3.0" -pylint = "^2.17.0" +pylint = "^3.0.0" pytest = "7.4.1" pytest-cov = "^4.1.0" pytest-xdist = "^3.3.1" @@ -117,7 +129,8 @@ mistletoe = "^0.9.0" ruff = "^0.0.191" myst_parser = "0.19.1" flake8-bugbear = "23.2.13" -flake8 = "6.0.0" +flake8 = "^7.1.0" +pycodestyle = "^2.11.1" ipython = "^8.10.0" markdown-it-py = "2.2.0" # torchvision's version depends on torch but is not enforced by the requirements of the @@ -156,6 +169,7 @@ filterwarnings = [ "ignore:open_text is deprecated.*:DeprecationWarning", "ignore:read_text is deprecated.*:DeprecationWarning", "ignore:open_binary is deprecated.*:DeprecationWarning", + "ignore:pkg_resources is deprecated as an API.*:DeprecationWarning", ] [tool.semantic_release] diff --git a/script/actions_utils/generate_test_matrix.py b/script/actions_utils/generate_test_matrix.py index 9810c91b7..53a6f5d55 100644 --- a/script/actions_utils/generate_test_matrix.py +++ b/script/actions_utils/generate_test_matrix.py @@ -22,6 +22,7 @@ class PythonVersion(enum.Enum): V_3_9 = "3.9" V_3_10 = "3.10" V_3_11 = "3.11" + V_3_12 = "3.12" class OS(enum.Enum): diff --git a/script/actions_utils/refresh_notebooks_list.py b/script/actions_utils/refresh_notebooks_list.py index 0ad74f75c..42fb6469c 100644 --- a/script/actions_utils/refresh_notebooks_list.py +++ b/script/actions_utils/refresh_notebooks_list.py @@ -171,7 +171,7 @@ def main(file_to_update): # If the script was called for checking if the list has correctly been updated, call an assert # without updating the file - if args.check: + if args.check: # pylint: disable=possibly-used-before-assignment with open(file_to_update, "r", encoding="utf-8") as file: oldlines = file.readlines() diff --git a/script/doc_utils/gen_supported_ops.py b/script/doc_utils/gen_supported_ops.py index da93556e0..687a2544f 100644 --- a/script/doc_utils/gen_supported_ops.py +++ b/script/doc_utils/gen_supported_ops.py @@ -54,7 +54,7 @@ def main(file_to_update): # This code is seen as a duplicate with other scripts we have # pylint: disable=duplicate-code - if args.check: + if args.check: # pylint: disable=possibly-used-before-assignment with open(file_to_update, "r", encoding="utf-8") as file: oldlines = file.readlines() @@ -62,7 +62,7 @@ def main(file_to_update): assert ( oldlines == newlines ), "List of supported functions is not up to date. Please run `make supported_ops`. " - # pylint: disable=duplicate-code + # pylint: enable=duplicate-code else: with open(file_to_update, "w", encoding="utf-8") as file: diff --git a/script/make_utils/check_installation_with_all_python.sh b/script/make_utils/check_installation_with_all_python.sh index 8aca76dfe..b20ab6ca3 100755 --- a/script/make_utils/check_installation_with_all_python.sh +++ b/script/make_utils/check_installation_with_all_python.sh @@ -25,7 +25,7 @@ do ;; "--all" ) - VERSION_LIST="3.8 3.9 3.10 3.11" + VERSION_LIST="3.8 3.9 3.10 3.11 3.12" ;; "--version" ) @@ -44,7 +44,7 @@ done if [ "${VERSION_LIST}" == "" ] then - VERSION_LIST="3.8 3.9 3.10 3.11" + VERSION_LIST="3.8 3.9 3.10 3.11 3.12" fi for VERSION in $VERSION_LIST diff --git a/script/make_utils/licenses.sh b/script/make_utils/licenses.sh index 6c75717c8..3d2813d7e 100755 --- a/script/make_utils/licenses.sh +++ b/script/make_utils/licenses.sh @@ -98,6 +98,8 @@ then IS_CORRECT_PYTHON=1 elif [[ "${CHECK_VERSION}" == *"3.11"* ]]; then IS_CORRECT_PYTHON=1 + elif [[ "${CHECK_VERSION}" == *"3.12"* ]]; then + IS_CORRECT_PYTHON=1 fi if [ $IS_CORRECT_PYTHON -eq 0 ] diff --git a/script/make_utils/nbqa.sh b/script/make_utils/nbqa.sh index cc7699cf9..944f094a9 100755 --- a/script/make_utils/nbqa.sh +++ b/script/make_utils/nbqa.sh @@ -28,7 +28,7 @@ function nbqa_ize() # %matplotlib inline # --extend-ignore=DAR is because we don't want to run darglint poetry run nbqa flake8 "${NB}" --max-line-length 100 --per-file-ignores="__init__.py:F401" \ - --ignore=E402,W503 --extend-ignore=DAR + --ignore=E402,W503,E226,E203 --extend-ignore=DAR # With some ignored errors, since we don't care: # that the notebook filename is capitalized (invalid-name) diff --git a/script/make_utils/setup_os_deps.sh b/script/make_utils/setup_os_deps.sh index 45b81a2ff..c297089af 100755 --- a/script/make_utils/setup_os_deps.sh +++ b/script/make_utils/setup_os_deps.sh @@ -43,7 +43,7 @@ linux_install_gitleaks () { tar -xvf "${DOWNLOADED_FILE}" -C "${TMP_WORKDIR}" GITLEAKS_BIN="${TMP_WORKDIR}/gitleaks" chmod +x "${GITLEAKS_BIN}" - cp "${GITLEAKS_BIN}" /usr/local/bin/ + ${SUDO_BIN:+$SUDO_BIN} cp "${GITLEAKS_BIN}" /usr/local/bin/ else echo "Hash mismatch" echo "Got sha256: ${SHA256_DOWNLOADED_FILE}" @@ -69,7 +69,7 @@ linux_install_actionlint () { tar -xvf "${DOWNLOADED_FILE}" -C "${TMP_WORKDIR}" ACTIONLINT_BIN="${TMP_WORKDIR}/actionlint" chmod +x "${ACTIONLINT_BIN}" - cp "${ACTIONLINT_BIN}" /usr/local/bin/ + ${SUDO_BIN:+$SUDO_BIN} cp "${ACTIONLINT_BIN}" /usr/local/bin/ else echo "Hash mismatch" echo "Got sha256: ${SHA256_DOWNLOADED_FILE}" @@ -85,32 +85,27 @@ linux_install_github_cli () { # https://github.com/cli/cli/blob/trunk/docs/install_linux.md#debian-ubuntu-linux-raspberry-pi-os-apt echo "Installing github-CLI" export GH_CLI_VERSION="2.51.0" - wget https://github.com/cli/cli/releases/download/v${GH_CLI_VERSION}/gh_${GH_CLI_VERSION}_linux_amd64.deb - dpkg -i gh_${GH_CLI_VERSION}_linux_amd64.deb + wget -P /home/dev_user https://github.com/cli/cli/releases/download/v${GH_CLI_VERSION}/gh_${GH_CLI_VERSION}_linux_amd64.deb + ${SUDO_BIN:+$SUDO_BIN} dpkg -i /home/dev_user/gh_${GH_CLI_VERSION}_linux_amd64.deb } OS_NAME=$(uname) if [[ "${OS_NAME}" == "Linux" ]]; then # Docker build - if isDockerBuildkit || (isDocker && ! isDockerContainer); then - CLEAR_APT_LISTS="rm -rf /var/lib/apt/lists/* &&" - SUDO_BIN="" - else - CLEAR_APT_LISTS="" - SUDO_BIN="$(command -v sudo)" - if [[ "${SUDO_BIN}" != "" ]]; then - SUDO_BIN="${SUDO_BIN} " - fi + CLEAR_APT_LISTS="" + SUDO_BIN="$(command -v sudo)" + if [[ "${SUDO_BIN}" != "" ]]; then + SUDO_BIN="${SUDO_BIN} " fi - + PYTHON_PACKAGES= if [[ "${LINUX_INSTALL_PYTHON}" == "1" ]]; then PYTHON_PACKAGES="python3-pip \ - python3.8 \ - python3.8-dev \ - python3.8-tk \ - python3.8-venv \ + python3 \ + python3-dev \ + python3-tk \ + python3-venv \ python-is-python3 \ " fi @@ -119,7 +114,8 @@ if [[ "${OS_NAME}" == "Linux" ]]; then then SETUP_CMD="linux_install_actionlint" else - SETUP_CMD="${SUDO_BIN:+$SUDO_BIN}apt-get update && apt-get upgrade --no-install-recommends -y && \ + SETUP_CMD="${SUDO_BIN:+$SUDO_BIN}apt-get update && \ + ${SUDO_BIN:+$SUDO_BIN}apt-get upgrade --no-install-recommends -y && \ ${SUDO_BIN:+$SUDO_BIN}apt-get install --no-install-recommends -y \ build-essential \ curl \ @@ -136,13 +132,22 @@ if [[ "${OS_NAME}" == "Linux" ]]; then openssl \ shellcheck \ texlive-latex-base texlive-latex-extra texlive-fonts-recommended texlive-xetex lmodern \ - wget && \ + wget pipx && ${CLEAR_APT_LISTS:+$CLEAR_APT_LISTS} \ - python3 -m pip install --no-cache-dir --upgrade pip && \ - python3 -m pip install --no-cache-dir --ignore-installed poetry==1.7.1 && \ - linux_install_gitleaks && linux_install_actionlint && linux_install_github_cli" + linux_install_gitleaks && \ + linux_install_actionlint && \ + linux_install_github_cli" fi eval "${SETUP_CMD}" + + # Install poetry, either with pipx for ubuntu >= 23 + # or through regular pip for older ubuntu + (pipx install poetry && pipx ensurepath) || \ + (\ + python3 -m pip install --no-cache-dir --upgrade pip && \ + python3 -m pip install --no-cache-dir --ignore-installed poetry==1.7.1 \ + ); + echo "PATH=$PATH:/home/dev_user/.local/bin/" >> ~/.bashrc elif [[ "${OS_NAME}" == "Darwin" ]]; then # Some problems with the git which is preinstalled on AWS virtual machines. Let's unlink it diff --git a/src/concrete/ml/deployment/_utils.py b/src/concrete/ml/deployment/_utils.py index 835651b95..2a31f1779 100644 --- a/src/concrete/ml/deployment/_utils.py +++ b/src/concrete/ml/deployment/_utils.py @@ -7,7 +7,7 @@ def serialize_encrypted_values( *values_enc: Optional[fhe.Value], -) -> Union[Optional[bytes], Optional[Tuple[bytes]]]: +) -> Union[Optional[bytes], Tuple[Optional[bytes], ...]]: """Serialize encrypted values. If a value is None, None is returned. diff --git a/src/concrete/ml/pandas/__init__.py b/src/concrete/ml/pandas/__init__.py index 4f402ea34..b61c35a58 100644 --- a/src/concrete/ml/pandas/__init__.py +++ b/src/concrete/ml/pandas/__init__.py @@ -1,7 +1,8 @@ """Public API for encrypted data-frames.""" +from collections.abc import Hashable from pathlib import Path -from typing import Hashable, Optional, Sequence, Tuple, Union +from typing import Optional, Sequence, Tuple, Union from .client_engine import ClientEngine from .dataframe import EncryptedDataFrame diff --git a/src/concrete/ml/pandas/_operators.py b/src/concrete/ml/pandas/_operators.py index e044ef1bf..dbe2d14bf 100644 --- a/src/concrete/ml/pandas/_operators.py +++ b/src/concrete/ml/pandas/_operators.py @@ -1,6 +1,7 @@ """Implement Pandas operators in FHE using encrypted data-frames.""" -from typing import Any, Dict, Hashable, List, Optional, Sequence, Tuple, Union +from collections.abc import Hashable +from typing import Any, Dict, List, Optional, Sequence, Tuple, Union import numpy import pandas diff --git a/src/concrete/ml/pandas/dataframe.py b/src/concrete/ml/pandas/dataframe.py index 8c7e6ef6c..90f90b6f3 100644 --- a/src/concrete/ml/pandas/dataframe.py +++ b/src/concrete/ml/pandas/dataframe.py @@ -1,8 +1,9 @@ """Define the encrypted data-frame framework.""" import json +from collections.abc import Hashable from pathlib import Path -from typing import Dict, Hashable, List, Optional, Sequence, Tuple, Union +from typing import Dict, List, Optional, Sequence, Tuple, Union from zipfile import ZIP_STORED, ZipFile import numpy diff --git a/src/concrete/ml/sklearn/base.py b/src/concrete/ml/sklearn/base.py index ed08841bc..fa692b2ec 100644 --- a/src/concrete/ml/sklearn/base.py +++ b/src/concrete/ml/sklearn/base.py @@ -1572,6 +1572,29 @@ def post_processing(self, y_preds: numpy.ndarray) -> numpy.ndarray: return super().post_processing(y_preds) + def get_sklearn_params(self, deep: bool = True) -> dict: + """Get parameters for this estimator. + + This method is used to instantiate a scikit-learn model using the Concrete ML model's + parameters. It does not override scikit-learn's existing `get_params` method in order to + not break its implementation of `set_params`. + + Args: + deep (bool): If True, will return the parameters for this estimator and contained + subobjects that are estimators. Default to True. + + Returns: + params (dict): Parameter names mapped to their values. + """ + # pylint: disable-next=no-member + params = super().get_params(deep=deep) # type: ignore[misc] + + params.pop("n_bits", None) + if "1.1." in sklearn.__version__: + params.pop("monotonic_cst", None) + + return params + class BaseTreeRegressorMixin(BaseTreeEstimatorMixin, sklearn.base.RegressorMixin, ABC): """Mixin class for tree-based regressors. @@ -1668,6 +1691,12 @@ def from_sklearn_model( # Extract scikit-learn's initialization parameters init_params = sklearn_model.get_params() + # Ensure compatibility for both sklearn 1.1 and >=1.4 + # This parameter was removed in 1.4. If this package is installed + # with sklearn 1.1 which has it, then remove it when + # instantiating the 1.4 API compatible Concrete ML model + init_params.pop("normalize", None) + # Instantiate the Concrete ML model and update initialization parameters # This update is necessary as we currently store scikit-learn attributes in Concrete ML # classes during initialization (for example: link or power attributes in GLMs) diff --git a/src/concrete/ml/sklearn/glm.py b/src/concrete/ml/sklearn/glm.py index 4779d66ec..cd034f43e 100644 --- a/src/concrete/ml/sklearn/glm.py +++ b/src/concrete/ml/sklearn/glm.py @@ -6,6 +6,7 @@ from typing import Any, Dict, Union import numpy +import sklearn import sklearn.linear_model from ..common.debugging.custom_assert import assert_true @@ -136,6 +137,19 @@ def load_dict(cls, metadata: Dict): return obj + def get_sklearn_params(self, deep: bool = True) -> dict: + # Here, the `get_params` method is the `BaseEstimator.get_params` method from scikit-learn + # FIXME: https://github.com/zama-ai/concrete-ml-internal/issues/3373 + params = super().get_params(deep=deep) # type: ignore[misc] + + # Remove the parameters added by Concrete ML + params.pop("n_bits", None) + # Remove sklearn 1.4 parameter when using sklearn 1.1 + if "1.1." in sklearn.__version__: + params.pop("solver", None) + + return params + class PoissonRegressor(_GeneralizedLinearRegressor): """A Poisson regression model with FHE. @@ -156,12 +170,13 @@ class PoissonRegressor(_GeneralizedLinearRegressor): sklearn_model_class = sklearn.linear_model.PoissonRegressor _is_a_public_cml_model = True - def __init__( + def __init__( # pylint: disable=useless-parent-delegation self, *, n_bits: Union[int, dict] = 8, alpha: float = 1.0, fit_intercept: bool = True, + solver="lbfgs", max_iter: int = 100, tol: float = 1e-4, warm_start: bool = False, @@ -171,6 +186,7 @@ def __init__( n_bits=n_bits, alpha=alpha, fit_intercept=fit_intercept, + solver=solver, max_iter=max_iter, tol=tol, warm_start=warm_start, @@ -200,12 +216,13 @@ class GammaRegressor(_GeneralizedLinearRegressor): sklearn_model_class = sklearn.linear_model.GammaRegressor _is_a_public_cml_model = True - def __init__( + def __init__( # pylint: disable=useless-parent-delegation self, *, n_bits: Union[int, dict] = 8, alpha: float = 1.0, fit_intercept: bool = True, + solver="lbfgs", max_iter: int = 100, tol: float = 1e-4, warm_start: bool = False, @@ -215,6 +232,7 @@ def __init__( n_bits=n_bits, alpha=alpha, fit_intercept=fit_intercept, + solver=solver, max_iter=max_iter, tol=tol, warm_start=warm_start, @@ -245,7 +263,7 @@ class TweedieRegressor(_GeneralizedLinearRegressor): sklearn_model_class = sklearn.linear_model.TweedieRegressor _is_a_public_cml_model = True - def __init__( + def __init__( # pylint: disable=too-many-arguments self, *, n_bits: Union[int, dict] = 8, @@ -253,6 +271,7 @@ def __init__( alpha: float = 1.0, fit_intercept: bool = True, link: str = "auto", + solver="lbfgs", max_iter: int = 100, tol: float = 1e-4, warm_start: bool = False, @@ -262,6 +281,7 @@ def __init__( n_bits=n_bits, alpha=alpha, fit_intercept=fit_intercept, + solver=solver, max_iter=max_iter, tol=tol, warm_start=warm_start, diff --git a/src/concrete/ml/sklearn/linear_model.py b/src/concrete/ml/sklearn/linear_model.py index 768748e34..4a86360cc 100644 --- a/src/concrete/ml/sklearn/linear_model.py +++ b/src/concrete/ml/sklearn/linear_model.py @@ -51,7 +51,6 @@ def __init__( self, n_bits=8, fit_intercept=True, - normalize="deprecated", copy_X=True, n_jobs=None, positive=False, @@ -60,7 +59,6 @@ def __init__( super().__init__(n_bits=n_bits) self.fit_intercept = fit_intercept - self.normalize = normalize self.copy_X = copy_X self.n_jobs = n_jobs self.positive = positive @@ -85,7 +83,6 @@ def dump_dict(self) -> Dict[str, Any]: # scikit-learn metadata["fit_intercept"] = self.fit_intercept - metadata["normalize"] = self.normalize metadata["copy_X"] = self.copy_X metadata["n_jobs"] = self.n_jobs metadata["positive"] = self.positive @@ -112,7 +109,6 @@ def load_dict(cls, metadata: Dict): # scikit-learn obj.fit_intercept = metadata["fit_intercept"] - obj.normalize = metadata["normalize"] obj.copy_X = metadata["copy_X"] obj.n_jobs = metadata["n_jobs"] obj.positive = metadata["positive"] @@ -1147,7 +1143,7 @@ class SGDRegressor(SklearnSGDRegressorMixin): _is_a_public_cml_model = True - def __init__( + def __init__( # pylint: disable=too-many-arguments self, n_bits=8, loss="squared_error", @@ -1302,7 +1298,6 @@ def __init__( alpha=1.0, l1_ratio=0.5, fit_intercept=True, - normalize="deprecated", precompute=False, max_iter=1000, copy_X=True, @@ -1318,7 +1313,6 @@ def __init__( self.alpha = alpha self.l1_ratio = l1_ratio self.fit_intercept = fit_intercept - self.normalize = normalize self.copy_X = copy_X self.positive = positive self.precompute = precompute @@ -1350,7 +1344,6 @@ def dump_dict(self) -> Dict[str, Any]: metadata["alpha"] = self.alpha metadata["l1_ratio"] = self.l1_ratio metadata["fit_intercept"] = self.fit_intercept - metadata["normalize"] = self.normalize metadata["copy_X"] = self.copy_X metadata["positive"] = self.positive metadata["precompute"] = self.precompute @@ -1384,7 +1377,6 @@ def load_dict(cls, metadata: Dict): obj.alpha = metadata["alpha"] obj.l1_ratio = metadata["l1_ratio"] obj.fit_intercept = metadata["fit_intercept"] - obj.normalize = metadata["normalize"] obj.copy_X = metadata["copy_X"] obj.positive = metadata["positive"] obj.precompute = metadata["precompute"] @@ -1422,7 +1414,6 @@ def __init__( n_bits=8, alpha: float = 1.0, fit_intercept=True, - normalize="deprecated", precompute=False, copy_X=True, max_iter=1000, @@ -1437,7 +1428,6 @@ def __init__( self.alpha = alpha self.fit_intercept = fit_intercept - self.normalize = normalize self.copy_X = copy_X self.positive = positive self.max_iter = max_iter @@ -1468,7 +1458,6 @@ def dump_dict(self) -> Dict[str, Any]: # scikit-learn metadata["alpha"] = self.alpha metadata["fit_intercept"] = self.fit_intercept - metadata["normalize"] = self.normalize metadata["copy_X"] = self.copy_X metadata["positive"] = self.positive metadata["max_iter"] = self.max_iter @@ -1501,7 +1490,6 @@ def load_dict(cls, metadata: Dict): # scikit-learn obj.alpha = metadata["alpha"] obj.fit_intercept = metadata["fit_intercept"] - obj.normalize = metadata["normalize"] obj.copy_X = metadata["copy_X"] obj.positive = metadata["positive"] obj.max_iter = metadata["max_iter"] @@ -1539,10 +1527,9 @@ def __init__( n_bits=8, alpha: float = 1.0, fit_intercept=True, - normalize="deprecated", copy_X=True, max_iter=None, - tol=0.001, + tol=0.0001, solver="auto", positive=False, random_state=None, @@ -1552,7 +1539,6 @@ def __init__( self.alpha = alpha self.fit_intercept = fit_intercept - self.normalize = normalize self.copy_X = copy_X self.positive = positive self.max_iter = max_iter @@ -1581,7 +1567,6 @@ def dump_dict(self) -> Dict[str, Any]: # scikit-learn metadata["alpha"] = self.alpha metadata["fit_intercept"] = self.fit_intercept - metadata["normalize"] = self.normalize metadata["copy_X"] = self.copy_X metadata["positive"] = self.positive metadata["max_iter"] = self.max_iter @@ -1612,7 +1597,6 @@ def load_dict(cls, metadata: Dict): # scikit-learn obj.alpha = metadata["alpha"] obj.fit_intercept = metadata["fit_intercept"] - obj.normalize = metadata["normalize"] obj.copy_X = metadata["copy_X"] obj.positive = metadata["positive"] obj.max_iter = metadata["max_iter"] diff --git a/src/concrete/ml/sklearn/rf.py b/src/concrete/ml/sklearn/rf.py index 2d7d98bdd..a3181d12a 100644 --- a/src/concrete/ml/sklearn/rf.py +++ b/src/concrete/ml/sklearn/rf.py @@ -39,6 +39,7 @@ def __init__( class_weight=None, ccp_alpha=0.0, max_samples=None, + monotonic_cst=None, ): """Initialize the RandomForestClassifier. @@ -65,6 +66,7 @@ def __init__( self.max_leaf_nodes = max_leaf_nodes self.min_impurity_decrease = min_impurity_decrease self.ccp_alpha = ccp_alpha + self.monotonic_cst = monotonic_cst def post_processing(self, y_preds: numpy.ndarray) -> numpy.ndarray: # Here, we want to use BaseTreeEstimatorMixin's `post-processing` method as @@ -106,6 +108,7 @@ def dump_dict(self) -> Dict[str, Any]: metadata["max_leaf_nodes"] = self.max_leaf_nodes metadata["min_impurity_decrease"] = self.min_impurity_decrease metadata["ccp_alpha"] = self.ccp_alpha + metadata["monotonic_cst"] = self.monotonic_cst return metadata @@ -151,6 +154,7 @@ def load_dict(cls, metadata: Dict): obj.max_leaf_nodes = metadata["max_leaf_nodes"] obj.min_impurity_decrease = metadata["min_impurity_decrease"] obj.ccp_alpha = metadata["ccp_alpha"] + obj.monotonic_cst = metadata["monotonic_cst"] return obj @@ -184,6 +188,7 @@ def __init__( warm_start=False, ccp_alpha=0.0, max_samples=None, + monotonic_cst=None, ): """Initialize the RandomForestRegressor. @@ -209,6 +214,7 @@ def __init__( self.max_leaf_nodes = max_leaf_nodes self.min_impurity_decrease = min_impurity_decrease self.ccp_alpha = ccp_alpha + self.monotonic_cst = monotonic_cst def dump_dict(self) -> Dict[str, Any]: metadata: Dict[str, Any] = {} @@ -243,6 +249,7 @@ def dump_dict(self) -> Dict[str, Any]: metadata["max_leaf_nodes"] = self.max_leaf_nodes metadata["min_impurity_decrease"] = self.min_impurity_decrease metadata["ccp_alpha"] = self.ccp_alpha + metadata["monotonic_cst"] = self.monotonic_cst return metadata @@ -288,5 +295,6 @@ def load_dict(cls, metadata: Dict): obj.max_leaf_nodes = metadata["max_leaf_nodes"] obj.min_impurity_decrease = metadata["min_impurity_decrease"] obj.ccp_alpha = metadata["ccp_alpha"] + obj.monotonic_cst = metadata["monotonic_cst"] return obj diff --git a/src/concrete/ml/sklearn/tree.py b/src/concrete/ml/sklearn/tree.py index 42965cdce..fba10ca3f 100644 --- a/src/concrete/ml/sklearn/tree.py +++ b/src/concrete/ml/sklearn/tree.py @@ -32,6 +32,7 @@ def __init__( min_impurity_decrease=0.0, class_weight=None, ccp_alpha: float = 0.0, + monotonic_cst=None, n_bits: Union[int, Dict[str, int]] = 6, ): """Initialize the DecisionTreeClassifier. @@ -54,6 +55,7 @@ def __init__( self.random_state = random_state self.min_impurity_decrease = min_impurity_decrease self.ccp_alpha = ccp_alpha + self.monotonic_cst = monotonic_cst def __getattr__(self, attr: str): # We directly expose the following methods as they are commonly used with decision trees @@ -100,6 +102,7 @@ def dump_dict(self) -> Dict[str, Any]: metadata["random_state"] = self.random_state metadata["min_impurity_decrease"] = self.min_impurity_decrease metadata["ccp_alpha"] = self.ccp_alpha + metadata["monotonic_cst"] = self.monotonic_cst return metadata @@ -140,6 +143,7 @@ def load_dict(cls, metadata: Dict): obj.random_state = metadata["random_state"] obj.min_impurity_decrease = metadata["min_impurity_decrease"] obj.ccp_alpha = metadata["ccp_alpha"] + obj.monotonic_cst = metadata["monotonic_cst"] return obj @@ -166,6 +170,7 @@ def __init__( max_leaf_nodes=None, min_impurity_decrease=0.0, ccp_alpha=0.0, + monotonic_cst=None, n_bits: Union[int, Dict[str, int]] = 6, ): """Initialize the DecisionTreeRegressor. @@ -187,6 +192,7 @@ def __init__( self.random_state = random_state self.min_impurity_decrease = min_impurity_decrease self.ccp_alpha = ccp_alpha + self.monotonic_cst = monotonic_cst def __getattr__(self, attr: str): # We directly expose the following methods as they are commonly used with decision trees @@ -226,6 +232,7 @@ def dump_dict(self) -> Dict[str, Any]: metadata["random_state"] = self.random_state metadata["min_impurity_decrease"] = self.min_impurity_decrease metadata["ccp_alpha"] = self.ccp_alpha + metadata["monotonic_cst"] = self.monotonic_cst return metadata @@ -266,5 +273,6 @@ def load_dict(cls, metadata: Dict): obj.random_state = metadata["random_state"] obj.min_impurity_decrease = metadata["min_impurity_decrease"] obj.ccp_alpha = metadata["ccp_alpha"] + obj.monotonic_cst = metadata["monotonic_cst"] return obj diff --git a/tests/onnx/test_onnx_graph_manipulations.py b/tests/onnx/test_onnx_graph_manipulations.py index 4507e0f71..202ea8a70 100644 --- a/tests/onnx/test_onnx_graph_manipulations.py +++ b/tests/onnx/test_onnx_graph_manipulations.py @@ -43,7 +43,7 @@ def test_remove_unused_constant_nodes(): output = helper.make_tensor_value_info("used_constant", onnx.TensorProto.FLOAT, ()) output_2 = helper.make_tensor_value_info("other_used_constant", onnx.TensorProto.FLOAT, ()) - identity_output = helper.make_tensor_value_info("indentity", onnx.TensorProto.FLOAT, ()) + identity_output = helper.make_tensor_value_info("identity", onnx.TensorProto.FLOAT, ()) graph_def = helper.make_graph( nodes=[unused_constant, used_constant, other_used_constant, identity_node], diff --git a/tests/quantization/test_quantized_ops.py b/tests/quantization/test_quantized_ops.py index 59e92b8fa..5c79c9270 100644 --- a/tests/quantization/test_quantized_ops.py +++ b/tests/quantization/test_quantized_ops.py @@ -130,8 +130,7 @@ def quantized_op_implements_analytical_calibration(op_instance): # Can only be called on ops that do not overload the calibrate_analytical_output function assert ( - type(op_instance.calibrate_analytical_output) # pylint: disable=unidiomatic-typecheck - != QuantizedMixingOp.calibrate_analytical_output + op_instance.calibrate_analytical_output is not QuantizedMixingOp.calibrate_analytical_output ) with pytest.raises(AssertionError, match=".*calibrate_analytical_output.*"): @@ -913,9 +912,9 @@ def test_quantized_avg_pool(params, n_bits, is_signed, check_r2_score, check_flo # Compute the torch average pool bceil_mode = bool(ceil_mode) - torch_res = torch.nn.functional.avg_pool2d( + torch_res = torch.nn.functional.avg_pool2d( # pylint: disable=not-callable tx_pad, kernel_shape, strides, 0, bceil_mode - ).numpy() # pylint: disable=not-callable + ).numpy() check_float_array_equal(torch_res, expected_result) # Compute the quantized result diff --git a/tests/sklearn/test_sklearn_models.py b/tests/sklearn/test_sklearn_models.py index 13cb80931..5f500d4de 100644 --- a/tests/sklearn/test_sklearn_models.py +++ b/tests/sklearn/test_sklearn_models.py @@ -36,6 +36,7 @@ import numpy import pandas import pytest +import sklearn import torch from sklearn.decomposition import PCA from sklearn.exceptions import ConvergenceWarning, UndefinedMetricWarning @@ -2251,7 +2252,17 @@ def test_error_raise_unsupported_pandas_values(model_class, bad_value, expected_ def test_initialization_variables_and_defaults_match( model_class, parameters, load_data, is_weekly_option ): - """Test CML models init parameters and default values vs scikit-learn models.""" + """Test CML models init parameters and default values vs scikit-learn models. + + Concrete ML currently implements sklearn 1.4 API so skip this test of the + sklearn version differs. + """ + if "1.1." in sklearn.__version__: + pytest.skip( + "Concrete ML currently implements sklearn 1.4 API" + f" skipping this test on version {sklearn.__version__}" + ) + n_bits = get_n_bits_non_correctness(model_class) model_name = get_model_name(model_class) @@ -2318,6 +2329,9 @@ def is_nan(x): sklearn_params_defaults[param] == cml_params_defaults[param] # Some parameter can be nan which can't be compared using equality or (is_nan(sklearn_params_defaults[param]) and is_nan(cml_params_defaults[param])) + # Some parameters can default to 'warn' in sklearn in order to issue a FutureWraning + # but the actual default is not 'warn', the actula one is given in the docstring + or sklearn_params_defaults[param] == "warn" ) } diff --git a/tests/torch/test_compile_torch.py b/tests/torch/test_compile_torch.py index 340618b47..202def064 100644 --- a/tests/torch/test_compile_torch.py +++ b/tests/torch/test_compile_torch.py @@ -1213,7 +1213,7 @@ def test_torch_padding(default_configuration, check_circuit_has_no_tlu): torch_output = torch_output > 0 cml_output = cml_output > 0 - assert numpy.alltrue(torch_output == cml_output) + assert numpy.all(torch_output == cml_output) check_circuit_has_no_tlu(quant_model.fhe_circuit)