diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index be72c2d846c15f65efb847de56bcca20ac15a69f..7b5aa980ccec8c7fe1cfbed4292ec2044bb7a0d0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,14 +39,16 @@ cache: - ${PRE_COMMIT_HOME} before_script: - # git is needed for pre-commit - - pip install --find-links=${PIP_DOWNLOAD_DIR} poetry # STEP 2 - cp deploy/.env-ci notebooks/.env - cp deploy/.env-ci leximpact_prepare_data/.env - cp deploy/.env-ci .env - sed -i "s/BRANCH_NAME/$OUT_FOLDER/" notebooks/.env - sed -i "s/BRANCH_NAME/$OUT_FOLDER/" leximpact_prepare_data/.env - sed -i "s/BRANCH_NAME/$OUT_FOLDER/" .env + # Run install on every job to ensure that the environment is up to date. Cache will be used. + - poetry config virtualenvs.in-project true + - poetry install --extras "pipeline" + - poetry run pre-commit install --install-hooks build docker image: stage: docker @@ -67,10 +69,10 @@ build docker image: install: stage: init script: -# # Allow caching by only downloading first: -# - pip download --dest=${PIP_DOWNLOAD_DIR} poetry # STEP 1 - poetry config virtualenvs.in-project true - poetry install --extras "pipeline" + # Remove pre-commit cache from Docker image to ensure that the latest version is used + - poetry run pre-commit clean - poetry run pre-commit install --install-hooks check-style: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2e8040d3bc308c2e1a0b18998f0e57c8c918c3b4..7c4eb6a6be14c1f0e9a5d17c1a2e4584440dfbdb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,22 +1,22 @@ repos: -- repo: https://github.com/fastai/nbdev - rev: 2.3.31 +- repo: https://github.com/AnswerDotAI/nbdev + rev: be3fd2266e4dcd605b60d7217a838810809e857f hooks: - id: nbdev_clean - repo: https://github.com/charliermarsh/ruff-pre-commit # Ruff version. - rev: 'v0.6.9' + rev: 'v0.11.2' hooks: - id: ruff exclude: ^(notebooks/analyse/|notebooks/code_CASD/|notebooks/analyses/) - repo: https://github.com/psf/black - rev: 24.10.0 + rev: 25.1.0 hooks: - id: black args: [--safe] # Check notebook formating - repo: https://github.com/nbQA-dev/nbQA - rev: 1.8.7 + rev: 1.9.1 hooks: - id: nbqa-black - id: nbqa-pyupgrade diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..a5f6d391ef5448f87848387d8b7966391bad4f37 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,261 @@ +# Contribution au projet + + +<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! --> + +## Pré-requis + +Il faut installer python3-venv, curl, make et git avant Poetry : + + sudo apt-get install -y curl make git python3-venv + +### Poetry + +``` bash +curl -sSL https://install.python-poetry.org | python3 - +``` + +Ajouter la commande suivante dans le .bashrc : + +``` bash +export PATH="$HOME/.local/bin:$PATH" +``` + +#### Specifier la version de Python à Poetry : python 3.10 + +Si on a une version de python \> 3.10 on peut utiliser pyenv pour +spécifier la version de python à utiliser en local sur le dossier : + + pyenv local 3.10 + + poetry env use 3.10 + +#### Installation des dépendances + +``` bash +poetry config virtualenvs.in-project true +poetry install +``` + +`poetry config virtualenvs.in-project true` permet d’installer +l’environnement comme un sous-dossier du projet plutôt que dans le home. +C’est recommandé pour que VSCode trouve l’environnement. + +Pour développer la pipeline, il faut des packages supplémentaires : + +``` bash +poetry install --extras "pipeline" +``` + +#### Debug Poetry + +Pour supprimer un environnement : +https://python-poetry.org/docs/managing-environments/ + + poetry env list + poetry env remove 3.7 + +Pour nettoyer tout + + rm poetry.lock + poetry env list + poetry env remove leximpact-prepare-data-0Rkp9wuO-py3.8 + poetry cache clear --all pypi + poetry env use -vvv 3.8 + poetry install + +Pour afficher l’arbre des dépendances: + + poetry show --tree + +### En cas de problèmes d’install: + + rm poetry.lock + +Pour supprimer un environnement : +https://python-poetry.org/docs/managing-environments/ + +# How to develop + +## Lien sécurisé vers l’ERFS-FPR + +To use hosted protected data with local algorithm: + + sudo mkdir -p /mnt/data-in /mnt/data-out + sudo chown $USER:$USER /mnt/data-* + sshfs ysabell:/data/private-data/input /mnt/data-in + sshfs ysabell:/data/private-data/output /mnt/data-out + +as local \$USER and where `ysabell` is defined in local `~/.ssh/config`. + +## Create symlink + +``` python +!ln -s ../leximpact_prepare_data +!cd analyses && ln -s ../../leximpact_prepare_data +!cd extractions_base_des_impots && ln -s ../../leximpact_prepare_data +!cd retraitement_erfs-fpr && ln -s ../../leximpact_prepare_data +``` + +## Update package to last version + +``` bash +poetry update +``` + +## Jupyter + +First time, and after adding a librairy : + +`poetry run python -m ipykernel install --name leximpact-prepare-data-kernel --user` + +### Launch jupyter + +``` bash +poetry run jupyter lab +``` + +## Check style + +``` bash +make precommit +``` + +### Update precommit + +A faire de temps en temps pour rester à jour: + +``` bash +poetry run pre-commit autoupdate +``` + +## NBDev + +Run pre-commit before converting notebooks +`poetry run pre-commit run --all-files` + +Build lib from notebook `poetry run nbdev_build_lib` + +Build docs from notebook `poetry run nbdev_build_docs` + +Re-run pre-commit `poetry run pre-commit run --all-files` + +``` python +# Pour formater automatiquement le code (voir l'entrée precommit dans Makefile pour le détail) +!make precommit +``` + +``` python +# Build docs from notebookµ +#!poetry run nbdev_build_docs +!cd .. && make docs +``` + +# How we build the docs + +The documentation is available at +https://documentation.leximpact.dev/leximpact_prepare_data/ + +It’s build with [NBDev](https://github.com/fastai/nbdev) in the GitLab +CI. + +We do it like this: - Use Poetry env for default environnnement - Use +venv for specific env to remove notebook output, because +`--clear-output` do not work with nbconvert \< 6 that is needed by other +dependencies. We do it to avoid publishing sensitive data. We have to +find a better way to publish outputs without sensitive data. - Build the +docs with `poetry run nbdev_docs`. + +Then we copy the docs via `scp` to our server and serve them with Nginx. + +*Since NBDev v2 the doc is a pure static site.* + +*After upgrading NBDev, do not forget to upgrade Quarto* with: +`curl -LO https://www.quarto.org/download/latest/quarto-linux-amd64.deb && dpkg -i quarto-linux-amd64.deb` + +The CI also push the doc to a branch. To do it we need a token from +https://git.leximpact.dev/admin/users/project_18_bot/impersonation_tokens +to be put in the CI variable `API_TOKEN`. + +## Test de la doc en local + +`poetry run nbdev_preview` + +## Anaconda sur CASD + +### Construction du paquet + + docker run -i -t -v $PWD:/src continuumio/miniconda3 /bin/bash + cd /src + python3 gitlab-ci/src/get_pypi_info.py -p leximpact-prepare-data + conda install -y conda-build anaconda-client + conda config --set anaconda_upload yes + conda build -c conda-forge -c leximpact -c openfisca .conda + +Pour faire l’upload: + + anaconda login + anaconda upload \ + /opt/conda/conda-bld/noarch/leximpact-prepare-data-0.0.8-py_0.tar.bz2 \ + /opt/conda/conda-bld/noarch/leximpact-prepare-data-casd-0.0.8-py_0.tar.bz2 \ + /opt/conda/conda-bld/noarch/leximpact-prepare-data-dev-0.0.8-py_0.tar.bz2 + +### Test en local + +Installer le paquet dans un environnement propre: + + mkdir -p casd-test + cd casd-test + git clone https://git.leximpact.dev/leximpact/simulateur-socio-fiscal/budget/leximpact-prepare-data.git + rm -r ./conda-env + conda create --prefix ./conda-env python=3.8 + conda activate ./conda-env + conda config --add channels conda-forge + conda config --set channel_priority strict + conda install -c conda-forge -c openfisca -c leximpact leximpact-prepare-data-casd + ipython kernel install --user --name=prepare-data-conda-env + +Pour vérifier que tout a fonctionné: + + jupyter lab + +Puis ouvrir le fichier +`leximpact-prepare-data/notebook/extractions_base_des_impots/test_install.ipynb` +et l’exécuter. + +Pour sortir de l’environnement + + conda deactivate + +# Initialisation de la base ERFS-FPR + +Nous recevons de l’INSEE des fichiers SAS concernant des ménages. + +Or nous avons besoin de foyers fiscaux pour nos traitements. + +Pour passer des ménages aux foyers fiscaux nous utilisons [OpenFisca +France Data](https://github.com/openfisca/openfisca-france-data). + +L’intégration continue de OpenFisca France Data effectue ce traitement. +On le trouve sur le serveur dans `/mnt/data-out/leximpact/erfs-fpr/`, +cela nous permet d’obtenir le fichier `openfisca_erfs_fpr_2021.h5` que +l’on va utiliser à l’étape suivante. + +Si jamais vous souhaitez le refaire à la main : + +``` shell +clone git@git.leximpact.dev:benjello/openfisca-france-data.git +cd openfisca-france-data/ +python3 -m venv .venv +source .venv/bin/activate +make install +cp /mnt/data-out/openfisca-france-data/openfisca_survey_manager_config-after-build-collection.ini ~/.config/openfisca-survey-manager/config.ini +cp /mnt/data-out/data_collections/bilal/erfs_fpr.json ./erfs_fpr.json +nano ~/.config/openfisca-survey-manager/config.ini +nano /home/jupyter-benoit/openfisca-france-data/erfs_fpr.json +cp /mnt/data-out/erfs_fpr_2021.h5 /home/jupyter-benoit/openfisca-france-data/erfs_fpr_2021.h5 +build-erfs-fpr -y 2021 +``` + +Le script `build-erfs-fpr` exécute le code +`openfisca_france_data.erfs_fpr.input_data_builder:main`. diff --git a/deploy/Dockerfile-ci b/deploy/Dockerfile-ci index f0100241a2d8e2a344a9477caa8b0af81eab889f..94013817642c7e52f8ab97c0dd958e9c2671e544 100644 --- a/deploy/Dockerfile-ci +++ b/deploy/Dockerfile-ci @@ -3,7 +3,8 @@ FROM python:3.10-slim # Install useful packages RUN apt-get update && apt-get install -y pandoc texlive-latex-base texlive-fonts-recommended texlive-latex-extra git make curl -RUN pip install poetry==1.7.1 +RUN pip install poetry==2.1.1 +RUN poetry config virtualenvs.in-project true # Install Leximpact prepare data WORKDIR /src/leximpact-prepare-data diff --git a/deploy/README.md b/deploy/README.md index 60ed7f94e5ff00fc66d79829742aa5861cf61306..9ad6bafd4e11eb077923138adce7f36577dc0756 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -21,7 +21,7 @@ cd .. Depuis la racine du projet `leximpact-prepare-data`: ```bash -docker build -t leximpact/prepare-data:0.0.1 -f deploy/Dockerfile-Debian11-Python39 . +docker build -t leximpact/prepare-data:0.0.1 -f deploy/Dockerfile-ci . ## Construction de l'image Il faut récupérer le projet Git : @@ -43,7 +43,7 @@ cd .. Depuis la racine du projet `leximpact-prepare-data`: ```bash -docker build -t leximpact-prepare-data -f deploy/Dockerfile-Debian11-Python39 . +docker build -t leximpact-prepare-data -f deploy/Dockerfile-ci . ``` ## Copier les fichiers de données @@ -68,7 +68,15 @@ docker run -v $PWD/data-in/:/mnt/data-in/ -v $PWD/data-out/:/mnt/data-out/ lexim ## Instancier l'image et obtenir un shell dans le conteneur -`docker run -it -v $PWD/data-in/:/mnt/data-in/ -v $PWD/data-out/:/mnt/data-out/ leximpact/prepare-data:0.0.1 bash` +```bash +docker run -it -v $PWD/data-in/:/mnt/data-in/ -v $PWD/data-out/:/mnt/data-out/ leximpact/prepare-data:latest bash +git fetch +git switch relance_data +git pull +make install +poetry run pre-commit clean +poetry run pre-commit run --all-files --show-diff-on-failure +``` ## Publication de l'image diff --git a/leximpact_prepare_data/pipeline_survey_scenario.py b/leximpact_prepare_data/pipeline_survey_scenario.py index 3e657cecca15ddf3f449dbacba92bba6a45fdaf7..55c258dc145c691117d8f669dd78ede17f7ba5c9 100644 --- a/leximpact_prepare_data/pipeline_survey_scenario.py +++ b/leximpact_prepare_data/pipeline_survey_scenario.py @@ -9,7 +9,7 @@ from openfisca_core.taxbenefitsystems import TaxBenefitSystem from openfisca_survey_manager.input_dataframe_generator import set_table_in_survey -from openfisca_survey_manager import default_config_files_directory +from openfisca_survey_manager.paths import default_config_files_directory from leximpact_prepare_data.scenario_tools.helpers_survey_scenario import get_copules diff --git a/leximpact_prepare_data/run_pipeline.py b/leximpact_prepare_data/run_pipeline.py index b374e86909279fec532e12b12aaa1be0493a5b31..cc7896de23d8226bde6c20ee18ca9aabcc1f06b0 100644 --- a/leximpact_prepare_data/run_pipeline.py +++ b/leximpact_prepare_data/run_pipeline.py @@ -5,6 +5,8 @@ from leximpact_prepare_data.pipeline_tax_and_benefit_system import pipeline_tbs import os import click +import pandas as pd +from openfisca_survey_manager.input_dataframe_generator import set_table_in_survey config = Configuration(project_folder="leximpact-prepare-data") aggregates_path = config.get("AGREGATS_PATH") @@ -18,7 +20,7 @@ @click.option( "-erfs", "--annee_erfs", - default=2019, + default=2021, help="ERFS-FPR year", show_default=True, type=int, @@ -29,7 +31,7 @@ @click.option( "-calcul", "--annee_de_calcul", - default=2022, + default=2025, help="POTE year", show_default=True, type=int, @@ -37,22 +39,56 @@ def run_pipeline(annee_erfs, annee_pote, annee_de_calcul): log.debug("Create FranceTaxBenefitSystem") - annee_pote = str(annee_pote) # Instanciation du scenario pipeline_survey_scenario = PipelineErfsSurveyScenario( config_files_directory=config_files_directory, annee_donnees=annee_erfs, - period=annee_de_calcul, + period=annee_pote, baseline_tax_benefit_system=pipeline_tbs, collection="openfisca_erfs_fpr", survey_name=f"openfisca_erfs_fpr_{annee_erfs}", ) - pipeline_survey_scenario.build_imputation(year=annee_pote) + pipeline_survey_scenario.build_imputation(year=str(annee_pote)) pipeline_survey_scenario.save_current_survey( variables=pipeline_survey_scenario.used_as_input_variables, collection="leximpact", - survey_name=f"leximpact_{annee_de_calcul}", + survey_name=f"leximpact_{annee_pote}", + period=annee_pote, + ) + + del pipeline_survey_scenario + + survey_scenario = PipelineErfsSurveyScenario( period=annee_de_calcul, + annee_donnees=annee_pote, + collection="leximpact", + survey_name=f"leximpact_{annee_pote}", + config_files_directory=config_files_directory, + baseline_tax_benefit_system=pipeline_tbs, ) + for year in [annee_de_calcul, annee_de_calcul - 1, annee_de_calcul - 2]: + variables = survey_scenario.used_as_input_variables + if year in [annee_de_calcul - 1, annee_de_calcul - 2]: + variables = variables + ["rfr"] + data_frame_by_entity = survey_scenario.simulations[ + "baseline" + ].create_data_frame_by_entity(variables=variables, period=year, index=True) + + collection = "leximpact" + survey_name = f"leximpact_{annee_de_calcul}" + for entity, input_dataframe in data_frame_by_entity.items(): + assert isinstance(input_dataframe, pd.DataFrame) + print( + f"set_table_in_survey of {entity} for {year} in {collection}.{survey_name}" + ) + set_table_in_survey( + input_dataframe, + entity, + period=year, + collection=collection, + survey_name=survey_name, + config_files_directory=survey_scenario.data["config_files_directory"], + source_format="parquet", + ) diff --git a/leximpact_prepare_data/scenario_tools/comparison.py b/leximpact_prepare_data/scenario_tools/comparison.py index cc580c3aacb1bea89c7201d92b0d21e615d0fa26..7efd1af4c15d33a862cd780d0fbcbfc143c5b008 100755 --- a/leximpact_prepare_data/scenario_tools/comparison.py +++ b/leximpact_prepare_data/scenario_tools/comparison.py @@ -18,7 +18,7 @@ from leximpact_aggregates.aggregate import AggregateManager from leximpact_common_python_libraries.config import Configuration -from openfisca_survey_manager import default_config_files_directory +from openfisca_survey_manager.paths import default_config_files_directory # from leximpact_socio_fisca_simu_etat.aggregates_read import Aggregate diff --git a/notebooks/analyse/test_cas_types_cotisations.ipynb b/notebooks/analyse/test_cas_types_cotisations.ipynb index 3a55caeaf561a2cbaf858059e8bc4cbdac6b93ca..210360eb6670fb32c57d5200eba15354330260b9 100644 --- a/notebooks/analyse/test_cas_types_cotisations.ipynb +++ b/notebooks/analyse/test_cas_types_cotisations.ipynb @@ -550,10 +550,10 @@ "metadata": {}, "outputs": [], "source": [ - "# cotisations non nulles\n", - "selection = copy.deepcopy(donnees_01)\n", - "donnees_check = selection.loc[:, selection.any()]\n", - "donnees_check.columns" + "# # cotisations non nulles\n", + "# selection = copy.deepcopy(donnees_01)\n", + "# donnees_check = selection.loc[:, selection.any()]\n", + "# donnees_check.columns" ] }, { @@ -562,7 +562,7 @@ "metadata": {}, "outputs": [], "source": [ - "dessiner_graphique(donnees=donnees_07, revenu=\"salaire_de_base\", affichage_en_taux=True)" + "# dessiner_graphique(donnees=donnees_07, revenu=\"salaire_de_base\", affichage_en_taux=True)" ] }, { @@ -571,12 +571,12 @@ "metadata": {}, "outputs": [], "source": [ - "comparer_donnees(\n", - " donnees_A=donnees_01,\n", - " donnees_B=donnees_02,\n", - " revenu=\"salaire_de_base\",\n", - " affichage_en_taux=False,\n", - ")" + "# comparer_donnees(\n", + "# donnees_A=donnees_01,\n", + "# donnees_B=donnees_02,\n", + "# revenu=\"salaire_de_base\",\n", + "# affichage_en_taux=False,\n", + "# )" ] }, { @@ -592,7 +592,7 @@ "metadata": {}, "outputs": [], "source": [ - "exporter(donnees_C)" + "# exporter(donnees_C)" ] }, { diff --git a/notebooks/analyse/test_cas_types_cotisations_boucle.ipynb b/notebooks/analyse/test_cas_types_cotisations_boucle.ipynb index 19a45d19c2d0bdbee25a6b2b95d61738213e749c..41939e53bc397558de1dd137f6937c5d5293a182 100644 --- a/notebooks/analyse/test_cas_types_cotisations_boucle.ipynb +++ b/notebooks/analyse/test_cas_types_cotisations_boucle.ipynb @@ -14,7 +14,6 @@ "import copy\n", "import plotly.graph_objects as go\n", "from datetime import datetime\n", - "import copy\n", "\n", "from openfisca_core.simulation_builder import SimulationBuilder\n", "from leximpact_survey_scenario.leximpact_tax_and_benefit_system import leximpact_tbs" @@ -555,9 +554,9 @@ "metadata": {}, "outputs": [], "source": [ - "dessiner_graphique(\n", - " donnees=donnees_03, revenu=\"traitement_indiciaire_brut\", affichage_en_taux=True\n", - ")" + "# dessiner_graphique(\n", + "# donnees=donnees_03, revenu=\"traitement_indiciaire_brut\", affichage_en_taux=True\n", + "# )" ] }, { @@ -2000,12 +1999,12 @@ } ], "source": [ - "comparer_donnees(\n", - " donnees_A=donnees_03,\n", - " donnees_B=donnees_05,\n", - " revenu=\"traitement_indiciaire_brut\",\n", - " affichage_en_taux=True,\n", - ")" + "# comparer_donnees(\n", + "# donnees_A=donnees_03,\n", + "# donnees_B=donnees_05,\n", + "# revenu=\"traitement_indiciaire_brut\",\n", + "# affichage_en_taux=True,\n", + "# )" ] }, { @@ -2021,7 +2020,7 @@ "metadata": {}, "outputs": [], "source": [ - "exporter(donnees_C)" + "# exporter(donnees_C)" ] }, { diff --git a/notebooks/analyses/graphiques_cas_type/cas_type_prestations_familiales.ipynb b/notebooks/analyses/graphiques_cas_type/cas_type_prestations_familiales.ipynb index 36302a72cad48f3b976d327bee3f333dd33f0a5c..4242fd32ef2df3ca3ece5a6674467644067f2e3c 100644 --- a/notebooks/analyses/graphiques_cas_type/cas_type_prestations_familiales.ipynb +++ b/notebooks/analyses/graphiques_cas_type/cas_type_prestations_familiales.ipynb @@ -9,26 +9,27 @@ "name": "stderr", "output_type": "stream", "text": [ + "revenus_capital has been updated in leximpact-survey-scenario\n", "iaidrdi has been updated in leximpact-survey-scenario\n", - "plus_values_prelevement_forfaitaire_unique_ir has been updated in leximpact-survey-scenario\n", "rfr_plus_values_hors_rni has been updated in leximpact-survey-scenario\n", + "assiette_csg_plus_values has been updated in leximpact-survey-scenario\n", "rpns_imposables has been updated in leximpact-survey-scenario\n", "rpns_autres_revenus has been updated in leximpact-survey-scenario\n", - "prelevement_forfaitaire_non_liberatoire has been updated in leximpact-survey-scenario\n", - "paje_naissance has been updated in leximpact-survey-scenario\n" + "paje_naissance has been updated in leximpact-survey-scenario\n", + "allegement_general_mode_recouvrement has been updated in leximpact-survey-scenario\n" ] }, { "ename": "ImportError", - "evalue": "cannot import name 'smic_annuel_brut_by_year' from 'openfisca_france_data.erfs_fpr.input_data_builder.step_03_variables_individuelles' (/home/cgl/leximpact/leximpact-survey-scenario/.venv/lib/python3.10/site-packages/openfisca_france_data/erfs_fpr/input_data_builder/step_03_variables_individuelles.py)", + "evalue": "cannot import name 'smic_annuel_brut_by_year' from 'openfisca_france_data.erfs_fpr.input_data_builder.step_03_variables_individuelles' (/home/cgl/leximpact/simulateur_socio_fiscal/budget/leximpact-prepare-data/.venv/lib/python3.11/site-packages/openfisca_france_data/erfs_fpr/input_data_builder/step_03_variables_individuelles.py)", "output_type": "error", "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[2], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mleximpact_survey_scenario\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgraphiques_cas_type\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdecomposition\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (decomposition_data, decompo_prestations_familiales)\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mplotly\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgraph_objects\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mgo\u001b[39;00m\n", - "File \u001b[0;32m~/leximpact/leximpact-survey-scenario/leximpact_survey_scenario/graphiques_cas_type/decomposition.py:3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mleximpact_survey_scenario\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mleximpact_tax_and_benefit_system\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m leximpact_tbs\n\u001b[0;32m----> 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mleximpact_survey_scenario\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgraphiques_cas_type\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcas_type_utils\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[1;32m 4\u001b[0m calculate,\n\u001b[1;32m 5\u001b[0m create_scenario_inferieur_smic,\n\u001b[1;32m 6\u001b[0m create_scenario_superieur_smic,\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# smic_annuel_brut_by_year,\u001b[39;00m\n\u001b[1;32m 8\u001b[0m )\n\u001b[1;32m 10\u001b[0m decompo_revenu_disponible \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 11\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrevenu_disponible\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 12\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mprestations_sociales\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcotisations_salariales\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 20\u001b[0m ]\n\u001b[1;32m 22\u001b[0m decompo_ir \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 23\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mirpp\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 24\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontribution_exceptionnelle_hauts_revenus\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrni\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 31\u001b[0m ]\n", - "File \u001b[0;32m~/leximpact/leximpact-survey-scenario/leximpact_survey_scenario/graphiques_cas_type/cas_type_utils.py:12\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mopenfisca_core\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m periods\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mopenfisca_core\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mrates\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m marginal_rate, average_rate\n\u001b[0;32m---> 12\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mopenfisca_france_data\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01merfs_fpr\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01minput_data_builder\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mstep_03_variables_individuelles\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[1;32m 13\u001b[0m smic_annuel_net_by_year,\n\u001b[1;32m 14\u001b[0m smic_annuel_brut_by_year,\n\u001b[1;32m 15\u001b[0m )\n\u001b[1;32m 16\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtaxipp\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutils\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgeneral_utils\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m to_percent_round_formatter\n\u001b[1;32m 17\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtaxipp\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutils\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtest_case\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m base\n", - "\u001b[0;31mImportError\u001b[0m: cannot import name 'smic_annuel_brut_by_year' from 'openfisca_france_data.erfs_fpr.input_data_builder.step_03_variables_individuelles' (/home/cgl/leximpact/leximpact-survey-scenario/.venv/lib/python3.10/site-packages/openfisca_france_data/erfs_fpr/input_data_builder/step_03_variables_individuelles.py)" + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mImportError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mleximpact_survey_scenario\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mgraphiques_cas_type\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mdecomposition\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[32m 2\u001b[39m decomposition_data,\n\u001b[32m 3\u001b[39m decompo_prestations_familiales,\n\u001b[32m 4\u001b[39m )\n\u001b[32m 7\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mplotly\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mgraph_objects\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mgo\u001b[39;00m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/leximpact/simulateur_socio_fiscal/budget/leximpact-prepare-data/.venv/lib/python3.11/site-packages/leximpact_survey_scenario/graphiques_cas_type/decomposition.py:3\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mleximpact_survey_scenario\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mleximpact_survey_scenario\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m leximpact_tbs\n\u001b[32m----> \u001b[39m\u001b[32m3\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mleximpact_survey_scenario\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mgraphiques_cas_type\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mcas_type_utils\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[32m 4\u001b[39m calculate,\n\u001b[32m 5\u001b[39m create_scenario_inferieur_smic,\n\u001b[32m 6\u001b[39m create_scenario_superieur_smic,\n\u001b[32m 7\u001b[39m \u001b[38;5;66;03m# smic_annuel_brut_by_year,\u001b[39;00m\n\u001b[32m 8\u001b[39m )\n\u001b[32m 10\u001b[39m decompo_revenu_disponible = [\n\u001b[32m 11\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mrevenu_disponible\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 12\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mprestations_sociales\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 19\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mcotisations_salariales\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 20\u001b[39m ]\n\u001b[32m 22\u001b[39m decompo_ir = [\n\u001b[32m 23\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mirpp\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 24\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mcontribution_exceptionnelle_hauts_revenus\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 30\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mrni\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 31\u001b[39m ]\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/leximpact/simulateur_socio_fiscal/budget/leximpact-prepare-data/.venv/lib/python3.11/site-packages/leximpact_survey_scenario/graphiques_cas_type/cas_type_utils.py:12\u001b[39m\n\u001b[32m 10\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mopenfisca_core\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m periods\n\u001b[32m 11\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mopenfisca_core\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mrates\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m marginal_rate, average_rate\n\u001b[32m---> \u001b[39m\u001b[32m12\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mopenfisca_france_data\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01merfs_fpr\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01minput_data_builder\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mstep_03_variables_individuelles\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[32m 13\u001b[39m smic_annuel_net_by_year,\n\u001b[32m 14\u001b[39m smic_annuel_brut_by_year,\n\u001b[32m 15\u001b[39m )\n\u001b[32m 16\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mtaxipp\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mutils\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mgeneral_utils\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m to_percent_round_formatter\n\u001b[32m 17\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mtaxipp\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mutils\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mtest_case\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m base\n", + "\u001b[31mImportError\u001b[39m: cannot import name 'smic_annuel_brut_by_year' from 'openfisca_france_data.erfs_fpr.input_data_builder.step_03_variables_individuelles' (/home/cgl/leximpact/simulateur_socio_fiscal/budget/leximpact-prepare-data/.venv/lib/python3.11/site-packages/openfisca_france_data/erfs_fpr/input_data_builder/step_03_variables_individuelles.py)" ] } ], @@ -49,12 +50,13 @@ "outputs": [], "source": [ "year = 2023\n", - "smic = (\n", - " tax_and_benefit_system.parameters(\n", - " year\n", - " ).marche_travail.salaire_minimum.smic.smic_b_mensuel\n", - " * 12\n", - ")" + "smic = 12\n", + "# smic = (\n", + "# tax_and_benefit_system.parameters(\n", + "# year\n", + "# ).marche_travail.salaire_minimum.smic.smic_b_mensuel\n", + "# * 12\n", + "# )" ] }, { @@ -96818,7 +96820,7 @@ "\n", "# fig_paje.show()\n", "# fig_ars.show()\n", - "fig_af.show()\n", + "# fig_af.show()\n", "# fig_cf.show()" ] }, @@ -118951,9 +118953,9 @@ ], "metadata": { "kernelspec": { - "display_name": "leximpact-survey-scenario-kernel", + "display_name": "python3", "language": "python", - "name": "leximpact-survey-scenario-kernel" + "name": "python3" } }, "nbformat": 4, diff --git a/notebooks/code_CASD/extractions_base_des_impots/00_generate_fake_data.ipynb b/notebooks/code_CASD/extractions_base_des_impots/00_generate_fake_data.ipynb deleted file mode 100644 index ca58c33ae2fe25b31078942a72ba12cd425a2398..0000000000000000000000000000000000000000 --- a/notebooks/code_CASD/extractions_base_des_impots/00_generate_fake_data.ipynb +++ /dev/null @@ -1,968 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "western-orientation", - "metadata": {}, - "source": [ - "# Generate a fake POTE input file\n", - "\n", - "The goal is to be able to test CASD script locally.\n", - "\n", - "Objectif : nous voulons des revenus entre 0 et 300 millions avec beaucoup de personnes vers 0 et un petit peut vers le million.\n", - "\n", - "La distribution de Pareto peut nous donner cela.\n", - "\n", - "TODO:\n", - "- Actuellement tous les revenus sont indépendants, il faudrait plutôt tout calculer à partir du RFR (avec un random)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "downtown-player", - "metadata": {}, - "outputs": [], - "source": [ - "from leximpact_common_python_libraries.config import Configuration" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "72ee9624", - "metadata": {}, - "outputs": [], - "source": [ - "config = Configuration(project_folder=\"leximpact-prepare-data\")\n", - "OUT_PATH = config.get(\"FAKE_DATA\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "mental-composition", - "metadata": {}, - "outputs": [], - "source": [ - "# Activate multi-output in notebook\n", - "from IPython.core.interactiveshell import InteractiveShell\n", - "\n", - "InteractiveShell.ast_node_interactivity = \"all\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "enhanced-shopping", - "metadata": {}, - "outputs": [], - "source": [ - "# import numpy\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "import vaex\n", - "import seaborn as sns" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "hungarian-freeze", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Python 3.10.12\n" - ] - } - ], - "source": [ - "!python --version" - ] - }, - { - "cell_type": "markdown", - "id": "inside-complex", - "metadata": {}, - "source": [ - "## Utilisation de Pareto généralisé\n", - "Voir la doc de scipy : https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.genpareto.html" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "unlike-harmony", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mean=array(1.11111111) var=array(1.54320988) skew=array(2.81105689) kurt=array(14.82857143)\n", - "x.shape=(100,)\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAydUlEQVR4nO3de3hU5bn+8XtymIQAGQ6BHCAQUASRQ2gwMVKr3USDtbRWuzdFd0GKWBWLmHqiSqJIjVpBPFBTUVD7E6F2V+suFmujYFWUAtKNiigIBoGcQJIQYJLMrN8fKSMJM5MMmVlrkvl+rmsuyXrXmnkyJszN875rLZthGIYAAAAsEmV1AQAAILIRRgAAgKUIIwAAwFKEEQAAYCnCCAAAsBRhBAAAWIowAgAALEUYAQAAloqxuoD2cLvd2r9/v3r27CmbzWZ1OQAAoB0Mw1BdXZ3S0tIUFeW7/9Epwsj+/fuVnp5udRkAAOA07N27VwMHDvQ53inCSM+ePSU1fzOJiYkWVwMAANqjtrZW6enpns9xXzpFGDkxNZOYmEgYAQCgk2lriQULWAEAgKUIIwAAwFKEEQAAYCnCCAAAsBRhBAAAWIowAgAALBVwGHn77bc1efJkpaWlyWaz6ZVXXmnzmHXr1ulb3/qW4uLidOaZZ+rZZ589jVIBAEBXFHAYqa+v19ixY7V06dJ27b97925ddtll+u53v6utW7dq7ty5uvbaa/X6668HXCwAAOh6Ar7o2aWXXqpLL7203fuXlJRoyJAhWrRokSTp7LPP1jvvvKNHHnlE+fn5gb48AADoYkK+ZmTDhg3Ky8trsS0/P18bNmzweYzT6VRtbW2LBwAACK2MjAwtWbLE83V5ebkuvvhide/eXb169QrZ64Y8jJSXlys5ObnFtuTkZNXW1urYsWNejykuLpbD4fA8gnqTPMOQjh+XDh+WKiqkL7+UduyQ/vUvafv24L0OAAAB2LNnj2w2m7Zu3Wp1KR6PPPKIDhw4oK1bt+qzzz4L2euE5b1p5s2bp4KCAs/XJ260ExTl5dI993gfGzxYOvvs4LwOAAD/1tjYqNjYWKvLCNiuXbuUlZWlYcOGhfR1Qh5GUlJSVFFR0WJbRUWFEhMT1a1bN6/HxMXFKS4uLjQFxcf7Hjt+PDSvCQDhas4cyeWytoboaOmxx/zuUldXp+uvv16vvPKKEhMTdfvtt+vPf/6zMjMzPdMKTqdTd911l1588UUdPnxYo0aN0oMPPqiLLrpIkvTss89q7ty5Wr16tebOnau9e/fq29/+tlasWKHU1FRJ0jXXXKPDhw9r3LhxeuKJJ+R0OnXVVVfpsccek91ulyStXbtWCxcu1EcffaTo6Gjl5ubq0Ucf1RlnnCGpucMxZMgQrVq1Sr/97W/1wQcfqKSkRNdcc42efvppLVq0SLt371ZGRobmzJmjG2+8UZI0ZMgQSdK4ceMkSRdeeKHWrVsnt9uthQsX6qmnnlJVVZXOPvtsPfDAA5o0aZLP9+uiiy7SqFGjJEm///3vFRsbqxtuuEELFizw3LSusrJSM2fO1N///nelpKRo4cKFLZ4jIyNDX375pSTp+eef1/Tp00N2NmzIw0hubq5ee+21FtveeOMN5ebmhvqlvfMXcpxO8+oAgHDgcklNTVZX0aaCggK9++67evXVV5WcnKzCwkJt2bJFmZmZnn1uuukmffLJJ1q1apXS0tL08ssva9KkSdq2bZvnX/ZHjx7Vww8/rN///veKiorSf//3f+vWW2/VCy+84Hme0tJSxcfHa926ddqzZ49mzJihvn376te//rWk5rNKCwoKNGbMGB05ckSFhYX60Y9+pK1btyoq6pvVD3feeacWLVqkcePGKT4+Xi+88IIKCwv1xBNPaNy4cfrwww81a9Ysde/eXdOnT9fGjRuVnZ2tv//97zrnnHM84efRRx/VokWL9Lvf/U7jxo3T8uXL9YMf/EAff/yx347Fc889p5kzZ2rjxo3atGmTrrvuOg0aNEizZs2S1By89u/fr7feekuxsbGaM2eOKisrPcf/85//1LRp05SYmKhHH33UZwMhGAIOI0eOHNHOnTs9X+/evVtbt25Vnz59NGjQIM2bN0/79u3T888/L0m6/vrr9cQTT+j222/Xz372M7355pv6wx/+oDVr1gTvuwgEnREA6FTq6ur03HPPaeXKlZo4caIkacWKFUpLS/PsU1ZWphUrVqisrMyz/dZbb9XatWu1YsUK3X///ZKap0tKSko8XYybbrpJCxYsaPF6drtdy5cvV0JCgs455xwtWLBAt912m+677z5FRUXpyiuvbLH/8uXL1a9fP33yySeeboQkzZ07V1dccYXn66KiIi1atMizbciQIfrkk0/0u9/9TtOnT1e/fv0kSX379lVKSornuIcfflh33HGHfvKTn0iSHnzwQb311ltasmSJ38tspKen65FHHpHNZtPw4cO1bds2PfLII5o1a5Y+++wz/fWvf9XGjRt17rnnSpKeeeYZnX3SUoV+/fopLi5O3bp1a1FPKAS8gHXTpk0aN26cp41UUFCgcePGqbCwUJJ04MABlZWVefYfMmSI1qxZozfeeENjx47VokWL9PTTT1t3Wm9UlORr3s7pbF7gCgAIG1988YUaGxuVnZ3t2eZwODR8+HDP19u2bZPL5dJZZ52lHj16eB7r16/Xrl27PPslJCR4gogkpaamtugGSNLYsWOVkJDg+To3N1dHjhzR3r17JUmff/65pk6dqqFDhyoxMVEZGRmS1OKzT5LGjx/v+XN9fb127dqlmTNntqhv4cKFLeprrba2Vvv379eECRNabJ8wYYK2t3HSxXnnneeZkjnxfXz++edyuVzavn27YmJilJWV5RkfMWJESM+Y8SfgzshFF10kw88Htrf5pIsuukgffvhhoC8VOvHxUmPjqdsNQ2po8D+VAwAIO0eOHFF0dLQ2b96s6OjoFmM9evTw/Ln1IlKbzeb3M82byZMna/DgwVq2bJnS0tLkdrs1atQoNTQ0tNive/fuLeqTpGXLliknJ6fFfq3rjUSReW8apmoAoNMYOnSoYmNj9c9//tOzraampsWppuPGjZPL5VJlZaXOPPPMFo9Apxj+9a9/tbj0xPvvv68ePXooPT1dBw8e1I4dO3T33Xdr4sSJOvvss/X111+3+ZzJyclKS0vTF198cUp9Jxaunlgj4jppQXFiYqLS0tL07rvvtni+d999VyNHjvT7mh988EGLr99//30NGzZM0dHRGjFihJqamrR582bP+I4dO3T48OE2v5dQCMtTe0OurTDicJhXCwBYKRz+Vd5GDT179tT06dN12223qU+fPurfv7+KiooUFRXlmYY466yzdPXVV2vatGmeRaNVVVUqLS3VmDFjdNlll7W7nIaGBs2cOVN333239uzZo6KiIt10002KiopS79691bdvXz311FNKTU1VWVmZ7rzzznY977333qs5c+bI4XBo0qRJcjqd2rRpk77++msVFBSof//+6tatm9auXauBAwcqPj5eDodDt912m4qKinTGGWcoMzNTK1as0NatW1ssuvWmrKxMBQUF+vnPf64tW7bo8ccf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fKkaBg+RbGFwMd+ePa2uAABwGgL+BFm9erUKCgpUVFSkLVu2aOzYscrPz1dlZaXX/d977z1NnTpVM2fO1IcffqjLL79cl19+uT766KMOFw8L2WxqTBuouon5qr7hZh0oul+Hpl+rIxd8V40DB1kTTggjANApBXw2TU5Ojs4991w98cQTkiS326309HT94he/0J133nnK/lOmTFF9fb3+8pe/eLadd955yszMVElJSbtek7NpOh9bQ4Ni9+1V7Fd7Zf+qTLH79irmYHXI7gZs2O06sOChoD8v10cBgNMXkrNpGhoatHnzZs2bN8+zLSoqSnl5edqwYYPXYzZs2KCCgoIW2/Lz8/XKK6/4fB2n0ymn0+n5uqamOTDU1tYGUm67HKkL/nPi35L6NT8yvyVJsjU0KqaqXDGVFYqpqlRMVZViqysV/fXXktwdeilX9x4h+X9ZW9vxOxYDQKQ68bndVt8joDBSXV0tl8ul5OTkFtuTk5P16aefej2mvLzc6/7l5eU+X6e4uFj33nvvKdvT09MDKReR5qknrK4AAOBFXV2dHA7fneawPJtm3rx5Lbopbrdbhw4dUt++fWXzce+T01FbW6v09HTt3bs36NM/8I/33jq899bi/bcO7735DMNQXV2d0tLS/O4XUBhJSkpSdHS0KioqWmyvqKhQSor328qnpKQEtL8kxcXFKS4ursW2Xr16BVJqQBITE/nBtAjvvXV4763F+28d3ntz+euInBDQKQ92u11ZWVkqLS31bHO73SotLVVubq7XY3Jzc1vsL0lvvPGGz/0BAEBkCXiapqCgQNOnT9f48eOVnZ2tJUuWqL6+XjNmzJAkTZs2TQMGDFBxcbEk6eabb9aFF16oRYsW6bLLLtOqVau0adMmPfXUU8H9TgAAQKcUcBiZMmWKqqqqVFhYqPLycmVmZmrt2rWeRaplZWWKivqm4XL++edr5cqVuvvuu/WrX/1Kw4YN0yuvvKJRo0YF77s4TXFxcSoqKjplSgihx3tvHd57a/H+W4f3Pnx1irv2AgCArisMruENAAAiGWEEAABYijACAAAsRRgBAACWiugwsnTpUmVkZCg+Pl45OTnauHGj1SV1effcc49sNluLx4gRI6wuq0t6++23NXnyZKWlpclms51yPyjDMFRYWKjU1FR169ZNeXl5+vzzz60ptotp672/5pprTvk9mDRpkjXFdjHFxcU699xz1bNnT/Xv31+XX365duzY0WKf48ePa/bs2erbt6969OihK6+88pSLc8JcERtGVq9erYKCAhUVFWnLli0aO3as8vPzVVlZaXVpXd4555yjAwcOeB7vvPOO1SV1SfX19Ro7dqyWLl3qdfyhhx7SY489ppKSEn3wwQfq3r278vPzdfz4cZMr7Xraeu8ladKkSS1+D1588UUTK+y61q9fr9mzZ+v999/XG2+8ocbGRl1yySWqr6/37HPLLbfof//3f/XSSy9p/fr12r9/v6644goLq4aMCJWdnW3Mnj3b87XL5TLS0tKM4uJiC6vq+oqKioyxY8daXUbEkWS8/PLLnq/dbreRkpJi/OY3v/FsO3z4sBEXF2e8+OKLFlTYdbV+7w3DMKZPn2788Ic/tKSeSFNZWWlIMtavX28YRvPPeWxsrPHSSy959tm+fbshydiwYYNVZUa8iOyMNDQ0aPPmzcrLy/Nsi4qKUl5enjZs2GBhZZHh888/V1pamoYOHaqrr75aZWVlVpcUcXbv3q3y8vIWvwMOh0M5OTn8Dphk3bp16t+/v4YPH64bbrhBBw8etLqkLqmmpkaS1KdPH0nS5s2b1djY2OJnf8SIERo0aBA/+xaKyDBSXV0tl8vluWrsCcnJySovL7eoqsiQk5OjZ599VmvXrtWTTz6p3bt364ILLlBdXZ3VpUWUEz/n/A5YY9KkSXr++edVWlqqBx98UOvXr9ell14ql8tldWlditvt1ty5czVhwgTPVb/Ly8tlt9tPufkqP/vWCvhy8EBHXHrppZ4/jxkzRjk5ORo8eLD+8Ic/aObMmRZWBpjnJz/5iefPo0eP1pgxY3TGGWdo3bp1mjhxooWVdS2zZ8/WRx99xLq0TiAiOyNJSUmKjo4+ZfV0RUWFUlJSLKoqMvXq1UtnnXWWdu7caXUpEeXEzzm/A+Fh6NChSkpK4vcgiG666Sb95S9/0VtvvaWBAwd6tqekpKihoUGHDx9usT8/+9aKyDBit9uVlZWl0tJSzza3263S0lLl5uZaWFnkOXLkiHbt2qXU1FSrS4koQ4YMUUpKSovfgdraWn3wwQf8Dljgq6++0sGDB/k9CALDMHTTTTfp5Zdf1ptvvqkhQ4a0GM/KylJsbGyLn/0dO3aorKyMn30LRew0TUFBgaZPn67x48crOztbS5YsUX19vWbMmGF1aV3arbfeqsmTJ2vw4MHav3+/ioqKFB0dralTp1pdWpdz5MiRFv/S3r17t7Zu3ao+ffpo0KBBmjt3rhYuXKhhw4ZpyJAhmj9/vtLS0nT55ZdbV3QX4e+979Onj+69915deeWVSklJ0a5du3T77bfrzDPPVH5+voVVdw2zZ8/WypUr9ec//1k9e/b0rANxOBzq1q2bHA6HZs6cqYKCAvXp00eJiYn6xS9+odzcXJ133nkWVx/BrD6dx0qPP/64MWjQIMNutxvZ2dnG+++/b3VJXd6UKVOM1NRUw263GwMGDDCmTJli7Ny50+qyuqS33nrLkHTKY/r06YZhNJ/eO3/+fCM5OdmIi4szJk6caOzYscPaorsIf+/90aNHjUsuucTo16+fERsbawwePNiYNWuWUV5ebnXZXYK3912SsWLFCs8+x44dM2688Uajd+/eRkJCgvGjH/3IOHDggHVFw7AZhmGYH4EAAACaReSaEQAAED4IIwAAwFKEEQAAYCnCCAAAsBRhBAAAWIowAgAALEUYAQAAliKMAAAASxFGAACApQgjAADAUoQRAABgKcIIAACw1P8HYuI0ZOCNBakAAAAASUVORK5CYII=", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from scipy.stats import genpareto\n", - "\n", - "c = 0.1\n", - "\n", - "mean, var, skew, kurt = genpareto.stats(c, moments=\"mvsk\")\n", - "\n", - "print(f\"{mean=} {var=} {skew=} {kurt=}\")\n", - "\n", - "x = np.linspace(genpareto.ppf(0.01, c), genpareto.ppf(0.99, c), 100)\n", - "print(f\"{x.shape=}\")\n", - "\n", - "fig, ax = plt.subplots(1, 1)\n", - "_ = ax.plot(x, genpareto.pdf(x, c), \"r-\", lw=5, alpha=0.6, label=\"genpareto pdf\")\n", - "\n", - "r = genpareto.rvs(c, size=100_000)\n", - "_ = ax.hist(r, density=True, histtype=\"stepfilled\", alpha=0.2)\n", - "_ = ax.legend(loc=\"best\", frameon=False)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "incomplete-olympus", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1092.9815492159842]" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sorted(r * 10e6)[10:2:-10]" - ] - }, - { - "cell_type": "markdown", - "id": "legal-powell", - "metadata": {}, - "source": [ - "## Exemple de distribution" - ] - }, - { - "cell_type": "markdown", - "id": "wireless-function", - "metadata": {}, - "source": [ - "Par exemple, ici on demande :\n", - "- Un coefficient c (de Pareto ?) de 0.5, plus il se rapproche de 1, plus la \"cassure\" entre haut et bas revenus est forte\n", - "- size=100 personnes\n", - "- scale=100 l'amplitude de revenu : le revenu maximum dépendra de ce paramètre et du coéfficient c. Avec c=0.5 et scale=1 000, le revenu maximum est de 17 000.\n", - "- loc=0 le revenu minimum." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "incorrect-valuation", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAGdCAYAAADey0OaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAgm0lEQVR4nO3de1DVdf7H8ReoXLwAinGABEUzLW95SSK7TTKh65Suzmatu5m52gUrszVlN/VnW0HaqpNrWo23povlTNqWZmN46SJqklamkZq3TcHK4HhJRHn//nA4dYQsFIIP5/mYOTPw/X7Ol8/59BWefc85EGRmJgAAgFouuKYnAAAA8FsQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcUL+mJ3C20tJSHThwQE2aNFFQUFBNTwcAAPwGZqYjR44oPj5ewcHVc02k1kXLgQMHlJCQUNPTAAAA52H//v1q0aJFtRy71kVLkyZNJJ150BERETU8GwAA8Ft4vV4lJCT4fo5Xh1oXLWVPCUVERBAtAAA4pjpf2sELcQEAgBOIFgAA4ASiBQAAOIFoAQAATiBaAACAE4gWAADgBKIFAAA4gWgBAABOIFoAAIATiBYAAOAEogUAADiBaAEAAE4gWgAAgBOIFgAA4IT6NT2B31ur8ctqegq4QHuy+tX0FAAANYArLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHBCpaLl9OnTmjBhgpKSkhQeHq42bdroX//6l8zMN8bMNHHiRMXFxSk8PFypqanasWNHlU8cAAAElkpFy1NPPaXZs2frP//5j7Zv366nnnpKU6ZM0cyZM31jpkyZomeeeUZz5szRhg0b1KhRI6WlpenEiRNVPnkAABA46ldm8Lp169S/f3/169dPktSqVSu9+uqr2rhxo6QzV1lmzJihRx99VP3795ckvfjii/J4PFq6dKluu+22Kp4+AAAIFJW60nL11VcrOztbX331lSTp008/1Ycffqi+fftKknbv3q38/Hylpqb67hMZGank5GTl5ORUeMzi4mJ5vV6/GwAAwNkqdaVl/Pjx8nq9at++verVq6fTp0/riSee0JAhQyRJ+fn5kiSPx+N3P4/H49t3tszMTE2ePPl85g4AAAJIpa60vP7663r55Zf1yiuv6JNPPtHChQv19NNPa+HChec9gYyMDBUVFflu+/fvP+9jAQCAuqtSV1rGjh2r8ePH+16b0qlTJ+3du1eZmZkaOnSoYmNjJUkFBQWKi4vz3a+goEBXXHFFhccMDQ1VaGjoeU4fAAAEikpdaTl+/LiCg/3vUq9ePZWWlkqSkpKSFBsbq+zsbN9+r9erDRs2KCUlpQqmCwAAAlWlrrTcfPPNeuKJJ5SYmKgOHTpo8+bNmjZtmu666y5JUlBQkEaPHq3HH39cbdu2VVJSkiZMmKD4+HgNGDCgOuYPAAACRKWiZebMmZowYYLuu+8+HTp0SPHx8br77rs1ceJE35hHHnlEx44d08iRI1VYWKhrrrlGK1asUFhYWJVPHgAABI4g+/mvs60FvF6vIiMjVVRUpIiIiCo/fqvxy6r8mPh97cnqV9NTAACcpbp/fkv87SEAAOAIogUAADiBaAEAAE4gWgAAgBOIFgAA4ASiBQAAOIFoAQAATiBaAACAE4gWAADgBKIFAAA4gWgBAABOIFoAAIATiBYAAOAEogUAADiBaAEAAE4gWgAAgBOIFgAA4ASiBQAAOIFoAQAATiBaAACAE4gWAADgBKIFAAA4gWgBAABOIFoAAIATiBYAAOAEogUAADiBaAEAAE4gWgAAgBOIFgAA4ASiBQAAOIFoAQAATiBaAACAE4gWAADgBKIFAAA4gWgBAABOIFoAAIATiBYAAOAEogUAADiBaAEAAE4gWgAAgBOIFgAA4ASiBQAAOIFoAQAATiBaAACAE4gWAADgBKIFAAA4gWgBAABOIFoAAIATiBYAAOAEogUAADiBaAEAAE4gWgAAgBOIFgAA4ASiBQAAOIFoAQAATiBaAACAE4gWAADgBKIFAAA4gWgBAABOIFoAAIATiBYAAOAEogUAADiBaAEAAE4gWgAAgBOIFgAA4ASiBQAAOIFoAQAATqh0tHzzzTf6y1/+oujoaIWHh6tTp07atGmTb7+ZaeLEiYqLi1N4eLhSU1O1Y8eOKp00AAAIPJWKlh9++EG9evVSgwYN9M4772jbtm3697//raZNm/rGTJkyRc8884zmzJmjDRs2qFGjRkpLS9OJEyeqfPIAACBw1K/M4KeeekoJCQmaP3++b1tSUpLvYzPTjBkz9Oijj6p///6SpBdffFEej0dLly7VbbfdVkXTBgAAgaZSV1r++9//qkePHvrTn/6kmJgYde3aVS+88IJv/+7du5Wfn6/U1FTftsjISCUnJysnJ6fqZg0AAAJOpaLl66+/1uzZs9W2bVu9++67uvfee/XAAw9o4cKFkqT8/HxJksfj8bufx+Px7TtbcXGxvF6v3w0AAOBslXp6qLS0VD169NCTTz4pSeratau2bt2qOXPmaOjQoec1gczMTE2ePPm87gsAAAJHpa60xMXF6fLLL/fbdtlll2nfvn2SpNjYWElSQUGB35iCggLfvrNlZGSoqKjId9u/f39lpgQAAAJEpaKlV69eysvL89v21VdfqWXLlpLOvCg3NjZW2dnZvv1er1cbNmxQSkpKhccMDQ1VRESE3w0AAOBslXp66KGHHtLVV1+tJ598Urfeeqs2btyo559/Xs8//7wkKSgoSKNHj9bjjz+utm3bKikpSRMmTFB8fLwGDBhQHfMHAAABolLRcuWVV2rJkiXKyMjQY489pqSkJM2YMUNDhgzxjXnkkUd07NgxjRw5UoWFhbrmmmu0YsUKhYWFVfnkAQBA4AgyM6vpSfyc1+tVZGSkioqKquWpolbjl1X5MfH72pPVr6anAAA4S3X//Jb420MAAMARRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJ1xQtGRlZSkoKEijR4/2bTtx4oTS09MVHR2txo0ba9CgQSooKLjQeQIAgAB33tHy8ccf67nnnlPnzp39tj/00EN66623tHjxYq1du1YHDhzQwIEDL3iiAAAgsJ1XtBw9elRDhgzRCy+8oKZNm/q2FxUVae7cuZo2bZpuvPFGde/eXfPnz9e6deu0fv36Kps0AAAIPOcVLenp6erXr59SU1P9tufm5qqkpMRve/v27ZWYmKicnJwKj1VcXCyv1+t3AwAAOFv9yt5h0aJF+uSTT/Txxx+X25efn6+QkBBFRUX5bfd4PMrPz6/weJmZmZo8eXJlpwEAAAJMpa607N+/Xw8++KBefvllhYWFVckEMjIyVFRU5Lvt37+/So4LAADqlkpFS25urg4dOqRu3bqpfv36ql+/vtauXatnnnlG9evXl8fj0cmTJ1VYWOh3v4KCAsXGxlZ4zNDQUEVERPjdAAAAzlapp4d69+6tzz//3G/bsGHD1L59e40bN04JCQlq0KCBsrOzNWjQIElSXl6e9u3bp5SUlKqbNQAACDiVipYmTZqoY8eOftsaNWqk6Oho3/bhw4drzJgxatasmSIiInT//fcrJSVFV111VdXNGgAABJxKvxD310yfPl3BwcEaNGiQiouLlZaWpmeffbaqvwwAAAgwQWZmNT2Jn/N6vYqMjFRRUVG1vL6l1fhlVX5M/L72ZPWr6SkAAM5S3T+/Jf72EAAAcATRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnVCpaMjMzdeWVV6pJkyaKiYnRgAEDlJeX5zfmxIkTSk9PV3R0tBo3bqxBgwapoKCgSicNAAACT6WiZe3atUpPT9f69eu1cuVKlZSU6KabbtKxY8d8Yx566CG99dZbWrx4sdauXasDBw5o4MCBVT5xAAAQWOpXZvCKFSv8Pl+wYIFiYmKUm5ur6667TkVFRZo7d65eeeUV3XjjjZKk+fPn67LLLtP69et11VVXVd3MAQBAQLmg17QUFRVJkpo1ayZJys3NVUlJiVJTU31j2rdvr8TEROXk5FR4jOLiYnm9Xr8bAADA2c47WkpLSzV69Gj16tVLHTt2lCTl5+crJCREUVFRfmM9Ho/y8/MrPE5mZqYiIyN9t4SEhPOdEgAAqMPOO1rS09O1detWLVq06IImkJGRoaKiIt9t//79F3Q8AABQN1XqNS1lRo0apbffflvvv/++WrRo4dseGxurkydPqrCw0O9qS0FBgWJjYys8VmhoqEJDQ89nGgAAIIBU6kqLmWnUqFFasmSJVq1apaSkJL/93bt3V4MGDZSdne3blpeXp3379iklJaVqZgwAAAJSpa60pKen65VXXtGbb76pJk2a+F6nEhkZqfDwcEVGRmr48OEaM2aMmjVrpoiICN1///1KSUnhnUMAAOCCVCpaZs+eLUm64YYb/LbPnz9fd955pyRp+vTpCg4O1qBBg1RcXKy0tDQ9++yzVTJZAAAQuCoVLWb2q2PCwsI0a9YszZo167wnBQAAcDb+9hAAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACfVregJAZbUav6ymp4ALsCerX01PAYCjuNICAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACcQLQAAwAlECwAAcALRAgAAnEC0AAAAJxAtAADACUQLAABwAtECAACcQLQAAAAnEC0AAMAJRAsAAHAC0QIAAJxAtAAAACfUr+kJAAgsrcYvq+kp4ALtyepX01NAgOJKCwAAcALRAgAAnEC0AAAAJ1Tba1pmzZqlqVOnKj8/X126dNHMmTPVs2fP6vpyAIDfCa9Lcp+rr0uqlistr732msaMGaNJkybpk08+UZcuXZSWlqZDhw5Vx5cDAAABoFqiZdq0aRoxYoSGDRumyy+/XHPmzFHDhg01b9686vhyAAAgAFT500MnT55Ubm6uMjIyfNuCg4OVmpqqnJyccuOLi4tVXFzs+7yoqEiS5PV6q3pqkqTS4uPVclwAAFxRHT9jy45pZlV+7DJVHi3fffedTp8+LY/H47fd4/Hoyy+/LDc+MzNTkydPLrc9ISGhqqcGAAAkRc6ovmMfOXJEkZGR1XLsGv/lchkZGRozZozv89LSUh0+fFjR0dEKCgqq0q/l9XqVkJCg/fv3KyIiokqP7RLW4SesxRmsw09YizNYh5+wFmf82jqYmY4cOaL4+Phqm0OVR0vz5s1Vr149FRQU+G0vKChQbGxsufGhoaEKDQ312xYVFVXV0/ITERER0CdeGdbhJ6zFGazDT1iLM1iHn7AWZ5xrHarrCkuZKn8hbkhIiLp3767s7GzfttLSUmVnZyslJaWqvxwAAAgQ1fL00JgxYzR06FD16NFDPXv21IwZM3Ts2DENGzasOr4cAAAIANUSLYMHD9a3336riRMnKj8/X1dccYVWrFhR7sW5v7fQ0FBNmjSp3NNRgYZ1+AlrcQbr8BPW4gzW4SesxRm1YR2CrDrfmwQAAFBF+NtDAADACUQLAABwAtECAACcQLQAAAAnBEy0zJo1S61atVJYWJiSk5O1cePGmp7SBcnMzNSVV16pJk2aKCYmRgMGDFBeXp7fmBtuuEFBQUF+t3vuucdvzL59+9SvXz81bNhQMTExGjt2rE6dOuU3Zs2aNerWrZtCQ0N1ySWXaMGCBdX98H6z//u//yv3GNu3b+/bf+LECaWnpys6OlqNGzfWoEGDyv3iQ9fXoEyrVq3KrUVQUJDS09Ml1e3z4f3339fNN9+s+Ph4BQUFaenSpX77zUwTJ05UXFycwsPDlZqaqh07dviNOXz4sIYMGaKIiAhFRUVp+PDhOnr0qN+Yzz77TNdee63CwsKUkJCgKVOmlJvL4sWL1b59e4WFhalTp05avnx5lT/eX3KudSgpKdG4cePUqVMnNWrUSPHx8brjjjt04MABv2NUdB5lZWX5jant6yD9+jlx5513lnucffr08RtT188JSRV+zwgKCtLUqVN9Y2rVOWEBYNGiRRYSEmLz5s2zL774wkaMGGFRUVFWUFBQ01M7b2lpaTZ//nzbunWrbdmyxf7whz9YYmKiHT161Dfm+uuvtxEjRtjBgwd9t6KiIt/+U6dOWceOHS01NdU2b95sy5cvt+bNm1tGRoZvzNdff20NGza0MWPG2LZt22zmzJlWr149W7Fixe/6eH/JpEmTrEOHDn6P8dtvv/Xtv+eeeywhIcGys7Nt06ZNdtVVV9nVV1/t218X1qDMoUOH/NZh5cqVJslWr15tZnX7fFi+fLn985//tDfeeMMk2ZIlS/z2Z2VlWWRkpC1dutQ+/fRTu+WWWywpKcl+/PFH35g+ffpYly5dbP369fbBBx/YJZdcYrfffrtvf1FRkXk8HhsyZIht3brVXn31VQsPD7fnnnvON+ajjz6yevXq2ZQpU2zbtm326KOPWoMGDezzzz+v9jUwO/c6FBYWWmpqqr322mv25ZdfWk5OjvXs2dO6d+/ud4yWLVvaY4895nee/Pz7igvrYPbr58TQoUOtT58+fo/z8OHDfmPq+jlhZn6P/+DBgzZv3jwLCgqyXbt2+cbUpnMiIKKlZ8+elp6e7vv89OnTFh8fb5mZmTU4q6p16NAhk2Rr1671bbv++uvtwQcf/MX7LF++3IKDgy0/P9+3bfbs2RYREWHFxcVmZvbII49Yhw4d/O43ePBgS0tLq9oHcJ4mTZpkXbp0qXBfYWGhNWjQwBYvXuzbtn37dpNkOTk5ZlY31uCXPPjgg9amTRsrLS01s8A4H8ys3Dfm0tJSi42NtalTp/q2FRYWWmhoqL366qtmZrZt2zaTZB9//LFvzDvvvGNBQUH2zTffmJnZs88+a02bNvWthZnZuHHjrF27dr7Pb731VuvXr5/ffJKTk+3uu++u0sf4W1T0A+psGzduNEm2d+9e37aWLVva9OnTf/E+rq2DWcVrMXToUOvfv/8v3idQz4n+/fvbjTfe6LetNp0Tdf7poZMnTyo3N1epqam+bcHBwUpNTVVOTk4NzqxqFRUVSZKaNWvmt/3ll19W8+bN1bFjR2VkZOj48eO+fTk5OerUqZPfL/1LS0uT1+vVF1984Rvz87UrG1Ob1m7Hjh2Kj49X69atNWTIEO3bt0+SlJubq5KSEr/5t2/fXomJib7515U1ONvJkyf10ksv6a677vL7w6OBcD6cbffu3crPz/ebd2RkpJKTk/3Og6ioKPXo0cM3JjU1VcHBwdqwYYNvzHXXXaeQkBDfmLS0NOXl5emHH37wjXFpfYqKihQUFFTu771lZWUpOjpaXbt21dSpU/2eIqxL67BmzRrFxMSoXbt2uvfee/X999/79gXiOVFQUKBly5Zp+PDh5fbVlnOixv/Kc3X77rvvdPr06XK/jdfj8ejLL7+soVlVrdLSUo0ePVq9evVSx44dfdv//Oc/q2XLloqPj9dnn32mcePGKS8vT2+88YYkKT8/v8J1Kdt3rjFer1c//vijwsPDq/Oh/ark5GQtWLBA7dq108GDBzV58mRde+212rp1q/Lz8xUSElLuG7LH4/nVx1e271xjassaVGTp0qUqLCzUnXfe6dsWCOdDRcrmXtG8f/64YmJi/PbXr19fzZo18xuTlJRU7hhl+5o2bfqL61N2jNrkxIkTGjdunG6//Xa/P373wAMPqFu3bmrWrJnWrVunjIwMHTx4UNOmTZNUd9ahT58+GjhwoJKSkrRr1y794x//UN++fZWTk6N69eoF5DmxcOFCNWnSRAMHDvTbXpvOiTofLYEgPT1dW7du1Ycffui3feTIkb6PO3XqpLi4OPXu3Vu7du1SmzZtfu9pVou+ffv6Pu7cubOSk5PVsmVLvf7667XyB+jvZe7cuerbt6/fn4gPhPMBv01JSYluvfVWmZlmz57tt2/MmDG+jzt37qyQkBDdfffdyszMrFO/xv62227zfdypUyd17txZbdq00Zo1a9S7d+8anFnNmTdvnoYMGaKwsDC/7bXpnKjzTw81b95c9erVK/eOkYKCAsXGxtbQrKrOqFGj9Pbbb2v16tVq0aLFOccmJydLknbu3ClJio2NrXBdyvada0xEREStjIKoqChdeuml2rlzp2JjY3Xy5EkVFhb6jfn5f/u6uAZ79+7Ve++9p7/97W/nHBcI54P009zP9T0gNjZWhw4d8tt/6tQpHT58uErOldr0vaYsWPbu3auVK1f6XWWpSHJysk6dOqU9e/ZIqjvrcLbWrVurefPmfv8eAuWckKQPPvhAeXl5v/p9Q6rZc6LOR0tISIi6d++u7Oxs37bS0lJlZ2crJSWlBmd2YcxMo0aN0pIlS7Rq1apyl+YqsmXLFklSXFycJCklJUWff/653z/Msm9il19+uW/Mz9eubExtXbujR49q165diouLU/fu3dWgQQO/+efl5Wnfvn2++dfFNZg/f75iYmLUr1+/c44LhPNBkpKSkhQbG+s3b6/Xqw0bNvidB4WFhcrNzfWNWbVqlUpLS31xl5KSovfff18lJSW+MStXrlS7du3UtGlT35javD5lwbJjxw699957io6O/tX7bNmyRcHBwb6nSurCOlTkf//7n77//nu/fw+BcE6UmTt3rrp3764uXbr86tgaPScq9bJdRy1atMhCQ0NtwYIFtm3bNhs5cqRFRUX5vUvCNffee69FRkbamjVr/N6Gdvz4cTMz27lzpz322GO2adMm2717t7355pvWunVru+6663zHKHuL60033WRbtmyxFStW2EUXXVThW1zHjh1r27dvt1mzZtWKt7iWefjhh23NmjW2e/du++ijjyw1NdWaN29uhw4dMrMzb3lOTEy0VatW2aZNmywlJcVSUlJ8968La/Bzp0+ftsTERBs3bpzf9rp+Phw5csQ2b95smzdvNkk2bdo027x5s+9dMVlZWRYVFWVvvvmmffbZZ9a/f/8K3/LctWtX27Bhg3344YfWtm1bv7e3FhYWmsfjsb/+9a+2detWW7RokTVs2LDc2zrr169vTz/9tG3fvt0mTZr0u7699VzrcPLkSbvlllusRYsWtmXLFr/vG2Xv+li3bp1Nnz7dtmzZYrt27bKXXnrJLrroIrvjjjucWodfW4sjR47Y3//+d8vJybHdu3fbe++9Z926dbO2bdvaiRMnfMeo6+dEmaKiImvYsKHNnj273P1r2zkRENFiZjZz5kxLTEy0kJAQ69mzp61fv76mp3RBJFV4mz9/vpmZ7du3z6677jpr1qyZhYaG2iWXXGJjx471+70cZmZ79uyxvn37Wnh4uDVv3twefvhhKykp8RuzevVqu+KKKywkJMRat27t+xq1weDBgy0uLs5CQkLs4osvtsGDB9vOnTt9+3/88Ue77777rGnTptawYUP74x//aAcPHvQ7hutr8HPvvvuuSbK8vDy/7XX9fFi9enWF/x6GDh1qZmfe9jxhwgTzeDwWGhpqvXv3LrdG33//vd1+++3WuHFji4iIsGHDhtmRI0f8xnz66ad2zTXXWGhoqF188cWWlZVVbi6vv/66XXrppRYSEmIdOnSwZcuWVdvjPtu51mH37t2/+H2j7Hf55ObmWnJyskVGRlpYWJhddtll9uSTT/r9IDer/etgdu61OH78uN1000120UUXWYMGDaxly5Y2YsSIcv8jW9fPiTLPPfechYeHW2FhYbn717ZzIsjMrHLXZgAAAH5/df41LQAAoG4gWgAAgBOIFgAA4ASiBQAAOIFoAQAATiBaAACAE4gWAADgBKIFAAA4gWgBAABOIFoAAIATiBYAAOAEogUAADjh/wFCfCao5yKmiwAAAABJRU5ErkJggg==", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "c = 0.5\n", - "r = genpareto.rvs(c, size=100, loc=0, scale=1_000, random_state=1)\n", - "count, bins, ax = plt.hist(r, 4, density=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "increased-joseph", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "r.shape=(100,) r.min()=0.11438462947924068 r.mean()=1657.342156816486 r.max()=16949.974367913703\n", - "Frontière de l'histogramme :[1.14384629e-01 4.23757938e+03 8.47504438e+03 1.27125094e+04\n", - " 1.69499744e+04]\n", - "Nombre de personnes dans chaque bars :[90. 7. 2. 1.]\n" - ] - } - ], - "source": [ - "print(f\"{r.shape=} {r.min()=} {r.mean()=} {r.max()=}\")\n", - "print(f\"Frontière de l'histogramme :{bins}\")\n", - "print(f\"Nombre de personnes dans chaque bars :{count}\")" - ] - }, - { - "cell_type": "markdown", - "id": "exterior-knitting", - "metadata": {}, - "source": [ - "On voit sur l'histogramme qu'on a 90% des personnes qui gagnent moins de 4 237 €\n", - "\n", - "Et seulement 1% qui gagnent plus de 12 700 €, avec un maximum de 16 949 €" - ] - }, - { - "cell_type": "markdown", - "id": "standing-dispatch", - "metadata": {}, - "source": [ - "## Génération d'un grand nombre de données" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "excess-candy", - "metadata": {}, - "outputs": [], - "source": [ - "def get_random_data(nb_zeros: int, nb_above_zero: int, c=0.9, scale=80_000):\n", - " \"\"\"\n", - " ::nb_zeros:: Nombre d'individus à 0\n", - " ::nb_above_zero:: Nombre d'individus pour lesquels générer une valeur\n", - " \"\"\"\n", - " zeros = np.zeros((nb_zeros,))\n", - " # Using numpy.random.pareto() method\n", - " pareto = genpareto.rvs(c, size=nb_above_zero, loc=0, scale=scale, random_state=1)\n", - " return np.concatenate((zeros, pareto), axis=0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "variable-hunter", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "r.shape=(38000000,) r.min()=0.0 r.mean()=15795.173430857798 r.max()=375678496.8283032\n" - ] - } - ], - "source": [ - "c = 0.6\n", - "r = get_random_data(\n", - " nb_zeros=2_000_000, nb_above_zero=36_000_000, c=c, scale=4000 * (1 / c)\n", - ")\n", - "print(f\"{r.shape=} {r.min()=} {r.mean()=} {r.max()=}\")\n", - "df = pd.DataFrame({\"revkire\": r})" - ] - }, - { - "cell_type": "markdown", - "id": "imposed-scene", - "metadata": {}, - "source": [ - "### Calcul des centiles" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "terminal-minority", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.5" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "nb_quantiles = 100\n", - "centile = [(1 / nb_quantiles) * (i + 1) for i in range(nb_quantiles)]\n", - "centile[49]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "sized-benefit", - "metadata": {}, - "outputs": [], - "source": [ - "quantiles = df.quantile(centile)\n", - "df_quantiles = pd.DataFrame(quantiles)\n", - "df_quantiles[\"quantiles\"] = df_quantiles.index * 100\n", - "df_quantiles[\"quantiles\"] = df_quantiles[\"quantiles\"].astype(int)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "eleven-excerpt", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABmIAAALoCAYAAABrpOraAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACo5ElEQVR4nOzdeZzVdb0/8NecQRKQGSANb4oLmpjXNRdSUpNIwyUSNyoVTY2MLC1NunlN018qLWrSzXJJxVy7pNmCSyZetUy7pllmBomAiQswM2wic+b3B3cmhgGZ7TBz4Pl8PHhc53s+n+/3fT5ztOt5+f58KhoaGhoCAAAAAABApyt0dQEAAAAAAADrK0EMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAoEUEMAACUwIQJEzJ8+PBm14YMGZKrrrqqiyr6l8cffzxDhgzJ448/3tWldIkN/f0DAADrVo+uLgAAADrqpZdeyrXXXptHH300r776ajbaaKPssMMOGTlyZI477rhsvPHGJXnu3Llzc8cdd2TEiBF573vfW5JnlIPZs2fnQx/6UNPPFRUVqaqqyq677prx48dnjz32aDb+qquuyqRJk1Z7rwsuuCAf//jHk6wIrlbWp0+f7LTTTjn11FPzwQ9+sHPfRDey6vtutOmmm+bRRx9t+rm2tjbDhg3LsmXL8stf/jLbbbddizkTJkzIvffem6eeeqrZ9b/+9a8ZO3Zs+vTpk5tuuilbbrllTjjhhPz+979f7bO33XbbTJ06dY01r/oZKBQKGThwYP793/89n/vc51r8/bF48eL86Ec/ytSpU/PSSy+lR48eGTJkSI499tiMGjUqFRUVTfX/9Kc/XeNzGx155JG59NJLO/Qe/vnPf+a///u/89BDD2XmzJkpFArZYYcdcvrpp2e//fZrMb62tjbf/OY3c//992fp0qXZZZddMmHChPz7v/97s3G//OUv8+CDD+aZZ57JzJkzs88++2Ty5MmrreHZZ5/N5ZdfnqeeeioNDQ3ZY489cs4552zQ/3wBAFgfCGIAAChrDz30UL7whS+kZ8+eGTVqVHbYYYe89dZb+cMf/pBvfvOb+fvf/56LLrqoJM9+9dVXM2nSpGyxxRYtvii96KKL0tDQUJLndleHH354DjjggBSLxbz44ou55ZZbcuKJJ+YnP/nJasOFCy64IL179252bbfddmv287BhwzJq1Kg0NDTk5Zdfzq233prPfOYzueaaa7L//vuX9P10pcb3vbJVA8WpU6emoqIim222WX72s5/lrLPOatW9//a3v+Wkk05K7969c+ONN2bLLbdsem3zzTfPF7/4xRZz+vbt26p7r/wZmD59em699dY8/PDDueOOO5r+Hnn99ddz0kknZfr06Tn00ENz/PHH580338x9992Xc889N9OmTcu3vvWtVFZW5rjjjsu+++7bdP/Zs2fnu9/9bo477rjsueeeTde32mqrDr+HX//617nmmmsyYsSIHHnkkVm+fHnuvvvunHzyyfnGN76Ro446qmlssVjMpz/96Tz//PM55ZRT0r9//9xyyy054YQTMmXKlGyzzTZNY2+99dY8++yz2WWXXbJgwYI1Pv/Pf/5zPvGJT+Tf/u3f8rnPfS7FYjG33HJLjj/++Nx5550ZPHjw29YPAED3JYgBAKBszZo1K2eddVbe/e5358Ybb8y73vWuptc++clPZubMmXnooYe6pLaNNtqoS57blXbaaadm4cGee+6Z0047LbfeemsuuOCCFuMPOeSQDBgw4G3vuc022zS75yGHHJJDDz00N91003odxKz6vlfnZz/7WQ488MC8+93vzs9//vNWBTEvvPBCxo4dm4033jg33XRTBg0a1Oz1vn37rvW5b2fVz8D73ve+nH766bn11lvz9a9/PUly7rnnZvr06Zk0aVKzLpoTTzwxl112Wa6//vq8973vzac//enssccezTqq/vSnP+W73/1udt999zXW2d73MHTo0PzmN79p9pn8+Mc/nlGjRuW73/1usyBm6tSpeeqpp3LllVfmIx/5SJJk5MiROeSQQ3LVVVfl29/+dtPYiRMnZuDAgSkUCjn88MPX+Pwrr7wyG2+8cW677bb0798/SfLRj340hxxySC6//PJusa0hAADt44wYAADK1rXXXpvFixfn//2//9cshGm09dZbZ+zYsc2u3X333Rk9enR23XXX7LPPPjnrrLPyz3/+s9mYE044IYcffnj+/ve/54QTTshuu+2W/fffP9dcc03TmMcffzxHH310kuQrX/lKhgwZkiFDhmTKlClJVn9GzOrMnTs3X/nKV7Lffvtl5513zmGHHZaf/OQnLcZNnjw5hx12WHbbbbfsvffeGT16dO6555613v+VV17JZz/72ey+++7Zd999841vfCPLli1b7dinn346p5xySvbcc8/stttuOf744/OHP/xhrc9Yk7322ivJisCss2y33Xbp379/XnrppVaNb+37f/LJJ/P5z38+H/zgB7PzzjvnwAMPzDe+8Y0sXbq02bgJEyZkjz32yNy5c/PZz342e+yxR97//vfnsssuS319fbOxv/jFLzJ69Ojsscceed/73pcjjjgiN954Y/vf/EpefvnlPPnkkzn00ENz2GGHZfbs2fnf//3ft50zffr0nHTSSenZs+dqQ5hSeP/7359kRSdLkvzxj3/MI488kiOPPLJZCNPoS1/6UrbZZptce+21Lda+1N7znve0CAZ79uyZAw88MK+88koWLlzYdP3ee+/NpptumoMPPrjp2oABAzJy5Mj8+te/bvYZ+7d/+7cUCmv/V+8nn3wy++67b1MIkyTvete7ss8+++Q3v/lNFi1a1JG3BwBAF9IRAwBA2frNb36TQYMG5X3ve1+rxn//+9/PlVdemZEjR+boo4/OvHnzcvPNN+eTn/xk7rrrrlRVVTWNrampyamnnpoPf/jDGTlyZO69995861vfyg477JADDzww2223XT7/+c+32CaptbUkK7ZoOvbYY1NRUZFPfvKTGTBgQB5++OF89atfzcKFC3PSSSclSe64445cfPHFOeSQQ3LiiSfmzTffzPPPP5+nn346RxxxxBrvv3Tp0owdOzb//Oc/c8IJJ+Rd73pX7r777vzud79rMfa3v/1tTjvttOy888753Oc+l4qKikyZMiVjx47NLbfckl133bXV76vRnDlzkqTZuq6spqam2c+VlZWprq5+23vW1dWltra22VZUa9KW9z916tQsXbo0H//4x9OvX78888wzufnmm/PKK6/ku9/9brOx9fX1OeWUU7Lrrrvmy1/+cn7729/m+uuvz6BBg/KJT3wiSfLoo4/mi1/8Yvbdd9+cffbZSZIZM2bkf//3f1uEg6vz5ptvZt68ec2ubbLJJunZs2eS5Oc//3l69eqVgw46KBtvvHG22mqr3HPPPWv8/M2YMSNjx45NZWVlbrrppjWuX319fYvnJiu2RVt1G7nWaAzM+vXrl2TF37NJ8rGPfWy143v06JHDDz88kyZNyv/+7/+u9myWtens9/Daa6+lV69e6dWrV9O15557LjvttFOLgGWXXXbJ7bffnn/84x9rPOtnTZYtW7ba86w23njjvPXWW3nhhRey++67t7l+AAC6niAGAICytHDhwsydO3e1/1X96syZMydXXXVVzjzzzHzmM59pun7wwQfnyCOPzC233NLs+quvvprLLrus6Qvjo48+OsOHD89///d/58ADD8ymm26aAw44YK3bJL2dyy+/PPX19bnnnnua/iv4j3/84/niF7+YSZMmZcyYMdl4443z0EMP5T3veU+LQGBtbr/99rz44ou54oorMnLkyCRpOgx9ZQ0NDbngggsydOjQXHvttU0HpY8ZMyaHHXZYrrjiilx//fVrfd6SJUsyb968pjNiLr300iQrthNbncYtnRptscUWefDBB5tdWzmQePnll3PFFVekvr5+jfdsz/tPkrPPPrvZl+DHHXdctt5663znO9/Jyy+/nHe/+93Naho5cmTGjx+fZMXv7Mgjj8xPfvKTpiDmoYceyiabbJLrrrsulZWVa611VT/5yU9adEZdcsklGT16dJLknnvuyYc+9KGmmg899NDcfvvt+epXv5oePZr/a95bb72VE088MRUVFbnpppuy9dZbr/G5M2bMaHYmy8rr0bi12NtZ+TMwY8aMXHLJJUn+9bv++9//niTZcccd13iPxtemT5/eriCmo+9hZTNnzsz999+fj3zkI81+j6+99lpTx9fKGjvzXn311TYHMdtuu23++Mc/pr6+vulZy5YtyzPPPJNkRfccAADlSRADAEBZatwmqE+fPq0af//996dYLGbkyJHN/mv5TTfdNFtvvXUef/zxZkFM7969m31h37Nnz+yyyy6dts1WQ0ND7rvvvowcOTINDQ3NavrABz6QX/ziF/nzn/+cPffcM1VVVXnllVfyzDPPtKkz5eGHH85mm23WLPDo1atXjj322Hzzm99suvbcc8/lxRdfzOmnn5758+c3u8e+++6bu+++O8Vica3bK1111VXNzrHo3bt3JkyY0CJwWXn8Jpts0vTzO97xjhZjVg0kNtpoo5x66qk5+eST37aWpPXvP0mzEGbx4sVZunRp9thjjzQ0NOQvf/lLsyAmWRG+rGzPPffMz372s6afq6qqsmTJkjz66KM54IAD1lrrqj70oQ/l+OOPb3Zt++23T5L89a9/zd/+9rd86UtfanrtsMMOy9VXX51HHnkkH/zgB5vNq6+vz4IFC7Lttts22/ZqdbbYYotcfPHFLa4PHDiwVXWv+hnYZJNNcvbZZzdt4dW4vdbb/X3b+NrKW4G1RUffQ6MlS5bkC1/4QjbeeONma52s6LZq7E5aWeO1N998s03PSpJPfOITueCCC/LVr341p556aorFYr7//e/ntddea3omAADlSRADAEBZavwCv7XnJrz44otpaGhodqbDylbtIth8882bOkMaVVdX5/nnn29HtS3NmzcvtbW1uf3223P77bevcUySnHbaaXnsscdyzDHHZOutt86wYcNy+OGHN22HtiZz5szJ1ltv3eJ9bLvtts1+fvHFF5OsOER9Terq6ta6bdhxxx2Xj3zkI3nzzTfzu9/9LpMnT25xbsrK9tprrxZncqyqMZB466238qc//SlXX311li5d2qozN1r7/pMV3Tbf/e538+CDD7bYMm3VQOAd73hHi7qrq6ubzfvEJz6RX/3qVznttNMycODADBs2LCNHjmx1KLP55puvsRvkZz/7WXr37p1BgwZl5syZTTVtscUWueeee1oEMRtvvHEuvvjinH322Rk3blyuv/76NW7R1bt373Z1oTRq/AxUVFSkqqoq73nPe5oFFo0hy6JFi9a4ZV1rwpq309H3kKwIr84666z8/e9/zzXXXNMixNl4441Xe9ZQ47XVhYpr8/GPfzyvvPJKrrvuuvz0pz9Nkuy888455ZRTcvXVV7d7PQAA6HqCGAAAytImm2ySd73rXXnhhRdaNb5YLKaioiLXXHPNareKWvWL6fZsJ9UWxWIxSfLRj340Rx555GrHNG5ttN1222Xq1Kl56KGH8j//8z+57777csstt2T8+PH5/Oc/3+FaGhoakiRf/vKX8973vne1Y1pztsbWW2/d9AX4QQcdlEKhkG9/+9sZOnRodtlll3bVtnIgceCBB6Z///75+te/nqFDh64xVGur+vr6nHzyyU3nAg0ePDi9e/fO3LlzM2HChKbfVaPWfDbe+c535q677sojjzyShx9+OA8//HCmTJmSj33sY7nsssvaXWtDQ0N+8YtfZPHixTn00ENbvD5v3rwsWrSoxZf2hx12WGpqanLhhRfmjDPOyPe///3VdnR01MqfgdXZbrvt8sADD+T555/P3nvvvdoxjWFnYwdQVzjvvPPy0EMP5Vvf+tZqtznbbLPNmjpVVvbqq68m+dcWZW111lln5VOf+lReeOGF9O3bN0OGDMl3vvOdJMk222zTrnsCAND1BDEAAJStgw46KLfffnueeuqp7LHHHm87dquttkpDQ0O23HLL1XZEtMeqnRZtMWDAgPTp0yfFYrFV//V+7969c+ihh+bQQw/NsmXLcsYZZ+Tqq6/OuHHj1vhf32+xxRb529/+loaGhma1/uMf/2g2btCgQUlWhFsd7SRY2emnn54777wzV1xxRa677rpOuedxxx2XG264IVdccUU+/OEPv+3voLXv/29/+1tefPHFZmcCJcmjjz7aoVp79uyZ4cOHZ/jw4SkWi7ngggty++2357Of/ezbntPydn7/+9/nlVdeyec///lst912zV6rra3Nf/7nf+aBBx5Y7Tk4n/jEJ1JTU5Mrrrgi55xzTi6//PJWdRZ1pg9+8IP5wQ9+kLvuumu1QUzjmUnV1dV53/vet05ra3TZZZdlypQp+Y//+I8cfvjhqx2z44475g9/+EOLLfueeeaZ9OrVq0P/jKmurm52/sxjjz2WzTffPIMHD273PQEA6Frr9v/rBgCATnTqqaemd+/eOe+88/L666+3eP2ll17KjTfemCQ5+OCDU1lZmUmTJjV1gDRqaGhocTZKa/Tq1SvJii/A26qysjKHHHJI7r333vztb39r8frKZ8asWlvPnj2z3XbbpaGhIW+99dYan3HAAQfk1VdfzdSpU5uuLVmyJHfccUezcTvvvHO22mqrXH/99avd6m3lWtqiqqoqxx13XB555JE899xz7brHqnr06JGTTz4506dPz69//eu3Hdva99/4RfrKn4uGhobcdNNN7a5z1d9ZoVBo6nBa3ZZWrdW4Ldmpp56aj3zkI83+HHvssdlmm21yzz33rHH+6aefnpNOOilTp07N+eef3+462ut973tf9ttvv0yZMiW/+c1vWrx++eWX58UXX8ypp57a7NyedeXaa6/N9ddfn8985jMZO3bsGsd95CMfyeuvv5777ruv6dq8efMyderUHHTQQZ3WbfTLX/4yf/rTnzJ27Nh1HpoBANB5dMQAAFC2ttpqq3zrW9/KWWedlUMPPTSjRo3KDjvskGXLluWpp57K1KlTM3r06KaxZ555Zr797W9nzpw5GTFiRPr06ZPZs2fngQceyLHHHptTTjmlzc+vqqrKbbfdlj59+qR3797ZddddmzpM1uZLX/pSHn/88Rx77LE55phjsv3226empiZ//vOf89vf/ja///3vkySnnHJKNt1007zvfe/LO9/5zsyYMSM333xzDjzwwGaH3a/q2GOPzY9//OOce+65+fOf/5zNNtssd999d4svuAuFQi6++OKcdtppOfzwwzN69OgMHDgwc+fOzeOPP55NNtkkV199dZvWptGJJ56YG2+8MT/84Q9z+eWXt+seqxo9enS++93v5pprrsmIESPWOK6173/w4MHZaqutctlll2Xu3LnZZJNNcu+997YrYGt03nnnpaamJu9///szcODAvPzyy7n55pvz3ve+t0UnS2stW7Ys9913X/bbb781dkENHz48N910U9544428853vXO2YCRMmpLa2NnfeeWeqq6tzzjnnNL1WV1eXu+++e7XzVtdl0x6XXXZZTjrppHz2s5/N4Ycfnr322qvpvf3+97/PoYce2ua/F1fW3vdw//3355vf/Ga22WabDB48uMU9hg0blk033TRJcsghh2T33XfPV77ylfz9739P//79c+utt6a+vj5nnHFGs3lPPPFEnnjiiSQrwprFixfnv/7rv5Ike++9d1Nn0BNPPJHvfe97GTZsWPr165enn346U6ZMyf77758TTzyxfYsBAEC3IIgBAKCsfehDH8rPfvazXHfddfn1r3+dW2+9NT179syQIUMyYcKEHHvssU1jP/3pT2ebbbbJDTfckO9973tJVpxBMmzYsAwfPrzNz95oo41y6aWX5jvf+U4uuOCCLF++PJdcckmrg5hNN900d955Z773ve/l/vvvz6233pp+/fpl++23z9lnn9007rjjjss999yTH/3oR1m8eHE233zznHDCCfnsZz/7tvfv1atXbrjhhlx00UW5+eabs/HGG+eII47IAQcckFNPPbXZ2KFDh+b222/Pf/3Xf+Xmm2/O4sWLs9lmm2XXXXfNcccd1+a1aTRw4MAcccQRufvuu/PSSy9lq622ave9Gm288cY5/vjjc9VVV+Xxxx/P0KFDVzuute9/o402ytVXX52LL744P/jBD/KOd7wjH/7wh/PJT36y3eHDRz/60dxxxx255ZZbUltbm8022ywjR47MGWec0e7Ohoceeii1tbU56KCD1jjmoIMOyvXXX59f/OIXa/zyvqKiIhdffHFqa2tz7bXXprq6Op/+9KeTJK+88kq+/OUvr3ZeZwUx73rXu3LnnXfmRz/6UaZOnZr77rsvlZWVGTJkSC699NJ87GMf69C2f+19D3/961+TJC+++OJq5990001NQUxlZWV++MMfZuLEiZk8eXLefPPN7LLLLrnkkktabCH2u9/9LpMmTWp27corr0ySfO5zn2sKYgYOHJjKyspcd911WbRoUbbccsuceeaZOemkk9Kjh391BwAoZxUNq+7LAAAAAAAAQKewySwAAAAAAECJCGIAAAAAAABKRBADAAAAAABQIoIYAAAAAACAEhHEAAAAAAAAlIggBgAAAAAAoEQEMQAAwBoNGTIkX//61zvtfrNnz86QIUMyZcqUpmtXXXVVhgwZ0mnPmDJlSoYMGZLZs2d32j1LYXVrsbax1113XcnrevzxxzNkyJA8/vjjJX8WAABsCHp0dQEAAEDnmTJlSr7yla+s8fXbb789u++++7oriDaZNm1annnmmZxxxhldXQoAANBJBDEAALAe+vznP58tt9yyxfWtttqqC6phdbbYYos888wz6dHjX/9aNm3atPz4xz/u0iBm7733zjPPPJONNtqoy2oAAID1iSAGAADWQwcccEB22WWXri6D1Vi+fHmKxWJ69uyZd7zjHV1dTguFQqFb1gUAAOXKGTEAALCBKhaLufHGG3PEEUdkl112yfvf//6ccsop+dOf/tRi7AMPPJDDDz88O++8cw477LA8/PDDLcbMnTs3X/nKV7Lffvs1jfvJT37S7vruvvvujB49Orvuumv22WefnHXWWfnnP//Z7vv9+Mc/zmGHHZadd945H/jAB3LhhRemtrZ2teM+9KEPZdddd83RRx+dJ598MieccEJOOOGEpjHLli3LlVdemdGjR2fPPffM7rvvnk984hP53e9+1+xeK5/tcsMNN2TEiBHZZZddMn369BZnxEyYMCE//vGPk6w4m6fxz6puv/32jBgxIjvvvHOOOuqoPPPMM81enzBhQvbYY4+8/PLLGTduXPbYY4/sv//+Tfd+/vnnc+KJJ2b33XfPQQcdlHvuuafZ/DWdEdP43LdblzWdz7Omez799NM55ZRTsueee2a33XbL8ccfnz/84Q8t3jMAAJQzHTEAALAeWrhwYebNm9fsWkVFRfr379/081e/+tVMmTIlBxxwQI4++ujU19fnySefzNNPP92sm+YPf/hD7rvvvnziE59Inz59Mnny5Hz+85/Pb37zm6b7vf766zn22GNTUVGRT37ykxkwYEAefvjhfPWrX83ChQtz0kkntan+73//+7nyyiszcuTIHH300Zk3b15uvvnmfPKTn8xdd92VqqqqNt3vqquuyqRJk7Lffvvl4x//eP7xj3/k1ltvzZ/+9KfceuutTdtw3XLLLfn617+evfbaKyeddFLmzJmT8ePHp6qqKptvvnmz9b3zzjtz+OGH55hjjsmiRYvyk5/8JKeeemruvPPOvPe97232/ClTpuTNN9/Msccem549e6a6ujrFYrHZmOOOOy6vvvpqHn300UycOHG17+PnP/95Fi1alOOOOy4VFRW59tprc8YZZ+SBBx5otpVYfX19TjvttOy11145++yzc8899+TrX/96evXqlcsvvzxHHHFEDj744Nx2220599xzs/vuu2fQoEFrXL8777wz559/fvbYY4+MHTs2s2bNyumnn57q6ur827/9W5t+F41++9vf5rTTTsvOO++cz33uc6moqMiUKVMyduzY3HLLLdl1113bdV8AAOhuBDEAALAeWl3w0bNnz6Zul9/97neZMmVKTjjhhJx33nlNYz71qU+loaGh2bzp06fnl7/8ZdP5MkOHDs2oUaPyi1/8Iscff3yS5PLLL099fX3uueeepnDm4x//eL74xS9m0qRJGTNmTDbeeONW1T5nzpxcddVVOfPMM/OZz3ym6frBBx+cI488Mrfcckuz62szb968/OAHP8gHPvCBXHPNNSkUVmwMMHjw4Hz961/Pz372sxx11FFNXS677LJLbrzxxqazW4YMGZIJEyY0C2Kqq6vz4IMPpmfPnk3Xjj322IwcOTKTJ0/ON77xjWY1vPLKK7n//vszYMCApmurdo3sscce2WabbfLoo49m1KhRq30vL7/8cu67775UV1cnSbbddtt89rOfzSOPPJKDDjqoadybb76Zj370oxk3blyS5Igjjsj++++f//iP/8h3vvOdHHrooUmS/fbbLyNHjsxdd921xnNp3nrrrVx++eV573vfm5tuuqnpPW+//fb5z//8z3YFMQ0NDbngggsydOjQXHvttamoqEiSjBkzJocddliuuOKKXH/99W2+LwAAdEe2JgMAgPXQ+eefnx/96EfN/lxzzTVNr993332pqKjI5z73uRZzG78Ub7Tffvs1hTBJsuOOO2aTTTbJrFmzkqz4Uv2+++7L8OHD09DQkHnz5jX9+cAHPpC6urr8+c9/bnXt999/f4rFYkaOHNnsXptuumm23nrrFttbrc1jjz2Wt956KyeeeGJTCJMkxxxzTDbZZJNMmzYtSfLss89mwYIFOfbYY5tCmGRFiNEYfDSqrKxsCiSKxWIWLFiQ5cuXZ+edd85f/vKXFjUcfPDBzUKY9jr00EOb1bLXXnslSdPvYmXHHHNM019XVVVl2223Ta9evTJy5Mim64MHD05VVdVq5zd69tln88Ybb2TMmDHNgqcjjzwyffv2bdf7eO655/Liiy/miCOOyPz585t+x4sXL86+++6bJ554okXHEAAAlCsdMQAAsB7addddm20vtqqXXnop73rXu9KvX7+13mt1HQ/V1dVN56vMmzcvtbW1uf3223P77bev9h6rbpP2dl588cU0NDTk4IMPXu3rK4ckrfHyyy8nWRE6rKxnz54ZNGhQ5syZ02zcyqFT4/O22GKLFvf96U9/muuvvz7/+Mc/8tZbbzVd33LLLVuMXd219lj1d9EYyqx61s073vGOFsFP3759s/nmm7cI2vr27bvas3IaNa7L1ltv3ez6Rhtt9Lbbmb2dF198MUly7rnnrnFMXV1diwAMAADKkSAGAAB4W5WVlau93riFWWPnwkc/+tEceeSRqx27ukPn16RYLKaioiLXXHPNap/du3fvVt+rVO6+++5MmDAhI0aMyCmnnJJ3vvOdqayszA9+8IPVdpe0dlu2tVnb72Jt41o7v71WDXkardrd0vi8L3/5yy3O02nUHX7PAADQGQQxAACwAdpqq63yyCOPZMGCBa3qink7AwYMSJ8+fVIsFrPffvt1Sm0NDQ3Zcssts+2223b4fu9+97uTJDNmzGjWwbFs2bLMnj27qebGcS+99FLe//73N41bvnx55syZ0yxMuvfeezNo0KBMmjSpWfjw3e9+t0O1rinI6EqN6zJz5szsu+++TdffeuutzJ49OzvuuGPTtaqqqiQrullW1th11Kjx97DJJpt0ymcGAAC6M2fEAADABujggw9OQ0NDJk2a1OK1tnZHVFZW5pBDDsm9996bv/3tby1eb8u2ZI21VVZWZtKkSS1qaWhoyPz589t0v/322y8bbbRRJk+e3Ox+P/nJT1JXV5cDDzwwSbLzzjunX79+ueOOO7J8+fKmcffcc09qamqa3bOxs2Tl+z399NP54x//2KbaVtWrV68kLbca60o777xzBgwYkNtuuy3Lli1ruv7Tn/60RZ2N27o98cQTTdfq6+tzxx13tLjnVlttleuvvz6LFi1q8cy2fmYAAKA70xEDAADroYcffjgzZsxocf1973tfBg0alPe///0ZNWpUJk+enJkzZ2b//fdPsVjMH/7whwwdOjTHH398m573pS99KY8//niOPfbYHHPMMdl+++1TU1OTP//5z/ntb3+b3//+962+11ZbbZUzzzwz3/72tzNnzpyMGDEiffr0yezZs/PAAw/k2GOPzSmnnNLq+w0YMCDjxo3LpEmTcuqpp2b48OH5xz/+kVtuuSW77LJLPvrRjyZZcWbMGWeckYsuuihjx47NyJEjM2fOnEyZMqXFuTEf/OAHc99992X8+PH54Ac/mNmzZ+e2227L9ttvn8WLF7e6tlX9+7//e5Lk4osvzgc+8IFUVlbmsMMOa/f9OsNGG22UM888M+eff37Gjh2bQw89NLNnz86UKVNanBHznve8J7vvvnu+853vpKamJtXV1fnlL3/ZLNhKkkKhkIsvvjinnXZaDj/88IwePToDBw7M3Llz8/jjj2eTTTbJ1VdfvS7fJgAAlIwgBgAA1kNr2iLrkksuafry/JJLLsmQIUPyk5/8JBMnTkzfvn2z8847Z4899mjz8zbddNPceeed+d73vpf7778/t956a/r165ftt98+Z599dpvv9+lPfzrbbLNNbrjhhnzve99Lkmy++eYZNmxYhg8f3ub7nXHGGRkwYEBuvvnmXHLJJamurs6xxx6bL37xi9loo42axh1//PFpaGjIj370o1x22WXZcccd8/3vfz8XX3xx3vGOdzSNGz16dF5//fXcfvvteeSRR7L99tvnm9/8ZqZOndqm0GlVBx98cE444YT84he/yM9+9rM0NDR0eRCTJMcdd1zq6+tz3XXXZeLEidlhhx3y/e9/P1deeWWLsd/61rdy/vnn54c//GGqqqpy9NFHZ+jQoTn55JObjRs6dGhuv/32/Nd//VduvvnmLF68OJtttll23XXXHHfccevqrQEAQMlVNHTWqYwAAADroWKxmH333Tcf/vCHc/HFF3d1Od3KCSeckCSZPHlyF1cCAADdlzNiAAAA/s+bb77Z4lyau+66KwsWLMg+++zTRVUBAADlzNZkAAAA/+ePf/xjLrnkknzkIx9Jv3798pe//CU/+clPssMOO+QjH/lIV5cHAACUIUEMAADA/9liiy2y+eabZ/LkyU2HzY8aNSpnn312evbs2dXlAQAAZcgZMQAAAAAAACXijBgAAAAAAIASEcQAAAAAAACUiDNiWqmhoSHFol3cAAAAAABgQ1coVKSioqJVYwUxrVQsNmTevEVdXQYAAAAAANDFBgzok8rK1gUxtiYDAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAokR5dXQAAAAAAAEBXKRQqUihUlOz+ghgAAAAAAGCDVChUZED/3qkotG0DsYaGhlaPFcQAAAAAAAAbpEKhIhWFQmru/13q59e2ak5l/6pUf/j9rX6GIAYAAAAAANig1c+vzfLXF5Tk3m3rtQEAAAAAAKDVBDEAAAAAAAAlIogBAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCLrdRAzbdq0fOxjH8uoUaMyevToPPXUU11dEgAAAAAAsAHp0dUFlNJXv/rV3HDDDdl+++3zm9/8JhdffHH++7//u6vLAgAAAAAANhDdriNm5syZOf/88zNq1KjstNNOOfzww1c7bvr06Tn55JOz++67Z9iwYZk4cWKWLVvWbEyhUEhdXV2SpK6uLgMHDix5/QAAAAAAAI26XUfMCy+8kGnTpmW33XZLsVhMQ0NDizE1NTUZO3Zsttlmm1x11VWZO3duLr300ixdujTnn39+07hvfvObOf3007PxxhunoaEht95667p8KwAAAAAAwAau2wUxw4cPz4gRI5IkEyZMyLPPPttizG233ZZFixZl0qRJ6devX5Kkvr4+F154YcaNG5eBAwdm+fLl+eEPf5gbbrghO+64Y+64446cd955uf7669fl2wEAAAAAADZg3S6IKRTWvlvaww8/nH333bcphEmSkSNH5mtf+1oeffTRjB49Os8991xqamqy4447JkmOOOKI/L//9/86VFuPHt1uJzcAAAAAAKCdKitL/71/twtiWmPGjBk56qijml2rqqrKZpttlhkzZiRJNt9887z00kv55z//mX/7t3/L//zP/2T77bdv9zMLhYr079+nQ3UDAAAAAAAblrIMYmpra1NVVdXienV1dWpqapIkm222Wc4999yceuqpqaysTO/evTvUEVMsNqS2dnG75wMAAAAAAN1LZWUhVVW9SvqMsgxiWuuoo45q0TnTEcuXFzvtXgAAAAAAwPqvLA89qaqqSl1dXYvrNTU1qa6u7oKKAAAAAAAAWirLIGbw4MFNZ8E0qqury2uvvZbBgwd3UVUAAAAAAADNlWUQc8ABB+Sxxx5LbW1t07WpU6emUChk2LBhXVgZAAAAAADAv3S7M2KWLFmSadOmJUnmzJmThQsXZurUqUmSffbZJwMGDMiYMWMyefLkjB8/PuPGjcvcuXMzceLEjBkzJgMHDuzK8gEAAAAAAJpUNDQ0NHR1ESubPXt2PvShD632tZtuuilDhw5NkkyfPj0XXXRRnnrqqfTp0yejRo3KWWedlZ49e5akrvr6YubNW1SSewMAAAAAAOtejx6F9O/fJ/PuuC/LX1/Qujmb9suAYw9u9TO6XRDTXQliAAAAAABg/bIugpiyPCMGAAAAAACgHAhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIR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AAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJSIIAYAAAAAAKBEBDEAAAAAAAAlIogBAAAAAAAoEUEMAAAAAABAiQhiAAAAAAAASkQQAwAAAAAAUCKCGAAAAAAAgBIRxAAAAAAAAJRIj64uoJSWLl2aiy++OE888UR69OiRgw8+OF/4whe6uiwAAAAAAGADsV4HMZdddlk23XTT3HvvvUmS119/vYsrAgAAAAAANiTdLoiZOXNmrrvuujz99NN54YUXMnjw4Pz85z9vMW769Om5+OKL89RTT6VPnz4ZNWpUzjzzzPTs2TNJsmjRotx777156KGHmuZsuumm6+ptAAAAAAAAdL8g5oUXXsi0adOy2267pVgspqGhocWYmpqajB07Nttss02uuuqqzJ07N5deemmWLl2a888/P0kya9asvPOd78xll12Wp556Kv37988555yTHXfccV2/JQAAAAAAYANV6OoCVjV8+PBMmzYt3/3ud/Pv//7vqx1z2223ZdGiRZk0aVL233//HH300TnnnHNy2223Ze7cuUmS5cuX529/+1v23XffTJkyJSeffHLGjx+/Lt8KAAAAAACwget2QUyhsPaSHn744ey7777p169f07WRI0emWCzm0UcfTZK8+93vTq9evTJixIgkyQc+8IEsXrw48+bNK0ndAAAAAAAAq+p2W5O1xowZM3LUUUc1u1ZVVZXNNtssM2bMSJIMGDAgu+22W5588snstdde+dOf/pSePXumf//+7X5ujx7dLrcCAAAAAADaqbKy9N/7l2UQU1tbm6qqqhbXq6urU1NT0/TzhRdemP/4j/9IXV1devXqlSuvvDIVFRXtemahUJH+/fu0u2YAAAAAAGDDU5ZBTGtts802ueWWWzrlXsViQ2prF3fKvQAAAAAAgK5XWVlIVVWvkj6jLIOYqqqq1NXVtbheU1OT6urqkj13+fJiye4NAAAAAACsf8ry0JPBgwc3nQXTqK6uLq+99loGDx7cRVUBAAAAAAA0V5ZBzAEHHJDHHnsstbW1TdemTp2aQqGQYcOGdWFlAAAAAAAA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AACADVChI5P32Wef/Pd//3eOP/74fPCDH8xll12WZ555pkMFzZw5M+eff35GjRqVnXbaKYcffvhqx02fPj0nn3xydt999wwbNiwTJ07MsmXLOvRsAAAAAACAztShjpjvfOc7Wbp0aX7zm9/kV7/6VW699dbccMMN2WKLLXLooYdm5MiRee9739ume77wwguZNm1adttttxSLxTQ0NLQYU1NTk7Fjx2abbbbJVVddlblz5+bSSy/N0qVLc/755zcb+7nPfS7FYjEHHnhgPv/5zzdtUwYAAAAAAFBqHQpikmTjjTfOyJEjM3LkyCxevDgPPvhgfvnLX+aGG27INddck6233jpTp05t9f2GDx+eESNGJEkmTJiQZ599tsWY2267LYsWLcqkSZPSr1+/JEl9fX0uvPDCjBs3LgMHDkyS3HLLLdl8882zaNGifPnLX861116b008/vaNvGQAAAAAAoFU6HMSsrHfv3jn88MNz0EEH5ac//Wkuv/zyzJw5s033KBTWvlvaww8/nH333bcphEmSkSNH5mtf+1oeffTRjB49Okmy+eabJ0n69OmTo48+OrfffnuballVjx4d2skNAAAAAABYjYqKihQKFa0eXyw2pKGhIZWV7f/eviNz26LTgpglS5bkwQcfzK9+9av8z//8T5YtW5atttoqI0eO7KxHNJkxY0aOOuqoZteqqqqy2WabZcaMGUmSxYsXp1gsZpNNNsny5ctz3333ZciQIe1+ZqFQkf79+3SobgAAAAAAoKWGYkMq2hDEtHX86lRV9erQ/NbqUBDz5ptv5qGHHsovf/nLPPzww1myZEm22GKLnHDCCTn00EOz0047dVadzdTW1qaqqqrF9erq6tTU1CRJ3njjjabzYerr67PHHnvkM5/5TLufWSw2pLZ2cbvnAwAAAAAALVVWFlJV1Ss19/8h9fMWrn38gE1S/eE9U1u7JEn7A5WOzm+tDgUx73//+7N06dK8613vyrHHHptDDz00u+22W2fV1iGDBg3K3Xff3an3XL682Kn3AwAAAAAAVqiftzDLX69p/fj6jn1n39H5rdWhIGb06NEZOXJk9tprr86qp1WqqqpSV1fX4npNTU2qq6vXaS0AAAAAAABr0qEg5j//8z87q442GTx4cNNZMI3q6ury2muvZfDgwV1SEwAAAAAAwKoKHb3BwoUL88Mf/jCn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ImbWzzSXXCJNTUFNQgVR0czXJQXRzFfTLJMScEtFVAQtRURBlPX8/uCaE8M5AzPgOE7cn+vyKoZzz/PM8Mw53znPWYiIiPSEEzFERERERERERERERER6wokYIiIiIiIiIiIiIiIiPeFEDBERERERERERERERkZ5wIoaIiIiIiIiIiIiIiEhPOBFDRERERERERERERESkJ5yIISIiIiIiIiIiIiIi0hNOxBAREREREREREREREekJJ2KIiIiIiIiIiIiIiIj0hBMxREREREREREREREREesKJGCIiIiIiIiIiIiIiIj3hRAwREREREREREREREZGemBq6A1R9KJUKKJUKnTLFxQKKiwU99YiIiIiIiIiIiIiISL84EUPPhVKpQD0bcyiUup2EJRQXI/NBrp56RURERERERERERESkX5yIoedCqVRAoVQi68geFD7I0CpjatMAdb0H6nwWDRERERERERERERHRi4ITMfRcFT7IQGHGX4buBhERERERERERERHRc6HbdaKIiIiIiIiIiIiIiIhIa5yIISIiIiIiIiIiIiIi0hNOxBAREREREREREREREekJJ2KIiIiIiIiIiIiIiIj0hBMxREREREREREREREREesKJGCIiIiIiIiIiIiIiIj3hRAwREREREREREREREZGecCKGiIiIiIiIiIiIiIhITzgRQ0REREREREREREREpCeciCEiIiIiIiIiIiIiItITTsQQERERERERERERERHpCSdiiIiIiIiIiIiIiIiI9IQTMURERERERERERERERHrCiRgiIiIiIiIiIiIiIiI94UQMERERERERERERERGRnnAihoiIiIiIiIiIiIiISE84EUNERERERERERERERKQnnIghIiIiIiIiIiIiIiLSE07EEBERERERERERERER6QknYoiIiIiIiIiIiIiIiPSEEzFERERERERERERERER6wokYIiIiIiIiIiIiIiIiPeFEDBERERERERERERERkZ5wIoaIiIiIiIiIiIiIiEhPFIIgCIbuhDEQBAHFxXyrqsLERIminEcQiou0Wl6hNIGJhRWKiopL5R9CKCrULm9iChML6zL5LK3yJdm6YlaVL8y5D2jTvokpTC3qq7VdmHMfQlGBln03k+QLdMyblcnn52RAKNbyvVOaooZFg0rly2ZV+bzHGVq/9zXrqLed9zgDxVr+3ZUy+adatq1qv5ZMvljL915pYvbM808eZ6C4uOK8UmmG2nWk731l8yYmSuRqmVXlzZ9x/rGO+TqVzJfNls4XaZE3kWk7J1e3v7uFuTRfpGXeRCafnatd31X9t3zG+Uda5k2UZrAyl773D3XIW5dp+2FuBgq17LupTP7BE91eu01t9XzmE93ar1cmn/EkAwVarG/NlKZoUFv63mU8ydQhX69M21laZf/J1y2Tf6hj3lomr12dYKY0kck/0jFvVSafrVW+JGspyRZq2bapxnxxBUlVXimTz9GxfQuZvC7tl80/1qr9krbryIzbyuX/yerS9zL53Fzd3jtzcz3kK+6/qVKplq1qviT7RLf3zrz2C5W/n/sUBVrmzZRK1DevVal82ax6vuLviGZKhbTtJ3m69b12TZm8dt9PzZQK2XyhlnlT2Xy+VvmSbA3pe/ekQOtxW7+2WZm2C3Tse9l8oY550zJ1QiEKtfvTwVQJ2JTJP3xSpFP71rVN1GusJ0Uo0iJvolTAqlRWlc9+UqTVvg2lUgHLMm0/1rJtVft1ZPJaDnsolZDkc3XMm5fJP8nVLq9UArXNpe9dZfMmJko81TKryteSyQvabWqgMJHm83KLoOWmCkoToGbZ/OMiCFr2X6EEatZRz+c/1q7/ChOgRh3pe1/wWLv+K00AszJtF+QUQdBy3CqUCphZqOcLc4ogFGmZN1HAtGw+W7f2TS3V80XZ2rWvMFHAxFL63hVlF+qQNy3TtnZZzfkCHfNm0rwO7500n69jvoZMvuKBr1AqpdmcPN1eu0VNmbx2HzqFiVIm/xTQsn2YKGBiUUsmr+WH3kRZ+XyZ7D/5Jzrka5dpW8usxnyujnlz7ZYFJ2KIiIiIiIiIiIiIiIj0hpcmIyIiIiIiIiIiIiIi0hNOxBAREREREREREREREekJJ2KIiIiIiIiIiIiIiIj0hBMxREREREREREREREREesKJGCIiIiIiIiIiIiIiIj3hRAwREREREREREREREZGecCKGiIiIiIiIiIiIiIhITzgRQ0REREREREREREREpCeciCEiIiIiIiIiIiIiItITTsQQERERERERERERERHpCSdiiIiIiIiIiIiIiIiI9IQTMURERERERERERERERHrCiRgiIiIiIiIiIiIiIiI94UQMERERERERERERERGRnnAihoiIiIiIiIiI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/wuCgMTERMmXtytXrog3df835Y2574bODxw4EH/99RcmTZoEW1tbvPrqq7h79y58fX3Fo32zsrLg5uaGTz755Jllq3vemPv+LPIVqVmzJvr27Yu+ffvi0aNHzzVvyLare17fbU+cOBGBgYH47bffUKdOHSQnJ2PNmjX4+OOPkZaWBhcXF1y8eBFHjhzBggULnmnekG0be96Y+w4AgYGBmDJlCpKTk+Hu7g4zMzOcO3cOP/30E8aOHQsLCwsAwKVLl+Do6PhM84Zsu7rnDd13APD398e8efOQmpqK3r17o0WLFrCysgIAZGdnIyUlBXFxcThw4AAWLVok+xzlUQiaDv0homcmNTUVV69ehZeXV7nLPX36FPfv30eTJk1emLwx993QeUO2ffDgQWzevBnr16+XnP6rUlRUhAULFuDnn3/G0aNH1X7HfOXzxtx3ADh+/DgePnwIX19f2axKYGAg2rRpgwkTJrwweWPuu6Hzhu57eW7fvo20tDS0atVKLJ6fR5b5f/97L3cZs4YNG8Ld3V3tMT8/Pzg4OGD27Nn/mrwx9/1FyKukpKRg9+7dSExMREZGBoqLi2FtbQ1HR0d4eHjA29tb45lZVclW97wx970q+dGjR2PBggVwcHDQ+NzlqUrekG1X97yh+w6UHPkdGxuLwsJCDBw4EB06dMAff/yBJUuW4Nq1a3jllVcwfPhwjBkz5pnnDdm2seeNue8AkJCQgNDQUPz555/Iy8uDvb09Ro4ciUGDBonryKSkJNSoUQPOzs7PNG/Itqt73tB9B4CYmBiEhobixo0bku2xIAho1qwZAgMD0a9fP9l8eTgRQ0REREREREREREREBODWrVtISUkRzxa0srJCixYtYGdnV+nn5EQMERERERERERERERFRBR48eIDk5GR07NhRp5zmu6USERERERERERERERERAOC3337TeFm98nAihoiIiIiIiIiIiIiISE9MDd0BIiIiIiIiIiIiIiIiQ/Hx8dFqucePH1fq+TkRQ0RERERERERERERE1VZKSgocHR3RqlWrcpdLT0/HnTt3dH5+TsQQEREREREREREREVG11bJlS9jb2yM4OLjc5Q4dOoQzZ87o/Py8RwwREREREREREREREVVbbdq0QVJSklbLCoKg8/MrhMqkiIiIiIiIiIiIiIiI/gVSU1Nx9epVeHl5lbvc06dPcf/+fTRp0kSn5+dEDBERERERERERERERkZ7w0mRERERERERERERERER6wokYIiIiIiIiIiIiIiIiPeFEDBERERERERERERERkZ5wIoaIiIiIiIiIiIiIiEhPOBFDRERERESkJ6dPn4aTkxNOnz4tPjZr1ix4enoasFdERERERPQ8cSKGiIiIiIioirZt24bdu3cbuhtERERERPQCMjV0B4iIiIiIiIzd9u3bYWNjg0GDBqk93rFjRyQlJcHMzMxAPSMiIiIiIkPjRAwREREREZGeKJVK1KxZ09DdICIiIiIiA+KlyYiIiIiI6IUXHx+Pd999F61bt4a3tzd27NiB0NBQODk5AQDS0tLg5OQke3kwJycnhIaGij+np6djwYIF6NWrF9q0aYPOnTtj2rRpSEtLU8vt3r0bTk5O+P333xEcHIw33ngD7dq1w5QpU5CZmSku5+npiatXr+K3336Dk5MTnJycMHr0aADy94iRU1xcjMjISPTr1w+tW7dGly5dMG/ePDx8+FBtuXPnzsHPzw+dO3dGmzZt4OnpiU8++US3N5OIiIiIiJ4rnhFDREREREQvtMuXL8PPzw/16tVDYGAgCgsLERoaivr161fq+c6dO4ezZ8+iX79+eOmll5Ceno7t27djzJgxiImJQe3atdWWX7x4MaysrDB16lSkp6dj8+bNWLhwIVatWgUAmD17NhYtWgRzc3NMmjQJANCgQQOd+jRv3jzs2bMHgwYNwujRo5GWloZt27bh4sWL2L59O8zMzHD//n34+fnBxsYGAQEBsLKyQlpaGn744YdKvQ9ERERERPR8cCKGiIiIiIheaCEhIRAEAdu2bcMrr7wCAOjVqxd8fHwq9Xw9evRA79691R7z8PDAsGHDcOjQIbzzzjtqv6tbty42bdoEhUIBoOTslS1btiA7OxuWlpbw9vbGqlWrYGNjgwEDBujcn/j4eHz33XdYvny52mvq3Lkz/P39ERcXBx8fH5w9exYPHz7Exo0b0bp1a3G5Dz74QOc2iYiIiIjo+eGlyYiIiIiI6IVVVFSEkydPwtvbW5yEAQAHBwe4u7tX6jlr1aol/n9BQQEePHiApk2bwsrKChcvXpQsP3ToUHESBgA6dOiAoqIipKenV6r9suLi4mBpaYmuXbsiMzNT/Ofq6gpzc3PxsmaWlpYAgGPHjqGgoOCZtE1ERERERPrHM2KIiIiIiOiFlZmZiadPn8Le3l7yu+bNm+P48eM6P+fTp08RFhaG3bt34++//4YgCOLvsrOzJcuXngACACsrKwDAo0ePdG5bzs2bN5GdnY0333xT9vf3798HAHTq1Am9evXCmjVrEBkZiU6dOsHb2xs+Pj6oUaPGM+kLERERERE9e5yIISIiIiIio1f6jJXSioqKJI8tWrQIu3fvxtixY9GuXTtYWlpCoVDggw8+UJuUUVEq5S8kILdsZRQXF6N+/fpYvny57O/r1asHoOQ1hoSEICEhAf/73/9w4sQJzJ49GxEREfj2229Rp06dZ9IfIiIiIiJ6tjgRQ0REREREL6x69eqhVq1auHnzpuR3169fF//f2toagPQsldu3b0tyqvvAzJo1S3wsLy9P9mwYbWmaCNJG06ZN8csvv6B9+/Zql03TpF27dmjXrh0++OAD7N+/HzNnzkRsbCyGDBlS6T4QEREREZH+8B4xRERERET0wjIxMYG7uzuOHDmiNqly7do1nDx5UvzZwsICNjY2iI+PV8tHR0fLPmdZW7ZskT17Rlu1a9eu9KXK+vTpg6KiIqxbt07yu8LCQvF5Hz58KDkLx8XFBQCQn59fqbaJiIiIiEj/eEYMERERERG90AIDA3HixAmMGjUKI0aMQFFREbZu3QpHR0dcvnxZXG7IkCH45ptvMGfOHLi5uSE+Pl7trBmVHj16YN++fbCwsICjoyMSEhJw6tQp1K1bt9J9dHV1xfbt27Fu3TrY29ujXr16Gu/5UlanTp0wbNgwhIWF4dKlS+jatSvMzMxw48YNxMXFYc6cOejduzf27NmD7du3w9vbG02bNsXjx4+xc+dOWFhY4K233qp034mIiIiISL84EUNERERERC80Z2dnbNy4EcHBwQgJCcFLL72EwMBA3Lt3T20iZsqUKcjMzMShQ4dw8OBBvPXWW9iwYYNkQmTOnDlQKpXYv38/8vLy0L59e0RERMDf37/SfZwyZQpu376NDRs24PHjx+jUqZPWEzEAsHDhQri5uWHHjh346quvYGJigiZNmsDX1xft27cHUDJhc+7cOcTGxiIjIwOWlpZo06YNli9fDjs7u0r3nYiIiIiI9EshPKs7TBIRERERET1HoaGhWLNmjdpkDBERERER0YuG94ghIiIiIiIiIiIiIiLSE07EEBERERERERERERER6QknYoiIiIiIiIiIiIiIiPSE94ghIiIiIiIiIiIiIiLSE54RQ0REREREREREREREpCeciCEiIiIiIiIiIiIiItITTsQQERERERERERERERHpCSdiiIiIiIiIiIiIiIiI9IQTMURERERERERERERERHrCiRgiIiIiIiIiIiIiIiI94UQMERERERERERERERGRnnAihoiIiIiIiIiIiIiISE/+H0HkunkT54BwAAAAAElFTkSuQmCC", - "text/plain": [ - "<Figure size 2000x800 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sns.set(rc={\"figure.figsize\": (20, 8)})\n", - "ax = sns.barplot(data=df_quantiles, x=\"quantiles\", y=\"revkire\")\n", - "_ = ax.set_yscale(\"log\")\n", - "_ = ax.set_xticklabels(labels=ax.get_xticklabels(), rotation=90)\n", - "_ = ax.set_title(\"Centiles de RFR dans FAKE POTE 2019\\nEchelle logarithmique\")" - ] - }, - { - "cell_type": "markdown", - "id": "canadian-flavor", - "metadata": {}, - "source": [ - "On est très proche de ce qu'on l'on a vu sur POTE. 👏 " - ] - }, - { - "cell_type": "markdown", - "id": "separate-sperm", - "metadata": {}, - "source": [ - "## On le fait pour plusieurs de colonnes" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "revolutionary-companion", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.44367670147237526" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from random import random\n", - "\n", - "random()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "nervous-bradley", - "metadata": {}, - "outputs": [], - "source": [ - "sas_columns = [\n", - " \"rnsgbd\",\n", - " \"rnsgld\",\n", - " \"revkire\",\n", - " \"Z1aj\",\n", - " \"Z1ap\",\n", - " \"Z1as\",\n", - " \"Z1bj\",\n", - " \"Z1bp\",\n", - " \"Z1bs\",\n", - " \"Z1cj\",\n", - " \"Z1cw\",\n", - " \"Z1dw\",\n", - " \"Z2ch\",\n", - " \"Z2dc\",\n", - " \"Z2dh\",\n", - " \"Z2tr\",\n", - " \"Z3ua\",\n", - " \"Z3vg\",\n", - " \"Z3vz\",\n", - " \"Z4ba\",\n", - " \"Z4bb\",\n", - " \"Z4bc\",\n", - " \"Z4bd\",\n", - " \"Z4be\",\n", - " \"Z6de\",\n", - " \"Z8sc\",\n", - " \"Z8sw\",\n", - " \"Z8sx\",\n", - " \"CICS\",\n", - " \"MNIMQG\",\n", - "]\n", - "col_to_fake = []\n", - "for col in sas_columns:\n", - " c = 0.6 + random() / 5\n", - " col_dict = {\n", - " \"name\": col,\n", - " \"c\": c,\n", - " \"nb_zeros\": int(2_000_000 * random()),\n", - " \"scale\": 4000 * (1 / c),\n", - " }\n", - " col_to_fake.append(col_dict)\n", - "# col_to_fake" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "stretch-wells", - "metadata": {}, - "outputs": [], - "source": [ - "def gen_all_data(reduce_output_ratio=100, filepath=None):\n", - " \"\"\"\n", - " ::reduce_output_ratio:: 1 for full data, 2 for alf.\n", - " ::filepath:: Chemin et nom du fichier à sauver\n", - " \"\"\"\n", - " df_pote = None\n", - " nb_ff = 39_000_000\n", - " for col in col_to_fake:\n", - " values = get_random_data(\n", - " nb_zeros=col[\"nb_zeros\"] // reduce_output_ratio,\n", - " nb_above_zero=(nb_ff - col[\"nb_zeros\"]) // reduce_output_ratio,\n", - " c=col[\"c\"],\n", - " scale=col[\"scale\"],\n", - " )\n", - " df_temp = vaex.from_dict({col[\"name\"]: values.astype(int)})\n", - " if df_pote is not None:\n", - " df_pote = df_pote.join(df_temp)\n", - " else:\n", - " df_pote = df_temp\n", - " if filepath:\n", - " df_pote.export_parquet(filepath)\n", - " return df_pote" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "australian-holly", - "metadata": {}, - "outputs": [], - "source": [ - "df_pote = gen_all_data(reduce_output_ratio=10_000)" - ] - }, - { - "cell_type": "markdown", - "id": "certified-legislation", - "metadata": {}, - "source": [ - "## On le sauve dans le même format que sur le CASD\n", - "\n", - "Parquet occupe moins d'espace que Arrow. Mais arrow ne nécessite quasiment pas de CPU car le fichier est chargé en mémoire tel quel.\n", - "\n", - "Test avec 39 millions de lignes et 29 colonnes int64 sur notre machine dans DC5:\n", - " - Parquet : 2.7G enregistrés en 22 secondes. (CPU Time = Wall time)\n", - " - Arrow : 4.9G enregistrés en moins de 4 secondes de temps CPU. (mais 44s de Wall time)\n", - " \n", - " => Arrow est donc plus consommateur en espace disque, beaucoup moins en CPU. Mais en temps d'attente perçu c'est équivalent." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "nutritional-minneapolis", - "metadata": {}, - "outputs": [], - "source": [ - "df_pote.export_parquet(f\"{OUT_PATH}fake_pote_light.parquet\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7a08c916-7857-4abb-88b9-6ef066bc14a1", - "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mThe Kernel crashed while executing code in the the current cell or a previous cell. Please review the code in the cell(s) to identify a possible cause of the failure. Click <a href='https://aka.ms/vscodeJupyterKernelCrash'>here</a> for more info. View Jupyter <a href='command:jupyter.viewOutput'>log</a> for further details." - ] - } - ], - "source": [ - "df_pote_full = gen_all_data(reduce_output_ratio=1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "13d1e9ad-dae8-413e-a76f-05998f8a16f7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "29" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(df_pote_full.get_column_names())" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "sought-iraqi", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "39000000" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(df_pote_full)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "197cfe3f-d432-4cc7-a701-a3cd1414a1c7", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 22.2 s, sys: 667 ms, total: 22.9 s\n", - "Wall time: 22.9 s\n" - ] - } - ], - "source": [ - "%%time\n", - "df_pote_full.export_parquet(f\"{OUT_PATH}fake_pote_full.parquet\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "817bb0ba-0784-463d-bb47-1af1b4880ea6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 482 ms, sys: 3.29 s, total: 3.77 s\n", - "Wall time: 44.3 s\n" - ] - } - ], - "source": [ - "%%time\n", - "df_pote_full.export(f\"{OUT_PATH}fake_pote_full.arrow\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "272b74e7-e19f-4a58-b944-26b6f47f16be", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4.9G\t/mnt/data-out/leximpact/fake//fake_pote_full.arrow\n", - "2.7G\t/mnt/data-out/leximpact/fake//fake_pote_full.parquet\n", - "608K\t/mnt/data-out/leximpact/fake//fake_pote_light.parquet\n" - ] - } - ], - "source": [ - "!du -h {OUT_PATH}/*" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "correct-revision", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>rnsgbd</th>\n", - " <th>rnsgld</th>\n", - " <th>revkireZ1aj</th>\n", - " <th>Z1ap</th>\n", - " <th>Z1as</th>\n", - " <th>Z1bj</th>\n", - " <th>Z1bp</th>\n", - " <th>Z1bs</th>\n", - " <th>Z1cj</th>\n", - " <th>Z1cw</th>\n", - " <th>...</th>\n", - " <th>Z4bb</th>\n", - " <th>Z4bc</th>\n", - " <th>Z4bd</th>\n", - " <th>Z4be</th>\n", - " <th>Z6de</th>\n", - " <th>Z8sc</th>\n", - " <th>Z8sw</th>\n", - " <th>Z8sx</th>\n", - " <th>CICS</th>\n", - " <th>MNIMQG</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>data_type</th>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>...</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " <td>int64</td>\n", - " </tr>\n", - " <tr>\n", - " <th>count</th>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>...</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " <td>39000000</td>\n", - " </tr>\n", - " <tr>\n", - " <th>NA</th>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>...</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>mean</th>\n", - " <td>23612.393908666665</td>\n", - " <td>16686.731979897435</td>\n", - " <td>17999.188046692307</td>\n", - " <td>22921.20886292308</td>\n", - " <td>17040.07205202564</td>\n", - " <td>17793.07362046154</td>\n", - " <td>17940.101138589744</td>\n", - " <td>22387.16365876923</td>\n", - " <td>21754.137213666665</td>\n", - " <td>17330.203434615385</td>\n", - " <td>...</td>\n", - " <td>16978.268014820515</td>\n", - " <td>16787.83353846154</td>\n", - " <td>19892.917132</td>\n", - " <td>18082.292583871797</td>\n", - " <td>16897.733525717947</td>\n", - " <td>20601.45104748718</td>\n", - " <td>16426.29728551282</td>\n", - " <td>16835.938336615385</td>\n", - " <td>20841.969054974357</td>\n", - " <td>20157.805337358976</td>\n", - " </tr>\n", - " <tr>\n", - " <th>std</th>\n", - " <td>1985728.12425</td>\n", - " <td>168367.593804</td>\n", - " <td>468129.681965</td>\n", - " <td>1757926.167845</td>\n", - " <td>348813.11135</td>\n", - " <td>407738.350287</td>\n", - " <td>447581.264892</td>\n", - " <td>1463643.637909</td>\n", - " <td>1409093.278272</td>\n", - " <td>341201.458036</td>\n", - " <td>...</td>\n", - " <td>257858.16848</td>\n", - " <td>304306.782644</td>\n", - " <td>792156.835406</td>\n", - " <td>452162.364351</td>\n", - " <td>206769.636616</td>\n", - " <td>933589.30553</td>\n", - " <td>174934.347089</td>\n", - " <td>200883.42422</td>\n", - " <td>1257896.347618</td>\n", - " <td>1004222.29896</td>\n", - " </tr>\n", - " <tr>\n", - " <th>min</th>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>...</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>max</th>\n", - " <td>6365242793</td>\n", - " <td>391375749</td>\n", - " <td>1309974940</td>\n", - " <td>5585390554</td>\n", - " <td>939653071</td>\n", - " <td>1120062522</td>\n", - " <td>1245031261</td>\n", - " <td>4582824917</td>\n", - " <td>4402079217</td>\n", - " <td>913693388</td>\n", - " <td>...</td>\n", - " <td>658515059</td>\n", - " <td>802706621</td>\n", - " <td>2348740734</td>\n", - " <td>1258784526</td>\n", - " <td>504485451</td>\n", - " <td>2811703378</td>\n", - " <td>411754892</td>\n", - " <td>487116689</td>\n", - " <td>3897076655</td>\n", - " <td>3048988994</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>7 rows × 29 columns</p>\n", - "</div>" - ], - "text/plain": [ - " rnsgbd rnsgld revkireZ1aj \\\n", - "data_type int64 int64 int64 \n", - "count 39000000 39000000 39000000 \n", - "NA 0 0 0 \n", - "mean 23612.393908666665 16686.731979897435 17999.188046692307 \n", - "std 1985728.12425 168367.593804 468129.681965 \n", - "min 0 0 0 \n", - "max 6365242793 391375749 1309974940 \n", - "\n", - " Z1ap Z1as Z1bj \\\n", - "data_type int64 int64 int64 \n", - "count 39000000 39000000 39000000 \n", - "NA 0 0 0 \n", - "mean 22921.20886292308 17040.07205202564 17793.07362046154 \n", - "std 1757926.167845 348813.11135 407738.350287 \n", - "min 0 0 0 \n", - "max 5585390554 939653071 1120062522 \n", - "\n", - " Z1bp Z1bs Z1cj \\\n", - "data_type int64 int64 int64 \n", - "count 39000000 39000000 39000000 \n", - "NA 0 0 0 \n", - "mean 17940.101138589744 22387.16365876923 21754.137213666665 \n", - "std 447581.264892 1463643.637909 1409093.278272 \n", - "min 0 0 0 \n", - "max 1245031261 4582824917 4402079217 \n", - "\n", - " Z1cw ... Z4bb Z4bc \\\n", - "data_type int64 ... int64 int64 \n", - "count 39000000 ... 39000000 39000000 \n", - "NA 0 ... 0 0 \n", - "mean 17330.203434615385 ... 16978.268014820515 16787.83353846154 \n", - "std 341201.458036 ... 257858.16848 304306.782644 \n", - "min 0 ... 0 0 \n", - "max 913693388 ... 658515059 802706621 \n", - "\n", - " Z4bd Z4be Z6de \\\n", - "data_type int64 int64 int64 \n", - "count 39000000 39000000 39000000 \n", - "NA 0 0 0 \n", - "mean 19892.917132 18082.292583871797 16897.733525717947 \n", - "std 792156.835406 452162.364351 206769.636616 \n", - "min 0 0 0 \n", - "max 2348740734 1258784526 504485451 \n", - "\n", - " Z8sc Z8sw Z8sx \\\n", - "data_type int64 int64 int64 \n", - "count 39000000 39000000 39000000 \n", - "NA 0 0 0 \n", - "mean 20601.45104748718 16426.29728551282 16835.938336615385 \n", - "std 933589.30553 174934.347089 200883.42422 \n", - "min 0 0 0 \n", - "max 2811703378 411754892 487116689 \n", - "\n", - " CICS MNIMQG \n", - "data_type int64 int64 \n", - "count 39000000 39000000 \n", - "NA 0 0 \n", - "mean 20841.969054974357 20157.805337358976 \n", - "std 1257896.347618 1004222.29896 \n", - "min 0 0 \n", - "max 3897076655 3048988994 \n", - "\n", - "[7 rows x 29 columns]" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "%%time\n", - "df_pote_full.describe()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "banned-speech", - "metadata": {}, - "outputs": [], - "source": [ - "# df_pote_sample = df_pote_full.sample(n=300_000)\n", - "# df_pote_sample.export_parquet(f\"{OUT_PATH}/fake_pote_partial.parquet\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "hazardous-edition", - "metadata": {}, - "outputs": [], - "source": [ - "# df_pote_sample.describe()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "leximpact-prepare-data-kernel", - "language": "python", - "name": "leximpact-prepare-data-kernel" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/code_CASD/extractions_base_des_impots/00_tests_avant_casd.ipynb b/notebooks/code_CASD/extractions_base_des_impots/00_tests_avant_casd.ipynb deleted file mode 100644 index 6db89bfb530f2a4e2a64e61c1ee2b1d7586b7d46..0000000000000000000000000000000000000000 --- a/notebooks/code_CASD/extractions_base_des_impots/00_tests_avant_casd.ipynb +++ /dev/null @@ -1,234 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "cd323ce4-f97f-487f-98f5-a85a3f45a54c", - "metadata": {}, - "source": [ - "# Tests avant CASD" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5499d16b-b59f-4ee3-a11a-7598ccf06a1b", - "metadata": {}, - "outputs": [], - "source": [ - "# Activate multi-output in notebook\n", - "from IPython.core.interactiveshell import InteractiveShell\n", - "\n", - "InteractiveShell.ast_node_interactivity = \"all\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "195ded86-f330-44eb-b27c-61c5259d143a", - "metadata": {}, - "outputs": [], - "source": [ - "import vaex\n", - "import pandas as pd\n", - "from leximpact_prepare_data.scenario_tools.calib_and_copules import Quantile" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4097cb49-754c-4bc2-a25f-301c4bba15d5", - "metadata": {}, - "outputs": [], - "source": [ - "# vdf = vaex.open(\"/mnt/data-out/leximpact/fake//fake_pote_full.parquet\")\n", - "vdf = vaex.open(\"/mnt/data-out/leximpact/fake//fake_pote_light.parquet\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5d82ea4e-5342-448a-884f-6488a2ef9b16", - "metadata": {}, - "outputs": [], - "source": [ - "# vdf.get_column_names()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e8550ac7-4a55-44e2-996a-7b12f3a4be51", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 4.94 ms, sys: 798 µs, total: 5.74 ms\n", - "Wall time: 10.8 ms\n" - ] - } - ], - "source": [ - "%%time\n", - "data = vdf.Z1ap.tolist()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "84dbb029-51e7-40a5-b034-52f903ccc471", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 4.49 ms, sys: 422 µs, total: 4.91 ms\n", - "Wall time: 4.76 ms\n" - ] - } - ], - "source": [ - "%%time\n", - "q = Quantile(data)\n", - "decile = q.get_quantile(10)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "676d9ba6-763a-4b60-af22-1701b45a77b4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[389, 779, 1169, 1559, 1949, 2339, 2729, 3119, 3509, 3899]" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "text/plain": [ - "390" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "text/plain": [ - "1109" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "q.borders\n", - "data[q.borders[0]]\n", - "data[q.borders[1]]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "faaa1158-1615-4f57-a880-e7faf1b3ff2a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 39.2 ms, sys: 23.5 ms, total: 62.7 ms\n", - "Wall time: 48.1 ms\n" - ] - }, - { - "data": { - "text/plain": [ - "<Axes: xlabel='lower_bound'>" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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OXPmIDo6GoGBgVU9bCIiIqqFqvzU2IoVKzBr1ix8/PHHyMjIgIODAz766CMEBQVJfaZMmYLc3FyMHj0aWVlZ8Pb2RlhYGAwNDaU+GzduRGBgIHr27Am1Wo0BAwZg+fLlUru5uTn27duHgIAAuLm5wdraGkFBQTpzDXl5eWHTpk34/PPPMWPGDLRo0QLbtm1D69atq3rYREREVAtV+TxCdQnnESIiInoyziNEREREVAsxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiVUsQ+vvvv/Hee+/BysoKRkZGaNOmDaKjo6V2IQSCgoJgb28PIyMj+Pj44MKFCzrbuHXrFoYOHQozMzNYWFjA398fd+7c0elz+vRpdOnSBYaGhnB0dMTChQvL1bJlyxY4OTnB0NAQbdq0we7du6tjyERERFQLVXkQyszMROfOnVGvXj3s2bMH586dw5IlS9CgQQOpz8KFC7F8+XKsXr0aJ06cgImJCXx9fXHv3j2pz9ChQ5GQkID9+/dj586dOHz4MEaPHi215+TkoHfv3mjSpAliYmKwaNEizJkzB99//73U59ixYxg8eDD8/f1x6tQp+Pn5wc/PD2fPnq3qYRMREVEtpBJCiKrc4LRp03D06FH873//e2i7EAIODg6YOHEiJk2aBADIzs6Gra0t1q9fj0GDBiExMREuLi44efIk3N3dAQBhYWHo168frl27BgcHB6xatQozZ86EVquFRqOR9r1t2zYkJSUBAAYOHIjc3Fzs3LlT2n+nTp3g6uqK1atXP3EsOTk5MDc3R3Z2NszMzJ7p60JERFRXNZ22q9r3cXl+/wr3rczv7yo/IrRjxw64u7vjnXfegY2NDdq3b481a9ZI7SkpKdBqtfDx8ZHWmZubw8PDA5GRkQCAyMhIWFhYSCEIAHx8fKBWq3HixAmpT9euXaUQBAC+vr5ITk5GZmam1Kfsfkr7lO7nQfn5+cjJydFZiIiIqO6q8iB06dIlrFq1Ci1atMDevXsxduxYfPrpp9iwYQMAQKvVAgBsbW113mdrayu1abVa2NjY6LTr6+vD0tJSp8/DtlF2H4/qU9r+oHnz5sHc3FxaHB0dKz1+IiIiqj2qPAiVlJSgQ4cO+Pe//4327dtj9OjRGDVqVIVORclt+vTpyM7OlparV6/KXRIRERFVoyoPQvb29nBxcdFZ5+zsjNTUVACAnZ0dACA9PV2nT3p6utRmZ2eHjIwMnfaioiLcunVLp8/DtlF2H4/qU9r+IAMDA5iZmeksREREVHdVeRDq3LkzkpOTddadP38eTZo0AQA0a9YMdnZ2CA8Pl9pzcnJw4sQJeHp6AgA8PT2RlZWFmJgYqc+BAwdQUlICDw8Pqc/hw4dRWFgo9dm/fz9atWol3aHm6emps5/SPqX7ISIiImWr8iD02Wef4fjx4/j3v/+NixcvYtOmTfj+++8REBAAAFCpVBg/fjzmzp2LHTt24MyZMxg2bBgcHBzg5+cH4P4RpD59+mDUqFGIiorC0aNHERgYiEGDBsHBwQEAMGTIEGg0Gvj7+yMhIQGhoaEIDg7GhAkTpFrGjRuHsLAwLFmyBElJSZgzZw6io6MRGBhY1cMmIiKiWki/qjf4yiuvYOvWrZg+fTq+/PJLNGvWDMuWLcPQoUOlPlOmTEFubi5Gjx6NrKwseHt7IywsDIaGhlKfjRs3IjAwED179oRarcaAAQOwfPlyqd3c3Bz79u1DQEAA3NzcYG1tjaCgIJ25hry8vLBp0yZ8/vnnmDFjBlq0aIFt27ahdevWVT1sIiIiqoWqfB6huoTzCBERET0Z5xEiIiIiqoUYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixqj0IzZ8/HyqVCuPHj5fW3bt3DwEBAbCysoKpqSkGDBiA9PR0nfelpqaif//+MDY2ho2NDSZPnoyioiKdPgcPHkSHDh1gYGCA5s2bY/369eX2v3LlSjRt2hSGhobw8PBAVFRUdQyTiIiIaqFqDUInT57Ed999h7Zt2+qs/+yzz/Dnn39iy5YtOHToENLS0vCvf/1Lai8uLkb//v1RUFCAY8eOYcOGDVi/fj2CgoKkPikpKejfvz9effVVxMXFYfz48fjwww+xd+9eqU9oaCgmTJiA2bNnIzY2Fu3atYOvry8yMjKqc9hERERUS6iEEKI6Nnznzh106NAB3377LebOnQtXV1csW7YM2dnZaNiwITZt2oS3334bAJCUlARnZ2dERkaiU6dO2LNnD1577TWkpaXB1tYWALB69WpMnToVN27cgEajwdSpU7Fr1y6cPXtW2uegQYOQlZWFsLAwAICHhwdeeeUVhISEAABKSkrg6OiITz75BNOmTXviGHJycmBubo7s7GyYmZlV9ZeIiIioTmg6bVe17+Py/P4V7luZ39/VdkQoICAA/fv3h4+Pj876mJgYFBYW6qx3cnJC48aNERkZCQCIjIxEmzZtpBAEAL6+vsjJyUFCQoLU58Ft+/r6StsoKChATEyMTh+1Wg0fHx+pz4Py8/ORk5OjsxAREVHdpV8dG928eTNiY2Nx8uTJcm1arRYajQYWFhY6621tbaHVaqU+ZUNQaXtp2+P65OTk4O7du8jMzERxcfFD+yQlJT207nnz5uGLL76o+ECJiIioVqvyI0JXr17FuHHjsHHjRhgaGlb15qvV9OnTkZ2dLS1Xr16VuyQiIiKqRlUehGJiYpCRkYEOHTpAX18f+vr6OHToEJYvXw59fX3Y2tqioKAAWVlZOu9LT0+HnZ0dAMDOzq7cXWSlr5/Ux8zMDEZGRrC2toaent5D+5Ru40EGBgYwMzPTWYiIiKjuqvIg1LNnT5w5cwZxcXHS4u7ujqFDh0r/rlevHsLDw6X3JCcnIzU1FZ6engAAT09PnDlzRufurv3798PMzAwuLi5Sn7LbKO1Tug2NRgM3NzedPiUlJQgPD5f6EBERkbJV+TVC9evXR+vWrXXWmZiYwMrKSlrv7++PCRMmwNLSEmZmZvjkk0/g6emJTp06AQB69+4NFxcXvP/++1i4cCG0Wi0+//xzBAQEwMDAAAAwZswYhISEYMqUKfjggw9w4MAB/Prrr9i16/+uXJ8wYQKGDx8Od3d3dOzYEcuWLUNubi5GjhxZ1cMmIiKiWqhaLpZ+kqVLl0KtVmPAgAHIz8+Hr68vvv32W6ldT08PO3fuxNixY+Hp6QkTExMMHz4cX375pdSnWbNm2LVrFz777DMEBwejUaNGWLt2LXx9faU+AwcOxI0bNxAUFAStVgtXV1eEhYWVu4CaiIiIlKna5hGqCziPEBER0ZNxHiEiIiKiWohBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUi0GIiIiIFItBiIiIiBSLQYiIiIgUS1/uAoiIiJSs6bRd1br9y/P7V+v2azseESIiIiLFqvIgNG/ePLzyyiuoX78+bGxs4Ofnh+TkZJ0+9+7dQ0BAAKysrGBqaooBAwYgPT1dp09qair69+8PY2Nj2NjYYPLkySgqKtLpc/DgQXTo0AEGBgZo3rw51q9fX66elStXomnTpjA0NISHhweioqKqeshERERUS1V5EDp06BACAgJw/Phx7N+/H4WFhejduzdyc3OlPp999hn+/PNPbNmyBYcOHUJaWhr+9a9/Se3FxcXo378/CgoKcOzYMWzYsAHr169HUFCQ1CclJQX9+/fHq6++iri4OIwfPx4ffvgh9u7dK/UJDQ3FhAkTMHv2bMTGxqJdu3bw9fVFRkZGVQ+biIiIaiGVEEJU5w5u3LgBGxsbHDp0CF27dkV2djYaNmyITZs24e233wYAJCUlwdnZGZGRkejUqRP27NmD1157DWlpabC1tQUArF69GlOnTsWNGzeg0WgwdepU7Nq1C2fPnpX2NWjQIGRlZSEsLAwA4OHhgVdeeQUhISEAgJKSEjg6OuKTTz7BtGnTnlh7Tk4OzM3NkZ2dDTMzs6r+0hAREdWJa4SqewxA5cZRmd/f1X6NUHZ2NgDA0tISABATE4PCwkL4+PhIfZycnNC4cWNERkYCACIjI9GmTRspBAGAr68vcnJykJCQIPUpu43SPqXbKCgoQExMjE4ftVoNHx8fqc+D8vPzkZOTo7MQERFR3VWtQaikpATjx49H586d0bp1awCAVquFRqOBhYWFTl9bW1totVqpT9kQVNpe2va4Pjk5Obh79y7++ecfFBcXP7RP6TYeNG/ePJibm0uLo6Pj0w2ciIiIaoVqDUIBAQE4e/YsNm/eXJ27qTLTp09Hdna2tFy9elXukoiIiKgaVds8QoGBgdi5cycOHz6MRo0aSevt7OxQUFCArKwsnaNC6enpsLOzk/o8eHdX6V1lZfs8eKdZeno6zMzMYGRkBD09Pejp6T20T+k2HmRgYAADA4OnGzARERHVOlV+REgIgcDAQGzduhUHDhxAs2bNdNrd3NxQr149hIeHS+uSk5ORmpoKT09PAICnpyfOnDmjc3fX/v37YWZmBhcXF6lP2W2U9indhkajgZubm06fkpIShIeHS32IiIhI2ar8iFBAQAA2bdqE7du3o379+tL1OObm5jAyMoK5uTn8/f0xYcIEWFpawszMDJ988gk8PT3RqVMnAEDv3r3h4uKC999/HwsXLoRWq8Xnn3+OgIAA6YjNmDFjEBISgilTpuCDDz7AgQMH8Ouvv2LXrv+7cn3ChAkYPnw43N3d0bFjRyxbtgy5ubkYOXJkVQ+biIiIaqEqD0KrVq0CAHTv3l1n/Y8//ogRI0YAAJYuXQq1Wo0BAwYgPz8fvr6++Pbbb6W+enp62LlzJ8aOHQtPT0+YmJhg+PDh+PLLL6U+zZo1w65du/DZZ58hODgYjRo1wtq1a+Hr6yv1GThwIG7cuIGgoCBotVq4uroiLCys3AXUREREpEzVPo9QbcZ5hIiIqLpxHqGKqbXzCBERERHVVAxCREREpFgMQkRERKRYDEJERESkWAxCREREpFgMQkRERKRYDEJERESkWAxCREREpFgMQkRERKRYDEJERESkWAxCREREpFgMQkRERKRYDEJERESkWAxCREREpFgMQkRERKRY+nIXQERE9DSaTttV7fu4PL9/te+D5MUjQkRERKRYDEJERESkWAxCREREpFgMQkRERKRYDEJERESkWAxCREREpFgMQkRERKRYDEJERESkWAxCREREpFgMQkRERKRYDEJERESkWAxCREREpFh86CoRkcLwYaVE/4dHhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsRiEiIiISLF4+zwRUSXw1nOiuoVHhIiIiEixGISIiIhIsRiEiIiISLEYhIiIiEixGISIiIhIsXjXGBE9F7zbiohqIh4RIiIiIsViECIiIiLFYhAiIiIixeI1QkS1QHVfX8Nra4hIqXhEiIiIiBRLEUeEVq5ciUWLFkGr1aJdu3ZYsWIFOnbsKHdZ9BzwTiUiInqcOn9EKDQ0FBMmTMDs2bMRGxuLdu3awdfXFxkZGXKXRkRERDKr80eEvvnmG4waNQojR44EAKxevRq7du3CunXrMG3aNJmrq7l4JIWIiJSgTgehgoICxMTEYPr06dI6tVoNHx8fREZGluufn5+P/Px86XV2djYAICcnp/qLrWFK8vOqfR/P4+vKcVRMXRgDwHFUVF0YA8BxVFRdGANQuXGU9hVCPLmzqMP+/vtvAUAcO3ZMZ/3kyZNFx44dy/WfPXu2AMCFCxcuXLhwqQPL1atXn5gV6vQRocqaPn06JkyYIL0uKSnBrVu3YGVlBZVKVS37zMnJgaOjI65evQozM7Nq2cfzUBfGURfGAHAcNUldGANQN8ZRF8YAcBwVJYTA7du34eDg8MS+dToIWVtbQ09PD+np6Trr09PTYWdnV66/gYEBDAwMdNZZWFhUZ4kSMzOzWv2hLlUXxlEXxgBwHDVJXRgDUDfGURfGAHAcFWFubl6hfnX6rjGNRgM3NzeEh4dL60pKShAeHg5PT08ZKyMiIqKaoE4fEQKACRMmYPjw4XB3d0fHjh2xbNky5ObmSneRERERkXLV+SA0cOBA3LhxA0FBQdBqtXB1dUVYWBhsbW3lLg3A/dNxs2fPLndKrrapC+OoC2MAOI6apC6MAagb46gLYwA4juqgEqIi95YRERER1T11+hohIiIiosdhECIiIiLFYhAiIiIixWIQIiIiIsViECIiIiLFYhAiIiIixarz8wjVNOfOnUNISAgiIyOh1WoBAHZ2dvD09ERgYCBcXFxkrpCo5igsLES9evXkLqNSioqKkJCQoPP97eLiUuvGodVqceLECZ1xeHh4PPTxRDVVVFTUQ3/WduzYUebKqCbhPELP0Z49e+Dn54cOHTrA19dXmtQxPT0d+/fvR0xMDLZv3w5fX1+ZK60cIQQOHjyIixcvwt7eHr6+vrXuh36plJQUaRytW7eWu5ynVlhYiMuXL8PGxqbCz9uR06+//go/Pz9oNBoAQEhICBYtWoRr166hQYMG+PTTTxEUFCRzlY9XUlKCoKAgrFy5EtnZ2Tpt5ubmCAwMxBdffAG1umYfiM/NzcVHH32EzZs3Q6VSwdLSEgBw69YtCCEwePBgfPfddzA2Npa50kfLyMjAgAEDcPToUTRu3FjnZ21qaio6d+6M33//HTY2NjJX+vRq0x8JGRkZOl/ruLg4LF26VPpZGxgYiO7du8tX4BOfT09Vpm3btmLWrFmPbJ89e7Zo06bNc6zo6fTt21dkZWUJIYS4efOm8PDwECqVSjRs2FCo1Wrh5OQkMjIyZK7yycaOHStu374thBAiLy9PDBgwQKjVaqFSqYRarRavvvqq1F6TLViwQOTl5QkhhCgqKhITJ04UGo1GqNVqoa+vL0aOHCkKCgpkrvLx1Gq1SE9PF0IIsW7dOmFoaCiCgoLErl27xNy5c4WJiYlYs2aNzFU+3uTJk0XDhg3F6tWrRUpKisjLyxN5eXkiJSVFfPfdd8LGxkZMmTJF7jKfyN/fX7Ro0UKEhYWJoqIiaX1RUZHYu3evaNmypfjwww9lrPDJBgwYIDw9PUVSUlK5tqSkJOHl5SXefvttGSqrvNDQUJGfny+9XrFihWjcuLFQq9XCyspKfPHFFzJWVzFlv7+PHj0q6tWrJ7p16yYmT54sevXqJfT19cWhQ4dkq49B6DkyNDR86DdmqaSkJGFoaPgcK3o6KpVK+lCPHTtWuLi4iEuXLgkhhLh69apwc3MTY8aMkbPECin7zTl9+nTRqFEjceDAAZGbmyuOHDkiXnrpJTFt2jSZq3yysuNYtGiRaNCggVi3bp1ISEgQP//8s7CxsRELFiyQucrHK/uZ6tixo1i4cKFO+7fffivat28vR2kVZmtrK8LCwh7ZHhYWJmxsbJ5jRU/HwsJCHD169JHtR44cERYWFs+xosozNTUVsbGxj2yPjo4Wpqamz7Gip1cX/kgo+/3dq1cv8cEHH+i0jxs3TvTo0UOO0oQQDELPlZOTk1iyZMkj25csWSJatWr1HCt6OmU/1K1atRLbt2/Xaf/vf/8rmjVrJkdplVJ2HK1btxabNm3Sad++fbto2bKlHKVVStlxtG/fXnz33Xc67T///LN4+eWX5SitwlQqlXQU0draWsTFxem0X7x4UdSvX1+O0irM2NhYnD59+pHt8fHxwsTE5DlW9HTMzMzEyZMnH9keFRUlzMzMnmNFlWdlZSUOHjz4yPaIiAhhZWX1HCt6enXhj4SyY7C3txeRkZE67WfPnhXW1tZylCaEEIIXSz9HX375JYYMGYKDBw/Cx8dH57x1eHg4wsLCsGnTJpmrrBiVSgUAyMzMxEsvvaTT1rx5c6SlpclRVqWVjkOr1aJt27Y6be3atcPVq1flKKvSSseRmpoKLy8vnTYvLy+kpKTIUValhIWFwdzcHIaGhsjLy9Npu3fvnjTGmqp79+6YNGkSNm7cCGtra522f/75B1OnTpX3OogKeu211zB69Gj88MMPaN++vU7bqVOnMHbsWLz++usyVVcxAwcOxPDhw7F06VL07NkTZmZmAICcnByEh4djwoQJGDx4sMxVVlzpZ//SpUvo3bu3Tlvv3r0xdepUOcqqlNu3b8PQ0BCGhoblHrT6sO/554lB6Dl655138MILL2D58uVYsmRJuTsZDh48CE9PT5mrrJgRI0bAwMAAhYWFSElJwcsvvyy1abVaWFhYyFdcJcyaNQvGxsZQq9VIS0vTGcfNmzdhYmIiY3UVt2bNGpiamkKj0eDWrVs6bbdv364RT3h+kuHDh0v/PnDggM73wvHjx8sF7ppm9erV6NevH+zt7dGmTRudP3TOnDkDFxcX7Ny5U+YqnywkJARDhgyBm5sbGjRoIF3kmpGRgaysLPj6+iIkJETmKh/vm2++QUlJCQYNGoSioiLpIvyCggLo6+vD398fixcvlrnKiqvtfyQAQMuWLQHcv7kmOjpaJ2QnJCTAwcFBrtIYhJ43Ly+vcn+x1zZlf2G9+eab5b4xf//9d7i6uj7nqiqva9euSE5OBgC4uLjgypUrOu27d+/WCUY1VePGjbFmzRoAgIGBAWJjY9G1a1epPSIiAq1atZKrvAopKSl5bLutrS3mzZv3nKp5Oo6OjoiPj8fevXtx/Phx6Q+djh074t///jd69+5d4+8YA4AGDRpgz549SEpKeuit505OTjJX+GQGBgZYtWoVFixYgJiYGJ0xuLm5SUeIaova/kdCRESEzmt7e3ud1ykpKRg9evTzLEkHb5+nKpebmws9PT0YGhrKXcozuXTpEjQaDRo1aiR3Kc/k+PHjMDAwKHeag4hqv507d6JevXq1btqVmoRBqAaZMWMGtFot1q1bJ3cpREQPdf36dRQWFqJx48Zyl/LUoqOjkZeXp3PklJSr5h+nVZBr167h8uXLcpfxzLZv346ffvpJ7jKeWXR0NA4fPix3Gc/s+vXrSE1NlbuMZ+Ls7Aw9PT25y3gmdWEMANCjRw80a9ZM7jKeyfvvv49XX31V7jLo/xs+fDh69Ogh2/55RIiqnJOTEy5cuIDi4mK5S3kmzs7OOH/+PMdRA2zbtg3Z2dk610rUNnVhDABw8uRJ5OXloVu3bnKX8tTS0tJQWFiIJk2ayF3KM6sL398zZszA9evX8eOPP8qyfwah5+yff/7BunXryl2E6OXlhREjRqBhw4YyV0il6soPy7rwi4uIHq6uBGw5MQg9RydPnoSvry+MjY0fOo9QXl4e9u7dC3d3d5krJSKq/erCg2Op+jEIPUedOnVCu3btsHr16nLzPgghMGbMGJw+fRqRkZEyVVg5ly5dwpEjR3D9+nWo1Wq8+OKL6NWrV626NbW4uBhXrlxB06ZNoVarkZ+fj+3bt6OkpASvvvqqFFZroy+++AIBAQHlJverierXr493330X/v7+tXZ6iaioKLi5uUnXAe3cuROLFi2SHiz56aefYtiwYTJX+ezi4+PRoUOHGn0qpi48OPZhsrOzdUJdbXigcqlz584hJCTkoVMyBAYGwsXFRb7iZJjNWrEMDQ1FYmLiI9sTExNrxbPG7ty5I95++22hUqmkB5Ta2dkJPT09YWpqKkJCQuQusULi4+OFvb29UKvVonXr1iI1NVW0bt1amJiYCFNTU9GgQQMRFRUld5lPlJ2dXW7JysoS9erVEydOnJDW1WQqlUq8/PLLQqVSCScnJ7F48eJa8eDesso+E2rHjh1CrVaLYcOGiZUrV4oPP/xQ6Ovriz/++EPmKp9dXFycUKlUcpfxWHXhwbFlrVmzRjg7Owu1Wq2zODs7i7Vr18pd3hPt3r1baDQa0alTJzF79mzx7bffim+//VbMnj1beHl5CQMDg8c+p6+6MQg9R02bNhUbNmx4ZPuGDRtEkyZNnl9BT2n06NGic+fO4syZM+LChQvi7bffFlOmTBG5ubnihx9+EMbGxmLjxo1yl/lEvr6+4u233xZnzpwR48aNE87OzuKdd94RBQUForCwULz33nvCx8dH7jKf6MEfjqVLaUgt/W9NVvosori4OBEYGCgsLS2FRqMR//rXv8Tu3btFSUmJ3CU+UdnnKXl7e5d7YO/XX38tOnXqJEdplfLWW289dunRo0eN/zzVhQfHllq4cKEwNjYW06ZNExEREeLcuXPi3LlzIiIiQkyfPl2YmJiIRYsWyV3mY7Vt21bMmjXrke2zZ88Wbdq0eY4V6eKpsedo5cqVmDhxIj766CP07Nmz3DVCa9asweLFi/Hxxx/LXOnjNWzYEGFhYXBzcwNw/3ljDg4OuHnzJoyNjbFy5UqsXbsWp06dkrnSx7O0tMTRo0fh7OyMu3fvon79+jh27Bg6duwI4P607926dcM///wjc6WP16hRI7i6umLixInSzMVCCPj4+GDt2rXSrc41+WJptVoNrVYrPc4hPz8ff/zxB3744QdERETAwcEBI0eOxJdffilzpY9Wdgy2trbYvXu39D0CAMnJyejUqRMyMzNlrPLJ6tWrh169ej3ytPCtW7ewc+fOGn1qzNzcHOHh4Y+83vLkyZPw8fFBdnb2c66s8po0aYJFixbh3XfffWh7aGgoJk+eXKOnyDAyMkJcXNwjZ7hPTk6Gq6sr7t69+5wr+/9ki2AKtXnzZuHh4SH09fWlU0v6+vrCw8NDhIaGyl1ehVhYWIjz589LrwsKCoS+vr50KuP8+fO14hRf2XEUFBQIPT09ERMTI7UnJiaKBg0ayFVehd28eVP4+fmJV199VVy7dk1ar6+vLxISEmSsrOLKnlZ6UEpKivj888+Fo6Pjc66qclQqlYiIiBDx8fGiSZMm5U6rJiUlCVNTU5mqq7g2bdo89nTLqVOnavwRoSFDhoj27duL2NjYcm2xsbHCzc1NDB06VIbKKs/Q0FCcO3fuke0JCQnCyMjoOVZUeU5OTmLJkiWPbF+yZIlo1arVc6xIF4OQTAoKCkRaWppIS0sTBQUFcpdTKb169RIBAQHS60WLFgl7e3vpdWxsrLC2tpajtErp2bOn8Pf3F9euXRNffPGFaN68uRg5cqTU/vHHH4suXbrIWGHlfPvtt8LBwUFs2rRJCFG7glDZ00qPUtNPj5U9FalSqcTSpUt12n/55Rfh4uIiT3GVMGLECPHxxx8/sv3cuXOiadOmz7Giyrt165bo06ePUKlUwtLSUjg5OQknJydhaWkp1Gq16Nu3r8jMzJS7zArp0qWLGDZsmCgsLCzXVlRUJIYNGya6du0qQ2UV9+uvvwp9fX3x+uuvi+DgYLF582axefNmERwcLN544w2h0WjEb7/9Jlt9PDVGlRYbG4tevXpBo9FAo9FAq9Viw4YNGDRoEID7pwCjoqKwYcMGmSt9vJMnT6Jv377IzMyElZUVIiIi4O/vjytXrkCtViMzMxN//vknevbsKXepFXbu3DkMGTIELi4u2LJlC+Lj4+W9G6OCvvjiC0yePLnW3cVT1oMP7TU1NYWVlZX0unS29Zp+51h+fj6Ki4tr9f+LUomJiToPwK1ND44tdfr0afj6+qKwsBBdu3bVuaTi8OHD0Gg02LdvH1q3bi1zpY937NgxLF++/KF3jY0bN07nQbLPG4MQPZXr169j586dyM/PR48ePWrFL9uHyc3NRVJSElq1agVTU1Pcu3cPGzduxN27d9GrV68a/9T2hykoKMC0adMQERGBP/74o9Y/DoFI6W7fvo2ff/75oaFuyJAhtWrKkpqIQYiIaozi4mKd53GdOHEC+fn58PT0RL169WSs7NkVFRUhLS2tVj6stLCwEJcvX4aNjU2tmrvmwIED5eY6e+ONN9CiRQu5S6MahA9dpacSHx+PdevWISUlBcD9O6w+/vhjjBkzBnv37pW5usqJiopCcHAwpk+fjunTpyM4OBgnT56Uu6wK+/3335GXlyd3Gc/k+vXr8Pb2hoGBAbp164bMzEy89tpr8PT0RPfu3dG6dWtcv35d7jKfSUJCQq04Ordw4ULp7p3i4mJMmjQJpqamcHJygrW1NT744AMUFhbKXOXjZWRkwMPDA7169cJXX32F77//HidOnMDixYvh7OyMKVOmyF1ipeXm5uLw4cMIDQ3Fli1bEBsbi9pyHCMqKkrnLsOdO3eiW7dueOGFF+Du7i7/Q7pluzqJaq3ff/9d6OnpCSsrK2Fqair2798vLCwshI+Pj/D19RV6enq1Yh6h9PR04e3tLVQqlWjSpIno2LGj6Nixo2jSpIlQqVTC29v7iRfw1gQqlUqYmZmJUaNGiePHj8tdzlN5//33hZeXl9ixY4cYOHCg8PLyEl26dBHXrl0TV65cEZ07d9a5QL82iouLq/F3WwmhewffokWLRIMGDcS6detEQkKC+Pnnn4WNjY1YsGCBzFU+3sCBA4Wfn5/Izs4W9+7dE4GBgWLYsGFCCCHCw8OFlZWVWLZsmcxVVkxxcbGYPHmyMDIy0pkjrPTn1o4dO+Qu8Ylq+mSjDEJUaR06dBBz584VQty/E8bCwkJ8+eWXUvvixYuFq6urXOVV2IABA4Snp6dISkoq15aUlCS8vLzE22+/LUNllaNSqcSXX34p2rdvL83QvHTpUvHPP//IXVqF2dvbi8jISCHE/ekAVCqV+O9//yu1h4eHixdffFGu8iqkffv2j12cnJxqRRAqewdf+/btxXfffafT/vPPP4uXX35ZjtIqzMzMTJw9e1Z6fefOHVGvXj1phvX//Oc/st6uXRlTp04Vzs7O4s8//xT79+8XXbt2FQsWLBCJiYli1qxZwsDAQOzdu1fuMh+rpk82ymuEqNJMTU1x9uxZNG3aFEIIGBgYICYmBm3atAFw/xlk7dq1w+3bt2Wu9PHq16+Pw4cPo3379g9tj4mJQffu3Wv8OMpO5BcTE4MffvgBv/zyC+7evYs33ngDo0aNQq9eveQu87GMjIxw/vx5ODo6Arj/GYuLi0Pz5s0BAKmpqXBycqrRpwANDQ0xaNCgR57+un79OtasWVOjJyIE7n+e0tPT0bBhQ1hbW+PgwYM6dySlpKSgdevWyM3NlbHKx7OxscHBgwelmzju3r0LU1NT3LhxA5aWlrh06RJcXFxw7949mSt9MgcHB4SGhqJLly4AgL///htOTk74559/YGBggK+++gp79uzBsWPHZK700Wr6ZKP6suyVarX69evj5s2baNq0KbKyslBUVISbN29K7Tdv3oSpqamMFVaMgYEBcnJyHtl++/ZtGBgYPMeKnp2bmxvc3NzwzTffYMuWLVi3bh369OmDxo0bS9dz1UQ2Nja4fv26FIQCAwOlB2UC92cvNzExkau8CmndujU8PDwwduzYh7bHxcVhzZo1z7mqp7NmzRqYmppCo9Hg1q1bOm214fvC29sbQUFB2LBhAzQaDWbMmIEXX3xR+kzduHEDDRo0kLnKirlz5w5eeOEF6bW9vT3u3buHzMxM2NnZYcCAAZg/f76MFVbMuXPnoNVqYWRkhJKSknLtRUVFMlR1Hy+Wpkrz8fFBQEAANm7ciOHDh6N3796YPn06kpKSkJycjMmTJ8Pb21vuMp9o4MCBGD58OLZu3aoTiHJycrB161aMHDkSgwcPlrHCilGpVOXWGRoa4v3330dERASSk5MxZMgQGSqrOFdXV0RGRkqv58+frxOEjhw5grZt28pRWoV17twZycnJj2yvX78+unbt+hwrejqNGzfGmjVrsHTpUhgYGCA2NlanPSIiosZPK7F48WLExcXBwsICJiYmWL9+PVatWiW1JyYmYsSIEfIVWAlt2rTBL7/8Ir3+9ddfYWpqCjs7OwBASUlJjQ+mANCzZ0+4uroiNTUVR48e1Wk7deqUrHdT8tQYVVp6ejref/99REZGonPnzggNDcXnn3+OlStXAgCaN2+OPXv24KWXXpK50sfLz8/H+PHjsW7dOhQVFUGj0QC4Pw+Pvr4+/P39pV8GNdmDz+mqi6KiomBsbFzjJ41TguPHj8PAwOCRp5Rriry8PBw9ehT5+fno1KkTrK2t5S7pqYSHh6N///5o164dDA0NcezYMSxatAjjx48HcD/07dmzB+Hh4fIW+hg1fbJRBiGqMpcuXUJeXh6cnJygr197zrrm5OQgJiZGZ6IyNze3WjNJ2ZUrV+Do6Cg9cJWI6pb4+Hj8+uuvyM/Ph6+vb42/5q+2YRCip1I6db2XlxdatWqFpKQkBAcHIz8/H++99x569Oghd4lUC9W1CfBSUlJw8eJF2Nvb19qjWUIIHDx4UBqHr69vjZ/c8tq1azA0NJSOAv3vf//D6tWrkZqaiiZNmiAgIEDWRzpQDZukU67b1aj22rNnj9BoNMLS0lIYGhqKPXv2iIYNGwofHx/Ro0cPoaenJ8LDw+Uu85lptVrxxRdfyF1Ghfz5559i1qxZ4siRI0KI+7eb9+3bV/j6+pa7/bkmSk9PFx07dhRqtVro6+sLtVot3NzchJ2dndDT0xOTJ0+Wu8QnGjt2rLh9+7YQQoi8vDwxYMAAac4XtVotXn31Vam9Juvbt6/IysoSQtyfysDDw0OoVCrRsGFDoVarhZOTk8jIyJC5ysfr2LGj+PPPP4UQQmzbtk2o1WrxxhtviKlTp4q33npL1KtXT2qvDdLT00V4eLj0/0Wr1YoFCxaIefPmidOnT8tc3ZMtWLBA5OXlCSHuPyh24sSJQqPRSN/vI0eOlPXh4wxCVGmenp5i5syZQoj78wg1aNBAzJgxQ2qfNm2a6NWrl1zlVZnaMgHe6tWrhb6+vnBzcxNmZmbiP//5j6hfv7748MMPxUcffSSMjIxq/ORxdWECvLKTxk2fPl00atRIHDhwQOTm5oojR46Il156qdz8KTVR2Tlfxo4dK1xcXMSlS5eEEEJcvXpVuLm5iTFjxshZ4hOZmJhINXt4eIj58+frtK9YsUK0b99ejtIqLSIiQpiYmAiVSiXs7OxEXFycaNSokWjRooVo1apVrZhHqKZP0skgRJVmZmYmLly4IIS4P+upvr6+iI2NldrPnDkjbG1t5SqvwuLj4x+7hIaG1oog5OLiIr7//nshhBAHDhwQhoaGYuXKlVL7jz/+KJydneUqr0LqwgR4ZQNE69atxaZNm3Tat2/fLlq2bClHaZVSdhytWrUS27dv12n/73//K5o1ayZHaRVmbm4u4uPjhRBC2NjYSP8udfHiRWFsbCxHaZXm7e0tAgICxO3bt8WiRYvECy+8oDPL+qRJk4SXl5eMFT5ZTZ+kk0GIKs3MzExcvHhRem1qair++usv6fXly5eFoaGhHKVVSukpi9Lp6ssuZU9p1HRGRkbiypUr0ut69eqJM2fOSK9TUlJq/A/9hg0bioSEBOl1Xl6eUKvV4ubNm0IIIf766y9hYGAgV3kVolKppFNG1tbWOsFOiPvfF0ZGRnKUVillx2FjY/PQcdT0/xdvvPGGdPTN19dXBAcH67SvWbNGtGjRQo7SKq3sz9vCwkKhr68vTp06JbWfP39emJuby1NcBZX9TFlZWen8fBJCiEuXLsn6M6r23NpDNUbTpk1x4cIF6fb4yMhInTkgUlNTYW9vL1d5FWZpaYmFCxeiZ8+eD21PSEjA66+//pyrqjwrKytcuXIFjRs3RlpaGoqKipCamipdnHvlyhWdOXlqoroyAd6sWbNgbGwMtVqNtLQ0vPzyy1LbzZs3a/ykkKVGjBgBAwMDFBYWIiUlRWccWq0WFhYW8hVXAfPnz0eXLl2QlpYGb29vzJw5EydPnoSzszOSk5MRGhqK1atXy11mhWg0GmkG7IKCApSUlOjMiH337t0af/E6ULMn6WQQokobO3aszmMCHrwbZs+ePbXirjE3NzekpaWhSZMmD23PysqqFU93fvPNN+Hv74/hw4djx44dGDZsGCZOnAi1Wg2VSoXJkyejd+/ecpf5WIsXL0bv3r1hYWEBlUoFExMTbNmyRWqvDRPgde3aVZpQ0cXFpdzcKbt379YJFDXV8OHDpX+/+eab5R5r8vvvv8PV1fU5V1U5zs7OOHHiBGbOnImFCxciNzcXGzduhL6+Pl555RVs3rwZfn5+cpdZIZ07d8a0adMwbdo0/PTTT+jQoQPmzp2L0NBQqFQqfPXVV3B3d5e7zMcqnaQTgDRJZ9nJReWepJO3z5Nibd26Fbm5uXjvvfce2p6ZmYkdO3bo/GKoiXJzc/HZZ58hMjISXl5eWLFiBZYvX46ZM2eisLAQ3bp1Q2hoaI2fcDEvLw9HjhxBQUFBrZ4A70FCCKhUKly6dAkajQaNGjWSu6RnkpubCz09PRgaGspdSoUIIZCRkYGSkhJYW1vXiqMnZV24cAH9+/fHxYsX4eTkhP379+Pjjz/G7t27AQANGjRAWFgYOnToIHOlT0/uSToZhIjqqHv37qGwsBD169eXuxRF02g0iI+Ph7Ozs9ylKMr169exatWqcvNS+fn5YcSIEdDT05O7xEq5efOmzmzM4eHhuHv3Ljw9PXXWU+UxCBE9wtWrVzF79mysW7dO7lKeSW0Zx927dxETEwNLS0vpqeGl7t27h19//VW2KfgrYsKECQ9dHxwcjPfee0/6ZfXNN988z7IqLTY2Fg0aNECzZs0AAP/5z390JiMMDAzEoEGDZK7y8aKjo+Hj44PmzZvDyMgIkZGRGDJkCAoKCrB37164uLggLCyMfyTUEJmZmfjzzz/5iA2imiY+Ph4dOnTQuR6qNqoN4zh//jx69+6N1NRUqFQqeHt7Y/PmzdJF9+np6XBwcKjRY1Cr1WjXrl25C4kPHToEd3d3mJiYQKVS4cCBA/IUWEHt2rXDkiVL4OPjg7Vr1+LTTz/FqFGjpAuN165di+DgYHzwwQdyl/pI3t7e6NWrF2bPng0A+PnnnxESEoLjx48jMzMTPXr0QNeuXREcHCxzpZUnysz07eDggN69e9e6030PkvtnFIMQKdaOHTse237p0iVMnDixRv/yBerGON566y0UFhZi/fr1yMrKwvjx43Hu3DkcPHgQjRs3rhVBaP78+fj++++xdu1anZsF6tWrh/j4+HJHuWoqY2NjJCYmokmTJujQoQPGjh2LUaNGSe2bNm3C119/jYSEBBmrfDxjY2OcPXsWL774IoD7T2g3NDTE1atXYWtri/3792PEiBH4+++/Za70yfr164dffvkF5ubmuHXrFvr164eoqChYW1vj5s2baNmyJQ4fPoyGDRvKXeoj5eTkPLb99OnT6Natm3zf33Lcs09UEzxuHqGy8wnVdHVhHDY2NjqPCigpKRFjxowRjRs3Fn/99ZfQarU1fgxCCBEVFSVatmwpJk6cKD0yQF9fX2eOpJrOyspKREdHCyHu/3+Ji4vTab948WKNnw+pSZMm0uNmhBAiLS1NqFQq6TEPKSkptWKuMyHqxkzfpT+DHrXI/TOKj6smxbK3t8cff/yBkpKShy6xsbFyl1ghdWEcd+/ehb7+/83moVKpsGrVKrz++uvo1q0bzp8/L2N1FffKK68gJiYGN27cgLu7O86ePQuVSiV3WZXSt29frFq1CgDQrVs3/Pbbbzrtv/76K5o3by5HaRXm5+eHMWPGICwsDBERERg6dCi6desGIyMjAEBycjJeeOEFmausvAMHDmDevHnS9VuNGjXCggULsHfvXpkre7z69etj3rx5OHDgwEOX77//Xtb6OI8QKZabmxtiYmLw5ptvPrRdpVLVinmE6sI4nJycEB0dXe7OqpCQEADAG2+8IUdZT8XU1BQbNmzA5s2b4ePjU6NP5z3MggUL0LlzZ3Tr1g3u7u5YsmQJDh48KF0jdPz4cWzdulXuMh9r7ty5uH79Ol5//XUUFxfD09MTP//8s9SuUqkwb948GSusnNIwnZmZKU1kW6p58+ZIS0uTo6wKK721v1u3bg9tt7CwkPVnFIMQKdbkyZORm5v7yPbmzZsjIiLiOVb0dOrCON566y388ssveP/998u1hYSEoKSkpNbMBFxq0KBB8Pb2RkxMzCMn7ayJHBwccOrUKcyfPx9//vknhBCIiorC1atX0blzZxw9erTGT+BnamqK0NBQ3Lt3D0VFRTA1NdVpr+kTjD6ots/0PWTIkHITc5ZlZ2cnXdguB14sTUREVEONHDlS53Xfvn3x7rvvSq+nTJmC06dPIyws7HmXVmcwCBEREdVStWWm78TERBw/fhyenp5wcnJCUlISgoODkZ+fj/fee0/WxzLxYmkiIqJa6tatW/j444/lLuOxwsLC4OrqikmTJqF9+/YICwtD165dcfHiRVy5cgW9e/eWdX4tHhEiIiKqpeSejLAivLy80KNHD8ydOxebN2/Gxx9/jLFjx+Lrr78GAEyfPh0xMTHYt2+fLPUxCBEREdVQdWHCVHNzc8TExKB58+YoKSmBgYEBoqKipIesnj17Fj4+PtBqtbLUx7vGiIiIaig/P78nToFRG+aqKq1RrVbD0NAQ5ubmUlv9+vWRnZ0tV2m8RoiIiKimqgsTpjZt2hQXLlyQXkdGRqJx48bS69TUVOm5gnJgECIiIqqhSidMfZTaMGHq2LFjdU7dtW7dWmcm+T179sh61xivESIiIqqh/ve//yE3Nxd9+vR5aHtubi6io6MfOWszPRmDEBERESkWT40RERGRYjEIERERkWIxCBEREZFiMQgRUZXq3r07xo8fL3cZFVbT623atCmWLVsmdxlEdRaDEBERESkWgxAR1VkFBQVyl0BENRyDEBFVm8zMTAwbNgwNGjSAsbEx+vbtK80wK4RAw4YN8dtvv0n9XV1ddWaYPXLkCAwMDJCXlwcAyMrKwocffoiGDRvCzMwMPXr0QHx8vNR/zpw5cHV1xdq1a9GsWTMYGhpWqM6ioiIEBgbC3Nwc1tbWmDVrls4kdY8bR9n9lrVs2TI0bdpUej1ixAj4+flh8eLFsLe3h5WVFQICAlBYWCj1ycjIwOuvvw4jIyM0a9YMGzdurFD9RPT0GISIqNqMGDEC0dHR2LFjByIjIyGEQL9+/VBYWAiVSoWuXbvi4MGDAO6HjcTERNy9exdJSUkAgEOHDuGVV16BsbExAOCdd95BRkYG9uzZg5iYGHTo0AE9e/bErVu3pH1evHgRv//+O/744w/ExcVVqM4NGzZAX18fUVFRCA4OxjfffIO1a9dWaByVERERgb/++gsRERHYsGED1q9fj/Xr1+vs5+rVq4iIiMBvv/2Gb7/9FhkZGZXaBxFVDh+6SkTV4sKFC9ixYweOHj0KLy8vAMDGjRvh6OiIbdu24Z133kH37t3x3XffAQAOHz6M9u3bw87ODgcPHoSTkxMOHjwozZh75MgRREVFISMjAwYGBgCAxYsXY9u2bfjtt98wevRoAPdPh/30009o2LBhhWt1dHTE0qVLoVKp0KpVK5w5cwZLly7FqFGjKjSOimrQoAFCQkKgp6cHJycn9O/fH+Hh4Rg1ahTOnz+PPXv2ICoqCq+88goA4IcffoCzs3OFt09ElccjQkRULRITE6Gvrw8PDw9pnZWVFVq1aoXExEQAQLdu3XDu3DncuHEDhw4dQvfu3dG9e3ccPHgQhYWFOHbsGLp37w4AiI+Px507d2BlZQVTU1NpSUlJwV9//SXto0mTJpUKQQDQqVMnnSd4e3p64sKFCyguLq7QOCrq5Zdfhp6envTa3t5eOuJTuh83Nzep3cnJCRYWFpXaBxFVDo8IEZFs2rRpA0tLSxw6dAiHDh3C119/DTs7OyxYsAAnT55EYWGhdBTmzp07sLe3l06llVU2LJiYmDyn6v+PWq0u9+DLh502q1evns5rlUqFkpKSaq2NiB6PR4SIqFo4OzujqKgIJ06ckNbdvHkTycnJcHFxAXA/CHTp0gXbt29HQkICvL290bZtW+Tn5+O7776Du7u7FGw6dOgArVYLfX19NG/eXGextrZ+plrL1ggAx48fR4sWLaCnp1ehcTRs2BBarVYnDFX0+qRSTk5OKCoq0nnSeHJyMrKysio/ICKqMAYhIqoWLVq0wJtvvolRo0bhyJEjiI+Px3vvvYcXXngBb775ptSve/fu+OWXX+Dq6gpTU1Oo1Wp07doVGzdu1Hmito+PDzw9PeHn54d9+/bh8uXLOHbsGGbOnIno6OhnqjU1NRUTJkxAcnIyfvnlF6xYsQLjxo2r8Di6d++OGzduYOHChfjrr7+wcuVK7Nmzp1I1tGrVCn369MFHH32EEydOICYmBh9++CGMjIyeaWxE9HgMQkRUbX788Ue4ubnhtddeg6enJ4QQ2L17t84pom7duqG4uFi6Fgi4HyweXKdSqbB792507doVI0eORMuWLTFo0CBcuXIFtra2z1TnsGHDcPfuXXTs2BEBAQEYN26cdPF1Rcbh7OyMb7/9FitXrkS7du0QFRWFSZMmVbqOH3/8EQ4ODujWrRv+9a9/YfTo0bCxsXmmsRHR46nEgye2iYiIiBSCR4SIiIhIsRiEiKjOSk1N1bnV/sElNTVV7hKJSGY8NUZEdVZRUREuX778yPamTZtCX5+ziBApGYMQERERKRZPjREREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYjEIERERkWIxCBEREZFiMQgRERGRYv0/Yi/tv+t0SyQAAAAASUVORK5CYII=", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%%time\n", - "df = pd.DataFrame(decile[\"buckets\"])\n", - "df.plot.bar(x=\"lower_bound\", y=\"bucket_mean\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7b0effe9-03c1-4b5d-a5f4-b52f2fee8810", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 152 ms, sys: 115 ms, total: 268 ms\n", - "Wall time: 127 ms\n" - ] - }, - { - "data": { - "text/plain": [ - "<Axes: xlabel='lower_bound'>" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1wAAAKOCAYAAACyZBhUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADPDElEQVR4nOzdeXgV5f3+8fuc7AtZCISwJBBlCQjIDokCLmhAtKwqiIIrxYILWFkEQa0ialVQtrYqaBW3tiiCogiCVTZFQQRRFCggBkElkSAJIZ/fH/zOfHOSc7LhFLXv13WdS8kz88wzz5ntnpkz4zEzEwAAAADgZ+c91Q0AAAAAgN8qAhcAAAAAuITABQAAAAAuIXABAAAAgEsIXAAAAADgEgIXAAAAALiEwAUAAAAALgk91Q34JSsuLta+fftUo0YNeTyeU90cAAAAAKeImenHH39UvXr15PVW/roVgasc+/btU2pq6qluBgAAAIBfiD179qhBgwaVHp7AVY4aNWpIOtGpcXFxp7g1AAAAAE6VvLw8paamOhmhsghc5fDdRhgXF0fgAgAAAFDlnxrx0AwAAAAAcAmBCwAAAABcQuACAAAAAJfwGy4AAAD8Zh0/flzHjh071c3Ar0R4eHiVHvleGQQuAAAA/OaYmXJycnTo0KFT3RT8ini9XqWnpys8PPxnq5PABQAAgN8cX9hKTk5WdHR0lZ8sh/89xcXF2rdvn7755hulpaX9bMsMgQsAAAC/KcePH3fCVlJS0qluDn5FateurX379qmoqEhhYWE/S508NAMAAAC/Kb7fbEVHR5/iluDXxncr4fHjx3+2OglcAAAA+E3iNkJUlRvLDIELAAAAAFxC4AIAAAAAl/DQDAAAAPzPaDR+yX9tWrum9a7yOOecc47atGmj6dOn//wNknTXXXfplVde0caNG12pH2VxhQsAAABApcyfP18JCQmnuhm/KgQuAAAAAHAJgQsAAAD4BSkqKtKoUaMUHx+vWrVq6c4775SZSTrxFL1XXnnFb/iEhATNnz/f+ffevXs1ePBg1axZUzExMerQoYPWrVsXcFpfffWVTjvtNI0aNUpmpoKCAv3xj39U/fr1FRMTo86dO2vlypWSpJUrV+qaa65Rbm6uPB6PPB6P7rrrrgrnp1GjRrr33ns1dOhQxcbGqmHDhlq0aJEOHDigPn36KDY2Vq1bt9aHH37oN957772nrl27KioqSqmpqbr55puVn5/vlP/9739Xhw4dVKNGDaWkpOiKK67Qt99+65SvXLlSHo9Hy5cvV4cOHRQdHa2srCx9/vnnFbb550TgAgAAAH5Bnn76aYWGhmr9+vWaMWOGHnnkET3xxBOVGvfw4cPq3r27vv76ay1atEibNm3S2LFjVVxcXGbYTz75RGeffbauuOIKzZw5Ux6PR6NGjdKaNWv0wgsv6JNPPtGll16qnj17avv27crKytL06dMVFxenb775Rt98843++Mc/Vqpdjz76qM466yx9/PHH6t27t6666ioNHTpUV155pT766COdfvrpGjp0qBMsv/rqK/Xs2VMDBgzQJ598ohdffFHvvfeeRo0a5dR57Ngx/elPf9KmTZv0yiuvaNeuXbr66qvLTHvixIl6+OGH9eGHHyo0NFTXXnttpdr8c+GhGQAAAMAvSGpqqh599FF5PB41a9ZMmzdv1qOPPqobbrihwnEXLFigAwcO6IMPPlDNmjUlSY0bNy4z3OrVq3XxxRdr4sSJuu222yRJu3fv1rx587R7927Vq1dPkvTHP/5RS5cu1bx58zR16lTFx8fL4/EoJSWlSvN00UUX6fe//70kafLkyZozZ446duyoSy+9VJI0btw4ZWZmav/+/UpJSdH999+vIUOG6NZbb5UkNWnSRI899pi6d++uOXPmKDIy0i84nXbaaXrsscfUsWNHHT58WLGxsU7Zfffdp+7du0uSxo8fr969e+vo0aOKjIys0jxUF1e4AAAAgF+QLl26+L2ANzMzU9u3b9fx48crHHfjxo1q27atE7YC2b17ty644AJNnjzZCVuStHnzZh0/flxNmzZVbGys81m1apW++uqrk5qn1q1bO/9fp04dSVKrVq3K/M13S+CmTZs0f/58v3ZkZ2eruLhYO3fulCRt2LBBl1xyidLS0lSjRg0nVO3evTvotOvWres3nf+GKgeur7/+WldeeaWSkpIUFRWlVq1a+d1vaWaaPHmy6tatq6ioKPXo0UPbt2/3q+P777/XkCFDFBcXp4SEBF133XU6fPiw3zCffPKJunbtqsjISKWmpurBBx8s05aXX35ZGRkZioyMVKtWrfT666/7lVemLQAAAMCvhcfjcW678zl27Jjz/1FRURXWUbt2bXXq1EnPP/+88vLynL8fPnxYISEh2rBhgzZu3Oh8PvvsM82YMeOk2h0WFuY3D8H+5rv18fDhw/r973/v145NmzZp+/btOv3005Wfn6/s7GzFxcXpueee0wcffKCFCxdKkgoLCyucdqBbLN1SpcD1ww8/6KyzzlJYWJjeeOMNbd26VQ8//LASExOdYR588EE99thjmjt3rtatW6eYmBhlZ2fr6NGjzjBDhgzRli1btGzZMi1evFjvvvuuhg8f7pTn5eXpwgsvVMOGDbVhwwY99NBDuuuuu/TXv/7VGWb16tUaPHiwrrvuOn388cfq27ev+vbtq08//bRKbQEAAAB+SUo/4GLt2rVq0qSJQkJCVLt2bX3zzTdO2fbt23XkyBHn361bt9bGjRv1/fffB60/KipKixcvVmRkpLKzs/Xjjz9Kktq2bavjx4/r22+/VePGjf0+vlsIw8PDK3Wl7WS1a9dOW7duLdOOxo0bKzw8XNu2bdN3332nadOmqWvXrsrIyPivXrWqiioFrgceeECpqamaN2+eOnXqpPT0dF144YU6/fTTJZ24ojR9+nRNmjRJffr0UevWrfXMM89o3759ztNUPvvsMy1dulRPPPGEOnfurLPPPluPP/64XnjhBe3bt0+S9Nxzz6mwsFBPPfWUzjjjDA0aNEg333yzHnnkEactM2bMUM+ePXX77berefPm+tOf/qR27dpp5syZlW4LAAAA8Euze/dujRkzRp9//rmef/55Pf7447rlllskSeedd55mzpypjz/+WB9++KFGjBjhdwVn8ODBSklJUd++ffX+++9rx44d+uc//6k1a9b4TSMmJkZLlixRaGioevXqpcOHD6tp06YaMmSIhg4dqn/961/auXOn1q9fr/vvv19Llpx4YXSjRo10+PBhLV++XAcPHvQLez+ncePGafXq1Ro1apQ2btyo7du369VXX3UempGWlqbw8HA9/vjj2rFjhxYtWqQ//elPrrTlZFXpoRmLFi1Sdna2Lr30Uq1atUr169fXH/7wB+cHfDt37lROTo569OjhjBMfH6/OnTtrzZo1GjRokNasWaOEhAR16NDBGaZHjx7yer1at26d+vXrpzVr1qhbt24KDw93hsnOztYDDzygH374QYmJiVqzZo3GjBnj177s7GwnTFWmLaUVFBSooKDA+XfJS6wAAAD49ds1rfepbkKFhg4dqp9++kmdOnVSSEiIbrnlFudusIcffljXXHONunbtqnr16mnGjBnasGGDM254eLjeeust3XbbbbroootUVFSkFi1aaNasWWWmExsbqzfeeEPZ2dnq3bu3Xn/9dc2bN0/33nuvbrvtNn399deqVauWunTpoosvvliSlJWVpREjRujyyy/Xd999pylTplTq0fBV1bp1a61atUoTJ05U165dZWY6/fTTdfnll0s6cVvk/Pnzdccdd+ixxx5Tu3bt9Oc//1m/+93vfva2nKwqBa4dO3Zozpw5GjNmjO644w598MEHuvnmmxUeHq5hw4YpJydH0v/96M2nTp06TllOTo6Sk5P9GxEaqpo1a/oNk56eXqYOX1liYqJycnIqnE5FbSnt/vvv19133125zgAAAAB+Zr53XknSnDlzypTXq1dPb775pt/fDh065Pfvhg0b6h//+EfA+u+66y6/gBQbG6v333/fb5i777673GPiOXPmBGxbMLt27Srzt9K/Q2vUqFGZv3Xs2FFvvfVW0HoHDx6swYMHB633nHPOKVNnmzZtyvzNbVUKXMXFxerQoYOmTp0q6cR9np9++qnmzp2rYcOGudLA/6YJEyb4XTXLy8tTamrqKWwRAAAAgFOh0fglzv+fzJXRKv2Gq27dumrRooXf35o3b+48etH3Y7r9+/f7DeN7nr5vmNI/aCsqKtL333/vN0ygOkpOI9gwJcsraktpERERiouL8/sAAAAACOzf//6336PbS39QxcB11lln6fPPP/f72xdffKGGDRtKktLT05WSkqLly5c75Xl5eVq3bp0yMzMlnXiPwKFDh/zuNV2xYoWKi4vVuXNnZ5h3333X7xGXy5YtU7NmzZwnImZmZvpNxzeMbzqVaQsAAACA6uvQoYPfo9tLf1DFWwpHjx6trKwsTZ06VZdddpnWr1+vv/71r87j2j0ej2699Vbde++9atKkidLT03XnnXeqXr166tu3r6QTV8R69uypG264QXPnztWxY8c0atQoDRo0yHmj9RVXXKG7775b1113ncaNG6dPP/1UM2bM0KOPPuq05ZZbblH37t318MMPq3fv3nrhhRf04YcfVqktAAAAAKovKipKjRs3PtXN+EWrUuDq2LGjFi5cqAkTJuiee+5Renq6pk+friFDhjjDjB07Vvn5+Ro+fLgOHTqks88+W0uXLlVkZKQzzHPPPadRo0bp/PPPl9fr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Rbrllls0YsQIjR07Nmi7ysNTCoO45557dMUVV2jlypUBfzjn+/Hd7373uyqX+x5M0aFDBz322GNlxjUzHTt2zO/gvuQDHa6++mr94x//UJ8+fSSpTLhq0qSJPvroIz366KM6//zzA9YvKWD9jzzyiPbu3atFixYpMTHRORAoLCxUaGiomjdvrg0bNmjhwoU6//zzneCWl5fn1B0XF6f+/fvr2LFj2rlzp8444wxJJ3ZE27Ztk9frVYsWLcpsPE8//XTt2LFDH3/8sdq2betX9vHHHyssLEzHjx8POl8hISFKTk7Wxx9/HLB+6cTOouQO3tc2SZo6darMLGDZ8OHD9fe//z1on9evX1+FhYVBp13RvAU6+Cg5/R49euif//xnwH6XpBtuuEFdunTRpk2byhwcdO/eXW+88UbQaUdERMjMgpaHh4erqKgo4LTPPPNM3Xzzzc4BwM85X8uXL5ck52C2dNsk6ZprrlGTJk20b9++gAeyx44dC7gsSid+8O8La++//746duzolF166aVau3at6tatq1atWvkta5s3b1Z6eroOHTqklJQUdevWza985cqVOnLkiD7++GMlJSU5Pxz+9ttvdejQIUnSihUr1KZNG0kqM+2BAwdq48aNAet+9913FRoaqjPPPFPt27dXYmKiX/1mpl27djnL34oVK5SZmenXJ0ePHlXfvn0Dljdu3Fi7du3SwYMHVatWLb/xfOEiPz+/3HW0du3aKioqcnbMJY0fP16nnXaacnNzqxwGO3TooNWrVwdtW3mhae7cuTr//POVn5+vdu3alfk+JemTTz4J2C9z585VZmamDh8+HHDcpk2bqlmzZgG/j0OHDikqKko//PCDHn30UUVEROijjz5St27d/Npfq1atoPMtnTj4CBbQzznnHL3++utB1xFfAP/qq6+qvG0ICwtTaGhowLanpaXpueeeU3FxccD5Ovvss/X+++8H7ZeaNWsqJSUl6DYzLS1NBw4cKPf7bt26ddB++fLLL1VQUKD4+PgyZRdddJGef/75cvdjhw8fDrg8pKWlacGCBTKzas13t27dtH///qDbloyMDHXr1k2DBg1SUVFRmX2wdOLEaLD5bty4sbZv365gateurSNHjgRcRy+77DKNHDlS6enpysvLC9gv7du3D7qsVmZ5Km/7cO+996p58+b67rvvqrSc+/Y1rVq1qtb2o02bNho5cmSZ9VI6sU3y7ceCnXg4//zzVVxcrF27dunDDz/0a9/gwYN15513qnXr1gGPFXNzc+XxeAKW5+Tk6Msvv3SOqaqyLzh06JA6dOigLVu2BJ22JE2YMCFoKPJ4PM4JNq/X63cR4ZxzztHMmTMD7nd96+dPP/2kxMREmVmZfhk6dGjQ/e/HH3+s6OhoTZs2TU8++WSV9yXjxo3TkiVLgvaLdOI4OtA6NHLkSBUWFuqPf/yjBgwYoOPHj0s6cTKhffv2mj9/vi677LIy7akMAlcQl156qerXr6/HHntMDz/8cJmn9bz77rsys2qX33DDDVqxYkXAsuuuu06pqalOW0of3CclJal3796aMmVKwLavWbNGDzzwgB566CHddtttzhkl30ajR48eOvvsswPWHxERoaZNm2rAgAEaOXKkX9vat2+viIgI3XrrrUF3Bs2aNVOnTp0UEhKiPn36+K0IK1eu1NixY1W7dm0tXbq0TLvnz5+vMWPGBF1JsrOz1alTp6Dzdd9995V75qFTp07yer0Bd/DdunXTRx99pIiIiIA7/wYNGqhjx45B+3zPnj1Bp1uZeavo4KNFixZ67733Ava7mengwYN6/fXXJZU9iL7wwgv17rvvBp32eeed5+xIA5X36NFD9evXDzjtkJAQpaSk6KWXXtKyZct+1vkKDQ3VlVdeqb179wYNFz/88INCQ0MDHvh07NhRO3fuVHx8fJllcefOnZo6daq2bdumZ555psw6VqNGDc2dO1d16tTR2rVrnfWgU6dOmjp1qi688ELl5+fr2Wef1dq1a7Vjxw5JJ9aTqVOn6oorrtC+ffsCPumr9JXO0tOuW7euZs6cqeLi4jJ133vvvbriiisUFxenbdu2Baw/IyNDwSxatEhhYWHO2b3SRo8erXvuuSfowWBF4SIzM1NffvllwLBoZnr//fed9baqYfCSSy7RBx98ELRtUvDQlJqaqttvv13Tpk3TJZdcEvD7DHZlLzU1VbNnz9Ynn3yiY8eOBR23Ot+Hz44dO4LOt3TiqkSwgN6nTx+988471QrgFW0bsrOztWDBgoBn4Hft2qW1a9cqIiIiYNA799xz1bNnT0VFRVWrX5588kldf/315X7f69evD9ovV199tcws4AFdz5499cYbbwTd7tx4441OyAw034sXLw66HlVmvouLi/Xmm28G3bZ4vV7NmjVLGzZsKLMPTkhIUK9evZwTp6XnbcCAAbr33nuDHmR/9913ioqKCriOrlq1Smam7du3BzzhKknLly93DtarujxVtH146623nO1DVZZz30H02rVrq7X9+OSTT+TxeLR27dqAwSYkJMR50mDpfc0777yjf/zjH1qxYoVmz55d5o6k2NhYjRs3ztmel/w+e/XqpVdffVWSNGfOnDLl/fv315VXXql///vf1d4X7Nq1K2DdvXr10ubNm3XllVdKUsBQZGYqKChQzZo1dfjwYX3yySfOXSpz585Vt27dVFBQEPBE1GmnnaZp06Y531PJftm5c6eeeuopHTt2TL///e/L7AMLCws1YcIEzZo1q1r7ks8++0ytW7fWggULAvZLixYt1KdPn6DrUN26dZWRkaGNGzc6V3tr1ap10k9G5bHwv3E7d+70W9jS09N/lnrz8vIC7gx8Z8SCyc/PV0hIiPP45UAqc+Dixnzt2LFD4eHhzu2clS2riuoelPmmHxcXV+V+9x0cNGzYsNxpV9S28r5zt+erOvWXdzAoVW5Z/F8U6GDQ19+VCRc//vijE0RLl/sOEAIp7yDWVx4SEiJJ5bYtmIrq/6V66qmnFBoaqu7du0s6cQBX8p1/zzzzjKQTB+xVXUcqu204VcpbFps1a+b3fZfsl//85z/65z//KelEAAnWZ3379q3WfuxUKn3SKtC8HThwQN9++23AfhsxYoSSkpLKXUclVatfKrM8Bds+NG3aVH369HFel/FzLue+tpW3/cjMzNSCBQuqvN3y1VfevuaXatWqVX7/rlu3rnOLoXTiLpCioiJddNFFkk48ir5Lly5O+d13362NGzeqdevWVd4eV4Zb+5LKrEOS/B5N/3MgcP0GzZ49WwcPHtTkyZN/9ro//PBDHTlyJOCl919y3W7XX1Gfuz1v+PX45ptvdOzYsXLvrf8l14+qqej7+DV/X+W1/WTn+9e6zXT7+/619gv++37N2xY3nUy/nNTxdbUetQGbMGGCXXPNNa6UVzTurFmz7O677w5aft5555X7WNpXXnnFnn766WrVn5GRYV6vN+i4H3zwga1atapa066o7n379tl//vOfatVdmfrLa3tF81VRn5/svFU0/YrKy1PRtE+mbW7PV3n1n8zycv7555/U91ne+Ccz7sm2raJpV1RekYr6/JfqZPrlZPv0ZPu8IifznVQ07q+5X8pT0XbnVM73L7lfKuLm9uFUbnvKm/bQoUPt3HPPDTruyZSf7H6qomm76WTm62SdzDpU0bFeeQhc1XTVVVeVu6CeTHlF457MF25mzrs2qlP/119/bbt27Qo6bkULcnnTdrPuk63/ZHdyJztvv+QDwl/rtMtbXmbOnGl33XVX0HEXLlxo8+fPD1pe3vjr16+3lStXVmvcypSXV39F7a6o/GS/r5MJom6Wn0y/VDRuRd93ReUnG9DdXD/La/vJzvfJbjPL65eTPVAt7zs/2fmuaHmqqF8qmreKDrJP5Trq5nd2MuUnM+0JEybY1VdfHXTckyk/mX1BZaZd0bJS3sWBivr7ZObL7OSW04r6xa3Axy2F+Fnt27dPx44dK/eR99X1wQcf6MiRI85vGX5u5bXdzfmSKp63iqZfXvkrr7yi3NxcDRs2rFrTPpm2uTlfFdXv9vLyv+hkl6VZs2bp4MGDAR8+U1Hdbpf/UlXU7vL6VCr/OznZ7/NUOpl+qajP3N7eu6miebvjjjv0zTffaN68eVUev6J+cXP7cDLLeWXaVl75yU7716qiZWXYsGHas2ePVqxYUabM7e3tyexLTqbuk0HgKsfBgwf11FNPlfmBZlZWlq6++mp5PJ5ql19yySVatGhR0HFr165dbtsKCwv1yiuvBBy/T58+5b67qDLy8/O1YcMGffPNN/J6vTrttNPUrl27ct+h8Uuou7Rjx45p165dSk5OLve9aZWxadMmbdiwQeecc45OO+00bdmyRbNmzVJxcbH69esX8Aea11xzje677z7Vq1fvpKaNXwYzU3FxsfPj659DQUGBJJX7LrNgdu/e7bcelfzhLyo2f/589evXL+i2wfdErJSUlArrKioq0pYtW/y2xy1atDjpJ1v9Eu3fv18FBQUBfwNx7Nixas1zUVGR3nnnHe3evVsNGzbUueee+7OuZ9WVm5vr951Wdz8SqM/KqzsnJ0fr1q3zK+/cuXOllkX8tgV7rL4kbd++3VmHGjduHHCYnTt3KjU1NWgdbjpV065Mv/h89913+uSTT3TmmWeqZs2aOnjwoJ588kkVFBTo0ksvDfhetEr52a+Z/UasX7/eEhMTrX79+jZs2DAbO3asjR071oYNG2YNGjSwuLg4i4uLq1Z5cnKyeTweS05ODjhuYmKi31u5v/zyS7vjjjvsyiuvtIkTJ9qKFSvstNNOs8jISOvevbtddtlldtlll1n37t0tMjLSGjdubGvXrrXly5fboUOHzMwsJyfHHnjgAbv//vvtk08+sY0bN9qTTz5pX331lZmZffrpp3bjjTfa8OHDbeDAgRYdHW1er9e8Xq95PB7zeDzWsGFDW7RokZmZFRUV+fXX2rVrbdWqVVZYWGhmZl999ZU9/fTTNm3aNHvwwQftH//4h/3www92++23V1h3ab46fQLVnZubaw888IAdOXLEad9tt91m4eHh5vV6LTQ01K655poydZV07Ngxv/uwCwsL7YsvvrBDhw7ZP//5TwsJCbGkpCSLjY21ZcuWWUJCgvXo0cOys7PN6/Xa/fffb5s2bfL7hIWF2cKFC51/l6eoqMi++uorO378uJmZHT161F588UV7/vnn7c033yx3XJ9Dhw7Ztm3bbNu2bc53H8xdd91lBw4csAMHDlSq7sOHD9uqVavshRdesJdeesk+/PBDKy4udtpe0rp162zNmjV29OjRMvWU7Fefipan0nJycoLeM++br/K0bNnSJk2aZC+//HLA8mPHjtnEiROtW7duNnnyZDMze/DBBy06OtrCw8MtISHBpkyZYrt37y53OoFs3LjRPB6P9erVyxISEpx1ISEhwXr16mXLli2zjRs32p/+9CebNWtWmXnJzc21Ll26WFpamjNuyc/vfvc7e//99wNOOzY21q699tqg5dVVmT4vqSrLqRvj+4SFhdnWrVvtu+++swEDBlhqaqqNGDHCioqK7LrrrnO2T126dLF9+/aZmdlrr71m3bp1s3r16ln79u1t3rx5NnHiREtISHCG930SEhJs0qRJzjodyMaNGwPe/pKTk2PffPNNmb8fPXo04HplZvaf//zH1q5da+vXr7eDBw/6lVWlz3zrXV5eng0ZMsTS0tJs6NChVlBQYH/4wx+c+Tv77LMtNzfXzMwef/xxZ5lMSkoq93fGZmaDBg0yj8djZmZ79uyxjIwMCwkJsTp16lhISIi1atXK9u7dW24dP5djx47ZW2+9ZU888YQtW7bMioqK7G9/+5s1b968zPrVvHlzGzJkiJ1//vl26aWX2ttvv+1X186dOy0mJiZgn3m9XuvWrZs99thjQeueNWuWDRkyxEJCQiw0NNSSk5MtOTnZQkNDLSQkxK688krLz8//r/RLoH7ybXeLioosJyfHvv32W1emVd5yXpGqLOuB1rPKTtu3nmzZssVuvPFGa9OmjaWkpFhKSoq1adPGbrzxRuvevbs988wzzrFJIG+99ZZNnjzZli9fbmZmq1atsp49e1rr1q3tnnvuMTOz48eP2z333GP16tUzr9dr9evXt+zsbFu2bJmZmX3//fd2/vnnO+um1+u1nj172g8//FBmer7t3qngm3ZF+7jynmPgO+4IZurUqc56WZV+MTtx7BIfH28ej8cSExPtww8/tPT0dGvSpImdfvrpFhUVZRs2bKjaTP9/BK4gOnfubMOHDw/4xRYXFzsbweqUd+7c2TIyMqxz584Bx61bt641adLEzMzee+89i4iIsNatW9vll19ubdu2Na/Xa127dnV2dCXl5ubaWWedZSEhIebxeCwlJcU2btxoDRo0sCZNmlizZs0sNDTU2SmWDg/p6ekmyW677TZbtmyZdevWzR544AH77LPP7M4777Tw8HA744wzLCQkxLp162bff/+99e7d21mYGzdubBdffLHfwp2SkmIhISEWFhZmKSkp9tprrwWsOzQ01BYvXuzMS+kd+MSJE23gwIEB646NjTWPx2P79+83M7OHHnrIEhMT7amnnrItW7bYs88+a8nJyfbAAw8E/L4feOABW7t2rXm93oBhreQBxPPPP28JCQnOhtDMzOPxmKQyB1y+dvr+G8xLL71kkszr9VrLli1t9+7d1rJlS4uJibHY2FiTZA0aNLD77rvPvv766zLjl3dw8Pjjj1tubq7f59ChQxYWFmbr1q1zDgKee+65gDuZ48ePBw3K9evXt8aNG1tISIj17NnTcnNzrUePHk55zZo1naAZqF8vv/xyy8rKKnd56t+/f9ADvqysLNuzZ0/A+fL9LRDfwbAky87Otn/84x927Ngxp3zSpElWp04dGzNmjLVo0cJGjBhhqamp9uyzz9rTTz9tkiw6OtpCQkICjl+ee+65xyTZoEGDbN68efb666/b66+/bvPmzbPBgwc7B1pnnHGGpaWlWVJSkq1YscIZf/LkySbJHn/8ced7v+eee+yNN97wWwYzMjLsz3/+s98BkcfjsTPOOCNo+bp16/zCb+lwMXfu3HKXpdzcXHvsscds6NCh9tRTT5mZ2QsvvGAZGRmWnp5uF198cdDlNCIiosIwWN5y/sQTT9iSJUvsuuuus9tvv90+++wzZ7zExERLSEiw0NBQS0xMdD4ej8fi4+OdZfLxxx+37t27W58+fax169b23nvvmdfrtTZt2tjQoUNt0aJF5vV6bejQoTZr1iy7/vrrzePxWFxcnM2dO9d27txpR44csSNHjtjOnTvtL3/5iyUnJ9vYsWODztOqVatMUsCw5/V6LTMz055//vlyA/qsWbMCBvCzzjrLJk2aFLTPfv/731tBQYHTltLb3E6dOllGRoY99thjds4551ifPn2sZcuWTr80bdrU7rjjDnvqqacsMjLSJk+ebEuWLLF7773XYmJi7G9/+1vQ+U5KSjLfOd/LLrvMevTo4Rx4fffdd3bxxRfbwIEDg46/detWq1evXsCDtv379/sdtH388cc2dOhQy8rKsgEDBli/fv3stddeM7PAYS8lJcWioqJs/Pjx9s4779jWrVtt69at9s4771iPHj1MkmVlZdmVV15p4eHhNnXqVGfa1157rUkK2GerVq2y5ORkCwsLC1j3hAkTLDQ01GrVqmVLly71WxeLiorszTfftKZNm1q/fv0qfbD69ddf2+TJk+2KK66w2267zZo0aWL33HPPSZ0s6tq1q0VERDjLUnx8vF155ZUVPrTCN/5VV11l6enpFhkZadHR0c4JsIULF5a7nFem7mDL+vTp04OeVPENc9555wWc9qRJk4KuJzVq1LCQkBDr0qWLTZkyxWbPnm2zZ8+2KVOmWFZWlkmykJAQi4+PtxEjRtiHH37o1+6///3vFhoaau3atbPY2FibN2+eJSQk2PXXX2/x8fEWGhpqL7/8sk2dOtWSkpLskUcesTfeeMOmT59uXq/XbrrpJjMzu/76661t27b20Ucf2U8//WQbN260xMREa9iwofXr18/v4/V6rUePHtavXz87//zzg4bFLVu22NatW+2pp55ytqefffaZjRgxwkJDQ61nz55Bt9elp1ly2r7j2Bo1agTcx+Xk5JjH47HbbrvNunbtatOmTTMzsz/96U8WExNjMTExNnjw4KD795SUFKtXr17QfunSpYv17ds34HKYnp5uQ4cOtby8PHvooYesQYMGdv311zt1X3PNNda3b99yl8VgCFxBREZG+u2wS4uIiLDw8PBqlUdGRtqSJUssMjIyYHlsbKwzbvfu3W306NF+5aGhodamTZug027btq2FhITYjz/+aA899JDVr1/fRo4c6ZTXqVPH0tLSzKxseKhbt6794Q9/cOrfu3evxcbGOgfiZ555ptWoUcMWLVrkHCx37drV9u7da//5z3+sTp06VrduXdu8ebNt377dBg4caGPHjrX8/HyLj4+3iIgIe+655wLW7fF4rEOHDmZmAXfgoaGh1rhx44B1P/nkkybJZs+e7fTBX/7yF79+efbZZ+2MM84I2Gder9dWrFhhXq83YFjzeDw2btw4MzsRisPCwuyTTz5xxm/evLmFhITYZ599Zrt27bJdu3bZzp07LTQ01JYtW+b8LRjfhnnz5s12yy23WPPmze3SSy+1wsJCO3bsmEmy+vXrO2c6e/fubQsXLrSioiLnykuwHbjvILz0Tsj3N0kmycLDwy0xMdFGjRplH3/8sdO2cePGWfPmzQMG5YyMDPN4PHb33XfbZZddZmeddZadc845tnfvXtu3b59Jsl69eplZ4BAcGRnpXN0MtDzVrVvXEhMTgx7wBZq3yoRcj8djb731lnk8HrvkkkssNDTUateubbfddptt3brVTjvtNOeAbPv27eb1eu2FF17wG79Zs2a2cOHCMuP7dmTBPlFRUc6Z/UDS09MtMTHRWdYeeOABi42NtTfeeMPMzFJTU/3G//zzzy0pKcmOHTtmHo/Hrr/+euvSpYuNGjXKatasaeHh4da/f397/fXXnZMSGzduDFju9XqdkxaBwoXvpEBFy1L//v2tbt26du+991pSUpLde++9dsEFF5gk69mzZ9DltE6dOkHDYEXLue8AsHfv3nb22WdbZGSkPfvss2Z2YpvqOxEwf/58mz9/vs2bN89CQkLsvvvus4SEBJs4caKZ/d/O/q233nK+69dee83q169vZ599to0fP97v+4qNjbWMjIyg32dWVpZFREQEXR7q1q3rBOjSYW/16tWWnp5uHo8naED3er2WmJgYMIC3a9fOJNmwYcOC9vmUKVPMLPA213fQY3biwN3XF75+efbZZ61Zs2bWqVMne/DBB/3m+8wzz7T4+PhyD7x8y3GDBg1s3bp1fuNv3rzZatWqFbRfZ8+ebZICnpjwer22efNm83q99v7771tYWJh1797dbr/9dmc5nDdvnpkFDntRUVEBT4iambVo0cJGjRplqampZmb2/vvvW+3ate3OO+80M7P69es781W6z8zMateubXXr1g06XzExMZacnBy0/JFHHgk6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rujo6KDD5Ofna9u2bWrWrJliY2N19OhRPffcc/rpp58UHx+vwYMHB/1efvzxRz377LNau3at33tbMjMzdcUVVyguLs4ZtrCwUOPHj9c777yjf/3rX3r33Xc1aNCgct8DtWnTJr300ksqKChQdna2LrjgAqds165d2rBhg9q3b69GjRpp//79mjVrlo4cOaLevXvr3HPPDVpvRf26bNkyxcTEKCsrK2D5G2+8oaioKJ1zzjll5is9PT3odBHYf/7zH79/x8bG+m0rnnnmGUnS0KFDJZVdlvbt26eYmBi1adMmYP2PPPKI1q1bp8jIyDLL6e7duzVp0qRy15HylvO0tDRt2rRJEyZMCDjuO++8o2eeeSboSzxPpffff19r165VZmamsrKytHXrVk2bNk1HjhzRJZdcou7du2vOnDkB53vEiBH67LPP9Oyzzzrr5w033ODUvWvXLr388sv69NNPK9w2lLZ48WKFhYUFfMeg23JyclRQUBD0JbsLFy7Uu+++q0cffbRM2apVq/T2229r8eLFmj59uurWraumTZs65TNmzFBhYaFuuOEGLVu2zG8fe9ZZZ6lJkyauzdfJKm++JWnEiBFatWqVxo8fL0lq1qyZunTp4pS3a9dOWVlZmjlzZrWmP2fOHL9l7c4771RkZKQkacuWLSosLAy6PS8qKtLEiRP9xp8xY4Zq1aol6cQLa1966SV9/fXXZZbVa665RqmpqdXePlxxxRXavHlz0PWsS5cuOnDgQNB1rLxjr1O5nlTV4cOH9dVXX6l58+YKDw/X6tWr9dhjj5V5p6tvm9q9e3f17t27TD133323Dh8+rB9++EFPPPFElaadkZFRqfdOLliwQGvWrFFWVpYGDx6slStXavLkycrNzdV5552nhx9+WF6vt2odoIqXw/Xr1+vo0aPq1q2bM87P8f4wAtcv1Geffaa1a9cqKytLzZo107Zt2zRjxgwVFBToyiuv1NatW7V+/XpddNFFGjRokP7+97/r/vvvV3Fxsfr376977rmn2guGmWnXrl3OwlVYWKiFCxeqoKBAF110kbNQ/hx27typL7/8UnXr1lXLli1/tnqlE/OxcuVKp/7s7Oxqv4R07969ioyMdOb93//+t+bOneu8SG/kyJFq2rSpOy/Lw29KUVGR9u3bp3r16vm9KLdu3bpq3rx50GW0vBfKln7Bd0UvTT1+/LjfS2XXrVungoICZWZm/iZf1Ftd5b3g18f3ffqGOXTokF5++WVn23DppZcqPj7+V93nO3bs0Hvvvef3ku0LLrhAcXFx5ZaVFuhF9MXFxQEPmoqLi7V3795y+/6/LdCL7Et/3+Hh4Ro4cGC5waAyVqxYUaZff/e73/2iwyD+O0q/sD0/P18bNmzwW1batWsnj8dzilt6wvHjx3Xw4EF5vV7Vrl3b7+8lt4nr169XcXGx2rZtW6lAVpGfs1/Cw8O1adOmkzuOq9Z1MbjqjTfesPDw8ICP4jzvvPPM4/FYdHS0DRgwwFJSUmzatGnOo5enTp1qtWvXtj/+8Y+2YsUK5/cwBw4csGnTptndd99tW7dutddee83uvPNO58fjy5cvt169etnZZ59tSUlJ5vGceAfSjh07rH379hYTE+M8jaq8x75+//339qc//cmefPJJ55Ys30uVW7RoYQsXLjSzE0/iGzBggN8jpc8991z78ccfg74ktLi42P7zn//Y8uXL7e6777YRI0bYH/7wB/vzn/9sX3zxhfXq1ct5yeF3331nnTt3dp6S5/V6LSMjw/bv3287duxwLosXFBTYCy+8YE8//bQdOHAgaN2dOnVyno73yiuvOD9cHjdunPXr189CQkKcH2tX5WV5V199td97tdatW2fTp0+38ePH2/jx42369Om2fv16O3r0qN8tp6Vfhl3e7W8+pV8Y/c9//tO5dWT//v3lvii7pB9++MH++te/2qRJk+xvf/ubHTp0qMovLvb5/vvv7emnnw7a7+W1bciQIWWeLlZSRX129913B3156b59+yw+Pt5OP/1069ixY5l78H1PuQo2/oEDB4LeavHRRx85TzIsfRttQkKC9e/f33766Sdn+NLvRrrggguCvuA7JCTETjvttKAvTe3fv79lZmYGfe9Z06ZNnRf8mgV+IWxVlpWS/fWf//yn3Jd7+35b9s0339grr7xic+fOtblz59orr7zi92LS0i/g3rBhQ9AXYfpesn3gwAG7/fbbg36fX375pUkq92W1wW6z8m2TzU5s62rVqmW1a9e2zp07W506dax27drWrl27Sve5T0Uvk67sy6aPHTtWZvsQbP0svW5//fXXQd99GBMTY23btg1YFhsba3369Cn3RfRDhgyxAQMGWGRkpCUnJ9udd97ptx3JyckJ+BvLiua7vJei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ePjhh11GDdVVdK/8JECS1ALxTz/9FFarFTabjbu/p0+fjgYNGiArKwvp6ekYN26cqvpuaWkpnn/+efz4448AqvtF48ePx8MPP4zS0lK365aXlwciYoXW5L6SyWRCixYt8Omnn+ruF3dSdVmcLHP27Fns3LlTVXTlehAerv9BLly4QGaz2cVzcOnSJaqsrCRvb+8bvkwjqbLsNwgLC6OjR49So0aNuPM4e/YsbdmyhUwmE12+fJlat259Q51g3377LZWXl5O3t/d1zfvnn3+mOXPmuLhTevfuTYMHD1b5JoiIXnjhBVq3bh29+OKLFBUVRUREZ86cobKyMpU/KT09XeW00cqwJUmi3bt360oXjx49Su+//z55enoaCqPdibKvXbtGX331lWrZ6enphu1l+/bt5OnpaehYu3DhAm3evNnwmPLW7aeffqKePXuqvB561EUg/r/IL7/8Qh9//DH9+OOPXCGsXltJTk6moKAg8vPz48532bJldPz4cRowYICL3Ltz587MOciTcCYnJxsKuN1RV3n574U7gfeNFHzL52fDhg1rfW7/3mi329fXl0wmk25bU0rRtcii2k6dOv3pt5uHkWw+KiqKLl68qCsAX7FiBb377ru0aNEibnzhwoX073//m+Li4lzuFZcvX6Zr1665dYz98ssvXKG0h4eH6u+MxOq8du7u/K/L9cFIXvxXby96uBPdjxs3joiI7ROtQHz06NFUVlZGaWlptd7fdV23t99+m44ePUpms9mlnXXq1MnQteVOqs5D6z67HkTC9T/IoUOHaOLEifTGG29w43v37qWSkhKaPn26S8f80qVLNGvWLAoNDWWdIK2UOTw8nCtt3rRpEyUnJ7uILJ9//nkaOHAgO5lmzpxJRNXSuvfee4+Ji++66y7VCaeNp6SkUHx8POuALFiwQCUn9vLyoscee4zatWvnss3/93//R/379+fGZGbPnq0rm87MzKRly5ZRYmIiORwO2rp1KxUWFtKVK1do7dq1lJKSQmvWrPnLXphvVbZv387t3Ldq1cpwutOnT9OqVato4MCBXGnrtWvXaOvWrdS6desay8Nzc3Np/vz53JuAUhBev359MplMTJa7b98+euONN1g7z8rKooqKCsrJyaF69erRN998Qy+99BJVVVVRnz59KC8vT0hVNZw+fZpWrlxJ7du3r5HwvTbH4777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", - "text/plain": [ - "<Figure size 1000x700 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%%time\n", - "centile = q.get_quantile(100)\n", - "df = pd.DataFrame(centile[\"buckets\"])\n", - "df.plot.bar(x=\"lower_bound\", y=\"bucket_mean\", figsize=(10, 7))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "leximpact-prepare-data-kernel", - "language": "python", - "name": "leximpact-prepare-data-kernel" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/code_CASD/extractions_base_des_impots/20_Convert_SAS.ipynb b/notebooks/code_CASD/extractions_base_des_impots/20_Convert_SAS.ipynb deleted file mode 100644 index 0f851b40154c49f1a4ebd8e5f68000997e9a8bc5..0000000000000000000000000000000000000000 --- a/notebooks/code_CASD/extractions_base_des_impots/20_Convert_SAS.ipynb +++ /dev/null @@ -1,291 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# CASD : Conversion de l'extraction SAS en Apache Parquet + retraitement de certaines variables de POTE brut" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from IPython.core.interactiveshell import InteractiveShell\n", - "\n", - "InteractiveShell.ast_node_interactivity = \"all\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "year = \"2019\"\n", - "# year = \"2019\"\n", - "# year = \"2018\"\n", - "SAS_FILE = (\n", - " r\"C:\\Users\\Public\\Documents\\TRAVAIL\\agregats\\sas/agregats_pote_\"\n", - " + year\n", - " + \".sas7bdat\"\n", - ")\n", - "OUT_PATH = r\"C:\\Users\\Public\\Documents\\TRAVAIL\\agregats\\data/\"\n", - "OUT_PATH = OUT_PATH + \"assiettes_pote_brutes_\" + year + \"-chunk/\"\n", - "taille_chunk = 2 * 2**20 # 2**20 = 1_048_576\n", - "# taille_chunk = 5000\n", - "# taille_chunk = 600_000" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import shutil\n", - "from pathlib import Path\n", - "\n", - "import pandas as pd\n", - "import vaex\n", - "from tqdm import tqdm" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# sas_col = \"FIP18_c revkire rimp tsirna rbg srbg mnrvr3 mnrvi2 mnrvk mnrvni Z8uy nbpart zn nbefi nbfoy nbpldm mat agec aged clirpg frf Z1ak Z1bk txmoy impot impotnet j rnirp8 rnimeh tsirna mnipeg rnirai rnirdu rnirgi f g h i r p Z1az Z1bz stutile zf zp\".split( \" \")\n", - "# sas_col = \"FIP18_c revkire rimp tsirna rbg srbg mnrvr3 mnrvi2 mnrvk mnrvni Z8uy nbpart zn nbefi nbfoy nbpldm mat agec aged clirpg frf Z1ak Z1bk txmoy impot impotnet j rnirp8 rnimeh tsirna mnipeg rnirai rnirdu rnirgi f g h i r p Z1az Z1bz stutile zf zp\".split(\n", - "# \" \"\n", - "# )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Traitement des données du fichier SAS" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# On somme les colonnes qui nous intéressent, pour l'instant n'est valable que pour 2019\n", - "def sum_columns(df):\n", - " # Pour assiette de CSG\n", - " df[\"revenus_capitaux_prelevement_bareme\"] = df.z2ch\n", - " df[\"revenus_capitaux_prelevement_liberatoire\"] = df.z2dh + df.z2xx\n", - " df[\"revenus_capitaux_prelevement_forfaitaire_unique_ir\"] = df.z2dc + df.z2tr + df.z2ts + df.z2ww + df.z2zz + df.z2fu + df.z2tt\n", - " df[\"rente_viagere_titre_onereux_net\"] = df.z1cw + df.z1dw\n", - " # Micro-foncier : on applique l'abattement de 30%\n", - " df[\"revenu_categoriel_foncier\"] = (\n", - " df.z4ba + (df.z4be * 0.7) - (df.z4bb + df.z4bc + df.z4bd)\n", - " )\n", - " # df['rev_categ_foncier4ba']=df.Z4ba\n", - " df[\"assiette_csg_plus_values\"] = df.z3vg + df.z3ua - df.z3va\n", - " df[\"assiette_csg_revenus_capital\"] = (\n", - " df[\"revenus_capitaux_prelevement_bareme\"]\n", - " + df[\"revenus_capitaux_prelevement_liberatoire\"]\n", - " + df[\"revenus_capitaux_prelevement_forfaitaire_unique_ir\"]\n", - " + df[\"rente_viagere_titre_onereux_net\"]\n", - " + df[\"revenu_categoriel_foncier\"]\n", - " + df[\"assiette_csg_plus_values\"]\n", - " )\n", - "\n", - " # Autres\n", - " df[\"retraites\"] = df.z1as + df.z1bs # + df.mnimqg\n", - " # df[\n", - " # \"pre_retraites_etranger\"\n", - " # ] = df.z8sc # Attention, seulement de l'étranger, sinon c'est df.Z1ap + df.Z1bp\n", - "\n", - " df[\"chomage_et_indemnites\"] = df.z1ap + df.z1bp\n", - "\n", - " df[\"rev_salaire\"] = df.z1aj + df.z1bj + df.z1cj + df.z8tk + df.z1af + df.z1ag + df.z1aa + df.z1ba + df.z1gb + df.z1hb + df.z1gf + df.z1hf + df.z1gg + df.z1hg +\n", - " df.z1aq + df.z1bq + df.z1gh + df.z1hh \n", - "\n", - " # Revenus des non salariés\n", - " df['rag'] = df.z5hd + df.z5id + df.z5hb + df.z5ib + df.z5hh + df.z5ih + df.z5hc + df.z5ic + df.z5hi + df.z5ii + df.z5ak + df.z5bk + df.z5al + df.z5bl - df.z5hf -\n", - " df.z5if - df.z5hl - df.z5il + df.z5hm + df.z5im + df.z5hz + df.z5iz + df.z5xa + df.z5ya + df.z5xb + df.z5yb + df.z5xt + df.z5xu + df.z5xv + df.z5xw\n", - " \n", - " df['ric'] = df.z5ta + df.z5ua + df.z5tb + df.z5ub + df.z5kn + df.z5ln + df.z5ko + df.z5lo + df.z5kp + df.z5lp + df.z5kb + df.z5lb + df.z5kh + df.z5lh + df.z5kc +\n", - " df.z5lc + df.z5ki + df.z5li + df.z5df + df.z5ef + df.z5dg + df.z5eg - df.z5kf - df.z5lf - df.z5kl - df.z5ll\n", - "\n", - " df['rnc'] = df.z5te + df.z5ue + df.z5hp + df.z5ip + df.z5hq + df.z5iq + df.z5qb + df.z5rb + df.z5qh + df.z5rh + df.z5qc + df.z5rc + df.z5qi + df.z5ri + df.z5xj +\n", - " df.z5yj + df.z5xk + df.z5yk - df.z5qe - df.z5re - df.z5qk - df.z5rk + df.z5ql + df.z5rl + df.z5qm + df.z5rm\n", - "\n", - " df[\"pension_invalidite\"] = df.z1az + df.z1bz\n", - "\n", - " df[\"pension_alimentaire\"] = df.z1ao + df.z1bo\n", - "\n", - " df[\"revenus_individuels\"] = df[\"rev_salaire\"] + df[\"retraites\"] + df[\"chomage_et_indemnites\"] + df[\"rag\"] + df[\"ric\"] + df[\"rnc\"] + df[\"pension_invalidite\"] + df.[\"pension_alimentaire\"]\n", - "\n", - " df[\"revenus_individuels_par_part\"] = df.revenus_individuels / df.nbpart\n", - " df[\"revkire_par_part\"] = df.revkire / df.nbpart\n", - " \n", - " df.drop(['z2ch', 'z2dh', 'z2xx', 'z2dc', 'z2tr', 'z2ts', 'z2ww', 'z2zz', 'z2fu', 'z2tt', 'z1cw', 'z1dw', 'z4ba', 'z4be', 'z4bb', 'z4bc', 'z4bd',\n", - " 'z3vg', 'z3ua', 'z3va', 'z1as', 'z1bs', 'z1ap', 'z1bp', 'z1aj', 'z1bj', 'z1cj', 'z8tk', 'z1af', 'z1ag', 'z1aa', 'z1ba', 'z1gb',\n", - " 'z1hb', 'z1gf', 'z1hf', 'z1gg', 'z1hg', 'z1aq', 'z1bq', 'z1gh', 'z1hh', 'z5hd', 'z5id', 'z5hb', 'z5ib', 'z5hh', 'z5ih', \n", - " 'z5hc', 'z5ic', 'z5hi', 'z5ii', 'z5ak', 'z5bk', 'z5al', 'z5bl', 'z5hf', 'z5if', 'z5hl', 'z5il', 'z5hm', 'z5im', 'z5hz',\n", - " 'z5iz', 'z5xa', 'z5ya', 'z5xb', 'z5yb', 'z5xt', 'z5xu', 'z5xv', 'z5xw', 'z5ta', 'z5ua', 'z5tb', 'z5ub', 'z5kn', 'z5ln', \n", - " 'z5ko', 'z5lo', 'z5kp', 'z5lp', 'z5kb', 'z5lb', 'z5kh', 'z5lh', 'z5kc', 'z5lc', 'z5ki', 'z5li', 'z5df', 'z5ef', 'z5dg',\n", - " 'z5eg', 'z5kf', 'z5lf', 'z5kl', 'z5ll', 'z5te', 'z5ue', 'z5hp', 'z5ip', 'z5hq', 'z5iq', 'z5qb', 'z5rb', 'z5qh', 'z5rh',\n", - " 'z5qc', 'z5rc', 'z5qi', 'z5ri', 'z5xj', 'z5yj', 'z5xk', 'z5yk', 'z5qe', 'z5re', 'z5qk', 'z5rk', 'z5ql', 'z5rl', 'z5qm', 'z5rm',\n", - " 'z1az', 'z1bz', 'z1ao', 'z1bo'])\n", - " return df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def clean_chunk(chunk):\n", - " chunk.columns = [c.lower() for c in chunk.columns.to_list()]\n", - " chunk.fillna(0, inplace=True)\n", - " chunk = chunk.astype({\"stutile\": \"str\"})\n", - " chunk = chunk.astype({\"fip18_c\": \"str\"})\n", - " chunk = chunk.replace({\"tsirna\": {\"+\": 1, \"-\": \"-1\"}, \"srbg\": {\"+\": 1, \"-\": \"-1\"}})\n", - " chunk = chunk.astype({\"tsirna\": \"int32\", \"srbg\": \"int32\"})\n", - " chunk[\"rnirp8\"] = chunk[\"rnirp8\"] * chunk[\"tsirna\"]\n", - " chunk[\"rbg\"] = chunk[\"rbg\"] * chunk[\"srbg\"]\n", - " chunk[\"f+h\"] = chunk[\"f\"] + chunk[\"h\"]\n", - " # chunk[\"zp+zf\"] = chunk[\"zp\"] + chunk[\"zf\"] => Its a boolean !!!\n", - " chunk.drop([\"tsirna\", \"srbg\"], axis=1, inplace=True)\n", - " chunk = sum_columns(chunk)\n", - "\n", - " return chunk" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Lecture du fichier SAS\n", - "\n", - "On va lire le fichier par morceau de 1 million de lignes, pour ne pas saturer la mémoire. Il y a 39 millions de lignes.\n", - "\n", - "On va les enregistrer au fur et à mesure en format Apache Arrow." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre d'itérations : 19\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "19it [22:00, 69.48s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: total: 20min 54s\n", - "Wall time: 22min\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "%%time\n", - "# Temps sur CASD : < 20 minutes.\n", - "\n", - "\n", - "# Efface le dossier de sortie\n", - "shutil.rmtree(OUT_PATH, ignore_errors=True)\n", - "Path(OUT_PATH).mkdir(parents=True, exist_ok=True)\n", - "\n", - "dfi = pd.read_sas(\n", - " SAS_FILE, chunksize=taille_chunk, encoding=\"iso8859-15\", iterator=True\n", - ")\n", - "\n", - "dd_values = None\n", - "i = 0\n", - "print(f\"Nombre d'itérations : {39512402/taille_chunk:.0f}\")\n", - "for chunk in tqdm(dfi):\n", - " chunk = clean_chunk(chunk)\n", - " dd_values = vaex.from_pandas(chunk, copy_index=False)\n", - " dd_values.export(f\"{OUT_PATH}pote_brutes_{year}_{i}.parquet\")\n", - " del dd_values\n", - " dd_values = None\n", - " #### DEBUG\n", - " i += 1\n", - " # if i>=2:\n", - " # break\n", - " #### DEBUG" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Vérification" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "chunk" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from leximpact_prepare_data.calib_and_copules import tc\n", - "\n", - "dfv = vaex.open(f\"{OUT_PATH}pote_brutes_{year}_*.parquet\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tc.assertEqual(len(dfv), 39_264_696) # 39_512_402\n", - "tc.assertGreaterEqual(dfv[\"revkire\"].count(), 36644848)\n", - "tc.assertGreaterEqual(dfv[\"revkire\"].sum(), 1_084_000_000_000)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "leximpact-prepare-data-kernel", - "language": "python", - "name": "leximpact-prepare-data-kernel" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/notebooks/code_CASD/extractions_base_des_impots/30a_Agregats_POTE-Quantiles.ipynb b/notebooks/code_CASD/extractions_base_des_impots/30a_Agregats_POTE-Quantiles.ipynb deleted file mode 100644 index 481d2672fe6377a70bf4f51cc3f2c0e2630496fe..0000000000000000000000000000000000000000 --- a/notebooks/code_CASD/extractions_base_des_impots/30a_Agregats_POTE-Quantiles.ipynb +++ /dev/null @@ -1,381 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "284168c2-c515-442a-8943-638ab2487933", - "metadata": {}, - "source": [ - "# CASD : Extraction de quantiles de POTE" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3b1b7645-f0a7-4929-a667-3ffa31e1b4db", - "metadata": {}, - "outputs": [], - "source": [ - "from IPython.core.interactiveshell import InteractiveShell\n", - "\n", - "InteractiveShell.ast_node_interactivity = \"all\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e888519d-ca9f-404a-b188-49de0bf72e31", - "metadata": {}, - "outputs": [], - "source": [ - "year = \"2019\"\n", - "# year = \"2019\"\n", - "# year = \"2018\"\n", - "OUT_PATH = r\"C:\\Users\\Public\\Documents\\TRAVAIL\\agregats\\data/\"\n", - "ARROW_PATH = OUT_PATH + \"assiettes_pote_brutes_\" + year + r\"-chunk/\"\n", - "taille_chunk = 2 * 2**20 # 2**20 = 1_048_576\n", - "# taille_chunk = 5000" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5e63307c-d42d-43d6-9ce3-8ea904a338eb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'0.0.17'" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import leximpact_prepare_data\n", - "\n", - "leximpact_prepare_data.__version__" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d5c9f1f6-e464-48d1-a933-421ad58a270a", - "metadata": {}, - "outputs": [], - "source": [ - "import gc\n", - "import json\n", - "\n", - "import vaex\n", - "from tqdm import tqdm\n", - "\n", - "from leximpact_prepare_data.scenario_tools.calib_and_copules import *" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "805afac3-cab5-4795-8c93-84cd0e99d45f", - "metadata": {}, - "outputs": [ - { - "ename": "AssertionError", - "evalue": "39818227 != 39264696", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAssertionError\u001b[0m Traceback (most recent call last)", - "File \u001b[1;32m<timed exec>:5\u001b[0m, in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n", - "File \u001b[1;32mC:\\Users\\Public\\Documents\\Anaconda\\envs\\leximpa\\lib\\unittest\\case.py:837\u001b[0m, in \u001b[0;36mTestCase.assertEqual\u001b[1;34m(self, first, second, msg)\u001b[0m\n\u001b[0;32m 833\u001b[0m \u001b[38;5;124;03m\"\"\"Fail if the two objects are unequal as determined by the '=='\u001b[39;00m\n\u001b[0;32m 834\u001b[0m \u001b[38;5;124;03m operator.\u001b[39;00m\n\u001b[0;32m 835\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 836\u001b[0m assertion_func \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getAssertEqualityFunc(first, second)\n\u001b[1;32m--> 837\u001b[0m \u001b[43massertion_func\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfirst\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msecond\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmsg\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmsg\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32mC:\\Users\\Public\\Documents\\Anaconda\\envs\\leximpa\\lib\\unittest\\case.py:830\u001b[0m, in \u001b[0;36mTestCase._baseAssertEqual\u001b[1;34m(self, first, second, msg)\u001b[0m\n\u001b[0;32m 828\u001b[0m standardMsg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m != \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m%\u001b[39m _common_shorten_repr(first, second)\n\u001b[0;32m 829\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_formatMessage(msg, standardMsg)\n\u001b[1;32m--> 830\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfailureException(msg)\n", - "\u001b[1;31mAssertionError\u001b[0m: 39818227 != 39264696" - ] - } - ], - "source": [ - "%%time\n", - "# Temps de chargement 8 secondes pour 39,264,695 lignes, vive le lazy loading !\n", - "dfv = vaex.open(ARROW_PATH + \"*\")\n", - "# dfv = vaex.open(ARROW_PATH + \"pote_brutes_2019_5.arrow\")\n", - "# dfv\n", - "tc.assertEqual(len(dfv), 39264696)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f7042430-e355-4142-a733-a083b936d67d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: total: 0 ns\n", - "Wall time: 0 ns\n" - ] - } - ], - "source": [ - "%%time\n", - "# Temps d'exécution : 2 secondes\n", - "# pyramide_des_ages = dfv.groupby(by=\"aged\", agg={\"age\": vaex.agg.count(\"aged\")})\n", - "# pyramide_des_ages" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2e8a14fa-6b7a-4a3a-95d2-c559dbd2b20e", - "metadata": {}, - "outputs": [], - "source": [ - "# dfv.info()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7d55425f-af65-4f69-9b84-270020a8122e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['mat',\n", - " 'aged',\n", - " 'agec',\n", - " 'zf',\n", - " 'zp',\n", - " 'zn',\n", - " 'stutile',\n", - " 'f',\n", - " 'clirpg',\n", - " 'g',\n", - " 'r',\n", - " 'j',\n", - " 'h',\n", - " 'i',\n", - " 'p',\n", - " 'nbefi',\n", - " 'nbfoy',\n", - " 'nbpldm',\n", - " 'rimp',\n", - " 'rnirp8',\n", - " 'rbg',\n", - " 'mnrvr3',\n", - " 'txmoy',\n", - " 'revkire',\n", - " 'z1ak',\n", - " 'z1az',\n", - " 'z1bk',\n", - " 'z1bz',\n", - " 'z8uy',\n", - " 'mnipeg',\n", - " 'mnrvi2',\n", - " 'mnrvk',\n", - " 'mnrvni',\n", - " 'rnimeh',\n", - " 'rnirai',\n", - " 'rnirdu',\n", - " 'rnirgi',\n", - " 'frf',\n", - " 'impotnet',\n", - " 'impot',\n", - " 'nbpart',\n", - " 'fip18_c',\n", - " 'f+h']" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dfv.get_column_names()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d9d20ef4-b120-4f52-8ba5-6f722d56037b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['f', 'g', 'h', 'i', 'r', 'p']" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\"f g h i r p\".split(\" \")" - ] - }, - { - "cell_type": "markdown", - "id": "0653c281-5687-4542-8ff1-bd70dace2410", - "metadata": {}, - "source": [ - "## Variables continues" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "48b77a1d-4e9e-496b-8131-be831cfbf5ab", - "metadata": {}, - "outputs": [], - "source": [ - "# \"Z1ak Z1bk txmoy impot impotnet rnirp8 rnimeh tsirna mnipeg rnirai rnirdu rnirgi Z1az Z1bz\".split(\" \")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7985d253-e7d1-49b1-8d96-372b2002cef0", - "metadata": {}, - "outputs": [], - "source": [ - "# continuous_variables = [\n", - "# \"mnipeg\", Toujours à 0\n", - "# \"rnirp8\",\n", - "# \"rnimeh\",\n", - "# \"rnirai\",\n", - "# \"rnirdu\",\n", - "# \"rnirgi\",\n", - "# \"Z1az\",\n", - "# \"Z1bz\",\n", - "# \"rimp\",\n", - "# \"rbg\",\n", - "# \"mnrvr3\",\n", - "# \"revkire\",\n", - "# \"Z1ak\",\n", - "# \"Z1bk\",\n", - "# \"Z8uy\",\n", - "# \"MNRVI2\",\n", - "# \"MNRVK\",\n", - "# \"MNRVNI\",\n", - "# \"FRF\",\n", - "# \"Z1ak\",\n", - "# \"Z1bk\",\n", - "# \"txmoy\",\n", - "# \"impot\",\n", - "# \"impotnet\",\n", - "# ]\n", - "# continuous_variables = [c.lower() for c in continuous_variables]" - ] - }, - { - "cell_type": "markdown", - "id": "7f1e01ef-7303-4bfd-9d60-a28f861c56bd", - "metadata": {}, - "source": [ - "### Calcul des quantiles" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "da0ed4e7-0836-43c1-a99e-c33a5236f7d9", - "metadata": {}, - "outputs": [], - "source": [ - "def compute_quantile(vdf, columns=None, quantiles=10):\n", - " vdf.fillna(column_names=columns, value=0, inplace=True)\n", - " # vdf.fillnan(column_names=columns, value=0, inplace=True)\n", - " vdf.shape[0]\n", - " columns = columns if columns else vdf.get_column_names()\n", - " for col in tqdm(columns):\n", - " try:\n", - " # print(col)\n", - " q = Quantile(vdf[col].tolist())\n", - " for quantile in quantiles:\n", - " q_dict = q.get_quantile(quantile)\n", - " with open(\n", - " f\"{OUT_PATH}/quantile_POTE_{quantile}_{year}_{col}.json\", \"w\"\n", - " ) as f:\n", - " f.write(json.dumps(q_dict))\n", - " del q\n", - " gc.collect()\n", - " except Exception as e:\n", - " print(f\"ERROR processing {col} {e.__class__.__name__} : {e}\")\n", - " continue" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5960386d-494f-4305-ac33-d98381478b54", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|███████████████████████████████████████| 23/23 [1:50:32<00:00, 288.38s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: total: 1h 49min 50s\n", - "Wall time: 1h 50min 32s\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "%%time\n", - "# Temps sur CASD : 5 minutes par colonne\n", - "compute_quantile(dfv, quantiles=[10, 100])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d4dcc7d7-29f2-470e-8713-8858399c54f3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "469" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "del dfv\n", - "gc.collect()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "leximpact-prepare-data-kernel", - "language": "python", - "name": "leximpact-prepare-data-kernel" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/code_CASD/extractions_base_des_impots/30b_Copules_POTE.ipynb b/notebooks/code_CASD/extractions_base_des_impots/30b_Copules_POTE.ipynb deleted file mode 100644 index a930163a42aea70bb64742e0aa84d0cb3e061ce6..0000000000000000000000000000000000000000 --- a/notebooks/code_CASD/extractions_base_des_impots/30b_Copules_POTE.ipynb +++ /dev/null @@ -1,714 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "284168c2-c515-442a-8943-638ab2487933", - "metadata": {}, - "source": [ - "# CASD : Extraction d'agrégats" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b54838d4-6300-4242-816a-2b9df2041868", - "metadata": {}, - "outputs": [], - "source": [ - "#!conda list" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3b1b7645-f0a7-4929-a667-3ffa31e1b4db", - "metadata": {}, - "outputs": [], - "source": [ - "from IPython.core.interactiveshell import InteractiveShell\n", - "\n", - "InteractiveShell.ast_node_interactivity = \"all\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e888519d-ca9f-404a-b188-49de0bf72e31", - "metadata": {}, - "outputs": [], - "source": [ - "year = \"2019\"\n", - "# year = \"2019\"\n", - "# year = \"2018\"\n", - "OUT_PATH = r\"C:\\Users\\Public\\Documents\\TRAVAIL\\agregats\\data/\"\n", - "OUT_PATH = OUT_PATH + \"assiettes_pote_brutes_\" + year + \"-chunk/\"\n", - "taille_chunk = 2 * 2**20 # 2**20 = 1_048_576" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5e63307c-d42d-43d6-9ce3-8ea904a338eb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'0.0.23'" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import leximpact_prepare_data\n", - "\n", - "leximpact_prepare_data.__version__" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d5c9f1f6-e464-48d1-a933-421ad58a270a", - "metadata": {}, - "outputs": [], - "source": [ - "import gc\n", - "\n", - "import pandas as pd\n", - "import vaex\n", - "from tqdm import tqdm\n", - "\n", - "from leximpact_prepare_data.scenario_tools.calib_and_copules import *" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "805afac3-cab5-4795-8c93-84cd0e99d45f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: total: 375 ms\n", - "Wall time: 372 ms\n" - ] - } - ], - "source": [ - "%%time\n", - "# Temps de chargement 8 secondes pour 39,264,695 lignes, vive la lazy loading !\n", - "dfv = vaex.open(OUT_PATH + \"*\")\n", - "# dfv = vaex.open(ARROW_PATH + \"pote_brutes_2019_5.arrow\")\n", - "# dfv" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f7042430-e355-4142-a733-a083b936d67d", - "metadata": {}, - "outputs": [], - "source": [ - "%%time\n", - "# Temps d'exécution : 2 secondes\n", - "# pyramide_des_ages = dfv.groupby(by=\"aged\", agg={\"age\": vaex.agg.count(\"aged\")})\n", - "# pyramide_des_ages" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b5a6136d-ad4b-4ad0-b823-1fa476cc0100", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2e8a14fa-6b7a-4a3a-95d2-c559dbd2b20e", - "metadata": {}, - "outputs": [], - "source": [ - "# dfv.info()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e08260b0-bf98-4160-8825-bcdaa20c9229", - "metadata": {}, - "outputs": [], - "source": [ - "# tc.assertEqual(dfv[\"revkire\"].count(), 39512402) # 2019\n", - "tc.assertEqual(dfv[\"revkire\"].count(), 39818227) # 2020" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7d55425f-af65-4f69-9b84-270020a8122e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['rnsgbd',\n", - " 'rnsgld',\n", - " 'revkire',\n", - " 'z1aj',\n", - " 'z1ap',\n", - " 'z1as',\n", - " 'z1bj',\n", - " 'z1bp',\n", - " 'z1bs',\n", - " 'z1cj',\n", - " 'z1cw',\n", - " 'z1dw',\n", - " 'z2ch',\n", - " 'z2dc',\n", - " 'z2dh',\n", - " 'z2tr',\n", - " 'z3ua',\n", - " 'z3vg',\n", - " 'z3vz',\n", - " 'z4ba',\n", - " 'z4bb',\n", - " 'z4bc',\n", - " 'z4bd',\n", - " 'z4be',\n", - " 'z6de',\n", - " 'z8sc',\n", - " 'z8sw',\n", - " 'z8sx',\n", - " 'cics',\n", - " 'mnimqg',\n", - " 'fip18_c',\n", - " 'revenus_capitaux_prelevement_bareme',\n", - " 'revenus_capitaux_prelevement_liberatoire',\n", - " 'revenus_capitaux_prelevement_forfaitaire_unique_ir',\n", - " 'rente_viagere_titre_onereux_net',\n", - " 'revenu_categoriel_foncier',\n", - " 'assiette_csg_plus_values',\n", - " 'assiette_csg_revenus_capital',\n", - " 'retraites',\n", - " 'chomage_et_indemnites',\n", - " 'rev_salaire']" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dfv.get_column_names()\n", - "# Remove id fip18_c\n", - "_ = dfv.drop(\"fip18_c\", inplace=True)" - ] - }, - { - "cell_type": "markdown", - "id": "0653c281-5687-4542-8ff1-bd70dace2410", - "metadata": {}, - "source": [ - "## Variables continues" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "48b77a1d-4e9e-496b-8131-be831cfbf5ab", - "metadata": {}, - "outputs": [], - "source": [ - "# \"Z1ak Z1bk txmoy impot impotnet rnirp8 rnimeh tsirna mnipeg rnirai rnirdu rnirgi Z1az Z1bz\".split(\" \")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7985d253-e7d1-49b1-8d96-372b2002cef0", - "metadata": {}, - "outputs": [], - "source": [ - "# continuous_variables = dfv.get_column_names()\n", - "# continuous_variables = [c.lower() for c in continuous_variables]\n", - "continuous_variables = [\n", - " \"revkire\",\n", - " \"revkire_par_part\",\n", - " \"rbg\",\n", - " \"rnirp8\",\n", - " \"assiette_csg_revenus_capital\",\n", - " \"revenus_capitaux_prelevement_bareme\",\n", - " \"revenus_capitaux_prelevement_liberatoire\",\n", - " \"revenus_capitaux_prelevement_forfaitaire_unique_ir\",\n", - " \"rente_viagere_titre_onereux_net\",\n", - " \"revenu_categoriel_foncier\",\n", - " \"assiette_csg_plus_values\",\n", - " \"revenus_individuels\",\n", - " \"revenus_individuels_par_part\",\n", - " \"rev_salaire\",\n", - " \"retraites\",\n", - " \"chomage_et_indemnites\",\n", - " \"rag\",\n", - " \"ric\",\n", - " \"rnc\",\n", - " \"pension_invalidite\",\n", - " \"pension_alimentaire\",\n", - "]" - ] - }, - { - "cell_type": "markdown", - "id": "f9d8a9c4-f719-4af9-bb7d-ece0262bf405", - "metadata": {}, - "source": [ - "### Calcul d'agregats" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "418b50a2-0bc9-4f4b-a7db-1bb271ad1d32", - "metadata": {}, - "outputs": [], - "source": [ - "def compute_agg(vdf, columns):\n", - " sub_total = []\n", - " vdf.fillna(column_names=columns, value=0, inplace=True)\n", - " # vdf.fillnan(column_names=columns, value=0, inplace=True)\n", - " ldf = vdf.shape[0]\n", - " columns = columns if columns else vdf.get_column_names()\n", - " for col in tqdm(columns):\n", - " # print(col)\n", - " name = f\"{col}_non_zero\"\n", - " vdf.select(f\"{col} != 0\", name=name)\n", - " nb_no_zero = int(vdf.count(\"*\", selection=name))\n", - " lenzero = ldf - nb_no_zero\n", - " dict_col = {\n", - " \"name\": col,\n", - " \"nb_line\": ldf,\n", - " \"lenzero\": lenzero,\n", - " \"pct_zero\": lenzero / ldf * 100,\n", - " \"sum\": int(vdf.sum(col)),\n", - " \"mean\": float(vdf.mean(col, selection=name)) if nb_no_zero > 0 else 0.0,\n", - " \"variance\": float(vdf.var(col, selection=name)) if nb_no_zero > 0 else 0.0,\n", - " \"std_dev\": float(vdf.std(col, selection=name)) if nb_no_zero > 0 else 0.0,\n", - " }\n", - " sub_total.append(dict_col)\n", - " return pd.DataFrame(sub_total)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "22b6014d-ae3c-4b70-82f8-c5f51d484bed", - "metadata": {}, - "outputs": [], - "source": [ - "%%time\n", - "# Temps sur CASD : 30s par colonne avant l'upgrade de machine, moins de 3 secondes après upgrade !\n", - "df_agg = compute_agg(dfv, continuous_variables)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a3f94b4e-3016-48be-bdcf-0f3e236c434a", - "metadata": {}, - "outputs": [], - "source": [ - "# dfv.mnipeg.mean()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "57e615a2-d2d7-4422-bed0-4d8c27e0b06d", - "metadata": {}, - "outputs": [], - "source": [ - "pd.set_option(\"display.float_format\", \"{:,}\".format)\n", - "# Export dans un fichier\n", - "df_agg.to_csv(OUT_PATH + \"/agregats_POTE_revenus_rici_\" + year + \".csv\", index=False)\n", - "df_agg" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5317aaf0-24cd-4af9-b757-a50818d74177", - "metadata": {}, - "outputs": [], - "source": [ - "del df_agg\n", - "import gc\n", - "\n", - "gc.collect()" - ] - }, - { - "cell_type": "markdown", - "id": "785ec58a-da1b-4cd3-8851-169b60d4ef24", - "metadata": {}, - "source": [ - "## Extraction de fonctions de répartition (pour calibration)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3023e812-2306-4fc8-813e-83e8a9e6da19", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: total: 23.4 s\n", - "Wall time: 23.2 s\n" - ] - } - ], - "source": [ - "%%time\n", - "dfv = dfv.fillna(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9ee6e983-0135-4db8-8d66-43fbbfc3b0f3", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: total: 0 ns\n", - "Wall time: 0 ns\n" - ] - } - ], - "source": [ - "%%time\n", - "# calib = get_calib(dfv, \"rimp\", 10)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "aaf56d71-c77d-4e03-8ec8-7b7b337ac8f9", - "metadata": {}, - "outputs": [], - "source": [ - "# Redéfinition à migrer !\n", - "from typing import Dict\n", - "\n", - "\n", - "def get_primary_buckets(\n", - " vdx_sort: vaex.dataframe.DataFrameLocal,\n", - " nb_bucket: int,\n", - " variable_to_split_on: str = \"revkire\",\n", - " minimal_bucket_size=12,\n", - " debug=False,\n", - ") -> Dict:\n", - " \"\"\"\n", - " Objectif: Split the variable in buckets\n", - " Dans chaque bucket on stocke toutes les valeurs non nulles de \"variable\"\n", - " ::vdx_sort:: Le dataset, trié selon la variable à étudier\n", - " ::nb_bucket:: Nombre de tranches souhaitées\n", - " ::variable_to_split_on:: Variable on which to split buckets\n", - " ::debug:: Pour activer un mode debug, qui affiche des traces\n", - " \"\"\"\n", - " dataset_size = vdx_sort.shape[0] # Nb de lignes\n", - " # Conversion en array\n", - " variable_array = vdx_sort.to_arrays(\n", - " column_names=[variable_to_split_on], selection=False, array_type=\"python\"\n", - " )[0]\n", - " # On vérifie que le dataset est bien trié\n", - " previous = variable_array[-1]\n", - " for i in range(1, 1000):\n", - " idx = dataset_size // i\n", - " idx = idx if idx != dataset_size else dataset_size - 1\n", - " if previous < variable_array[idx]:\n", - " raise DatasetNotSorted(\n", - " f\"Your dataset is not sorted on {variable_to_split_on}!\"\n", - " )\n", - " previous = variable_array[idx]\n", - "\n", - " # Découpage du RFR en buckets:\n", - " borders = get_borders(\n", - " dataset_size=dataset_size,\n", - " nb_bucket=nb_bucket,\n", - " minimal_bucket_size=minimal_bucket_size,\n", - " debug=debug,\n", - " )\n", - "\n", - " # On retire la dernière frontière pour éviter des tests (index out of range), on la remetra après\n", - " borders = borders[:-1]\n", - " i = 0\n", - " # On supprime les frontières qui n'auraient que du 0\n", - " while i < len(borders):\n", - " if variable_array[borders[i]] < 1:\n", - " if debug:\n", - " print(\n", - " f\"WARNING: On efface la frontière d'index {i} : {borders[i]} inutile car valeur de la borne haute est {variable_array[borders[i]]}\"\n", - " )\n", - " borders = borders[:i] + borders[i + 1 :]\n", - " else:\n", - " i += 1\n", - " frontieres_valeurs = [0] + [variable_array[frontiere] for frontiere in borders]\n", - " # On ajoute une valeur de fin trés haute (10^15€)\n", - " frontieres_valeurs += [10**15]\n", - " # On remet la dernière frontière\n", - " borders += [dataset_size]\n", - " dic = {\"borders_values\": frontieres_valeurs, \"borders\": borders}\n", - " del variable_array\n", - " gc.collect()\n", - " return dic" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c45ddd1b-2477-4bd2-ad27-a4652fafe270", - "metadata": {}, - "outputs": [], - "source": [ - "# TODO : import from package\n", - "# def get_fake_upper_bound(val):\n", - "# if val == 1e15:\n", - "# return 1e15\n", - "# else:\n", - "# return 10 ** (len(str(int(val))))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "32fa27f6-6639-4fca-8eb0-16597361b652", - "metadata": {}, - "outputs": [], - "source": [ - "# get_fake_upper_bound(100.5)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8317e05e-df85-4b16-bca8-80ca19e8223e", - "metadata": {}, - "outputs": [], - "source": [ - "# calib = get_copulas(dfv, \"revkire\", \"revkire\", 10, une_tranche_rfr)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "59ae4f6a-6fe5-4bbf-8aba-9fcb1c75734a", - "metadata": {}, - "outputs": [], - "source": [ - "# calib[\"copules\"][\"buckets\"][-1]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "50bf217f-3a83-4884-87a7-98d3768878b4", - "metadata": {}, - "outputs": [], - "source": [ - "# calib = calib[\"copules\"][0][\"buckets\"]\n", - "# keep_upper_bound_secret(calib)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a974e412-cbfa-4a64-86e9-f6fe80394f41", - "metadata": {}, - "outputs": [], - "source": [ - "# calib" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d2a34c2f-94de-44e4-a4ee-1ef029c8d5c6", - "metadata": {}, - "outputs": [], - "source": [ - "# calib[\"buckets\"][-1][\"seuil_var_supp\"] = \"secret\"\n", - "# calib" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a122c283-4bef-4ffa-a76b-d846d36f50be", - "metadata": {}, - "outputs": [], - "source": [ - "# from IPython.display import JSON\n", - "\n", - "# JSON(calib)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "df0387a2-0574-4acc-a75e-f8c61fc09afc", - "metadata": {}, - "outputs": [], - "source": [ - "# %%time\n", - "# # Temps sur CASD : 138s par iteration\n", - "# nb_bucket_var = 100\n", - "\n", - "# for variable in tqdm(continuous_variables):\n", - "# #calib = get_calib(dfv, variable, nb_bucket_var)\n", - "# # print(variable)\n", - "# calib = compute_copule_vaex(dfv, variable, nb_bucket_var, une_tranche_rfr)\n", - "# calib[\"copules\"][0][\"buckets\"][-1][\"seuil_var_supp\"] = \"secret\"\n", - "# with open(f\"{OUT_PATH}CalibPote-{nb_bucket_var}-{year}-{variable}.json\", \"w\") as f:\n", - "# f.write(json.dumps(calib[\"copules\"][0][\"buckets\"]))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "026dcad9-2b94-4ba7-8117-8cc92efc8b8c", - "metadata": {}, - "outputs": [], - "source": [ - "# %%time\n", - "# # Temps sur CASD : 538s par iteration !\n", - "# nb_bucket_var = 1000\n", - "\n", - "# for variable in tqdm(continuous_variables):\n", - "# #calib = get_calib(dfv, variable, nb_bucket_var)\n", - "# # print(variable)\n", - "# calib = compute_copule_vaex(dfv, variable, nb_bucket_var, une_tranche_rfr)\n", - "# calib[\"copules\"][0][\"buckets\"][-1][\"seuil_var_supp\"] = \"secret\"\n", - "# with open(f\"{OUT_PATH}CalibPote-{nb_bucket_var}-{year}-{variable}.json\", \"w\") as f:\n", - "# f.write(json.dumps(calib[\"copules\"][0][\"buckets\"]))" - ] - }, - { - "cell_type": "markdown", - "id": "d1c5f22c-5e27-4a8f-94a3-5bfe897f1d7f", - "metadata": {}, - "source": [ - "## Extraction de Copules" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c4e85dd4-2c66-4994-ad0d-5d327737aece", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|███████████████████████████████████████████| 3/3 [07:55<00:00, 158.59s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: total: 7min 54s\n", - "Wall time: 7min 55s\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "%%time\n", - "nb_bucket_var = 10\n", - "\n", - "# on fait des copules en fonction du rfr mais aussi en fonction des revenus individuels pour voir si ça permet d'améliorer l'imputation\n", - "# Les copules en fonction de assiette_csg_revenus_capital servent si on veut voir la distribution des différents revenus du capital dans la somme de revenus du capital\n", - "for copule_var in [\"revkire\", \"revkire_par_part\", \"revenus_individuels\", \"revenus_individuels_par_part\", \"assiette_csg_revenus_capital\"]\n", - " centile = get_primary_buckets(\n", - " dfv, nb_bucket_var, variable_to_split_on=copule_var, minimal_bucket_size=500\n", - " )\n", - "\n", - " for variable in tqdm(continuous_variables): # continuous_variables\n", - " try:\n", - " copule = get_copulas(\n", - " dfv,\n", - " copule_var,\n", - " variable,\n", - " nb_bucket_var,\n", - " centile_rfr,\n", - " minimal_bucket_size=100,\n", - " )\n", - " # copule[\"copules\"][0][\"buckets\"][-1][\"upper_bound\"] = \"secret\"\n", - " anonimyze_lower_and_upper_bound(copule[\"copules\"])\n", - " with open(\n", - " f\"{OUT_PATH}CopulePote-{nb_bucket_var}-{year}-{copule_var}-{variable}.json\", \"w\"\n", - " ) as f:\n", - " f.write(json.dumps(copule))\n", - " except Exception as e:\n", - " print(f\"ERROR processing {variable}\", e)\n", - " # raise e" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "364dff4d-d746-441e-bde6-1db0594e80b5", - "metadata": {}, - "outputs": [], - "source": [ - "# dfv.column_names" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "53396d39-b2d7-459a-abde-83a77a897f50", - "metadata": {}, - "outputs": [], - "source": [ - "# copule = get_copulas(dfv, \"revkire\", variable, nb_bucket_var, centile_rfr)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a753f56c-48e3-4dcd-a388-c5249615759f", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "leximpact-prepare-data-kernel", - "language": "python", - "name": "leximpact-prepare-data-kernel" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/code_CASD/extractions_base_des_impots/40_Verifications.ipynb b/notebooks/code_CASD/extractions_base_des_impots/40_Verifications.ipynb deleted file mode 100644 index 6e5c592f84b7f05a3142d5ec9291b39ca65a2d48..0000000000000000000000000000000000000000 --- a/notebooks/code_CASD/extractions_base_des_impots/40_Verifications.ipynb +++ /dev/null @@ -1,208 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "4bacd951", - "metadata": {}, - "source": [ - "# CASD : Vérification des extractions" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "455a8fc3", - "metadata": {}, - "outputs": [], - "source": [ - "# | hide\n", - "from IPython.core.interactiveshell import InteractiveShell\n", - "from matplotlib.ticker import PercentFormatter\n", - "\n", - "InteractiveShell.ast_node_interactivity = \"all\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0c00e027", - "metadata": {}, - "outputs": [], - "source": [ - "IN_PATH = r\"C:\\Users\\Public\\Documents\\TRAVAIL\\csg\\data_out/\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3a42607a", - "metadata": {}, - "outputs": [], - "source": [ - "import json\n", - "\n", - "# import seaborn as sns\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2c6c90b0", - "metadata": {}, - "outputs": [], - "source": [ - "# file = \"CalibPote-2019-rev_salaire.json\"\n", - "file = \"CalibPote-2019-assiette_csg_revenus_capital.json\"\n", - "# file ='CalibPote-1000-2019-revkire.json'\n", - "with open(IN_PATH + file) as f:\n", - " calib = json.load(f)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "40771600", - "metadata": {}, - "outputs": [], - "source": [ - "calib[\"buckets\"][15]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "52935304", - "metadata": {}, - "outputs": [], - "source": [ - "pd.set_option(\"display.float_format\", \"{:,}\".format)\n", - "df = pd.DataFrame(calib[\"buckets\"])\n", - "df" - ] - }, - { - "cell_type": "markdown", - "id": "7518c848", - "metadata": {}, - "source": [ - "60% des foyers n'ont pas de revenu du capital" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4ef8124b", - "metadata": {}, - "outputs": [], - "source": [ - "df.query(\"0.70 < ratio_nb_above_seuil < 0.9\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8d81e5a3", - "metadata": {}, - "outputs": [], - "source": [ - "df.iloc[99]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a7f2e110", - "metadata": {}, - "outputs": [], - "source": [ - "df[\"seuil_de_var_str\"] = df.seuil_var_supp.astype(str)\n", - "df[\"pareto\"] = (1 - df.ratio_nb_above_seuil) * 100" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "de033787", - "metadata": {}, - "outputs": [], - "source": [ - "sns.set(rc={\"figure.figsize\": (20, 8)})\n", - "ax = sns.scatterplot(data=df, x=\"seuil_de_var_str\", y=\"seuil_var_supp\")\n", - "_ = ax.set_xticklabels(labels=ax.get_xticklabels(), rotation=90)\n", - "_ = ax.set_title(\"Pareto de la variable\")\n", - "ax2 = ax.twinx()\n", - "ax3 = sns.lineplot(data=df, x=\"seuil_de_rfr_str\", y=\"pareto\")\n", - "ax3.yaxis.set_major_formatter(PercentFormatter())\n", - "# _ = ax.set_yscale(\"log\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f1fcf1be", - "metadata": {}, - "outputs": [], - "source": [ - "ax3 = sns.lineplot(data=df, x=\"seuil_var_supp\", y=\"pareto\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2488ff98", - "metadata": {}, - "outputs": [], - "source": [ - "sns.set(rc={\"figure.figsize\": (20, 8)})\n", - "ax = sns.scatterplot(data=df, x=\"seuil_var_supp\", y=\"nombre_ff_tranche\")\n", - "# _ = ax.set_yscale(\"log\")\n", - "_ = ax.set_xticklabels(labels=ax.get_xticklabels(), rotation=90)\n", - "_ = ax.set_title(\"Nombre de foyers par tranche de RFR\\nEchelle logarithmique\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3f8df2c3", - "metadata": {}, - "outputs": [], - "source": [ - "sns.set(rc={\"figure.figsize\": (20, 8)})\n", - "ax = sns.scatterplot(data=df, x=\"seuil_var_supp\", y=\"mean_tranche_var\")\n", - "_ = ax.set_xticklabels(labels=ax.get_xticklabels(), rotation=90)\n", - "_ = ax.set_title(\"Nombre de foyers par tranche de RFR\\nEchelle logarithmique\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ece9f9c2", - "metadata": {}, - "outputs": [], - "source": [ - "ax = sns.lineplot(data=df, x=\"seuil_var_supp\", y=\"sum_var_above_seuil\")\n", - "_ = ax.set_yscale(\"log\")\n", - "# _ = ax.set_xticklabels(labels=ax.get_xticklabels(), rotation=90)\n", - "_ = ax.set_title(\"Nombre de foyers par tranche de RFR\\nEchelle logarithmique\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9f98dc9b", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "python3", - "language": "python", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/code_CASD/extractions_base_des_impots/Colonnes_POTE_2019.xlsx b/notebooks/code_CASD/extractions_base_des_impots/Colonnes_POTE_2019.xlsx deleted file mode 100644 index d44a25648b404a56e46dcf638228cdd19c223e2d..0000000000000000000000000000000000000000 Binary files a/notebooks/code_CASD/extractions_base_des_impots/Colonnes_POTE_2019.xlsx and /dev/null differ diff --git a/notebooks/code_CASD/extractions_base_des_impots/_test_install.ipynb b/notebooks/code_CASD/extractions_base_des_impots/_test_install.ipynb deleted file mode 100644 index fc0722e8d362a9fa30f35c4b56562b3f6e1a5a58..0000000000000000000000000000000000000000 --- a/notebooks/code_CASD/extractions_base_des_impots/_test_install.ipynb +++ /dev/null @@ -1,497 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "possible-celebrity", - "metadata": {}, - "source": [ - "# Test l'installation du paquet" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "supreme-technical", - "metadata": {}, - "outputs": [], - "source": [ - "from pydantic.version import VERSION\n", - "\n", - "from leximpact_prepare_data.scenario_tools.calib_and_copules import (\n", - " DistribDeVarVaex,\n", - " get_primary_buckets,\n", - ")\n", - "\n", - "VERSION\n", - "\n", - "import vaex\n", - "\n", - "from leximpact_prepare_data.scenario_tools.calib_and_copules import (\n", - " get_copulas,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "psychological-voltage", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "50\n" - ] - } - ], - "source": [ - "variable_values = [i * 10 for i in range(50)]\n", - "dist = DistribDeVarVaex(\n", - " variable_values=variable_values,\n", - " variable=\"toto\",\n", - " nb_entity=len(variable_values),\n", - " nb_bucket_var=2,\n", - " lower_bound=50,\n", - " upper_bound=1e10,\n", - " debug=False,\n", - ")\n", - "print(dist.to_dict()[\"count\"])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "middle-damage", - "metadata": {}, - "outputs": [], - "source": [ - "test_raw = vaex.open(\"fake_pote_light.parquet\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "vital-moral", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<table>\n", - "<thead>\n", - "<tr><th># </th><th>revkire </th><th>rev_capital_partiel </th><th>rev_salaire </th><th>rente_viagere </th><th>rev_categ_foncier </th><th>retraites </th><th>chomage </th></tr>\n", - "</thead>\n", - "<tbody>\n", - "<tr><td><i style='opacity: 0.6'>0</i> </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td></tr>\n", - "<tr><td><i style='opacity: 0.6'>1</i> </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td></tr>\n", - "<tr><td><i style='opacity: 0.6'>2</i> </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td></tr>\n", - "<tr><td><i style='opacity: 0.6'>3</i> </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td></tr>\n", - "<tr><td><i style='opacity: 0.6'>4</i> </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td><td>0 </td></tr>\n", - "<tr><td>... </td><td>... </td><td>... </td><td>... </td><td>... </td><td>... </td><td>... </td><td>... </td></tr>\n", - "<tr><td><i style='opacity: 0.6'>3,895</i></td><td>22367 </td><td>67 </td><td>3355 </td><td>67 </td><td>82 </td><td>55 </td><td>23178 </td></tr>\n", - "<tr><td><i style='opacity: 0.6'>3,896</i></td><td>475 </td><td>23 </td><td>71 </td><td>23 </td><td>2 </td><td>1 </td><td>80280 </td></tr>\n", - "<tr><td><i style='opacity: 0.6'>3,897</i></td><td>4561 </td><td>12 </td><td>684 </td><td>12 </td><td>6474 </td><td>4316 </td><td>41896 </td></tr>\n", - "<tr><td><i style='opacity: 0.6'>3,898</i></td><td>43151 </td><td>12 </td><td>6472 </td><td>12 </td><td>18 </td><td>12 </td><td>123001 </td></tr>\n", - "<tr><td><i style='opacity: 0.6'>3,899</i></td><td>2234 </td><td>1 </td><td>335 </td><td>1 </td><td>209 </td><td>139 </td><td>22409 </td></tr>\n", - "</tbody>\n", - "</table>" - ], - "text/plain": [ - "# revkire rev_capital_partiel rev_salaire rente_viagere rev_categ_foncier retraites chomage\n", - "0 0 0 0 0 0 0 0\n", - "1 0 0 0 0 0 0 0\n", - "2 0 0 0 0 0 0 0\n", - "3 0 0 0 0 0 0 0\n", - "4 0 0 0 0 0 0 0\n", - "... ... ... ... ... ... ... ...\n", - "3,895 22367 67 3355 67 82 55 23178\n", - "3,896 475 23 71 23 2 1 80280\n", - "3,897 4561 12 684 12 6474 4316 41896\n", - "3,898 43151 12 6472 12 18 12 123001\n", - "3,899 2234 1 335 1 209 139 22409" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "test_raw" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "former-hawaii", - "metadata": {}, - "outputs": [], - "source": [ - "test_raw = test_raw.sort(\"revkire\", ascending=True)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "included-nigeria", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0;31mSignature:\u001b[0m\n", - "\u001b[0mget_copulas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mvaex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataframe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrameLocal\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_bucket_var\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_buckets\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0madd_upper_bucket\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0.1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.01\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mminimal_bucket_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m12\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mSource:\u001b[0m \n", - "\u001b[0;32mdef\u001b[0m \u001b[0mget_copulas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mvaex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataframe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrameLocal\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_bucket_var\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_buckets\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0madd_upper_bucket\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0.1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1e-2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mminimal_bucket_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m12\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m\"\"\"\u001b[0m\n", - "\u001b[0;34m On nous donne des tranches de RFR, en nombre de personne, et en valeur de RFR\u001b[0m\n", - "\u001b[0;34m Pour chacune de ses tranches on doit extraire les valeurs de 'variable'\u001b[0m\n", - "\u001b[0;34m On ne garde que celle supérieure à 0 et on les envoie à DistribDeVarVaex\u001b[0m\n", - "\u001b[0;34m ::vdf:: Le jeux de données\u001b[0m\n", - "\u001b[0;34m ::variable:: Nom de la variable secondaire.\u001b[0m\n", - "\u001b[0;34m ::nb_bucket_var:: Nombre de tranches de variable secondaire souhaités.\u001b[0m\n", - "\u001b[0;34m ::primary_buckets:: La liste des tranches de RFR.\u001b[0m\n", - "\u001b[0;34m ::debug:: Pour activer un mode debug, qui affiche des traces.\u001b[0m\n", - "\u001b[0;34m ::minimal_bucket_size:: Nombre minimal d'individus pour respecter le secret statistique.\u001b[0m\n", - "\u001b[0;34m \"\"\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcontrole\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcopules\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mfrontieres_valeurs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_buckets\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"borders_values\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mborders\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_buckets\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"borders\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mprimary_variable\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_column_names\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_variable\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_column_names\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Conversion en array\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable_array\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_arrays\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcolumn_names\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mprimary_variable\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mselection\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marray_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"python\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdataset_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# On vérifie que le dataset est bien trié\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprevious\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1000\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0midx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdataset_size\u001b[0m \u001b[0;34m//\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0midx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0midx\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0midx\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mdataset_size\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mdataset_size\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mprevious\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mDatasetNotSorted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Your dataset is not sorted on {primary_variable}!\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprevious\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# On parcourt les frontières de FF (= les index dans le tableau)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0midx_inf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdebut\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# On ne peut malheureusement pas filtrer par > 0 avant extraction car cela fausserait le nombre de valeur\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_all_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_arrays\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcolumn_names\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvariable\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mselection\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marray_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"python\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# On fait l'hypothèse que c'est bien trié par ordre croissant\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mlower_bound\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx_inf\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps d'extraction par to_arrays {time()-debut}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0midx_sup\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mborders\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mstarttime\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mupper_bound\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfrontieres_valeurs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;31m# Car frontieres_valeurs contient 0\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvariable_all_values\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx_inf\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0midx_sup\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# nb_entity = vdf_tmp.shape[0]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_entity\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"-----------------Temps après slice {time()-starttime}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mnb_entity\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0midx_sup\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0midx_inf\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Quand il y a beaucoup de personne ayant le même revenu on peut avec des tranches avec lower_bound=upper_bound, mais ce n'est pas gênant\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx_inf\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mlower_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mlower_bound\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"get_copulas {i} WARNING: Il y a peut-être un problème car le RFR du premier index (idx_inf={idx_inf}) est {primary_variable_array[idx_inf]} alors que lower_bound vaut {lower_bound}\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mi\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mborders\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx_sup\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mlower_bound\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"get_copulas {i} WARNING: Il y a peut-être un problème car le RFR du dernier index (idx_sup={idx_sup}) est {primary_variable_array[idx_sup]} alors que upper_bound vaut {upper_bound}\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Remove 0\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mvariable_values\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.9999\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0.1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps avant sort {time()-starttime}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Tri des variables : sort() est plus rapide que sorted, mais écrase notre liste\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_values\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msort\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# variable_values = sorted(variable_values)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps après sort {time()-starttime}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"get_copulas {i} : index entre idx_inf={idx_inf} et idx_sup={idx_sup} - RFR entre lower_bound={lower_bound} et upper_bound={upper_bound} - {len(variable_values)} valeurs différentes de zéro.\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"\\tmin(variable_values)={min(variable_values)} max(variable_values)={max(variable_values)}\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0midx_sup\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0midx_inf\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"get_copulas ERROR i={i} len(variable_values)={len(variable_values)} != {idx_sup - idx_inf}\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0midx_sup\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0midx_inf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mDistribDeVar_time\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mbdr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDistribDeVarVaex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_values\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvariable\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_entity\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnb_entity\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_bucket_var\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnb_bucket_var\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mlower_bound\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlower_bound\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mupper_bound\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0madd_upper_bucket\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0madd_upper_bucket\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mminimal_bucket_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mminimal_bucket_size\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps de DistribDeVarVaex {time()-DistribDeVar_time}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Et on ajoute ce tableau à la liste des tableaux\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcopules\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mbdr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_dict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0midx_inf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0midx_sup\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mlower_bound\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps après fin de la boucle {time()-starttime} --------------\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mi\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m10\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"DEBUG EXIT !!!\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdico\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m\"controle\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mcontrole\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"copules\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mcopules\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mdico\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mFile:\u001b[0m ~/leximpact/leximpact-prepare-data/leximpact_prepare_data/scenario_tools/calib_and_copules.py\n", - "\u001b[0;31mType:\u001b[0m function" - ] - } - ], - "source": [ - "get_copulas??" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ee3a8ea4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0;31mSignature:\u001b[0m\n", - "\u001b[0mget_copulas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mvaex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataframe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrameLocal\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_bucket_var\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_buckets\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0madd_upper_bucket\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0.1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.01\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mminimal_bucket_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m12\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mSource:\u001b[0m \n", - "\u001b[0;32mdef\u001b[0m \u001b[0mget_copulas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mvaex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataframe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrameLocal\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_bucket_var\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_buckets\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0madd_upper_bucket\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0.1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1e-2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mminimal_bucket_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m12\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m\"\"\"\u001b[0m\n", - "\u001b[0;34m On nous donne des tranches de RFR, en nombre de personne, et en valeur de RFR\u001b[0m\n", - "\u001b[0;34m Pour chacune de ses tranches on doit extraire les valeurs de 'variable'\u001b[0m\n", - "\u001b[0;34m On ne garde que celle supérieure à 0 et on les envoie à DistribDeVarVaex\u001b[0m\n", - "\u001b[0;34m ::vdf:: Le jeux de données\u001b[0m\n", - "\u001b[0;34m ::variable:: Nom de la variable secondaire.\u001b[0m\n", - "\u001b[0;34m ::nb_bucket_var:: Nombre de tranches de variable secondaire souhaités.\u001b[0m\n", - "\u001b[0;34m ::primary_buckets:: La liste des tranches de RFR.\u001b[0m\n", - "\u001b[0;34m ::debug:: Pour activer un mode debug, qui affiche des traces.\u001b[0m\n", - "\u001b[0;34m ::minimal_bucket_size:: Nombre minimal d'individus pour respecter le secret statistique.\u001b[0m\n", - "\u001b[0;34m \"\"\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcontrole\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcopules\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mfrontieres_valeurs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_buckets\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"borders_values\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mborders\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_buckets\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"borders\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mprimary_variable\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_column_names\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_variable\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_column_names\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Conversion en array\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable_array\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_arrays\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcolumn_names\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mprimary_variable\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mselection\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marray_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"python\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdataset_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# On vérifie que le dataset est bien trié\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprevious\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1000\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0midx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdataset_size\u001b[0m \u001b[0;34m//\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0midx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0midx\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0midx\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mdataset_size\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mdataset_size\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mprevious\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mDatasetNotSorted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Your dataset is not sorted on {primary_variable}!\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprevious\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# On parcourt les frontières de FF (= les index dans le tableau)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0midx_inf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdebut\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# On ne peut malheureusement pas filtrer par > 0 avant extraction car cela fausserait le nombre de valeur\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_all_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_arrays\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcolumn_names\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvariable\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mselection\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marray_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"python\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# On fait l'hypothèse que c'est bien trié par ordre croissant\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mlower_bound\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx_inf\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps d'extraction par to_arrays {time()-debut}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0midx_sup\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mborders\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mstarttime\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mupper_bound\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfrontieres_valeurs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;31m# Car frontieres_valeurs contient 0\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvariable_all_values\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx_inf\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0midx_sup\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# nb_entity = vdf_tmp.shape[0]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_entity\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"-----------------Temps après slice {time()-starttime}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mnb_entity\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0midx_sup\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0midx_inf\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Quand il y a beaucoup de personne ayant le même revenu on peut avec des tranches avec lower_bound=upper_bound, mais ce n'est pas gênant\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx_inf\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mlower_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mlower_bound\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"get_copulas {i} WARNING: Il y a peut-être un problème car le RFR du premier index (idx_inf={idx_inf}) est {primary_variable_array[idx_inf]} alors que lower_bound vaut {lower_bound}\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mi\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mborders\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mprimary_variable_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx_sup\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mlower_bound\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"get_copulas {i} WARNING: Il y a peut-être un problème car le RFR du dernier index (idx_sup={idx_sup}) est {primary_variable_array[idx_sup]} alors que upper_bound vaut {upper_bound}\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Remove 0\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mvariable_values\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.9999\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0.1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps avant sort {time()-starttime}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Tri des variables : sort() est plus rapide que sorted, mais écrase notre liste\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_values\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msort\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# variable_values = sorted(variable_values)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps après sort {time()-starttime}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"get_copulas {i} : index entre idx_inf={idx_inf} et idx_sup={idx_sup} - RFR entre lower_bound={lower_bound} et upper_bound={upper_bound} - {len(variable_values)} valeurs différentes de zéro.\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"\\tmin(variable_values)={min(variable_values)} max(variable_values)={max(variable_values)}\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0midx_sup\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0midx_inf\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34mf\"get_copulas ERROR i={i} len(variable_values)={len(variable_values)} != {idx_sup - idx_inf}\"\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0midx_sup\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0midx_inf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mDistribDeVar_time\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mbdr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDistribDeVarVaex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable_values\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvariable_values\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mvariable\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvariable\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_entity\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnb_entity\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mnb_bucket_var\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnb_bucket_var\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mlower_bound\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlower_bound\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mupper_bound\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0madd_upper_bucket\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0madd_upper_bucket\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mminimal_bucket_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mminimal_bucket_size\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps de DistribDeVarVaex {time()-DistribDeVar_time}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;31m# Et on ajoute ce tableau à la liste des tableaux\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mcopules\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mbdr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_dict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0midx_inf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0midx_sup\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mlower_bound\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mupper_bound\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Temps après fin de la boucle {time()-starttime} --------------\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdebug\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mi\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m10\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"DEBUG EXIT !!!\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mdico\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m\"controle\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mcontrole\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"copules\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mcopules\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mdico\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mFile:\u001b[0m ~/leximpact/leximpact-prepare-data/leximpact_prepare_data/scenario_tools/calib_and_copules.py\n", - "\u001b[0;31mType:\u001b[0m function" - ] - } - ], - "source": [ - "??get_copulas" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "abandoned-league", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "get_borders frontieres de base [390, 780, 1170, 1560, 1950, 2340, 2730, 3120, 3510]\n", - "get_borders frontieres avant [390, 780, 1170, 1560, 1950, 2340, 2730, 3120, 3510, 3861, 3900]\n", - "get_borders len(borders) avant 11\n", - "get_borders frontieres apres [390, 780, 1170, 1560, 1950, 2340, 2730, 3120, 3510, 3861, 3900]\n", - "get_borders frontieres avant fin [390, 780, 1170, 1560, 1950, 2340, 2730, 3120, 3510, 3861, 3900]\n" - ] - } - ], - "source": [ - "tranche_rfr_small_test = get_primary_buckets(test_raw, 10, debug=True)\n", - "cop = get_copulas(test_raw, 10, \"rev_salaire\", 10, tranche_rfr_small_test)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "leximpact-prepare-data-kernel", - "language": "python", - "name": "leximpact-prepare-data-kernel" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/code_CASD/extractions_base_des_impots/_test_spark.ipynb b/notebooks/code_CASD/extractions_base_des_impots/_test_spark.ipynb deleted file mode 100644 index b4bdeb02b2797bebced491fa4c94d444cbce31cb..0000000000000000000000000000000000000000 --- a/notebooks/code_CASD/extractions_base_des_impots/_test_spark.ipynb +++ /dev/null @@ -1,156 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "4b1c23b1", - "metadata": {}, - "source": [ - "# CASD : Test de l'utilisation de Spark" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7e463584", - "metadata": {}, - "outputs": [], - "source": [ - "import findspark" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7c8ec284", - "metadata": {}, - "outputs": [], - "source": [ - "findspark.init()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c74420d4", - "metadata": {}, - "outputs": [], - "source": [ - "from pyspark.sql import SparkSession\n", - "\n", - "spark = SparkSession.builder.appName(\"Basics\").getOrCreate()\n", - "print(spark.version)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c187137f", - "metadata": {}, - "outputs": [], - "source": [ - "calib = r\"C:\\Users\\Public\\Documents\\TRAVAIL\\csg\\data_out\\CalibPOTE_2019.csv\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "25e34ee1", - "metadata": {}, - "outputs": [], - "source": [ - "df = spark.read.csv(parquet_path)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cb0f594b", - "metadata": {}, - "outputs": [], - "source": [ - "hdf_pote = (\n", - " r\"C:\\Users\\Public\\Documents\\TRAVAIL\\csg\\data_in\\extraction_assiettes_csg\\*.hdf\"\n", - ")\n", - "hdf_pote" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "91655d9d", - "metadata": {}, - "outputs": [], - "source": [ - "parquet_path = r\"C:\\Users\\Public\\Documents\\TRAVAIL\\csg\\data_in\\assiettes_csg.parquet\"\n", - "parquet_path" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "08ae5ffd", - "metadata": {}, - "outputs": [], - "source": [ - "# !dir {parquet_path}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "32f3e09b", - "metadata": {}, - "outputs": [], - "source": [ - "df = spark.read.parquet(parquet_path)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "99b1a4ae", - "metadata": {}, - "outputs": [], - "source": [ - "df.createOrReplaceTempView(\"csg\")\n", - "df_count = spark.sql(\"SELECT count(*) FROM csg\")\n", - "df_count.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "328c545c", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "11ff65d3", - "metadata": {}, - "outputs": [], - "source": [ - "# df = spark.read.format(\"com.github.saurfang.sas.spark\").load(r\"\\\\casd.fr\\casdfs\\Projets\\LEXIMPA\\Data\\POTE_POTE_2019\\pote_diff_2019.sas7bdat\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c2a09032", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "leximpa", - "language": "python", - "name": "leximpa" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/code_CASD/extractions_base_des_impots/_test_vispy.ipynb b/notebooks/code_CASD/extractions_base_des_impots/_test_vispy.ipynb deleted file mode 100644 index 90ca532817095999af5b2c26f43323a21a66d6e7..0000000000000000000000000000000000000000 --- a/notebooks/code_CASD/extractions_base_des_impots/_test_vispy.ipynb +++ /dev/null @@ -1,148 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e21abfd4", - "metadata": {}, - "source": [ - "# CASD : Test de la librairie Vispy\n", - "[Vispy](https://vispy.org/) permet d'afficher des graphiques contenant des milliers de points." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f741a0b6", - "metadata": {}, - "outputs": [], - "source": [ - "import dask.dataframe as dd\n", - "import vispy.app\n", - "from vispy import plot as vp" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d1d2aee6", - "metadata": {}, - "outputs": [], - "source": [ - "vispy.app.use_app(\"ipynb_webgl\")\n", - "fig = vp.Fig(show=False)\n", - "fig1 = fig[0, 0]\n", - "fig1.plot(range(10), marker_size=0)\n", - "fig.show(run=True)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "22d66dc7", - "metadata": {}, - "outputs": [], - "source": [ - "input_directory = (\n", - " r\"C:\\Users\\Public\\Documents\\TRAVAIL\\csg\\data_in\\extraction_assiettes_csg\\*.hdf\"\n", - ")\n", - "rfrs = dd.read_hdf(input_directory, \"/pote2019\")\n", - "rfrs.columns" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1c06484c", - "metadata": {}, - "outputs": [], - "source": [ - "# sample = rfrs\n", - "sample = rfrs[rfrs[\"revkire\"] > 500_000]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b6574e72", - "metadata": {}, - "outputs": [], - "source": [ - "%%time\n", - "sample = sample.set_index(\"revkire\").compute()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9b99d525", - "metadata": {}, - "outputs": [], - "source": [ - "len(sample)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "84b63a38", - "metadata": {}, - "outputs": [], - "source": [ - "# sample.index" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "08376150", - "metadata": {}, - "outputs": [], - "source": [ - "vispy.app.use_app(\"ipynb_webgl\")\n", - "from vispy import plot as vp\n", - "\n", - "fig = vp.Fig(show=False)\n", - "fig1 = fig[0, 0]\n", - "fig1.plot((range(len(sample)), sample.index), marker_size=10)\n", - "fig.show(run=True)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6a1b3260", - "metadata": {}, - "outputs": [], - "source": [ - "print(f\"{sample.index.max():,}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dfe2d117", - "metadata": {}, - "outputs": [], - "source": [ - "print(f\"{sample.index.min():,}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3da2e5ff", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "python3", - "language": "python", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/code_CASD/extractions_base_des_impots/fake_pote_light.parquet b/notebooks/code_CASD/extractions_base_des_impots/fake_pote_light.parquet deleted file mode 100644 index db7a9ae46ea8c920110a479b75b8089a8e03e93a..0000000000000000000000000000000000000000 Binary files a/notebooks/code_CASD/extractions_base_des_impots/fake_pote_light.parquet and /dev/null differ diff --git a/notebooks/code_CASD/extractions_dads_postes/20_Convert_SAS_DADS.ipynb b/notebooks/code_CASD/extractions_dads_postes/20_Convert_SAS_DADS.ipynb index bf46accb5c3c1f3d1e8a1537ef281f774c57ede7..f4ea103a711b3a7a869ba42a2a66710f1e328b4b 100644 --- a/notebooks/code_CASD/extractions_dads_postes/20_Convert_SAS_DADS.ipynb +++ b/notebooks/code_CASD/extractions_dads_postes/20_Convert_SAS_DADS.ipynb @@ -28,11 +28,11 @@ "# year = \"2018\"\n", "SAS_FILE = (\n", " r\"C:\\Users\\Public\\Documents\\TRAVAIL\\agregats\\sas/\"\n", - " #+ \"extrait_dads_2020.sas7bdat\"\n", + " # + \"extrait_dads_2020.sas7bdat\"\n", " + \"extrait_dads_2020_220809.sas7bdat\"\n", ")\n", "\n", - "OUT_PATH = r\"C:\\Users\\Public\\Documents\\TRAVAIL\\agregats\\data\\chunks\\\"\n", + "OUT_PATH = \"\" # r\"C:\\Users\\Public\\Documents\\TRAVAIL\\agregats\\data\\chunks\\\"\n", "OUT_PATH = OUT_PATH + \"extrait_dads_\" + year + r\"-chunk/\"\n", "taille_chunk = 2 * 2**20" ] @@ -43,12 +43,7 @@ "metadata": {}, "outputs": [], "source": [ - "import shutil\n", - "from pathlib import Path\n", - "\n", - "import pandas as pd\n", - "import vaex\n", - "from tqdm import tqdm" + "import pandas as pd" ] }, { @@ -115,31 +110,31 @@ } ], "source": [ - "%%time\n", - "# Temps sur CASD : < 20 minutes.\n", + "# %%time\n", + "# # Temps sur CASD : < 20 minutes.\n", "\n", - "# Efface le dossier de sortie\n", - "shutil.rmtree(OUT_PATH, ignore_errors=True)\n", - "Path(OUT_PATH).mkdir(parents=True, exist_ok=True)\n", + "# # Efface le dossier de sortie\n", + "# shutil.rmtree(OUT_PATH, ignore_errors=True)\n", + "# Path(OUT_PATH).mkdir(parents=True, exist_ok=True)\n", "\n", - "dfi = pd.read_sas(\n", - " SAS_FILE, chunksize=taille_chunk, encoding=\"iso8859-15\", iterator=True\n", - ")\n", + "# dfi = pd.read_sas(\n", + "# SAS_FILE, chunksize=taille_chunk, encoding=\"iso8859-15\", iterator=True\n", + "# )\n", "\n", - "dd_values = None\n", - "i = 0\n", - "print(f\"Nombre d'itérations : {61_689_822/taille_chunk:.0f}\")\n", - "for chunk in tqdm(dfi):\n", - " del dd_values\n", - " dd_values = None\n", - " chunk = clean_chunk(chunk)\n", - " dd_values = vaex.from_pandas(chunk, copy_index=False)\n", - " dd_values.export(f\"{OUT_PATH}{year}_{i}.parquet\")\n", - " #### DEBUG\n", - " i += 1\n", - " # if i>=2:\n", - " # break\n", - " #### DEBUG" + "# dd_values = None\n", + "# i = 0\n", + "# print(f\"Nombre d'itérations : {61_689_822/taille_chunk:.0f}\")\n", + "# for chunk in tqdm(dfi):\n", + "# del dd_values\n", + "# dd_values = None\n", + "# chunk = clean_chunk(chunk)\n", + "# dd_values = vaex.from_pandas(chunk, copy_index=False)\n", + "# dd_values.export(f\"{OUT_PATH}{year}_{i}.parquet\")\n", + "# #### DEBUG\n", + "# i += 1\n", + "# # if i>=2:\n", + "# # break\n", + "# #### DEBUG" ] }, { @@ -180,7 +175,7 @@ } ], "source": [ - "chunk.info()" + "# chunk.info()" ] }, { @@ -190,7 +185,7 @@ "outputs": [], "source": [ "pd.set_option(\"display.max_columns\", None)\n", - "chunk" + "# chunk" ] }, { @@ -378,7 +373,7 @@ } ], "source": [ - "chunk.describe()" + "# chunk.describe()" ] }, { @@ -387,7 +382,7 @@ "metadata": {}, "outputs": [], "source": [ - "chunk.query(\"s_brut < 0\")" + "# chunk.query(\"s_brut < 0\")" ] } ], diff --git a/notebooks/code_CASD/extractions_dads_postes/30_DADS-Quantiles.ipynb b/notebooks/code_CASD/extractions_dads_postes/30_DADS-Quantiles.ipynb index fb9cb285ea3e382ed1cc5b3854968a2ac697f1fc..20c178b54331050a3e8982d25f1d29456c1c1899 100644 --- a/notebooks/code_CASD/extractions_dads_postes/30_DADS-Quantiles.ipynb +++ b/notebooks/code_CASD/extractions_dads_postes/30_DADS-Quantiles.ipynb @@ -84,7 +84,16 @@ "import vaex\n", "from tqdm import tqdm\n", "\n", - "from leximpact_prepare_data.scenario_tools.calib_and_copules import *" + "from leximpact_prepare_data.scenario_tools.calib_and_copules import (\n", + " DistribDeVarVaex,\n", + " variable_to_split_on,\n", + " DatasetNotSorted,\n", + " get_borders,\n", + " get_copulas,\n", + " get_primary_buckets,\n", + " Quantile,\n", + " keep_upper_bound_secret,\n", + ")" ] }, { @@ -96,7 +105,7 @@ "source": [ "%%time\n", "dfv = vaex.open(ARROW_PATH + \"*\")\n", - "tc.assertEqual(len(dfv), 44_653_064)" + "tqdm.assertEqual(len(dfv), 44_653_064)" ] }, { diff --git a/notebooks/code_CASD/extractions_dads_postes/30a_Agregats_POTE-PER.ipynb b/notebooks/code_CASD/extractions_dads_postes/30a_Agregats_POTE-PER.ipynb index a19e7d7a77e87dfd2960ff294048528af48dc597..a0c9b644f11f6de33b937445d8cdea72407597e2 100644 --- a/notebooks/code_CASD/extractions_dads_postes/30a_Agregats_POTE-PER.ipynb +++ b/notebooks/code_CASD/extractions_dads_postes/30a_Agregats_POTE-PER.ipynb @@ -73,7 +73,12 @@ "import vaex\n", "from tqdm import tqdm\n", "\n", - "from leximpact_prepare_data.scenario_tools.calib_and_copules import *" + "from leximpact_prepare_data.scenario_tools.calib_and_copules import (\n", + " get_copulas,\n", + " anonimyze_lower_and_upper_bound,\n", + " get_primary_buckets,\n", + " Quantile,\n", + ")" ] }, { @@ -404,7 +409,6 @@ "source": [ "# Libère la mémoire\n", "del df_agg\n", - "import gc\n", "\n", "gc.collect()" ] diff --git a/notebooks/code_CASD/extractions_dads_postes/40_categorical_bi-variate.ipynb b/notebooks/code_CASD/extractions_dads_postes/40_categorical_bi-variate.ipynb index 71e39dcd5a28aa5b29d2765f4c17e88ea969b0c4..75896d737ac1bc044dea9da0026ab1e65b05aaad 100644 --- a/notebooks/code_CASD/extractions_dads_postes/40_categorical_bi-variate.ipynb +++ b/notebooks/code_CASD/extractions_dads_postes/40_categorical_bi-variate.ipynb @@ -72,7 +72,7 @@ "import vaex\n", "from tqdm import tqdm\n", "\n", - "from leximpact_prepare_data.scenario_tools.calib_and_copules import *" + "from leximpact_prepare_data.scenario_tools.calib_and_copules import Quantile" ] }, { @@ -93,7 +93,7 @@ "source": [ "%%time\n", "dfv = vaex.open(ARROW_PATH + \"*\")\n", - "tc.assertEqual(len(dfv), 61_689_822)" + "tqdm.assertEqual(len(dfv), 61_689_822)" ] }, { diff --git a/notebooks/memos/memo_aah.ipynb b/notebooks/memos/memo_aah.ipynb index 65699e8cbfdc8d1d314ab74ffc9096e54759931a..dbf41a7e131a2bdb23d496f07be22f546d9b5f28 100644 --- a/notebooks/memos/memo_aah.ipynb +++ b/notebooks/memos/memo_aah.ipynb @@ -121,7 +121,6 @@ ], "source": [ "# | echo: false\n", - "from IPython.display import HTML\n", "from pandas import DataFrame\n", "\n", "import plotly.io as pio\n", @@ -155,7 +154,7 @@ " columns=colonnes,\n", ").fillna(\"-\")\n", "\n", - "display(HTML(df.to_html(escape=False)))" + "# display(HTML(df.to_html(escape=False)))" ] }, { diff --git a/notebooks/memos/memo_cotisations_sociales_dash.py b/notebooks/memos/memo_cotisations_sociales_dash.py index f490f91fcf0c93de4367b3b711c855bc0f367040..8d9e47494e82d285fc6738f78705c5a7b804decc 100644 --- a/notebooks/memos/memo_cotisations_sociales_dash.py +++ b/notebooks/memos/memo_cotisations_sociales_dash.py @@ -7,7 +7,7 @@ http://localhost:5000/leximpact_prepare_data/memos/memo_cotisations_sociales_dash/ -Cette dataviz en Dash est incluse dans le mémo, mais elle doit être +Cette dataviz en Dash est incluse dans le mémo, mais elle doit être exécutée à part pour être partagée : les mémos sont des fichiers HTML alors que Dash doit lancer un serveur, il faut donc le déployer côté serveur en complément du HTML. diff --git a/poetry.lock b/poetry.lock index d16b1a856319999506c854aabf86672cb38e4c8c..ccf68c89b75a67c04088d4532dde7ba2aeb9ab14 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. [[package]] name = "aiofiles" @@ -6,164 +6,30 @@ version = "22.1.0" description = "File support for asyncio." optional = false python-versions = ">=3.7,<4.0" +groups = ["dev"] files = [ {file = "aiofiles-22.1.0-py3-none-any.whl", hash = "sha256:1142fa8e80dbae46bb6339573ad4c8c0841358f79c6eb50a493dceca14621bad"}, {file = "aiofiles-22.1.0.tar.gz", hash = "sha256:9107f1ca0b2a5553987a94a3c9959fe5b491fdf731389aa5b7b1bd0733e32de6"}, ] -[[package]] -name = "aiohappyeyeballs" -version = "2.4.3" -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"}, -] - -[[package]] -name = "aiohttp" -version = "3.10.10" -description = "Async http client/server framework (asyncio)" -optional = false -python-versions = ">=3.8" -files = [ - {file = "aiohttp-3.10.10-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:be7443669ae9c016b71f402e43208e13ddf00912f47f623ee5994e12fc7d4b3f"}, - {file = "aiohttp-3.10.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7b06b7843929e41a94ea09eb1ce3927865387e3e23ebe108e0d0d09b08d25be9"}, - {file = "aiohttp-3.10.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:333cf6cf8e65f6a1e06e9eb3e643a0c515bb850d470902274239fea02033e9a8"}, - {file = "aiohttp-3.10.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:274cfa632350225ce3fdeb318c23b4a10ec25c0e2c880eff951a3842cf358ac1"}, - {file = "aiohttp-3.10.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9e5e4a85bdb56d224f412d9c98ae4cbd032cc4f3161818f692cd81766eee65a"}, - {file = "aiohttp-3.10.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b606353da03edcc71130b52388d25f9a30a126e04caef1fd637e31683033abd"}, - {file = "aiohttp-3.10.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab5a5a0c7a7991d90446a198689c0535be89bbd6b410a1f9a66688f0880ec026"}, - {file = "aiohttp-3.10.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:578a4b875af3e0daaf1ac6fa983d93e0bbfec3ead753b6d6f33d467100cdc67b"}, - {file = "aiohttp-3.10.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8105fd8a890df77b76dd3054cddf01a879fc13e8af576805d667e0fa0224c35d"}, - {file = "aiohttp-3.10.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3bcd391d083f636c06a68715e69467963d1f9600f85ef556ea82e9ef25f043f7"}, - {file = "aiohttp-3.10.10-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fbc6264158392bad9df19537e872d476f7c57adf718944cc1e4495cbabf38e2a"}, - {file = "aiohttp-3.10.10-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e48d5021a84d341bcaf95c8460b152cfbad770d28e5fe14a768988c461b821bc"}, - {file = "aiohttp-3.10.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2609e9ab08474702cc67b7702dbb8a80e392c54613ebe80db7e8dbdb79837c68"}, - {file = "aiohttp-3.10.10-cp310-cp310-win32.whl", hash = "sha256:84afcdea18eda514c25bc68b9af2a2b1adea7c08899175a51fe7c4fb6d551257"}, - {file = "aiohttp-3.10.10-cp310-cp310-win_amd64.whl", hash = "sha256:9c72109213eb9d3874f7ac8c0c5fa90e072d678e117d9061c06e30c85b4cf0e6"}, - {file = "aiohttp-3.10.10-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c30a0eafc89d28e7f959281b58198a9fa5e99405f716c0289b7892ca345fe45f"}, - {file = "aiohttp-3.10.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:258c5dd01afc10015866114e210fb7365f0d02d9d059c3c3415382ab633fcbcb"}, - {file = "aiohttp-3.10.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:15ecd889a709b0080f02721255b3f80bb261c2293d3c748151274dfea93ac871"}, - {file = "aiohttp-3.10.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3935f82f6f4a3820270842e90456ebad3af15810cf65932bd24da4463bc0a4c"}, - {file = "aiohttp-3.10.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:413251f6fcf552a33c981c4709a6bba37b12710982fec8e558ae944bfb2abd38"}, - {file = "aiohttp-3.10.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1720b4f14c78a3089562b8875b53e36b51c97c51adc53325a69b79b4b48ebcb"}, - {file = "aiohttp-3.10.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:679abe5d3858b33c2cf74faec299fda60ea9de62916e8b67e625d65bf069a3b7"}, - {file = "aiohttp-3.10.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:79019094f87c9fb44f8d769e41dbb664d6e8fcfd62f665ccce36762deaa0e911"}, - {file = "aiohttp-3.10.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fe2fb38c2ed905a2582948e2de560675e9dfbee94c6d5ccdb1301c6d0a5bf092"}, - {file = "aiohttp-3.10.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a3f00003de6eba42d6e94fabb4125600d6e484846dbf90ea8e48a800430cc142"}, - {file = "aiohttp-3.10.10-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:1bbb122c557a16fafc10354b9d99ebf2f2808a660d78202f10ba9d50786384b9"}, - {file = "aiohttp-3.10.10-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:30ca7c3b94708a9d7ae76ff281b2f47d8eaf2579cd05971b5dc681db8caac6e1"}, - {file = "aiohttp-3.10.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:df9270660711670e68803107d55c2b5949c2e0f2e4896da176e1ecfc068b974a"}, - {file = "aiohttp-3.10.10-cp311-cp311-win32.whl", hash = "sha256:aafc8ee9b742ce75044ae9a4d3e60e3d918d15a4c2e08a6c3c3e38fa59b92d94"}, - {file = "aiohttp-3.10.10-cp311-cp311-win_amd64.whl", hash = "sha256:362f641f9071e5f3ee6f8e7d37d5ed0d95aae656adf4ef578313ee585b585959"}, - {file = "aiohttp-3.10.10-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9294bbb581f92770e6ed5c19559e1e99255e4ca604a22c5c6397b2f9dd3ee42c"}, - {file = "aiohttp-3.10.10-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a8fa23fe62c436ccf23ff930149c047f060c7126eae3ccea005f0483f27b2e28"}, - {file = "aiohttp-3.10.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5c6a5b8c7926ba5d8545c7dd22961a107526562da31a7a32fa2456baf040939f"}, - {file = "aiohttp-3.10.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:007ec22fbc573e5eb2fb7dec4198ef8f6bf2fe4ce20020798b2eb5d0abda6138"}, - {file = "aiohttp-3.10.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9627cc1a10c8c409b5822a92d57a77f383b554463d1884008e051c32ab1b3742"}, - {file = "aiohttp-3.10.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:50edbcad60d8f0e3eccc68da67f37268b5144ecc34d59f27a02f9611c1d4eec7"}, - {file = "aiohttp-3.10.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a45d85cf20b5e0d0aa5a8dca27cce8eddef3292bc29d72dcad1641f4ed50aa16"}, - {file = "aiohttp-3.10.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b00807e2605f16e1e198f33a53ce3c4523114059b0c09c337209ae55e3823a8"}, - {file = "aiohttp-3.10.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f2d4324a98062be0525d16f768a03e0bbb3b9fe301ceee99611dc9a7953124e6"}, - {file = "aiohttp-3.10.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:438cd072f75bb6612f2aca29f8bd7cdf6e35e8f160bc312e49fbecab77c99e3a"}, - {file = "aiohttp-3.10.10-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:baa42524a82f75303f714108fea528ccacf0386af429b69fff141ffef1c534f9"}, - {file = "aiohttp-3.10.10-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a7d8d14fe962153fc681f6366bdec33d4356f98a3e3567782aac1b6e0e40109a"}, - {file = "aiohttp-3.10.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c1277cd707c465cd09572a774559a3cc7c7a28802eb3a2a9472588f062097205"}, - {file = "aiohttp-3.10.10-cp312-cp312-win32.whl", hash = "sha256:59bb3c54aa420521dc4ce3cc2c3fe2ad82adf7b09403fa1f48ae45c0cbde6628"}, - {file = "aiohttp-3.10.10-cp312-cp312-win_amd64.whl", hash = "sha256:0e1b370d8007c4ae31ee6db7f9a2fe801a42b146cec80a86766e7ad5c4a259cf"}, - {file = "aiohttp-3.10.10-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ad7593bb24b2ab09e65e8a1d385606f0f47c65b5a2ae6c551db67d6653e78c28"}, - {file = "aiohttp-3.10.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1eb89d3d29adaf533588f209768a9c02e44e4baf832b08118749c5fad191781d"}, - {file = "aiohttp-3.10.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3fe407bf93533a6fa82dece0e74dbcaaf5d684e5a51862887f9eaebe6372cd79"}, - {file = "aiohttp-3.10.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50aed5155f819873d23520919e16703fc8925e509abbb1a1491b0087d1cd969e"}, - {file = "aiohttp-3.10.10-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f05e9727ce409358baa615dbeb9b969db94324a79b5a5cea45d39bdb01d82e6"}, - {file = "aiohttp-3.10.10-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dffb610a30d643983aeb185ce134f97f290f8935f0abccdd32c77bed9388b42"}, - {file = "aiohttp-3.10.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa6658732517ddabe22c9036479eabce6036655ba87a0224c612e1ae6af2087e"}, - {file = "aiohttp-3.10.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:741a46d58677d8c733175d7e5aa618d277cd9d880301a380fd296975a9cdd7bc"}, - {file = "aiohttp-3.10.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e00e3505cd80440f6c98c6d69269dcc2a119f86ad0a9fd70bccc59504bebd68a"}, - {file = "aiohttp-3.10.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ffe595f10566f8276b76dc3a11ae4bb7eba1aac8ddd75811736a15b0d5311414"}, - {file = "aiohttp-3.10.10-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bdfcf6443637c148c4e1a20c48c566aa694fa5e288d34b20fcdc58507882fed3"}, - {file = "aiohttp-3.10.10-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d183cf9c797a5291e8301790ed6d053480ed94070637bfaad914dd38b0981f67"}, - {file = "aiohttp-3.10.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:77abf6665ae54000b98b3c742bc6ea1d1fb31c394bcabf8b5d2c1ac3ebfe7f3b"}, - {file = "aiohttp-3.10.10-cp313-cp313-win32.whl", hash = "sha256:4470c73c12cd9109db8277287d11f9dd98f77fc54155fc71a7738a83ffcc8ea8"}, - {file = "aiohttp-3.10.10-cp313-cp313-win_amd64.whl", hash = "sha256:486f7aabfa292719a2753c016cc3a8f8172965cabb3ea2e7f7436c7f5a22a151"}, - {file = "aiohttp-3.10.10-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:1b66ccafef7336a1e1f0e389901f60c1d920102315a56df85e49552308fc0486"}, - {file = "aiohttp-3.10.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:acd48d5b80ee80f9432a165c0ac8cbf9253eaddb6113269a5e18699b33958dbb"}, - {file = "aiohttp-3.10.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3455522392fb15ff549d92fbf4b73b559d5e43dc522588f7eb3e54c3f38beee7"}, - {file = "aiohttp-3.10.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45c3b868724137f713a38376fef8120c166d1eadd50da1855c112fe97954aed8"}, - {file = "aiohttp-3.10.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:da1dee8948d2137bb51fbb8a53cce6b1bcc86003c6b42565f008438b806cccd8"}, - {file = "aiohttp-3.10.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5ce2ce7c997e1971b7184ee37deb6ea9922ef5163c6ee5aa3c274b05f9e12fa"}, - {file = "aiohttp-3.10.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28529e08fde6f12eba8677f5a8608500ed33c086f974de68cc65ab218713a59d"}, - {file = "aiohttp-3.10.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f7db54c7914cc99d901d93a34704833568d86c20925b2762f9fa779f9cd2e70f"}, - {file = "aiohttp-3.10.10-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:03a42ac7895406220124c88911ebee31ba8b2d24c98507f4a8bf826b2937c7f2"}, - {file = "aiohttp-3.10.10-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:7e338c0523d024fad378b376a79faff37fafb3c001872a618cde1d322400a572"}, - {file = "aiohttp-3.10.10-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:038f514fe39e235e9fef6717fbf944057bfa24f9b3db9ee551a7ecf584b5b480"}, - {file = "aiohttp-3.10.10-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:64f6c17757251e2b8d885d728b6433d9d970573586a78b78ba8929b0f41d045a"}, - {file = "aiohttp-3.10.10-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:93429602396f3383a797a2a70e5f1de5df8e35535d7806c9f91df06f297e109b"}, - {file = "aiohttp-3.10.10-cp38-cp38-win32.whl", hash = "sha256:c823bc3971c44ab93e611ab1a46b1eafeae474c0c844aff4b7474287b75fe49c"}, - {file = "aiohttp-3.10.10-cp38-cp38-win_amd64.whl", hash = "sha256:54ca74df1be3c7ca1cf7f4c971c79c2daf48d9aa65dea1a662ae18926f5bc8ce"}, - {file = "aiohttp-3.10.10-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:01948b1d570f83ee7bbf5a60ea2375a89dfb09fd419170e7f5af029510033d24"}, - {file = "aiohttp-3.10.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9fc1500fd2a952c5c8e3b29aaf7e3cc6e27e9cfc0a8819b3bce48cc1b849e4cc"}, - {file = "aiohttp-3.10.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f614ab0c76397661b90b6851a030004dac502e48260ea10f2441abd2207fbcc7"}, - {file = "aiohttp-3.10.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00819de9e45d42584bed046314c40ea7e9aea95411b38971082cad449392b08c"}, - {file = "aiohttp-3.10.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05646ebe6b94cc93407b3bf34b9eb26c20722384d068eb7339de802154d61bc5"}, - {file = "aiohttp-3.10.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:998f3bd3cfc95e9424a6acd7840cbdd39e45bc09ef87533c006f94ac47296090"}, - {file = "aiohttp-3.10.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9010c31cd6fa59438da4e58a7f19e4753f7f264300cd152e7f90d4602449762"}, - {file = "aiohttp-3.10.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ea7ffc6d6d6f8a11e6f40091a1040995cdff02cfc9ba4c2f30a516cb2633554"}, - {file = "aiohttp-3.10.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ef9c33cc5cbca35808f6c74be11eb7f5f6b14d2311be84a15b594bd3e58b5527"}, - {file = "aiohttp-3.10.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ce0cdc074d540265bfeb31336e678b4e37316849d13b308607efa527e981f5c2"}, - {file = "aiohttp-3.10.10-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:597a079284b7ee65ee102bc3a6ea226a37d2b96d0418cc9047490f231dc09fe8"}, - {file = "aiohttp-3.10.10-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:7789050d9e5d0c309c706953e5e8876e38662d57d45f936902e176d19f1c58ab"}, - {file = "aiohttp-3.10.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e7f8b04d83483577fd9200461b057c9f14ced334dcb053090cea1da9c8321a91"}, - {file = "aiohttp-3.10.10-cp39-cp39-win32.whl", hash = "sha256:c02a30b904282777d872266b87b20ed8cc0d1501855e27f831320f471d54d983"}, - {file = "aiohttp-3.10.10-cp39-cp39-win_amd64.whl", hash = "sha256:edfe3341033a6b53a5c522c802deb2079eee5cbfbb0af032a55064bd65c73a23"}, - {file = "aiohttp-3.10.10.tar.gz", hash = "sha256:0631dd7c9f0822cc61c88586ca76d5b5ada26538097d0f1df510b082bad3411a"}, -] - -[package.dependencies] -aiohappyeyeballs = ">=2.3.0" -aiosignal = ">=1.1.2" -attrs = ">=17.3.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -yarl = ">=1.12.0,<2.0" - -[package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] - -[[package]] -name = "aiosignal" -version = "1.3.1" -description = "aiosignal: a list of registered asynchronous callbacks" -optional = false -python-versions = ">=3.7" -files = [ - {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, - {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" - [[package]] name = "aiosqlite" -version = "0.20.0" +version = "0.21.0" description = "asyncio bridge to the standard sqlite3 module" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "aiosqlite-0.20.0-py3-none-any.whl", hash = "sha256:36a1deaca0cac40ebe32aac9977a6e2bbc7f5189f23f4a54d5908986729e5bd6"}, - {file = "aiosqlite-0.20.0.tar.gz", hash = "sha256:6d35c8c256637f4672f843c31021464090805bf925385ac39473fb16eaaca3d7"}, + {file = "aiosqlite-0.21.0-py3-none-any.whl", hash = "sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0"}, + {file = "aiosqlite-0.21.0.tar.gz", hash = "sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3"}, ] [package.dependencies] typing_extensions = ">=4.0" [package.extras] -dev = ["attribution (==1.7.0)", "black (==24.2.0)", "coverage[toml] (==7.4.1)", "flake8 (==7.0.0)", "flake8-bugbear (==24.2.6)", "flit (==3.9.0)", "mypy (==1.8.0)", "ufmt (==2.3.0)", "usort (==1.0.8.post1)"] -docs = ["sphinx (==7.2.6)", "sphinx-mdinclude (==0.5.3)"] +dev = ["attribution (==1.7.1)", "black (==24.3.0)", "build (>=1.2)", "coverage[toml] (==7.6.10)", "flake8 (==7.0.0)", "flake8-bugbear (==24.12.12)", "flit (==3.10.1)", "mypy (==1.14.1)", "ufmt (==2.5.1)", "usort (==1.0.8.post1)"] +docs = ["sphinx (==8.1.3)", "sphinx-mdinclude (==0.6.1)"] [[package]] name = "ansicolors" @@ -171,6 +37,7 @@ version = "1.1.8" description = "ANSI colors for Python" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "ansicolors-1.1.8-py2.py3-none-any.whl", hash = "sha256:00d2dde5a675579325902536738dd27e4fac1fd68f773fe36c21044eb559e187"}, {file = "ansicolors-1.1.8.zip", hash = "sha256:99f94f5e3348a0bcd43c82e5fc4414013ccc19d70bd939ad71e0133ce9c372e0"}, @@ -178,24 +45,25 @@ files = [ [[package]] name = "anyio" -version = "4.6.2.post1" +version = "4.9.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.9" +groups = ["dev", "voila"] files = [ - {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"}, - {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"}, + {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"}, + {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, ] [package.dependencies] exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" -typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [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", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] +doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""] trio = ["trio (>=0.26.1)"] [[package]] @@ -204,6 +72,8 @@ version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" optional = false python-versions = ">=3.6" +groups = ["main", "dev"] +markers = "platform_system == \"Darwin\"" files = [ {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, @@ -215,6 +85,7 @@ version = "23.1.0" description = "Argon2 for Python" optional = false python-versions = ">=3.7" +groups = ["dev", "voila"] files = [ {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, @@ -235,6 +106,7 @@ version = "21.2.0" description = "Low-level CFFI bindings for Argon2" optional = false python-versions = ">=3.6" +groups = ["dev", "voila"] files = [ {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, @@ -272,6 +144,7 @@ version = "1.3.0" description = "Better dates & times for Python" optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, @@ -287,21 +160,19 @@ test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock [[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" +groups = ["main", "dev"] 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 = "astunparse" @@ -309,6 +180,7 @@ version = "1.6.3" description = "An AST unparser for Python" optional = false python-versions = "*" +groups = ["main", "dev"] files = [ {file = "astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8"}, {file = "astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"}, @@ -320,32 +192,34 @@ wheel = ">=0.23.0,<1.0" [[package]] name = "attrs" -version = "24.2.0" +version = "25.3.0" description = "Classes Without Boilerplate" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ - {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, - {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, + {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, + {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, ] [package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] +benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] +tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""] [[package]] name = "autopep8" -version = "2.3.1" +version = "2.3.2" description = "A tool that automatically formats Python code to conform to the PEP 8 style guide" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "autopep8-2.3.1-py2.py3-none-any.whl", hash = "sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d"}, - {file = "autopep8-2.3.1.tar.gz", hash = "sha256:8d6c87eba648fdcfc83e29b788910b8643171c395d9c4bcf115ece035b9c9dda"}, + {file = "autopep8-2.3.2-py2.py3-none-any.whl", hash = "sha256:ce8ad498672c845a0c3de2629c15b635ec2b05ef8177a6e7c91c74f3e9b51128"}, + {file = "autopep8-2.3.2.tar.gz", hash = "sha256:89440a4f969197b69a995e4ce0661b031f455a9f776d2c5ba3dbd83466931758"}, ] [package.dependencies] @@ -354,31 +228,53 @@ tomli = {version = "*", markers = "python_version < \"3.11\""} [[package]] name = "babel" -version = "2.16.0" +version = "2.17.0" description = "Internationalization utilities" optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ - {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, - {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, + {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, + {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, ] [package.extras] -dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] +dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata ; sys_platform == \"win32\""] + +[[package]] +name = "beartype" +version = "0.20.2" +description = "Unbearably fast near-real-time hybrid runtime-static type-checking in pure Python." +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +files = [ + {file = "beartype-0.20.2-py3-none-any.whl", hash = "sha256:5171a91ecf01438a59884f0cde37d2d5da2c992198b53d6ba31db3940f47ff04"}, + {file = "beartype-0.20.2.tar.gz", hash = "sha256:38c60c065ad99364a8c767e8a0e71ba8263d467b91414ed5dcffb7758a2e8079"}, +] + +[package.extras] +dev = ["autoapi (>=0.9.0)", "click", "coverage (>=5.5)", "equinox ; sys_platform == \"linux\"", "jax[cpu] ; sys_platform == \"linux\"", "jaxtyping ; sys_platform == \"linux\"", "langchain", "mypy (>=0.800) ; platform_python_implementation != \"PyPy\"", "nuitka (>=1.2.6) ; sys_platform == \"linux\"", "numba ; python_version < \"3.13.0\"", "numpy ; sys_platform != \"darwin\" and platform_python_implementation != \"PyPy\"", "pandera", "pydata-sphinx-theme (<=0.7.2)", "pygments", "pyright (>=1.1.370)", "pytest (>=4.0.0)", "rich-click", "sphinx", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)", "tox (>=3.20.1)", "typing-extensions (>=3.10.0.0)", "xarray"] +doc-rtd = ["autoapi (>=0.9.0)", "pydata-sphinx-theme (<=0.7.2)", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)"] +test = ["click", "coverage (>=5.5)", "equinox ; sys_platform == \"linux\"", "jax[cpu] ; sys_platform == \"linux\"", "jaxtyping ; sys_platform == \"linux\"", "langchain", "mypy (>=0.800) ; platform_python_implementation != \"PyPy\"", "nuitka (>=1.2.6) ; sys_platform == \"linux\"", "numba ; python_version < \"3.13.0\"", "numpy ; sys_platform != \"darwin\" and platform_python_implementation != \"PyPy\"", "pandera", "pygments", "pyright (>=1.1.370)", "pytest (>=4.0.0)", "rich-click", "sphinx", "tox (>=3.20.1)", "typing-extensions (>=3.10.0.0)", "xarray"] +test-tox = ["click", "equinox ; sys_platform == \"linux\"", "jax[cpu] ; sys_platform == \"linux\"", "jaxtyping ; sys_platform == \"linux\"", "langchain", "mypy (>=0.800) ; platform_python_implementation != \"PyPy\"", "nuitka (>=1.2.6) ; sys_platform == \"linux\"", "numba ; python_version < \"3.13.0\"", "numpy ; sys_platform != \"darwin\" and platform_python_implementation != \"PyPy\"", "pandera", "pygments", "pyright (>=1.1.370)", "pytest (>=4.0.0)", "rich-click", "sphinx", "typing-extensions (>=3.10.0.0)", "xarray"] +test-tox-coverage = ["coverage (>=5.5)"] [[package]] name = "beautifulsoup4" -version = "4.12.3" +version = "4.13.3" description = "Screen-scraping library" optional = false -python-versions = ">=3.6.0" +python-versions = ">=3.7.0" +groups = ["main", "dev", "voila"] files = [ - {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, - {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, + {file = "beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16"}, + {file = "beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b"}, ] [package.dependencies] soupsieve = ">1.2" +typing-extensions = ">=4.0.0" [package.extras] cchardet = ["cchardet"] @@ -389,33 +285,34 @@ lxml = ["lxml"] [[package]] name = "black" -version = "24.10.0" +version = "25.1.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.9" -files = [ - {file = "black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812"}, - {file = "black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea"}, - {file = "black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f"}, - {file = "black-24.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e"}, - {file = "black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad"}, - {file = "black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50"}, - {file = "black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392"}, - {file = "black-24.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175"}, - {file = "black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3"}, - {file = "black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65"}, - {file = "black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f"}, - {file = "black-24.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8"}, - {file = "black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981"}, - {file = "black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b"}, - {file = "black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2"}, - {file = "black-24.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b"}, - {file = "black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd"}, - {file = "black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f"}, - {file = "black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800"}, - {file = "black-24.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7"}, - {file = "black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d"}, - {file = "black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875"}, +groups = ["dev"] +files = [ + {file = "black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32"}, + {file = "black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da"}, + {file = "black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7"}, + {file = "black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9"}, + {file = "black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0"}, + {file = "black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299"}, + {file = "black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096"}, + {file = "black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2"}, + {file = "black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b"}, + {file = "black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc"}, + {file = "black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f"}, + {file = "black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba"}, + {file = "black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f"}, + {file = "black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3"}, + {file = "black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171"}, + {file = "black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18"}, + {file = "black-25.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1ee0a0c330f7b5130ce0caed9936a904793576ef4d2b98c40835d6a65afa6a0"}, + {file = "black-25.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3df5f1bf91d36002b0a75389ca8663510cf0531cca8aa5c1ef695b46d98655f"}, + {file = "black-25.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9e6827d563a2c820772b32ce8a42828dc6790f095f441beef18f96aa6f8294e"}, + {file = "black-25.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:bacabb307dca5ebaf9c118d2d2f6903da0d62c9faa82bd21a33eecc319559355"}, + {file = "black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717"}, + {file = "black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666"}, ] [package.dependencies] @@ -439,12 +336,14 @@ version = "6.2.0" description = "An easy safelist-based HTML-sanitizing tool." optional = false python-versions = ">=3.9" +groups = ["dev", "voila"] files = [ {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, ] [package.dependencies] +tinycss2 = {version = ">=1.1.0,<1.5", optional = true, markers = "extra == \"css\""} webencodings = "*" [package.extras] @@ -456,6 +355,8 @@ version = "2.7.1" description = "Python wrapper for the C-Blosc2 library" optional = false python-versions = "<4,>=3.10" +groups = ["main"] +markers = "python_version < \"3.11\"" files = [ {file = "blosc2-2.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ad698c6fca8dee677b7a1881206f7ac43ffd7c458733716a3de1e1f3c6ba1f79"}, {file = "blosc2-2.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5923a22fb7cfdad571b316930e8812618ba8b2ac1f37ac05edcf3eda71beed9f"}, @@ -488,12 +389,55 @@ numexpr = "*" numpy = ">=1.21" py-cpuinfo = "*" +[[package]] +name = "blosc2" +version = "3.2.0" +description = "A fast & compressed ndarray library with a flexible compute engine." +optional = false +python-versions = ">=3.11" +groups = ["main"] +markers = "python_version == \"3.11\"" +files = [ + {file = "blosc2-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03cb0ef98b0756375a133554949554e3347af9cf9975b2c445b0ec614520a8b6"}, + {file = "blosc2-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27aad07f48c08ebc03ca91bd61d67b8d2d771e0f1e7c06923a59d351a06d9ddf"}, + {file = "blosc2-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c75c6b35a5d9c875ed62ec9c0b27c9f663b4d2083669d42207cfe6ac9b34635e"}, + {file = "blosc2-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96359a8c6c2b01eaecb9c8e983c96d61d44cae8b42e7d89890255d8ba55c837b"}, + {file = "blosc2-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:8c58a3083ba0e0127ccb9c701a1ef8b467b64216db286de2edab478478e7754d"}, + {file = "blosc2-3.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e74513b5ddf0585cb2c371691b11ed4e30b71eb88f1ddbf718215b800bdb383b"}, + {file = "blosc2-3.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffd72874ae69a1d8af7909c6481878cd52e76bbac2be1043392d10db19025839"}, + {file = "blosc2-3.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78a7cff1b3a754f864ea0103bda63d0a01af47aa3b0cc01ae0137642965d6e12"}, + {file = "blosc2-3.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42fd9fef3b47ebfa3a98b65c0fe7bea944241e0c8c189fe390932bfce5e702f"}, + {file = "blosc2-3.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:e2dabd78fc26a3357f58095e409351a80728dc7d0b02cfa6ffcf6cbcb71f1bf1"}, + {file = "blosc2-3.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ceaefd858ec8f0ba233a38c6dd190cd891e8f46b60b59949666d53ff41ea3cf4"}, + {file = "blosc2-3.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3836a0ebacf69eb3e7d84980cc7b385eaac4b5be366b54951e3ae5796b0b79ef"}, + {file = "blosc2-3.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0de4d99c0edba830ae40bad880e769eefc432791dbb3f8d48c4655ea498d9cea"}, + {file = "blosc2-3.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63b5e5aeb0ebdb9e50e03b99ded9245123eaf67af8b064823b2c70ae5f0549ae"}, + {file = "blosc2-3.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573137605d361cff0865cd59b178bdc42aecc831f31f491b9eb12ccef48f9b6"}, + {file = "blosc2-3.2.0.tar.gz", hash = "sha256:db38f2265cd7938cbdc7b029420d2d5b65fcb8f91ce00bb6d6bdac63194d62cc"}, +] + +[package.dependencies] +msgpack = "*" +ndindex = "*" +numexpr = {version = "*", markers = "platform_machine != \"wasm32\""} +numpy = ">=1.26" +platformdirs = "*" +py-cpuinfo = {version = "*", markers = "platform_machine != \"wasm32\""} +requests = "*" + +[package.extras] +dev = ["dask", "h5py", "hdf5plugin", "jupyterlab", "matplotlib", "pandas", "plotly", "pre-commit", "pyarrow", "ruff", "s3fs", "xarray", "zarr"] +doc = ["myst-parser", "nbsphinx", "numpydoc", "pydata-sphinx-theme", "sphinx (>=8)", "sphinx-panels", "sphinx-paramlinks"] +test = ["psutil ; platform_machine != \"wasm32\"", "pytest", "torch ; platform_machine != \"wasm32\""] + [[package]] name = "brotli" version = "1.1.0" description = "Python bindings for the Brotli compression library" optional = false python-versions = "*" +groups = ["main"] +markers = "platform_python_implementation != \"PyPy\"" files = [ {file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1140c64812cb9b06c922e77f1c26a75ec5e3f0fb2bf92cc8c58720dec276752"}, {file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c8fd5270e906eef71d4a8d19b7c6a43760c6abcfcc10c9101d14eb2357418de9"}, @@ -628,6 +572,8 @@ version = "1.1.0.0" description = "Python CFFI bindings to the Brotli library" optional = false python-versions = ">=3.7" +groups = ["main"] +markers = "platform_python_implementation == \"PyPy\"" files = [ {file = "brotlicffi-1.1.0.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9b7ae6bd1a3f0df532b6d67ff674099a96d22bc0948955cb338488c31bfb8851"}, {file = "brotlicffi-1.1.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19ffc919fa4fc6ace69286e0a23b3789b4219058313cf9b45625016bf7ff996b"}, @@ -663,13 +609,14 @@ cffi = ">=1.0.0" [[package]] name = "certifi" -version = "2024.8.30" +version = "2025.1.31" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main", "dev", "voila"] files = [ - {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, - {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, + {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, + {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, ] [[package]] @@ -678,6 +625,7 @@ version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] files = [ {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, @@ -747,6 +695,7 @@ files = [ {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] +markers = {main = "implementation_name == \"pypy\" or platform_python_implementation == \"PyPy\""} [package.dependencies] pycparser = "*" @@ -757,6 +706,7 @@ version = "3.4.0" description = "Validate configuration and produce human readable error messages." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, @@ -768,6 +718,7 @@ version = "5.2.0" description = "Universal encoding detector for Python 3" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, @@ -775,127 +726,116 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.4.0" +version = "3.4.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, - {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, - {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, +python-versions = ">=3.7" +groups = ["main", "dev", "voila"] +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, ] [[package]] name = "click" -version = "8.1.7" +version = "8.1.8" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, ] [package.dependencies] @@ -907,6 +847,8 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main", "dev"] +markers = "sys_platform == \"win32\" or platform_system == \"Windows\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -918,6 +860,7 @@ version = "0.2.2" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, @@ -931,91 +874,86 @@ test = ["pytest"] [[package]] name = "configparser" -version = "7.1.0" +version = "7.2.0" description = "Updated configparser from stdlib for earlier Pythons." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "configparser-7.1.0-py3-none-any.whl", hash = "sha256:98e374573c4e10e92399651e3ba1c47a438526d633c44ee96143dec26dad4299"}, - {file = "configparser-7.1.0.tar.gz", hash = "sha256:eb82646c892dbdf773dae19c633044d163c3129971ae09b49410a303b8e0a5f7"}, + {file = "configparser-7.2.0-py3-none-any.whl", hash = "sha256:fee5e1f3db4156dcd0ed95bc4edfa3580475537711f67a819c966b389d09ce62"}, + {file = "configparser-7.2.0.tar.gz", hash = "sha256:b629cc8ae916e3afbd36d1b3d093f34193d851e11998920fdcfc4552218b7b70"}, ] [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "types-backports"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["pytest (>=6,!=8.1.*)", "types-backports"] +type = ["pytest-mypy"] [[package]] name = "contourpy" -version = "1.3.0" +version = "1.3.1" description = "Python library for calculating contours of 2D quadrilateral grids" optional = false -python-versions = ">=3.9" -files = [ - {file = "contourpy-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:880ea32e5c774634f9fcd46504bf9f080a41ad855f4fef54f5380f5133d343c7"}, - {file = "contourpy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:76c905ef940a4474a6289c71d53122a4f77766eef23c03cd57016ce19d0f7b42"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f8557cbb07415a4d6fa191f20fd9d2d9eb9c0b61d1b2f52a8926e43c6e9af7"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36f965570cff02b874773c49bfe85562b47030805d7d8360748f3eca570f4cab"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cacd81e2d4b6f89c9f8a5b69b86490152ff39afc58a95af002a398273e5ce589"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69375194457ad0fad3a839b9e29aa0b0ed53bb54db1bfb6c3ae43d111c31ce41"}, - {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a52040312b1a858b5e31ef28c2e865376a386c60c0e248370bbea2d3f3b760d"}, - {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3faeb2998e4fcb256542e8a926d08da08977f7f5e62cf733f3c211c2a5586223"}, - {file = "contourpy-1.3.0-cp310-cp310-win32.whl", hash = "sha256:36e0cff201bcb17a0a8ecc7f454fe078437fa6bda730e695a92f2d9932bd507f"}, - {file = "contourpy-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:87ddffef1dbe5e669b5c2440b643d3fdd8622a348fe1983fad7a0f0ccb1cd67b"}, - {file = "contourpy-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0fa4c02abe6c446ba70d96ece336e621efa4aecae43eaa9b030ae5fb92b309ad"}, - {file = "contourpy-1.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:834e0cfe17ba12f79963861e0f908556b2cedd52e1f75e6578801febcc6a9f49"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbc4c3217eee163fa3984fd1567632b48d6dfd29216da3ded3d7b844a8014a66"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4865cd1d419e0c7a7bf6de1777b185eebdc51470800a9f42b9e9decf17762081"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:303c252947ab4b14c08afeb52375b26781ccd6a5ccd81abcdfc1fafd14cf93c1"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637f674226be46f6ba372fd29d9523dd977a291f66ab2a74fbeb5530bb3f445d"}, - {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:76a896b2f195b57db25d6b44e7e03f221d32fe318d03ede41f8b4d9ba1bff53c"}, - {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e1fd23e9d01591bab45546c089ae89d926917a66dceb3abcf01f6105d927e2cb"}, - {file = "contourpy-1.3.0-cp311-cp311-win32.whl", hash = "sha256:d402880b84df3bec6eab53cd0cf802cae6a2ef9537e70cf75e91618a3801c20c"}, - {file = "contourpy-1.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:6cb6cc968059db9c62cb35fbf70248f40994dfcd7aa10444bbf8b3faeb7c2d67"}, - {file = "contourpy-1.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:570ef7cf892f0afbe5b2ee410c507ce12e15a5fa91017a0009f79f7d93a1268f"}, - {file = "contourpy-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:da84c537cb8b97d153e9fb208c221c45605f73147bd4cadd23bdae915042aad6"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0be4d8425bfa755e0fd76ee1e019636ccc7c29f77a7c86b4328a9eb6a26d0639"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c0da700bf58f6e0b65312d0a5e695179a71d0163957fa381bb3c1f72972537c"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb8b141bb00fa977d9122636b16aa67d37fd40a3d8b52dd837e536d64b9a4d06"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3634b5385c6716c258d0419c46d05c8aa7dc8cb70326c9a4fb66b69ad2b52e09"}, - {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0dce35502151b6bd35027ac39ba6e5a44be13a68f55735c3612c568cac3805fd"}, - {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aea348f053c645100612b333adc5983d87be69acdc6d77d3169c090d3b01dc35"}, - {file = "contourpy-1.3.0-cp312-cp312-win32.whl", hash = "sha256:90f73a5116ad1ba7174341ef3ea5c3150ddf20b024b98fb0c3b29034752c8aeb"}, - {file = "contourpy-1.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:b11b39aea6be6764f84360fce6c82211a9db32a7c7de8fa6dd5397cf1d079c3b"}, - {file = "contourpy-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3e1c7fa44aaae40a2247e2e8e0627f4bea3dd257014764aa644f319a5f8600e3"}, - {file = "contourpy-1.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:364174c2a76057feef647c802652f00953b575723062560498dc7930fc9b1cb7"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32b238b3b3b649e09ce9aaf51f0c261d38644bdfa35cbaf7b263457850957a84"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d51fca85f9f7ad0b65b4b9fe800406d0d77017d7270d31ec3fb1cc07358fdea0"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:732896af21716b29ab3e988d4ce14bc5133733b85956316fb0c56355f398099b"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d73f659398a0904e125280836ae6f88ba9b178b2fed6884f3b1f95b989d2c8da"}, - {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c6c7c2408b7048082932cf4e641fa3b8ca848259212f51c8c59c45aa7ac18f14"}, - {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f317576606de89da6b7e0861cf6061f6146ead3528acabff9236458a6ba467f8"}, - {file = "contourpy-1.3.0-cp313-cp313-win32.whl", hash = "sha256:31cd3a85dbdf1fc002280c65caa7e2b5f65e4a973fcdf70dd2fdcb9868069294"}, - {file = "contourpy-1.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4553c421929ec95fb07b3aaca0fae668b2eb5a5203d1217ca7c34c063c53d087"}, - {file = "contourpy-1.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:345af746d7766821d05d72cb8f3845dfd08dd137101a2cb9b24de277d716def8"}, - {file = "contourpy-1.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3bb3808858a9dc68f6f03d319acd5f1b8a337e6cdda197f02f4b8ff67ad2057b"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:420d39daa61aab1221567b42eecb01112908b2cab7f1b4106a52caaec8d36973"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4d63ee447261e963af02642ffcb864e5a2ee4cbfd78080657a9880b8b1868e18"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:167d6c890815e1dac9536dca00828b445d5d0df4d6a8c6adb4a7ec3166812fa8"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:710a26b3dc80c0e4febf04555de66f5fd17e9cf7170a7b08000601a10570bda6"}, - {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:75ee7cb1a14c617f34a51d11fa7524173e56551646828353c4af859c56b766e2"}, - {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:33c92cdae89ec5135d036e7218e69b0bb2851206077251f04a6c4e0e21f03927"}, - {file = "contourpy-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a11077e395f67ffc2c44ec2418cfebed032cd6da3022a94fc227b6faf8e2acb8"}, - {file = "contourpy-1.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e8134301d7e204c88ed7ab50028ba06c683000040ede1d617298611f9dc6240c"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e12968fdfd5bb45ffdf6192a590bd8ddd3ba9e58360b29683c6bb71a7b41edca"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fd2a0fc506eccaaa7595b7e1418951f213cf8255be2600f1ea1b61e46a60c55f"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4cfb5c62ce023dfc410d6059c936dcf96442ba40814aefbfa575425a3a7f19dc"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68a32389b06b82c2fdd68276148d7b9275b5f5cf13e5417e4252f6d1a34f72a2"}, - {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94e848a6b83da10898cbf1311a815f770acc9b6a3f2d646f330d57eb4e87592e"}, - {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d78ab28a03c854a873787a0a42254a0ccb3cb133c672f645c9f9c8f3ae9d0800"}, - {file = "contourpy-1.3.0-cp39-cp39-win32.whl", hash = "sha256:81cb5ed4952aae6014bc9d0421dec7c5835c9c8c31cdf51910b708f548cf58e5"}, - {file = "contourpy-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:14e262f67bd7e6eb6880bc564dcda30b15e351a594657e55b7eec94b6ef72843"}, - {file = "contourpy-1.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fe41b41505a5a33aeaed2a613dccaeaa74e0e3ead6dd6fd3a118fb471644fd6c"}, - {file = "contourpy-1.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eca7e17a65f72a5133bdbec9ecf22401c62bcf4821361ef7811faee695799779"}, - {file = "contourpy-1.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1ec4dc6bf570f5b22ed0d7efba0dfa9c5b9e0431aeea7581aa217542d9e809a4"}, - {file = "contourpy-1.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:00ccd0dbaad6d804ab259820fa7cb0b8036bda0686ef844d24125d8287178ce0"}, - {file = "contourpy-1.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca947601224119117f7c19c9cdf6b3ab54c5726ef1d906aa4a69dfb6dd58102"}, - {file = "contourpy-1.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6ec93afeb848a0845a18989da3beca3eec2c0f852322efe21af1931147d12cb"}, - {file = "contourpy-1.3.0.tar.gz", hash = "sha256:7ffa0db17717a8ffb127efd0c95a4362d996b892c2904db72428d5b52e1938a4"}, +python-versions = ">=3.10" +groups = ["main", "dev"] +files = [ + {file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"}, + {file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595"}, + {file = "contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697"}, + {file = "contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"}, + {file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"}, + {file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d"}, + {file = "contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e"}, + {file = "contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1"}, + {file = "contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82"}, + {file = "contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53"}, + {file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"}, ] [package.dependencies] @@ -1034,6 +972,7 @@ version = "0.12.1" description = "Composable style cycles" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, @@ -1045,13 +984,14 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "dash" -version = "2.18.1" +version = "2.18.2" description = "A Python framework for building reactive web-apps. Developed by Plotly." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "dash-2.18.1-py3-none-any.whl", hash = "sha256:07c4513bb5f79a4b936847a0b49afc21dbd4b001ff77ea78d4d836043e211a07"}, - {file = "dash-2.18.1.tar.gz", hash = "sha256:ffdf89690d734f6851ef1cb344222826ffb11ad2214ab9172668bf8aadd75d12"}, + {file = "dash-2.18.2-py3-none-any.whl", hash = "sha256:0ce0479d1bc958e934630e2de7023b8a4558f23ce1f9f5a4b34b65eb3903a869"}, + {file = "dash-2.18.2.tar.gz", hash = "sha256:20e8404f73d0fe88ce2eae33c25bbc513cbe52f30d23a401fa5f24dbb44296c8"}, ] [package.dependencies] @@ -1078,30 +1018,21 @@ testing = ["beautifulsoup4 (>=4.8.2)", "cryptography", "dash-testing-stub (>=0.0 [[package]] name = "dash-bootstrap-components" -version = "1.6.0" +version = "1.7.1" description = "Bootstrap themed components for use in Plotly Dash" optional = false -python-versions = "<4,>=3.8" +python-versions = "<4,>=3.9" +groups = ["main"] files = [ - {file = "dash_bootstrap_components-1.6.0-py3-none-any.whl", hash = "sha256:97f0f47b38363f18863e1b247462229266ce12e1e171cfb34d3c9898e6e5cd1e"}, - {file = "dash_bootstrap_components-1.6.0.tar.gz", hash = "sha256:960a1ec9397574792f49a8241024fa3cecde0f5930c971a3fc81f016cbeb1095"}, + {file = "dash_bootstrap_components-1.7.1-py3-none-any.whl", hash = "sha256:5e8eae7ee1d013f69e272c68c1015b53ab71802460152088f33fffa90d245199"}, + {file = "dash_bootstrap_components-1.7.1.tar.gz", hash = "sha256:30d48340d6dc89831d6c06e400cd4236f0d5363562c05b2a922f21545695a082"}, ] [package.dependencies] dash = ">=2.0.0" [package.extras] -pandas = ["numpy", "pandas"] - -[[package]] -name = "dash-colorscales" -version = "0.0.4" -description = "Colorscale picker UI for your Dash apps" -optional = false -python-versions = "*" -files = [ - {file = "dash_colorscales-0.0.4.tar.gz", hash = "sha256:e2eb8c78e702d03e9c13fb7ca888ed202152494dbb053f5aab6417b6f6d19f63"}, -] +pandas = ["numpy (>=2.0.2)", "pandas (>=2.2.3)"] [[package]] name = "dash-core-components" @@ -1109,6 +1040,7 @@ version = "2.0.0" description = "Core component suite for Dash" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "dash_core_components-2.0.0-py3-none-any.whl", hash = "sha256:52b8e8cce13b18d0802ee3acbc5e888cb1248a04968f962d63d070400af2e346"}, {file = "dash_core_components-2.0.0.tar.gz", hash = "sha256:c6733874af975e552f95a1398a16c2ee7df14ce43fa60bb3718a3c6e0b63ffee"}, @@ -1120,6 +1052,7 @@ version = "0.5.0" description = "DAQ components for Dash" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "dash_daq-0.5.0.tar.gz", hash = "sha256:a1d85b6799f7b885652fbc44aebdb58c41254616a8d350b943beeb42ade4256a"}, ] @@ -1133,6 +1066,7 @@ version = "2.0.0" description = "Vanilla HTML components for Dash" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "dash_html_components-2.0.0-py3-none-any.whl", hash = "sha256:b42cc903713c9706af03b3f2548bda4be7307a7cf89b7d6eae3da872717d1b63"}, {file = "dash_html_components-2.0.0.tar.gz", hash = "sha256:8703a601080f02619a6390998e0b3da4a5daabe97a1fd7a9cebc09d015f26e50"}, @@ -1144,6 +1078,7 @@ version = "5.0.0" description = "Dash table" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "dash_table-5.0.0-py3-none-any.whl", hash = "sha256:19036fa352bb1c11baf38068ec62d172f0515f73ca3276c79dee49b95ddc16c9"}, {file = "dash_table-5.0.0.tar.gz", hash = "sha256:18624d693d4c8ef2ddec99a6f167593437a7ea0bf153aa20f318c170c5bc7308"}, @@ -1151,67 +1086,66 @@ files = [ [[package]] name = "dataclasses-json" -version = "0.5.9" -description = "Easily serialize dataclasses to and from JSON" +version = "0.5.14" +description = "Easily serialize dataclasses to and from JSON." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7,<3.13" +groups = ["main"] files = [ - {file = "dataclasses-json-0.5.9.tar.gz", hash = "sha256:e9ac87b73edc0141aafbce02b44e93553c3123ad574958f0fe52a534b6707e8e"}, - {file = "dataclasses_json-0.5.9-py3-none-any.whl", hash = "sha256:1280542631df1c375b7bc92e5b86d39e06c44760d7e3571a537b3b8acabf2f0c"}, + {file = "dataclasses_json-0.5.14-py3-none-any.whl", hash = "sha256:5ec6fed642adb1dbdb4182badb01e0861badfd8fda82e3b67f44b2d1e9d10d21"}, + {file = "dataclasses_json-0.5.14.tar.gz", hash = "sha256:d82896a94c992ffaf689cd1fafc180164e2abdd415b8f94a7f78586af5886236"}, ] [package.dependencies] -marshmallow = ">=3.3.0,<4.0.0" -marshmallow-enum = ">=1.5.1,<2.0.0" -typing-inspect = ">=0.4.0" - -[package.extras] -dev = ["flake8", "hypothesis", "ipython", "mypy (>=0.710)", "portray", "pytest (>=7.2.0)", "setuptools", "simplejson", "twine", "types-dataclasses", "wheel"] +marshmallow = ">=3.18.0,<4.0.0" +typing-inspect = ">=0.4.0,<1" [[package]] name = "debugpy" -version = "1.8.7" +version = "1.8.13" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" -files = [ - {file = "debugpy-1.8.7-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:95fe04a573b8b22896c404365e03f4eda0ce0ba135b7667a1e57bd079793b96b"}, - {file = "debugpy-1.8.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:628a11f4b295ffb4141d8242a9bb52b77ad4a63a2ad19217a93be0f77f2c28c9"}, - {file = "debugpy-1.8.7-cp310-cp310-win32.whl", hash = "sha256:85ce9c1d0eebf622f86cc68618ad64bf66c4fc3197d88f74bb695a416837dd55"}, - {file = "debugpy-1.8.7-cp310-cp310-win_amd64.whl", hash = "sha256:29e1571c276d643757ea126d014abda081eb5ea4c851628b33de0c2b6245b037"}, - {file = "debugpy-1.8.7-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:caf528ff9e7308b74a1749c183d6808ffbedbb9fb6af78b033c28974d9b8831f"}, - {file = "debugpy-1.8.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cba1d078cf2e1e0b8402e6bda528bf8fda7ccd158c3dba6c012b7897747c41a0"}, - {file = "debugpy-1.8.7-cp311-cp311-win32.whl", hash = "sha256:171899588bcd412151e593bd40d9907133a7622cd6ecdbdb75f89d1551df13c2"}, - {file = "debugpy-1.8.7-cp311-cp311-win_amd64.whl", hash = "sha256:6e1c4ffb0c79f66e89dfd97944f335880f0d50ad29525dc792785384923e2211"}, - {file = "debugpy-1.8.7-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:4d27d842311353ede0ad572600c62e4bcd74f458ee01ab0dd3a1a4457e7e3706"}, - {file = "debugpy-1.8.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:703c1fd62ae0356e194f3e7b7a92acd931f71fe81c4b3be2c17a7b8a4b546ec2"}, - {file = "debugpy-1.8.7-cp312-cp312-win32.whl", hash = "sha256:2f729228430ef191c1e4df72a75ac94e9bf77413ce5f3f900018712c9da0aaca"}, - {file = "debugpy-1.8.7-cp312-cp312-win_amd64.whl", hash = "sha256:45c30aaefb3e1975e8a0258f5bbd26cd40cde9bfe71e9e5a7ac82e79bad64e39"}, - {file = "debugpy-1.8.7-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:d050a1ec7e925f514f0f6594a1e522580317da31fbda1af71d1530d6ea1f2b40"}, - {file = "debugpy-1.8.7-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2f4349a28e3228a42958f8ddaa6333d6f8282d5edaea456070e48609c5983b7"}, - {file = "debugpy-1.8.7-cp313-cp313-win32.whl", hash = "sha256:11ad72eb9ddb436afb8337891a986302e14944f0f755fd94e90d0d71e9100bba"}, - {file = "debugpy-1.8.7-cp313-cp313-win_amd64.whl", hash = "sha256:2efb84d6789352d7950b03d7f866e6d180284bc02c7e12cb37b489b7083d81aa"}, - {file = "debugpy-1.8.7-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:4b908291a1d051ef3331484de8e959ef3e66f12b5e610c203b5b75d2725613a7"}, - {file = "debugpy-1.8.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da8df5b89a41f1fd31503b179d0a84a5fdb752dddd5b5388dbd1ae23cda31ce9"}, - {file = "debugpy-1.8.7-cp38-cp38-win32.whl", hash = "sha256:b12515e04720e9e5c2216cc7086d0edadf25d7ab7e3564ec8b4521cf111b4f8c"}, - {file = "debugpy-1.8.7-cp38-cp38-win_amd64.whl", hash = "sha256:93176e7672551cb5281577cdb62c63aadc87ec036f0c6a486f0ded337c504596"}, - {file = "debugpy-1.8.7-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:90d93e4f2db442f8222dec5ec55ccfc8005821028982f1968ebf551d32b28907"}, - {file = "debugpy-1.8.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6db2a370e2700557a976eaadb16243ec9c91bd46f1b3bb15376d7aaa7632c81"}, - {file = "debugpy-1.8.7-cp39-cp39-win32.whl", hash = "sha256:a6cf2510740e0c0b4a40330640e4b454f928c7b99b0c9dbf48b11efba08a8cda"}, - {file = "debugpy-1.8.7-cp39-cp39-win_amd64.whl", hash = "sha256:6a9d9d6d31846d8e34f52987ee0f1a904c7baa4912bf4843ab39dadf9b8f3e0d"}, - {file = "debugpy-1.8.7-py2.py3-none-any.whl", hash = "sha256:57b00de1c8d2c84a61b90880f7e5b6deaf4c312ecbde3a0e8912f2a56c4ac9ae"}, - {file = "debugpy-1.8.7.zip", hash = "sha256:18b8f731ed3e2e1df8e9cdaa23fb1fc9c24e570cd0081625308ec51c82efe42e"}, +groups = ["main", "dev"] +files = [ + {file = "debugpy-1.8.13-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:06859f68e817966723ffe046b896b1bd75c665996a77313370336ee9e1de3e90"}, + {file = "debugpy-1.8.13-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb56c2db69fb8df3168bc857d7b7d2494fed295dfdbde9a45f27b4b152f37520"}, + {file = "debugpy-1.8.13-cp310-cp310-win32.whl", hash = "sha256:46abe0b821cad751fc1fb9f860fb2e68d75e2c5d360986d0136cd1db8cad4428"}, + {file = "debugpy-1.8.13-cp310-cp310-win_amd64.whl", hash = "sha256:dc7b77f5d32674686a5f06955e4b18c0e41fb5a605f5b33cf225790f114cfeec"}, + {file = "debugpy-1.8.13-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:eee02b2ed52a563126c97bf04194af48f2fe1f68bb522a312b05935798e922ff"}, + {file = "debugpy-1.8.13-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4caca674206e97c85c034c1efab4483f33971d4e02e73081265ecb612af65377"}, + {file = "debugpy-1.8.13-cp311-cp311-win32.whl", hash = "sha256:7d9a05efc6973b5aaf076d779cf3a6bbb1199e059a17738a2aa9d27a53bcc888"}, + {file = "debugpy-1.8.13-cp311-cp311-win_amd64.whl", hash = "sha256:62f9b4a861c256f37e163ada8cf5a81f4c8d5148fc17ee31fb46813bd658cdcc"}, + {file = "debugpy-1.8.13-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:2b8de94c5c78aa0d0ed79023eb27c7c56a64c68217d881bee2ffbcb13951d0c1"}, + {file = "debugpy-1.8.13-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:887d54276cefbe7290a754424b077e41efa405a3e07122d8897de54709dbe522"}, + {file = "debugpy-1.8.13-cp312-cp312-win32.whl", hash = "sha256:3872ce5453b17837ef47fb9f3edc25085ff998ce63543f45ba7af41e7f7d370f"}, + {file = "debugpy-1.8.13-cp312-cp312-win_amd64.whl", hash = "sha256:63ca7670563c320503fea26ac688988d9d6b9c6a12abc8a8cf2e7dd8e5f6b6ea"}, + {file = "debugpy-1.8.13-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:31abc9618be4edad0b3e3a85277bc9ab51a2d9f708ead0d99ffb5bb750e18503"}, + {file = "debugpy-1.8.13-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0bd87557f97bced5513a74088af0b84982b6ccb2e254b9312e29e8a5c4270eb"}, + {file = "debugpy-1.8.13-cp313-cp313-win32.whl", hash = "sha256:5268ae7fdca75f526d04465931cb0bd24577477ff50e8bb03dab90983f4ebd02"}, + {file = "debugpy-1.8.13-cp313-cp313-win_amd64.whl", hash = "sha256:79ce4ed40966c4c1631d0131606b055a5a2f8e430e3f7bf8fd3744b09943e8e8"}, + {file = "debugpy-1.8.13-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:acf39a6e98630959763f9669feddee540745dfc45ad28dbc9bd1f9cd60639391"}, + {file = "debugpy-1.8.13-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:924464d87e7d905eb0d79fb70846558910e906d9ee309b60c4fe597a2e802590"}, + {file = "debugpy-1.8.13-cp38-cp38-win32.whl", hash = "sha256:3dae443739c6b604802da9f3e09b0f45ddf1cf23c99161f3a1a8039f61a8bb89"}, + {file = "debugpy-1.8.13-cp38-cp38-win_amd64.whl", hash = "sha256:ed93c3155fc1f888ab2b43626182174e457fc31b7781cd1845629303790b8ad1"}, + {file = "debugpy-1.8.13-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:6fab771639332bd8ceb769aacf454a30d14d7a964f2012bf9c4e04c60f16e85b"}, + {file = "debugpy-1.8.13-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32b6857f8263a969ce2ca098f228e5cc0604d277447ec05911a8c46cf3e7e307"}, + {file = "debugpy-1.8.13-cp39-cp39-win32.whl", hash = "sha256:f14d2c4efa1809da125ca62df41050d9c7cd9cb9e380a2685d1e453c4d450ccb"}, + {file = "debugpy-1.8.13-cp39-cp39-win_amd64.whl", hash = "sha256:ea869fe405880327497e6945c09365922c79d2a1eed4c3ae04d77ac7ae34b2b5"}, + {file = "debugpy-1.8.13-py2.py3-none-any.whl", hash = "sha256:d4ba115cdd0e3a70942bd562adba9ec8c651fe69ddde2298a1be296fc331906f"}, + {file = "debugpy-1.8.13.tar.gz", hash = "sha256:837e7bef95bdefba426ae38b9a94821ebdc5bea55627879cd48165c90b9e50ce"}, ] [[package]] name = "decorator" -version = "5.1.1" +version = "5.2.1" description = "Decorators for Humans" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" +groups = ["main", "dev"] files = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, + {file = "decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a"}, + {file = "decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360"}, ] [[package]] @@ -1220,6 +1154,7 @@ version = "0.7.1" description = "XML bomb protection for Python stdlib modules" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["dev", "voila"] files = [ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, @@ -1231,6 +1166,8 @@ version = "0.23.4" description = "Diagram as Code" optional = true python-versions = ">=3.7,<4.0" +groups = ["main"] +markers = "extra == \"pipeline\"" files = [ {file = "diagrams-0.23.4-py3-none-any.whl", hash = "sha256:1ba69d98fcf8d768dbddf07d2c77aba6cc95c2e6f90f37146c04c96bc6765450"}, {file = "diagrams-0.23.4.tar.gz", hash = "sha256:b7ada0b119b5189dd021b1dc1467fad3704737452bb18b1e06d05e4d1fa48ed7"}, @@ -1247,6 +1184,7 @@ version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, @@ -1258,6 +1196,7 @@ version = "2.2.0" description = "Filesystem-like pathing and searching for dictionaries" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "dpath-2.2.0-py3-none-any.whl", hash = "sha256:b330a375ded0a0d2ed404440f6c6a715deae5313af40bbb01c8a41d891900576"}, {file = "dpath-2.2.0.tar.gz", hash = "sha256:34f7e630dc55ea3f219e555726f5da4b4b25f2200319c8e6902c394258dd6a3e"}, @@ -1265,23 +1204,23 @@ files = [ [[package]] name = "dtale" -version = "3.15.1" +version = "3.17.0" description = "Web Client for Visualizing Pandas Objects" optional = false python-versions = "*" +groups = ["main"] files = [ - {file = "dtale-3.15.1-py2.py3-none-any.whl", hash = "sha256:d8429b8e4ba007bff69658c464f2757523bfb7a6d85799827125a9e5c7a1f6b5"}, - {file = "dtale-3.15.1.tar.gz", hash = "sha256:8514784316996fc7492263a1fa52fbb3aac87657c153ccc5489172387af2810f"}, + {file = "dtale-3.17.0-py2.py3-none-any.whl", hash = "sha256:99473bdf9c8989bb0c32413ac02165251b72b8fce1c0bfb05033ddcf676f49e3"}, + {file = "dtale-3.17.0.tar.gz", hash = "sha256:0c0615ffd23223576d3917d1f8c8a20806883e9ed1934e6a27813c23f7787716"}, ] [package.dependencies] beautifulsoup4 = {version = "!=4.13.0b2", markers = "python_version > \"3.0\""} certifi = {version = "*", markers = "python_version > \"3.0\""} cycler = {version = "*", markers = "python_version > \"3.6\""} -dash = {version = "*", markers = "python_version > \"3.7\""} -dash-bootstrap-components = {version = "*", markers = "python_version > \"3.0\""} -dash-colorscales = "*" -dash-daq = "*" +dash = {version = "<=2.18.2", markers = "python_version > \"3.7\""} +dash-bootstrap-components = {version = "<=1.7.1", markers = "python_version > \"3.0\""} +dash-daq = "<=0.5.0" et-xmlfile = {version = "*", markers = "python_version >= \"3.6\""} Flask = {version = "*", markers = "python_version >= \"3.8\""} Flask-Compress = {version = "*", markers = "python_version > \"3.8\""} @@ -1311,13 +1250,13 @@ xlrd = "*" [package.extras] arctic = ["arctic (<=1.79.4)"] arcticdb = ["arcticdb"] -dash-bio = ["ParmEd (==3.4.3)", "dash-bio", "dash-bio (==0.7.1)"] -ngrok = ["flask-ngrok"] -r = ["rpy2"] +dash-bio = ["ParmEd (==3.4.3) ; python_version == \"3.6\"", "dash-bio (==0.7.1) ; python_version == \"2.7\"", "dash-bio ; python_version > \"3.0\""] +ngrok = ["flask-ngrok ; python_version > \"3.0\""] +r = ["rpy2 ; python_version > \"3.0\""] redis = ["redis", "redislite"] streamlit = ["streamlit"] swifter = ["swifter"] -tests = ["importlib-metadata", "importlib-metadata (<=3.7.3)", "ipython (<8.0.0)", "mock", "nbconvert", "pytest", "pytest-cov", "pytest-server-fixtures", "pytest-server-fixtures (<=1.7.0)"] +tests = ["importlib-metadata (<=3.7.3) ; python_version <= \"3.6\"", "importlib-metadata ; python_version != \"3.6\"", "ipython (<8.0.0)", "mock", "nbconvert", "pytest", "pytest-cov", "pytest-server-fixtures (<=1.7.0) ; python_version == \"2.7\"", "pytest-server-fixtures ; python_version >= \"3.6\""] [[package]] name = "entrypoints" @@ -1325,6 +1264,7 @@ version = "0.4" description = "Discover and load entry points from installed packages." optional = false python-versions = ">=3.6" +groups = ["main", "dev", "voila"] files = [ {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, @@ -1336,6 +1276,7 @@ version = "2.0.0" description = "An implementation of lxml.xmlfile for the standard library" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa"}, {file = "et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54"}, @@ -1347,6 +1288,8 @@ version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" +groups = ["main", "dev", "voila"] +markers = "python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -1357,13 +1300,14 @@ test = ["pytest (>=6)"] [[package]] name = "execnb" -version = "0.1.6" +version = "0.1.12" description = "A description of your project" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ - {file = "execnb-0.1.6-py3-none-any.whl", hash = "sha256:095b74984efe40804a3e9535be3936fa657fd76a1227c2c839672dfc0bb2816a"}, - {file = "execnb-0.1.6.tar.gz", hash = "sha256:289d97107a856344b16c08953d60453b47320b41168060eca3cc2dee504b4e05"}, + {file = "execnb-0.1.12-py3-none-any.whl", hash = "sha256:ae23ea0686a0c150163c5f53c08ec4b599da09768c5db5ab9f0a804487469ec0"}, + {file = "execnb-0.1.12.tar.gz", hash = "sha256:659328078008dae9f4f6735558aa7dce470944c1c7d654988dc329e9dd29f9df"}, ] [package.dependencies] @@ -1371,48 +1315,51 @@ fastcore = ">=1.5.5" ipython = "*" [package.extras] -dev = ["Pillow", "matplotlib"] +dev = ["Pillow", "matplotlib", "mistletoe"] [[package]] name = "executing" -version = "2.1.0" +version = "2.2.0" description = "Get the currently executing AST node of a frame, and other information" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ - {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, - {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, + {file = "executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa"}, + {file = "executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755"}, ] [package.extras] -tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich ; python_version >= \"3.11\""] [[package]] name = "fastcore" -version = "1.7.19" +version = "1.8.0" description = "Python supercharged for fastai development" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main", "dev"] files = [ - {file = "fastcore-1.7.19-py3-none-any.whl", hash = "sha256:c528203caf2bcb6869f1198c7bcb0f77158e04eeb8d3bc4c7b60c21b389235a1"}, - {file = "fastcore-1.7.19.tar.gz", hash = "sha256:72ac75cf3f7a591966e24aa37a4283512a097a098b4794c944ce707f71ba0f02"}, + {file = "fastcore-1.8.0-py3-none-any.whl", hash = "sha256:67739747f0f714d02944957271a11dcb4a9dd40012615e6f9d19add3e5d9e041"}, + {file = "fastcore-1.8.0.tar.gz", hash = "sha256:d23e63aff4bcd06dde24cdf9f7ea13c48e7d274ae89e52e826df33c64869c976"}, ] [package.dependencies] packaging = "*" [package.extras] -dev = ["llms-txt", "matplotlib", "nbclassic", "nbdev (>=0.2.39)", "numpy", "pandas", "pillow", "pysymbol-llm", "torch"] +dev = ["llms-txt", "matplotlib", "nbclassic", "nbdev (>=0.2.39)", "numpy", "pandas", "pillow", "plum-dispatch", "pysymbol_llm", "torch"] [[package]] name = "fastjsonschema" -version = "2.20.0" +version = "2.21.1" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" +groups = ["dev", "voila"] 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.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, + {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, ] [package.extras] @@ -1420,29 +1367,31 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.16.1" +version = "3.18.0" description = "A platform independent file lock." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, - {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, + {file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"}, + {file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"}, ] [package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] -typing = ["typing-extensions (>=4.12.2)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] +typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] [[package]] name = "flake8" -version = "7.1.1" +version = "7.1.2" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.8.1" +groups = ["dev"] files = [ - {file = "flake8-7.1.1-py2.py3-none-any.whl", hash = "sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"}, - {file = "flake8-7.1.1.tar.gz", hash = "sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38"}, + {file = "flake8-7.1.2-py2.py3-none-any.whl", hash = "sha256:1cbc62e65536f65e6d754dfe6f1bada7f5cf392d6f5db3c2b85892466c3e7c1a"}, + {file = "flake8-7.1.2.tar.gz", hash = "sha256:c586ffd0b41540951ae41af572e6790dbd49fc12b3aa2541685d253d9bd504bd"}, ] [package.dependencies] @@ -1456,6 +1405,7 @@ version = "2.2.5" description = "A simple framework for building complex web applications." optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "Flask-2.2.5-py3-none-any.whl", hash = "sha256:58107ed83443e86067e41eff4631b058178191a355886f8e479e347fa1285fdf"}, {file = "Flask-2.2.5.tar.gz", hash = "sha256:edee9b0a7ff26621bd5a8c10ff484ae28737a2410d99b0bb9a6850c7fb977aa0"}, @@ -1477,6 +1427,7 @@ version = "1.17" description = "Compress responses in your Flask app with gzip, deflate, brotli or zstandard." optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "Flask_Compress-1.17-py3-none-any.whl", hash = "sha256:415131f197c41109f08e8fdfc3a6628d83d81680fb5ecd0b3a97410e02397b20"}, {file = "flask_compress-1.17.tar.gz", hash = "sha256:1ebb112b129ea7c9e7d6ee6d5cc0d64f226cbc50c4daddf1a58b9bd02253fbd8"}, @@ -1497,6 +1448,7 @@ version = "3.0.10" description = "A Flask extension adding a decorator for CORS support" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "Flask-Cors-3.0.10.tar.gz", hash = "sha256:b60839393f3b84a0f3746f6cdca56c1ad7426aa738b70d6c61375857823181de"}, {file = "Flask_Cors-3.0.10-py2.py3-none-any.whl", hash = "sha256:74efc975af1194fc7891ff5cd85b0f7478be4f7f59fe158102e91abb72bb4438"}, @@ -1508,74 +1460,77 @@ Six = "*" [[package]] name = "fonttools" -version = "4.54.1" +version = "4.56.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"}, +groups = ["main", "dev"] +files = [ + {file = "fonttools-4.56.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:331954d002dbf5e704c7f3756028e21db07097c19722569983ba4d74df014000"}, + {file = "fonttools-4.56.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8d1613abd5af2f93c05867b3a3759a56e8bf97eb79b1da76b2bc10892f96ff16"}, + {file = "fonttools-4.56.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:705837eae384fe21cee5e5746fd4f4b2f06f87544fa60f60740007e0aa600311"}, + {file = "fonttools-4.56.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc871904a53a9d4d908673c6faa15689874af1c7c5ac403a8e12d967ebd0c0dc"}, + {file = "fonttools-4.56.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:38b947de71748bab150259ee05a775e8a0635891568e9fdb3cdd7d0e0004e62f"}, + {file = "fonttools-4.56.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:86b2a1013ef7a64d2e94606632683f07712045ed86d937c11ef4dde97319c086"}, + {file = "fonttools-4.56.0-cp310-cp310-win32.whl", hash = "sha256:133bedb9a5c6376ad43e6518b7e2cd2f866a05b1998f14842631d5feb36b5786"}, + {file = "fonttools-4.56.0-cp310-cp310-win_amd64.whl", hash = "sha256:17f39313b649037f6c800209984a11fc256a6137cbe5487091c6c7187cae4685"}, + {file = "fonttools-4.56.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ef04bc7827adb7532be3d14462390dd71287644516af3f1e67f1e6ff9c6d6df"}, + {file = "fonttools-4.56.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ffda9b8cd9cb8b301cae2602ec62375b59e2e2108a117746f12215145e3f786c"}, + {file = "fonttools-4.56.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e993e8db36306cc3f1734edc8ea67906c55f98683d6fd34c3fc5593fdbba4c"}, + {file = "fonttools-4.56.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:003548eadd674175510773f73fb2060bb46adb77c94854af3e0cc5bc70260049"}, + {file = "fonttools-4.56.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd9825822e7bb243f285013e653f6741954d8147427aaa0324a862cdbf4cbf62"}, + {file = "fonttools-4.56.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b23d30a2c0b992fb1c4f8ac9bfde44b5586d23457759b6cf9a787f1a35179ee0"}, + {file = "fonttools-4.56.0-cp311-cp311-win32.whl", hash = "sha256:47b5e4680002ae1756d3ae3b6114e20aaee6cc5c69d1e5911f5ffffd3ee46c6b"}, + {file = "fonttools-4.56.0-cp311-cp311-win_amd64.whl", hash = "sha256:14a3e3e6b211660db54ca1ef7006401e4a694e53ffd4553ab9bc87ead01d0f05"}, + {file = "fonttools-4.56.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6f195c14c01bd057bc9b4f70756b510e009c83c5ea67b25ced3e2c38e6ee6e9"}, + {file = "fonttools-4.56.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fa760e5fe8b50cbc2d71884a1eff2ed2b95a005f02dda2fa431560db0ddd927f"}, + {file = "fonttools-4.56.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d54a45d30251f1d729e69e5b675f9a08b7da413391a1227781e2a297fa37f6d2"}, + {file = "fonttools-4.56.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:661a8995d11e6e4914a44ca7d52d1286e2d9b154f685a4d1f69add8418961563"}, + {file = "fonttools-4.56.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d94449ad0a5f2a8bf5d2f8d71d65088aee48adbe45f3c5f8e00e3ad861ed81a"}, + {file = "fonttools-4.56.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f59746f7953f69cc3290ce2f971ab01056e55ddd0fb8b792c31a8acd7fee2d28"}, + {file = "fonttools-4.56.0-cp312-cp312-win32.whl", hash = "sha256:bce60f9a977c9d3d51de475af3f3581d9b36952e1f8fc19a1f2254f1dda7ce9c"}, + {file = "fonttools-4.56.0-cp312-cp312-win_amd64.whl", hash = "sha256:300c310bb725b2bdb4f5fc7e148e190bd69f01925c7ab437b9c0ca3e1c7cd9ba"}, + {file = "fonttools-4.56.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f20e2c0dfab82983a90f3d00703ac0960412036153e5023eed2b4641d7d5e692"}, + {file = "fonttools-4.56.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f36a0868f47b7566237640c026c65a86d09a3d9ca5df1cd039e30a1da73098a0"}, + {file = "fonttools-4.56.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62b4c6802fa28e14dba010e75190e0e6228513573f1eeae57b11aa1a39b7e5b1"}, + {file = "fonttools-4.56.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a05d1f07eb0a7d755fbe01fee1fd255c3a4d3730130cf1bfefb682d18fd2fcea"}, + {file = "fonttools-4.56.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0073b62c3438cf0058488c002ea90489e8801d3a7af5ce5f7c05c105bee815c3"}, + {file = "fonttools-4.56.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cad98c94833465bcf28f51c248aaf07ca022efc6a3eba750ad9c1e0256d278"}, + {file = "fonttools-4.56.0-cp313-cp313-win32.whl", hash = "sha256:d0cb73ccf7f6d7ca8d0bc7ea8ac0a5b84969a41c56ac3ac3422a24df2680546f"}, + {file = "fonttools-4.56.0-cp313-cp313-win_amd64.whl", hash = "sha256:62cc1253827d1e500fde9dbe981219fea4eb000fd63402283472d38e7d8aa1c6"}, + {file = "fonttools-4.56.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3fd3fccb7b9adaaecfa79ad51b759f2123e1aba97f857936ce044d4f029abd71"}, + {file = "fonttools-4.56.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:193b86e9f769320bc98ffdb42accafb5d0c8c49bd62884f1c0702bc598b3f0a2"}, + {file = "fonttools-4.56.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e81c1cc80c1d8bf071356cc3e0e25071fbba1c75afc48d41b26048980b3c771"}, + {file = "fonttools-4.56.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9270505a19361e81eecdbc2c251ad1e1a9a9c2ad75fa022ccdee533f55535dc"}, + {file = "fonttools-4.56.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:53f5e9767978a4daf46f28e09dbeb7d010319924ae622f7b56174b777258e5ba"}, + {file = "fonttools-4.56.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:9da650cb29bc098b8cfd15ef09009c914b35c7986c8fa9f08b51108b7bc393b4"}, + {file = "fonttools-4.56.0-cp38-cp38-win32.whl", hash = "sha256:965d0209e6dbdb9416100123b6709cb13f5232e2d52d17ed37f9df0cc31e2b35"}, + {file = "fonttools-4.56.0-cp38-cp38-win_amd64.whl", hash = "sha256:654ac4583e2d7c62aebc6fc6a4c6736f078f50300e18aa105d87ce8925cfac31"}, + {file = "fonttools-4.56.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca7962e8e5fc047cc4e59389959843aafbf7445b6c08c20d883e60ced46370a5"}, + {file = "fonttools-4.56.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1af375734018951c31c0737d04a9d5fd0a353a0253db5fbed2ccd44eac62d8c"}, + {file = "fonttools-4.56.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:442ad4122468d0e47d83bc59d0e91b474593a8c813839e1872e47c7a0cb53b10"}, + {file = "fonttools-4.56.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cf4f8d2a30b454ac682e12c61831dcb174950c406011418e739de592bbf8f76"}, + {file = "fonttools-4.56.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:96a4271f63a615bcb902b9f56de00ea225d6896052c49f20d0c91e9f43529a29"}, + {file = "fonttools-4.56.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6c1d38642ca2dddc7ae992ef5d026e5061a84f10ff2b906be5680ab089f55bb8"}, + {file = "fonttools-4.56.0-cp39-cp39-win32.whl", hash = "sha256:2d351275f73ebdd81dd5b09a8b8dac7a30f29a279d41e1c1192aedf1b6dced40"}, + {file = "fonttools-4.56.0-cp39-cp39-win_amd64.whl", hash = "sha256:d6ca96d1b61a707ba01a43318c9c40aaf11a5a568d1e61146fafa6ab20890793"}, + {file = "fonttools-4.56.0-py3-none-any.whl", hash = "sha256:1088182f68c303b50ca4dc0c82d42083d176cba37af1937e1a976a31149d4d14"}, + {file = "fonttools-4.56.0.tar.gz", hash = "sha256:a114d1567e1a1586b7e9e7fc2ff686ca542a82769a296cef131e4c4af51e58f4"}, ] [package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +all = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\"", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0) ; python_version <= \"3.12\"", "xattr ; sys_platform == \"darwin\"", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "pycairo", "scipy"] +interpolatable = ["munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\""] lxml = ["lxml (>=4.0)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] repacker = ["uharfbuzz (>=0.23.0)"] symfont = ["sympy"] -type1 = ["xattr"] +type1 = ["xattr ; sys_platform == \"darwin\""] ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=15.1.0)"] -woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] +unicode = ["unicodedata2 (>=15.1.0) ; python_version <= \"3.12\""] +woff = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "zopfli (>=0.1.4)"] [[package]] name = "fqdn" @@ -1583,118 +1538,19 @@ version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +groups = ["dev", "voila"] files = [ {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, ] -[[package]] -name = "frozenlist" -version = "1.5.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -optional = false -python-versions = ">=3.8" -files = [ - {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 = "future" version = "1.0.0" description = "Clean single-source support for Python 3 and 2" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +groups = ["main"] files = [ {file = "future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216"}, {file = "future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05"}, @@ -1706,6 +1562,7 @@ version = "1.0.6" description = "A python client for the GitHub API" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "ghapi-1.0.6-py3-none-any.whl", hash = "sha256:b3d96bf18fcaa2cb7131bad9de2948e2a1c2bb226377a25826f6c80950c57854"}, {file = "ghapi-1.0.6.tar.gz", hash = "sha256:64fdd9f06d8e3373065c42c2a03e067e2bbb9ca18b583cd6e38a28aaad0224f6"}, @@ -1724,6 +1581,8 @@ version = "0.20.3" description = "Simple Python interface for Graphviz" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"pipeline\"" files = [ {file = "graphviz-0.20.3-py3-none-any.whl", hash = "sha256:81f848f2904515d8cd359cc611faba817598d2feaac4027b266aa3eda7b3dde5"}, {file = "graphviz-0.20.3.zip", hash = "sha256:09d6bc81e6a9fa392e7ba52135a9d49f1ed62526f96499325930e87ca1b5925d"}, @@ -1740,6 +1599,7 @@ version = "21.2.0" description = "WSGI HTTP Server for UNIX" optional = false python-versions = ">=3.5" +groups = ["main"] files = [ {file = "gunicorn-21.2.0-py3-none-any.whl", hash = "sha256:3213aa5e8c24949e792bcacfc176fef362e7aac80b76c56f6b5122bf350722f0"}, {file = "gunicorn-21.2.0.tar.gz", hash = "sha256:88ec8bff1d634f98e61b9f65bc4bf3cd918a90806c6f5c48bc5603849ec81033"}, @@ -1756,13 +1616,14 @@ tornado = ["tornado (>=0.2)"] [[package]] name = "humanize" -version = "4.11.0" +version = "4.12.2" description = "Python humanize utilities" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "humanize-4.11.0-py3-none-any.whl", hash = "sha256:b53caaec8532bcb2fff70c8826f904c35943f8cecaca29d272d9df38092736c0"}, - {file = "humanize-4.11.0.tar.gz", hash = "sha256:e66f36020a2d5a974c504bd2555cf770621dbdbb6d82f94a6857c0b1ea2608be"}, + {file = "humanize-4.12.2-py3-none-any.whl", hash = "sha256:e4e44dced598b7e03487f3b1c6fd5b1146c30ea55a110e71d5d4bca3e094259e"}, + {file = "humanize-4.12.2.tar.gz", hash = "sha256:ce0715740e9caacc982bb89098182cf8ded3552693a433311c6a4ce6f4e12a2c"}, ] [package.extras] @@ -1770,13 +1631,14 @@ tests = ["freezegun", "pytest", "pytest-cov"] [[package]] name = "identify" -version = "2.6.1" +version = "2.6.9" description = "File identification library for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, - {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, + {file = "identify-2.6.9-py2.py3-none-any.whl", hash = "sha256:c98b4322da415a8e5a70ff6e51fbc2d2932c015532d77e9f8537b4ba7813b150"}, + {file = "identify-2.6.9.tar.gz", hash = "sha256:d40dfe3142a1421d8518e3d3985ef5ac42890683e32306ad614a29490abeb6bf"}, ] [package.extras] @@ -1788,6 +1650,7 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" +groups = ["main", "dev", "voila"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -1798,36 +1661,38 @@ all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2 [[package]] name = "importlib-metadata" -version = "8.5.0" +version = "8.6.1" description = "Read metadata from Python packages" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, - {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, + {file = "importlib_metadata-8.6.1-py3-none-any.whl", hash = "sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e"}, + {file = "importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580"}, ] [package.dependencies] zipp = ">=3.20" [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] perf = ["ipython"] -test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +test = ["flufl.flake8", "importlib_resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] type = ["pytest-mypy"] [[package]] name = "iniconfig" -version = "2.0.0" +version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, + {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, + {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] [[package]] @@ -1836,6 +1701,7 @@ version = "0.13.13" description = "IPython-enabled pdb" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["main"] files = [ {file = "ipdb-0.13.13-py3-none-any.whl", hash = "sha256:45529994741c4ab6d2388bfa5d7b725c2cf7fe9deffabdb8a6113aa5ed449ed4"}, {file = "ipdb-0.13.13.tar.gz", hash = "sha256:e3ac6018ef05126d442af680aad863006ec19d02290561ac88b8b1c0b0cfc726"}, @@ -1852,6 +1718,7 @@ version = "6.29.5" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, @@ -1881,13 +1748,15 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio [[package]] name = "ipython" -version = "8.29.0" +version = "8.34.0" description = "IPython: Productive Interactive Computing" optional = false python-versions = ">=3.10" +groups = ["main", "dev"] +markers = "python_version < \"3.11\"" files = [ - {file = "ipython-8.29.0-py3-none-any.whl", hash = "sha256:0188a1bd83267192123ccea7f4a8ed0a78910535dbaa3f37671dca76ebd429c8"}, - {file = "ipython-8.29.0.tar.gz", hash = "sha256:40b60e15b22591450eef73e40a027cf77bd652e757523eebc5bd7c7c498290eb"}, + {file = "ipython-8.34.0-py3-none-any.whl", hash = "sha256:0419883fa46e0baa182c5d50ebb8d6b49df1889fdb70750ad6d8cfe678eda6e3"}, + {file = "ipython-8.34.0.tar.gz", hash = "sha256:c31d658e754673ecc6514583e7dda8069e47136eb62458816b7d1e6625948b5a"}, ] [package.dependencies] @@ -1897,16 +1766,16 @@ exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} -prompt-toolkit = ">=3.0.41,<3.1.0" +prompt_toolkit = ">=3.0.41,<3.1.0" pygments = ">=2.4.0" -stack-data = "*" +stack_data = "*" traitlets = ">=5.13.0" -typing-extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} +typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} [package.extras] all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] black = ["black"] -doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"] +doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli ; python_version < \"3.11\"", "typing_extensions"] kernel = ["ipykernel"] matplotlib = ["matplotlib"] nbconvert = ["nbconvert"] @@ -1917,23 +1786,75 @@ qtconsole = ["qtconsole"] test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] +[[package]] +name = "ipython" +version = "9.0.2" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.11" +groups = ["main", "dev"] +markers = "python_version == \"3.11\"" +files = [ + {file = "ipython-9.0.2-py3-none-any.whl", hash = "sha256:143ef3ea6fb1e1bffb4c74b114051de653ffb7737a3f7ab1670e657ca6ae8c44"}, + {file = "ipython-9.0.2.tar.gz", hash = "sha256:ec7b479e3e5656bf4f58c652c120494df1820f4f28f522fb7ca09e213c2aab52"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +ipython-pygments-lexers = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +prompt_toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack_data = "*" +traitlets = ">=5.13.0" +typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} + +[package.extras] +all = ["ipython[doc,matplotlib,test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinx_toml (==0.0.4)", "typing_extensions"] +matplotlib = ["matplotlib"] +test = ["packaging", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + [[package]] name = "ipython-genutils" version = "0.2.0" description = "Vestigial utilities from IPython" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, ] +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +description = "Defines a variety of Pygments lexers for highlighting IPython code." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version == \"3.11\"" +files = [ + {file = "ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c"}, + {file = "ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81"}, +] + +[package.dependencies] +pygments = "*" + [[package]] name = "ipywidgets" version = "8.1.5" description = "Jupyter interactive widgets" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "ipywidgets-8.1.5-py3-none-any.whl", hash = "sha256:3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245"}, {file = "ipywidgets-8.1.5.tar.gz", hash = "sha256:870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17"}, @@ -1955,6 +1876,7 @@ version = "20.11.0" description = "Operations with ISO 8601 durations" optional = false python-versions = ">=3.7" +groups = ["dev", "voila"] files = [ {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, @@ -1969,6 +1891,7 @@ version = "2.0.1" description = "Safely pass data to untrusted environments and back." optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "itsdangerous-2.0.1-py3-none-any.whl", hash = "sha256:5174094b9637652bdb841a3029700391451bd092ba3db90600dea710ba28e97c"}, {file = "itsdangerous-2.0.1.tar.gz", hash = "sha256:9e724d68fc22902a1435351f84c3fb8623f303fffcc566a4cb952df8c572cff0"}, @@ -1976,32 +1899,34 @@ files = [ [[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" +groups = ["main", "dev"] 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 = "jinja2" -version = "3.1.4" +version = "3.1.6" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" +groups = ["main", "dev", "voila"] files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, + {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, + {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, ] [package.dependencies] @@ -2016,6 +1941,7 @@ version = "1.4.2" description = "Lightweight pipelining with Python functions" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, @@ -2023,21 +1949,26 @@ 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" +groups = ["dev", "voila"] 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 = "jsonpointer" version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = false python-versions = ">=3.7" +groups = ["dev", "voila"] files = [ {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, @@ -2049,6 +1980,7 @@ version = "4.23.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, @@ -2078,6 +2010,7 @@ version = "2024.10.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false python-versions = ">=3.9" +groups = ["dev", "voila"] files = [ {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, @@ -2092,6 +2025,7 @@ version = "1.1.1" description = "Jupyter metapackage. Install all the Jupyter components in one go." optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83"}, {file = "jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a"}, @@ -2111,6 +2045,7 @@ version = "7.4.9" description = "Jupyter protocol implementation and client libraries" optional = false python-versions = ">=3.7" +groups = ["main", "dev", "voila"] files = [ {file = "jupyter_client-7.4.9-py3-none-any.whl", hash = "sha256:214668aaea208195f4c13d28eb272ba79f945fc0cf3f11c7092c20b2ca1980e7"}, {file = "jupyter_client-7.4.9.tar.gz", hash = "sha256:52be28e04171f07aed8f20e1616a5a552ab9fee9cbbe6c1896ae170c3880d392"}, @@ -2135,6 +2070,7 @@ version = "6.6.3" description = "Jupyter terminal console" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, @@ -2159,6 +2095,7 @@ version = "5.7.2" description = "Jupyter core package. A base package on which Jupyter projects rely." optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] files = [ {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, @@ -2175,17 +2112,19 @@ test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout" [[package]] name = "jupyter-events" -version = "0.10.0" +version = "0.12.0" description = "Jupyter Event System library" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev", "voila"] files = [ - {file = "jupyter_events-0.10.0-py3-none-any.whl", hash = "sha256:4b72130875e59d57716d327ea70d3ebc3af1944d3717e5a498b8a06c6c159960"}, - {file = "jupyter_events-0.10.0.tar.gz", hash = "sha256:670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22"}, + {file = "jupyter_events-0.12.0-py3-none-any.whl", hash = "sha256:6464b2fa5ad10451c3d35fabc75eab39556ae1e2853ad0c0cc31b656731a97fb"}, + {file = "jupyter_events-0.12.0.tar.gz", hash = "sha256:fc3fce98865f6784c9cd0a56a20644fc6098f21c8c33834a8d9fe383c17e554b"}, ] [package.dependencies] jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +packaging = "*" python-json-logger = ">=2.0.4" pyyaml = ">=5.3" referencing = "*" @@ -2195,18 +2134,19 @@ traitlets = ">=5.3" [package.extras] cli = ["click", "rich"] -docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme (>=0.16)", "sphinx (>=8)", "sphinxcontrib-spelling"] test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] [[package]] name = "jupyter-server" -version = "2.14.2" +version = "2.15.0" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev", "voila"] files = [ - {file = "jupyter_server-2.14.2-py3-none-any.whl", hash = "sha256:47ff506127c2f7851a17bf4713434208fc490955d0e8632e95014a9a9afbeefd"}, - {file = "jupyter_server-2.14.2.tar.gz", hash = "sha256:66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b"}, + {file = "jupyter_server-2.15.0-py3-none-any.whl", hash = "sha256:872d989becf83517012ee669f09604aa4a28097c0bd90b2f424310156c2cdae3"}, + {file = "jupyter_server-2.15.0.tar.gz", hash = "sha256:9d446b8697b4f7337a1b7cdcac40778babdd93ba614b6d68ab1c0c918f1c4084"}, ] [package.dependencies] @@ -2215,7 +2155,7 @@ argon2-cffi = ">=21.1" jinja2 = ">=3.0.3" jupyter-client = ">=7.4.4" jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" -jupyter-events = ">=0.9.0" +jupyter-events = ">=0.11.0" jupyter-server-terminals = ">=0.4.4" nbconvert = ">=6.4.4" nbformat = ">=5.3.0" @@ -2240,6 +2180,7 @@ version = "0.9.3" description = "Jupyter Server extension providing an implementation of the File ID service." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "jupyter_server_fileid-0.9.3-py3-none-any.whl", hash = "sha256:f73c01c19f90005d3fff93607b91b4955ba4e1dccdde9bfe8026646f94053791"}, {file = "jupyter_server_fileid-0.9.3.tar.gz", hash = "sha256:521608bb87f606a8637fcbdce2f3d24a8b3cc89d2eef61751cb40e468d4e54be"}, @@ -2259,6 +2200,7 @@ version = "0.5.3" description = "A Jupyter Server Extension Providing Terminals." optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, @@ -2278,6 +2220,7 @@ version = "0.8.0" description = "A Jupyter Server Extension Providing Y Documents." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "jupyter_server_ydoc-0.8.0-py3-none-any.whl", hash = "sha256:969a3a1a77ed4e99487d60a74048dc9fa7d3b0dcd32e60885d835bbf7ba7be11"}, {file = "jupyter_server_ydoc-0.8.0.tar.gz", hash = "sha256:a6fe125091792d16c962cc3720c950c2b87fcc8c3ecf0c54c84e9a20b814526c"}, @@ -2297,6 +2240,7 @@ version = "0.2.5" description = "Document structures for collaborative editing using Ypy" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "jupyter_ydoc-0.2.5-py3-none-any.whl", hash = "sha256:5759170f112c70320a84217dd98d287699076ae65a7f88d458d57940a9f2b882"}, {file = "jupyter_ydoc-0.2.5.tar.gz", hash = "sha256:5a02ca7449f0d875f73e8cb8efdf695dddef15a8e71378b1f4eda6b7c90f5382"}, @@ -2315,6 +2259,7 @@ version = "3.6.8" description = "JupyterLab computational environment" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "jupyterlab-3.6.8-py3-none-any.whl", hash = "sha256:891284e75158998e23eb7a23ecc4caaf27b365e41adca374109b1305b9f769db"}, {file = "jupyterlab-3.6.8.tar.gz", hash = "sha256:a2477383e23f20009188bd9dac7e6e38dbc54307bc36d716bea6ced450647c97"}, @@ -2344,6 +2289,7 @@ version = "0.3.0" description = "Pygments theme using JupyterLab CSS variables" optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, @@ -2355,6 +2301,7 @@ version = "2.27.3" description = "A set of server components for JupyterLab and JupyterLab like applications." optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, @@ -2380,6 +2327,7 @@ version = "3.0.13" description = "Jupyter interactive widgets for JupyterLab" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "jupyterlab_widgets-3.0.13-py3-none-any.whl", hash = "sha256:e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54"}, {file = "jupyterlab_widgets-3.0.13.tar.gz", hash = "sha256:a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed"}, @@ -2391,6 +2339,7 @@ version = "0.2.1" description = "Static image export for web-based visualization libraries with zero dependencies" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "kaleido-0.2.1-py2.py3-none-macosx_10_11_x86_64.whl", hash = "sha256:ca6f73e7ff00aaebf2843f73f1d3bacde1930ef5041093fe76b83a15785049a7"}, {file = "kaleido-0.2.1-py2.py3-none-macosx_11_0_arm64.whl", hash = "sha256:bb9a5d1f710357d5d432ee240ef6658a6d124c3e610935817b4b42da9c787c05"}, @@ -2402,125 +2351,92 @@ files = [ [[package]] name = "kiwisolver" -version = "1.4.7" +version = "1.4.8" description = "A fast implementation of the Cassowary constraint solver" optional = false -python-versions = ">=3.8" -files = [ - {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, - {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, - {file = "kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3"}, - {file = "kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc"}, - {file = "kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c"}, - {file = "kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a"}, - {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"}, - {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"}, - {file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"}, - {file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"}, - {file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"}, - {file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"}, - {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2"}, - {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a"}, - {file = "kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520"}, - {file = "kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b"}, - {file = "kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb"}, - {file = "kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a"}, - {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e"}, - {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6"}, - {file = "kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee"}, - {file = "kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07"}, - {file = "kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76"}, - {file = "kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650"}, - {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5d5abf8f8ec1f4e22882273c423e16cae834c36856cac348cfbfa68e01c40f3a"}, - {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:aeb3531b196ef6f11776c21674dba836aeea9d5bd1cf630f869e3d90b16cfade"}, - {file = "kiwisolver-1.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7d755065e4e866a8086c9bdada157133ff466476a2ad7861828e17b6026e22c"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08471d4d86cbaec61f86b217dd938a83d85e03785f51121e791a6e6689a3be95"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bbfcb7165ce3d54a3dfbe731e470f65739c4c1f85bb1018ee912bae139e263b"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d34eb8494bea691a1a450141ebb5385e4b69d38bb8403b5146ad279f4b30fa3"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9242795d174daa40105c1d86aba618e8eab7bf96ba8c3ee614da8302a9f95503"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a0f64a48bb81af7450e641e3fe0b0394d7381e342805479178b3d335d60ca7cf"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e045731a5416357638d1700927529e2b8ab304811671f665b225f8bf8d8f933"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4322872d5772cae7369f8351da1edf255a604ea7087fe295411397d0cfd9655e"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e1631290ee9271dffe3062d2634c3ecac02c83890ada077d225e081aca8aab89"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:edcfc407e4eb17e037bca59be0e85a2031a2ac87e4fed26d3e9df88b4165f92d"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4d05d81ecb47d11e7f8932bd8b61b720bf0b41199358f3f5e36d38e28f0532c5"}, - {file = "kiwisolver-1.4.7-cp38-cp38-win32.whl", hash = "sha256:b38ac83d5f04b15e515fd86f312479d950d05ce2368d5413d46c088dda7de90a"}, - {file = "kiwisolver-1.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:d83db7cde68459fc803052a55ace60bea2bae361fc3b7a6d5da07e11954e4b09"}, - {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9362ecfca44c863569d3d3c033dbe8ba452ff8eed6f6b5806382741a1334bd"}, - {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8df2eb9b2bac43ef8b082e06f750350fbbaf2887534a5be97f6cf07b19d9583"}, - {file = "kiwisolver-1.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f32d6edbc638cde7652bd690c3e728b25332acbadd7cad670cc4a02558d9c417"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2e6c39bd7b9372b0be21456caab138e8e69cc0fc1190a9dfa92bd45a1e6e904"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dda56c24d869b1193fcc763f1284b9126550eaf84b88bbc7256e15028f19188a"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79849239c39b5e1fd906556c474d9b0439ea6792b637511f3fe3a41158d89ca8"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e3bc157fed2a4c02ec468de4ecd12a6e22818d4f09cde2c31ee3226ffbefab2"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3da53da805b71e41053dc670f9a820d1157aae77b6b944e08024d17bcd51ef88"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8705f17dfeb43139a692298cb6637ee2e59c0194538153e83e9ee0c75c2eddde"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:82a5c2f4b87c26bb1a0ef3d16b5c4753434633b83d365cc0ddf2770c93829e3c"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce8be0466f4c0d585cdb6c1e2ed07232221df101a4c6f28821d2aa754ca2d9e2"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:409afdfe1e2e90e6ee7fc896f3df9a7fec8e793e58bfa0d052c8a82f99c37abb"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5b9c3f4ee0b9a439d2415012bd1b1cc2df59e4d6a9939f4d669241d30b414327"}, - {file = "kiwisolver-1.4.7-cp39-cp39-win32.whl", hash = "sha256:a79ae34384df2b615eefca647a2873842ac3b596418032bef9a7283675962644"}, - {file = "kiwisolver-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:cf0438b42121a66a3a667de17e779330fc0f20b0d97d59d2f2121e182b0505e4"}, - {file = "kiwisolver-1.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:764202cc7e70f767dab49e8df52c7455e8de0df5d858fa801a11aa0d882ccf3f"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bfa1acfa0c54932d5607e19a2c24646fb4c1ae2694437789129cf099789a3b00"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:eee3ea935c3d227d49b4eb85660ff631556841f6e567f0f7bda972df6c2c9935"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f3160309af4396e0ed04db259c3ccbfdc3621b5559b5453075e5de555e1f3a1b"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a17f6a29cf8935e587cc8a4dbfc8368c55edc645283db0ce9801016f83526c2d"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10849fb2c1ecbfae45a693c070e0320a91b35dd4bcf58172c023b994283a124d"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ac542bf38a8a4be2dc6b15248d36315ccc65f0743f7b1a76688ffb6b5129a5c2"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b01aac285f91ca889c800042c35ad3b239e704b150cfd3382adfc9dcc780e39"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48be928f59a1f5c8207154f935334d374e79f2b5d212826307d072595ad76a2e"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f37cfe618a117e50d8c240555331160d73d0411422b59b5ee217843d7b693608"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599b5c873c63a1f6ed7eead644a8a380cfbdf5db91dcb6f85707aaab213b1674"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801fa7802e5cfabe3ab0c81a34c323a319b097dfb5004be950482d882f3d7225"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0c6c43471bc764fad4bc99c5c2d6d16a676b1abf844ca7c8702bdae92df01ee0"}, - {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, +python-versions = ">=3.10" +groups = ["main", "dev"] +files = [ + {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88c6f252f6816a73b1f8c904f7bbe02fd67c09a69f7cb8a0eecdbf5ce78e63db"}, + {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72941acb7b67138f35b879bbe85be0f6c6a70cab78fe3ef6db9c024d9223e5b"}, + {file = "kiwisolver-1.4.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce2cf1e5688edcb727fdf7cd1bbd0b6416758996826a8be1d958f91880d0809d"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c8bf637892dc6e6aad2bc6d4d69d08764166e5e3f69d469e55427b6ac001b19d"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:034d2c891f76bd3edbdb3ea11140d8510dca675443da7304205a2eaa45d8334c"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47b28d1dfe0793d5e96bce90835e17edf9a499b53969b03c6c47ea5985844c3"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb158fe28ca0c29f2260cca8c43005329ad58452c36f0edf298204de32a9a3ed"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5536185fce131780ebd809f8e623bf4030ce1b161353166c49a3c74c287897f"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:369b75d40abedc1da2c1f4de13f3482cb99e3237b38726710f4a793432b1c5ff"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:641f2ddf9358c80faa22e22eb4c9f54bd3f0e442e038728f500e3b978d00aa7d"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d561d2d8883e0819445cfe58d7ddd673e4015c3c57261d7bdcd3710d0d14005c"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1732e065704b47c9afca7ffa272f845300a4eb959276bf6970dc07265e73b605"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bcb1ebc3547619c3b58a39e2448af089ea2ef44b37988caf432447374941574e"}, + {file = "kiwisolver-1.4.8-cp310-cp310-win_amd64.whl", hash = "sha256:89c107041f7b27844179ea9c85d6da275aa55ecf28413e87624d033cf1f6b751"}, + {file = "kiwisolver-1.4.8-cp310-cp310-win_arm64.whl", hash = "sha256:b5773efa2be9eb9fcf5415ea3ab70fc785d598729fd6057bea38d539ead28271"}, + {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a4d3601908c560bdf880f07d94f31d734afd1bb71e96585cace0e38ef44c6d84"}, + {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856b269c4d28a5c0d5e6c1955ec36ebfd1651ac00e1ce0afa3e28da95293b561"}, + {file = "kiwisolver-1.4.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c2b9a96e0f326205af81a15718a9073328df1173a2619a68553decb7097fd5d7"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5020c83e8553f770cb3b5fc13faac40f17e0b205bd237aebd21d53d733adb03"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dace81d28c787956bfbfbbfd72fdcef014f37d9b48830829e488fdb32b49d954"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11e1022b524bd48ae56c9b4f9296bce77e15a2e42a502cceba602f804b32bb79"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b9b4d2892fefc886f30301cdd80debd8bb01ecdf165a449eb6e78f79f0fabd6"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a96c0e790ee875d65e340ab383700e2b4891677b7fcd30a699146f9384a2bb0"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23454ff084b07ac54ca8be535f4174170c1094a4cff78fbae4f73a4bcc0d4dab"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:87b287251ad6488e95b4f0b4a79a6d04d3ea35fde6340eb38fbd1ca9cd35bbbc"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b21dbe165081142b1232a240fc6383fd32cdd877ca6cc89eab93e5f5883e1c25"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:768cade2c2df13db52475bd28d3a3fac8c9eff04b0e9e2fda0f3760f20b3f7fc"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d47cfb2650f0e103d4bf68b0b5804c68da97272c84bb12850d877a95c056bd67"}, + {file = "kiwisolver-1.4.8-cp311-cp311-win_amd64.whl", hash = "sha256:ed33ca2002a779a2e20eeb06aea7721b6e47f2d4b8a8ece979d8ba9e2a167e34"}, + {file = "kiwisolver-1.4.8-cp311-cp311-win_arm64.whl", hash = "sha256:16523b40aab60426ffdebe33ac374457cf62863e330a90a0383639ce14bf44b2"}, + {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6af5e8815fd02997cb6ad9bbed0ee1e60014438ee1a5c2444c96f87b8843502"}, + {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bade438f86e21d91e0cf5dd7c0ed00cda0f77c8c1616bd83f9fc157fa6760d31"}, + {file = "kiwisolver-1.4.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b83dc6769ddbc57613280118fb4ce3cd08899cc3369f7d0e0fab518a7cf37fdb"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111793b232842991be367ed828076b03d96202c19221b5ebab421ce8bcad016f"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:257af1622860e51b1a9d0ce387bf5c2c4f36a90594cb9514f55b074bcc787cfc"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b5637c3f316cab1ec1c9a12b8c5f4750a4c4b71af9157645bf32830e39c03a"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:782bb86f245ec18009890e7cb8d13a5ef54dcf2ebe18ed65f795e635a96a1c6a"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc978a80a0db3a66d25767b03688f1147a69e6237175c0f4ffffaaedf744055a"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:36dbbfd34838500a31f52c9786990d00150860e46cd5041386f217101350f0d3"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eaa973f1e05131de5ff3569bbba7f5fd07ea0595d3870ed4a526d486fe57fa1b"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a66f60f8d0c87ab7f59b6fb80e642ebb29fec354a4dfad687ca4092ae69d04f4"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858416b7fb777a53f0c59ca08190ce24e9abbd3cffa18886a5781b8e3e26f65d"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:085940635c62697391baafaaeabdf3dd7a6c3643577dde337f4d66eba021b2b8"}, + {file = "kiwisolver-1.4.8-cp312-cp312-win_amd64.whl", hash = "sha256:01c3d31902c7db5fb6182832713d3b4122ad9317c2c5877d0539227d96bb2e50"}, + {file = "kiwisolver-1.4.8-cp312-cp312-win_arm64.whl", hash = "sha256:a3c44cb68861de93f0c4a8175fbaa691f0aa22550c331fefef02b618a9dcb476"}, + {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1c8ceb754339793c24aee1c9fb2485b5b1f5bb1c2c214ff13368431e51fc9a09"}, + {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a62808ac74b5e55a04a408cda6156f986cefbcf0ada13572696b507cc92fa1"}, + {file = "kiwisolver-1.4.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68269e60ee4929893aad82666821aaacbd455284124817af45c11e50a4b42e3c"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34d142fba9c464bc3bbfeff15c96eab0e7310343d6aefb62a79d51421fcc5f1b"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc373e0eef45b59197de815b1b28ef89ae3955e7722cc9710fb91cd77b7f47"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77e6f57a20b9bd4e1e2cedda4d0b986ebd0216236f0106e55c28aea3d3d69b16"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08e77738ed7538f036cd1170cbed942ef749137b1311fa2bbe2a7fda2f6bf3cc"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5ce1e481a74b44dd5e92ff03ea0cb371ae7a0268318e202be06c8f04f4f1246"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc2ace710ba7c1dfd1a3b42530b62b9ceed115f19a1656adefce7b1782a37794"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3452046c37c7692bd52b0e752b87954ef86ee2224e624ef7ce6cb21e8c41cc1b"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e9a60b50fe8b2ec6f448fe8d81b07e40141bfced7f896309df271a0b92f80f3"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:918139571133f366e8362fa4a297aeba86c7816b7ecf0bc79168080e2bd79957"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e063ef9f89885a1d68dd8b2e18f5ead48653176d10a0e324e3b0030e3a69adeb"}, + {file = "kiwisolver-1.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:a17b7c4f5b2c51bb68ed379defd608a03954a1845dfed7cc0117f1cc8a9b7fd2"}, + {file = "kiwisolver-1.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:3cd3bc628b25f74aedc6d374d5babf0166a92ff1317f46267f12d2ed54bc1d30"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370fd2df41660ed4e26b8c9d6bbcad668fbe2560462cba151a721d49e5b6628c"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:84a2f830d42707de1d191b9490ac186bf7997a9495d4e9072210a1296345f7dc"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7a3ad337add5148cf51ce0b55642dc551c0b9d6248458a757f98796ca7348712"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7506488470f41169b86d8c9aeff587293f530a23a23a49d6bc64dab66bedc71e"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f0121b07b356a22fb0414cec4666bbe36fd6d0d759db3d37228f496ed67c880"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6d6bd87df62c27d4185de7c511c6248040afae67028a8a22012b010bc7ad062"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291331973c64bb9cce50bbe871fb2e675c4331dab4f31abe89f175ad7679a4d7"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:893f5525bb92d3d735878ec00f781b2de998333659507d29ea4466208df37bed"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b47a465040146981dc9db8647981b8cb96366fbc8d452b031e4f8fdffec3f26d"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:99cea8b9dd34ff80c521aef46a1dddb0dcc0283cf18bde6d756f1e6f31772165"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:151dffc4865e5fe6dafce5480fab84f950d14566c480c08a53c663a0020504b6"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:577facaa411c10421314598b50413aa1ebcf5126f704f1e5d72d7e4e9f020d90"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:be4816dc51c8a471749d664161b434912eee82f2ea66bd7628bd14583a833e85"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e7a019419b7b510f0f7c9dceff8c5eae2392037eae483a7f9162625233802b0a"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:286b18e86682fd2217a48fc6be6b0f20c1d0ed10958d8dc53453ad58d7be0bf8"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4191ee8dfd0be1c3666ccbac178c5a05d5f8d689bbe3fc92f3c4abec817f8fe0"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cd2785b9391f2873ad46088ed7599a6a71e762e1ea33e87514b1a441ed1da1c"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c07b29089b7ba090b6f1a669f1411f27221c3662b3a1b7010e67b59bb5a6f10b"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:65ea09a5a3faadd59c2ce96dc7bf0f364986a315949dc6374f04396b0d60e09b"}, + {file = "kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e"}, ] [[package]] @@ -2529,6 +2445,7 @@ version = "6.5" description = "Benchmark your code" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "lab-6.5-py2.py3-none-any.whl", hash = "sha256:dd5a9f41a2ff4af0102e8457414fdc887f7d5a9c492d5118516b37b742366f64"}, {file = "lab-6.5.tar.gz", hash = "sha256:837da170a9b2a0ef2a81220c4e262cc8d03b20fdeaa7fcf5e64e01fbd8f4def3"}, @@ -2545,6 +2462,7 @@ version = "0.0.39" description = "Store aggregates of french data." optional = false python-versions = "<4.0,>=3.10" +groups = ["main"] files = [ {file = "leximpact_aggregates-0.0.39-py3-none-any.whl", hash = "sha256:f460acfde00d8beca9969d1dbfec25ce6242566f3bdef33ce259c5c30994b900"}, {file = "leximpact_aggregates-0.0.39.tar.gz", hash = "sha256:13e7e69e37d14765c0b21dba38fba2a683cf7d8d97931315479e73389c22c00b"}, @@ -2565,6 +2483,7 @@ version = "0.1.1" description = "Python libraries for LexImpact projects" optional = false python-versions = ">=3.9,<4.0" +groups = ["main"] files = [ {file = "leximpact_common_python_libraries-0.1.1-py3-none-any.whl", hash = "sha256:ccd36f11d96ea3bef7162430e3e31bde6cb1eb570fd7ee0847bc80b6199a5686"}, {file = "leximpact_common_python_libraries-0.1.1.tar.gz", hash = "sha256:9d5657e340c7244d63a68308a017d159660ac5f5fc3632aee1be58f2f7a08549"}, @@ -2579,10 +2498,11 @@ cache = ["redis (>=3.5.3,<4.0.0)"] [[package]] name = "leximpact-survey-scenario" -version = "1.7.2" +version = "1.7.4" description = "OpenFisca Survey Scenario for LexImpact" optional = false python-versions = "^3.9" +groups = ["main"] files = [] develop = false @@ -2600,65 +2520,87 @@ france-reforms = ["openfisca-france-reforms @ git+https://git.leximpact.dev/lexi [package.source] type = "git" url = "https://git.leximpact.dev/leximpact/simulateur-socio-fiscal/budget/leximpact-survey-scenario.git" -reference = "18-fix_integration_pote_2022" -resolved_reference = "8c12a2dd689bb435e81f1edaf111832c651b4791" +reference = "master" +resolved_reference = "9264c1238ff657b25aa86c20ab7f23ba8417454c" [[package]] name = "lz4" -version = "4.3.3" +version = "4.4.3" description = "LZ4 Bindings for Python" optional = false -python-versions = ">=3.8" -files = [ - {file = "lz4-4.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b891880c187e96339474af2a3b2bfb11a8e4732ff5034be919aa9029484cd201"}, - {file = "lz4-4.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:222a7e35137d7539c9c33bb53fcbb26510c5748779364014235afc62b0ec797f"}, - {file = "lz4-4.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f76176492ff082657ada0d0f10c794b6da5800249ef1692b35cf49b1e93e8ef7"}, - {file = "lz4-4.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1d18718f9d78182c6b60f568c9a9cec8a7204d7cb6fad4e511a2ef279e4cb05"}, - {file = "lz4-4.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6cdc60e21ec70266947a48839b437d46025076eb4b12c76bd47f8e5eb8a75dcc"}, - {file = "lz4-4.3.3-cp310-cp310-win32.whl", hash = "sha256:c81703b12475da73a5d66618856d04b1307e43428a7e59d98cfe5a5d608a74c6"}, - {file = "lz4-4.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:43cf03059c0f941b772c8aeb42a0813d68d7081c009542301637e5782f8a33e2"}, - {file = "lz4-4.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:30e8c20b8857adef7be045c65f47ab1e2c4fabba86a9fa9a997d7674a31ea6b6"}, - {file = "lz4-4.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2f7b1839f795315e480fb87d9bc60b186a98e3e5d17203c6e757611ef7dcef61"}, - {file = "lz4-4.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edfd858985c23523f4e5a7526ca6ee65ff930207a7ec8a8f57a01eae506aaee7"}, - {file = "lz4-4.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e9c410b11a31dbdc94c05ac3c480cb4b222460faf9231f12538d0074e56c563"}, - {file = "lz4-4.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d2507ee9c99dbddd191c86f0e0c8b724c76d26b0602db9ea23232304382e1f21"}, - {file = "lz4-4.3.3-cp311-cp311-win32.whl", hash = "sha256:f180904f33bdd1e92967923a43c22899e303906d19b2cf8bb547db6653ea6e7d"}, - {file = "lz4-4.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:b14d948e6dce389f9a7afc666d60dd1e35fa2138a8ec5306d30cd2e30d36b40c"}, - {file = "lz4-4.3.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e36cd7b9d4d920d3bfc2369840da506fa68258f7bb176b8743189793c055e43d"}, - {file = "lz4-4.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:31ea4be9d0059c00b2572d700bf2c1bc82f241f2c3282034a759c9a4d6ca4dc2"}, - {file = "lz4-4.3.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33c9a6fd20767ccaf70649982f8f3eeb0884035c150c0b818ea660152cf3c809"}, - {file = "lz4-4.3.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca8fccc15e3add173da91be8f34121578dc777711ffd98d399be35487c934bf"}, - {file = "lz4-4.3.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d84b479ddf39fe3ea05387f10b779155fc0990125f4fb35d636114e1c63a2e"}, - {file = "lz4-4.3.3-cp312-cp312-win32.whl", hash = "sha256:337cb94488a1b060ef1685187d6ad4ba8bc61d26d631d7ba909ee984ea736be1"}, - {file = "lz4-4.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:5d35533bf2cee56f38ced91f766cd0038b6abf46f438a80d50c52750088be93f"}, - {file = "lz4-4.3.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:363ab65bf31338eb364062a15f302fc0fab0a49426051429866d71c793c23394"}, - {file = "lz4-4.3.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a136e44a16fc98b1abc404fbabf7f1fada2bdab6a7e970974fb81cf55b636d0"}, - {file = "lz4-4.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abc197e4aca8b63f5ae200af03eb95fb4b5055a8f990079b5bdf042f568469dd"}, - {file = "lz4-4.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56f4fe9c6327adb97406f27a66420b22ce02d71a5c365c48d6b656b4aaeb7775"}, - {file = "lz4-4.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0e822cd7644995d9ba248cb4b67859701748a93e2ab7fc9bc18c599a52e4604"}, - {file = "lz4-4.3.3-cp38-cp38-win32.whl", hash = "sha256:24b3206de56b7a537eda3a8123c644a2b7bf111f0af53bc14bed90ce5562d1aa"}, - {file = "lz4-4.3.3-cp38-cp38-win_amd64.whl", hash = "sha256:b47839b53956e2737229d70714f1d75f33e8ac26e52c267f0197b3189ca6de24"}, - {file = "lz4-4.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6756212507405f270b66b3ff7f564618de0606395c0fe10a7ae2ffcbbe0b1fba"}, - {file = "lz4-4.3.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee9ff50557a942d187ec85462bb0960207e7ec5b19b3b48949263993771c6205"}, - {file = "lz4-4.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b901c7784caac9a1ded4555258207d9e9697e746cc8532129f150ffe1f6ba0d"}, - {file = "lz4-4.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6d9ec061b9eca86e4dcc003d93334b95d53909afd5a32c6e4f222157b50c071"}, - {file = "lz4-4.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4c7bf687303ca47d69f9f0133274958fd672efaa33fb5bcde467862d6c621f0"}, - {file = "lz4-4.3.3-cp39-cp39-win32.whl", hash = "sha256:054b4631a355606e99a42396f5db4d22046a3397ffc3269a348ec41eaebd69d2"}, - {file = "lz4-4.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:eac9af361e0d98335a02ff12fb56caeb7ea1196cf1a49dbf6f17828a131da807"}, - {file = "lz4-4.3.3.tar.gz", hash = "sha256:01fe674ef2889dbb9899d8a67361e0c4a2c833af5aeb37dd505727cf5d2a131e"}, +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "lz4-4.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1ebf23ffd36b32b980f720a81990fcfdeadacafe7498fbeff7a8e058259d4e58"}, + {file = "lz4-4.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8fe3caea61427057a9e3697c69b2403510fdccfca4483520d02b98ffae74531e"}, + {file = "lz4-4.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e86c7fbe46f6e2e9dfb5377ee690fb8987e8e8363f435886ab91012b88f08a26"}, + {file = "lz4-4.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a46f48740584eab3194fbee91c61f7fa396dbb1c5e7aa76ca08165d4e63fb40f"}, + {file = "lz4-4.4.3-cp310-cp310-win32.whl", hash = "sha256:434a1d1547a0547164866f1ccc31bbda235ac5b9087f24a84956756b52371f40"}, + {file = "lz4-4.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:0aea6f283abd6acb1883b70d7a117b913e20c770845559f9421394bc9c522b24"}, + {file = "lz4-4.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b1b98f0a4137d01b84c680813eef6198e1e00f1f28bc20ce7b5c436459a0d146"}, + {file = "lz4-4.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20e385cb8bd8321593788f11101d8c89a823a56191978e427e3c5141e129f14b"}, + {file = "lz4-4.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c9e32989df06c57f10aa09ad9b30e8a25baf1aefe850e13b0ea5de600477d6a"}, + {file = "lz4-4.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3d2d5df5476b065aae9d1ad551fdc7b17c151b84e8edd9212108946b2337c66"}, + {file = "lz4-4.4.3-cp311-cp311-win32.whl", hash = "sha256:e365850166729fa82be618f476966161d5c47ea081eafc4febfc542bc85bac5d"}, + {file = "lz4-4.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:7f5c05bd4b0909b682608c453acc31f1a9170d55f56d27cd701213e0683fc66a"}, + {file = "lz4-4.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:43461e439ef71d49bb0ee3a1719494cd952a58d205496698e0cde866f22006bc"}, + {file = "lz4-4.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ae50a175fb7b900f7aa42575f4fe99c32ca0ff57e5a8c1fd25e1243e67409db"}, + {file = "lz4-4.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38df5929ffefa9dda120ba1790a2e94fda81916c5aaa1ee652f4b1e515ebb9ed"}, + {file = "lz4-4.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b45914f25d916324531d0259072b402c5f99b67c6e9ac8cbc3d49935aeb1d97"}, + {file = "lz4-4.4.3-cp312-cp312-win32.whl", hash = "sha256:848c5b040d2cfe35097b1d65d1095d83a3f86374ce879e189533f61405d8763b"}, + {file = "lz4-4.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:b1d179bdefd9ddb8d11d7de7825e73fb957511b722a8cb484e417885c210e68c"}, + {file = "lz4-4.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:174b7ce5456671c73b81bb115defac8a584363d8b38a48ed3ad976e08eea27cd"}, + {file = "lz4-4.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ab26b4af13308b8296688b03d74c3b0c8e8ed1f6b2d1454ef97bdb589db409db"}, + {file = "lz4-4.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61e08d84e3bf8ca9f43dc6b33f8cd7ba19f49864e2c91eb2160f83b6f9a268fa"}, + {file = "lz4-4.4.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71ebdaadf546d6d393b9a21796172723724b737e84f68f36caf367d1c87a86a1"}, + {file = "lz4-4.4.3-cp313-cp313-win32.whl", hash = "sha256:1f25e1b571a8be2c3d60d46679ef2471ae565f7ba9ba8382596695413523b188"}, + {file = "lz4-4.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:da091dd8c96dbda124d766231f38619afd5c544051fb4424d2566c905957d342"}, + {file = "lz4-4.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:699d26ac579eb42c71d131f9fb7b6e1c495a14e257264206a3c3bfcc146ed9bb"}, + {file = "lz4-4.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c4be1e5d9c8ad61345730c41c9ef21bdbb022cced4df70431110888d3ad5c0fb"}, + {file = "lz4-4.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de86400c8b60c7707665e63934a82ae6792e7102c17a72e9b361a7f40d3c6049"}, + {file = "lz4-4.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe6080299a25fd7cbb1957c921cca6a884acbfcd44cc23de48079389d322e326"}, + {file = "lz4-4.4.3-cp39-cp39-win32.whl", hash = "sha256:447993c4dda0b6b0e1bd862752c855df8745f2910bea5015344f83ff3e99f305"}, + {file = "lz4-4.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:3f21e503c18157512d2e34ae4c301e44a826c7b87e1d8998981367e3c9fe0932"}, + {file = "lz4-4.4.3.tar.gz", hash = "sha256:91ed5b71f9179bf3dbfe85d92b52d4b53de2e559aa4daa3b7de18e0dd24ad77d"}, ] [package.extras] -docs = ["sphinx (>=1.6.0)", "sphinx-bootstrap-theme"] +docs = ["sphinx (>=1.6.0)", "sphinx_bootstrap_theme"] flake8 = ["flake8"] tests = ["psutil", "pytest (!=3.3.0)", "pytest-cov"] +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + [[package]] name = "markupsafe" version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" +groups = ["main", "dev", "voila"] files = [ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, @@ -2725,13 +2667,14 @@ files = [ [[package]] name = "marshmallow" -version = "3.23.1" +version = "3.26.1" description = "A lightweight library for converting complex datatypes to and from native Python datatypes." optional = false python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "marshmallow-3.23.1-py3-none-any.whl", hash = "sha256:fece2eb2c941180ea1b7fcbd4a83c51bfdd50093fdd3ad2585ee5e1df2508491"}, - {file = "marshmallow-3.23.1.tar.gz", hash = "sha256:3a8dfda6edd8dcdbf216c0ede1d1e78d230a6dc9c5a088f58c4083b974a0d468"}, + {file = "marshmallow-3.26.1-py3-none-any.whl", hash = "sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c"}, + {file = "marshmallow-3.26.1.tar.gz", hash = "sha256:e6d8affb6cb61d39d26402096dc0aee12d5a26d490a121f118d2e81dc0719dc6"}, ] [package.dependencies] @@ -2739,70 +2682,51 @@ packaging = ">=17.0" [package.extras] dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] -docs = ["alabaster (==1.0.0)", "autodocsumm (==0.2.14)", "sphinx (==8.1.3)", "sphinx-issues (==5.0.0)", "sphinx-version-warning (==1.1.2)"] +docs = ["autodocsumm (==0.2.14)", "furo (==2024.8.6)", "sphinx (==8.1.3)", "sphinx-copybutton (==0.5.2)", "sphinx-issues (==5.0.0)", "sphinxext-opengraph (==0.9.1)"] tests = ["pytest", "simplejson"] -[[package]] -name = "marshmallow-enum" -version = "1.5.1" -description = "Enum field for Marshmallow" -optional = false -python-versions = "*" -files = [ - {file = "marshmallow-enum-1.5.1.tar.gz", hash = "sha256:38e697e11f45a8e64b4a1e664000897c659b60aa57bfa18d44e226a9920b6e58"}, - {file = "marshmallow_enum-1.5.1-py2.py3-none-any.whl", hash = "sha256:57161ab3dbfde4f57adeb12090f39592e992b9c86d206d02f6bd03ebec60f072"}, -] - -[package.dependencies] -marshmallow = ">=2.0.0" - [[package]] name = "matplotlib" -version = "3.9.2" +version = "3.10.1" description = "Python plotting package" optional = false -python-versions = ">=3.9" -files = [ - {file = "matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb"}, - {file = "matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4"}, - {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64"}, - {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66"}, - {file = "matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a"}, - {file = "matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae"}, - {file = "matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772"}, - {file = "matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41"}, - {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f"}, - {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447"}, - {file = "matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e"}, - {file = "matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7"}, - {file = "matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9"}, - {file = "matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d"}, - {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7"}, - {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c"}, - {file = "matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e"}, - {file = "matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3"}, - {file = "matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9"}, - {file = "matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa"}, - {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b"}, - {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413"}, - {file = "matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b"}, - {file = "matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49"}, - {file = "matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03"}, - {file = "matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30"}, - {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51"}, - {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c"}, - {file = "matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e"}, - {file = "matplotlib-3.9.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cef2a73d06601437be399908cf13aee74e86932a5ccc6ccdf173408ebc5f6bb2"}, - {file = "matplotlib-3.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e0830e188029c14e891fadd99702fd90d317df294c3298aad682739c5533721a"}, - {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ba9c1299c920964e8d3857ba27173b4dbb51ca4bab47ffc2c2ba0eb5e2cbc5"}, - {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd93b91ab47a3616b4d3c42b52f8363b88ca021e340804c6ab2536344fad9ca"}, - {file = "matplotlib-3.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6d1ce5ed2aefcdce11904fc5bbea7d9c21fff3d5f543841edf3dea84451a09ea"}, - {file = "matplotlib-3.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:b2696efdc08648536efd4e1601b5fd491fd47f4db97a5fbfd175549a7365c1b2"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d52a3b618cb1cbb769ce2ee1dcdb333c3ab6e823944e9a2d36e37253815f9556"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:039082812cacd6c6bec8e17a9c1e6baca230d4116d522e81e1f63a74d01d2e21"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6758baae2ed64f2331d4fd19be38b7b4eae3ecec210049a26b6a4f3ae1c85dcc"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:050598c2b29e0b9832cde72bcf97627bf00262adbc4a54e2b856426bb2ef0697"}, - {file = "matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92"}, +python-versions = ">=3.10" +groups = ["main", "dev"] +files = [ + {file = "matplotlib-3.10.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ff2ae14910be903f4a24afdbb6d7d3a6c44da210fc7d42790b87aeac92238a16"}, + {file = "matplotlib-3.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0721a3fd3d5756ed593220a8b86808a36c5031fce489adb5b31ee6dbb47dd5b2"}, + {file = "matplotlib-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0673b4b8f131890eb3a1ad058d6e065fb3c6e71f160089b65f8515373394698"}, + {file = "matplotlib-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e875b95ac59a7908978fe307ecdbdd9a26af7fa0f33f474a27fcf8c99f64a19"}, + {file = "matplotlib-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2589659ea30726284c6c91037216f64a506a9822f8e50592d48ac16a2f29e044"}, + {file = "matplotlib-3.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a97ff127f295817bc34517255c9db6e71de8eddaab7f837b7d341dee9f2f587f"}, + {file = "matplotlib-3.10.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:057206ff2d6ab82ff3e94ebd94463d084760ca682ed5f150817b859372ec4401"}, + {file = "matplotlib-3.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a144867dd6bf8ba8cb5fc81a158b645037e11b3e5cf8a50bd5f9917cb863adfe"}, + {file = "matplotlib-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56c5d9fcd9879aa8040f196a235e2dcbdf7dd03ab5b07c0696f80bc6cf04bedd"}, + {file = "matplotlib-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f69dc9713e4ad2fb21a1c30e37bd445d496524257dfda40ff4a8efb3604ab5c"}, + {file = "matplotlib-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c59af3e8aca75d7744b68e8e78a669e91ccbcf1ac35d0102a7b1b46883f1dd7"}, + {file = "matplotlib-3.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:11b65088c6f3dae784bc72e8d039a2580186285f87448babb9ddb2ad0082993a"}, + {file = "matplotlib-3.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:66e907a06e68cb6cfd652c193311d61a12b54f56809cafbed9736ce5ad92f107"}, + {file = "matplotlib-3.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b4bb156abb8fa5e5b2b460196f7db7264fc6d62678c03457979e7d5254b7be"}, + {file = "matplotlib-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1985ad3d97f51307a2cbfc801a930f120def19ba22864182dacef55277102ba6"}, + {file = "matplotlib-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c96f2c2f825d1257e437a1482c5a2cf4fee15db4261bd6fc0750f81ba2b4ba3d"}, + {file = "matplotlib-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35e87384ee9e488d8dd5a2dd7baf471178d38b90618d8ea147aced4ab59c9bea"}, + {file = "matplotlib-3.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:cfd414bce89cc78a7e1d25202e979b3f1af799e416010a20ab2b5ebb3a02425c"}, + {file = "matplotlib-3.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c42eee41e1b60fd83ee3292ed83a97a5f2a8239b10c26715d8a6172226988d7b"}, + {file = "matplotlib-3.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4f0647b17b667ae745c13721602b540f7aadb2a32c5b96e924cd4fea5dcb90f1"}, + {file = "matplotlib-3.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa3854b5f9473564ef40a41bc922be978fab217776e9ae1545c9b3a5cf2092a3"}, + {file = "matplotlib-3.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e496c01441be4c7d5f96d4e40f7fca06e20dcb40e44c8daa2e740e1757ad9e6"}, + {file = "matplotlib-3.10.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d45d3f5245be5b469843450617dcad9af75ca50568acf59997bed9311131a0b"}, + {file = "matplotlib-3.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:8e8e25b1209161d20dfe93037c8a7f7ca796ec9aa326e6e4588d8c4a5dd1e473"}, + {file = "matplotlib-3.10.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:19b06241ad89c3ae9469e07d77efa87041eac65d78df4fcf9cac318028009b01"}, + {file = "matplotlib-3.10.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01e63101ebb3014e6e9f80d9cf9ee361a8599ddca2c3e166c563628b39305dbb"}, + {file = "matplotlib-3.10.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f06bad951eea6422ac4e8bdebcf3a70c59ea0a03338c5d2b109f57b64eb3972"}, + {file = "matplotlib-3.10.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3dfb036f34873b46978f55e240cff7a239f6c4409eac62d8145bad3fc6ba5a3"}, + {file = "matplotlib-3.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dc6ab14a7ab3b4d813b88ba957fc05c79493a037f54e246162033591e770de6f"}, + {file = "matplotlib-3.10.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bc411ebd5889a78dabbc457b3fa153203e22248bfa6eedc6797be5df0164dbf9"}, + {file = "matplotlib-3.10.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:648406f1899f9a818cef8c0231b44dcfc4ff36f167101c3fd1c9151f24220fdc"}, + {file = "matplotlib-3.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:02582304e352f40520727984a5a18f37e8187861f954fea9be7ef06569cf85b4"}, + {file = "matplotlib-3.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3809916157ba871bcdd33d3493acd7fe3037db5daa917ca6e77975a94cef779"}, + {file = "matplotlib-3.10.1.tar.gz", hash = "sha256:e8d2d0e3881b129268585bf4765ad3ee73a4591d77b9a18c214ac7e3a79fb2ba"}, ] [package.dependencies] @@ -2817,7 +2741,7 @@ pyparsing = ">=2.3.1" python-dateutil = ">=2.7" [package.extras] -dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] +dev = ["meson-python (>=0.13.1,<0.17.0)", "pybind11 (>=2.13.2,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"] [[package]] name = "matplotlib-inline" @@ -2825,6 +2749,7 @@ version = "0.1.7" description = "Inline Matplotlib backend for Jupyter" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, @@ -2839,17 +2764,31 @@ version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + [[package]] name = "missingno" version = "0.5.2" description = "Missing data visualization module for Python." optional = false python-versions = "*" +groups = ["main"] files = [ {file = "missingno-0.5.2-py3-none-any.whl", hash = "sha256:55782621ce09ba0f0a1d08e5bd6d6fe1946469fb03951fadf7d209911ca5b072"}, {file = "missingno-0.5.2.tar.gz", hash = "sha256:4a4baa9ca9f9e4e0d9402455df26b656632e94b99e87fa64c0cdbbbc722837ac"}, @@ -2866,21 +2805,26 @@ tests = ["pytest", "pytest-mpl"] [[package]] name = "mistune" -version = "3.0.2" +version = "3.1.3" description = "A sane and fast Markdown parser with useful plugins and renderers" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ - {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, - {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, + {file = "mistune-3.1.3-py3-none-any.whl", hash = "sha256:1a32314113cff28aa6432e99e522677c8587fd83e3d51c29b82a52409c842bd9"}, + {file = "mistune-3.1.3.tar.gz", hash = "sha256:a7035c21782b2becb6be62f8f25d3df81ccb4d6fa477a6525b15af06539f02a0"}, ] +[package.dependencies] +typing-extensions = {version = "*", markers = "python_version < \"3.11\""} + [[package]] name = "msgpack" version = "1.1.0" description = "MessagePack serializer" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, @@ -2948,113 +2892,13 @@ files = [ {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, ] -[[package]] -name = "multidict" -version = "6.1.0" -description = "multidict implementation" -optional = false -python-versions = ">=3.8" -files = [ - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, - {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, - {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, - {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, - {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, - {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, - {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, - {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, - {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, - {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, - {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, - {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, - {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, - {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, - {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, -] - [[package]] name = "multipledispatch" version = "0.6.0" description = "Multiple dispatch" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "multipledispatch-0.6.0-py2-none-any.whl", hash = "sha256:407e6d8c5fa27075968ba07c4db3ef5f02bea4e871e959570eeb69ee39a6565b"}, {file = "multipledispatch-0.6.0-py3-none-any.whl", hash = "sha256:a55c512128fb3f7c2efd2533f2550accb93c35f1045242ef74645fc92a2c3cba"}, @@ -3070,6 +2914,7 @@ version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" +groups = ["main", "dev"] files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, @@ -3077,13 +2922,14 @@ files = [ [[package]] name = "nbclassic" -version = "1.1.0" +version = "1.2.0" description = "Jupyter Notebook as a Jupyter Server extension." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ - {file = "nbclassic-1.1.0-py3-none-any.whl", hash = "sha256:8c0fd6e36e320a18657ff44ed96c3a400f17a903a3744fc322303a515778f2ba"}, - {file = "nbclassic-1.1.0.tar.gz", hash = "sha256:77b77ba85f9e988f9bad85df345b514e9e64c7f0e822992ab1df4a78ac64fc1e"}, + {file = "nbclassic-1.2.0-py3-none-any.whl", hash = "sha256:61cc3612dae9d418d6c3577f7c6d8dad1d6a81b68e7a12585483283d5c92ec37"}, + {file = "nbclassic-1.2.0.tar.gz", hash = "sha256:736ec50483a54485971db213be9207e34e51fc144c78343625b69917423644ba"}, ] [package.dependencies] @@ -3095,7 +2941,7 @@ notebook-shim = ">=0.2.3" [package.extras] docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] json-logging = ["json-logging"] -test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-playwright", "pytest-tornasync", "requests", "requests-unixsocket", "testpath"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-playwright", "pytest-tornasync", "requests", "requests-unixsocket ; sys_platform != \"win32\"", "testpath"] [[package]] name = "nbclient" @@ -3103,6 +2949,7 @@ version = "0.7.4" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." optional = false python-versions = ">=3.7.0" +groups = ["dev", "voila"] files = [ {file = "nbclient-0.7.4-py3-none-any.whl", hash = "sha256:c817c0768c5ff0d60e468e017613e6eae27b6fa31e43f905addd2d24df60c125"}, {file = "nbclient-0.7.4.tar.gz", hash = "sha256:d447f0e5a4cfe79d462459aec1b3dc5c2e9152597262be8ee27f7d4c02566a0d"}, @@ -3121,18 +2968,19 @@ test = ["flaky", "ipykernel", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "p [[package]] name = "nbconvert" -version = "7.16.4" +version = "7.16.6" description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ - {file = "nbconvert-7.16.4-py3-none-any.whl", hash = "sha256:05873c620fe520b6322bf8a5ad562692343fe3452abda5765c7a34b7d1aa3eb3"}, - {file = "nbconvert-7.16.4.tar.gz", hash = "sha256:86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4"}, + {file = "nbconvert-7.16.6-py3-none-any.whl", hash = "sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b"}, + {file = "nbconvert-7.16.6.tar.gz", hash = "sha256:576a7e37c6480da7b8465eefa66c17844243816ce1ccc372633c6b71c3c0f582"}, ] [package.dependencies] beautifulsoup4 = "*" -bleach = "!=5.0.0" +bleach = {version = "!=5.0.0", extras = ["css"]} defusedxml = "*" jinja2 = ">=3.0" jupyter-core = ">=4.7" @@ -3144,7 +2992,6 @@ nbformat = ">=5.7" packaging = "*" pandocfilters = ">=1.4.1" pygments = ">=2.4.1" -tinycss2 = "*" traitlets = ">=5.1" [package.extras] @@ -3158,27 +3005,30 @@ webpdf = ["playwright"] [[package]] name = "nbdev" -version = "2.3.31" +version = "2.3.37" description = "Create delightful software with Jupyter Notebooks" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ - {file = "nbdev-2.3.31-py3-none-any.whl", hash = "sha256:6fe720e04f917c444289a2a97971a0dff94b50be4f4ba2e938e2bbbdf764693a"}, - {file = "nbdev-2.3.31.tar.gz", hash = "sha256:6b404e070ce56751c5be96a6a901e7f2bb608217644dfafdefbf305bce2aed7a"}, + {file = "nbdev-2.3.37-py3-none-any.whl", hash = "sha256:9b4f9373aa2ef0a706c607e1216690abc0fb1f4c8facee057b51f8b88b4e183d"}, + {file = "nbdev-2.3.37.tar.gz", hash = "sha256:e99fe9ef5b7d168a557128784c21523cfdfcd803350987a7d34790383f09c7c0"}, ] [package.dependencies] asttokens = "*" astunparse = "*" -execnb = ">=0.1.4" -fastcore = ">=1.5.27" +execnb = ">=0.1.12" +fastcore = ">=1.8.0" ghapi = ">=1.0.3" packaging = "*" +plum-dispatch = "*" PyYAML = "*" +setuptools = "*" watchdog = "*" [package.extras] -dev = ["black", "ipywidgets", "matplotlib", "nbclassic", "nbdev-numpy", "nbdev-stdlib", "pandas", "svg.py"] +dev = ["black", "ipywidgets", "llms-txt", "matplotlib", "nbclassic", "nbdev-numpy", "nbdev-stdlib", "pandas", "pysymbol_llm", "sphinx", "svg.py"] [[package]] name = "nbformat" @@ -3186,6 +3036,7 @@ version = "5.10.4" description = "The Jupyter Notebook format" optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, @@ -3203,13 +3054,14 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] [[package]] name = "nbqa" -version = "1.9.0" +version = "1.9.1" description = "Run any standard Python code quality tool on a Jupyter Notebook" optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "nbqa-1.9.0-py3-none-any.whl", hash = "sha256:89da6b55ce0b47b5e8be45c5b94404e1d861e45df36959dd34a5d15cf45141ea"}, - {file = "nbqa-1.9.0.tar.gz", hash = "sha256:48c0acd83675bd6d086efba3885e1137d9475c0da328c74f46b9acbc664fe36f"}, + {file = "nbqa-1.9.1-py3-none-any.whl", hash = "sha256:95552d2f6c2c038136252a805aa78d85018aef922586270c3a074332737282e5"}, + {file = "nbqa-1.9.1.tar.gz", hash = "sha256:a1f4bcf587c597302fed295951001fc4e1be4ce0e77e1ab1b25ac2fbe3db0cdd"}, ] [package.dependencies] @@ -3227,6 +3079,7 @@ version = "1.9.2" description = "A Python library for manipulating indices of ndarrays." optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "ndindex-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6c0bd9fb02b5ac6e3e8b70404930e1f6824ad565363bf8f0e817d6f6a3a47593"}, {file = "ndindex-1.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3502df515c225e653b55fc08e714d4ae56306ad46454759d90156530cb4e2f40"}, @@ -3290,6 +3143,7 @@ version = "1.6.0" description = "Patch asyncio to allow nested event loops" optional = false python-versions = ">=3.5" +groups = ["main", "dev", "voila"] files = [ {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, @@ -3301,6 +3155,7 @@ version = "3.4.2" description = "Python package for creating and manipulating graphs and networks" optional = false python-versions = ">=3.10" +groups = ["main"] files = [ {file = "networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f"}, {file = "networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1"}, @@ -3320,6 +3175,7 @@ version = "1.9.1" description = "Node.js virtual environment builder" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] files = [ {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, @@ -3331,6 +3187,7 @@ version = "6.5.7" description = "A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "notebook-6.5.7-py3-none-any.whl", hash = "sha256:a6afa9a4ff4d149a0771ff8b8c881a7a73b3835f9add0606696d6e9d98ac1cd0"}, {file = "notebook-6.5.7.tar.gz", hash = "sha256:04eb9011dfac634fbd4442adaf0a8c27cd26beef831fe1d19faf930c327768e4"}, @@ -3357,7 +3214,7 @@ traitlets = ">=4.2.1" [package.extras] docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] json-logging = ["json-logging"] -test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket", "selenium (==4.1.5)", "testpath"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket ; sys_platform != \"win32\"", "selenium (==4.1.5)", "testpath"] [[package]] name = "notebook-shim" @@ -3365,6 +3222,7 @@ version = "0.2.4" description = "A shim layer for notebook traits and config" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, @@ -3378,40 +3236,48 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numexpr" -version = "2.10.1" +version = "2.10.2" description = "Fast numerical expression evaluator for NumPy" optional = false python-versions = ">=3.9" -files = [ - {file = "numexpr-2.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bbd35f17f6efc00ebd4a480192af1ee30996094a0d5343b131b0e90e61e8b554"}, - {file = "numexpr-2.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fecdf4bf3c1250e56583db0a4a80382a259ba4c2e1efa13e04ed43f0938071f5"}, - {file = "numexpr-2.10.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2efa499f460124538a5b4f1bf2e77b28eb443ee244cc5573ed0f6a069ebc635"}, - {file = "numexpr-2.10.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac23a72eff10f928f23b147bdeb0f1b774e862abe332fc9bf4837e9f1bc0bbf9"}, - {file = "numexpr-2.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b28eaf45f1cc1048aad9e90e3a8ada1aef58c5f8155a85267dc781b37998c046"}, - {file = "numexpr-2.10.1-cp310-cp310-win32.whl", hash = "sha256:4f0985bd1c493b23b5aad7d81fa174798f3812efb78d14844194834c9fee38b8"}, - {file = "numexpr-2.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:44f6d12a8c44be90199bbb10d3abf467f88951f48a3d1fbbd3c219d121f39c9d"}, - {file = "numexpr-2.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3c0b0bf165b2d886eb981afa4e77873ca076f5d51c491c4d7b8fc10f17c876f"}, - {file = "numexpr-2.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56648a04679063175681195670ad53e5c8ca19668166ed13875199b5600089c7"}, - {file = "numexpr-2.10.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce04ae6efe2a9d0be1a0e114115c3ae70c68b8b8fbc615c5c55c15704b01e6a4"}, - {file = "numexpr-2.10.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:45f598182b4f5c153222e47d5163c3bee8d5ebcaee7e56dd2a5898d4d97e4473"}, - {file = "numexpr-2.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6a50370bea77ba94c3734a44781c716751354c6bfda2d369af3aed3d67d42871"}, - {file = "numexpr-2.10.1-cp311-cp311-win32.whl", hash = "sha256:fa4009d84a8e6e21790e718a80a22d57fe7f215283576ef2adc4183f7247f3c7"}, - {file = "numexpr-2.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:fcbf013bb8494e8ef1d11fa3457827c1571c6a3153982d709e5d17594999d4dd"}, - {file = "numexpr-2.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:82fc95c301b15ff4823f98989ee363a2d5555d16a7cfd3710e98ddee726eaaaa"}, - {file = "numexpr-2.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cbf79fef834f88607f977ab9867061dcd9b40ccb08bb28547c6dc6c73e560895"}, - {file = "numexpr-2.10.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:552c8d4b2e3b87cdb2abb40a781b9a61a9090a9f66ac7357fc5a0b93aff76be3"}, - {file = "numexpr-2.10.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22cc65e9121aeb3187a2b50827715b2b087ea70e8ab21416ea52662322087b43"}, - {file = "numexpr-2.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:00204e5853713b5eba5f3d0bc586a5d8d07f76011b597c8b4087592cc2ec2928"}, - {file = "numexpr-2.10.1-cp312-cp312-win32.whl", hash = "sha256:82bf04a1495ac475de4ab49fbe0a3a2710ed3fd1a00bc03847316b5d7602402d"}, - {file = "numexpr-2.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:300e577b3c006dd7a8270f1bb2e8a00ee15bf235b1650fe2a6febec2954bc2c3"}, - {file = "numexpr-2.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fb704620657a1c99d64933e8a982148d8bfb2b738a1943e107a2bfdee887ce56"}, - {file = "numexpr-2.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:368a1972c3186355160f6ee330a7eea146d8443da75a38a30083289ae251ef5a"}, - {file = "numexpr-2.10.1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ca8ae46481d0b0689ca0d00a8670bc464ce375e349599fe674a6d4957e7b7eb6"}, - {file = "numexpr-2.10.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a4db4456e0779d5e024220b7b6a7477ac900679bfa74836b06fa526aaed4e3c"}, - {file = "numexpr-2.10.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:926dd426c68f1d927412a2ad843831c1eb9a95871e7bb0bd8b20d547c12238d2"}, - {file = "numexpr-2.10.1-cp39-cp39-win32.whl", hash = "sha256:37598cca41f8f50dc889b0b72be1616a288758c16ab7d48c9ac8719e1a39d835"}, - {file = "numexpr-2.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:78b14c19c403df7498954468385768c86b0d2c52ad03dffb74e45d44ae5a9c77"}, - {file = "numexpr-2.10.1.tar.gz", hash = "sha256:9bba99d354a65f1a008ab8b87f07d84404c668e66bab624df5b6b5373403cf81"}, +groups = ["main"] +files = [ + {file = "numexpr-2.10.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5b0e82d2109c1d9e63fcd5ea177d80a11b881157ab61178ddbdebd4c561ea46"}, + {file = "numexpr-2.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3fc2b8035a0c2cdc352e58c3875cb668836018065cbf5752cb531015d9a568d8"}, + {file = "numexpr-2.10.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0db5ff5183935d1612653559c319922143e8fa3019007696571b13135f216458"}, + {file = "numexpr-2.10.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15f59655458056fdb3a621b1bb8e071581ccf7e823916c7568bb7c9a3e393025"}, + {file = "numexpr-2.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ce8cccf944339051e44a49a124a06287fe3066d0acbff33d1aa5aee10a96abb7"}, + {file = "numexpr-2.10.2-cp310-cp310-win32.whl", hash = "sha256:ba85371c9a8d03e115f4dfb6d25dfbce05387002b9bc85016af939a1da9624f0"}, + {file = "numexpr-2.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:deb64235af9eeba59fcefa67e82fa80cfc0662e1b0aa373b7118a28da124d51d"}, + {file = "numexpr-2.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6b360eb8d392483410fe6a3d5a7144afa298c9a0aa3e9fe193e89590b47dd477"}, + {file = "numexpr-2.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d9a42f5c24880350d88933c4efee91b857c378aaea7e8b86221fff569069841e"}, + {file = "numexpr-2.10.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:83fcb11988b57cc25b028a36d285287d706d1f536ebf2662ea30bd990e0de8b9"}, + {file = "numexpr-2.10.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4213a92efa9770bc28e3792134e27c7e5c7e97068bdfb8ba395baebbd12f991b"}, + {file = "numexpr-2.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebdbef5763ca057eea0c2b5698e4439d084a0505d9d6e94f4804f26e8890c45e"}, + {file = "numexpr-2.10.2-cp311-cp311-win32.whl", hash = "sha256:3bf01ec502d89944e49e9c1b5cc7c7085be8ca2eb9dd46a0eafd218afbdbd5f5"}, + {file = "numexpr-2.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:e2d0ae24b0728e4bc3f1d3f33310340d67321d36d6043f7ce26897f4f1042db0"}, + {file = "numexpr-2.10.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5323a46e75832334f1af86da1ef6ff0add00fbacdd266250be872b438bdf2be"}, + {file = "numexpr-2.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a42963bd4c62d8afa4f51e7974debfa39a048383f653544ab54f50a2f7ec6c42"}, + {file = "numexpr-2.10.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5191ba8f2975cb9703afc04ae845a929e193498c0e8bcd408ecb147b35978470"}, + {file = "numexpr-2.10.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:97298b14f0105a794bea06fd9fbc5c423bd3ff4d88cbc618860b83eb7a436ad6"}, + {file = "numexpr-2.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9d7805ccb6be2d3b0f7f6fad3707a09ac537811e8e9964f4074d28cb35543db"}, + {file = "numexpr-2.10.2-cp312-cp312-win32.whl", hash = "sha256:cb845b2d4f9f8ef0eb1c9884f2b64780a85d3b5ae4eeb26ae2b0019f489cd35e"}, + {file = "numexpr-2.10.2-cp312-cp312-win_amd64.whl", hash = "sha256:57b59cbb5dcce4edf09cd6ce0b57ff60312479930099ca8d944c2fac896a1ead"}, + {file = "numexpr-2.10.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a37d6a51ec328c561b2ca8a2bef07025642eca995b8553a5267d0018c732976d"}, + {file = "numexpr-2.10.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:81d1dde7dd6166d8ff5727bb46ab42a6b0048db0e97ceb84a121334a404a800f"}, + {file = "numexpr-2.10.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5b3f814437d5a10797f8d89d2037cca2c9d9fa578520fc911f894edafed6ea3e"}, + {file = "numexpr-2.10.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9309f2e43fe6e4560699ef5c27d7a848b3ff38549b6b57194207cf0e88900527"}, + {file = "numexpr-2.10.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ebb73b93f5c4d6994f357fa5a47a9f7a5485577e633b3c46a603cb01445bbb19"}, + {file = "numexpr-2.10.2-cp313-cp313-win32.whl", hash = "sha256:ec04c9a3c050c175348801e27c18c68d28673b7bfb865ef88ce333be523bbc01"}, + {file = "numexpr-2.10.2-cp313-cp313-win_amd64.whl", hash = "sha256:d7a3fc83c959288544db3adc70612475d8ad53a66c69198105c74036182d10dd"}, + {file = "numexpr-2.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0495f8111c3633e265248709b8b3b521bbfa646ba384909edd10e2b9a588a83a"}, + {file = "numexpr-2.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2aa05ac71bee3b1253e73173c4d7fa96a09a18970c0226f1c2c07a71ffe988dc"}, + {file = "numexpr-2.10.2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3a23c3002ab330056fbdd2785871937a6f2f2fa85d06c8d0ff74ea8418119d1"}, + {file = "numexpr-2.10.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a018a7d81326f4c73d8b5aee61794d7d8514512f43957c0db61eb2a8a86848c7"}, + {file = "numexpr-2.10.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:037859b17a0abe2b489d4c2cfdadd2bf458ec80dd83f338ea5544c7987e06b85"}, + {file = "numexpr-2.10.2-cp39-cp39-win32.whl", hash = "sha256:eb278ccda6f893a312aa0452701bb17d098b7b14eb7c9381517d509cce0a39a3"}, + {file = "numexpr-2.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:734b64c6d6a597601ce9d0ef7b666e678ec015b446f1d1412c23903c021436c3"}, + {file = "numexpr-2.10.2.tar.gz", hash = "sha256:b0aff6b48ebc99d2f54f27b5f73a58cb92fde650aeff1b397c71c8788b4fff1a"}, ] [package.dependencies] @@ -3423,6 +3289,7 @@ version = "1.26.4" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] 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"}, @@ -3464,17 +3331,18 @@ files = [ [[package]] name = "openfisca-core" -version = "43.2.2" +version = "43.3.5" description = "A versatile microsimulation free software" optional = false python-versions = "*" +groups = ["main"] files = [ - {file = "OpenFisca_Core-43.2.2-py3-none-any.whl", hash = "sha256:30804fae80e20be2879b6b3ce01d2edec0294aabe637cbf3791e1b978f963d2b"}, - {file = "openfisca_core-43.2.2.tar.gz", hash = "sha256:71df3d3923e6204f706525eceb8c53fd7a079597c926e009d0028e517a50a0a6"}, + {file = "openfisca_core-43.3.5-py3-none-any.whl", hash = "sha256:12f5e87d3ef4cff5832fe637fa87b52ac1dd27756c23d3536bc86a85ca75b735"}, + {file = "openfisca_core-43.3.5.tar.gz", hash = "sha256:dc8d1756f4eefeb7b0dc0e35c64951f0ed0a9a0a1e5e3fa7e2ebe7dfc2b2e6c0"}, ] [package.dependencies] -dpath = ">=2.1.4,<3.0" +dpath = ">=2.2.0,<3.0" Flask = {version = ">=2.2.3,<3.0", optional = true, markers = "extra == \"web-api\""} Flask-Cors = {version = ">=3.0.10,<4.0", optional = true, markers = "extra == \"web-api\""} gunicorn = {version = ">=21.0,<22.0", optional = true, markers = "extra == \"web-api\""} @@ -3486,7 +3354,7 @@ pytest = ">=8.3.3,<9.0" PyYAML = ">=6.0,<7.0" sortedcontainers = ">=2.4.0,<3.0" StrEnum = ">=0.4.8,<0.5.0" -typing-extensions = ">=4.5.0,<5.0" +typing_extensions = ">=4.5.0,<5.0" Werkzeug = {version = ">=2.2.3,<3.0", optional = true, markers = "extra == \"web-api\""} [package.extras] @@ -3496,11 +3364,12 @@ tracker = ["OpenFisca-Tracker (>=0.4.0,<0.5.0)"] web-api = ["Flask (>=2.2.3,<3.0)", "Flask-Cors (>=3.0.10,<4.0)", "Werkzeug (>=2.2.3,<3.0)", "gunicorn (>=21.0,<22.0)"] [[package]] -name = "OpenFisca-France" -version = "169.1.2" +name = "openfisca-france" +version = "169.18.4" description = "OpenFisca Rules as Code model for France." optional = false -python-versions = ">=3.9" +python-versions = ">= 3.9" +groups = ["main"] files = [] develop = false @@ -3519,21 +3388,22 @@ taxipp = ["pandas (>=1.5.3,<2.0)"] type = "git" url = "https://github.com/openfisca/openfisca-france.git" reference = "wip-leximpact" -resolved_reference = "f7e844568f7bbbbe4b7d8adbdbbb73675c83e4d4" +resolved_reference = "69c8655afbd9d47f70d1c0a0293a5bbd5cba7975" [[package]] name = "OpenFisca-France-Data" -version = "3.7.0" +version = "3.7.5" description = "OpenFisca-France-Data module to work with French survey data" optional = false python-versions = ">=3.9" +groups = ["main"] files = [] develop = false [package.dependencies] multipledispatch = ">=0.6.0,<1.0.0" OpenFisca-France = ">=169.0.0,<170.0.0" -openFisca-survey-manager = ">=2.2.0,<2.3.0" +OpenFisca-survey-manager = ">=3.0.0,<4.0.0" [package.extras] test = ["autopep8 (>=2.0.2,<3)", "bumpver (>=2022.1120)", "click (>=8.0.0,<9.0.0)", "dtale", "flake8 (>=6.0.0,<7.0.0)", "ipdb (>=0.13,<1.0)", "ipython (>=7.5.0,<8.0.0)", "mypy (>=0.670,<1.0.0)", "pypandoc", "scipy (>=1.2.1,<2.0.0)", "toolz (>=0.9.0,<1.0.0)"] @@ -3542,7 +3412,7 @@ test = ["autopep8 (>=2.0.2,<3)", "bumpver (>=2022.1120)", "click (>=8.0.0,<9.0.0 type = "git" url = "https://github.com/openfisca/openfisca-france-data.git" reference = "master" -resolved_reference = "2628f8b7b0ab7e82677c594fe968be4019deb76b" +resolved_reference = "b2c06a3fe4fc1bf45cca55235dc983b54763cd2c" [[package]] name = "OpenFisca-France-Indirect-Taxation" @@ -3550,6 +3420,7 @@ version = "0.4.dev0" description = "France specific indirect taxation model for OpenFisca -- a versatile microsimulation free software." optional = false python-versions = "*" +groups = ["main"] files = [] develop = false @@ -3574,6 +3445,7 @@ version = "1.0.304" description = "Some reforms for French OpenFisca tax-benefit system" optional = false python-versions = "^3.9" +groups = ["main"] files = [] develop = false @@ -3585,7 +3457,7 @@ openfisca-france-with-indirect-taxation = {git = "https://git.leximpact.dev/lexi type = "git" url = "https://git.leximpact.dev/leximpact/simulateur-socio-fiscal/openfisca/openfisca-france-reforms.git" reference = "HEAD" -resolved_reference = "f79e1174fc518224b7c5728da05b8006fd3c8885" +resolved_reference = "861cd19e0f61b7df1cc357d3d921a649367ef1fe" [[package]] name = "openfisca-france-with-indirect-taxation" @@ -3593,6 +3465,7 @@ version = "0.1.0" description = "Merge of OpenFisca-France & OpenFisca-France-indirect-taxation tax-benefit systems" optional = false python-versions = "^3.9" +groups = ["main"] files = [] develop = false @@ -3604,26 +3477,28 @@ openfisca-france-indirect-taxation = {git = "https://github.com/openfisca/openfi type = "git" url = "https://git.leximpact.dev/leximpact/simulateur-socio-fiscal/openfisca/openfisca-france-with-indirect-taxation.git" reference = "HEAD" -resolved_reference = "89bb6ed34c49fd33747709f9b3356a5df3f997e7" +resolved_reference = "c0dd8f5eff559df7383a592ea29e7d5bfe98fb65" [[package]] name = "openfisca-survey-manager" -version = "2.2.6" -description = "A tool for managing survey/administrative data." +version = "3.0.4" +description = "A tool for managing survey/administrative data and import them in OpenFisca" optional = false -python-versions = "*" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "OpenFisca_Survey_Manager-2.2.6-py3-none-any.whl", hash = "sha256:4f18619d182526a24721d853d23706dd7d77d12de48324fab2b3dc0f9dbe3f49"}, - {file = "openfisca_survey_manager-2.2.6.tar.gz", hash = "sha256:b573ec416d8ba7b4d081efab50e884bd2d3542a5105f20885f5a3f0dbfbb7ad4"}, + {file = "OpenFisca_Survey_Manager-3.0.4-py3-none-any.whl", hash = "sha256:56056fc2aa47f2ebcbd5dd16b67bf2f1b2d20b0141144634f79ea8a26b4a246a"}, + {file = "openfisca_survey_manager-3.0.4.tar.gz", hash = "sha256:f02dcfc92fe9b70a690f03c06a83459c128f703c2550965d2beb5637fa118b2d"}, ] [package.dependencies] chardet = ">=5.1.0,<6.0" configparser = ">=5.3.0,<8.0" humanize = ">=4.6.0,<5.0" +numpy = ">=1.24.2,<2.0" openfisca-core = ">=43.0.0,<44.0.0" pandas = ">=2.0.3,<3.0" -pyarrow = ">=13.0.0,<14.0.0" +pyarrow = ">=13.0.0,<19.0.0" pyxdg = ">=0.28,<0.29" PyYAML = ">=6.0,<7.0" tables = ">=3.8.0,<4.0" @@ -3632,9 +3507,9 @@ weightedcalcs = ">=0.1.2,<0.2.0" wquantiles = ">=0.6,<0.7" [package.extras] -casd = ["autopep8 (>=2.0.2,<3)", "flake8 (>=6.0.0,<7.0)", "pycodestyle (>=2.10.0,<3.0)", "pytest (>=7.2.2,<8.0)", "scipy (>=1.10.1,<2.0)"] -dev = ["autopep8 (>=2.0.2,<3)", "coveralls (>=3.3.1,<4.0)", "flake8 (>=6.0.0,<7.0)", "flake8-bugbear (>=23.3.12,<25.0)", "flake8-docstrings (>=1.7.0,<2.0)", "flake8-print (>=5.0.0,<6.0)", "flake8-rst-docstrings (>=0.3.0,<0.4.0)", "openfisca-country-template (>=7.1.5,<8.0.0)", "pytest (>=8.3.3,<9.0)", "pytest-cov (>=4.0.0,<5.0)", "pytest-order (>=1.1.0,<2.0)", "scipy (>=1.10.1,<2.0)"] -matching = ["feather", "rpy2 (>=3.5.10,<4.0)"] +casd = ["autopep8 (>=2.0.2,<3)", "flake8 (>=6.0.0,<8.0)", "pycodestyle (>=2.10.0,<3.0)", "pytest", "scipy (>=1.10.1,<2.0)"] +dev = ["Flake8-pyproject (>=1.2.3,<2.0.0)", "autopep8 (>=2.0.2,<3)", "coveralls (>=3.3.1,<5.0)", "flake8 (>=6.0.0,<8.0)", "flake8-bugbear (>=23.3.12,<25.0)", "flake8-docstrings (>=1.7.0,<2.0)", "flake8-print (>=5.0.0,<6.0)", "flake8-rst-docstrings (>=0.3.0,<0.4.0)", "openfisca-country-template (>=7.1.5,<8.0.0)", "pytest", "pytest-cov", "pytest-order", "scipy (>=1.10.1,<2.0)"] +matching = ["rpy2 (>=3.5.10,<4.0)"] sas = ["pyreadstat (>=1.2.1,<2.0)", "sas7bdat (>=2.2.3,<3.0)"] [[package]] @@ -3643,6 +3518,7 @@ version = "3.1.5" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2"}, {file = "openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050"}, @@ -3657,6 +3533,7 @@ version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." optional = false python-versions = ">=3.6" +groups = ["dev", "voila"] files = [ {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, @@ -3664,13 +3541,14 @@ files = [ [[package]] name = "packaging" -version = "24.1" +version = "24.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] 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]] @@ -3679,6 +3557,7 @@ version = "2.2.3" description = "Powerful data structures for data analysis, time series, and statistics" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, @@ -3728,7 +3607,6 @@ files = [ numpy = [ {version = ">=1.22.4", markers = "python_version < \"3.11\""}, {version = ">=1.23.2", markers = "python_version == \"3.11\""}, - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" @@ -3765,6 +3643,7 @@ version = "1.5.1" description = "Utilities for writing pandoc filters in python" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["dev", "voila"] files = [ {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, @@ -3776,13 +3655,13 @@ version = "2.6.0" description = "Parameterize and run Jupyter and nteract Notebooks" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "papermill-2.6.0-py3-none-any.whl", hash = "sha256:0f09da6ef709f3f14dde77cb1af052d05b14019189869affff374c9e612f2dd5"}, {file = "papermill-2.6.0.tar.gz", hash = "sha256:9fe2a91912fd578f391b4cc8d6d105e73124dcd0cde2a43c3c4a1c77ac88ea24"}, ] [package.dependencies] -aiohttp = {version = ">=3.9.0", markers = "python_version == \"3.12\""} ansicolors = "*" click = "*" entrypoints = "*" @@ -3811,6 +3690,7 @@ version = "0.8.4" description = "A Python Parser" optional = false python-versions = ">=3.6" +groups = ["main", "dev"] files = [ {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, @@ -3826,6 +3706,7 @@ version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, @@ -3833,18 +3714,18 @@ files = [ [[package]] name = "patsy" -version = "0.5.6" +version = "1.0.1" description = "A Python package for describing statistical models and for building design matrices." optional = false -python-versions = "*" +python-versions = ">=3.6" +groups = ["main"] files = [ - {file = "patsy-0.5.6-py2.py3-none-any.whl", hash = "sha256:19056886fd8fa71863fa32f0eb090267f21fb74be00f19f5c70b2e9d76c883c6"}, - {file = "patsy-0.5.6.tar.gz", hash = "sha256:95c6d47a7222535f84bff7f63d7303f2e297747a598db89cf5c67f0c0c7d2cdb"}, + {file = "patsy-1.0.1-py2.py3-none-any.whl", hash = "sha256:751fb38f9e97e62312e921a1954b81e1bb2bcda4f5eeabaf94db251ee791509c"}, + {file = "patsy-1.0.1.tar.gz", hash = "sha256:e786a9391eec818c054e359b737bbce692f051aee4c661f4141cc88fb459c0c4"}, ] [package.dependencies] numpy = ">=1.4" -six = "*" [package.extras] test = ["pytest", "pytest-cov", "scipy"] @@ -3855,6 +3736,7 @@ version = "3.0.0" description = "Python datetimes made easy" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "pendulum-3.0.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2cf9e53ef11668e07f73190c805dbdf07a1939c3298b78d5a9203a86775d1bfd"}, {file = "pendulum-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fb551b9b5e6059377889d2d878d940fd0bbb80ae4810543db18e6f77b02c5ef6"}, @@ -3946,7 +3828,7 @@ python-dateutil = ">=2.6" tzdata = ">=2020.1" [package.extras] -test = ["time-machine (>=2.6.0)"] +test = ["time-machine (>=2.6.0) ; implementation_name != \"pypy\""] [[package]] name = "pexpect" @@ -3954,6 +3836,8 @@ version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." optional = false python-versions = "*" +groups = ["main", "dev"] +markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\"" files = [ {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, @@ -3964,94 +3848,91 @@ ptyprocess = ">=0.5" [[package]] name = "pillow" -version = "11.0.0" +version = "11.1.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.9" -files = [ - {file = "pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947"}, - {file = "pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba"}, - {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086"}, - {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9"}, - {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488"}, - {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f"}, - {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb"}, - {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97"}, - {file = "pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50"}, - {file = "pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c"}, - {file = "pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1"}, - {file = "pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc"}, - {file = "pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a"}, - {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3"}, - {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5"}, - {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b"}, - {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa"}, - {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306"}, - {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9"}, - {file = "pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5"}, - {file = "pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291"}, - {file = "pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9"}, - {file = "pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923"}, - {file = "pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903"}, - {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4"}, - {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f"}, - {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9"}, - {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7"}, - {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6"}, - {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc"}, - {file = "pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6"}, - {file = "pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47"}, - {file = "pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25"}, - {file = "pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699"}, - {file = "pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38"}, - {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2"}, - {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2"}, - {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527"}, - {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa"}, - {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f"}, - {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb"}, - {file = "pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798"}, - {file = "pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de"}, - {file = "pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84"}, - {file = "pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b"}, - {file = "pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003"}, - {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2"}, - {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a"}, - {file = "pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8"}, - {file = "pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8"}, - {file = "pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904"}, - {file = "pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3"}, - {file = "pillow-11.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba"}, - {file = "pillow-11.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a"}, - {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916"}, - {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d"}, - {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7"}, - {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e"}, - {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f"}, - {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae"}, - {file = "pillow-11.0.0-cp39-cp39-win32.whl", hash = "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4"}, - {file = "pillow-11.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd"}, - {file = "pillow-11.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316"}, - {file = "pillow-11.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06"}, - {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273"}, - {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790"}, - {file = "pillow-11.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944"}, - {file = "pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739"}, +groups = ["main", "dev"] +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, ] [package.extras] docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] -tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] -typing = ["typing-extensions"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions ; python_version < \"3.10\""] xmp = ["defusedxml"] [[package]] @@ -4060,6 +3941,7 @@ version = "23.3.2" description = "The PyPA recommended tool for installing Python packages." optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "pip-23.3.2-py3-none-any.whl", hash = "sha256:5052d7889c1f9d05224cd41741acb7c5d6fa735ab34e339624a614eaaa7e7d76"}, {file = "pip-23.3.2.tar.gz", hash = "sha256:7fd9972f96db22c8077a1ee2691b172c8089b17a5652a44494a9ecb0d78f9149"}, @@ -4067,19 +3949,20 @@ files = [ [[package]] name = "platformdirs" -version = "4.3.6" +version = "4.3.7" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main", "dev", "voila"] files = [ - {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, + {file = "platformdirs-4.3.7-py3-none-any.whl", hash = "sha256:a03875334331946f13c549dbd8f4bac7a13a50a895a0eb1e8c6a8ace80d40a94"}, + {file = "platformdirs-4.3.7.tar.gz", hash = "sha256:eb437d586b6a0986388f0d6f74aa0cde27b48d0e3d66843640bfb6bdcdb6e351"}, ] [package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.14.1)"] [[package]] name = "plotly" @@ -4087,6 +3970,7 @@ version = "5.24.1" description = "An open-source, interactive data visualization library for Python" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "plotly-5.24.1-py3-none-any.whl", hash = "sha256:f67073a1e637eb0dc3e46324d9d51e2fe76e9727c892dde64ddf1e1b51f29089"}, {file = "plotly-5.24.1.tar.gz", hash = "sha256:dbc8ac8339d248a4bcc36e08a5659bacfe1b079390b8953533f4eb22169b4bae"}, @@ -4102,6 +3986,7 @@ version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, @@ -4111,15 +3996,36 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "plum-dispatch" +version = "2.5.7" +description = "Multiple dispatch in Python" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +files = [ + {file = "plum_dispatch-2.5.7-py3-none-any.whl", hash = "sha256:06471782eea0b3798c1e79dca2af2165bafcfa5eb595540b514ddd81053b1ede"}, + {file = "plum_dispatch-2.5.7.tar.gz", hash = "sha256:a7908ad5563b93f387e3817eb0412ad40cfbad04bc61d869cf7a76cd58a3895d"}, +] + +[package.dependencies] +beartype = ">=0.16.2" +rich = ">=10.0" +typing-extensions = ">=4.9.0" + +[package.extras] +dev = ["black (==23.9.0)", "build", "coveralls", "ghp-import", "ipython", "jupyter-book", "mypy", "numpy", "pre-commit", "pyright (>=1.1.331)", "pytest (>=6)", "pytest-cov", "ruff (>=0.2.1)", "sybil", "tox", "wheel"] + [[package]] name = "pre-commit" -version = "4.0.1" +version = "4.2.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ - {file = "pre_commit-4.0.1-py2.py3-none-any.whl", hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878"}, - {file = "pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2"}, + {file = "pre_commit-4.2.0-py2.py3-none-any.whl", hash = "sha256:a009ca7205f1eb497d10b845e52c838a98b6cdd2102a6c8e4540e94ee75c58bd"}, + {file = "pre_commit-4.2.0.tar.gz", hash = "sha256:601283b9757afd87d40c4c4a9b2b5de9637a8ea02eaff7adc2d0fb4e04841146"}, ] [package.dependencies] @@ -4131,13 +4037,14 @@ virtualenv = ">=20.10.0" [[package]] name = "prometheus-client" -version = "0.21.0" +version = "0.21.1" description = "Python client for the Prometheus monitoring system." optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ - {file = "prometheus_client-0.21.0-py3-none-any.whl", hash = "sha256:4fa6b4dd0ac16d58bb587c04b1caae65b8c5043e85f778f42f5f632f6af2e166"}, - {file = "prometheus_client-0.21.0.tar.gz", hash = "sha256:96c83c606b71ff2b0a433c98889d275f51ffec6c5e267de37c7a2b5c9aa9233e"}, + {file = "prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301"}, + {file = "prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb"}, ] [package.extras] @@ -4145,131 +4052,26 @@ twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.48" +version = "3.0.50" description = "Library for building powerful interactive command lines in Python" optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8.0" +groups = ["main", "dev"] files = [ - {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"}, - {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"}, + {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, + {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, ] [package.dependencies] wcwidth = "*" -[[package]] -name = "propcache" -version = "0.2.0" -description = "Accelerated property cache" -optional = false -python-versions = ">=3.8" -files = [ - {file = "propcache-0.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c5869b8fd70b81835a6f187c5fdbe67917a04d7e52b6e7cc4e5fe39d55c39d58"}, - {file = "propcache-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:952e0d9d07609d9c5be361f33b0d6d650cd2bae393aabb11d9b719364521984b"}, - {file = "propcache-0.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:33ac8f098df0585c0b53009f039dfd913b38c1d2edafed0cedcc0c32a05aa110"}, - {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e48e8875e6c13909c800fa344cd54cc4b2b0db1d5f911f840458a500fde2c2"}, - {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:388f3217649d6d59292b722d940d4d2e1e6a7003259eb835724092a1cca0203a"}, - {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f571aea50ba5623c308aa146eb650eebf7dbe0fd8c5d946e28343cb3b5aad577"}, - {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3dfafb44f7bb35c0c06eda6b2ab4bfd58f02729e7c4045e179f9a861b07c9850"}, - {file = "propcache-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3ebe9a75be7ab0b7da2464a77bb27febcb4fab46a34f9288f39d74833db7f61"}, - {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d2f0d0f976985f85dfb5f3d685697ef769faa6b71993b46b295cdbbd6be8cc37"}, - {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a3dc1a4b165283bd865e8f8cb5f0c64c05001e0718ed06250d8cac9bec115b48"}, - {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e0f07b42d2a50c7dd2d8675d50f7343d998c64008f1da5fef888396b7f84630"}, - {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e63e3e1e0271f374ed489ff5ee73d4b6e7c60710e1f76af5f0e1a6117cd26394"}, - {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:56bb5c98f058a41bb58eead194b4db8c05b088c93d94d5161728515bd52b052b"}, - {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7665f04d0c7f26ff8bb534e1c65068409bf4687aa2534faf7104d7182debb336"}, - {file = "propcache-0.2.0-cp310-cp310-win32.whl", hash = "sha256:7cf18abf9764746b9c8704774d8b06714bcb0a63641518a3a89c7f85cc02c2ad"}, - {file = "propcache-0.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:cfac69017ef97db2438efb854edf24f5a29fd09a536ff3a992b75990720cdc99"}, - {file = "propcache-0.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:63f13bf09cc3336eb04a837490b8f332e0db41da66995c9fd1ba04552e516354"}, - {file = "propcache-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608cce1da6f2672a56b24a015b42db4ac612ee709f3d29f27a00c943d9e851de"}, - {file = "propcache-0.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:466c219deee4536fbc83c08d09115249db301550625c7fef1c5563a584c9bc87"}, - {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc2db02409338bf36590aa985a461b2c96fce91f8e7e0f14c50c5fcc4f229016"}, - {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6ed8db0a556343d566a5c124ee483ae113acc9a557a807d439bcecc44e7dfbb"}, - {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91997d9cb4a325b60d4e3f20967f8eb08dfcb32b22554d5ef78e6fd1dda743a2"}, - {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c7dde9e533c0a49d802b4f3f218fa9ad0a1ce21f2c2eb80d5216565202acab4"}, - {file = "propcache-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffcad6c564fe6b9b8916c1aefbb37a362deebf9394bd2974e9d84232e3e08504"}, - {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:97a58a28bcf63284e8b4d7b460cbee1edaab24634e82059c7b8c09e65284f178"}, - {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:945db8ee295d3af9dbdbb698cce9bbc5c59b5c3fe328bbc4387f59a8a35f998d"}, - {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:39e104da444a34830751715f45ef9fc537475ba21b7f1f5b0f4d71a3b60d7fe2"}, - {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c5ecca8f9bab618340c8e848d340baf68bcd8ad90a8ecd7a4524a81c1764b3db"}, - {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c436130cc779806bdf5d5fae0d848713105472b8566b75ff70048c47d3961c5b"}, - {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:191db28dc6dcd29d1a3e063c3be0b40688ed76434622c53a284e5427565bbd9b"}, - {file = "propcache-0.2.0-cp311-cp311-win32.whl", hash = "sha256:5f2564ec89058ee7c7989a7b719115bdfe2a2fb8e7a4543b8d1c0cc4cf6478c1"}, - {file = "propcache-0.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6e2e54267980349b723cff366d1e29b138b9a60fa376664a157a342689553f71"}, - {file = "propcache-0.2.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2ee7606193fb267be4b2e3b32714f2d58cad27217638db98a60f9efb5efeccc2"}, - {file = "propcache-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:91ee8fc02ca52e24bcb77b234f22afc03288e1dafbb1f88fe24db308910c4ac7"}, - {file = "propcache-0.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2e900bad2a8456d00a113cad8c13343f3b1f327534e3589acc2219729237a2e8"}, - {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f52a68c21363c45297aca15561812d542f8fc683c85201df0bebe209e349f793"}, - {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e41d67757ff4fbc8ef2af99b338bfb955010444b92929e9e55a6d4dcc3c4f09"}, - {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a64e32f8bd94c105cc27f42d3b658902b5bcc947ece3c8fe7bc1b05982f60e89"}, - {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55346705687dbd7ef0d77883ab4f6fabc48232f587925bdaf95219bae072491e"}, - {file = "propcache-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00181262b17e517df2cd85656fcd6b4e70946fe62cd625b9d74ac9977b64d8d9"}, - {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6994984550eaf25dd7fc7bd1b700ff45c894149341725bb4edc67f0ffa94efa4"}, - {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:56295eb1e5f3aecd516d91b00cfd8bf3a13991de5a479df9e27dd569ea23959c"}, - {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:439e76255daa0f8151d3cb325f6dd4a3e93043e6403e6491813bcaaaa8733887"}, - {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f6475a1b2ecb310c98c28d271a30df74f9dd436ee46d09236a6b750a7599ce57"}, - {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3444cdba6628accf384e349014084b1cacd866fbb88433cd9d279d90a54e0b23"}, - {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4a9d9b4d0a9b38d1c391bb4ad24aa65f306c6f01b512e10a8a34a2dc5675d348"}, - {file = "propcache-0.2.0-cp312-cp312-win32.whl", hash = "sha256:69d3a98eebae99a420d4b28756c8ce6ea5a29291baf2dc9ff9414b42676f61d5"}, - {file = "propcache-0.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ad9c9b99b05f163109466638bd30ada1722abb01bbb85c739c50b6dc11f92dc3"}, - {file = "propcache-0.2.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ecddc221a077a8132cf7c747d5352a15ed763b674c0448d811f408bf803d9ad7"}, - {file = "propcache-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0e53cb83fdd61cbd67202735e6a6687a7b491c8742dfc39c9e01e80354956763"}, - {file = "propcache-0.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92fe151145a990c22cbccf9ae15cae8ae9eddabfc949a219c9f667877e40853d"}, - {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6a21ef516d36909931a2967621eecb256018aeb11fc48656e3257e73e2e247a"}, - {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f88a4095e913f98988f5b338c1d4d5d07dbb0b6bad19892fd447484e483ba6b"}, - {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a5b3bb545ead161be780ee85a2b54fdf7092815995661947812dde94a40f6fb"}, - {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67aeb72e0f482709991aa91345a831d0b707d16b0257e8ef88a2ad246a7280bf"}, - {file = "propcache-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c997f8c44ec9b9b0bcbf2d422cc00a1d9b9c681f56efa6ca149a941e5560da2"}, - {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a66df3d4992bc1d725b9aa803e8c5a66c010c65c741ad901e260ece77f58d2f"}, - {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3ebbcf2a07621f29638799828b8d8668c421bfb94c6cb04269130d8de4fb7136"}, - {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1235c01ddaa80da8235741e80815ce381c5267f96cc49b1477fdcf8c047ef325"}, - {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3947483a381259c06921612550867b37d22e1df6d6d7e8361264b6d037595f44"}, - {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d5bed7f9805cc29c780f3aee05de3262ee7ce1f47083cfe9f77471e9d6777e83"}, - {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4a91d44379f45f5e540971d41e4626dacd7f01004826a18cb048e7da7e96544"}, - {file = "propcache-0.2.0-cp313-cp313-win32.whl", hash = "sha256:f902804113e032e2cdf8c71015651c97af6418363bea8d78dc0911d56c335032"}, - {file = "propcache-0.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:8f188cfcc64fb1266f4684206c9de0e80f54622c3f22a910cbd200478aeae61e"}, - {file = "propcache-0.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:53d1bd3f979ed529f0805dd35ddaca330f80a9a6d90bc0121d2ff398f8ed8861"}, - {file = "propcache-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:83928404adf8fb3d26793665633ea79b7361efa0287dfbd372a7e74311d51ee6"}, - {file = "propcache-0.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:77a86c261679ea5f3896ec060be9dc8e365788248cc1e049632a1be682442063"}, - {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:218db2a3c297a3768c11a34812e63b3ac1c3234c3a086def9c0fee50d35add1f"}, - {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7735e82e3498c27bcb2d17cb65d62c14f1100b71723b68362872bca7d0913d90"}, - {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:20a617c776f520c3875cf4511e0d1db847a076d720714ae35ffe0df3e440be68"}, - {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67b69535c870670c9f9b14a75d28baa32221d06f6b6fa6f77a0a13c5a7b0a5b9"}, - {file = "propcache-0.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4569158070180c3855e9c0791c56be3ceeb192defa2cdf6a3f39e54319e56b89"}, - {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:db47514ffdbd91ccdc7e6f8407aac4ee94cc871b15b577c1c324236b013ddd04"}, - {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:2a60ad3e2553a74168d275a0ef35e8c0a965448ffbc3b300ab3a5bb9956c2162"}, - {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:662dd62358bdeaca0aee5761de8727cfd6861432e3bb828dc2a693aa0471a563"}, - {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:25a1f88b471b3bc911d18b935ecb7115dff3a192b6fef46f0bfaf71ff4f12418"}, - {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:f60f0ac7005b9f5a6091009b09a419ace1610e163fa5deaba5ce3484341840e7"}, - {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:74acd6e291f885678631b7ebc85d2d4aec458dd849b8c841b57ef04047833bed"}, - {file = "propcache-0.2.0-cp38-cp38-win32.whl", hash = "sha256:d9b6ddac6408194e934002a69bcaadbc88c10b5f38fb9307779d1c629181815d"}, - {file = "propcache-0.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:676135dcf3262c9c5081cc8f19ad55c8a64e3f7282a21266d05544450bffc3a5"}, - {file = "propcache-0.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:25c8d773a62ce0451b020c7b29a35cfbc05de8b291163a7a0f3b7904f27253e6"}, - {file = "propcache-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:375a12d7556d462dc64d70475a9ee5982465fbb3d2b364f16b86ba9135793638"}, - {file = "propcache-0.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1ec43d76b9677637a89d6ab86e1fef70d739217fefa208c65352ecf0282be957"}, - {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f45eec587dafd4b2d41ac189c2156461ebd0c1082d2fe7013571598abb8505d1"}, - {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc092ba439d91df90aea38168e11f75c655880c12782facf5cf9c00f3d42b562"}, - {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fa1076244f54bb76e65e22cb6910365779d5c3d71d1f18b275f1dfc7b0d71b4d"}, - {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:682a7c79a2fbf40f5dbb1eb6bfe2cd865376deeac65acf9beb607505dced9e12"}, - {file = "propcache-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e40876731f99b6f3c897b66b803c9e1c07a989b366c6b5b475fafd1f7ba3fb8"}, - {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:363ea8cd3c5cb6679f1c2f5f1f9669587361c062e4899fce56758efa928728f8"}, - {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:140fbf08ab3588b3468932974a9331aff43c0ab8a2ec2c608b6d7d1756dbb6cb"}, - {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e70fac33e8b4ac63dfc4c956fd7d85a0b1139adcfc0d964ce288b7c527537fea"}, - {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:b33d7a286c0dc1a15f5fc864cc48ae92a846df287ceac2dd499926c3801054a6"}, - {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f6d5749fdd33d90e34c2efb174c7e236829147a2713334d708746e94c4bde40d"}, - {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22aa8f2272d81d9317ff5756bb108021a056805ce63dd3630e27d042c8092798"}, - {file = "propcache-0.2.0-cp39-cp39-win32.whl", hash = "sha256:73e4b40ea0eda421b115248d7e79b59214411109a5bc47d0d48e4c73e3b8fcf9"}, - {file = "propcache-0.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:9517d5e9e0731957468c29dbfd0f976736a0e55afaea843726e887f36fe017df"}, - {file = "propcache-0.2.0-py3-none-any.whl", hash = "sha256:2ccc28197af5313706511fab3a8b66dcd6da067a1331372c82ea1cb74285e036"}, - {file = "propcache-0.2.0.tar.gz", hash = "sha256:df81779732feb9d01e5d513fad0122efb3d53bbc75f61b2a4f29a020bc985e70"}, -] - [[package]] name = "psutil" version = "5.9.8" description = "Cross-platform lib for process and system monitoring in Python." optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +groups = ["main", "dev"] files = [ {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, @@ -4290,7 +4092,7 @@ files = [ ] [package.extras] -test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] +test = ["enum34 ; python_version <= \"3.4\"", "ipaddress ; python_version < \"3.0\"", "mock ; python_version < \"3.0\"", "pywin32 ; sys_platform == \"win32\"", "wmi ; sys_platform == \"win32\""] [[package]] name = "ptyprocess" @@ -4298,10 +4100,12 @@ version = "0.7.0" description = "Run a subprocess in a pseudo terminal" optional = false python-versions = "*" +groups = ["main", "dev", "voila"] files = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, ] +markers = {main = "sys_platform != \"win32\" and sys_platform != \"emscripten\"", dev = "sys_platform != \"win32\" and sys_platform != \"emscripten\" or os_name != \"nt\"", voila = "os_name != \"nt\""} [[package]] name = "pure-eval" @@ -4309,6 +4113,7 @@ version = "0.2.3" description = "Safely evaluate AST nodes without side effects" optional = false python-versions = "*" +groups = ["main", "dev"] files = [ {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, @@ -4323,6 +4128,7 @@ version = "9.0.0" description = "Get CPU info with pure Python" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "py-cpuinfo-9.0.0.tar.gz", hash = "sha256:3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690"}, {file = "py_cpuinfo-9.0.0-py3-none-any.whl", hash = "sha256:859625bc251f64e21f077d099d4162689c762b5d6a4c3c97553d56241c9674d5"}, @@ -4330,44 +4136,58 @@ files = [ [[package]] name = "pyarrow" -version = "13.0.0" +version = "18.1.0" description = "Python library for Apache Arrow" optional = false -python-versions = ">=3.8" -files = [ - {file = "pyarrow-13.0.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:1afcc2c33f31f6fb25c92d50a86b7a9f076d38acbcb6f9e74349636109550148"}, - {file = "pyarrow-13.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:70fa38cdc66b2fc1349a082987f2b499d51d072faaa6b600f71931150de2e0e3"}, - {file = "pyarrow-13.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd57b13a6466822498238877892a9b287b0a58c2e81e4bdb0b596dbb151cbb73"}, - {file = "pyarrow-13.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ce69f7bf01de2e2764e14df45b8404fc6f1a5ed9871e8e08a12169f87b7a26"}, - {file = "pyarrow-13.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:588f0d2da6cf1b1680974d63be09a6530fd1bd825dc87f76e162404779a157dc"}, - {file = "pyarrow-13.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6241afd72b628787b4abea39e238e3ff9f34165273fad306c7acf780dd850956"}, - {file = "pyarrow-13.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:fda7857e35993673fcda603c07d43889fca60a5b254052a462653f8656c64f44"}, - {file = "pyarrow-13.0.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:aac0ae0146a9bfa5e12d87dda89d9ef7c57a96210b899459fc2f785303dcbb67"}, - {file = "pyarrow-13.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7759994217c86c161c6a8060509cfdf782b952163569606bb373828afdd82e8"}, - {file = "pyarrow-13.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:868a073fd0ff6468ae7d869b5fc1f54de5c4255b37f44fb890385eb68b68f95d"}, - {file = "pyarrow-13.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51be67e29f3cfcde263a113c28e96aa04362ed8229cb7c6e5f5c719003659d33"}, - {file = "pyarrow-13.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:d1b4e7176443d12610874bb84d0060bf080f000ea9ed7c84b2801df851320295"}, - {file = "pyarrow-13.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:69b6f9a089d116a82c3ed819eea8fe67dae6105f0d81eaf0fdd5e60d0c6e0944"}, - {file = "pyarrow-13.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:ab1268db81aeb241200e321e220e7cd769762f386f92f61b898352dd27e402ce"}, - {file = "pyarrow-13.0.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:ee7490f0f3f16a6c38f8c680949551053c8194e68de5046e6c288e396dccee80"}, - {file = "pyarrow-13.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e3ad79455c197a36eefbd90ad4aa832bece7f830a64396c15c61a0985e337287"}, - {file = "pyarrow-13.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68fcd2dc1b7d9310b29a15949cdd0cb9bc34b6de767aff979ebf546020bf0ba0"}, - {file = "pyarrow-13.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc6fd330fd574c51d10638e63c0d00ab456498fc804c9d01f2a61b9264f2c5b2"}, - {file = "pyarrow-13.0.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:e66442e084979a97bb66939e18f7b8709e4ac5f887e636aba29486ffbf373763"}, - {file = "pyarrow-13.0.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:0f6eff839a9e40e9c5610d3ff8c5bdd2f10303408312caf4c8003285d0b49565"}, - {file = "pyarrow-13.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b30a27f1cddf5c6efcb67e598d7823a1e253d743d92ac32ec1eb4b6a1417867"}, - {file = "pyarrow-13.0.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:09552dad5cf3de2dc0aba1c7c4b470754c69bd821f5faafc3d774bedc3b04bb7"}, - {file = "pyarrow-13.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3896ae6c205d73ad192d2fc1489cd0edfab9f12867c85b4c277af4d37383c18c"}, - {file = "pyarrow-13.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6647444b21cb5e68b593b970b2a9a07748dd74ea457c7dadaa15fd469c48ada1"}, - {file = "pyarrow-13.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47663efc9c395e31d09c6aacfa860f4473815ad6804311c5433f7085415d62a7"}, - {file = "pyarrow-13.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:b9ba6b6d34bd2563345488cf444510588ea42ad5613df3b3509f48eb80250afd"}, - {file = "pyarrow-13.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:d00d374a5625beeb448a7fa23060df79adb596074beb3ddc1838adb647b6ef09"}, - {file = "pyarrow-13.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:c51afd87c35c8331b56f796eff954b9c7f8d4b7fef5903daf4e05fcf017d23a8"}, - {file = "pyarrow-13.0.0.tar.gz", hash = "sha256:83333726e83ed44b0ac94d8d7a21bbdee4a05029c3b1e8db58a863eec8fd8a33"}, +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "pyarrow-18.1.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e21488d5cfd3d8b500b3238a6c4b075efabc18f0f6d80b29239737ebd69caa6c"}, + {file = "pyarrow-18.1.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:b516dad76f258a702f7ca0250885fc93d1fa5ac13ad51258e39d402bd9e2e1e4"}, + {file = "pyarrow-18.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f443122c8e31f4c9199cb23dca29ab9427cef990f283f80fe15b8e124bcc49b"}, + {file = "pyarrow-18.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0a03da7f2758645d17b7b4f83c8bffeae5bbb7f974523fe901f36288d2eab71"}, + {file = "pyarrow-18.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ba17845efe3aa358ec266cf9cc2800fa73038211fb27968bfa88acd09261a470"}, + {file = "pyarrow-18.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:3c35813c11a059056a22a3bef520461310f2f7eea5c8a11ef9de7062a23f8d56"}, + {file = "pyarrow-18.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:9736ba3c85129d72aefa21b4f3bd715bc4190fe4426715abfff90481e7d00812"}, + {file = "pyarrow-18.1.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:eaeabf638408de2772ce3d7793b2668d4bb93807deed1725413b70e3156a7854"}, + {file = "pyarrow-18.1.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:3b2e2239339c538f3464308fd345113f886ad031ef8266c6f004d49769bb074c"}, + {file = "pyarrow-18.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f39a2e0ed32a0970e4e46c262753417a60c43a3246972cfc2d3eb85aedd01b21"}, + {file = "pyarrow-18.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31e9417ba9c42627574bdbfeada7217ad8a4cbbe45b9d6bdd4b62abbca4c6f6"}, + {file = "pyarrow-18.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:01c034b576ce0eef554f7c3d8c341714954be9b3f5d5bc7117006b85fcf302fe"}, + {file = "pyarrow-18.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f266a2c0fc31995a06ebd30bcfdb7f615d7278035ec5b1cd71c48d56daaf30b0"}, + {file = "pyarrow-18.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:d4f13eee18433f99adefaeb7e01d83b59f73360c231d4782d9ddfaf1c3fbde0a"}, + {file = "pyarrow-18.1.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f3a76670b263dc41d0ae877f09124ab96ce10e4e48f3e3e4257273cee61ad0d"}, + {file = "pyarrow-18.1.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:da31fbca07c435be88a0c321402c4e31a2ba61593ec7473630769de8346b54ee"}, + {file = "pyarrow-18.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:543ad8459bc438efc46d29a759e1079436290bd583141384c6f7a1068ed6f992"}, + {file = "pyarrow-18.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0743e503c55be0fdb5c08e7d44853da27f19dc854531c0570f9f394ec9671d54"}, + {file = "pyarrow-18.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d4b3d2a34780645bed6414e22dda55a92e0fcd1b8a637fba86800ad737057e33"}, + {file = "pyarrow-18.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c52f81aa6f6575058d8e2c782bf79d4f9fdc89887f16825ec3a66607a5dd8e30"}, + {file = "pyarrow-18.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ad4892617e1a6c7a551cfc827e072a633eaff758fa09f21c4ee548c30bcaf99"}, + {file = "pyarrow-18.1.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:84e314d22231357d473eabec709d0ba285fa706a72377f9cc8e1cb3c8013813b"}, + {file = "pyarrow-18.1.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:f591704ac05dfd0477bb8f8e0bd4b5dc52c1cadf50503858dce3a15db6e46ff2"}, + {file = "pyarrow-18.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acb7564204d3c40babf93a05624fc6a8ec1ab1def295c363afc40b0c9e66c191"}, + {file = "pyarrow-18.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74de649d1d2ccb778f7c3afff6085bd5092aed4c23df9feeb45dd6b16f3811aa"}, + {file = "pyarrow-18.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:f96bd502cb11abb08efea6dab09c003305161cb6c9eafd432e35e76e7fa9b90c"}, + {file = "pyarrow-18.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:36ac22d7782554754a3b50201b607d553a8d71b78cdf03b33c1125be4b52397c"}, + {file = "pyarrow-18.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:25dbacab8c5952df0ca6ca0af28f50d45bd31c1ff6fcf79e2d120b4a65ee7181"}, + {file = "pyarrow-18.1.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a276190309aba7bc9d5bd2933230458b3521a4317acfefe69a354f2fe59f2bc"}, + {file = "pyarrow-18.1.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:ad514dbfcffe30124ce655d72771ae070f30bf850b48bc4d9d3b25993ee0e386"}, + {file = "pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aebc13a11ed3032d8dd6e7171eb6e86d40d67a5639d96c35142bd568b9299324"}, + {file = "pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6cf5c05f3cee251d80e98726b5c7cc9f21bab9e9783673bac58e6dfab57ecc8"}, + {file = "pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:11b676cd410cf162d3f6a70b43fb9e1e40affbc542a1e9ed3681895f2962d3d9"}, + {file = "pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:b76130d835261b38f14fc41fdfb39ad8d672afb84c447126b84d5472244cfaba"}, + {file = "pyarrow-18.1.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:0b331e477e40f07238adc7ba7469c36b908f07c89b95dd4bd3a0ec84a3d1e21e"}, + {file = "pyarrow-18.1.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:2c4dd0c9010a25ba03e198fe743b1cc03cd33c08190afff371749c52ccbbaf76"}, + {file = "pyarrow-18.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f97b31b4c4e21ff58c6f330235ff893cc81e23da081b1a4b1c982075e0ed4e9"}, + {file = "pyarrow-18.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a4813cb8ecf1809871fd2d64a8eff740a1bd3691bbe55f01a3cf6c5ec869754"}, + {file = "pyarrow-18.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:05a5636ec3eb5cc2a36c6edb534a38ef57b2ab127292a716d00eabb887835f1e"}, + {file = "pyarrow-18.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:73eeed32e724ea3568bb06161cad5fa7751e45bc2228e33dcb10c614044165c7"}, + {file = "pyarrow-18.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:a1880dd6772b685e803011a6b43a230c23b566859a6e0c9a276c1e0faf4f4052"}, + {file = "pyarrow-18.1.0.tar.gz", hash = "sha256:9386d3ca9c145b5539a1cfc75df07757dff870168c959b473a0bccbc3abc8c73"}, ] -[package.dependencies] -numpy = ">=1.16.6" +[package.extras] +test = ["cffi", "hypothesis", "pandas", "pytest", "pytz"] [[package]] name = "pycodestyle" @@ -4375,6 +4195,7 @@ version = "2.12.1" description = "Python style guide checker" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pycodestyle-2.12.1-py2.py3-none-any.whl", hash = "sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3"}, {file = "pycodestyle-2.12.1.tar.gz", hash = "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"}, @@ -4386,10 +4207,12 @@ version = "2.22" description = "C parser in Python" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] files = [ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] +markers = {main = "implementation_name == \"pypy\" or platform_python_implementation == \"PyPy\""} [[package]] name = "pydocstyle" @@ -4397,6 +4220,7 @@ version = "6.3.0" description = "Python docstring style checker" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "pydocstyle-6.3.0-py3-none-any.whl", hash = "sha256:118762d452a49d6b05e194ef344a55822987a462831ade91ec5c06fd2169d019"}, {file = "pydocstyle-6.3.0.tar.gz", hash = "sha256:7ce43f0c0ac87b07494eb9c0b462c0b73e6ff276807f204d6b53edc72b7e44e1"}, @@ -4406,7 +4230,7 @@ files = [ snowballstemmer = ">=2.2.0" [package.extras] -toml = ["tomli (>=1.2.3)"] +toml = ["tomli (>=1.2.3) ; python_version < \"3.11\""] [[package]] name = "pyflakes" @@ -4414,6 +4238,7 @@ version = "3.2.0" description = "passive checker of Python programs" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, @@ -4421,13 +4246,14 @@ files = [ [[package]] name = "pygments" -version = "2.18.0" +version = "2.19.1" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] files = [ - {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, - {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, ] [package.extras] @@ -4435,24 +4261,27 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pypandoc" -version = "1.14" +version = "1.15" description = "Thin wrapper for pandoc." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"pipeline\"" files = [ - {file = "pypandoc-1.14-py3-none-any.whl", hash = "sha256:1315c7ad7fac7236dacf69a05b521ed2c3f1d0177f70e9b92bfffce6c023df22"}, - {file = "pypandoc-1.14.tar.gz", hash = "sha256:6b4c45f5f1b9fb5bb562079164806bdbbc3e837b5402bcf3f1139edc5730a197"}, + {file = "pypandoc-1.15-py3-none-any.whl", hash = "sha256:4ededcc76c8770f27aaca6dff47724578428eca84212a31479403a9731fc2b16"}, + {file = "pypandoc-1.15.tar.gz", hash = "sha256:ea25beebe712ae41d63f7410c08741a3cab0e420f6703f95bc9b3a749192ce13"}, ] [[package]] name = "pyparsing" -version = "3.2.0" +version = "3.2.3" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ - {file = "pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84"}, - {file = "pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c"}, + {file = "pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf"}, + {file = "pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be"}, ] [package.extras] @@ -4460,13 +4289,14 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pytest" -version = "8.3.3" +version = "8.3.5" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, - {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, + {file = "pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820"}, + {file = "pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"}, ] [package.dependencies] @@ -4486,6 +4316,7 @@ version = "0.21.2" description = "Pytest support for asyncio" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "pytest_asyncio-0.21.2-py3-none-any.whl", hash = "sha256:ab664c88bb7998f711d8039cacd4884da6430886ae8bbd4eded552ed2004f16b"}, {file = "pytest_asyncio-0.21.2.tar.gz", hash = "sha256:d67738fc232b94b326b9d060750beb16e0074210b98dd8b58a5239fa2a154f45"}, @@ -4504,6 +4335,7 @@ version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main", "dev", "voila"] files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -4518,6 +4350,7 @@ version = "3.8" description = "Strict separation of settings from code." optional = false python-versions = "*" +groups = ["main"] files = [ {file = "python-decouple-3.8.tar.gz", hash = "sha256:ba6e2657d4f376ecc46f77a3a615e058d93ba5e465c01bbe57289bfb7cce680f"}, {file = "python_decouple-3.8-py3-none-any.whl", hash = "sha256:d0d45340815b25f4de59c974b855bb38d03151d81b037d9e3f463b0c9f8cbd66"}, @@ -4525,21 +4358,26 @@ files = [ [[package]] name = "python-json-logger" -version = "2.0.7" -description = "A python library adding a json log formatter" +version = "3.3.0" +description = "JSON Log Formatter for the Python Logging Package" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ - {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, - {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, + {file = "python_json_logger-3.3.0-py3-none-any.whl", hash = "sha256:dd980fae8cffb24c13caf6e158d3d61c0d6d22342f932cb6e9deedab3d35eec7"}, + {file = "python_json_logger-3.3.0.tar.gz", hash = "sha256:12b7e74b17775e7d565129296105bbe3910842d9d0eb083fc83a6a617aa8df84"}, ] +[package.extras] +dev = ["backports.zoneinfo ; python_version < \"3.9\"", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec ; implementation_name != \"pypy\"", "mypy", "orjson ; implementation_name != \"pypy\"", "pylint", "pytest", "tzdata", "validate-pyproject[all]"] + [[package]] name = "python-slugify" version = "8.0.4" description = "A Python slugify application that also handles Unicode" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856"}, {file = "python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8"}, @@ -4553,55 +4391,59 @@ unidecode = ["Unidecode (>=1.1.1)"] [[package]] name = "pytz" -version = "2024.2" +version = "2025.2" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" +groups = ["main", "dev"] files = [ - {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, - {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, + {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, + {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, ] [[package]] name = "pywin32" -version = "308" +version = "310" description = "Python for Window Extensions" optional = false python-versions = "*" -files = [ - {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"}, +groups = ["main", "dev", "voila"] +markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pywin32-310-cp310-cp310-win32.whl", hash = "sha256:6dd97011efc8bf51d6793a82292419eba2c71cf8e7250cfac03bba284454abc1"}, + {file = "pywin32-310-cp310-cp310-win_amd64.whl", hash = "sha256:c3e78706e4229b915a0821941a84e7ef420bf2b77e08c9dae3c76fd03fd2ae3d"}, + {file = "pywin32-310-cp310-cp310-win_arm64.whl", hash = "sha256:33babed0cf0c92a6f94cc6cc13546ab24ee13e3e800e61ed87609ab91e4c8213"}, + {file = "pywin32-310-cp311-cp311-win32.whl", hash = "sha256:1e765f9564e83011a63321bb9d27ec456a0ed90d3732c4b2e312b855365ed8bd"}, + {file = "pywin32-310-cp311-cp311-win_amd64.whl", hash = "sha256:126298077a9d7c95c53823934f000599f66ec9296b09167810eb24875f32689c"}, + {file = "pywin32-310-cp311-cp311-win_arm64.whl", hash = "sha256:19ec5fc9b1d51c4350be7bb00760ffce46e6c95eaf2f0b2f1150657b1a43c582"}, + {file = "pywin32-310-cp312-cp312-win32.whl", hash = "sha256:8a75a5cc3893e83a108c05d82198880704c44bbaee4d06e442e471d3c9ea4f3d"}, + {file = "pywin32-310-cp312-cp312-win_amd64.whl", hash = "sha256:bf5c397c9a9a19a6f62f3fb821fbf36cac08f03770056711f765ec1503972060"}, + {file = "pywin32-310-cp312-cp312-win_arm64.whl", hash = "sha256:2349cc906eae872d0663d4d6290d13b90621eaf78964bb1578632ff20e152966"}, + {file = "pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab"}, + {file = "pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e"}, + {file = "pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33"}, + {file = "pywin32-310-cp38-cp38-win32.whl", hash = "sha256:0867beb8addefa2e3979d4084352e4ac6e991ca45373390775f7084cc0209b9c"}, + {file = "pywin32-310-cp38-cp38-win_amd64.whl", hash = "sha256:30f0a9b3138fb5e07eb4973b7077e1883f558e40c578c6925acc7a94c34eaa36"}, + {file = "pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a"}, + {file = "pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475"}, ] [[package]] name = "pywinpty" -version = "2.0.14" +version = "2.0.15" description = "Pseudo terminal support for Windows from Python." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev", "voila"] +markers = "os_name == \"nt\"" files = [ - {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"}, + {file = "pywinpty-2.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:8e7f5de756a615a38b96cd86fa3cd65f901ce54ce147a3179c45907fa11b4c4e"}, + {file = "pywinpty-2.0.15-cp311-cp311-win_amd64.whl", hash = "sha256:9a6bcec2df2707aaa9d08b86071970ee32c5026e10bcc3cc5f6f391d85baf7ca"}, + {file = "pywinpty-2.0.15-cp312-cp312-win_amd64.whl", hash = "sha256:83a8f20b430bbc5d8957249f875341a60219a4e971580f2ba694fbfb54a45ebc"}, + {file = "pywinpty-2.0.15-cp313-cp313-win_amd64.whl", hash = "sha256:ab5920877dd632c124b4ed17bc6dd6ef3b9f86cd492b963ffdb1a67b85b0f408"}, + {file = "pywinpty-2.0.15-cp313-cp313t-win_amd64.whl", hash = "sha256:a4560ad8c01e537708d2790dbe7da7d986791de805d89dd0d3697ca59e9e4901"}, + {file = "pywinpty-2.0.15-cp39-cp39-win_amd64.whl", hash = "sha256:d261cd88fcd358cfb48a7ca0700db3e1c088c9c10403c9ebc0d8a8b57aa6a117"}, + {file = "pywinpty-2.0.15.tar.gz", hash = "sha256:312cf39153a8736c617d45ce8b6ad6cd2107de121df91c455b10ce6bba7a39b2"}, ] [[package]] @@ -4610,6 +4452,7 @@ version = "0.28" description = "PyXDG contains implementations of freedesktop.org standards in python." optional = false python-versions = "*" +groups = ["main"] files = [ {file = "pyxdg-0.28-py2.py3-none-any.whl", hash = "sha256:bdaf595999a0178ecea4052b7f4195569c1ff4d344567bccdc12dfdf02d545ab"}, {file = "pyxdg-0.28.tar.gz", hash = "sha256:3267bb3074e934df202af2ee0868575484108581e6f3cb006af1da35395e88b4"}, @@ -4621,6 +4464,7 @@ version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -4679,120 +4523,105 @@ files = [ [[package]] name = "pyzmq" -version = "26.2.0" +version = "26.3.0" description = "Python bindings for 0MQ" optional = false -python-versions = ">=3.7" -files = [ - {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, - {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, - {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, - {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, - {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, - {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, - {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, - {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, - {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, - {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, - {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, - {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, - {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, - {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, - {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, - {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, - {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, - {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, - {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, - {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, - {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, - {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, - {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, - {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, - {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, - {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, - {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, - {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, - {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, - {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, - {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, - {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, - {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, - {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, - {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, - {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, - {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, - {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, - {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, - {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, - {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, - {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, - {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, - {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, - {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, - {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, - {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, - {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, - {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, - {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, - {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, - {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, - {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, - {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, - {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, - {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, - {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, - {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, - {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, - {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, - {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, - {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, - {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, - {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, - {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, - {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, - {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, - {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, - {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, - {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, - {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, - {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, - {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, - {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, - {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, - {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, - {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, - {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, - {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, - {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, - {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, - {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, - {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, - {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, - {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, - {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, - {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, - {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, - {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, - {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, - {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, - {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, - {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, - {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, - {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, - {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, - {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, - {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, - {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, - {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, - {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, - {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, - {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, - {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, - {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, - {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, - {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, - {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, - {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, +python-versions = ">=3.8" +groups = ["main", "dev", "voila"] +files = [ + {file = "pyzmq-26.3.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:1586944f4736515af5c6d3a5b150c7e8ca2a2d6e46b23057320584d6f2438f4a"}, + {file = "pyzmq-26.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa7efc695d1fc9f72d91bf9b6c6fe2d7e1b4193836ec530a98faf7d7a7577a58"}, + {file = "pyzmq-26.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd84441e4021cec6e4dd040550386cd9c9ea1d9418ea1a8002dbb7b576026b2b"}, + {file = "pyzmq-26.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9176856f36c34a8aa5c0b35ddf52a5d5cd8abeece57c2cd904cfddae3fd9acd3"}, + {file = "pyzmq-26.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:49334faa749d55b77f084389a80654bf2e68ab5191c0235066f0140c1b670d64"}, + {file = "pyzmq-26.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fd30fc80fe96efb06bea21667c5793bbd65c0dc793187feb39b8f96990680b00"}, + {file = "pyzmq-26.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:b2eddfbbfb473a62c3a251bb737a6d58d91907f6e1d95791431ebe556f47d916"}, + {file = "pyzmq-26.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:70b3acb9ad729a53d4e751dace35404a024f188aad406013454216aba5485b4e"}, + {file = "pyzmq-26.3.0-cp310-cp310-win32.whl", hash = "sha256:c1bd75d692cd7c6d862a98013bfdf06702783b75cffbf5dae06d718fecefe8f2"}, + {file = "pyzmq-26.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:d7165bcda0dbf203e5ad04d79955d223d84b2263df4db92f525ba370b03a12ab"}, + {file = "pyzmq-26.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:e34a63f71d2ecffb3c643909ad2d488251afeb5ef3635602b3448e609611a7ed"}, + {file = "pyzmq-26.3.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:2833602d9d42c94b9d0d2a44d2b382d3d3a4485be018ba19dddc401a464c617a"}, + {file = "pyzmq-26.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8270d104ec7caa0bdac246d31d48d94472033ceab5ba142881704350b28159c"}, + {file = "pyzmq-26.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c208a977843d18d3bd185f323e4eaa912eb4869cb230947dc6edd8a27a4e558a"}, + {file = "pyzmq-26.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eddc2be28a379c218e0d92e4a432805dcb0ca5870156a90b54c03cd9799f9f8a"}, + {file = "pyzmq-26.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:c0b519fa2159c42272f8a244354a0e110d65175647e5185b04008ec00df9f079"}, + {file = "pyzmq-26.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1595533de3a80bf8363372c20bafa963ec4bf9f2b8f539b1d9a5017f430b84c9"}, + {file = "pyzmq-26.3.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bbef99eb8d18ba9a40f00e8836b8040cdcf0f2fa649684cf7a66339599919d21"}, + {file = "pyzmq-26.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:979486d444ca3c469cd1c7f6a619ce48ff08b3b595d451937db543754bfacb65"}, + {file = "pyzmq-26.3.0-cp311-cp311-win32.whl", hash = "sha256:4b127cfe10b4c56e4285b69fd4b38ea1d368099ea4273d8fb349163fce3cd598"}, + {file = "pyzmq-26.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:cf736cc1298ef15280d9fcf7a25c09b05af016656856dc6fe5626fd8912658dd"}, + {file = "pyzmq-26.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:2dc46ec09f5d36f606ac8393303149e69d17121beee13c8dac25e2a2078e31c4"}, + {file = "pyzmq-26.3.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:c80653332c6136da7f4d4e143975e74ac0fa14f851f716d90583bc19e8945cea"}, + {file = "pyzmq-26.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e317ee1d4528a03506cb1c282cd9db73660a35b3564096de37de7350e7d87a7"}, + {file = "pyzmq-26.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:943a22ebb3daacb45f76a9bcca9a7b74e7d94608c0c0505da30af900b998ca8d"}, + {file = "pyzmq-26.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fc9e71490d989144981ea21ef4fdfaa7b6aa84aff9632d91c736441ce2f6b00"}, + {file = "pyzmq-26.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:e281a8071a06888575a4eb523c4deeefdcd2f5fe4a2d47e02ac8bf3a5b49f695"}, + {file = "pyzmq-26.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:be77efd735bb1064605be8dec6e721141c1421ef0b115ef54e493a64e50e9a52"}, + {file = "pyzmq-26.3.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7a4ac2ffa34f1212dd586af90f4ba894e424f0cabb3a49cdcff944925640f6ac"}, + {file = "pyzmq-26.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ba698c7c252af83b6bba9775035263f0df5f807f0404019916d4b71af8161f66"}, + {file = "pyzmq-26.3.0-cp312-cp312-win32.whl", hash = "sha256:214038aaa88e801e54c2ef0cfdb2e6df27eb05f67b477380a452b595c5ecfa37"}, + {file = "pyzmq-26.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:bad7fe0372e505442482ca3ccbc0d6f38dae81b1650f57a0aa6bbee18e7df495"}, + {file = "pyzmq-26.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:b7b578d604e79e99aa39495becea013fd043fa9f36e4b490efa951f3d847a24d"}, + {file = "pyzmq-26.3.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:fa85953df84beb7b8b73cb3ec3f5d92b62687a09a8e71525c6734e020edf56fd"}, + {file = "pyzmq-26.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:209d09f0ab6ddbcebe64630d1e6ca940687e736f443c265ae15bc4bfad833597"}, + {file = "pyzmq-26.3.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d35cc1086f1d4f907df85c6cceb2245cb39a04f69c3f375993363216134d76d4"}, + {file = "pyzmq-26.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b380e9087078ba91e45fb18cdd0c25275ffaa045cf63c947be0ddae6186bc9d9"}, + {file = "pyzmq-26.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:6d64e74143587efe7c9522bb74d1448128fdf9897cc9b6d8b9927490922fd558"}, + {file = "pyzmq-26.3.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:efba4f53ac7752eea6d8ca38a4ddac579e6e742fba78d1e99c12c95cd2acfc64"}, + {file = "pyzmq-26.3.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:9b0137a1c40da3b7989839f9b78a44de642cdd1ce20dcef341de174c8d04aa53"}, + {file = "pyzmq-26.3.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:a995404bd3982c089e57b428c74edd5bfc3b0616b3dbcd6a8e270f1ee2110f36"}, + {file = "pyzmq-26.3.0-cp313-cp313-win32.whl", hash = "sha256:240b1634b9e530ef6a277d95cbca1a6922f44dfddc5f0a3cd6c722a8de867f14"}, + {file = "pyzmq-26.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:fe67291775ea4c2883764ba467eb389c29c308c56b86c1e19e49c9e1ed0cbeca"}, + {file = "pyzmq-26.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:73ca9ae9a9011b714cf7650450cd9c8b61a135180b708904f1f0a05004543dce"}, + {file = "pyzmq-26.3.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:fea7efbd7e49af9d7e5ed6c506dfc7de3d1a628790bd3a35fd0e3c904dc7d464"}, + {file = "pyzmq-26.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4430c7cba23bb0e2ee203eee7851c1654167d956fc6d4b3a87909ccaf3c5825"}, + {file = "pyzmq-26.3.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:016d89bee8c7d566fad75516b4e53ec7c81018c062d4c51cd061badf9539be52"}, + {file = "pyzmq-26.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04bfe59852d76d56736bfd10ac1d49d421ab8ed11030b4a0332900691507f557"}, + {file = "pyzmq-26.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:1fe05bd0d633a0f672bb28cb8b4743358d196792e1caf04973b7898a0d70b046"}, + {file = "pyzmq-26.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:2aa1a9f236d5b835fb8642f27de95f9edcfd276c4bc1b6ffc84f27c6fb2e2981"}, + {file = "pyzmq-26.3.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:21399b31753bf321043ea60c360ed5052cc7be20739785b1dff1820f819e35b3"}, + {file = "pyzmq-26.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:d015efcd96aca8882057e7e6f06224f79eecd22cad193d3e6a0a91ec67590d1f"}, + {file = "pyzmq-26.3.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:18183cc3851b995fdc7e5f03d03b8a4e1b12b0f79dff1ec1da75069af6357a05"}, + {file = "pyzmq-26.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:da87e977f92d930a3683e10ba2b38bcc59adfc25896827e0b9d78b208b7757a6"}, + {file = "pyzmq-26.3.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cf6db401f4957afbf372a4730c6d5b2a234393af723983cbf4bcd13d54c71e1a"}, + {file = "pyzmq-26.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03caa2ffd64252122139d50ec92987f89616b9b92c9ba72920b40e92709d5e26"}, + {file = "pyzmq-26.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:fbf206e5329e20937fa19bd41cf3af06d5967f8f7e86b59d783b26b40ced755c"}, + {file = "pyzmq-26.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6fb539a6382a048308b409d8c66d79bf636eda1b24f70c78f2a1fd16e92b037b"}, + {file = "pyzmq-26.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7897b8c8bbbb2bd8cad887bffcb07aede71ef1e45383bd4d6ac049bf0af312a4"}, + {file = "pyzmq-26.3.0-cp38-cp38-win32.whl", hash = "sha256:91dead2daca698ae52ce70ee2adbb94ddd9b5f96877565fd40aa4efd18ecc6a3"}, + {file = "pyzmq-26.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:8c088e009a6d6b9f563336adb906e3a8d3fd64db129acc8d8fd0e9fe22b2dac8"}, + {file = "pyzmq-26.3.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:2eaed0d911fb3280981d5495978152fab6afd9fe217fd16f411523665089cef1"}, + {file = "pyzmq-26.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7998b60ef1c105846fb3bfca494769fde3bba6160902e7cd27a8df8257890ee9"}, + {file = "pyzmq-26.3.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:96c0006a8d1d00e46cb44c8e8d7316d4a232f3d8f2ed43179d4578dbcb0829b6"}, + {file = "pyzmq-26.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e17cc198dc50a25a0f245e6b1e56f692df2acec3ccae82d1f60c34bfb72bbec"}, + {file = "pyzmq-26.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:92a30840f4f2a31f7049d0a7de5fc69dd03b19bd5d8e7fed8d0bde49ce49b589"}, + {file = "pyzmq-26.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f52eba83272a26b444f4b8fc79f2e2c83f91d706d693836c9f7ccb16e6713c31"}, + {file = "pyzmq-26.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:952085a09ff32115794629ba47f8940896d7842afdef1283332109d38222479d"}, + {file = "pyzmq-26.3.0-cp39-cp39-win32.whl", hash = "sha256:0240289e33e3fbae44a5db73e54e955399179332a6b1d47c764a4983ec1524c3"}, + {file = "pyzmq-26.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:b2db7c82f08b8ce44c0b9d1153ce63907491972a7581e8b6adea71817f119df8"}, + {file = "pyzmq-26.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:2d3459b6311463c96abcb97808ee0a1abb0d932833edb6aa81c30d622fd4a12d"}, + {file = "pyzmq-26.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ad03f4252d9041b0635c37528dfa3f44b39f46024ae28c8567f7423676ee409b"}, + {file = "pyzmq-26.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f3dfb68cf7bf4cfdf34283a75848e077c5defa4907506327282afe92780084d"}, + {file = "pyzmq-26.3.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:356ec0e39c5a9cda872b65aca1fd8a5d296ffdadf8e2442b70ff32e73ef597b1"}, + {file = "pyzmq-26.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:749d671b0eec8e738bbf0b361168369d8c682b94fcd458c20741dc4d69ef5278"}, + {file = "pyzmq-26.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f950f17ae608e0786298340163cac25a4c5543ef25362dd5ddb6dcb10b547be9"}, + {file = "pyzmq-26.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b4fc9903a73c25be9d5fe45c87faababcf3879445efa16140146b08fccfac017"}, + {file = "pyzmq-26.3.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c15b69af22030960ac63567e98ad8221cddf5d720d9cf03d85021dfd452324ef"}, + {file = "pyzmq-26.3.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2cf9ab0dff4dbaa2e893eb608373c97eb908e53b7d9793ad00ccbd082c0ee12f"}, + {file = "pyzmq-26.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ec332675f6a138db57aad93ae6387953763f85419bdbd18e914cb279ee1c451"}, + {file = "pyzmq-26.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:eb96568a22fe070590942cd4780950e2172e00fb033a8b76e47692583b1bd97c"}, + {file = "pyzmq-26.3.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:009a38241c76184cb004c869e82a99f0aee32eda412c1eb44df5820324a01d25"}, + {file = "pyzmq-26.3.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4c22a12713707467abedc6d75529dd365180c4c2a1511268972c6e1d472bd63e"}, + {file = "pyzmq-26.3.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1614fcd116275d24f2346ffca4047a741c546ad9d561cbf7813f11226ca4ed2c"}, + {file = "pyzmq-26.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e2cafe7e9c7fed690e8ecf65af119f9c482923b5075a78f6f7629c63e1b4b1d"}, + {file = "pyzmq-26.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:14e0b81753424bd374075df6cc30b87f2c99e5f022501d97eff66544ca578941"}, + {file = "pyzmq-26.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:21c6ddb98557a77cfe3366af0c5600fb222a1b2de5f90d9cd052b324e0c295e8"}, + {file = "pyzmq-26.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fc81d5d60c9d40e692de14b8d884d43cf67562402b931681f0ccb3ce6b19875"}, + {file = "pyzmq-26.3.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52b064fafef772d0f5dbf52d4c39f092be7bc62d9a602fe6e82082e001326de3"}, + {file = "pyzmq-26.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b72206eb041f780451c61e1e89dbc3705f3d66aaaa14ee320d4f55864b13358a"}, + {file = "pyzmq-26.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab78dc21c7b1e13053086bcf0b4246440b43b5409904b73bfd1156654ece8a1"}, + {file = "pyzmq-26.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0b42403ad7d1194dca9574cd3c56691c345f4601fa2d0a33434f35142baec7ac"}, + {file = "pyzmq-26.3.0.tar.gz", hash = "sha256:f1cd68b8236faab78138a8fc703f7ca0ad431b17a3fcac696358600d4e6243b3"}, ] [package.dependencies] @@ -4800,18 +4629,20 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "referencing" -version = "0.35.1" +version = "0.36.2" description = "JSON Referencing + Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev", "voila"] files = [ - {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, - {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, + {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, + {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, ] [package.dependencies] attrs = ">=22.2.0" rpds-py = ">=0.7.0" +typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""} [[package]] name = "requests" @@ -4819,6 +4650,7 @@ version = "2.32.3" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] files = [ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, @@ -4840,6 +4672,7 @@ version = "1.3.4" description = "Retrying" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "retrying-1.3.4-py3-none-any.whl", hash = "sha256:8cc4d43cb8e1125e0ff3344e9de678fefd85db3b750b81b2240dc0183af37b35"}, {file = "retrying-1.3.4.tar.gz", hash = "sha256:345da8c5765bd982b1d1915deb9102fd3d1f7ad16bd84a9700b85f64d24e8f3e"}, @@ -4854,6 +4687,7 @@ version = "0.1.4" description = "A pure python RFC3339 validator" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["dev", "voila"] files = [ {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, @@ -4868,121 +4702,143 @@ version = "0.1.1" description = "Pure python rfc3986 validator" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["dev", "voila"] files = [ {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, ] +[[package]] +name = "rich" +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" +groups = ["main", "dev"] +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + [[package]] name = "rpds-py" -version = "0.20.1" +version = "0.23.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false -python-versions = ">=3.8" -files = [ - {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"}, +python-versions = ">=3.9" +groups = ["dev", "voila"] +files = [ + {file = "rpds_py-0.23.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2a54027554ce9b129fc3d633c92fa33b30de9f08bc61b32c053dc9b537266fed"}, + {file = "rpds_py-0.23.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b5ef909a37e9738d146519657a1aab4584018746a18f71c692f2f22168ece40c"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ee9d6f0b38efb22ad94c3b68ffebe4c47865cdf4b17f6806d6c674e1feb4246"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f7356a6da0562190558c4fcc14f0281db191cdf4cb96e7604c06acfcee96df15"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9441af1d25aed96901f97ad83d5c3e35e6cd21a25ca5e4916c82d7dd0490a4fa"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d8abf7896a91fb97e7977d1aadfcc2c80415d6dc2f1d0fca5b8d0df247248f3"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b08027489ba8fedde72ddd233a5ea411b85a6ed78175f40285bd401bde7466d"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fee513135b5a58f3bb6d89e48326cd5aa308e4bcdf2f7d59f67c861ada482bf8"}, + {file = "rpds_py-0.23.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:35d5631ce0af26318dba0ae0ac941c534453e42f569011585cb323b7774502a5"}, + {file = "rpds_py-0.23.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a20cb698c4a59c534c6701b1c24a968ff2768b18ea2991f886bd8985ce17a89f"}, + {file = "rpds_py-0.23.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e9c206a1abc27e0588cf8b7c8246e51f1a16a103734f7750830a1ccb63f557a"}, + {file = "rpds_py-0.23.1-cp310-cp310-win32.whl", hash = "sha256:d9f75a06ecc68f159d5d7603b734e1ff6daa9497a929150f794013aa9f6e3f12"}, + {file = "rpds_py-0.23.1-cp310-cp310-win_amd64.whl", hash = "sha256:f35eff113ad430b5272bbfc18ba111c66ff525828f24898b4e146eb479a2cdda"}, + {file = "rpds_py-0.23.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b79f5ced71efd70414a9a80bbbfaa7160da307723166f09b69773153bf17c590"}, + {file = "rpds_py-0.23.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c9e799dac1ffbe7b10c1fd42fe4cd51371a549c6e108249bde9cd1200e8f59b4"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721f9c4011b443b6e84505fc00cc7aadc9d1743f1c988e4c89353e19c4a968ee"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f88626e3f5e57432e6191cd0c5d6d6b319b635e70b40be2ffba713053e5147dd"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:285019078537949cecd0190f3690a0b0125ff743d6a53dfeb7a4e6787af154f5"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b92f5654157de1379c509b15acec9d12ecf6e3bc1996571b6cb82a4302060447"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e768267cbe051dd8d1c5305ba690bb153204a09bf2e3de3ae530de955f5b5580"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c5334a71f7dc1160382d45997e29f2637c02f8a26af41073189d79b95d3321f1"}, + {file = "rpds_py-0.23.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d6adb81564af0cd428910f83fa7da46ce9ad47c56c0b22b50872bc4515d91966"}, + {file = "rpds_py-0.23.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:cafa48f2133d4daa028473ede7d81cd1b9f9e6925e9e4003ebdf77010ee02f35"}, + {file = "rpds_py-0.23.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fced9fd4a07a1ded1bac7e961ddd9753dd5d8b755ba8e05acba54a21f5f1522"}, + {file = "rpds_py-0.23.1-cp311-cp311-win32.whl", hash = "sha256:243241c95174b5fb7204c04595852fe3943cc41f47aa14c3828bc18cd9d3b2d6"}, + {file = "rpds_py-0.23.1-cp311-cp311-win_amd64.whl", hash = "sha256:11dd60b2ffddba85715d8a66bb39b95ddbe389ad2cfcf42c833f1bcde0878eaf"}, + {file = "rpds_py-0.23.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3902df19540e9af4cc0c3ae75974c65d2c156b9257e91f5101a51f99136d834c"}, + {file = "rpds_py-0.23.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:66f8d2a17e5838dd6fb9be6baaba8e75ae2f5fa6b6b755d597184bfcd3cb0eba"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:112b8774b0b4ee22368fec42749b94366bd9b536f8f74c3d4175d4395f5cbd31"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0df046f2266e8586cf09d00588302a32923eb6386ced0ca5c9deade6af9a149"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3288930b947cbebe767f84cf618d2cbe0b13be476e749da0e6a009f986248c"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce473a2351c018b06dd8d30d5da8ab5a0831056cc53b2006e2a8028172c37ce5"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d550d7e9e7d8676b183b37d65b5cd8de13676a738973d330b59dc8312df9c5dc"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e14f86b871ea74c3fddc9a40e947d6a5d09def5adc2076ee61fb910a9014fb35"}, + {file = "rpds_py-0.23.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf5be5ba34e19be579ae873da515a2836a2166d8d7ee43be6ff909eda42b72b"}, + {file = "rpds_py-0.23.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d7031d493c4465dbc8d40bd6cafefef4bd472b17db0ab94c53e7909ee781b9ef"}, + {file = "rpds_py-0.23.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:55ff4151cfd4bc635e51cfb1c59ac9f7196b256b12e3a57deb9e5742e65941ad"}, + {file = "rpds_py-0.23.1-cp312-cp312-win32.whl", hash = "sha256:a9d3b728f5a5873d84cba997b9d617c6090ca5721caaa691f3b1a78c60adc057"}, + {file = "rpds_py-0.23.1-cp312-cp312-win_amd64.whl", hash = "sha256:b03a8d50b137ee758e4c73638b10747b7c39988eb8e6cd11abb7084266455165"}, + {file = "rpds_py-0.23.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:4caafd1a22e5eaa3732acb7672a497123354bef79a9d7ceed43387d25025e935"}, + {file = "rpds_py-0.23.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:178f8a60fc24511c0eb756af741c476b87b610dba83270fce1e5a430204566a4"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c632419c3870507ca20a37c8f8f5352317aca097639e524ad129f58c125c61c6"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:698a79d295626ee292d1730bc2ef6e70a3ab135b1d79ada8fde3ed0047b65a10"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:271fa2184cf28bdded86bb6217c8e08d3a169fe0bbe9be5e8d96e8476b707122"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b91cceb5add79ee563bd1f70b30896bd63bc5f78a11c1f00a1e931729ca4f1f4"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a6cb95074777f1ecda2ca4fa7717caa9ee6e534f42b7575a8f0d4cb0c24013"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:50fb62f8d8364978478b12d5f03bf028c6bc2af04082479299139dc26edf4c64"}, + {file = "rpds_py-0.23.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c8f7e90b948dc9dcfff8003f1ea3af08b29c062f681c05fd798e36daa3f7e3e8"}, + {file = "rpds_py-0.23.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5b98b6c953e5c2bda51ab4d5b4f172617d462eebc7f4bfdc7c7e6b423f6da957"}, + {file = "rpds_py-0.23.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2893d778d4671ee627bac4037a075168b2673c57186fb1a57e993465dbd79a93"}, + {file = "rpds_py-0.23.1-cp313-cp313-win32.whl", hash = "sha256:2cfa07c346a7ad07019c33fb9a63cf3acb1f5363c33bc73014e20d9fe8b01cdd"}, + {file = "rpds_py-0.23.1-cp313-cp313-win_amd64.whl", hash = "sha256:3aaf141d39f45322e44fc2c742e4b8b4098ead5317e5f884770c8df0c332da70"}, + {file = "rpds_py-0.23.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:759462b2d0aa5a04be5b3e37fb8183615f47014ae6b116e17036b131985cb731"}, + {file = "rpds_py-0.23.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3e9212f52074fc9d72cf242a84063787ab8e21e0950d4d6709886fb62bcb91d5"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e9f3a3ac919406bc0414bbbd76c6af99253c507150191ea79fab42fdb35982a"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c04ca91dda8a61584165825907f5c967ca09e9c65fe8966ee753a3f2b019fe1e"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab923167cfd945abb9b51a407407cf19f5bee35001221f2911dc85ffd35ff4f"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed6f011bedca8585787e5082cce081bac3d30f54520097b2411351b3574e1219"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6959bb9928c5c999aba4a3f5a6799d571ddc2c59ff49917ecf55be2bbb4e3722"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1ed7de3c86721b4e83ac440751329ec6a1102229aa18163f84c75b06b525ad7e"}, + {file = "rpds_py-0.23.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5fb89edee2fa237584e532fbf78f0ddd1e49a47c7c8cfa153ab4849dc72a35e6"}, + {file = "rpds_py-0.23.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7e5413d2e2d86025e73f05510ad23dad5950ab8417b7fc6beaad99be8077138b"}, + {file = "rpds_py-0.23.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d31ed4987d72aabdf521eddfb6a72988703c091cfc0064330b9e5f8d6a042ff5"}, + {file = "rpds_py-0.23.1-cp313-cp313t-win32.whl", hash = "sha256:f3429fb8e15b20961efca8c8b21432623d85db2228cc73fe22756c6637aa39e7"}, + {file = "rpds_py-0.23.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d6f6512a90bd5cd9030a6237f5346f046c6f0e40af98657568fa45695d4de59d"}, + {file = "rpds_py-0.23.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:09cd7dbcb673eb60518231e02874df66ec1296c01a4fcd733875755c02014b19"}, + {file = "rpds_py-0.23.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c6760211eee3a76316cf328f5a8bd695b47b1626d21c8a27fb3b2473a884d597"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72e680c1518733b73c994361e4b06441b92e973ef7d9449feec72e8ee4f713da"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ae28144c1daa61366205d32abd8c90372790ff79fc60c1a8ad7fd3c8553a600e"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c698d123ce5d8f2d0cd17f73336615f6a2e3bdcedac07a1291bb4d8e7d82a05a"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98b257ae1e83f81fb947a363a274c4eb66640212516becaff7bef09a5dceacaa"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c9ff044eb07c8468594d12602291c635da292308c8c619244e30698e7fc455a"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7938c7b0599a05246d704b3f5e01be91a93b411d0d6cc62275f025293b8a11ce"}, + {file = "rpds_py-0.23.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e9cb79ecedfc156c0692257ac7ed415243b6c35dd969baa461a6888fc79f2f07"}, + {file = "rpds_py-0.23.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:7b77e07233925bd33fc0022b8537774423e4c6680b6436316c5075e79b6384f4"}, + {file = "rpds_py-0.23.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a970bfaf130c29a679b1d0a6e0f867483cea455ab1535fb427566a475078f27f"}, + {file = "rpds_py-0.23.1-cp39-cp39-win32.whl", hash = "sha256:4233df01a250b3984465faed12ad472f035b7cd5240ea3f7c76b7a7016084495"}, + {file = "rpds_py-0.23.1-cp39-cp39-win_amd64.whl", hash = "sha256:c617d7453a80e29d9973b926983b1e700a9377dbe021faa36041c78537d7b08c"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c1f8afa346ccd59e4e5630d5abb67aba6a9812fddf764fd7eb11f382a345f8cc"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fad784a31869747df4ac968a351e070c06ca377549e4ace94775aaa3ab33ee06"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5a96fcac2f18e5a0a23a75cd27ce2656c66c11c127b0318e508aab436b77428"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3e77febf227a1dc3220159355dba68faa13f8dca9335d97504abf428469fb18b"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26bb3e8de93443d55e2e748e9fd87deb5f8075ca7bc0502cfc8be8687d69a2ec"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db7707dde9143a67b8812c7e66aeb2d843fe33cc8e374170f4d2c50bd8f2472d"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eedaaccc9bb66581d4ae7c50e15856e335e57ef2734dbc5fd8ba3e2a4ab3cb6"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28358c54fffadf0ae893f6c1050e8f8853e45df22483b7fff2f6ab6152f5d8bf"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:633462ef7e61d839171bf206551d5ab42b30b71cac8f10a64a662536e057fdef"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a98f510d86f689fcb486dc59e6e363af04151e5260ad1bdddb5625c10f1e95f8"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e0397dd0b3955c61ef9b22838144aa4bef6f0796ba5cc8edfc64d468b93798b4"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:75307599f0d25bf6937248e5ac4e3bde5ea72ae6618623b86146ccc7845ed00b"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3614d280bf7aab0d3721b5ce0e73434acb90a2c993121b6e81a1c15c665298ac"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e5963ea87f88bddf7edd59644a35a0feecf75f8985430124c253612d4f7d27ae"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad76f44f70aac3a54ceb1813ca630c53415da3a24fd93c570b2dfb4856591017"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2c6ae11e6e93728d86aafc51ced98b1658a0080a7dd9417d24bfb955bb09c3c2"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc869af5cba24d45fb0399b0cfdbcefcf6910bf4dee5d74036a57cf5264b3ff4"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c76b32eb2ab650a29e423525e84eb197c45504b1c1e6e17b6cc91fcfeb1a4b1d"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4263320ed887ed843f85beba67f8b2d1483b5947f2dc73a8b068924558bfeace"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7f9682a8f71acdf59fd554b82b1c12f517118ee72c0f3944eda461606dfe7eb9"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:754fba3084b70162a6b91efceee8a3f06b19e43dac3f71841662053c0584209a"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:a1c66e71ecfd2a4acf0e4bd75e7a3605afa8f9b28a3b497e4ba962719df2be57"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:8d67beb6002441faef8251c45e24994de32c4c8686f7356a1f601ad7c466f7c3"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a1e17d8dc8e57d8e0fd21f8f0f0a5211b3fa258b2e444c2053471ef93fe25a00"}, + {file = "rpds_py-0.23.1.tar.gz", hash = "sha256:7f3240dcfa14d198dba24b8b9cb3b108c06b68d45b7babd9eefc1038fdf7e707"}, ] [[package]] @@ -4991,6 +4847,7 @@ version = "0.17.40" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" optional = false python-versions = ">=3" +groups = ["main"] files = [ {file = "ruamel.yaml-0.17.40-py3-none-any.whl", hash = "sha256:b16b6c3816dff0a93dca12acf5e70afd089fa5acb80604afd1ffa8b465b7722c"}, {file = "ruamel.yaml-0.17.40.tar.gz", hash = "sha256:6024b986f06765d482b5b07e086cc4b4cd05dd22ddcbc758fa23d54873cf313d"}, @@ -5009,6 +4866,8 @@ version = "0.2.12" description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" optional = false python-versions = ">=3.9" +groups = ["main"] +markers = "platform_python_implementation == \"CPython\"" files = [ {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:11f891336688faf5156a36293a9c362bdc7c88f03a8a027c2c1d8e0bcde998e5"}, {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:a606ef75a60ecf3d924613892cc603b154178ee25abb3055db5062da811fd969"}, @@ -5055,37 +4914,42 @@ files = [ [[package]] name = "scikit-learn" -version = "1.5.2" +version = "1.6.1" description = "A set of python modules for machine learning and data mining" optional = false python-versions = ">=3.9" -files = [ - {file = "scikit_learn-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:299406827fb9a4f862626d0fe6c122f5f87f8910b86fe5daa4c32dcd742139b6"}, - {file = "scikit_learn-1.5.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:2d4cad1119c77930b235579ad0dc25e65c917e756fe80cab96aa3b9428bd3fb0"}, - {file = "scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c412ccc2ad9bf3755915e3908e677b367ebc8d010acbb3f182814524f2e5540"}, - {file = "scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a686885a4b3818d9e62904d91b57fa757fc2bed3e465c8b177be652f4dd37c8"}, - {file = "scikit_learn-1.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:c15b1ca23d7c5f33cc2cb0a0d6aaacf893792271cddff0edbd6a40e8319bc113"}, - {file = "scikit_learn-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03b6158efa3faaf1feea3faa884c840ebd61b6484167c711548fce208ea09445"}, - {file = "scikit_learn-1.5.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1ff45e26928d3b4eb767a8f14a9a6efbf1cbff7c05d1fb0f95f211a89fd4f5de"}, - {file = "scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f763897fe92d0e903aa4847b0aec0e68cadfff77e8a0687cabd946c89d17e675"}, - {file = "scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8b0ccd4a902836493e026c03256e8b206656f91fbcc4fde28c57a5b752561f1"}, - {file = "scikit_learn-1.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:6c16d84a0d45e4894832b3c4d0bf73050939e21b99b01b6fd59cbb0cf39163b6"}, - {file = "scikit_learn-1.5.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f932a02c3f4956dfb981391ab24bda1dbd90fe3d628e4b42caef3e041c67707a"}, - {file = "scikit_learn-1.5.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:3b923d119d65b7bd555c73be5423bf06c0105678ce7e1f558cb4b40b0a5502b1"}, - {file = "scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f60021ec1574e56632be2a36b946f8143bf4e5e6af4a06d85281adc22938e0dd"}, - {file = "scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:394397841449853c2290a32050382edaec3da89e35b3e03d6cc966aebc6a8ae6"}, - {file = "scikit_learn-1.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:57cc1786cfd6bd118220a92ede80270132aa353647684efa385a74244a41e3b1"}, - {file = "scikit_learn-1.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9a702e2de732bbb20d3bad29ebd77fc05a6b427dc49964300340e4c9328b3f5"}, - {file = "scikit_learn-1.5.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:b0768ad641981f5d3a198430a1d31c3e044ed2e8a6f22166b4d546a5116d7908"}, - {file = "scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:178ddd0a5cb0044464fc1bfc4cca5b1833bfc7bb022d70b05db8530da4bb3dd3"}, - {file = "scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7284ade780084d94505632241bf78c44ab3b6f1e8ccab3d2af58e0e950f9c12"}, - {file = "scikit_learn-1.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:b7b0f9a0b1040830d38c39b91b3a44e1b643f4b36e36567b80b7c6bd2202a27f"}, - {file = "scikit_learn-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:757c7d514ddb00ae249832fe87100d9c73c6ea91423802872d9e74970a0e40b9"}, - {file = "scikit_learn-1.5.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:52788f48b5d8bca5c0736c175fa6bdaab2ef00a8f536cda698db61bd89c551c1"}, - {file = "scikit_learn-1.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:643964678f4b5fbdc95cbf8aec638acc7aa70f5f79ee2cdad1eec3df4ba6ead8"}, - {file = "scikit_learn-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca64b3089a6d9b9363cd3546f8978229dcbb737aceb2c12144ee3f70f95684b7"}, - {file = "scikit_learn-1.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:3bed4909ba187aca80580fe2ef370d9180dcf18e621a27c4cf2ef10d279a7efe"}, - {file = "scikit_learn-1.5.2.tar.gz", hash = "sha256:b4237ed7b3fdd0a4882792e68ef2545d5baa50aca3bb45aa7df468138ad8f94d"}, +groups = ["main"] +files = [ + {file = "scikit_learn-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d056391530ccd1e501056160e3c9673b4da4805eb67eb2bdf4e983e1f9c9204e"}, + {file = "scikit_learn-1.6.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:0c8d036eb937dbb568c6242fa598d551d88fb4399c0344d95c001980ec1c7d36"}, + {file = "scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8634c4bd21a2a813e0a7e3900464e6d593162a29dd35d25bdf0103b3fce60ed5"}, + {file = "scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:775da975a471c4f6f467725dff0ced5c7ac7bda5e9316b260225b48475279a1b"}, + {file = "scikit_learn-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:8a600c31592bd7dab31e1c61b9bbd6dea1b3433e67d264d17ce1017dbdce8002"}, + {file = "scikit_learn-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72abc587c75234935e97d09aa4913a82f7b03ee0b74111dcc2881cba3c5a7b33"}, + {file = "scikit_learn-1.6.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:b3b00cdc8f1317b5f33191df1386c0befd16625f49d979fe77a8d44cae82410d"}, + {file = "scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc4765af3386811c3ca21638f63b9cf5ecf66261cc4815c1db3f1e7dc7b79db2"}, + {file = "scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25fc636bdaf1cc2f4a124a116312d837148b5e10872147bdaf4887926b8c03d8"}, + {file = "scikit_learn-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:fa909b1a36e000a03c382aade0bd2063fd5680ff8b8e501660c0f59f021a6415"}, + {file = "scikit_learn-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:926f207c804104677af4857b2c609940b743d04c4c35ce0ddc8ff4f053cddc1b"}, + {file = "scikit_learn-1.6.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c2cae262064e6a9b77eee1c8e768fc46aa0b8338c6a8297b9b6759720ec0ff2"}, + {file = "scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1061b7c028a8663fb9a1a1baf9317b64a257fcb036dae5c8752b2abef31d136f"}, + {file = "scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e69fab4ebfc9c9b580a7a80111b43d214ab06250f8a7ef590a4edf72464dd86"}, + {file = "scikit_learn-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:70b1d7e85b1c96383f872a519b3375f92f14731e279a7b4c6cfd650cf5dffc52"}, + {file = "scikit_learn-1.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322"}, + {file = "scikit_learn-1.6.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1"}, + {file = "scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348"}, + {file = "scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97"}, + {file = "scikit_learn-1.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb"}, + {file = "scikit_learn-1.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236"}, + {file = "scikit_learn-1.6.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35"}, + {file = "scikit_learn-1.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691"}, + {file = "scikit_learn-1.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f"}, + {file = "scikit_learn-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6849dd3234e87f55dce1db34c89a810b489ead832aaf4d4550b7ea85628be6c1"}, + {file = "scikit_learn-1.6.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e7be3fa5d2eb9be7d77c3734ff1d599151bb523674be9b834e8da6abe132f44e"}, + {file = "scikit_learn-1.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44a17798172df1d3c1065e8fcf9019183f06c87609b49a124ebdf57ae6cb0107"}, + {file = "scikit_learn-1.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b7a3b86e411e4bce21186e1c180d792f3d99223dcfa3b4f597ecc92fa1a422"}, + {file = "scikit_learn-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:7a73d457070e3318e32bdb3aa79a8d990474f19035464dfd8bede2883ab5dc3b"}, + {file = "scikit_learn-1.6.1.tar.gz", hash = "sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e"}, ] [package.dependencies] @@ -5097,61 +4961,75 @@ threadpoolctl = ">=3.1.0" [package.extras] benchmark = ["matplotlib (>=3.3.4)", "memory_profiler (>=0.57.0)", "pandas (>=1.1.5)"] build = ["cython (>=3.0.10)", "meson-python (>=0.16.0)", "numpy (>=1.19.5)", "scipy (>=1.6.0)"] -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)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pydata-sphinx-theme (>=0.15.3)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)", "sphinx (>=7.3.7)", "sphinx-copybutton (>=0.5.2)", "sphinx-design (>=0.5.0)", "sphinx-design (>=0.6.0)", "sphinx-gallery (>=0.16.0)", "sphinx-prompt (>=1.4.0)", "sphinx-remove-toctrees (>=1.0.0.post1)", "sphinxcontrib-sass (>=0.3.4)", "sphinxext-opengraph (>=0.9.1)"] +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)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pydata-sphinx-theme (>=0.15.3)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)", "sphinx (>=7.3.7)", "sphinx-copybutton (>=0.5.2)", "sphinx-design (>=0.5.0)", "sphinx-design (>=0.6.0)", "sphinx-gallery (>=0.17.1)", "sphinx-prompt (>=1.4.0)", "sphinx-remove-toctrees (>=1.0.0.post1)", "sphinxcontrib-sass (>=0.3.4)", "sphinxext-opengraph (>=0.9.1)", "towncrier (>=24.8.0)"] 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)"] install = ["joblib (>=1.2.0)", "numpy (>=1.19.5)", "scipy (>=1.6.0)", "threadpoolctl (>=3.1.0)"] maintenance = ["conda-lock (==2.5.6)"] -tests = ["black (>=24.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.9)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.2.1)", "scikit-image (>=0.17.2)"] +tests = ["black (>=24.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.9)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.5.1)", "scikit-image (>=0.17.2)"] [[package]] name = "scipy" -version = "1.14.1" +version = "1.15.2" description = "Fundamental algorithms for scientific computing in Python" optional = false python-versions = ">=3.10" -files = [ - {file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"}, - {file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"}, - {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0"}, - {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3"}, - {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d"}, - {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69"}, - {file = "scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad"}, - {file = "scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5"}, - {file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"}, - {file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"}, - {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"}, - {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"}, - {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"}, - {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"}, - {file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"}, - {file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"}, - {file = "scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d"}, - {file = "scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07"}, - {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5"}, - {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc"}, - {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310"}, - {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066"}, - {file = "scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1"}, - {file = "scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f"}, - {file = "scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79"}, - {file = "scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e"}, - {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73"}, - {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e"}, - {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d"}, - {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e"}, - {file = "scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06"}, - {file = "scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84"}, - {file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"}, +groups = ["main"] +files = [ + {file = "scipy-1.15.2-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a2ec871edaa863e8213ea5df811cd600734f6400b4af272e1c011e69401218e9"}, + {file = "scipy-1.15.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:6f223753c6ea76983af380787611ae1291e3ceb23917393079dcc746ba60cfb5"}, + {file = "scipy-1.15.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:ecf797d2d798cf7c838c6d98321061eb3e72a74710e6c40540f0e8087e3b499e"}, + {file = "scipy-1.15.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:9b18aa747da280664642997e65aab1dd19d0c3d17068a04b3fe34e2559196cb9"}, + {file = "scipy-1.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87994da02e73549dfecaed9e09a4f9d58a045a053865679aeb8d6d43747d4df3"}, + {file = "scipy-1.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69ea6e56d00977f355c0f84eba69877b6df084516c602d93a33812aa04d90a3d"}, + {file = "scipy-1.15.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:888307125ea0c4466287191e5606a2c910963405ce9671448ff9c81c53f85f58"}, + {file = "scipy-1.15.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9412f5e408b397ff5641080ed1e798623dbe1ec0d78e72c9eca8992976fa65aa"}, + {file = "scipy-1.15.2-cp310-cp310-win_amd64.whl", hash = "sha256:b5e025e903b4f166ea03b109bb241355b9c42c279ea694d8864d033727205e65"}, + {file = "scipy-1.15.2-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:92233b2df6938147be6fa8824b8136f29a18f016ecde986666be5f4d686a91a4"}, + {file = "scipy-1.15.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:62ca1ff3eb513e09ed17a5736929429189adf16d2d740f44e53270cc800ecff1"}, + {file = "scipy-1.15.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4c6676490ad76d1c2894d77f976144b41bd1a4052107902238047fb6a473e971"}, + {file = "scipy-1.15.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:a8bf5cb4a25046ac61d38f8d3c3426ec11ebc350246a4642f2f315fe95bda655"}, + {file = "scipy-1.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a8e34cf4c188b6dd004654f88586d78f95639e48a25dfae9c5e34a6dc34547e"}, + {file = "scipy-1.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28a0d2c2075946346e4408b211240764759e0fabaeb08d871639b5f3b1aca8a0"}, + {file = "scipy-1.15.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:42dabaaa798e987c425ed76062794e93a243be8f0f20fff6e7a89f4d61cb3d40"}, + {file = "scipy-1.15.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6f5e296ec63c5da6ba6fa0343ea73fd51b8b3e1a300b0a8cae3ed4b1122c7462"}, + {file = "scipy-1.15.2-cp311-cp311-win_amd64.whl", hash = "sha256:597a0c7008b21c035831c39927406c6181bcf8f60a73f36219b69d010aa04737"}, + {file = "scipy-1.15.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c4697a10da8f8765bb7c83e24a470da5797e37041edfd77fd95ba3811a47c4fd"}, + {file = "scipy-1.15.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:869269b767d5ee7ea6991ed7e22b3ca1f22de73ab9a49c44bad338b725603301"}, + {file = "scipy-1.15.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:bad78d580270a4d32470563ea86c6590b465cb98f83d760ff5b0990cb5518a93"}, + {file = "scipy-1.15.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b09ae80010f52efddb15551025f9016c910296cf70adbf03ce2a8704f3a5ad20"}, + {file = "scipy-1.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a6fd6eac1ce74a9f77a7fc724080d507c5812d61e72bd5e4c489b042455865e"}, + {file = "scipy-1.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b871df1fe1a3ba85d90e22742b93584f8d2b8e6124f8372ab15c71b73e428b8"}, + {file = "scipy-1.15.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:03205d57a28e18dfd39f0377d5002725bf1f19a46f444108c29bdb246b6c8a11"}, + {file = "scipy-1.15.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:601881dfb761311045b03114c5fe718a12634e5608c3b403737ae463c9885d53"}, + {file = "scipy-1.15.2-cp312-cp312-win_amd64.whl", hash = "sha256:e7c68b6a43259ba0aab737237876e5c2c549a031ddb7abc28c7b47f22e202ded"}, + {file = "scipy-1.15.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01edfac9f0798ad6b46d9c4c9ca0e0ad23dbf0b1eb70e96adb9fa7f525eff0bf"}, + {file = "scipy-1.15.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:08b57a9336b8e79b305a143c3655cc5bdbe6d5ece3378578888d2afbb51c4e37"}, + {file = "scipy-1.15.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:54c462098484e7466362a9f1672d20888f724911a74c22ae35b61f9c5919183d"}, + {file = "scipy-1.15.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:cf72ff559a53a6a6d77bd8eefd12a17995ffa44ad86c77a5df96f533d4e6c6bb"}, + {file = "scipy-1.15.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9de9d1416b3d9e7df9923ab23cd2fe714244af10b763975bea9e4f2e81cebd27"}, + {file = "scipy-1.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb530e4794fc8ea76a4a21ccb67dea33e5e0e60f07fc38a49e821e1eae3b71a0"}, + {file = "scipy-1.15.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5ea7ed46d437fc52350b028b1d44e002646e28f3e8ddc714011aaf87330f2f32"}, + {file = "scipy-1.15.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:11e7ad32cf184b74380f43d3c0a706f49358b904fa7d5345f16ddf993609184d"}, + {file = "scipy-1.15.2-cp313-cp313-win_amd64.whl", hash = "sha256:a5080a79dfb9b78b768cebf3c9dcbc7b665c5875793569f48bf0e2b1d7f68f6f"}, + {file = "scipy-1.15.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:447ce30cee6a9d5d1379087c9e474628dab3db4a67484be1b7dc3196bfb2fac9"}, + {file = "scipy-1.15.2-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:c90ebe8aaa4397eaefa8455a8182b164a6cc1d59ad53f79943f266d99f68687f"}, + {file = "scipy-1.15.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:def751dd08243934c884a3221156d63e15234a3155cf25978b0a668409d45eb6"}, + {file = "scipy-1.15.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:302093e7dfb120e55515936cb55618ee0b895f8bcaf18ff81eca086c17bd80af"}, + {file = "scipy-1.15.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cd5b77413e1855351cdde594eca99c1f4a588c2d63711388b6a1f1c01f62274"}, + {file = "scipy-1.15.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d0194c37037707b2afa7a2f2a924cf7bac3dc292d51b6a925e5fcb89bc5c776"}, + {file = "scipy-1.15.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:bae43364d600fdc3ac327db99659dcb79e6e7ecd279a75fe1266669d9a652828"}, + {file = "scipy-1.15.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f031846580d9acccd0044efd1a90e6f4df3a6e12b4b6bd694a7bc03a89892b28"}, + {file = "scipy-1.15.2-cp313-cp313t-win_amd64.whl", hash = "sha256:fe8a9eb875d430d81755472c5ba75e84acc980e4a8f6204d402849234d3017db"}, + {file = "scipy-1.15.2.tar.gz", hash = "sha256:cd58a314d92838f7e6f755c8a2167ead4f27e1fd5c1251fd54289569ef3495ec"}, ] [package.dependencies] -numpy = ">=1.23.5,<2.3" +numpy = ">=1.23.5,<2.5" [package.extras] dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] -doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<=7.3.7)", "sphinx-design (>=0.4.0)"] -test = ["Cython", "array-api-strict (>=2.0)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +doc = ["intersphinx_registry", "jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.16.5)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<8.0.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0)"] +test = ["Cython", "array-api-strict (>=2.0,<2.1.1)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja ; sys_platform != \"emscripten\"", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "seaborn" @@ -5159,6 +5037,7 @@ version = "0.13.2" description = "Statistical data visualization" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987"}, {file = "seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7"}, @@ -5180,15 +5059,16 @@ version = "1.8.3" description = "Send file to trash natively under Mac OS X, Windows and Linux" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +groups = ["dev", "voila"] files = [ {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, ] [package.extras] -nativelib = ["pyobjc-framework-Cocoa", "pywin32"] -objc = ["pyobjc-framework-Cocoa"] -win32 = ["pywin32"] +nativelib = ["pyobjc-framework-Cocoa ; sys_platform == \"darwin\"", "pywin32 ; sys_platform == \"win32\""] +objc = ["pyobjc-framework-Cocoa ; sys_platform == \"darwin\""] +win32 = ["pywin32 ; sys_platform == \"win32\""] [[package]] name = "setuptools" @@ -5196,6 +5076,7 @@ version = "70.3.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "setuptools-70.3.0-py3-none-any.whl", hash = "sha256:fe384da74336c398e0d956d1cae0669bc02eed936cdb1d49b57de1990dc11ffc"}, {file = "setuptools-70.3.0.tar.gz", hash = "sha256:f171bab1dfbc86b132997f26a119f6056a57950d058587841a0082e8830f9dc5"}, @@ -5203,136 +5084,138 @@ files = [ [package.extras] 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"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-ruff (>=0.3.2) ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "simplejson" -version = "3.19.3" +version = "3.20.1" description = "Simple, fast, extensible JSON encoder/decoder for Python" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.5" -files = [ - {file = "simplejson-3.19.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f39caec26007a2d0efab6b8b1d74873ede9351962707afab622cc2285dd26ed0"}, - {file = "simplejson-3.19.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:83c87706265ae3028e8460d08b05f30254c569772e859e5ba61fe8af2c883468"}, - {file = "simplejson-3.19.3-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0b5ddd2c7d1d3f4d23224bc8a04bbf1430ae9a8149c05b90f8fc610f7f857a23"}, - {file = "simplejson-3.19.3-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:ad0e0b1ce9bd3edb5cf64b5b5b76eacbfdac8c5367153aeeec8a8b1407f68342"}, - {file = "simplejson-3.19.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:93be280fc69a952c76e261036312c20b910e7fa9e234f1d89bdfe3fa34f8a023"}, - {file = "simplejson-3.19.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:6d43e24b88c80f997081503f693be832fc90854f278df277dd54f8a4c847ab61"}, - {file = "simplejson-3.19.3-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:2876027ebdd599d730d36464debe84619b0368e9a642ca6e7c601be55aed439e"}, - {file = "simplejson-3.19.3-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:0766ca6222b410e08e0053a0dda3606cafb3973d5d00538307f631bb59743396"}, - {file = "simplejson-3.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:50d8b742d74c449c4dcac570d08ce0f21f6a149d2d9cf7652dbf2ba9a1bc729a"}, - {file = "simplejson-3.19.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd011fc3c1d88b779645495fdb8189fb318a26981eebcce14109460e062f209b"}, - {file = "simplejson-3.19.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:637c4d4b81825c1f4d651e56210bd35b5604034b192b02d2d8f17f7ce8c18f42"}, - {file = "simplejson-3.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f56eb03bc9e432bb81adc8ecff2486d39feb371abb442964ffb44f6db23b332"}, - {file = "simplejson-3.19.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ef59a53be400c1fad2c914b8d74c9d42384fed5174f9321dd021b7017fd40270"}, - {file = "simplejson-3.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72e8abbc86fcac83629a030888b45fed3a404d54161118be52cb491cd6975d3e"}, - {file = "simplejson-3.19.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8efb03ca77bd7725dfacc9254df00d73e6f43013cf39bd37ef1a8ed0ebb5165"}, - {file = "simplejson-3.19.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:add8850db04b98507a8b62d248a326ecc8561e6d24336d1ca5c605bbfaab4cad"}, - {file = "simplejson-3.19.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fc3dc9fb413fc34c396f52f4c87de18d0bd5023804afa8ab5cc224deeb6a9900"}, - {file = "simplejson-3.19.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4dfa420bb9225dd33b6efdabde7c6a671b51150b9b1d9c4e5cd74d3b420b3fe1"}, - {file = "simplejson-3.19.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7b5c472099b39b274dcde27f1113db8d818c9aa3ba8f78cbb8ad04a4c1ac2118"}, - {file = "simplejson-3.19.3-cp310-cp310-win32.whl", hash = "sha256:817abad79241ed4a507b3caf4d3f2be5079f39d35d4c550a061988986bffd2ec"}, - {file = "simplejson-3.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:dd5b9b1783e14803e362a558680d88939e830db2466f3fa22df5c9319f8eea94"}, - {file = "simplejson-3.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e88abff510dcff903a18d11c2a75f9964e768d99c8d147839913886144b2065e"}, - {file = "simplejson-3.19.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:934a50a614fb831614db5dbfba35127ee277624dda4d15895c957d2f5d48610c"}, - {file = "simplejson-3.19.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:212fce86a22188b0c7f53533b0f693ea9605c1a0f02c84c475a30616f55a744d"}, - {file = "simplejson-3.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d9e8f836688a8fabe6a6b41b334aa550a6823f7b4ac3d3712fc0ad8655be9a8"}, - {file = "simplejson-3.19.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23228037dc5d41c36666384062904d74409a62f52283d9858fa12f4c22cffad1"}, - {file = "simplejson-3.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0791f64fed7d4abad639491f8a6b1ba56d3c604eb94b50f8697359b92d983f36"}, - {file = "simplejson-3.19.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4f614581b61a26fbbba232a1391f6cee82bc26f2abbb6a0b44a9bba25c56a1c"}, - {file = "simplejson-3.19.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1df0aaf1cb787fdf34484ed4a1f0c545efd8811f6028623290fef1a53694e597"}, - {file = "simplejson-3.19.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:951095be8d4451a7182403354c22ec2de3e513e0cc40408b689af08d02611588"}, - {file = "simplejson-3.19.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2a954b30810988feeabde843e3263bf187697e0eb5037396276db3612434049b"}, - {file = "simplejson-3.19.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c40df31a75de98db2cdfead6074d4449cd009e79f54c1ebe5e5f1f153c68ad20"}, - {file = "simplejson-3.19.3-cp311-cp311-win32.whl", hash = "sha256:7e2a098c21ad8924076a12b6c178965d88a0ad75d1de67e1afa0a66878f277a5"}, - {file = "simplejson-3.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:c9bedebdc5fdad48af8783022bae307746d54006b783007d1d3c38e10872a2c6"}, - {file = "simplejson-3.19.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:66a0399e21c2112acacfebf3d832ebe2884f823b1c7e6d1363f2944f1db31a99"}, - {file = "simplejson-3.19.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6ef9383c5e05f445be60f1735c1816163c874c0b1ede8bb4390aff2ced34f333"}, - {file = "simplejson-3.19.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:42e5acf80d4d971238d4df97811286a044d720693092b20a56d5e56b7dcc5d09"}, - {file = "simplejson-3.19.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0b0efc7279d768db7c74d3d07f0b5c81280d16ae3fb14e9081dc903e8360771"}, - {file = "simplejson-3.19.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0552eb06e7234da892e1d02365cd2b7b2b1f8233aa5aabdb2981587b7cc92ea0"}, - {file = "simplejson-3.19.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf6a3b9a7d7191471b464fe38f684df10eb491ec9ea454003edb45a011ab187"}, - {file = "simplejson-3.19.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7017329ca8d4dca94ad5e59f496e5fc77630aecfc39df381ffc1d37fb6b25832"}, - {file = "simplejson-3.19.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:67a20641afebf4cfbcff50061f07daad1eace6e7b31d7622b6fa2c40d43900ba"}, - {file = "simplejson-3.19.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:dd6a7dabcc4c32daf601bc45e01b79175dde4b52548becea4f9545b0a4428169"}, - {file = "simplejson-3.19.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:08f9b443a94e72dd02c87098c96886d35790e79e46b24e67accafbf13b73d43b"}, - {file = "simplejson-3.19.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa97278ae6614346b5ca41a45a911f37a3261b57dbe4a00602048652c862c28b"}, - {file = "simplejson-3.19.3-cp312-cp312-win32.whl", hash = "sha256:ef28c3b328d29b5e2756903aed888960bc5df39b4c2eab157ae212f70ed5bf74"}, - {file = "simplejson-3.19.3-cp312-cp312-win_amd64.whl", hash = "sha256:1e662336db50ad665777e6548b5076329a94a0c3d4a0472971c588b3ef27de3a"}, - {file = "simplejson-3.19.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0959e6cb62e3994b5a40e31047ff97ef5c4138875fae31659bead691bed55896"}, - {file = "simplejson-3.19.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a7bfad839c624e139a4863007233a3f194e7c51551081f9789cba52e4da5167"}, - {file = "simplejson-3.19.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afab2f7f2486a866ff04d6d905e9386ca6a231379181a3838abce1f32fbdcc37"}, - {file = "simplejson-3.19.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d00313681015ac498e1736b304446ee6d1c72c5b287cd196996dad84369998f7"}, - {file = "simplejson-3.19.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d936ae682d5b878af9d9eb4d8bb1fdd5e41275c8eb59ceddb0aeed857bb264a2"}, - {file = "simplejson-3.19.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01c6657485393f2e9b8177c77a7634f13ebe70d5e6de150aae1677d91516ce6b"}, - {file = "simplejson-3.19.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a6a750d3c7461b1c47cfc6bba8d9e57a455e7c5f80057d2a82f738040dd1129"}, - {file = "simplejson-3.19.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ea7a4a998c87c5674a27089e022110a1a08a7753f21af3baf09efe9915c23c3c"}, - {file = "simplejson-3.19.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6300680d83a399be2b8f3b0ef7ef90b35d2a29fe6e9c21438097e0938bbc1564"}, - {file = "simplejson-3.19.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ab69f811a660c362651ae395eba8ce84f84c944cea0df5718ea0ba9d1e4e7252"}, - {file = "simplejson-3.19.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:256e09d0f94d9c3d177d9e95fd27a68c875a4baa2046633df387b86b652f5747"}, - {file = "simplejson-3.19.3-cp313-cp313-win32.whl", hash = "sha256:2c78293470313aefa9cfc5e3f75ca0635721fb016fb1121c1c5b0cb8cc74712a"}, - {file = "simplejson-3.19.3-cp313-cp313-win_amd64.whl", hash = "sha256:3bbcdc438dc1683b35f7a8dc100960c721f922f9ede8127f63bed7dfded4c64c"}, - {file = "simplejson-3.19.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:89b35433186e977fa86ff1fd179c1fadff39cfa3afa1648dab0b6ca53153acd9"}, - {file = "simplejson-3.19.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d43c2d7504eda566c50203cdc9dc043aff6f55f1b7dae0dcd79dfefef9159d1c"}, - {file = "simplejson-3.19.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6890ff9cf0bd2e1d487e2a8869ebd620a44684c0a9667fa5ee751d099d5d84c8"}, - {file = "simplejson-3.19.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1069143a8fb3905e1bc0696c62be7e3adf812e9f1976ac9ae15b05112ff57cc9"}, - {file = "simplejson-3.19.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb324bb903330cbb35d87cce367a12631cd5720afa06e5b9c906483970946da6"}, - {file = "simplejson-3.19.3-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:0a32859d45d7b85fb803bb68f6bee14526991a1190269116c33399fa0daf9bbf"}, - {file = "simplejson-3.19.3-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:23833ee7e791ec968b744dfee2a2d39df7152050051096caf4296506d75608d8"}, - {file = "simplejson-3.19.3-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:d73efb03c5b39249c82488a994f0998f9e4399e3d085209d2120503305ba77a8"}, - {file = "simplejson-3.19.3-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7923878b7a0142d39763ec2dbecff3053c1bedd3653585a8474666e420fe83f5"}, - {file = "simplejson-3.19.3-cp36-cp36m-win32.whl", hash = "sha256:7355c7203353c36d46c4e7b6055293b3d2be097bbc5e2874a2b8a7259f0325dd"}, - {file = "simplejson-3.19.3-cp36-cp36m-win_amd64.whl", hash = "sha256:d1b8b4d6379fe55f471914345fe6171d81a18649dacf3248abfc9c349b4442eb"}, - {file = "simplejson-3.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d36608557b4dcd7a62c29ad4cd7c5a1720bbf7dc942eff9dc42d2c542a5f042d"}, - {file = "simplejson-3.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7137e69c6781ecf23afab064be94a277236c9cba31aa48ff1a0ec3995c69171e"}, - {file = "simplejson-3.19.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76f8c28fe2d426182405b18ddf3001fce47835a557dc15c3d8bdea01c03361da"}, - {file = "simplejson-3.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff7bc1bbdaa3e487c9469128bf39408e91f5573901cb852e03af378d3582c52d"}, - {file = "simplejson-3.19.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0782cb9bf827f0c488b6aa0f2819f618308a3caf2973cfd792e45d631bec4db"}, - {file = "simplejson-3.19.3-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:6fea0716c593dabb4392c4996d4e902a83b2428e6da82938cf28a523a11eb277"}, - {file = "simplejson-3.19.3-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:8f41bb5370b34f63171e65fdb00e12be1d83675cecb23e627df26f4c88dfc021"}, - {file = "simplejson-3.19.3-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:37105d1d708365b91165e1a6e505bdecc88637091348cf4b6adcdcb4f5a5fb8b"}, - {file = "simplejson-3.19.3-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:b9198c1f1f8910a3b86b60f4fe2556d9d28d3fefe35bffe6be509a27402e694d"}, - {file = "simplejson-3.19.3-cp37-cp37m-win32.whl", hash = "sha256:bc164f32dd9691e7082ce5df24b4cf8c6c394bbf9bdeeb5d843127cd07ab8ad2"}, - {file = "simplejson-3.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:1bd41f2cb1a2c57656ceff67b12d005cb255c728265e222027ad73193a04005a"}, - {file = "simplejson-3.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0733ecd95ae03ae718ec74aad818f5af5f3155d596f7b242acbc1621e765e5fb"}, - {file = "simplejson-3.19.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a0710d1a5e41c4f829caa1572793dd3130c8d65c2b194c24ff29c4c305c26e0"}, - {file = "simplejson-3.19.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1a53a07320c5ff574d8b1a89c937ce33608832f166f39dff0581ac43dc979abd"}, - {file = "simplejson-3.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1773cabfba66a6337b547e45dafbd471b09487370bcab75bd28f626520410d29"}, - {file = "simplejson-3.19.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7c0104b4b7d2c75ccedbf1d9d5a3bd2daa75e51053935a44ba012e2fd4c43752"}, - {file = "simplejson-3.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c49eeb94b8f09dc8a5843c156a22b8bde6aa1ddc65ca8ddc62dddcc001e6a2d"}, - {file = "simplejson-3.19.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3dc5c1a85ff388e98ea877042daec3d157b6db0d85bac6ba5498034689793e7e"}, - {file = "simplejson-3.19.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:49549e3d81ab4a58424405aa545602674d8c35c20e986b42bb8668e782a94bac"}, - {file = "simplejson-3.19.3-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:e1a1452ad5723ff129b081e3c8aa4ba56b8734fee4223355ed7b815a7ece69bc"}, - {file = "simplejson-3.19.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:d0d5a63f1768fed7e78cf55712dee81f5a345e34d34224f3507ebf71df2b754d"}, - {file = "simplejson-3.19.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:7e062767ac165df9a46963f5735aa4eee0089ec1e48b3f2ec46182754b96f55e"}, - {file = "simplejson-3.19.3-cp38-cp38-win32.whl", hash = "sha256:56134bbafe458a7b21f6fddbf889d36bec6d903718f4430768e3af822f8e27c2"}, - {file = "simplejson-3.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:bcde83a553a96dc7533736c547bddaa35414a2566ab0ecf7d3964fc4bdb84c11"}, - {file = "simplejson-3.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b5587feda2b65a79da985ae6d116daf6428bf7489992badc29fc96d16cd27b05"}, - {file = "simplejson-3.19.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e0d2b00ecbcd1a3c5ea1abc8bb99a26508f758c1759fd01c3be482a3655a176f"}, - {file = "simplejson-3.19.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:32a3ada8f3ea41db35e6d37b86dade03760f804628ec22e4fe775b703d567426"}, - {file = "simplejson-3.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f455672f4738b0f47183c5896e3606cd65c9ddee3805a4d18e8c96aa3f47c84"}, - {file = "simplejson-3.19.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b737a5fefedb8333fa50b8db3dcc9b1d18fd6c598f89fa7debff8b46bf4e511"}, - {file = "simplejson-3.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb47ee773ce67476a960e2db4a0a906680c54f662521550828c0cc57d0099426"}, - {file = "simplejson-3.19.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eed8cd98a7b24861da9d3d937f5fbfb6657350c547528a117297fe49e3960667"}, - {file = "simplejson-3.19.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:619756f1dd634b5bdf57d9a3914300526c3b348188a765e45b8b08eabef0c94e"}, - {file = "simplejson-3.19.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:dd7230d061e755d60a4d5445bae854afe33444cdb182f3815cff26ac9fb29a15"}, - {file = "simplejson-3.19.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:101a3c8392028cd704a93c7cba8926594e775ca3c91e0bee82144e34190903f1"}, - {file = "simplejson-3.19.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e557712fc79f251673aeb3fad3501d7d4da3a27eff0857af2e1d1afbbcf6685"}, - {file = "simplejson-3.19.3-cp39-cp39-win32.whl", hash = "sha256:0bc5544e3128891bf613b9f71813ee2ec9c11574806f74dd8bb84e5e95bf64a2"}, - {file = "simplejson-3.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:06662392e4913dc8846d6a71a6d5de86db5fba244831abe1dd741d62a4136764"}, - {file = "simplejson-3.19.3-py3-none-any.whl", hash = "sha256:49cc4c7b940d43bd12bf87ec63f28cbc4964fc4e12c031cc8cd01650f43eb94e"}, - {file = "simplejson-3.19.3.tar.gz", hash = "sha256:8e086896c36210ab6050f2f9f095a5f1e03c83fa0e7f296d6cba425411364680"}, +groups = ["dev"] +files = [ + {file = "simplejson-3.20.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f5272b5866b259fe6c33c4a8c5073bf8b359c3c97b70c298a2f09a69b52c7c41"}, + {file = "simplejson-3.20.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5c0de368f3052a59a1acf21f8b2dd28686a9e4eba2da7efae7ed9554cb31e7bc"}, + {file = "simplejson-3.20.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0821871404a537fd0e22eba240c74c0467c28af6cc435903eca394cfc74a0497"}, + {file = "simplejson-3.20.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:c939a1e576bded47d7d03aa2afc2ae90b928b2cf1d9dc2070ceec51fd463f430"}, + {file = "simplejson-3.20.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:3c4f0a61cdc05550782ca4a2cdb311ea196c2e6be6b24a09bf71360ca8c3ca9b"}, + {file = "simplejson-3.20.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:6c21f5c026ca633cfffcb6bc1fac2e99f65cb2b24657d3bef21aed9916cc3bbf"}, + {file = "simplejson-3.20.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:8d23b7f8d6b72319d6d55a0261089ff621ce87e54731c2d3de6a9bf7be5c028c"}, + {file = "simplejson-3.20.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:cda5c32a98f392909088111ecec23f2b0d39346ceae1a0fea23ab2d1f84ec21d"}, + {file = "simplejson-3.20.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e580aa65d5f6c3bf41b9b4afe74be5d5ddba9576701c107c772d936ea2b5043a"}, + {file = "simplejson-3.20.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4a586ce4f78cec11f22fe55c5bee0f067e803aab9bad3441afe2181693b5ebb5"}, + {file = "simplejson-3.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74a1608f9e6e8c27a4008d70a54270868306d80ed48c9df7872f9f4b8ac87808"}, + {file = "simplejson-3.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03db8cb64154189a92a7786209f24e391644f3a3fa335658be2df2af1960b8d8"}, + {file = "simplejson-3.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eea7e2b7d858f6fdfbf0fe3cb846d6bd8a45446865bc09960e51f3d473c2271b"}, + {file = "simplejson-3.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e66712b17d8425bb7ff8968d4c7c7fd5a2dd7bd63728b28356223c000dd2f91f"}, + {file = "simplejson-3.20.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2cc4f6486f9f515b62f5831ff1888886619b84fc837de68f26d919ba7bbdcbc"}, + {file = "simplejson-3.20.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a3c2df555ee4016148fa192e2b9cd9e60bc1d40769366134882685e90aee2a1e"}, + {file = "simplejson-3.20.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:78520f04b7548a5e476b5396c0847e066f1e0a4c0c5e920da1ad65e95f410b11"}, + {file = "simplejson-3.20.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f4bd49ecde87b0fe9f55cc971449a32832bca9910821f7072bbfae1155eaa007"}, + {file = "simplejson-3.20.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7eaae2b88eb5da53caaffdfa50e2e12022553949b88c0df4f9a9663609373f72"}, + {file = "simplejson-3.20.1-cp310-cp310-win32.whl", hash = "sha256:e836fb88902799eac8debc2b642300748f4860a197fa3d9ea502112b6bb8e142"}, + {file = "simplejson-3.20.1-cp310-cp310-win_amd64.whl", hash = "sha256:b122a19b552b212fc3b5b96fc5ce92333d4a9ac0a800803e1f17ebb16dac4be5"}, + {file = "simplejson-3.20.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:325b8c107253d3217e89d7b50c71015b5b31e2433e6c5bf38967b2f80630a8ca"}, + {file = "simplejson-3.20.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88a7baa8211089b9e58d78fbc1b0b322103f3f3d459ff16f03a36cece0d0fcf0"}, + {file = "simplejson-3.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:299b1007b8101d50d95bc0db1bf5c38dc372e85b504cf77f596462083ee77e3f"}, + {file = "simplejson-3.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ec618ed65caab48e81e3ed29586236a8e57daef792f1f3bb59504a7e98cd10"}, + {file = "simplejson-3.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2cdead1d3197f0ff43373cf4730213420523ba48697743e135e26f3d179f38"}, + {file = "simplejson-3.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3466d2839fdc83e1af42e07b90bc8ff361c4e8796cd66722a40ba14e458faddd"}, + {file = "simplejson-3.20.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d492ed8e92f3a9f9be829205f44b1d0a89af6582f0cf43e0d129fa477b93fe0c"}, + {file = "simplejson-3.20.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f924b485537b640dc69434565463fd6fc0c68c65a8c6e01a823dd26c9983cf79"}, + {file = "simplejson-3.20.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9e8eacf6a3491bf76ea91a8d46726368a6be0eb94993f60b8583550baae9439e"}, + {file = "simplejson-3.20.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d34d04bf90b4cea7c22d8b19091633908f14a096caa301b24c2f3d85b5068fb8"}, + {file = "simplejson-3.20.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:69dd28d4ce38390ea4aaf212902712c0fd1093dc4c1ff67e09687c3c3e15a749"}, + {file = "simplejson-3.20.1-cp311-cp311-win32.whl", hash = "sha256:dfe7a9da5fd2a3499436cd350f31539e0a6ded5da6b5b3d422df016444d65e43"}, + {file = "simplejson-3.20.1-cp311-cp311-win_amd64.whl", hash = "sha256:896a6c04d7861d507d800da7642479c3547060bf97419d9ef73d98ced8258766"}, + {file = "simplejson-3.20.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f31c4a3a7ab18467ee73a27f3e59158255d1520f3aad74315edde7a940f1be23"}, + {file = "simplejson-3.20.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:884e6183d16b725e113b83a6fc0230152ab6627d4d36cb05c89c2c5bccfa7bc6"}, + {file = "simplejson-3.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03d7a426e416fe0d3337115f04164cd9427eb4256e843a6b8751cacf70abc832"}, + {file = "simplejson-3.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:000602141d0bddfcff60ea6a6e97d5e10c9db6b17fd2d6c66199fa481b6214bb"}, + {file = "simplejson-3.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:af8377a8af78226e82e3a4349efdde59ffa421ae88be67e18cef915e4023a595"}, + {file = "simplejson-3.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15c7de4c88ab2fbcb8781a3b982ef883696736134e20b1210bca43fb42ff1acf"}, + {file = "simplejson-3.20.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:455a882ff3f97d810709f7b620007d4e0aca8da71d06fc5c18ba11daf1c4df49"}, + {file = "simplejson-3.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fc0f523ce923e7f38eb67804bc80e0a028c76d7868500aa3f59225574b5d0453"}, + {file = "simplejson-3.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76461ec929282dde4a08061071a47281ad939d0202dc4e63cdd135844e162fbc"}, + {file = "simplejson-3.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ab19c2da8c043607bde4d4ef3a6b633e668a7d2e3d56f40a476a74c5ea71949f"}, + {file = "simplejson-3.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2578bedaedf6294415197b267d4ef678fea336dd78ee2a6d2f4b028e9d07be3"}, + {file = "simplejson-3.20.1-cp312-cp312-win32.whl", hash = "sha256:339f407373325a36b7fd744b688ba5bae0666b5d340ec6d98aebc3014bf3d8ea"}, + {file = "simplejson-3.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:627d4486a1ea7edf1f66bb044ace1ce6b4c1698acd1b05353c97ba4864ea2e17"}, + {file = "simplejson-3.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:71e849e7ceb2178344998cbe5ade101f1b329460243c79c27fbfc51c0447a7c3"}, + {file = "simplejson-3.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b63fdbab29dc3868d6f009a59797cefaba315fd43cd32ddd998ee1da28e50e29"}, + {file = "simplejson-3.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1190f9a3ce644fd50ec277ac4a98c0517f532cfebdcc4bd975c0979a9f05e1fb"}, + {file = "simplejson-3.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1336ba7bcb722ad487cd265701ff0583c0bb6de638364ca947bb84ecc0015d1"}, + {file = "simplejson-3.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e975aac6a5acd8b510eba58d5591e10a03e3d16c1cf8a8624ca177491f7230f0"}, + {file = "simplejson-3.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a6dd11ee282937ad749da6f3b8d87952ad585b26e5edfa10da3ae2536c73078"}, + {file = "simplejson-3.20.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab980fcc446ab87ea0879edad41a5c28f2d86020014eb035cf5161e8de4474c6"}, + {file = "simplejson-3.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f5aee2a4cb6b146bd17333ac623610f069f34e8f31d2f4f0c1a2186e50c594f0"}, + {file = "simplejson-3.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:652d8eecbb9a3b6461b21ec7cf11fd0acbab144e45e600c817ecf18e4580b99e"}, + {file = "simplejson-3.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:8c09948f1a486a89251ee3a67c9f8c969b379f6ffff1a6064b41fea3bce0a112"}, + {file = "simplejson-3.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cbbd7b215ad4fc6f058b5dd4c26ee5c59f72e031dfda3ac183d7968a99e4ca3a"}, + {file = "simplejson-3.20.1-cp313-cp313-win32.whl", hash = "sha256:ae81e482476eaa088ef9d0120ae5345de924f23962c0c1e20abbdff597631f87"}, + {file = "simplejson-3.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:1b9fd15853b90aec3b1739f4471efbf1ac05066a2c7041bf8db821bb73cd2ddc"}, + {file = "simplejson-3.20.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c7edf279c1376f28bf41e916c015a2a08896597869d57d621f55b6a30c7e1e6d"}, + {file = "simplejson-3.20.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9202b9de38f12e99a40addd1a8d508a13c77f46d87ab1f9095f154667f4fe81"}, + {file = "simplejson-3.20.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:391345b4157cc4e120027e013bd35c45e2c191e2bf48b8913af488cdc3b9243c"}, + {file = "simplejson-3.20.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c6fdcc9debb711ddd2ad6d69f9386a3d9e8e253234bbb30513e0a7caa9510c51"}, + {file = "simplejson-3.20.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9daf8cdc7ee8a9e9f7a3b313ba0a003391857e90d0e82fbcd4d614aa05cb7c3b"}, + {file = "simplejson-3.20.1-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:c02f4868a3a46ffe284a51a88d134dc96feff6079a7115164885331a1ba8ed9f"}, + {file = "simplejson-3.20.1-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:3d7310172d5340febd258cb147f46aae30ad57c445f4d7e1ae8461c10aaf43b0"}, + {file = "simplejson-3.20.1-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:4762e05577955312a4c6802f58dd02e040cc79ae59cda510aa1564d84449c102"}, + {file = "simplejson-3.20.1-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:8bb98fdf318c05aefd08a92583bd6ee148e93c6756fb1befb7b2d5f27824be78"}, + {file = "simplejson-3.20.1-cp36-cp36m-win32.whl", hash = "sha256:9a74e70818818981294b8e6956ce3496c5e1bd4726ac864fae473197671f7b85"}, + {file = "simplejson-3.20.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e041add470e8f8535cc05509485eb7205729a84441f03b25cde80ad48823792e"}, + {file = "simplejson-3.20.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7e9d73f46119240e4f4f07868241749d67d09873f40cb968d639aa9ccc488b86"}, + {file = "simplejson-3.20.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae6e637dc24f8fee332ed23dd070e81394138e42cd4fd9d0923e5045ba122e27"}, + {file = "simplejson-3.20.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:efd3bc6c6b17e3d4620eb6be5196f0d1c08b6ce7c3101fa8e292b79e0908944b"}, + {file = "simplejson-3.20.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87fc623d457173a0213bc9ca4e346b83c9d443f63ed5cca847fb0cacea3cfc95"}, + {file = "simplejson-3.20.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec6a1e0a7aff76f0e008bebfa950188b9c50b58c1885d898145f48fc8e189a56"}, + {file = "simplejson-3.20.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:9c079606f461a6e950099167e21e13985147c8a24be8eea66c9ad68f73fad744"}, + {file = "simplejson-3.20.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:9faceb68fba27ef17eda306e4cd97a7b4b14fdadca5fbb15790ba8b26ebeec0c"}, + {file = "simplejson-3.20.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:7ceed598e4bacbf5133fe7a418f7991bb2df0683f3ac11fbf9e36a2bc7aa4b85"}, + {file = "simplejson-3.20.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ede69c765e9901861ad7c6139023b7b7d5807c48a2539d817b4ab40018002d5f"}, + {file = "simplejson-3.20.1-cp37-cp37m-win32.whl", hash = "sha256:d8853c269a4c5146ddca4aa7c70e631795e9d11239d5fedb1c6bbc91ffdebcac"}, + {file = "simplejson-3.20.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ed6a17fd397f0e2b3ad668fc9e19253ed2e3875ad9086bd7f795c29a3223f4a1"}, + {file = "simplejson-3.20.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7551682b60bba3a9e2780742e101cf0a64250e76de7d09b1c4b0c8a7c7cc6834"}, + {file = "simplejson-3.20.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bd9577ec1c8c3a43040e3787711e4c257c70035b7551a21854b5dec88dad09e1"}, + {file = "simplejson-3.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a8e197e4cf6d42c2c57e7c52cd7c1e7b3e37c5911df1314fb393320131e2101"}, + {file = "simplejson-3.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bd09c8c75666e7f62a33d2f1fb57f81da1fcbb19a9fe7d7910b5756e1dd6048"}, + {file = "simplejson-3.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1bd6bfe5678d73fbd5328eea6a35216503796428fc47f1237432522febaf3a0c"}, + {file = "simplejson-3.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71b75d448fd0ceb2e7c90e72bb82c41f8462550d48529980bc0bab1d2495bfbb"}, + {file = "simplejson-3.20.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7e15b716d09f318c8cda3e20f82fae81684ce3d3acd1d7770fa3007df1769de"}, + {file = "simplejson-3.20.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3e7963197d958fcf9e98b212b80977d56c022384621ff463d98afc3b6b1ce7e8"}, + {file = "simplejson-3.20.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:2e671dd62051129185d3a9a92c60101f56cbc174854a1a3dfb69114ebd9e1699"}, + {file = "simplejson-3.20.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e25b2a0c396f3b84fb89573d07b0e1846ed563eb364f2ea8230ca92b8a8cb786"}, + {file = "simplejson-3.20.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:489c3a43116082bad56795215786313832ba3991cca1f55838e52a553f451ab6"}, + {file = "simplejson-3.20.1-cp38-cp38-win32.whl", hash = "sha256:4a92e948bad8df7fa900ba2ba0667a98303f3db206cbaac574935c332838208e"}, + {file = "simplejson-3.20.1-cp38-cp38-win_amd64.whl", hash = "sha256:49d059b8363327eee3c94799dd96782314b2dbd7bcc293b4ad48db69d6f4d362"}, + {file = "simplejson-3.20.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a8011f1dd1d676befcd4d675ebdbfdbbefd3bf350052b956ba8c699fca7d8cef"}, + {file = "simplejson-3.20.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e91703a4c5fec53e36875ae426ad785f4120bd1d93b65bed4752eeccd1789e0c"}, + {file = "simplejson-3.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e39eaa57c7757daa25bcd21f976c46be443b73dd6c3da47fe5ce7b7048ccefe2"}, + {file = "simplejson-3.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceab2ce2acdc7fbaa433a93006758db6ba9a659e80c4faa13b80b9d2318e9b17"}, + {file = "simplejson-3.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d4f320c33277a5b715db5bf5b10dae10c19076bd6d66c2843e04bd12d1f1ea5"}, + {file = "simplejson-3.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b6436c48e64378fa844d8c9e58a5ed0352bbcfd4028369a9b46679b7ab79d2d"}, + {file = "simplejson-3.20.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e18345c8dda5d699be8166b61f9d80aaee4545b709f1363f60813dc032dac53"}, + {file = "simplejson-3.20.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:90b573693d1526bed576f6817e2a492eaaef68f088b57d7a9e83d122bbb49e51"}, + {file = "simplejson-3.20.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:272cc767826e924a6bd369ea3dbf18e166ded29059c7a4d64d21a9a22424b5b5"}, + {file = "simplejson-3.20.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:51b41f284d603c4380732d7d619f8b34bd04bc4aa0ed0ed5f4ffd0539b14da44"}, + {file = "simplejson-3.20.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6e6697a3067d281f01de0fe96fc7cba4ea870d96d7deb7bfcf85186d74456503"}, + {file = "simplejson-3.20.1-cp39-cp39-win32.whl", hash = "sha256:6dd3a1d5aca87bf947f3339b0f8e8e329f1badf548bdbff37fac63c17936da8e"}, + {file = "simplejson-3.20.1-cp39-cp39-win_amd64.whl", hash = "sha256:463f1fca8fbf23d088e5850fdd0dd4d5faea8900a9f9680270bd98fd649814ca"}, + {file = "simplejson-3.20.1-py3-none-any.whl", hash = "sha256:8a6c1bbac39fa4a79f83cbf1df6ccd8ff7069582a9fd8db1e52cea073bc2c697"}, + {file = "simplejson-3.20.1.tar.gz", hash = "sha256:e64139b4ec4f1f24c142ff7dcafe55a22b811a74d86d66560c8815687143037d"}, ] [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main", "dev", "voila"] files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] [[package]] @@ -5341,6 +5224,7 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" +groups = ["dev", "voila"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -5352,6 +5236,7 @@ version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, @@ -5363,6 +5248,7 @@ version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"}, {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"}, @@ -5374,6 +5260,7 @@ version = "2.6" description = "A modern CSS selector implementation for Beautiful Soup." optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] files = [ {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, @@ -5385,6 +5272,7 @@ version = "0.4.4" description = "Pure Python implementation of the squarify treemap layout algorithm" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "squarify-0.4.4-py3-none-any.whl", hash = "sha256:d7597724e29d48aa14fd2f551060d6b09e1f0a67e4cd3ea329fe03b4c9a56f11"}, {file = "squarify-0.4.4.tar.gz", hash = "sha256:b8a110c8dc5f1cd1402ca12d79764a081e90bfc445346cfa166df929753ecb46"}, @@ -5396,6 +5284,7 @@ version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" optional = false python-versions = "*" +groups = ["main", "dev"] files = [ {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, @@ -5415,6 +5304,7 @@ version = "0.14.4" description = "Statistical computations and models for Python" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "statsmodels-0.14.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7a62f1fc9086e4b7ee789a6f66b3c0fc82dd8de1edda1522d30901a0aa45e42b"}, {file = "statsmodels-0.14.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:46ac7ddefac0c9b7b607eed1d47d11e26fe92a1bc1f4d9af48aeed4e21e87981"}, @@ -5457,7 +5347,7 @@ scipy = ">=1.8,<1.9.2 || >1.9.2" [package.extras] build = ["cython (>=3.0.10)"] -develop = ["colorama", "cython (>=3.0.10)", "cython (>=3.0.10,<4)", "flake8", "isort", "joblib", "matplotlib (>=3)", "pytest (>=7.3.0,<8)", "pytest-cov", "pytest-randomly", "pytest-xdist", "pywinpty", "setuptools-scm[toml] (>=8.0,<9.0)"] +develop = ["colorama", "cython (>=3.0.10)", "cython (>=3.0.10,<4)", "flake8", "isort", "joblib", "matplotlib (>=3)", "pytest (>=7.3.0,<8)", "pytest-cov", "pytest-randomly", "pytest-xdist", "pywinpty ; os_name == \"nt\"", "setuptools-scm[toml] (>=8.0,<9.0)"] docs = ["ipykernel", "jupyter-client", "matplotlib", "nbconvert", "nbformat", "numpydoc", "pandas-datareader", "sphinx"] [[package]] @@ -5466,6 +5356,7 @@ version = "0.4.15" description = "An Enum that inherits from str." optional = false python-versions = "*" +groups = ["main"] files = [ {file = "StrEnum-0.4.15-py3-none-any.whl", hash = "sha256:a30cda4af7cc6b5bf52c8055bc4bf4b2b6b14a93b574626da33df53cf7740659"}, {file = "StrEnum-0.4.15.tar.gz", hash = "sha256:878fb5ab705442070e4dd1929bb5e2249511c0bcf2b0eeacf3bcd80875c82eff"}, @@ -5482,6 +5373,7 @@ version = "0.2.1" description = "A library implementing different string similarity and distance measures" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "strsimpy-0.2.1-py3-none-any.whl", hash = "sha256:d676a440d5d3dbcf5ba92d01814a03a218776ce07bd7a8185da7019e04cf9ba7"}, {file = "strsimpy-0.2.1.tar.gz", hash = "sha256:0842eb57f7af86c882a59a1bc8721ec2580a267e563fd0503ced2972040372c9"}, @@ -5493,6 +5385,8 @@ version = "3.10.1" description = "Hierarchical datasets for Python" optional = false python-versions = ">=3.10" +groups = ["main"] +markers = "python_version < \"3.11\"" files = [ {file = "tables-3.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bca9d11a570ca1bc57f0845e54e55c3093d5a1ace376faee639e09503a73745b"}, {file = "tables-3.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b62881cb682438d1e92b9178db42b160638aef3ca23341f7d98e9b27821b1eb4"}, @@ -5523,12 +5417,48 @@ typing-extensions = ">=4.4.0" [package.extras] doc = ["ipython", "numpydoc", "sphinx (>=1.1,<6)", "sphinx-rtd-theme"] +[[package]] +name = "tables" +version = "3.10.2" +description = "Hierarchical datasets for Python" +optional = false +python-versions = ">=3.11" +groups = ["main"] +markers = "python_version == \"3.11\"" +files = [ + {file = "tables-3.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63f8adec3c4421a011c5c6a245c0c1fccf16dba7aaa67d9915d2821cf365ed4a"}, + {file = "tables-3.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:34c120bff666d33d3bdfb9e33173a4869d5f34e6c87824f2c7ec6a72c8dfab82"}, + {file = "tables-3.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e71f63ac67c583ac42943c99c2d33bcc9e361e94d1ab1a763dc0698bdd9ff815"}, + {file = "tables-3.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:154773f97763ccc91a29bcead6ab7b5ef164c2ed8c409cd79a2115aa9b4184c9"}, + {file = "tables-3.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:96b5e945d275415e79ddb0578657ecc6ac77030dcc0632ab2c39f89390bb239d"}, + {file = "tables-3.10.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c6ba58205d1f6a4e0e2212bc221e76cf104f22190f90c3f1683f3c1ab138f28f"}, + {file = "tables-3.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cdb5c040aa43e5e96259d6f6bb9df5b66fef2b071a6eb035c21bf6508e865d40"}, + {file = "tables-3.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e694123fa886d9be57f55fc7e1dcacac49f0b4ed4a931c795bd8f82f7111b5a8"}, + {file = "tables-3.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6c12d0d04de89297763923ebeaddfd7e0b51f29041895db284fd4913e7448b7"}, + {file = "tables-3.10.2-cp312-cp312-win_amd64.whl", hash = "sha256:a406d5dbbcb6604bd1ca129af337e0790d4e02d29d06159ddb9f74e38d756d32"}, + {file = "tables-3.10.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7b8bc07c715bad3d447ed8f834388ef2e10265e2c4af6b1297fc61adb645948f"}, + {file = "tables-3.10.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:28677ed8e1a371471495599078f48da0850f82457d6c852ca77959c974371140"}, + {file = "tables-3.10.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaaea478dcf27dd54679ef2643c26d3b8b15676ad81e4d80a88fd1682d23deb1"}, + {file = "tables-3.10.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5e67a9f901842f9a4b1f3d2307f4bdd94047514fe0d0c558ed19c11f53c402a"}, + {file = "tables-3.10.2-cp313-cp313-win_amd64.whl", hash = "sha256:5637fdcded5ba5426aa24e0e42d6f990926a4da7f193830df131dfcb7e842900"}, + {file = "tables-3.10.2.tar.gz", hash = "sha256:2544812a7186fadba831d6dd34eb49ccd788d6a83f4e4c2b431b835b6796c910"}, +] + +[package.dependencies] +blosc2 = ">=2.3.0" +numexpr = ">=2.6.2" +numpy = ">=1.20.0" +packaging = "*" +py-cpuinfo = "*" +typing-extensions = ">=4.4.0" + [[package]] name = "tabulate" version = "0.9.0" description = "Pretty-print tabular data" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, @@ -5543,6 +5473,7 @@ version = "9.0.0" description = "Retry code until it succeeds" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, @@ -5558,6 +5489,7 @@ version = "0.18.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, @@ -5579,6 +5511,7 @@ version = "1.3" description = "The most basic Text::Unidecode port" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, @@ -5586,13 +5519,14 @@ files = [ [[package]] name = "threadpoolctl" -version = "3.5.0" +version = "3.6.0" description = "threadpoolctl" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467"}, - {file = "threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107"}, + {file = "threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb"}, + {file = "threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e"}, ] [[package]] @@ -5601,6 +5535,7 @@ version = "1.4.0" description = "A tiny CSS parser" optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, @@ -5619,6 +5554,7 @@ version = "6.1.0" description = "A wrapper around the stdlib `tokenize` which roundtrips." optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "tokenize_rt-6.1.0-py2.py3-none-any.whl", hash = "sha256:d706141cdec4aa5f358945abe36b911b8cbdc844545da99e811250c0cee9b6fc"}, {file = "tokenize_rt-6.1.0.tar.gz", hash = "sha256:e8ee836616c0877ab7c7b54776d2fefcc3bde714449a206762425ae114b53c86"}, @@ -5630,6 +5566,7 @@ version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +groups = ["dev"] files = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, @@ -5637,51 +5574,86 @@ 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"}, -] +groups = ["main", "dev"] +files = [ + {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"}, +] +markers = {main = "python_version < \"3.11\""} [[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" +groups = ["main", "dev", "voila"] 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.6" +version = "4.67.1" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ - {file = "tqdm-4.66.6-py3-none-any.whl", hash = "sha256:223e8b5359c2efc4b30555531f09e9f2f3589bcd7fdd389271191031b49b7a63"}, - {file = "tqdm-4.66.6.tar.gz", hash = "sha256:4bdd694238bef1485ce839d67967ab50af8f9272aab687c0d7702a01da0be090"}, + {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"] @@ -5692,6 +5664,7 @@ version = "5.14.3" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] files = [ {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, @@ -5707,6 +5680,7 @@ version = "3.9" description = "Convert between markup languages" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "txt2tags-3.9-py2.py3-none-any.whl", hash = "sha256:7b1e037798cdf0714d8edfb399733a27978b91c2ac2a2a61de54a03c006115fa"}, {file = "txt2tags-3.9.tar.gz", hash = "sha256:7e4244db6a63aaa58fc17fa4cdec62b6fb89cc41d3a00ba4edaffa37f27d6746"}, @@ -5718,6 +5692,8 @@ version = "1.5.5" description = "a fork of Python 2 and 3 ast modules with type comment support" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"pipeline\"" files = [ {file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"}, {file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"}, @@ -5764,13 +5740,14 @@ files = [ [[package]] name = "types-python-dateutil" -version = "2.9.0.20241003" +version = "2.9.0.20241206" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ - {file = "types-python-dateutil-2.9.0.20241003.tar.gz", hash = "sha256:58cb85449b2a56d6684e41aeefb4c4280631246a0da1a719bdbe6f3fb0317446"}, - {file = "types_python_dateutil-2.9.0.20241003-py3-none-any.whl", hash = "sha256:250e1d8e80e7bbc3a6c99b907762711d1a1cdd00e978ad39cb5940f6f0a87f3d"}, + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, ] [[package]] @@ -5779,6 +5756,7 @@ version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["main", "dev", "voila"] files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, @@ -5790,6 +5768,7 @@ version = "0.9.0" description = "Runtime inspection utilities for typing module." optional = false python-versions = "*" +groups = ["main"] files = [ {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, @@ -5801,13 +5780,14 @@ typing-extensions = ">=3.7.4" [[package]] name = "tzdata" -version = "2024.2" +version = "2025.2" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" +groups = ["main", "dev"] files = [ - {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, - {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, + {file = "tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"}, + {file = "tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"}, ] [[package]] @@ -5816,6 +5796,7 @@ version = "1.3.0" description = "RFC 6570 URI Template Processor" optional = false python-versions = ">=3.7" +groups = ["dev", "voila"] files = [ {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, @@ -5826,30 +5807,32 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.2.3" +version = "2.3.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main", "dev", "voila"] files = [ - {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, - {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.27.1" +version = "20.29.3" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, - {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, + {file = "virtualenv-20.29.3-py3-none-any.whl", hash = "sha256:3e3d00f5807e83b234dfb6122bf37cfadf4be216c53a49ac059d02414f819170"}, + {file = "virtualenv-20.29.3.tar.gz", hash = "sha256:95e39403fcf3940ac45bc717597dba16110b74506131845d9b687d5e73d947ac"}, ] [package.dependencies] @@ -5859,7 +5842,7 @@ platformdirs = ">=3.9.1,<5" [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] [[package]] name = "voila" @@ -5867,6 +5850,7 @@ version = "0.4.6" description = "Voilà turns Jupyter notebooks into standalone web applications" optional = false python-versions = ">=3.8" +groups = ["voila"] files = [ {file = "voila-0.4.6-py3-none-any.whl", hash = "sha256:830f8d874e9085fda6335e1b9dd1179fc478c8d635a6e9ad7fc8389393aec3c4"}, {file = "voila-0.4.6.tar.gz", hash = "sha256:1dbca66019d84e0ec24696b715ca16b447bf479b99b7ff83c5f778c55f2284f6"}, @@ -5893,6 +5877,7 @@ version = "6.0.0" description = "Filesystem events monitoring" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26"}, {file = "watchdog-6.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112"}, @@ -5935,6 +5920,7 @@ version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" optional = false python-versions = "*" +groups = ["main", "dev"] files = [ {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, @@ -5942,25 +5928,23 @@ files = [ [[package]] name = "webcolors" -version = "24.8.0" +version = "24.11.1" description = "A library for working with the color formats defined by HTML and CSS." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["dev", "voila"] files = [ - {file = "webcolors-24.8.0-py3-none-any.whl", hash = "sha256:fc4c3b59358ada164552084a8ebee637c221e4059267d0f8325b3b560f6c7f0a"}, - {file = "webcolors-24.8.0.tar.gz", hash = "sha256:08b07af286a01bcd30d583a7acadf629583d1f79bfef27dd2c2c5c263817277d"}, + {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, + {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, ] -[package.extras] -docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] -tests = ["coverage[toml]"] - [[package]] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" optional = false python-versions = "*" +groups = ["dev", "voila"] files = [ {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, @@ -5972,6 +5956,7 @@ version = "1.8.0" description = "WebSocket client for Python with low level API options" optional = false python-versions = ">=3.8" +groups = ["dev", "voila"] files = [ {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, @@ -5984,111 +5969,97 @@ test = ["websockets"] [[package]] name = "websockets" -version = "13.1" +version = "15.0.1" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = false -python-versions = ">=3.8" -files = [ - {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, - {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, - {file = "websockets-13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6"}, - {file = "websockets-13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676df3fe46956fbb0437d8800cd5f2b6d41143b6e7e842e60554398432cf29b"}, - {file = "websockets-13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7affedeb43a70351bb811dadf49493c9cfd1ed94c9c70095fd177e9cc1541fa"}, - {file = "websockets-13.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1971e62d2caa443e57588e1d82d15f663b29ff9dfe7446d9964a4b6f12c1e700"}, - {file = "websockets-13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5f2e75431f8dc4a47f31565a6e1355fb4f2ecaa99d6b89737527ea917066e26c"}, - {file = "websockets-13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58cf7e75dbf7e566088b07e36ea2e3e2bd5676e22216e4cad108d4df4a7402a0"}, - {file = "websockets-13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c90d6dec6be2c7d03378a574de87af9b1efea77d0c52a8301dd831ece938452f"}, - {file = "websockets-13.1-cp310-cp310-win32.whl", hash = "sha256:730f42125ccb14602f455155084f978bd9e8e57e89b569b4d7f0f0c17a448ffe"}, - {file = "websockets-13.1-cp310-cp310-win_amd64.whl", hash = "sha256:5993260f483d05a9737073be197371940c01b257cc45ae3f1d5d7adb371b266a"}, - {file = "websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19"}, - {file = "websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5"}, - {file = "websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd"}, - {file = "websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02"}, - {file = "websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7"}, - {file = "websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096"}, - {file = "websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084"}, - {file = "websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3"}, - {file = "websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9"}, - {file = "websockets-13.1-cp311-cp311-win32.whl", hash = "sha256:c11d4d16e133f6df8916cc5b7e3e96ee4c44c936717d684a94f48f82edb7c92f"}, - {file = "websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557"}, - {file = "websockets-13.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9d75baf00138f80b48f1eac72ad1535aac0b6461265a0bcad391fc5aba875cfc"}, - {file = "websockets-13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9b6f347deb3dcfbfde1c20baa21c2ac0751afaa73e64e5b693bb2b848efeaa49"}, - {file = "websockets-13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de58647e3f9c42f13f90ac7e5f58900c80a39019848c5547bc691693098ae1bd"}, - {file = "websockets-13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1b54689e38d1279a51d11e3467dd2f3a50f5f2e879012ce8f2d6943f00e83f0"}, - {file = "websockets-13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf1781ef73c073e6b0f90af841aaf98501f975d306bbf6221683dd594ccc52b6"}, - {file = "websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d23b88b9388ed85c6faf0e74d8dec4f4d3baf3ecf20a65a47b836d56260d4b9"}, - {file = "websockets-13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3c78383585f47ccb0fcf186dcb8a43f5438bd7d8f47d69e0b56f71bf431a0a68"}, - {file = "websockets-13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d6d300f8ec35c24025ceb9b9019ae9040c1ab2f01cddc2bcc0b518af31c75c14"}, - {file = "websockets-13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a9dcaf8b0cc72a392760bb8755922c03e17a5a54e08cca58e8b74f6902b433cf"}, - {file = "websockets-13.1-cp312-cp312-win32.whl", hash = "sha256:2f85cf4f2a1ba8f602298a853cec8526c2ca42a9a4b947ec236eaedb8f2dc80c"}, - {file = "websockets-13.1-cp312-cp312-win_amd64.whl", hash = "sha256:38377f8b0cdeee97c552d20cf1865695fcd56aba155ad1b4ca8779a5b6ef4ac3"}, - {file = "websockets-13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9ab1e71d3d2e54a0aa646ab6d4eebfaa5f416fe78dfe4da2839525dc5d765c6"}, - {file = "websockets-13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b9d7439d7fab4dce00570bb906875734df13d9faa4b48e261c440a5fec6d9708"}, - {file = "websockets-13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:327b74e915cf13c5931334c61e1a41040e365d380f812513a255aa804b183418"}, - {file = "websockets-13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:325b1ccdbf5e5725fdcb1b0e9ad4d2545056479d0eee392c291c1bf76206435a"}, - {file = "websockets-13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346bee67a65f189e0e33f520f253d5147ab76ae42493804319b5716e46dddf0f"}, - {file = "websockets-13.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a0fa841646320ec0d3accdff5b757b06e2e5c86ba32af2e0815c96c7a603c5"}, - {file = "websockets-13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18503d2c5f3943e93819238bf20df71982d193f73dcecd26c94514f417f6b135"}, - {file = "websockets-13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9cd1af7e18e5221d2878378fbc287a14cd527fdd5939ed56a18df8a31136bb2"}, - {file = "websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6"}, - {file = "websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d"}, - {file = "websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2"}, - {file = "websockets-13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c7934fd0e920e70468e676fe7f1b7261c1efa0d6c037c6722278ca0228ad9d0d"}, - {file = "websockets-13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:149e622dc48c10ccc3d2760e5f36753db9cacf3ad7bc7bbbfd7d9c819e286f23"}, - {file = "websockets-13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a569eb1b05d72f9bce2ebd28a1ce2054311b66677fcd46cf36204ad23acead8c"}, - {file = "websockets-13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95df24ca1e1bd93bbca51d94dd049a984609687cb2fb08a7f2c56ac84e9816ea"}, - {file = "websockets-13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8dbb1bf0c0a4ae8b40bdc9be7f644e2f3fb4e8a9aca7145bfa510d4a374eeb7"}, - {file = "websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:035233b7531fb92a76beefcbf479504db8c72eb3bff41da55aecce3a0f729e54"}, - {file = "websockets-13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e4450fc83a3df53dec45922b576e91e94f5578d06436871dce3a6be38e40f5db"}, - {file = "websockets-13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:463e1c6ec853202dd3657f156123d6b4dad0c546ea2e2e38be2b3f7c5b8e7295"}, - {file = "websockets-13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6d6855bbe70119872c05107e38fbc7f96b1d8cb047d95c2c50869a46c65a8e96"}, - {file = "websockets-13.1-cp38-cp38-win32.whl", hash = "sha256:204e5107f43095012b00f1451374693267adbb832d29966a01ecc4ce1db26faf"}, - {file = "websockets-13.1-cp38-cp38-win_amd64.whl", hash = "sha256:485307243237328c022bc908b90e4457d0daa8b5cf4b3723fd3c4a8012fce4c6"}, - {file = "websockets-13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b37c184f8b976f0c0a231a5f3d6efe10807d41ccbe4488df8c74174805eea7d"}, - {file = "websockets-13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:163e7277e1a0bd9fb3c8842a71661ad19c6aa7bb3d6678dc7f89b17fbcc4aeb7"}, - {file = "websockets-13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b889dbd1342820cc210ba44307cf75ae5f2f96226c0038094455a96e64fb07a"}, - {file = "websockets-13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:586a356928692c1fed0eca68b4d1c2cbbd1ca2acf2ac7e7ebd3b9052582deefa"}, - {file = "websockets-13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bd6abf1e070a6b72bfeb71049d6ad286852e285f146682bf30d0296f5fbadfa"}, - {file = "websockets-13.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2aad13a200e5934f5a6767492fb07151e1de1d6079c003ab31e1823733ae79"}, - {file = "websockets-13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:df01aea34b6e9e33572c35cd16bae5a47785e7d5c8cb2b54b2acdb9678315a17"}, - {file = "websockets-13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e54affdeb21026329fb0744ad187cf812f7d3c2aa702a5edb562b325191fcab6"}, - {file = "websockets-13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ef8aa8bdbac47f4968a5d66462a2a0935d044bf35c0e5a8af152d58516dbeb5"}, - {file = "websockets-13.1-cp39-cp39-win32.whl", hash = "sha256:deeb929efe52bed518f6eb2ddc00cc496366a14c726005726ad62c2dd9017a3c"}, - {file = "websockets-13.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c65ffa900e7cc958cd088b9a9157a8141c991f8c53d11087e6fb7277a03f81d"}, - {file = "websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238"}, - {file = "websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5"}, - {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9"}, - {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6"}, - {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a"}, - {file = "websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23"}, - {file = "websockets-13.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9156c45750b37337f7b0b00e6248991a047be4aa44554c9886fe6bdd605aab3b"}, - {file = "websockets-13.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:80c421e07973a89fbdd93e6f2003c17d20b69010458d3a8e37fb47874bd67d51"}, - {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82d0ba76371769d6a4e56f7e83bb8e81846d17a6190971e38b5de108bde9b0d7"}, - {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9875a0143f07d74dc5e1ded1c4581f0d9f7ab86c78994e2ed9e95050073c94d"}, - {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a11e38ad8922c7961447f35c7b17bffa15de4d17c70abd07bfbe12d6faa3e027"}, - {file = "websockets-13.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4059f790b6ae8768471cddb65d3c4fe4792b0ab48e154c9f0a04cefaabcd5978"}, - {file = "websockets-13.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25c35bf84bf7c7369d247f0b8cfa157f989862c49104c5cf85cb5436a641d93e"}, - {file = "websockets-13.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:83f91d8a9bb404b8c2c41a707ac7f7f75b9442a0a876df295de27251a856ad09"}, - {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a43cfdcddd07f4ca2b1afb459824dd3c6d53a51410636a2c7fc97b9a8cf4842"}, - {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a2ef1381632a2f0cb4efeff34efa97901c9fbc118e01951ad7cfc10601a9bb"}, - {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bf774c754c35dbb487360b12c5727adab887f1622b8aed5755880a21c4a20"}, - {file = "websockets-13.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:95858ca14a9f6fa8413d29e0a585b31b278388aa775b8a81fa24830123874678"}, - {file = "websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f"}, - {file = "websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878"}, +python-versions = ">=3.9" +groups = ["voila"] +files = [ + {file = "websockets-15.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b"}, + {file = "websockets-15.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205"}, + {file = "websockets-15.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a"}, + {file = "websockets-15.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e"}, + {file = "websockets-15.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf"}, + {file = "websockets-15.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb"}, + {file = "websockets-15.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d"}, + {file = "websockets-15.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9"}, + {file = "websockets-15.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c"}, + {file = "websockets-15.0.1-cp310-cp310-win32.whl", hash = "sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256"}, + {file = "websockets-15.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41"}, + {file = "websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431"}, + {file = "websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57"}, + {file = "websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905"}, + {file = "websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562"}, + {file = "websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792"}, + {file = "websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413"}, + {file = "websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8"}, + {file = "websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3"}, + {file = "websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf"}, + {file = "websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85"}, + {file = "websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065"}, + {file = "websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3"}, + {file = "websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665"}, + {file = "websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2"}, + {file = "websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215"}, + {file = "websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5"}, + {file = "websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65"}, + {file = "websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe"}, + {file = "websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4"}, + {file = "websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597"}, + {file = "websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9"}, + {file = "websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7"}, + {file = "websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931"}, + {file = "websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675"}, + {file = "websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151"}, + {file = "websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22"}, + {file = "websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f"}, + {file = "websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8"}, + {file = "websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375"}, + {file = "websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d"}, + {file = "websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4"}, + {file = "websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa"}, + {file = "websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561"}, + {file = "websockets-15.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5"}, + {file = "websockets-15.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a"}, + {file = "websockets-15.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b"}, + {file = "websockets-15.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770"}, + {file = "websockets-15.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb"}, + {file = "websockets-15.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054"}, + {file = "websockets-15.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee"}, + {file = "websockets-15.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed"}, + {file = "websockets-15.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880"}, + {file = "websockets-15.0.1-cp39-cp39-win32.whl", hash = "sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411"}, + {file = "websockets-15.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123"}, + {file = "websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f"}, + {file = "websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee"}, ] [[package]] name = "weightedcalcs" -version = "0.1.2" +version = "0.1.3" description = "Pandas-based utility to calculate weighted means, medians, distributions, standard deviations, and more." optional = false python-versions = "*" +groups = ["main"] files = [ - {file = "weightedcalcs-0.1.2.tar.gz", hash = "sha256:d2c6024b2df4ba21adf43a4e5ddf93035456eb4119c7ed599b570fbd8f859183"}, + {file = "weightedcalcs-0.1.3-py3-none-any.whl", hash = "sha256:afb18abaafd34cf6fa3550f8a851f5353c473d9bd80d9bd26acc860a23d6ddc6"}, + {file = "weightedcalcs-0.1.3.tar.gz", hash = "sha256:78853f53409991671a34c2f06153d380083a4d1b242829897f15a9e5013036d5"}, ] [package.dependencies] -pandas = ">=0.19" +pandas = ">=2.0" [[package]] name = "werkzeug" @@ -6096,6 +6067,7 @@ version = "2.3.8" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "werkzeug-2.3.8-py3-none-any.whl", hash = "sha256:bba1f19f8ec89d4d607a3bd62f1904bd2e609472d93cd85e9d4e178f472c3748"}, {file = "werkzeug-2.3.8.tar.gz", hash = "sha256:554b257c74bbeb7a0d254160a4f8ffe185243f52a52035060b761ca62d977f03"}, @@ -6109,13 +6081,14 @@ watchdog = ["watchdog (>=2.3)"] [[package]] name = "wheel" -version = "0.44.0" +version = "0.45.1" description = "A built-package format for Python" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] 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] @@ -6127,6 +6100,7 @@ version = "4.0.13" description = "Jupyter interactive widgets for Jupyter Notebook" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "widgetsnbextension-4.0.13-py3-none-any.whl", hash = "sha256:74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71"}, {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, @@ -6138,6 +6112,7 @@ version = "0.6" description = "Weighted quantiles, including weighted median, based on numpy" optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "wquantiles-0.6-py3-none-any.whl", hash = "sha256:1b90d68fa05251bb96f8806a346e8d7dec9a9bb99f381ad5094707b46ab85218"}, {file = "wquantiles-0.6.tar.gz", hash = "sha256:a9e5b61277c8bf414394131bba4af0fc565de379ca73d6f7a336ba60184fa5c4"}, @@ -6148,27 +6123,28 @@ numpy = ">=1.18" [[package]] name = "xarray" -version = "2024.10.0" +version = "2025.3.0" description = "N-D labeled arrays and datasets in Python" optional = false python-versions = ">=3.10" +groups = ["main"] files = [ - {file = "xarray-2024.10.0-py3-none-any.whl", hash = "sha256:ae1d38cb44a0324dfb61e492394158ae22389bf7de9f3c174309c17376df63a0"}, - {file = "xarray-2024.10.0.tar.gz", hash = "sha256:e369e2bac430e418c2448e5b96f07da4635f98c1319aa23cfeb3fbcb9a01d2e0"}, + {file = "xarray-2025.3.0-py3-none-any.whl", hash = "sha256:022b7eac5ebc26d70d34211de732ec1a15127a40455f9492acdde7fbe5bbf091"}, + {file = "xarray-2025.3.0.tar.gz", hash = "sha256:531cf6d64e6ab54c19239930a840654f1a79d2140e9f0d11d1e8d69dcc581d0f"}, ] [package.dependencies] numpy = ">=1.24" -packaging = ">=23.1" +packaging = ">=23.2" pandas = ">=2.1" [package.extras] -accel = ["bottleneck", "flox", "numba (>=0.54)", "numbagg", "opt-einsum", "scipy"] +accel = ["bottleneck", "flox", "numba (>=0.54)", "numbagg", "opt_einsum", "scipy"] complete = ["xarray[accel,etc,io,parallel,viz]"] -dev = ["hypothesis", "mypy", "pre-commit", "pytest", "pytest-cov", "pytest-env", "pytest-timeout", "pytest-xdist", "ruff", "sphinx", "sphinx-autosummary-accessors", "xarray[complete]"] etc = ["sparse"] -io = ["cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "scipy", "zarr"] +io = ["cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap ; python_version < \"3.10\"", "scipy", "zarr"] parallel = ["dask[complete]"] +types = ["pandas-stubs", "types-PyYAML", "types-Pygments", "types-colorama", "types-decorator", "types-defusedxml", "types-docutils", "types-networkx", "types-openpyxl", "types-pexpect", "types-psutil", "types-pycurl", "types-python-dateutil", "types-pytz", "types-setuptools"] viz = ["cartopy", "matplotlib", "nc-time-axis", "seaborn"] [[package]] @@ -6177,6 +6153,7 @@ version = "2.0.1" description = "Library for developers to extract data from Microsoft Excel (tm) .xls spreadsheet files" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +groups = ["main", "dev"] files = [ {file = "xlrd-2.0.1-py2.py3-none-any.whl", hash = "sha256:6a33ee89877bd9abc1158129f6e94be74e2679636b8a205b43b85206c3f0bbdd"}, {file = "xlrd-2.0.1.tar.gz", hash = "sha256:f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88"}, @@ -6193,6 +6170,7 @@ version = "0.6.2" description = "Python bindings for the Y-CRDT built from yrs (Rust)" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "y_py-0.6.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:c26bada6cd109095139237a46f50fc4308f861f0d304bc9e70acbc6c4503d158"}, {file = "y_py-0.6.2-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:bae1b1ad8d2b8cf938a60313f8f7461de609621c5dcae491b6e54975f76f83c5"}, @@ -6270,108 +6248,13 @@ files = [ {file = "y_py-0.6.2.tar.gz", hash = "sha256:4757a82a50406a0b3a333aa0122019a331bd6f16e49fed67dca423f928b3fd4d"}, ] -[[package]] -name = "yarl" -version = "1.17.1" -description = "Yet another URL library" -optional = false -python-versions = ">=3.9" -files = [ - {file = "yarl-1.17.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1794853124e2f663f0ea54efb0340b457f08d40a1cef78edfa086576179c91"}, - {file = "yarl-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fbea1751729afe607d84acfd01efd95e3b31db148a181a441984ce9b3d3469da"}, - {file = "yarl-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ee427208c675f1b6e344a1f89376a9613fc30b52646a04ac0c1f6587c7e46ec"}, - {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b74ff4767d3ef47ffe0cd1d89379dc4d828d4873e5528976ced3b44fe5b0a21"}, - {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:62a91aefff3d11bf60e5956d340eb507a983a7ec802b19072bb989ce120cd948"}, - {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:846dd2e1243407133d3195d2d7e4ceefcaa5f5bf7278f0a9bda00967e6326b04"}, - {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e844be8d536afa129366d9af76ed7cb8dfefec99f5f1c9e4f8ae542279a6dc3"}, - {file = "yarl-1.17.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc7c92c1baa629cb03ecb0c3d12564f172218fb1739f54bf5f3881844daadc6d"}, - {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae3476e934b9d714aa8000d2e4c01eb2590eee10b9d8cd03e7983ad65dfbfcba"}, - {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c7e177c619342e407415d4f35dec63d2d134d951e24b5166afcdfd1362828e17"}, - {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64cc6e97f14cf8a275d79c5002281f3040c12e2e4220623b5759ea7f9868d6a5"}, - {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:84c063af19ef5130084db70ada40ce63a84f6c1ef4d3dbc34e5e8c4febb20822"}, - {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:482c122b72e3c5ec98f11457aeb436ae4aecca75de19b3d1de7cf88bc40db82f"}, - {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:380e6c38ef692b8fd5a0f6d1fa8774d81ebc08cfbd624b1bca62a4d4af2f9931"}, - {file = "yarl-1.17.1-cp310-cp310-win32.whl", hash = "sha256:16bca6678a83657dd48df84b51bd56a6c6bd401853aef6d09dc2506a78484c7b"}, - {file = "yarl-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:561c87fea99545ef7d692403c110b2f99dced6dff93056d6e04384ad3bc46243"}, - {file = "yarl-1.17.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cbad927ea8ed814622305d842c93412cb47bd39a496ed0f96bfd42b922b4a217"}, - {file = "yarl-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fca4b4307ebe9c3ec77a084da3a9d1999d164693d16492ca2b64594340999988"}, - {file = "yarl-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff5c6771c7e3511a06555afa317879b7db8d640137ba55d6ab0d0c50425cab75"}, - {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b29beab10211a746f9846baa39275e80034e065460d99eb51e45c9a9495bcca"}, - {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a52a1ffdd824fb1835272e125385c32fd8b17fbdefeedcb4d543cc23b332d74"}, - {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58c8e9620eb82a189c6c40cb6b59b4e35b2ee68b1f2afa6597732a2b467d7e8f"}, - {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d216e5d9b8749563c7f2c6f7a0831057ec844c68b4c11cb10fc62d4fd373c26d"}, - {file = "yarl-1.17.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:881764d610e3269964fc4bb3c19bb6fce55422828e152b885609ec176b41cf11"}, - {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8c79e9d7e3d8a32d4824250a9c6401194fb4c2ad9a0cec8f6a96e09a582c2cc0"}, - {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:299f11b44d8d3a588234adbe01112126010bd96d9139c3ba7b3badd9829261c3"}, - {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:cc7d768260f4ba4ea01741c1b5fe3d3a6c70eb91c87f4c8761bbcce5181beafe"}, - {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:de599af166970d6a61accde358ec9ded821234cbbc8c6413acfec06056b8e860"}, - {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2b24ec55fad43e476905eceaf14f41f6478780b870eda5d08b4d6de9a60b65b4"}, - {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9fb815155aac6bfa8d86184079652c9715c812d506b22cfa369196ef4e99d1b4"}, - {file = "yarl-1.17.1-cp311-cp311-win32.whl", hash = "sha256:7615058aabad54416ddac99ade09a5510cf77039a3b903e94e8922f25ed203d7"}, - {file = "yarl-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:14bc88baa44e1f84164a392827b5defb4fa8e56b93fecac3d15315e7c8e5d8b3"}, - {file = "yarl-1.17.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:327828786da2006085a4d1feb2594de6f6d26f8af48b81eb1ae950c788d97f61"}, - {file = "yarl-1.17.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cc353841428d56b683a123a813e6a686e07026d6b1c5757970a877195f880c2d"}, - {file = "yarl-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c73df5b6e8fabe2ddb74876fb82d9dd44cbace0ca12e8861ce9155ad3c886139"}, - {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bdff5e0995522706c53078f531fb586f56de9c4c81c243865dd5c66c132c3b5"}, - {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:06157fb3c58f2736a5e47c8fcbe1afc8b5de6fb28b14d25574af9e62150fcaac"}, - {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1654ec814b18be1af2c857aa9000de7a601400bd4c9ca24629b18486c2e35463"}, - {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f6595c852ca544aaeeb32d357e62c9c780eac69dcd34e40cae7b55bc4fb1147"}, - {file = "yarl-1.17.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:459e81c2fb920b5f5df744262d1498ec2c8081acdcfe18181da44c50f51312f7"}, - {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7e48cdb8226644e2fbd0bdb0a0f87906a3db07087f4de77a1b1b1ccfd9e93685"}, - {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d9b6b28a57feb51605d6ae5e61a9044a31742db557a3b851a74c13bc61de5172"}, - {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e594b22688d5747b06e957f1ef822060cb5cb35b493066e33ceac0cf882188b7"}, - {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5f236cb5999ccd23a0ab1bd219cfe0ee3e1c1b65aaf6dd3320e972f7ec3a39da"}, - {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a2a64e62c7a0edd07c1c917b0586655f3362d2c2d37d474db1a509efb96fea1c"}, - {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d0eea830b591dbc68e030c86a9569826145df485b2b4554874b07fea1275a199"}, - {file = "yarl-1.17.1-cp312-cp312-win32.whl", hash = "sha256:46ddf6e0b975cd680eb83318aa1d321cb2bf8d288d50f1754526230fcf59ba96"}, - {file = "yarl-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:117ed8b3732528a1e41af3aa6d4e08483c2f0f2e3d3d7dca7cf538b3516d93df"}, - {file = "yarl-1.17.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5d1d42556b063d579cae59e37a38c61f4402b47d70c29f0ef15cee1acaa64488"}, - {file = "yarl-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0167540094838ee9093ef6cc2c69d0074bbf84a432b4995835e8e5a0d984374"}, - {file = "yarl-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2f0a6423295a0d282d00e8701fe763eeefba8037e984ad5de44aa349002562ac"}, - {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5b078134f48552c4d9527db2f7da0b5359abd49393cdf9794017baec7506170"}, - {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d401f07261dc5aa36c2e4efc308548f6ae943bfff20fcadb0a07517a26b196d8"}, - {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5f1ac7359e17efe0b6e5fec21de34145caef22b260e978336f325d5c84e6938"}, - {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f63d176a81555984e91f2c84c2a574a61cab7111cc907e176f0f01538e9ff6e"}, - {file = "yarl-1.17.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e275792097c9f7e80741c36de3b61917aebecc08a67ae62899b074566ff8556"}, - {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:81713b70bea5c1386dc2f32a8f0dab4148a2928c7495c808c541ee0aae614d67"}, - {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:aa46dce75078fceaf7cecac5817422febb4355fbdda440db55206e3bd288cfb8"}, - {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1ce36ded585f45b1e9bb36d0ae94765c6608b43bd2e7f5f88079f7a85c61a4d3"}, - {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2d374d70fdc36f5863b84e54775452f68639bc862918602d028f89310a034ab0"}, - {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2d9f0606baaec5dd54cb99667fcf85183a7477f3766fbddbe3f385e7fc253299"}, - {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b0341e6d9a0c0e3cdc65857ef518bb05b410dbd70d749a0d33ac0f39e81a4258"}, - {file = "yarl-1.17.1-cp313-cp313-win32.whl", hash = "sha256:2e7ba4c9377e48fb7b20dedbd473cbcbc13e72e1826917c185157a137dac9df2"}, - {file = "yarl-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:949681f68e0e3c25377462be4b658500e85ca24323d9619fdc41f68d46a1ffda"}, - {file = "yarl-1.17.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8994b29c462de9a8fce2d591028b986dbbe1b32f3ad600b2d3e1c482c93abad6"}, - {file = "yarl-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f9cbfbc5faca235fbdf531b93aa0f9f005ec7d267d9d738761a4d42b744ea159"}, - {file = "yarl-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b40d1bf6e6f74f7c0a567a9e5e778bbd4699d1d3d2c0fe46f4b717eef9e96b95"}, - {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5efe0661b9fcd6246f27957f6ae1c0eb29bc60552820f01e970b4996e016004"}, - {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5c4804e4039f487e942c13381e6c27b4b4e66066d94ef1fae3f6ba8b953f383"}, - {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5d6a6c9602fd4598fa07e0389e19fe199ae96449008d8304bf5d47cb745462e"}, - {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4c9156c4d1eb490fe374fb294deeb7bc7eaccda50e23775b2354b6a6739934"}, - {file = "yarl-1.17.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6324274b4e0e2fa1b3eccb25997b1c9ed134ff61d296448ab8269f5ac068c4c"}, - {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d8a8b74d843c2638f3864a17d97a4acda58e40d3e44b6303b8cc3d3c44ae2d29"}, - {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7fac95714b09da9278a0b52e492466f773cfe37651cf467a83a1b659be24bf71"}, - {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c180ac742a083e109c1a18151f4dd8675f32679985a1c750d2ff806796165b55"}, - {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:578d00c9b7fccfa1745a44f4eddfdc99d723d157dad26764538fbdda37209857"}, - {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1a3b91c44efa29e6c8ef8a9a2b583347998e2ba52c5d8280dbd5919c02dfc3b5"}, - {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a7ac5b4984c468ce4f4a553df281450df0a34aefae02e58d77a0847be8d1e11f"}, - {file = "yarl-1.17.1-cp39-cp39-win32.whl", hash = "sha256:7294e38f9aa2e9f05f765b28ffdc5d81378508ce6dadbe93f6d464a8c9594473"}, - {file = "yarl-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:eb6dce402734575e1a8cc0bb1509afca508a400a57ce13d306ea2c663bad1138"}, - {file = "yarl-1.17.1-py3-none-any.whl", hash = "sha256:f1790a4b1e8e8e028c391175433b9c8122c39b46e1663228158e61e6f915bf06"}, - {file = "yarl-1.17.1.tar.gz", hash = "sha256:067a63fcfda82da6b198fa73079b1ca40b7c9b7994995b6ee38acda728b64d47"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -propcache = ">=0.2.0" - [[package]] name = "ypy-websocket" version = "0.8.4" description = "WebSocket connector for Ypy" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "ypy_websocket-0.8.4-py3-none-any.whl", hash = "sha256:b1ba0dfcc9762f0ca168d2378062d3ca1299d39076b0f145d961359121042be5"}, {file = "ypy_websocket-0.8.4.tar.gz", hash = "sha256:43a001473f5c8abcf182f603049cf305cbc855ad8deaa9dfa0f3b5a7cea9d0ff"}, @@ -6387,21 +6270,22 @@ test = ["mypy", "pre-commit", "pytest", "pytest-asyncio", "websockets (>=10.0)"] [[package]] name = "zipp" -version = "3.20.2" +version = "3.21.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"}, - {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"}, + {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, + {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] -test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] type = ["pytest-mypy"] [[package]] @@ -6410,6 +6294,7 @@ version = "0.23.0" description = "Zstandard bindings for Python" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "zstandard-0.23.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bf0a05b6059c0528477fba9054d09179beb63744355cab9f38059548fedd46a9"}, {file = "zstandard-0.23.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fc9ca1c9718cb3b06634c7c8dec57d24e9438b2aa9a0f02b8bb36bf478538880"}, @@ -6520,6 +6405,6 @@ cffi = ["cffi (>=1.11)"] pipeline = ["diagrams", "pypandoc", "scikit-learn", "tables"] [metadata] -lock-version = "2.0" -python-versions = ">=3.10,<4.0" -content-hash = "3f880fa8583064c1ab924d323759c966660374a40334ecc590c2b823fa617645" +lock-version = "2.1" +python-versions = ">=3.10,<3.12" +content-hash = "3cdaf9771784d47a5bfda2068f2e025dffd9353b5fb65551571a340a35577668" diff --git a/pyproject.toml b/pyproject.toml index 1e0e26b646a927f52a9fd2059d6c321a1320753b..a52df6c1b44d5e02cf744f27d65eeb66a5f309f1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,10 +4,26 @@ pipeline = "leximpact_prepare_data.run_pipeline:run_pipeline" [tool.poetry.group.dev.dependencies] pydocstyle = "^6.3.0" +seaborn = "^0.13.2" +jupyter = "^1.0.0" +jupyterlab = "^3.2.8" +ipykernel = "^6.2.0" +lab = "^6.4" +# pytest = "^5.2" Tiré par OpenFisca-France-Data +papermill = "^2.3.3" +plotly = "^5.4.0" +xlrd = "^2.0.1" # For Excel +openpyxl = "^3.0.9" # For Excel +nbdev = "*" +pre-commit = "*" +nbqa = ">=1.2.3" +flake8 = ">=3.9.0" +black = ">=21.5b1" +toml = "^0.10.2" [tool.poetry] name = "leximpact_prepare_data" -version = "0.1.8" +version = "0.1.9" description = "Prepare data for LexImpact" authors = ["LexImpact <leximpact@an.fr>"] license = "AGPL-3.0" @@ -17,7 +33,7 @@ repository = "https://git.leximpact.dev/leximpact/simulateur-socio-fiscal/budget [tool.poetry.dependencies] -python = ">=3.10,<4.0" +python = ">=3.10,<3.12" leximpact-common-python-libraries = "^0.1.1" pandas = ">=2.0.3,<3.0" # A list of all of the optional dependencies, some of which are included in the @@ -25,11 +41,10 @@ pandas = ">=2.0.3,<3.0" scikit-learn = { version = "^1.0.1", optional = true} tables = { version = "^3.6.1", optional = true} diagrams = { version = "^0.23", optional = true} -leximpact-survey-scenario = {git = "https://git.leximpact.dev/leximpact/simulateur-socio-fiscal/budget/leximpact-survey-scenario.git", rev="18-fix_integration_pote_2022"} +leximpact-survey-scenario = {git = "https://git.leximpact.dev/leximpact/simulateur-socio-fiscal/budget/leximpact-survey-scenario.git", rev="master"} openfisca-france-reforms = {git = "https://git.leximpact.dev/leximpact/simulateur-socio-fiscal/openfisca/openfisca-france-reforms.git"} leximpact-aggregates = "^0.0.39" multipledispatch = "^0.6.0" -nbdev = "^2.2.10" ipdb = "^0.13.13" kaleido = "0.2.1" # markupsafe = "2.0.1" tiré par openfisca-core @@ -43,25 +58,6 @@ pip = "^23.2" pypandoc = "^1.11" dtale = "^3.3.0" -[tool.poetry.dev-dependencies] -seaborn = "^0.13.2" -jupyter = "^1.0.0" -jupyterlab = "^3.2.8" -ipykernel = "^6.2.0" -lab = "^6.4" -# pytest = "^5.2" Tiré par OpenFisca-France-Data -papermill = "^2.3.3" -plotly = "^5.4.0" -xlrd = "^2.0.1" # For Excel -openpyxl = "^3.0.9" # For Excel -nbdev = "^2.0.0" -# markupsafe = "2.0.1" # For NBDev : https://github.com/pallets/markupsafe/issues/284 -pre-commit = "*" -nbqa = ">=1.2.3" -flake8 = ">=3.9.0" -black = ">=21.5b1" -toml = "^0.10.2" - [tool.poetry_bumpversion.file."leximpact_prepare_data/__init__.py"] [tool.poetry_bumpversion.file."settings.ini"] [tool.poetry_bumpversion.file.".conda/meta.yaml"] diff --git a/tests/plf_2020_ir.ipynb b/tests/plf_2020_ir.ipynb index c0adb6fc3f15cb48998cfa5998c0cfae09fed23f..bc42243dbe8f3660f68ebf07b94257f1959af9d1 100644 --- a/tests/plf_2020_ir.ipynb +++ b/tests/plf_2020_ir.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -16,7 +16,7 @@ " LeximpactErfsSurveyScenario,\n", ")\n", "from leximpact_survey_scenario.leximpact_tax_and_benefit_system import leximpact_tbs\n", - "from openfisca_survey_manager import default_config_files_directory" + "from openfisca_survey_manager.paths import default_config_files_directory" ] }, {