From f16d240dabf0c16012a7a2adce5d76428a25624c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9d=C3=A9ric=20Hurier=20=28Fmind=29?= Date: Sat, 14 Dec 2024 16:07:49 +0100 Subject: [PATCH] Release/v3.0.0 (#31) --- .github/actions/setup/action.yml | 12 +- .github/workflows/check.yml | 10 +- .github/workflows/publish.yml | 8 +- .pre-commit-config.yaml | 12 +- CHANGELOG.md | 20 + Dockerfile | 4 +- LICENCE.txt => LICENSE.txt | 2 - README.md | 51 +- data/inputs_test.parquet | Bin 55720 -> 54110 bytes data/inputs_train.parquet | Bin 180322 -> 178675 bytes data/targets_test.parquet | Bin 28795 -> 28592 bytes data/targets_train.parquet | Bin 102798 -> 102589 bytes docker-compose.yml | 2 +- notebooks/explain.ipynb | 4470 +++++++++++++++-------------- notebooks/indicators.ipynb | 3147 +++++++++++++------- notebooks/processing.ipynb | 15 +- notebooks/prototype.ipynb | 1320 +++++---- poetry.lock | 3837 ------------------------- poetry.toml | 5 - pyproject.toml | 120 +- python_env.yaml | 194 +- requirements.txt | 250 +- src/bikes/core/metrics.py | 8 +- src/bikes/core/models.py | 16 +- src/bikes/io/__init__.py | 2 +- src/bikes/io/datasets.py | 9 +- src/bikes/io/registries.py | 34 +- src/bikes/io/services.py | 27 +- src/bikes/jobs/evaluations.py | 37 +- src/bikes/jobs/explanations.py | 8 +- src/bikes/jobs/inference.py | 3 +- src/bikes/jobs/training.py | 7 +- src/bikes/utils/signers.py | 2 +- src/bikes/utils/splitters.py | 39 +- tasks/__init__.py | 2 +- tasks/checks.py | 22 +- tasks/cleans.py | 10 +- tasks/commits.py | 8 +- tasks/containers.py | 2 +- tasks/docs.py | 6 +- tasks/formats.py | 6 +- tasks/installs.py | 14 +- tasks/mlflow.py | 13 +- tasks/packages.py | 10 +- tasks/projects.py | 19 +- tests/conftest.py | 21 +- tests/core/test_metrics.py | 5 +- tests/core/test_models.py | 6 +- tests/data/inputs_sample.parquet | Bin 47719 -> 35890 bytes tests/data/outputs_sample.parquet | Bin 13827 -> 14309 bytes tests/data/targets_sample.parquet | Bin 18587 -> 17966 bytes tests/io/test_configs.py | 1 + tests/io/test_datasets.py | 7 +- tests/io/test_services.py | 6 +- tests/jobs/test_base.py | 4 +- tests/jobs/test_evaluations.py | 42 +- tests/jobs/test_explanations.py | 9 +- tests/jobs/test_inference.py | 7 +- tests/jobs/test_promotion.py | 1 + tests/jobs/test_training.py | 14 +- tests/jobs/test_tuning.py | 10 +- tests/test_scripts.py | 1 + tests/utils/test_searchers.py | 6 +- uv.lock | 2473 ++++++++++++++++ 64 files changed, 8287 insertions(+), 8109 deletions(-) rename LICENCE.txt => LICENSE.txt (96%) delete mode 100644 poetry.lock delete mode 100644 poetry.toml create mode 100644 uv.lock diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 97486a6..3426d72 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -3,9 +3,11 @@ description: Setup for project workflows runs: using: composite steps: - - run: pipx install invoke poetry - shell: bash - - uses: actions/setup-python@v5 + - name: Install uv + uses: astral-sh/setup-uv@v4 with: - python-version: 3.12 - cache: poetry + enable-cache: true + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version-file: .python-version diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 7351b39..5fdce59 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -2,7 +2,7 @@ name: Check on: pull_request: branches: - - main + - '*' concurrency: cancel-in-progress: true group: ${{ github.workflow }}-${{ github.ref }} @@ -12,5 +12,9 @@ jobs: steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - - run: poetry install --with checks - - run: poetry run invoke checks + - run: uv sync --group=checks + - run: uv run invoke checks.format + - run: uv run invoke checks.type + - run: uv run invoke checks.code + - run: uv run invoke checks.security + - run: uv run invoke checks.coverage diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 105bf46..3457790 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -15,8 +15,8 @@ jobs: steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - - run: poetry install --with docs - - run: poetry run invoke docs + - run: uv sync --group=docs + - run: uv run invoke docs - uses: JamesIves/github-pages-deploy-action@v4 with: folder: docs/ @@ -28,8 +28,8 @@ jobs: steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - - run: poetry install --with dev - - run: poetry run invoke packages + - run: uv sync --only-dev + - run: uv run invoke packages - uses: docker/login-action@v3 with: registry: ghcr.io diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ea14e6e..4d8bd70 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ default_language_version: python: python3.12 repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-added-large-files - id: check-case-conflict @@ -16,18 +16,14 @@ repos: - id: end-of-file-fixer - id: mixed-line-ending - id: trailing-whitespace - - repo: https://github.com/python-poetry/poetry - rev: 1.8.3 - hooks: - - id: poetry-check - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.5.0 + rev: v0.8.1 hooks: - id: ruff - id: ruff-format - repo: https://github.com/commitizen-tools/commitizen - rev: v3.27.0 + rev: v4.0.0 hooks: - id: commitizen - id: commitizen-branch - stages: [push] + stages: [pre-push] diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e7309f..0ce2a27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ +## v3.0.0 (2024-12-14) + +### Feat + +- **mlflow**: bump to 2.19.0 +- **manager**: switch from poetry to uv (#22) +- **manager**: switch from poetry to uv + +### Fix + +- **tasks**: merge conflict +- **tasks**: fix mlflow.serve task attribute +- **github-actions**: run check on all PR + +### Refactor + +- **release**: prepare before release +- **actions**: split check tasks into subtask for easier debugging (#29) +- **code**: improve abstractions (#28) + ## v2.0.0 (2024-07-28) ### Feat diff --git a/Dockerfile b/Dockerfile index 043fa81..2142f8a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # https://docs.docker.com/engine/reference/builder/ -FROM python:3.12 +FROM ghcr.io/astral-sh/uv:python3.12-bookworm COPY dist/*.whl . -RUN pip install *.whl +RUN uv pip install --system *.whl CMD ["bikes", "--help"] diff --git a/LICENCE.txt b/LICENSE.txt similarity index 96% rename from LICENCE.txt rename to LICENSE.txt index bbab95b..0e77b64 100644 --- a/LICENCE.txt +++ b/LICENSE.txt @@ -1,5 +1,3 @@ -Copyright 2024 Médéric HURIER (Fmind) - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. diff --git a/README.md b/README.md index 749e151..ea8821e 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ The package leverages several [tools](#tools) and [tips](#tips) to make your MLO You can use this package as part of your MLOps toolkit or platform (e.g., Model Registry, Experiment Tracking, Realtime Inference, ...). **Related Resources**: +- **[LLMOps Coding Package (Example)](https://github.com/callmesora/llmops-python-package/)**: Example with best practices and tools to support your LLMOps projects. - **[MLOps Coding Course (Learning)](https://github.com/MLOps-Courses/mlops-coding-course)**: Learn how to create, develop, and maintain a state-of-the-art MLOps code base. - **[Cookiecutter MLOps Package (Template)](https://github.com/fmind/cookiecutter-mlops-package)**: Start building and deploying Python packages and Docker images for MLOps tasks. @@ -69,7 +70,7 @@ You can use this package as part of your MLOps toolkit or platform (e.g., Model - [Package](#package) - [Evolution: Changelog](#evolution-changelog) - [Format: Wheel](#format-wheel) - - [Manager: Poetry](#manager-poetry) + - [Manager: uv](#manager-uv) - [Runtime: Docker](#runtime-docker) - [Programming](#programming) - [Language: Python](#language-python) @@ -119,7 +120,7 @@ This section details the requirements, actions, and next steps to kickstart your ## Prerequisites - [Python>=3.12](https://www.python.org/downloads/): to benefit from [the latest features and performance improvements](https://docs.python.org/3/whatsnew/3.12.html) -- [Poetry>=1.8.2](https://python-poetry.org/): to initialize the project [virtual environment](https://docs.python.org/3/library/venv.html) and its dependencies +- [uv>=0.5.5](https://docs.astral.sh/uv/): to initialize the project [virtual environment](https://docs.python.org/3/library/venv.html) and its dependencies ## Installation @@ -130,10 +131,10 @@ $ git clone git@github.com:fmind/mlops-python-package # with https $ git clone https://github.com/fmind/mlops-python-package ``` -2. [Run the project installation with poetry](https://python-poetry.org/docs/) +2. [Run the project installation with uv](https://docs.astral.sh/uv/) ```bash $ cd mlops-python-package/ -$ poetry install +$ uv sync ``` 3. Adapt the code base to your desire @@ -171,26 +172,26 @@ This config file instructs the program to start a `TrainingJob` with 2 parameter You can find all the parameters of your program in the `src/[package]/jobs/*.py` files. -You can also print the full schema supported by this package using `poetry run bikes --schema`. +You can also print the full schema supported by this package using `uv run bikes --schema`. ## Execution -The project code can be executed with poetry during your development: +The project code can be executed with uv during your development: ```bash -$ poetry run [package] confs/tuning.yaml -$ poetry run [package] confs/training.yaml -$ poetry run [package] confs/promotion.yaml -$ poetry run [package] confs/inference.yaml -$ poetry run [package] confs/evaluations.yaml -$ poetry run [package] confs/explanations.yaml +$ uv run [package] confs/tuning.yaml +$ uv run [package] confs/training.yaml +$ uv run [package] confs/promotion.yaml +$ uv run [package] confs/inference.yaml +$ uv run [package] confs/evaluations.yaml +$ uv run [package] confs/explanations.yaml ``` In production, you can build, ship, and run the project as a Python package: ```bash -poetry build -poetry publish # optional +uv build +uv publish # optional python -m pip install [package] [package] confs/inference.yaml ``` @@ -211,7 +212,7 @@ with job as runner: - You can pass several config files in the command-line to merge them from left to right - You can define common configurations shared between jobs (e.g., model params) - The right job task will be selected automatically thanks to [Pydantic Discriminated Unions](https://docs.pydantic.dev/latest/concepts/unions/#discriminated-unions) - - This is a great way to run any job supported by the application (training, tuning, .... + - This is a great way to run any job supported by the application (training, tuning, ...) ## Automation @@ -233,7 +234,6 @@ $ inv --list - **checks.code** - Check the codes with ruff. - **checks.coverage** - Check the coverage with coverage. - **checks.format** - Check the formats with ruff. -- **checks.poetry** - Check poetry config files. - **checks.security** - Check the security with bandit. - **checks.test** - Check the tests with pytest. - **checks.type** - Check the types with mypy. @@ -247,15 +247,15 @@ $ inv --list - **cleans.mlruns** - Clean the mlruns folder. - **cleans.mypy** - Clean the mypy tool. - **cleans.outputs** - Clean the outputs folder. -- **cleans.poetry** - Clean poetry lock file. -- **cleans.pytest** - Clean the pytest tool. - **cleans.projects** - Run all projects tasks. +- **cleans.pytest** - Clean the pytest tool. - **cleans.python** - Clean python caches and bytecodes. - **cleans.requirements** - Clean the project requirements file. - **cleans.reset** - Run all tools, folders, and sources tasks. - **cleans.ruff** - Clean the ruff tool. - **cleans.sources** - Run all sources tasks. - **cleans.tools** - Run all tools tasks. +- **cleans.uv** - Clean uv lock file. - **cleans.venv** - Clean the venv folder. - **commits.all (commits)** - Run all commit tasks. - **commits.bump** - Bump the version of the package. @@ -272,8 +272,8 @@ $ inv --list - **formats.imports** - Format python imports with ruff. - **formats.sources** - Format python sources with ruff. - **installs.all (installs)** - Run all install tasks. -- **installs.poetry** - Install poetry packages. - **installs.pre-commit** - Install pre-commit hooks on git. +- **installs.uv** - Install uv packages. - **mlflow.all (mlflow)** - Run all mlflow tasks. - **mlflow.doctor** - Run mlflow doctor to diagnose issues. - **mlflow.serve** - Start mlflow server with the given host, port, and backend uri. @@ -684,17 +684,18 @@ Define and build modern Python package. - [Source](https://docs.python.org/3/distutils/sourcedist.html): older format, less powerful - [Conda](https://conda.io/projects/conda/en/latest/user-guide/install/index.html): slow and hard to manage -### Manager: [Poetry](https://python-poetry.org/) +### Manager: [uv](https://docs.astral.sh/uv/) - **Motivations**: - Define and build Python package - - Most popular solution by GitHub stars + - Fast and compliant package manager - Pack every metadata in a single static file - **Limitations**: - Cannot add dependencies beyond Python (e.g., CUDA) - i.e., use Docker container for this use case - **Alternatives**: - [Setuptools](https://docs.python.org/3/distutils/setupscript.html): dynamic file is slower and more risky + - [Poetry](https://python-poetry.org/): previous solution of this package - Pdm, Hatch, PipEnv: https://xkcd.com/1987/ ### Runtime: [Docker](https://www.docker.com/resources/what-container/) @@ -937,10 +938,10 @@ Using Python package for your AI/ML project has the following benefits: - Install Python package as a library (e.g., like pandas) - Expose script entry points to run a CLI or a GUI -To build a Python package with Poetry, you simply have to type in a terminal: +To build a Python package with uv, you simply have to type in a terminal: ```bash -# for all poetry project -poetry build +# for all uv project +uv build # for this project only inv packages ``` @@ -1044,7 +1045,7 @@ Semantic Versioning (SemVer) provides a simple schema to communicate code change - *Minor* (Y): minor release with new features (i.e., provide new capabilities) - *Patch* (Z): patch release to fix bugs (i.e., correct wrong behavior) -Poetry and this package leverage Semantic Versioning to let developers control the speed of adoption for new releases. +Uv and this package leverage Semantic Versioning to let developers control the speed of adoption for new releases. ## [Testing Tricks](https://en.wikipedia.org/wiki/Software_testing) diff --git a/data/inputs_test.parquet b/data/inputs_test.parquet index 1e407873df7f29f59ea416f415ae4bd6c558d49c..4d43e971b360329df533a6e91637d5a1b27cd85f 100644 GIT binary patch delta 539 zcmZ3nnfcx_<_&%=EZ660hc&gRKKId@GK=U%c|iRUTP<~;tL zT$?+j>bN&&s?FuyoM|$Nb90K_dEw17gDy#LzLux$JvnRFXGVs}fh_(^Y7CP%?v~|z zCa5+?P)34-Wilh1=;U`S!ju2+76vN0&nn5fLs+dtc=AG49gvtZgN!JPq$vZNfTRRV zZeB@-D3jO{)T@;Y{%Nt{9;cg*0FW8EXG_D5#2;y!zz-P8BVu|JYmYmx_=_>oI^asZb&ROLQy zMb>RfYTp#0D!KR-SvyqK_Nh!Z;I{)Ar6ncJ{>NCY!vLt2ali27cqvVgu=ai#)@cc9 zzoI7l><8Jba{<5e|Te3Oupf(4qg`T0F z!Q{r1(u~HF=bo(RaCCNbbaZlb+-!2Hkc-{l*`&fJ%W?9WD=H#Yo_Pj9xk!+Fd1Sb0 pc4UO_<||hwvv7dTko+Ssx$&ml3g7y=xF3;|}Vuv7p5 delta 942 zcmb8sUr19?90%~-bMD=B{sFtUt*uR+WBwGotSKp(xw)W7@?ZL3QXs>EG?|s8g_KeB zVj;30K~ZLfh}4Skw!aen(FY4!Hl-pe3QB^a2Ma^!q1&LBHHFUMoQLy|-}!#tjnXlh z-l=6NTwaBR{yMB>yD9iqW3NAp>lfjHfJ1%JUa`|)hZ$j!LmO$BCVNcb`&$oF(7 z(pWfmfx#~!6X)xM!FJ5jOSmyC$mN!y3}tVI!Rqi@b#$14*hTCJJLOmFy&4u4e=>M0 zZ06_Yl#S;M-n2{Jh#qc|=BAPZ&AV#k*OP}*`P#+}J=N`1*bud{$ErMbxj%|*O8jNRuS_hO TwPNLLx<*x+qf*to8j5}cnnhu% diff --git a/data/inputs_train.parquet b/data/inputs_train.parquet index da347d92686f715156c9a455862e5c5e3b850dba..99e8645d57b32258f8bff916ea852d5f8cc0b751 100644 GIT binary patch delta 542 zcmaFV!2S6%*M?BR$twjrC&x%CPu?lyH#uGS%I3KuaV$WAeVgm0iWxyNo2z6*7=g-k zH!I7%=G`Px>8?H9!v6a3rfr891ym(KLvV*39D zOkWroCPxScGO004_gusz$NtY%ZI!Ex#No}@vQO=n)pq{O}~N9|HJ4);vf z^_OG2HiJ>EY0Bh4e|woYS^B+Y0%J$wUGJ%^*Sqobpf zqvQ5>8<+~Y*!`VNDtxjWr>E^^QW2^0%rgMWMuJq7M~0hbM@IN=@7v8ZnS}#vkmMhM b>5d1OB&G)(VB&-mY@7_v@(c_CjzNY14v@Vx delta 1248 zcmbV~ZAg<*6vy|R=h>?ta(mp|Y-l;hKK}y$Rca>flxaa=Q|D1DwD=RYZ z<%pppavBG6iLDEYxy6_iu2p`L#`y!}Qy0Vvd-tPfA9q8pCk87hxGT{*j#3mPV24qw zWHgxqQKUubgIZEZFa5*1u=W|;WdQ#@(HHC^7iMU!6e9zR>Hd+FTC0f>WpC_ZLA zPj=fOLFlW;!TO+ZF-9$8(CVN_k3Twj0hgQC2j!xY?jnPpaUjxeh!sEVrO@Z3xNOvu zGbW`GcD9AWq~o%mZq9OC!R-? zYGR7Qg?0w#+nAutI9Q}(uwzz4vK*ijy`2%F?=dkuz~HhzAI(m|XKy6I`H0HR4Nd0i zK+;YtsFqp*JAER2KPS?vIp-^uMB0HNUI!$(ixpH^A%k9P1d%!+DWYA9J?|v^A86@L zJ46u^e|c@#Ou2{6@Fk1EfmS7HbV9u7UYi2P?WD^I2GVy6KErR?N+2X;Z2Uj7#p=Sq ziVYVi43i}mHd17OknFH@Xlht`GhSGFGg8>(Fd1R#5Oieg|C{{{ro8z^w|6zCpyZz`MtNf^l0YU(qkrf-2l|f#07_THXEz*$cGU~ mWLolS)7){Rz%i0vi8O1GWO594keM+MNd+h31cIWRlJuXMyqS*x diff --git a/data/targets_test.parquet b/data/targets_test.parquet index 10c3c207e07254305f517ea1da25e1ed68e851ef..6151a149abd97bddad86fa11975b0f67738f6e76 100644 GIT binary patch delta 160 zcmezUfN{fp#tl8Po8QQ4drz*BM>;H0|^hOjHKM4jO6mkQ}Zu~flZdwkzrr}B8HD_3=9E| GL52W>mNLcw delta 172 zcmdmRpYitt#tl8P%xW{rCcn&x-P|Lq?aiXLZVB^bk4y!&eHWS3Zj?_J4AGf9D^qCl z_6$QNu(~*AOck4FWxi!(HPtiFGn(9!EzM{&c|~@eq@$-J5V(Q}$4DS{Dvt~|&5n%l y-K?Jz&BPX3>g#M$Ie9{!Dr=^frK98IQ+XG}z-CD5$S^Pf5yKZY28IB~AVUB&=Q`*B diff --git a/data/targets_train.parquet b/data/targets_train.parquet index de9a2b91f12fdeb81fccc6b5b2efee217206b112..4d741fe30c276c309ccd9c187c5a299bd1a2dc75 100644 GIT binary patch delta 151 zcmeBM%(izS+lJ!-&02xmwE`KxTTJinVl-l8n0}y(F#$-ab}=flb*$u6>pMK%r;E{k zduKP}9Y$6QJwrW%=~=yu(u~H_+j<%6I95^9X%a^z!gL|Mgp-@d1Sb0c4UO_cAH+tXePGM tQeS72%IS0a8C6*`y(}Far(f@9ydVZPNK!|JfdPmZezP$!1ULp60svZHPpbd` diff --git a/docker-compose.yml b/docker-compose.yml index bab711d..dfdccb2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ services: mlflow: - image: ghcr.io/mlflow/mlflow:v2.14.3 + image: ghcr.io/mlflow/mlflow:v2.19.0 ports: - 5000:5000 environment: diff --git a/notebooks/explain.ipynb b/notebooks/explain.ipynb index 69a6507..2bdb13d 100644 --- a/notebooks/explain.ipynb +++ b/notebooks/explain.ipynb @@ -29,9 +29,9 @@ } ], "source": [ - "import shap\n", "import pandas as pd\n", - "import plotly.express as px" + "import plotly.express as px\n", + "import shap" ] }, { @@ -48,8 +48,8 @@ "outputs": [], "source": [ "# note: you must run the explanations job first to generate the output\n", - "MODELS_EXPLANATIONS = '../outputs/models_explanations.parquet'\n", - "SAMPLES_EXPLANATIONS = '../outputs/samples_explanations.parquet'" + "MODELS_EXPLANATIONS = \"../outputs/models_explanations.parquet\"\n", + "SAMPLES_EXPLANATIONS = \"../outputs/samples_explanations.parquet\"" ] }, { @@ -68,7 +68,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "(19, 2)\n" + "(20, 2)\n" ] }, { @@ -98,29 +98,29 @@ " \n", " \n", " \n", - " 18\n", - " numericals__casual\n", - " 0.579146\n", - " \n", - " \n", - " 10\n", - " numericals__hr\n", - " 0.250726\n", + " 19\n", + " numericals__registered\n", + " 0.939335\n", " \n", " \n", - " 13\n", - " numericals__workingday\n", - " 0.078542\n", + " 18\n", + " numericals__casual\n", + " 0.060139\n", " \n", " \n", " 8\n", " numericals__yr\n", - " 0.038600\n", + " 0.000161\n", " \n", " \n", - " 9\n", - " numericals__mnth\n", - " 0.012079\n", + " 16\n", + " numericals__hum\n", + " 0.000064\n", + " \n", + " \n", + " 10\n", + " numericals__hr\n", + " 0.000059\n", " \n", " \n", "\n", @@ -128,11 +128,11 @@ ], "text/plain": [ " feature importance\n", - "18 numericals__casual 0.579146\n", - "10 numericals__hr 0.250726\n", - "13 numericals__workingday 0.078542\n", - "8 numericals__yr 0.038600\n", - "9 numericals__mnth 0.012079" + "19 numericals__registered 0.939335\n", + "18 numericals__casual 0.060139\n", + "8 numericals__yr 0.000161\n", + "16 numericals__hum 0.000064\n", + "10 numericals__hr 0.000059" ] }, "execution_count": 3, @@ -157,7 +157,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "(100, 19)\n" + "(100, 20)\n" ] }, { @@ -200,118 +200,124 @@ " numericals__hum\n", " numericals__windspeed\n", " numericals__casual\n", + " numericals__registered\n", " \n", " \n", " \n", " \n", " 0\n", - " 0.169155\n", - " -0.124650\n", - " -0.203503\n", - " -0.758982\n", - " -1.474484\n", - " -1.076349\n", - " 0.801956\n", - " 0.000513\n", - " 31.495134\n", - " 2.905728\n", - " -74.036369\n", - " -0.019947\n", - " -7.118968\n", - " 18.640795\n", - " 2.613896\n", - " 1.898717\n", - " -1.322058\n", - " -0.210363\n", - " 147.338089\n", + " 0.006652\n", + " 0.027727\n", + " 0.006341\n", + " -0.004617\n", + " 0.007796\n", + " -0.002922\n", + " 0.001006\n", + " -5.551742e-07\n", + " 0.079501\n", + " -0.032553\n", + " 0.019730\n", + " -0.005449\n", + " -0.091014\n", + " -0.040552\n", + " 0.024861\n", + " 0.003903\n", + " -0.012946\n", + " 0.083744\n", + " 25.231182\n", + " 93.615906\n", " \n", " \n", " 1\n", - " 0.142295\n", - " -0.242301\n", - " -0.061819\n", - " -0.650959\n", - " -1.001739\n", - " -0.523719\n", - " 0.824141\n", - " 0.000501\n", - " 32.251492\n", - " 2.752874\n", - " -68.468292\n", - " -0.037579\n", - " -4.272335\n", - " 19.723166\n", - " 1.812452\n", - " 1.462143\n", - " 0.369532\n", - " 0.374412\n", - " 117.786423\n", + " -0.000006\n", + " 0.015149\n", + " 0.013882\n", + " -0.003549\n", + " 0.009620\n", + " 0.034864\n", + " 0.004730\n", + " -5.551742e-07\n", + " 0.080114\n", + " -0.001672\n", + " 0.052958\n", + " -0.005971\n", + " 0.013171\n", + " -0.020272\n", + " 0.069661\n", + " 0.010426\n", + " 0.060713\n", + " -0.055690\n", + " 11.599885\n", + " 79.890282\n", " \n", " \n", " 2\n", - " 0.168699\n", - " -0.173419\n", - " -0.054359\n", - " -0.723623\n", - " -1.554552\n", - " -1.033979\n", - " 0.762942\n", - " 0.000534\n", - " 32.245430\n", - " 3.195950\n", - " -82.515167\n", - " 0.009938\n", - " -2.856529\n", - " 19.824303\n", - " 1.498975\n", - " 2.046780\n", - " 1.559438\n", - " 2.603706\n", - " 127.694664\n", + " 0.001510\n", + " 0.008787\n", + " -0.031662\n", + " -0.005680\n", + " 0.003407\n", + " 0.007366\n", + " 0.002644\n", + " -5.384581e-07\n", + " 0.075888\n", + " -0.039858\n", + " 0.066534\n", + " -0.008654\n", + " -0.043778\n", + " -0.015179\n", + " 0.120411\n", + " 0.004957\n", + " 0.042915\n", + " -0.029475\n", + " 17.027773\n", + " 80.330391\n", " \n", " \n", " 3\n", - " 0.253636\n", - " -0.791483\n", - " -0.218226\n", - " -0.612611\n", - " 0.499581\n", - " 0.039798\n", - " 0.778988\n", - " 0.000518\n", - " 30.905354\n", - " 2.808645\n", - " -70.180222\n", - " 0.097680\n", - " -6.699857\n", - " 19.206472\n", - " 4.468694\n", - " 7.614378\n", - " -0.776883\n", - " 1.582501\n", - " 180.403839\n", + " 0.002116\n", + " 0.000101\n", + " -0.030228\n", + " -0.008386\n", + " -0.001240\n", + " -0.001726\n", + " 0.001956\n", + " -5.384581e-07\n", + " 0.089552\n", + " -0.000123\n", + " 0.059446\n", + " -0.009938\n", + " 0.050032\n", + " -0.025889\n", + " -0.006929\n", + " -0.059649\n", + " -0.040841\n", + " 0.017910\n", + " 36.772224\n", + " 106.574913\n", " \n", " \n", " 4\n", - " 0.130902\n", - " -0.788029\n", - " -0.395371\n", - " -0.614574\n", - " -1.558409\n", - " 0.111731\n", - " -3.927900\n", - " 0.000904\n", - " 47.191067\n", - " 6.631704\n", - " -4.315243\n", - " 0.029141\n", - " -0.157620\n", - " 29.401426\n", - " 4.704289\n", - " 4.135256\n", - " -3.774523\n", - " 0.583940\n", - " 202.349609\n", + " 0.012335\n", + " 0.003437\n", + " 0.013386\n", + " -0.027833\n", + " 0.021164\n", + " -0.005834\n", + " -0.004372\n", + " -6.086659e-07\n", + " 0.018141\n", + " 0.174302\n", + " 0.120672\n", + " -0.003116\n", + " 0.040308\n", + " -0.074956\n", + " 0.069545\n", + " 0.015809\n", + " 0.074836\n", + " -0.040882\n", + " 38.722881\n", + " 246.853470\n", " \n", " \n", "\n", @@ -319,53 +325,60 @@ ], "text/plain": [ " categoricals__season_1 categoricals__season_2 categoricals__season_3 \\\n", - "0 0.169155 -0.124650 -0.203503 \n", - "1 0.142295 -0.242301 -0.061819 \n", - "2 0.168699 -0.173419 -0.054359 \n", - "3 0.253636 -0.791483 -0.218226 \n", - "4 0.130902 -0.788029 -0.395371 \n", + "0 0.006652 0.027727 0.006341 \n", + "1 -0.000006 0.015149 0.013882 \n", + "2 0.001510 0.008787 -0.031662 \n", + "3 0.002116 0.000101 -0.030228 \n", + "4 0.012335 0.003437 0.013386 \n", "\n", " categoricals__season_4 categoricals__weathersit_1 \\\n", - "0 -0.758982 -1.474484 \n", - "1 -0.650959 -1.001739 \n", - "2 -0.723623 -1.554552 \n", - "3 -0.612611 0.499581 \n", - "4 -0.614574 -1.558409 \n", + "0 -0.004617 0.007796 \n", + "1 -0.003549 0.009620 \n", + "2 -0.005680 0.003407 \n", + "3 -0.008386 -0.001240 \n", + "4 -0.027833 0.021164 \n", "\n", " categoricals__weathersit_2 categoricals__weathersit_3 \\\n", - "0 -1.076349 0.801956 \n", - "1 -0.523719 0.824141 \n", - "2 -1.033979 0.762942 \n", - "3 0.039798 0.778988 \n", - "4 0.111731 -3.927900 \n", + "0 -0.002922 0.001006 \n", + "1 0.034864 0.004730 \n", + "2 0.007366 0.002644 \n", + "3 -0.001726 0.001956 \n", + "4 -0.005834 -0.004372 \n", "\n", " categoricals__weathersit_4 numericals__yr numericals__mnth \\\n", - "0 0.000513 31.495134 2.905728 \n", - "1 0.000501 32.251492 2.752874 \n", - "2 0.000534 32.245430 3.195950 \n", - "3 0.000518 30.905354 2.808645 \n", - "4 0.000904 47.191067 6.631704 \n", + "0 -5.551742e-07 0.079501 -0.032553 \n", + "1 -5.551742e-07 0.080114 -0.001672 \n", + "2 -5.384581e-07 0.075888 -0.039858 \n", + "3 -5.384581e-07 0.089552 -0.000123 \n", + "4 -6.086659e-07 0.018141 0.174302 \n", "\n", " numericals__hr numericals__holiday numericals__weekday \\\n", - "0 -74.036369 -0.019947 -7.118968 \n", - "1 -68.468292 -0.037579 -4.272335 \n", - "2 -82.515167 0.009938 -2.856529 \n", - "3 -70.180222 0.097680 -6.699857 \n", - "4 -4.315243 0.029141 -0.157620 \n", + "0 0.019730 -0.005449 -0.091014 \n", + "1 0.052958 -0.005971 0.013171 \n", + "2 0.066534 -0.008654 -0.043778 \n", + "3 0.059446 -0.009938 0.050032 \n", + "4 0.120672 -0.003116 0.040308 \n", "\n", " numericals__workingday numericals__temp numericals__atemp \\\n", - "0 18.640795 2.613896 1.898717 \n", - "1 19.723166 1.812452 1.462143 \n", - "2 19.824303 1.498975 2.046780 \n", - "3 19.206472 4.468694 7.614378 \n", - "4 29.401426 4.704289 4.135256 \n", + "0 -0.040552 0.024861 0.003903 \n", + "1 -0.020272 0.069661 0.010426 \n", + "2 -0.015179 0.120411 0.004957 \n", + "3 -0.025889 -0.006929 -0.059649 \n", + "4 -0.074956 0.069545 0.015809 \n", + "\n", + " numericals__hum numericals__windspeed numericals__casual \\\n", + "0 -0.012946 0.083744 25.231182 \n", + "1 0.060713 -0.055690 11.599885 \n", + "2 0.042915 -0.029475 17.027773 \n", + "3 -0.040841 0.017910 36.772224 \n", + "4 0.074836 -0.040882 38.722881 \n", "\n", - " numericals__hum numericals__windspeed numericals__casual \n", - "0 -1.322058 -0.210363 147.338089 \n", - "1 0.369532 0.374412 117.786423 \n", - "2 1.559438 2.603706 127.694664 \n", - "3 -0.776883 1.582501 180.403839 \n", - "4 -3.774523 0.583940 202.349609 " + " numericals__registered \n", + "0 93.615906 \n", + "1 79.890282 \n", + "2 80.330391 \n", + "3 106.574913 \n", + "4 246.853470 " ] }, "execution_count": 4, @@ -384,102 +397,122 @@ "execution_count": 5, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Features: ['categoricals__season_1', 'categoricals__season_2', 'categoricals__season_3', 'categoricals__season_4', 'categoricals__weathersit_1', 'categoricals__weathersit_2', 'categoricals__weathersit_3', 'categoricals__weathersit_4', 'numericals__yr', 'numericals__mnth', 'numericals__hr', 'numericals__holiday', 'numericals__weekday', 'numericals__workingday', 'numericals__temp', 'numericals__atemp', 'numericals__hum', 'numericals__windspeed', 'numericals__casual', 'numericals__registered']\n" + ] + }, { "data": { "text/plain": [ ".values =\n", " categoricals__season_1 categoricals__season_2 categoricals__season_3 \\\n", - "0 0.169155 -0.124650 -0.203503 \n", - "1 0.142295 -0.242301 -0.061819 \n", - "2 0.168699 -0.173419 -0.054359 \n", - "3 0.253636 -0.791483 -0.218226 \n", - "4 0.130902 -0.788029 -0.395371 \n", + "0 0.006652 0.027727 0.006341 \n", + "1 -0.000006 0.015149 0.013882 \n", + "2 0.001510 0.008787 -0.031662 \n", + "3 0.002116 0.000101 -0.030228 \n", + "4 0.012335 0.003437 0.013386 \n", ".. ... ... ... \n", - "95 0.032898 0.004389 -0.022684 \n", - "96 -0.039833 -0.035329 -0.022280 \n", - "97 -0.029910 -0.054200 -0.015400 \n", - "98 0.002795 -0.055408 -0.033671 \n", - "99 0.001024 -0.061020 -0.034896 \n", + "95 0.023137 0.013332 -0.107473 \n", + "96 0.004738 -0.013562 -0.005693 \n", + "97 -0.019759 0.010218 -0.009712 \n", + "98 0.003229 -0.000393 -0.161296 \n", + "99 -0.002694 -0.024382 -0.013047 \n", "\n", " categoricals__season_4 categoricals__weathersit_1 \\\n", - "0 -0.758982 -1.474484 \n", - "1 -0.650959 -1.001739 \n", - "2 -0.723623 -1.554552 \n", - "3 -0.612611 0.499581 \n", - "4 -0.614574 -1.558409 \n", + "0 -0.004617 0.007796 \n", + "1 -0.003549 0.009620 \n", + "2 -0.005680 0.003407 \n", + "3 -0.008386 -0.001240 \n", + "4 -0.027833 0.021164 \n", ".. ... ... \n", - "95 -0.615178 0.264237 \n", - "96 -0.627357 0.463110 \n", - "97 -0.607787 0.455338 \n", - "98 -0.623416 0.560994 \n", - "99 -0.625861 0.542756 \n", + "95 -0.000028 0.015664 \n", + "96 0.006259 0.040204 \n", + "97 -0.002168 0.050850 \n", + "98 0.001767 0.032412 \n", + "99 -0.000830 0.073416 \n", "\n", " categoricals__weathersit_2 categoricals__weathersit_3 \\\n", - "0 -1.076349 0.801956 \n", - "1 -0.523719 0.824141 \n", - "2 -1.033979 0.762942 \n", - "3 0.039798 0.778988 \n", - "4 0.111731 -3.927900 \n", + "0 -0.002922 0.001006 \n", + "1 0.034864 0.004730 \n", + "2 0.007366 0.002644 \n", + "3 -0.001726 0.001956 \n", + "4 -0.005834 -0.004372 \n", ".. ... ... \n", - "95 -0.054727 0.568837 \n", - "96 -0.015223 0.565861 \n", - "97 0.003094 0.551169 \n", - "98 0.020387 0.537736 \n", - "99 0.013132 0.532625 \n", + "95 0.042348 0.001443 \n", + "96 0.015874 0.000851 \n", + "97 0.016159 0.000913 \n", + "98 0.004988 0.001736 \n", + "99 0.008803 0.005390 \n", "\n", " categoricals__weathersit_4 numericals__yr numericals__mnth \\\n", - "0 0.000513 31.495134 2.905728 \n", - "1 0.000501 32.251492 2.752874 \n", - "2 0.000534 32.245430 3.195950 \n", - "3 0.000518 30.905354 2.808645 \n", - "4 0.000904 47.191067 6.631704 \n", + "0 -5.551742e-07 0.079501 -0.032553 \n", + "1 -5.551742e-07 0.080114 -0.001672 \n", + "2 -5.384581e-07 0.075888 -0.039858 \n", + "3 -5.384581e-07 0.089552 -0.000123 \n", + "4 -6.086659e-07 0.018141 0.174302 \n", ".. ... ... ... \n", - "95 0.000399 40.124039 6.724072 \n", - "96 0.000403 35.804981 20.436369 \n", - "97 0.000411 32.999043 26.067795 \n", - "98 0.000392 32.314198 23.293106 \n", - "99 0.000388 32.588284 24.576950 \n", + "95 -5.602442e-07 1.145752 0.013935 \n", + "96 -5.903332e-07 0.702181 -0.239828 \n", + "97 -5.234687e-07 0.233502 0.053566 \n", + "98 -5.234687e-07 1.738129 -0.242034 \n", + "99 -5.903332e-07 2.091767 -0.134973 \n", "\n", " numericals__hr numericals__holiday numericals__weekday \\\n", - "0 -74.036369 -0.019947 -7.118968 \n", - "1 -68.468292 -0.037579 -4.272335 \n", - "2 -82.515167 0.009938 -2.856529 \n", - "3 -70.180222 0.097680 -6.699857 \n", - "4 -4.315243 0.029141 -0.157620 \n", + "0 0.019730 -0.005449 -0.091014 \n", + "1 0.052958 -0.005971 0.013171 \n", + "2 0.066534 -0.008654 -0.043778 \n", + "3 0.059446 -0.009938 0.050032 \n", + "4 0.120672 -0.003116 0.040308 \n", ".. ... ... ... \n", - "95 -3.901324 0.138933 0.979801 \n", - "96 4.877304 -0.027108 2.595324 \n", - "97 5.580533 -0.012089 2.779204 \n", - "98 1.114409 0.254242 2.357220 \n", - "99 1.200160 0.254306 2.411582 \n", + "95 0.233593 -0.001234 0.026021 \n", + "96 -0.003729 -0.001246 0.083014 \n", + "97 0.239605 -0.001948 0.132541 \n", + "98 0.097312 0.015623 0.146109 \n", + "99 0.258849 -0.001218 0.013697 \n", "\n", " numericals__workingday numericals__temp numericals__atemp \\\n", - "0 18.640795 2.613896 1.898717 \n", - "1 19.723166 1.812452 1.462143 \n", - "2 19.824303 1.498975 2.046780 \n", - "3 19.206472 4.468694 7.614378 \n", - "4 29.401426 4.704289 4.135256 \n", + "0 -0.040552 0.024861 0.003903 \n", + "1 -0.020272 0.069661 0.010426 \n", + "2 -0.015179 0.120411 0.004957 \n", + "3 -0.025889 -0.006929 -0.059649 \n", + "4 -0.074956 0.069545 0.015809 \n", ".. ... ... ... \n", - "95 -21.420794 -1.613000 -4.774735 \n", - "96 -20.015820 -0.422287 -6.170654 \n", - "97 -19.195932 -3.357377 -8.327322 \n", - "98 -18.854221 -0.914422 -15.955507 \n", - "99 -19.075937 -1.693157 -12.839770 \n", + "95 0.033179 0.099047 0.023928 \n", + "96 0.006335 -0.164110 -0.198730 \n", + "97 0.047977 -0.179421 -0.228707 \n", + "98 0.029174 0.148351 0.050507 \n", + "99 0.039286 0.102756 0.067073 \n", "\n", - " numericals__hum numericals__windspeed numericals__casual \n", - "0 -1.322058 -0.210363 147.338089 \n", - "1 0.369532 0.374412 117.786423 \n", - "2 1.559438 2.603706 127.694664 \n", - "3 -0.776883 1.582501 180.403839 \n", - "4 -3.774523 0.583940 202.349609 \n", - ".. ... ... ... \n", - "95 -2.793116 1.410505 319.295746 \n", - "96 -1.366720 -0.086119 363.113678 \n", - "97 1.297852 0.499207 374.674683 \n", - "98 1.504436 -0.023106 381.828125 \n", - "99 3.381457 -0.181553 378.957825 \n", + " numericals__hum numericals__windspeed numericals__casual \\\n", + "0 -0.012946 0.083744 25.231182 \n", + "1 0.060713 -0.055690 11.599885 \n", + "2 0.042915 -0.029475 17.027773 \n", + "3 -0.040841 0.017910 36.772224 \n", + "4 0.074836 -0.040882 38.722881 \n", + ".. ... ... ... \n", + "95 0.094390 0.061557 118.444702 \n", + "96 -0.431589 0.055392 125.518913 \n", + "97 -0.302664 -0.151566 136.479645 \n", + "98 -0.501217 0.015435 146.480164 \n", + "99 -0.028538 0.062194 143.070084 \n", "\n", - "[100 rows x 19 columns]" + " numericals__registered \n", + "0 93.615906 \n", + "1 79.890282 \n", + "2 80.330391 \n", + "3 106.574913 \n", + "4 246.853470 \n", + ".. ... \n", + "95 216.020004 \n", + "96 256.033020 \n", + "97 273.089264 \n", + "98 224.673309 \n", + "99 245.905670 \n", + "\n", + "[100 rows x 20 columns]" ] }, "execution_count": 5, @@ -488,8 +521,10 @@ } ], "source": [ - "shap_values = shap.Explanation(samples_explanations, feature_names=samples_explanations.columns.to_list())\n", - "shap_values.feature_names\n", + "shap_values = shap.Explanation(\n", + " samples_explanations, feature_names=samples_explanations.columns.to_list()\n", + ")\n", + "print(\"Features:\", shap_values.feature_names)\n", "shap_values" ] }, @@ -536,47 +571,49 @@ "textposition": "auto", "type": "bar", "x": [ + "numericals__registered", "numericals__casual", - "numericals__hr", - "numericals__workingday", "numericals__yr", - "numericals__mnth", "numericals__hum", - "numericals__atemp", + "numericals__hr", + "numericals__windspeed", "numericals__temp", + "numericals__atemp", + "numericals__mnth", "numericals__weekday", - "numericals__windspeed", - "categoricals__weathersit_3", - "categoricals__season_4", - "categoricals__season_1", - "numericals__holiday", - "categoricals__weathersit_1", "categoricals__weathersit_2", + "categoricals__weathersit_1", "categoricals__season_2", "categoricals__season_3", + "numericals__workingday", + "categoricals__season_1", + "categoricals__season_4", + "numericals__holiday", + "categoricals__weathersit_3", "categoricals__weathersit_4" ], "xaxis": "x", "y": [ - 0.5791462063789368, - 0.2507259249687195, - 0.0785420835018158, - 0.038599804043769836, - 0.0120792705565691, - 0.008070561103522778, - 0.006674219388514757, - 0.006322493776679039, - 0.00494948448613286, - 0.004703037440776825, - 0.0028446626383811235, - 0.002690249355509877, - 0.0013275929959490895, - 0.0011345595121383667, - 0.0009102495387196541, - 0.0005809680442325771, - 0.0005128193879500031, - 0.00018277487833984196, - 0.0000030518597213813337 + 0.939335286617279, + 0.06013893708586693, + 0.00016115649486891925, + 0.00006372830830514431, + 0.000059160523960599676, + 0.000047698642447358, + 0.00004084747706656344, + 0.00003856617695419118, + 0.000034207892895210534, + 0.000027639429390546866, + 0.000021623562133754604, + 0.000008339592568518128, + 0.0000059107342167408206, + 0.000005159051852388075, + 0.000004351996267359937, + 0.000003020162239408819, + 0.0000021705050130549353, + 0.000001173117652797373, + 0.0000010395727940704091, + 1.8287782399539765e-10 ], "yaxis": "y" } @@ -1433,7 +1470,7 @@ } ], "source": [ - "px.bar(models_explanations, x='feature', y='importance', title='Feature Importances')" + "px.bar(models_explanations, x=\"feature\", y=\"importance\", title=\"Feature Importances\")" ] }, { @@ -1479,7 +1516,8 @@ "numericals__atemp", "numericals__hum", "numericals__windspeed", - "numericals__casual" + "numericals__casual", + "numericals__registered" ], "xaxis": "x", "y": [ @@ -1587,2104 +1625,2204 @@ "yaxis": "y", "z": [ [ - 0.169154554605484, - -0.12465005367994308, - -0.20350304245948792, - -0.7589821815490723, - -1.4744840860366821, - -1.0763494968414307, - 0.8019556403160095, - 0.0005125635070726275, - 31.495134353637695, - 2.905728340148926, - -74.03636932373047, - -0.01994742453098297, - -7.118968486785889, - 18.64079475402832, - 2.613896131515503, - 1.898716688156128, - -1.322058081626892, - -0.21036271750926971, - 147.3380889892578 + 0.006651927717030048, + 0.027727307751774788, + 0.006340912077575922, + -0.004616885911673307, + 0.007796195801347494, + -0.0029222434386610985, + 0.0010060640051960945, + -5.551742106035817e-7, + 0.07950128614902496, + -0.03255324438214302, + 0.019729897379875183, + -0.005449031479656696, + -0.09101399779319763, + -0.04055198282003403, + 0.024861138314008713, + 0.003903420874848962, + -0.01294585969299078, + 0.08374375104904175, + 25.231182098388672, + 93.61590576171875 ], [ - 0.14229492843151093, - -0.24230052530765533, - -0.06181931495666504, - -0.6509594321250916, - -1.0017391443252563, - -0.523719310760498, - 0.8241411447525024, - 0.0005005813436582685, - 32.25149154663086, - 2.7528738975524902, - -68.46829223632812, - -0.037578750401735306, - -4.272334575653076, - 19.72316551208496, - 1.8124518394470215, - 1.4621434211730957, - 0.3695316016674042, - 0.37441232800483704, - 117.78642272949219 + -0.000005508778485818766, + 0.015149489045143127, + 0.013882013969123363, + -0.0035485560074448586, + 0.009620439261198044, + 0.03486402705311775, + 0.00472987350076437, + -5.551742106035817e-7, + 0.08011361956596375, + -0.0016723755979910493, + 0.05295836552977562, + -0.00597083056345582, + 0.013171305879950523, + -0.020272132009267807, + 0.06966143101453781, + 0.010425924323499203, + 0.06071314588189125, + -0.055689744651317596, + 11.599884986877441, + 79.8902816772461 ], [ - 0.16869859397411346, - -0.17341940104961395, - -0.054359059780836105, - -0.7236232757568359, - -1.5545519590377808, - -1.0339789390563965, - 0.762941837310791, - 0.0005341940559446812, - 32.24542999267578, - 3.1959495544433594, - -82.51516723632812, - 0.009938172064721584, - -2.8565289974212646, - 19.824302673339844, - 1.4989748001098633, - 2.0467801094055176, - 1.55943763256073, - 2.603705883026123, - 127.69466400146484 + 0.0015104314079508185, + 0.008786758407950401, + -0.03166200965642929, + -0.00567967165261507, + 0.003407492069527507, + 0.007365649100393057, + 0.002644443651661277, + -5.384580958889273e-7, + 0.07588770985603333, + -0.03985791280865669, + 0.06653440743684769, + -0.008654243312776089, + -0.04377765581011772, + -0.015179304406046867, + 0.12041128426790237, + 0.0049573155120015144, + 0.042915187776088715, + -0.029475096613168716, + 17.027772903442383, + 80.33039093017578 ], [ - 0.25363633036613464, - -0.7914834022521973, - -0.2182263433933258, - -0.6126111149787903, - 0.4995812475681305, - 0.03979773819446564, - 0.7789877653121948, - 0.0005178267601877451, - 30.905353546142578, - 2.808645009994507, - -70.18022155761719, - 0.09768002480268478, - -6.699856758117676, - 19.206472396850586, - 4.46869421005249, - 7.614377975463867, - -0.7768831253051758, - 1.5825011730194092, - 180.40383911132812 + 0.0021160715259611607, + 0.00010051442950498313, + -0.03022756800055504, + -0.008386158384382725, + -0.0012403222499415278, + -0.001726397080346942, + 0.001956117106601596, + -5.384580958889273e-7, + 0.08955230563879013, + -0.00012346371659077704, + 0.05944574624300003, + -0.00993797555565834, + 0.05003214627504349, + -0.025889070704579353, + -0.00692921644076705, + -0.059649284929037094, + -0.04084114730358124, + 0.01790992170572281, + 36.77222442626953, + 106.57491302490234 ], [ - 0.13090188801288605, - -0.7880292534828186, - -0.3953709006309509, - -0.6145736575126648, - -1.5584088563919067, - 0.11173088103532791, - -3.9278995990753174, - 0.0009037204436026514, - 47.19106674194336, - 6.631704330444336, - -4.315243244171143, - 0.029140517115592957, - -0.1576196849346161, - 29.401426315307617, - 4.704289436340332, - 4.135255813598633, - -3.7745230197906494, - 0.583940327167511, - 202.349609375 + 0.012334555387496948, + 0.0034372410736978054, + 0.013385637663304806, + -0.027833398431539536, + 0.021164117380976677, + -0.005833676550537348, + -0.004372060764580965, + -6.086659141146811e-7, + 0.018141459673643112, + 0.17430205643177032, + 0.12067165970802307, + -0.0031163603998720646, + 0.040307920426130295, + -0.07495581358671188, + 0.0695449560880661, + 0.0158088356256485, + 0.07483598589897156, + -0.040882423520088196, + 38.72288131713867, + 246.8534698486328 ], [ - 0.09980977326631546, - -0.1289137452840805, - 0.04262050241231918, - -1.0114322900772095, - -1.5444451570510864, - -0.3063795566558838, - 1.2926396131515503, - 0.007032076362520456, - 77.94355010986328, - 5.943662643432617, - 176.00094604492188, - 0.0029676654376089573, - 4.077856063842773, - 77.48359680175781, - 2.1760151386260986, - -4.81910514831543, - -3.676065444946289, - 0.42632120847702026, - 252.67762756347656 + 0.001423245994374156, + -0.023805150762200356, + -0.0017604439053684473, + -0.0032613121438771486, + 2.322108030319214, + 9.371479988098145, + 0.002707292325794697, + -5.551742106035817e-7, + 0.030152510851621628, + -0.22498054802417755, + 1.348039984703064, + -0.0029431453440338373, + -0.20665644109249115, + -0.009681344032287598, + -0.2660611867904663, + 0.05648881942033768, + -2.369138717651367, + 0.2110820710659027, + 40.40130615234375, + 653.5117797851562 ], [ - 0.17066802084445953, - -0.2959515154361725, - -0.11001028120517731, - -1.0064359903335571, - -1.6547470092773438, - -0.7146743535995483, - 1.3593095541000366, - 0.006959938909858465, - 67.61687469482422, - 7.270330429077148, - 177.5045623779297, - -0.15282031893730164, - 6.387446403503418, - 96.7355728149414, - 2.823650360107422, - -3.538238763809204, - -3.534722089767456, - 1.1455564498901367, - 236.20997619628906 + 0.0010418965248391032, + -0.012846914120018482, + 0.00026803204673342407, + -0.003396972781047225, + 2.951350450515747, + 11.435035705566406, + 0.014215871691703796, + -5.551742106035817e-7, + 0.027390284463763237, + -0.3635384142398834, + 0.7165672183036804, + -0.0036144033074378967, + -0.20825642347335815, + -0.014535687863826752, + 0.4040703773498535, + 0.15121860802173615, + -2.0535378456115723, + 0.40650585293769836, + 27.834957122802734, + 634.140380859375 ], [ - 0.21100318431854248, - -0.5323825478553772, - -0.11136386543512344, - -0.7844051122665405, - -3.295231342315674, - -4.226391315460205, - 1.0265041589736938, - 0.006217549089342356, - 52.71641540527344, - 5.100271701812744, - 64.47308349609375, - -0.13248220086097717, - 6.663832187652588, - 58.35783386230469, - 3.418996572494507, - 2.1445350646972656, - -2.514310836791992, - 1.3115136623382568, - 195.78465270996094 + 0.011715793050825596, + 0.003498691599816084, + 0.01716129295527935, + 0.004922044463455677, + -0.11751722544431686, + -0.007312047760933638, + 0.004228171892464161, + -5.384580958889273e-7, + -0.014053408987820148, + -0.009733003564178944, + -0.3451545536518097, + -0.003562246449291706, + 0.00381058850325644, + -0.0142894946038723, + 0.14947956800460815, + -0.007123587653040886, + -0.06559731066226959, + 0.08480101823806763, + 38.38937759399414, + 393.67364501953125 ], [ - 0.15828295052051544, - -0.10273899137973785, - -0.23303288221359253, - -0.7537844181060791, - -1.0537359714508057, - -0.3776755928993225, - 0.923829197883606, - 0.0001359017041977495, - 39.298519134521484, - 1.023025631904602, - -0.3841829001903534, - -0.09258145093917847, - 3.8694167137145996, - 46.602294921875, - 3.19360613822937, - 3.103475332260132, - -3.797464370727539, - -1.9199837446212769, - 138.60589599609375 + 0.007220177445560694, + 0.0215398408472538, + 0.0016394491540268064, + 0.0030258353799581528, + 0.06396777927875519, + 0.029478909447789192, + -0.011835450306534767, + -5.551742106035817e-7, + -0.052763741463422775, + 0.10569187998771667, + -0.11298134922981262, + -0.0036906185559928417, + -0.12399685382843018, + -0.04884563386440277, + 0.12146088480949402, + 0.10700148344039917, + -0.08078912645578384, + 0.029259132221341133, + 17.277523040771484, + 268.6304016113281 ], [ - 0.15737031400203705, - 0.0520184300839901, - -0.4065300226211548, - -0.6695138812065125, - -0.9999762773513794, - -0.3622300326824188, - 0.7322946190834045, - 0.0005345836980268359, - 41.25462341308594, - 0.020151332020759583, - -39.13706970214844, - -0.08169162273406982, - 4.318027496337891, - 40.69746780395508, - 2.7966856956481934, - 2.3097407817840576, - -4.547541618347168, - -1.7421387434005737, - 140.1410675048828 + -0.001569658750668168, + 0.0036461090203374624, + -0.01135318260639906, + -0.000772456347476691, + -0.004854164086282253, + 0.018403340131044388, + -0.0022952479775995016, + -5.232615762906789e-7, + 0.05307045578956604, + -0.003736469428986311, + -0.025117889046669006, + 0.005081627052277327, + -0.035275302827358246, + -0.015301229432225227, + 0.03121856227517128, + 0.0745277926325798, + -0.056133806705474854, + -0.042364202439785004, + 12.01944637298584, + 140.9316864013672 ], [ - 0.2103569209575653, - -0.6580501794815063, - -0.018581287935376167, - -0.5772673487663269, - 0.5382667779922485, - 0.07692182064056396, - 0.7319211959838867, - 0.0004881093336734921, - 36.82917022705078, - 2.3916404247283936, - -56.327823638916016, - -0.10369519889354706, - -3.7037088871002197, - 17.519577026367188, - 3.3487110137939453, - 4.850150108337402, - -1.7671900987625122, - 0.2815130054950714, - 62.255897521972656 + 0.0001924146490637213, + 0.04092865809798241, + -0.0015011084033176303, + -0.0033650179393589497, + -0.0006705141859129071, + 0.006108311004936695, + 0.00045175253762863576, + -5.232615762906789e-7, + 0.08092037588357925, + 0.007637431379407644, + -0.05110520124435425, + -0.0013185016578063369, + -0.020542727783322334, + 0.0018261007498949766, + 0.035800348967313766, + -0.015426475554704666, + -0.022554943338036537, + 0.03824063017964363, + -10.589357376098633, + 71.0620346069336 ], [ - 0.23457731306552887, - -0.3182263970375061, - -0.03401074558496475, - -0.5962135195732117, - 0.6905218958854675, - 0.0343155562877655, - 0.6870012283325195, - 0.0006443400052376091, - 21.72657585144043, - 2.088026762008667, - -64.06810760498047, - -0.028121035546064377, - -2.425230026245117, - 10.60973072052002, - 1.6931196451187134, - 1.4571316242218018, - -2.226402521133423, - 0.7569981217384338, - -37.61403274536133 + 0.003995981998741627, + 0.0006536968285217881, + 0.005731872282922268, + -0.0013177760411053896, + 0.0039686947129666805, + 0.000600155268330127, + 0.0003653279854916036, + -5.232615762906789e-7, + 0.028297729790210724, + 0.010578276589512825, + 0.04005580022931099, + -0.0003057414141949266, + -0.037189945578575134, + -0.0021838219836354256, + 0.019763674587011337, + 0.03748919442296028, + 0.024632716551423073, + 0.05713146924972534, + -12.713790893554688, + -11.780177116394043 ], [ - 0.1959066241979599, - -0.18706031143665314, - -0.02977874130010605, - -0.5241200923919678, - 0.7009141445159912, - 0.07782352715730667, - 0.6562888622283936, - 0.0007873308495618403, - 18.619783401489258, - 1.6802222728729248, - -87.85552978515625, - 0.008099825121462345, - -2.5846824645996094, - 2.4992663860321045, - 1.3333842754364014, - 1.8203318119049072, - -3.4116618633270264, - 0.13050484657287598, - -54.8721809387207 + 0.0007210383773781359, + 0.0036300288047641516, + 0.0031402234453707933, + -0.006010253448039293, + -0.0015569813549518585, + -0.005153910256922245, + -0.0003303317353129387, + -6.387549547071103e-7, + 0.0020087563898414373, + 0.04483729600906372, + 0.0020666068885475397, + -0.0010454640723764896, + -0.009915451519191265, + 0.0017118079122155905, + 0.03720792382955551, + 0.02716696262359619, + -0.023839706555008888, + -0.007197789382189512, + -8.53911304473877, + -96.36003112792969 ], [ - 0.22012750804424286, - -0.1243598610162735, - 0.04713971167802811, - -0.4951706528663635, - 0.5279565453529358, - 0.006826077122241259, - 1.2234665155410767, - 0.0020947991870343685, - 16.840295791625977, - 1.5345487594604492, - -78.14442443847656, - 0.06610047072172165, - -0.40369319915771484, - 6.414614200592041, - 1.874184489250183, - 1.5743393898010254, - -1.5664819478988647, - 0.8207980394363403, - -93.91680145263672 + 0.0019598952494561672, + -0.00007570861635031179, + -0.00884841289371252, + -0.00023431282897945493, + 0.00014444779662881047, + -0.0015234807506203651, + 0.00046563331852667034, + -0.00000278572633760632, + 0.027526993304491043, + 0.007481624837964773, + -0.006813213229179382, + 0.0014300434850156307, + -0.02230777032673359, + 0.0006117512239143252, + 0.025103237479925156, + 0.01750626228749752, + -0.016068970784544945, + 0.002960961777716875, + -14.311731338500977, + -125.42428588867188 ], [ - 0.23642316460609436, - -0.07295327633619308, - 0.02021026983857155, - -0.46774348616600037, - 0.5260272026062012, - -0.0433531254529953, - 1.3350751399993896, - 0.0008117177058011293, - 16.031938552856445, - 1.671962857246399, - -78.07720947265625, - 0.022589685395359993, - -0.31112754344940186, - 7.640243053436279, - 1.160016655921936, - 1.7891626358032227, - -2.236783981323242, - 0.45728132128715515, - -104.49085235595703 + 0.0017088694730773568, + 0.00015139536117203534, + 0.0020067566074430943, + 0.00004777113281306811, + -0.00038464966928586364, + -0.0017217871500179172, + 0.000292366516077891, + -0.0000018034877484751632, + 0.027422193437814713, + 0.007868070155382156, + -0.007023367565125227, + -0.00004148716834606603, + -0.005028950981795788, + -0.0002758684568107128, + 0.029125582426786423, + 0.030005553737282753, + -0.0170501247048378, + -0.0033129926305264235, + -14.520783424377441, + -142.10971069335938 ], [ - 0.24079622328281403, - -0.04550537094473839, - 0.10600541532039642, - -0.4731599688529968, - 0.5193852782249451, - -0.02344142273068428, - 1.3347171545028687, - 0.000648858433123678, - 15.789037704467773, - 1.5652916431427002, - -80.2547836303711, - -0.0102729182690382, - -0.08482003957033157, - 8.450746536254883, - 1.0162487030029297, - 1.6323434114456177, - -2.069530487060547, - 0.407787561416626, - -104.59845733642578 + 0.0017002519452944398, + 0.000153756482177414, + 0.0019306479953229427, + 0.000020420211512828246, + -0.000408702006097883, + -0.0017167264595627785, + 0.00031555621535517275, + -0.0000018034877484751632, + 0.027525680139660835, + 0.007822387851774693, + -0.006818796042352915, + -0.00004227953832014464, + -0.005034175235778093, + -0.00025318050757050514, + 0.02901722490787506, + 0.029881330206990242, + -0.016946304589509964, + -0.002256162464618683, + -14.518677711486816, + -141.1129150390625 ], [ - 0.2427425980567932, - -0.0384024940431118, - 0.10925472527742386, - -0.4685764014720917, - 0.6121373176574707, - -0.010323641821742058, - 1.344220519065857, - 0.000648858433123678, - 17.439502716064453, - 1.6917942762374878, - -73.54963684082031, - -0.021768908947706223, - -0.015513437800109386, - 10.325225830078125, - 0.9995515942573547, - 1.6338378190994263, - -1.988153100013733, - 0.34100043773651123, - -114.72674560546875 + 0.0017017937498167157, + 0.0001543604739708826, + 0.0019258393440395594, + 0.000020506889995886013, + -0.0004134212795179337, + -0.0017175067914649844, + 0.0003159851476084441, + -0.0000018034877484751632, + 0.027518579736351967, + 0.007817110046744347, + -0.006939616519957781, + -0.0000423185047111474, + -0.0050295256078243256, + -0.00025328496121801436, + 0.028996039181947708, + 0.029887082055211067, + -0.016934210434556007, + -0.0022415604908019304, + -14.518477439880371, + -141.1129913330078 ], [ - 0.19245152175426483, - -0.08253858983516693, - -0.0036932018119841814, - -0.47749078273773193, - -0.778639554977417, - -0.12267234921455383, - 1.2741750478744507, - 0.0017355340532958508, - 19.329111099243164, - 1.9788233041763306, - -49.32539367675781, - -0.014683695510029793, - 0.3591795265674591, - 14.508062362670898, - 1.2764817476272583, - 1.9689347743988037, - -3.1787121295928955, - -0.0871240571141243, - -117.06720733642578 + 0.0069075231440365314, + -0.0023793235886842012, + 0.002408546395599842, + -0.0002046683948719874, + 0.0034174283500760794, + 0.017605656757950783, + -0.0013891690177842975, + -0.0000028024423954775557, + 0.013808869756758213, + 0.007753540761768818, + -0.058710016310214996, + -0.0004907532129436731, + 0.0027976674027740955, + 0.002934164833277464, + 0.03329596668481827, + 0.02990683913230896, + -0.004108473192900419, + 0.009282576851546764, + -16.78298568725586, + -103.1865463256836 ], [ - 0.26470598578453064, - -0.20068220794200897, - 0.04700566455721855, - -0.5295122861862183, - -2.3159399032592773, - -0.5527059435844421, - 1.4427541494369507, - 0.002121501136571169, - 23.01054573059082, - 4.577113151550293, - 4.840754985809326, - -0.04685033857822418, - 1.0733647346496582, - 24.8539981842041, - 2.3293471336364746, - 2.876255512237549, - -2.0436370372772217, - 0.4947572350502014, - -95.24009704589844 + 0.01696089841425419, + -0.0008815972250886261, + 0.0016786563210189342, + -0.01154683344066143, + -0.010079937055706978, + -0.030534395948052406, + -0.00013122665404807776, + -0.0000028024423954775557, + 0.09249408543109894, + 0.0228847898542881, + -0.015595098957419395, + 0.0001536715280963108, + -0.011061187833547592, + -0.01067361794412136, + 0.010136430151760578, + -0.0036386067513376474, + -0.03060462884604931, + 0.046657461673021317, + -36.773563385009766, + 48.45564651489258 ], [ - 0.6009383797645569, - -0.53944331407547, - 0.07307998836040497, - -0.5650307536125183, - -1.6178886890411377, - -1.9659442901611328, - 1.523211121559143, - 0.0005157730774953961, - 55.051509857177734, - 11.02030086517334, - 134.98486328125, - -0.21013426780700684, - 1.3449642658233643, - 48.54542541503906, - 4.885603427886963, - 7.470324516296387, - -3.7808265686035156, - -0.40304115414619446, - 21.054868698120117 + -0.006166016682982445, + -0.011735131032764912, + 0.06870537251234055, + 0.011978757567703724, + 0.008082941174507141, + -0.0017754751024767756, + 0.0006361235864460468, + -6.554711262651836e-7, + -0.004149665590375662, + 0.039941489696502686, + 0.1018957570195198, + -0.0005749366246163845, + 0.02964543178677559, + 0.0020867306739091873, + 0.33774110674858093, + 0.16967691481113434, + -0.19295023381710052, + 0.08954022079706192, + -23.142898559570312, + 340.13360595703125 ], [ - 1.0368555784225464, - -4.67413330078125, - -0.0035402767825871706, - -0.6122829914093018, - -1.3186876773834229, - -0.3487352132797241, - 2.466224431991577, - 0.0005312719731591642, - 84.37887573242188, - 6.363649368286133, - 223.41319274902344, - -0.32166752219200134, - 1.1088142395019531, - 57.85630798339844, - -3.1717469692230225, - 0.9009676575660706, - 1.3160041570663452, - 1.3381297588348389, - 127.35955047607422 + 0.00004884159716311842, + 0.030575351789593697, + 0.0035347396042197943, + 0.0003978738677687943, + 1.5647059679031372, + 7.639703750610352, + 0.010119368322193623, + -6.387549547071103e-7, + 0.026196055114269257, + -0.19718025624752045, + -5.4047746658325195, + -0.0004433723515830934, + -0.10173637419939041, + -0.0020036129280924797, + 0.6015021800994873, + 0.8079819083213806, + -3.4430339336395264, + -0.1915404051542282, + -7.461704730987549, + 610.700927734375 ], [ - 0.12387402355670929, - 0.07819881290197372, - -0.009967210702598095, - -0.7128632664680481, - -0.6675121784210205, - 0.03523243963718414, - 1.462039589881897, - 0.0005336896283552051, - 54.256168365478516, - 2.884908437728882, - 24.965435028076172, - -0.05086776614189148, - 1.2107491493225098, - 28.869901657104492, - -0.03788652643561363, - 0.46800532937049866, - 0.19632861018180847, - 1.7283220291137695, - 36.397701263427734 + 0.01107970904558897, + 0.019075576215982437, + 0.0007419644971378148, + -0.004295518156141043, + -0.007189751137048006, + 0.01976017840206623, + 0.004607226699590683, + -6.387549547071103e-7, + 0.07562561333179474, + 0.0512821190059185, + -0.04846164584159851, + -0.0002875449717976153, + 0.0070600989274680614, + -0.006363027263432741, + 0.15419448912143707, + 0.12018619477748871, + -0.02885739505290985, + -0.13140086829662323, + -16.955368041992188, + 195.36190795898438 ], [ - 0.15390318632125854, - -0.24831996858119965, - -0.005272223148494959, - -0.5715996026992798, - -0.8208709955215454, - -0.1594245284795761, - 0.7970048189163208, - 0.0005079301190562546, - 31.991912841796875, - 2.542576551437378, - -94.4873275756836, - -0.09413846582174301, - -1.5950297117233276, - 12.353922843933105, - 3.599046468734741, - 2.71368408203125, - 1.3042409420013428, - 0.17937436699867249, - 94.56910705566406 + 0.007070349995046854, + -0.000687244173604995, + 0.002845907583832741, + -0.0002750162675511092, + 0.0028887975495308638, + 0.010263207368552685, + 0.0008025174611248076, + -6.554711262651836e-7, + 0.01467940304428339, + 0.03249873220920563, + 0.062460750341415405, + -0.0018362159607931972, + -0.04076463729143143, + -0.023052731528878212, + 0.01790039800107479, + 0.05104433745145798, + -0.0140243424102664, + -0.013928093016147614, + 20.689077377319336, + 30.211336135864258 ], [ - 0.12881344556808472, - -0.23975999653339386, - -0.11960572004318237, - -0.7206676602363586, - -1.1241790056228638, - -0.6253287196159363, - 0.7455617189407349, - 0.0005503954016603529, - 27.759973526000977, - 2.76396107673645, - -93.7419662475586, - 0.02968677505850792, - -0.7746119499206543, - 19.718368530273438, - 2.5528836250305176, - 1.075609564781189, - 0.22086085379123688, - 2.4454987049102783, - 129.79888916015625 + -0.0013728635385632515, + 0.003555235220119357, + 0.012853462249040604, + -0.0044914111495018005, + 0.010545231401920319, + 0.04375496879220009, + 0.0016766720218583941, + -0.000019832026737276465, + -0.06388916820287704, + 0.03887112811207771, + 0.05932518467307091, + -0.0039627430960536, + -0.04522162303328514, + -0.007923176512122154, + 0.06569643318653107, + 0.03602413088083267, + 0.07286236435174942, + 0.024239348247647285, + 35.06470489501953, + 41.411067962646484 ], [ - 0.12905992567539215, - -0.2558153569698334, - -0.021835684776306152, - -0.5680426955223083, - -1.2032192945480347, - -0.269516259431839, - 0.8631099462509155, - 0.0005503954016603529, - 41.81741714477539, - 3.8032913208007812, - -56.884029388427734, - -0.1119290143251419, - 0.18008644878864288, - 14.842578887939453, - 3.691838026046753, - 2.833195447921753, - 0.746959924697876, - 2.0351486206054688, - 112.8614273071289 + -0.005357834044843912, + -0.0024086281191557646, + -0.011844372376799583, + -0.006876323372125626, + -0.021737243980169296, + -0.02633604034781456, + -0.0050690569914877415, + -6.387549547071103e-7, + 0.0784100890159607, + 0.022716082632541656, + -0.011831552721560001, + -0.008972804993391037, + -0.07032527029514313, + -0.024393701925873756, + 0.023493792861700058, + 0.022155527025461197, + -0.02042342908680439, + -0.11591413617134094, + 6.390263557434082, + 109.77275085449219 ], [ - 0.25078874826431274, - -0.7432373762130737, - 0.15399301052093506, - -0.5888906717300415, - -0.9327319860458374, - -0.34541767835617065, - 0.8261586427688599, - 0.0005503954016603529, - 31.770305633544922, - 2.8528950214385986, - -65.05724334716797, - 0.10114981979131699, - -4.877957344055176, - 19.00931167602539, - 4.283749580383301, - 7.261184215545654, - -0.10680069774389267, - 1.2539360523223877, - 181.61904907226562 + 0.0015200352063402534, + -0.020375456660985947, + -0.04013394936919212, + -0.003758674720302224, + 0.009769490920007229, + 0.021521659567952156, + 0.001385631039738655, + -6.387549547071103e-7, + 0.07661083340644836, + 0.010276454500854015, + 0.04247245937585831, + 0.00020689915982075036, + 0.0011735770385712385, + -0.026015259325504303, + -0.027183126658201218, + -0.06629268079996109, + -0.023692011833190918, + 0.01652384363114834, + 36.633907318115234, + 111.5453872680664 ], [ - 0.16916249692440033, - -0.3376086950302124, - -0.017634164541959763, - -0.5719799995422363, - -0.8471976518630981, - -0.2293485701084137, - 0.8150206208229065, - 0.00047357301809825003, - 37.48652648925781, - 3.877255439758301, - -68.99298858642578, - -0.11778315156698227, - -0.25162991881370544, - 13.409579277038574, - 3.3177073001861572, - 2.5264971256256104, - 0.631689190864563, - -0.2489928901195526, - 105.84652709960938 + -0.0036602288018912077, + 0.009597549214959145, + 0.006920626387000084, + 0.0017092397902160883, + -0.15817248821258545, + 0.02177630364894867, + 0.006648613605648279, + -6.855601668576128e-7, + 0.06737770140171051, + -0.06644362956285477, + 0.06349306553602219, + -0.006875206716358662, + 0.0113212950527668, + -0.014268136583268642, + 0.04104361683130264, + 0.042025383561849594, + -0.013791737146675587, + -0.014658568426966667, + 6.079195976257324, + 67.1900634765625 ], [ - 0.2764410376548767, - -0.5664715766906738, - -0.22968539595603943, - -0.572463870048523, - -0.6430850028991699, - 0.0533578097820282, - 0.785500168800354, - 0.00045881280675530434, - 33.81791687011719, - 2.6530468463897705, - -68.8091812133789, - 0.40473902225494385, - -5.343265533447266, - 16.448652267456055, - 5.755948543548584, - 8.034867286682129, - 1.9738346338272095, - 0.8543528914451599, - 193.16583251953125 + 0.0051155900582671165, + 0.013708611018955708, + 0.0586785227060318, + -0.00521049415692687, + -0.006021605804562569, + 0.0021888241171836853, + 0.0016582651296630502, + -6.60333967061888e-7, + 0.01028458122164011, + 0.004753753077238798, + -0.04624764621257782, + 0.0144317876547575, + -0.0520596019923687, + -0.02623317949473858, + 0.1910277158021927, + 0.13933075964450836, + 0.024587323889136314, + 0.039449431002140045, + 54.07745361328125, + 59.98140335083008 ], [ - 0.19928956031799316, - -0.7926640510559082, - -0.33886241912841797, - -0.6365681886672974, - -1.6411441564559937, - -0.41482436656951904, - 0.953245222568512, - 0.0018760856473818421, - 48.95395278930664, - 6.103858470916748, - -5.4297051429748535, - 0.1609586477279663, - 0.6505838632583618, - 23.07547950744629, - 5.43159818649292, - 4.431673526763916, - 0.35956060886383057, - 0.3377896845340729, - 203.73019409179688 + 0.006552720908075571, + 0.021093690767884254, + -0.004166960250586271, + -0.004569957032799721, + 0.1000647097826004, + 0.02844686061143875, + 0.001574114547111094, + -6.855601668576128e-7, + 0.06880180537700653, + 0.24191595613956451, + 0.016743412241339684, + -0.0017078702803701162, + -0.16520315408706665, + -0.04825649783015251, + 0.16505631804466248, + 0.008172517642378807, + -0.22833600640296936, + 0.012792401015758514, + 46.16494369506836, + 229.34437561035156 ], [ - 0.12561261653900146, - -0.31200775504112244, - -0.12821342051029205, - -0.9878201484680176, - -1.5346041917800903, - -0.7124462723731995, - 1.3390915393829346, - 0.0067122639156877995, - 68.63040924072266, - 8.366534233093262, - 181.4793243408203, - -0.048752136528491974, - 5.048268795013428, - 87.0127944946289, - 3.649786949157715, - -1.8663026094436646, - -1.0483384132385254, - 0.7698644399642944, - 246.24838256835938 + 0.0027308680582791567, + 0.0021503602620214224, + -0.0008001903188414872, + -0.003485697554424405, + 2.2844645977020264, + 8.986417770385742, + 0.0015294291079044342, + -6.855601668576128e-7, + 0.026866432279348373, + -0.2701061964035034, + 1.371681809425354, + -0.0037539168260991573, + -0.12190468609333038, + -0.01394245121628046, + -0.3494392931461334, + 0.09893947094678879, + -2.0895285606384277, + -0.1872989535331726, + 33.96226119995117, + 659.6015014648438 ], [ - 0.14318406581878662, - -0.16817134618759155, - 0.044656164944171906, - -1.000720500946045, - -1.4363611936569214, - -0.39889147877693176, - 1.3321622610092163, - 0.006973070092499256, - 69.49068450927734, - 6.908123016357422, - 178.58457946777344, - 0.028811536729335785, - 6.33791971206665, - 78.09114837646484, - 2.4604194164276123, - -5.162672996520996, - -1.9589805603027344, - 1.2794933319091797, - 250.82594299316406 + 0.0024374150671064854, + -0.020248033106327057, + 0.00034445818164385855, + -0.003253122791647911, + 2.324909210205078, + 9.341946601867676, + 0.002594148041680455, + -6.554711262651836e-7, + 0.02889416366815567, + -0.2641706168651581, + 0.3747313618659973, + -0.003101702779531479, + -0.10966076701879501, + -0.009845799766480923, + -0.18709450960159302, + 0.04467674717307091, + -2.2230875492095947, + 0.6362816691398621, + 37.760650634765625, + 654.1412963867188 ], [ - 0.25990957021713257, - -0.45059436559677124, - 0.06157448887825012, - -0.7794139385223389, - 0.6918620467185974, - 0.44951292872428894, - 1.0499746799468994, - 0.005841830279678106, - 56.292964935302734, - 5.9671502113342285, - 66.78968811035156, - 0.03751257807016373, - 8.603753089904785, - 47.94328689575195, - 3.6040074825286865, - 1.6773055791854858, - -2.9190239906311035, - -1.7982277870178223, - 209.1162109375 + 0.034104444086551666, + -0.23246055841445923, + -0.13084915280342102, + 0.036282431334257126, + 0.004120054189115763, + 0.006236033979803324, + 0.0056472113355994225, + -6.855601668576128e-7, + 0.2013559192419052, + -0.4898975193500519, + 0.6545728445053101, + 0.01100543886423111, + -0.1647973209619522, + 0.15560060739517212, + 0.5139564871788025, + 0.12526537477970123, + 0.005154544487595558, + 0.6279791593551636, + 52.74618148803711, + 458.1688537597656 ], [ - 0.15738365054130554, - -0.1990543156862259, - -0.21096879243850708, - -0.7437237501144409, - 0.5962345600128174, - 0.12838692963123322, - 0.9325858354568481, - 0.00018758232181426138, - 41.38226318359375, - 1.345165729522705, - -2.0313286781311035, - -0.07635390013456345, - 5.108170986175537, - 47.13261795043945, - 3.0720739364624023, - 3.1783692836761475, - -3.6837525367736816, - 0.8788055777549744, - 142.00624084472656 + 0.01109375525265932, + 0.013730977661907673, + 0.03841618075966835, + -0.001548058702610433, + -0.02407185547053814, + 0.001612392719835043, + -0.007716449908912182, + -6.554711262651836e-7, + -0.023874696344137192, + 0.49692827463150024, + -0.10035189986228943, + -0.003512770403176546, + -0.012134197168052197, + -0.006361364386975765, + 0.054602764546871185, + 0.0893259271979332, + -0.15294845402240753, + 0.06783509254455566, + 20.251659393310547, + 318.2106018066406 ], [ - 0.17235073447227478, - 0.01019226387143135, - -0.35296082496643066, - -0.6621893048286438, - 0.5560445189476013, - 0.11236726492643356, - 0.7399334907531738, - 0.0004884038353338838, - 41.968544006347656, - 0.2141100913286209, - -38.599220275878906, - -0.06284061074256897, - 5.414779186248779, - 39.87111282348633, - 3.059467315673828, - 2.390272378921509, - -3.2591283321380615, - -3.486874580383301, - 138.43185424804688 + -0.0028282429557293653, + -0.0014945812290534377, + 0.046444203704595566, + -0.003155444748699665, + 0.004562507849186659, + -0.005724669434130192, + 0.0009992136619985104, + -6.235584919522807e-7, + 0.10754438489675522, + 0.045591022819280624, + -0.27491089701652527, + -0.0031523474026471376, + 0.027146119624376297, + -0.01713075302541256, + 0.041630007326602936, + 0.1728299856185913, + -0.08897142112255096, + -0.09937268495559692, + 14.589468002319336, + 204.3438262939453 ], [ - 0.23794770240783691, - -0.4900645613670349, - -0.011707608588039875, - -0.6704952716827393, - 0.5372632741928101, - 0.051002152264118195, - 0.7467884421348572, - 0.0004856945888604969, - 40.592533111572266, - 2.753553867340088, - -42.574153900146484, - -0.07540760189294815, - 3.0798721313476562, - 20.167428970336914, - 3.7870593070983887, - 4.918464660644531, - -0.7026727199554443, - 1.1029096841812134, - 51.432491302490234 + -0.0014534194488078356, + -0.0009526879875920713, + -0.004172423854470253, + 0.0006921079475432634, + -0.0021921396255493164, + -0.004376234021037817, + -0.011242687702178955, + -6.235584919522807e-7, + 0.07362504303455353, + -0.013226994313299656, + -0.007348771672695875, + -0.0006700772792100906, + -0.011323693208396435, + -0.006611754186451435, + 0.0238584503531456, + 0.010366292670369148, + 0.13107959926128387, + -0.00043945739162154496, + -16.430917739868164, + 87.13360595703125 ], [ - 0.2759004533290863, - -0.5924070477485657, - 0.020931249484419823, - -0.5460458993911743, - 0.6820108890533447, - 0.09886196255683899, - 0.7167019248008728, - 0.0005002596299163997, - 21.094329833984375, - 2.4871826171875, - -60.72250747680664, - -0.03376798704266548, - 1.3835946321487427, - 10.921226501464844, - 1.651340365409851, - 1.753352403640747, - -1.0688366889953613, - 0.4954444169998169, - -39.085052490234375 + 0.006273296661674976, + 0.0011205810587853193, + 0.007991373538970947, + 0.001794453477486968, + 0.006793729029595852, + -0.0004884173977188766, + 0.0004177966620773077, + -6.402746066669351e-7, + 0.02280062809586525, + 0.003200351260602474, + 0.027727358043193817, + -0.0004356981662567705, + 0.022232266142964363, + -0.0014346633106470108, + 0.020758768543601036, + 0.03470739349722862, + 0.015497592277824879, + 0.022245561704039574, + -14.392223358154297, + -11.860679626464844 ], [ - 0.2188735157251358, - -0.3142482340335846, - -0.014533264562487602, - -0.5839090347290039, - 0.518755316734314, - 0.000005135694664204493, - 0.6131640672683716, - 0.0006211507134139538, - 20.23552703857422, - 2.1691536903381348, - -94.65522003173828, - 0.03900580108165741, - 3.6193885803222656, - 2.670538902282715, - 1.6299409866333008, - 1.5473499298095703, - -0.8562081456184387, - 0.4622454047203064, - -39.50715255737305 + 0.0006121488404460251, + 0.0009147220989689231, + 0.0064460719004273415, + -0.0014003872638568282, + 0.010643861256539822, + -0.0014645555056631565, + 0.0024916932452470064, + -6.296804713201709e-7, + 0.017859121784567833, + 0.0019433759152889252, + -0.031107306480407715, + 0.0020908708684146404, + -0.006044676527380943, + 0.0004562509711831808, + 0.03634059801697731, + 0.022720249369740486, + -0.022457778453826904, + 0.008153820410370827, + -4.730391502380371, + -91.0995101928711 ], [ - 0.198481485247612, - -0.07439839094877243, - 0.06274367868900299, - -0.5037127137184143, - 0.5450150966644287, - 0.04884336516261101, - 1.023443341255188, - 0.0030024913139641285, - 16.98451042175293, - 1.5871094465255737, - -81.69155883789062, - 0.050032585859298706, - 2.0760021209716797, - 5.364504337310791, - 1.3132153749465942, - 1.8380100727081299, - -1.8052141666412354, - 0.11141256988048553, - -87.30631256103516 + 0.0018851486966013908, + 0.0054558501578867435, + -0.0007014277507551014, + -0.00039270296110771596, + -0.0003778787504415959, + -0.0013664799043908715, + -0.0002624162589199841, + -0.000002671184802238713, + 0.019027940928936005, + 0.00520913302898407, + 0.023297913372516632, + -0.00020716941799037158, + 0.001424801885150373, + -0.0018882871372625232, + 0.031407516449689865, + 0.030792301520705223, + -0.012409285642206669, + -0.0012749603483825922, + -12.370261192321777, + -121.95105743408203 ], [ - 0.2194717824459076, - -0.11921803653240204, - 0.019222011789679527, - -0.47156256437301636, - 0.5185927748680115, - 0.005403690971434116, - 1.1428186893463135, - 0.0012586560333147645, - 16.242998123168945, - 1.5087487697601318, - -79.564453125, - 0.027658730745315552, - 0.8004121780395508, - 7.296459674835205, - 1.0413297414779663, - 1.63692045211792, - -2.1477887630462646, - 0.16242094337940216, - -102.68614196777344 + 0.0018644777592271566, + 0.0017501466209068894, + 0.0034476486034691334, + -0.00004615205034497194, + 0.0001728174975141883, + -0.0016761317383497953, + 0.0005739852203987539, + -0.0000017286308775510406, + 0.026555201038718224, + 0.009488275274634361, + -0.00799616239964962, + -0.00029638581327162683, + 0.0008565817843191326, + -0.0007673294749110937, + 0.028684915974736214, + 0.0361049585044384, + -0.017951123416423798, + 0.0011661732569336891, + -14.519098281860352, + -134.12452697753906 ], [ - 0.24611498415470123, - -0.05045967549085617, - 0.09174752235412598, - -0.46277180314064026, - 0.5304945111274719, - -0.012623950839042664, - 1.2979978322982788, - 0.000569057185202837, - 15.881168365478516, - 1.5359578132629395, - -79.95002746582031, - -0.00878177210688591, - 0.9832655191421509, - 8.446954727172852, - 0.997465968132019, - 1.639317512512207, - -1.9241515398025513, - 0.2967201769351959, - -105.7148666381836 + 0.0017109895125031471, + 0.00012154371506767347, + 0.0018292537424713373, + 0.00003634540917119011, + -0.0003699215012602508, + -0.0017253721598535776, + 0.00027517296257428825, + -0.0000017776970935301506, + 0.027265286073088646, + 0.007882017642259598, + -0.007030893117189407, + -0.00004591633114614524, + 0.0005454054335132241, + -0.0003182536456733942, + 0.02650558389723301, + 0.02703513577580452, + -0.016857491806149483, + 0.0005129948258399963, + -14.51955509185791, + -142.11451721191406 ], [ - 0.23592261970043182, - -0.056163568049669266, - 0.04964485019445419, - -0.4659730792045593, - -0.7095680236816406, - 0.048651017248630524, - 1.2980189323425293, - 0.0007347611244767904, - 16.73440933227539, - 1.762690544128418, - -70.92251586914062, - -0.032373104244470596, - 1.05104398727417, - 10.196749687194824, - 1.0973315238952637, - 1.7885221242904663, - -2.9193472862243652, - 0.2187758833169937, - -115.69583129882812 + 0.001764987246133387, + 0.00040870634256862104, + 0.0026142201386392117, + 0.00010971222218358889, + 0.003135998034849763, + 0.018326980993151665, + 0.00003488236325210892, + -0.0000018250796074426034, + 0.02729359269142151, + 0.0074472576379776, + -0.008192232809960842, + -0.0003391087520867586, + 0.00003360493064974435, + -0.0019099856726825237, + 0.026653960347175598, + 0.026819605380296707, + -0.018351014703512192, + 0.00594355771318078, + -15.885224342346191, + -136.7732696533203 ], [ - 0.15151800215244293, - -0.09102077037096024, - 0.014796901494264603, - -0.4803575873374939, - -0.7396679520606995, - -0.0007302318117581308, - 1.1593388319015503, - 0.0025926027446985245, - 20.630054473876953, - 1.8797599077224731, - -52.01689910888672, - -0.03619256988167763, - 1.1444971561431885, - 15.103338241577148, - 1.2100002765655518, - 1.3989856243133545, - -3.14176082611084, - 0.16095776855945587, - -110.93091583251953 + 0.000326479144860059, + -0.00044680634164251387, + 0.0017102574929594994, + -0.0006227491539902985, + 0.003544948995113373, + 0.012842614203691483, + 0.00040936892037279904, + -0.000002505772727090516, + 0.018943898379802704, + 0.015294032171368599, + -0.015672592446208, + 0.0010230701882392168, + 0.007264846470206976, + -0.0006108736852183938, + 0.016240650787949562, + 0.015199842862784863, + -0.022456450387835503, + 0.0007514688186347485, + -15.68520450592041, + -105.30023956298828 ], [ - 0.3331563174724579, - -0.5375060439109802, - 0.07809200137853622, - -0.5034290552139282, - 1.7812379598617554, - 0.2593395709991455, - 1.1528451442718506, - 0.0026077369693666697, - 27.796009063720703, - 6.520780563354492, - 10.290216445922852, - -0.047430116683244705, - 1.8525245189666748, - 26.498050689697266, - 2.599048137664795, - 2.684617519378662, - -1.538456916809082, - 0.2234235405921936, - -85.03682708740234 + 0.020400794222950935, + -0.00768673000857234, + 0.004406789317727089, + -0.0033031501807272434, + 0.011665650643408298, + -0.010954625904560089, + 0.002179280389100313, + -0.000035670920624397695, + 0.025301825255155563, + 0.05416324362158775, + 0.15290139615535736, + -0.0024674225132912397, + 0.025210324674844742, + -0.002035625744611025, + 0.05389327183365822, + 0.04954264312982559, + 0.01483103260397911, + 0.011409739032387733, + -30.215980529785156, + 35.14985656738281 ], [ - 0.6148445010185242, - -0.5458109974861145, - 0.07436816394329071, - -0.5558772683143616, - -1.6022089719772339, - -1.8660619258880615, - 1.4260317087173462, - 0.0005109156481921673, - 55.66039276123047, - 10.748068809509277, - 133.65122985839844, - -0.20039774477481842, - 2.7093417644500732, - 47.711605072021484, - 4.897413730621338, - 7.3790411949157715, - -3.70729398727417, - -0.4770473539829254, - 20.235145568847656 + 0.012882553972303867, + 0.0020992765203118324, + 0.015202692709863186, + -0.012168941088020802, + 0.01564415544271469, + -0.04519487917423248, + 0.001339140348136425, + -6.296804713201709e-7, + 0.07985254377126694, + -0.007246454246342182, + 0.16258569061756134, + -0.000311128213070333, + 0.06551415473222733, + 0.00241997092962265, + 0.15746580064296722, + 0.11649887263774872, + -0.06699211150407791, + 0.031001735478639603, + -24.172758102416992, + 332.6954650878906 ], [ - 1.219691514968872, - -3.930114984512329, - -0.05820227786898613, - -0.7105394601821899, - 1.1356737613677979, - 0.3353612422943115, - 2.251840114593506, - 0.00047251631622202694, - 85.90479278564453, - 6.80287504196167, - 229.81942749023438, - -0.07705919444561005, - 2.6597917079925537, - 64.78392791748047, - -2.5225374698638916, - 1.3843309879302979, - 1.1906018257141113, - -0.05136825144290924, - 86.52433013916016 + 0.0011922651901841164, + 0.005094096530228853, + 0.0011413958854973316, + -0.00010120282968273386, + 0.05222266912460327, + 0.0006828928599134088, + 0.0006594562437385321, + -6.129643566055165e-7, + 0.025119218975305557, + 0.0019202145049348474, + -1.602044939994812, + -0.0006180015043355525, + -0.29915931820869446, + -0.0013092391891404986, + 0.504203200340271, + 0.388370543718338, + -0.2482994943857193, + -0.1138865202665329, + -26.923301696777344, + 561.306396484375 ], [ - 0.20475554466247559, - -0.21365594863891602, - -0.00399854127317667, - -0.5768263339996338, - 0.4638493061065674, - -0.025749268010258675, - 1.2562960386276245, - 0.00046094285789877176, - 65.2007827758789, - 3.486802816390991, - 11.989641189575195, - -0.14037208259105682, - 1.885317325592041, - 18.04607582092285, - 2.0254745483398438, - 2.0944604873657227, - -0.48780372738838196, - 0.42370009422302246, - 81.5890884399414 + 0.0009351265616714954, + 0.007318131625652313, + 0.04327269643545151, + -0.0027673649601638317, + -0.0015376709634438157, + 0.003044597338885069, + -0.00017425682744942605, + -6.296804713201709e-7, + 0.0480995737016201, + 0.03952695056796074, + 0.0067872400395572186, + -0.0007200067047961056, + 0.04268776252865791, + -0.010047940537333488, + 0.1016235202550888, + 0.09350592643022537, + -0.00942146684974432, + -0.041886553168296814, + 1.6088515520095825, + 190.7541961669922 ], [ - 0.10137239098548889, - -0.37388700246810913, - -0.020501015707850456, - -0.6074191927909851, - 0.4287753403186798, - 0.115017831325531, - 0.7555304169654846, - 0.00048564354074187577, - 29.506513595581055, - 2.9056577682495117, - -94.57997131347656, - 0.03204174339771271, - 3.9000699520111084, - 19.290468215942383, - 1.8547735214233398, - 1.6670939922332764, - 0.32219696044921875, - -0.3370084762573242, - 123.68209075927734 + 0.009475890547037125, + -0.012754441238939762, + 0.014517473988234997, + 0.0007223412394523621, + 0.011792725883424282, + 0.0030101898591965437, + 0.0049566421657800674, + -6.59769568756019e-7, + 0.01913546212017536, + 0.04366765916347504, + 0.0042127324268221855, + -0.0028712258208543062, + -0.025256698951125145, + -0.0007370527018792927, + 0.06467468291521072, + 0.09340886771678925, + 0.007270434405654669, + -0.019520539790391922, + 26.672191619873047, + 12.285402297973633 ], [ - 0.18710395693778992, - -0.19680142402648926, - -0.32244470715522766, - -0.5688077807426453, - 0.4720882475376129, - 0.0397401861846447, - 0.7683758735656738, - 0.0005462547997012734, - 31.28867530822754, - 3.731929063796997, - -90.71562957763672, - -0.03494120389223099, - 0.08460897952318192, - 17.6873836517334, - 3.125368118286133, - 3.4693655967712402, - 2.5074703693389893, - 2.282147169113159, - 160.0921173095703 + -0.003595867194235325, + 0.02590436488389969, + 0.02023005299270153, + -0.003800253849476576, + 0.008041446097195148, + 0.00385810574516654, + -0.003484839340671897, + -6.245136887628178e-7, + 0.06476068496704102, + 0.002525066491216421, + -0.029194869101047516, + -0.00638494873419404, + 0.016409598290920258, + 0.012734143063426018, + -0.08917476236820221, + -0.09934348613023758, + -0.040918078273534775, + -0.040972184389829636, + 44.671382904052734, + 48.46432113647461 ], [ - 0.1529584527015686, - -0.0030397260561585426, - -0.1533682495355606, - -0.709664523601532, - 0.893938422203064, - 0.5760723352432251, - 0.8047239184379578, - 0.0004966786364093423, - 36.98611068725586, - 3.146008014678955, - -71.38362121582031, - 0.018817907199263573, - 3.2452728748321533, - 19.201480865478516, - 2.6668121814727783, - 1.8272329568862915, - 3.000004291534424, - 0.04630224406719208, - 150.34600830078125 + -0.0027415738441050053, + 0.012843387201428413, + 0.012368951924145222, + -0.007282966282218695, + -0.0036422843113541603, + 0.002714993664994836, + 0.0008106424356810749, + -6.245136887628178e-7, + 0.0859946459531784, + -0.024970823898911476, + 0.03838440030813217, + -0.003770943032577634, + -0.004189699422568083, + -0.042557600885629654, + 0.048626914620399475, + -0.04452104866504669, + -0.03643934056162834, + 0.1041995957493782, + 23.8453311920166, + 88.74214172363281 ], [ - 0.12564659118652344, - -0.10856067389249802, - -0.13760994374752045, - -0.6819873452186584, - 0.985526442527771, - 0.5328243970870972, - 0.8184333443641663, - 0.0004991660825908184, - 36.06460952758789, - 2.3818607330322266, - -67.15582275390625, - 0.06724181771278381, - 4.003010272979736, - 20.30370330810547, - 1.7372372150421143, - 0.7887271046638489, - 3.711036205291748, - -0.16165831685066223, - 140.82354736328125 + 0.003854126902297139, + 0.001576035632751882, + 0.008885622955858707, + -0.005271625705063343, + -0.0023203503806144, + -0.005372942890971899, + 0.003013846930116415, + -6.245136887628178e-7, + 0.08896153420209885, + -0.03911498188972473, + 0.12514419853687286, + -0.0035561970435082912, + 0.02814716473221779, + -0.033137667924165726, + 0.03835460543632507, + -0.03409173712134361, + 0.04170946776866913, + 0.045622568577528, + 20.829662322998047, + 96.88123321533203 ], [ - 0.2156868875026703, - -0.21970093250274658, - -0.17157238721847534, - -0.582151472568512, - 0.7571473121643066, - 0.34388917684555054, - 0.8021156191825867, - 0.0004671056231018156, - 35.37557601928711, - 3.965250015258789, - -80.08492279052734, - -0.020001837983727455, - -0.5407283902168274, - 18.760866165161133, - 2.503405809402466, - 1.832324504852295, - 2.6140968799591064, - -0.19020792841911316, - 150.99533081054688 + -0.0012652892619371414, + 0.032153572887182236, + 0.002453049411997199, + -0.0032540622632950544, + 0.013310075737535954, + 0.0272426325827837, + -0.001575018628500402, + -0.000013358599062485155, + -0.0164583008736372, + -0.007747939322143793, + 0.04255817458033562, + -0.004524235147982836, + 0.011644282378256321, + -0.0521705225110054, + -0.013563261367380619, + 0.02266467735171318, + 0.03389376029372215, + 0.04875112324953079, + 39.69292068481445, + 43.906280517578125 ], [ - 0.1412637084722519, - -0.30071574449539185, - -0.022506190463900566, - -0.5232022404670715, - 0.5742732882499695, - 0.07827191799879074, - 0.8163344860076904, - 0.0004601764085236937, - 40.39252471923828, - 3.7928383350372314, - -66.60188293457031, - -0.05314407870173454, - 1.8710877895355225, - 12.72307300567627, - 2.8527181148529053, - 2.524333953857422, - 2.7482614517211914, - 0.30411258339881897, - 106.4751968383789 + -0.01138776820152998, + -0.019260939210653305, + 0.01770198903977871, + -0.0008159659337252378, + -0.0118977976962924, + -0.003278925083577633, + 0.002105925465002656, + -6.713189009133202e-7, + 0.07362348586320877, + 0.02034197747707367, + 0.07931266725063324, + -0.010636311955749989, + 0.050536494702100754, + -0.015463519841432571, + -0.009573938325047493, + -0.00405559316277504, + -0.004031286109238863, + -0.03622780740261078, + 7.665294170379639, + 98.60101318359375 ], [ - 0.21904438734054565, - -0.9796338081359863, - -0.20808185636997223, - -0.6725241541862488, - 0.76905757188797, - 0.1507904976606369, - 0.9582247138023376, - 0.0018147160299122334, - 51.486236572265625, - 8.145078659057617, - 2.00826358795166, - -0.02299480140209198, - 1.78370201587677, - 28.655366897583008, - 3.6398465633392334, - 3.2651970386505127, - 3.6815109252929688, - 0.6304918527603149, - 186.10191345214844 + -0.0025428812950849533, + 0.024447908625006676, + 0.016216157004237175, + -0.00737366545945406, + 0.017084097489714622, + 0.02352946251630783, + 0.00334238656796515, + -6.713189009133202e-7, + 0.14979508519172668, + 0.14088411629199982, + 0.12428082525730133, + -0.00471983989700675, + 0.01947079412639141, + -0.053790025413036346, + -0.010958381928503513, + -0.024521172046661377, + -0.259072870016098, + 0.07200291752815247, + 32.92738342285156, + 214.14283752441406 ], [ - 0.14291352033615112, - -0.4092702567577362, - -0.016462016850709915, - -1.0074352025985718, - 0.7507007122039795, - 0.0233329888433218, - 1.2622381448745728, - 0.00662043783813715, - 76.708984375, - 9.956892013549805, - 188.7099609375, - -0.10155251622200012, - 3.933154344558716, - 78.10543823242188, - 4.067844390869141, - -2.402595281600952, - 6.157655715942383, - 0.5734622478485107, - 253.45640563964844 + 0.013717562891542912, + -0.024167805910110474, + -0.002355935052037239, + -0.0032061149831861258, + -0.36795344948768616, + -0.9022139310836792, + 0.01909729652106762, + -6.713189009133202e-7, + 0.028088895604014397, + -0.3541243374347687, + 0.9499292373657227, + -0.002360778860747814, + -0.03607526794075966, + -0.012956582941114902, + 0.12242666631937027, + -0.13002637028694153, + 1.0533497333526611, + 0.7263461351394653, + 31.455093383789062, + 618.6956787109375 ], [ - 0.020308295264840126, - -0.12989488244056702, - 0.012950842268764973, - -1.0508146286010742, - -1.8382384777069092, - -0.18744176626205444, - 1.3021883964538574, - 0.007097089663147926, - 64.22801971435547, - 5.043331623077393, - 185.12010192871094, - -0.11849214881658554, - 5.452884197235107, - 99.28350067138672, - 6.566226959228516, - 2.2203423976898193, - 3.2472586631774902, - -0.5647582411766052, - 199.72872924804688 + 0.0025698402896523476, + 0.0009632104774937034, + 0.0006638492341153324, + -0.0029753427952528, + 2.0014991760253906, + 8.14316463470459, + 0.0006877673440612853, + -6.59769568756019e-7, + 0.02777082286775112, + -0.1344112604856491, + 0.4689863324165344, + -0.003940984606742859, + 0.39745262265205383, + -0.014108015224337578, + 0.06260238587856293, + 0.40793123841285706, + 0.5186389684677124, + 0.4311058521270752, + 8.814284324645996, + 650.5953979492188 ], [ - 0.3228916525840759, - -0.3939247727394104, - -0.07691303640604019, - -0.835760772228241, - 0.7163823246955872, - 0.5999462008476257, - 1.0237541198730469, - 0.005271204747259617, - 60.66386795043945, - 6.487387657165527, - 80.66358947753906, - -0.23649781942367554, - 6.688722610473633, - 65.82988739013672, - 4.051763534545898, - 1.3767602443695068, - 1.2283387184143066, - -1.5445997714996338, - 189.17742919921875 + -0.0006769955507479608, + -0.033583804965019226, + -0.10036676377058029, + 0.04574335739016533, + 0.013621430844068527, + 0.02133261412382126, + -0.004449136555194855, + -6.296804713201709e-7, + 0.21215377748012543, + -0.0750940814614296, + 0.1647428721189499, + -0.005425931885838509, + -0.1541910171508789, + -0.017091935500502586, + 0.2820179760456085, + 0.7086883187294006, + -0.14498333632946014, + 0.24409180879592896, + 34.18855285644531, + 426.7582092285156 ], [ - 0.22933758795261383, - -0.5853457450866699, - -0.40808942914009094, - -0.7420495748519897, - 0.5262842774391174, - 0.12272506207227707, - 0.8630633354187012, - 0.0002305197558598593, - 45.97563552856445, - 1.6473886966705322, - 0.2738247513771057, - -0.25354090332984924, - 5.018074989318848, - 49.321250915527344, - 4.49329948425293, - 3.769881010055542, - 0.5061792135238647, - 2.4303884506225586, - 171.16476440429688 + 0.002609187038615346, + 0.1641944944858551, + 0.0361909493803978, + -0.001093503786250949, + 0.0005517358658835292, + 0.017809666693210602, + 0.014160111546516418, + -6.59769568756019e-7, + 0.062133464962244034, + -0.013912361115217209, + -0.13000942766666412, + -0.0074212695471942425, + -0.07604885846376419, + -0.03963059186935425, + 0.23234203457832336, + 0.11440657079219818, + -0.09428989887237549, + 0.020115243270993233, + 29.244321823120117, + 281.5018615722656 ], [ - 0.10595784336328506, - -0.3034239709377289, - 0.004209194332361221, - -0.5913828015327454, - -0.6290345191955566, - -0.1300378441810608, - 0.795529842376709, - 0.0004703139129560441, - 38.556922912597656, - 2.611149787902832, - -29.965702056884766, - -0.2867933511734009, - 3.7744107246398926, - 19.35792350769043, - 4.308314323425293, - 5.401734352111816, - -1.5967721939086914, - 1.1559562683105469, - 80.67886352539062 + 0.0069834040477871895, + 0.041601769626140594, + 0.0057310424745082855, + -0.00531318923458457, + 0.02157048135995865, + 0.01661366969347, + 0.015246346592903137, + -6.211704430825193e-7, + 0.06806056946516037, + 0.05313645675778389, + -0.00100362254306674, + -0.0005730095435865223, + 0.13145634531974792, + -0.0034821562003344297, + 0.1268721967935562, + 0.019754214212298393, + 0.050151947885751724, + -0.08839767426252365, + -2.570124626159668, + 177.4750213623047 ], [ - 0.18422643840312958, - -0.61520916223526, - 0.00014860428927931935, - -0.5726089477539062, - -0.8390034437179565, - -0.28560081124305725, - 0.7249773144721985, - 0.00046326289884746075, - 36.372188568115234, - 2.6457676887512207, - -49.63511276245117, - -0.1284542679786682, - 2.8439812660217285, - 17.921478271484375, - 4.430426597595215, - 5.805295467376709, - -0.828450620174408, - -0.8559787273406982, - 57.3697624206543 + 0.0025039881002157927, + 0.007702127564698458, + -0.00045940163545310497, + -0.004002944100648165, + 0.0037886283826082945, + 0.0017252910183742642, + 0.00038392742862924933, + -6.512594836749486e-7, + 0.09889813512563705, + 0.04272354394197464, + -0.010497978888452053, + -0.0003051680396310985, + 0.00895459670573473, + 0.017775943502783775, + 0.012162710539996624, + 0.035248011350631714, + -0.04287286102771759, + 0.06903758645057678, + -10.82508659362793, + 107.75061798095703 ], [ - 0.3403075337409973, - -0.49216631054878235, - 0.03154202178120613, - -0.5617940425872803, - 0.6211637854576111, - 0.0806439071893692, - 0.7029438614845276, - 0.0005348918493837118, - 21.42361831665039, - 2.2635087966918945, - -63.300052642822266, - -0.04405362904071808, - 5.08213472366333, - 11.197439193725586, - 1.9858449697494507, - 2.1883108615875244, - -1.1526974439620972, - 1.0649752616882324, - -30.624439239501953 + 0.011076230555772781, + 0.0014311260310932994, + -0.004055170342326164, + -0.004592095036059618, + -0.0031197774223983288, + -0.004475312773138285, + 0.0040420591831207275, + -6.044542715244461e-7, + 0.013708456419408321, + 0.02070705033838749, + -0.0036784380208700895, + 0.002353113144636154, + -0.007001507095992565, + -0.0014610891230404377, + 0.10256830602884293, + 0.10486700385808945, + 0.024727050215005875, + 0.01584123820066452, + -17.319719314575195, + 11.110079765319824 ], [ - 0.25372663140296936, - -0.320645272731781, - -0.07507364451885223, - -0.5897619724273682, - 0.5589356422424316, - 0.04340376704931259, - 0.5946183800697327, - 0.0006588282412849367, - 20.094369888305664, - 1.8859014511108398, - -93.14723205566406, - 0.04088236391544342, - 4.745431900024414, - 3.4518299102783203, - 2.009272336959839, - 2.3444361686706543, - 0.32627999782562256, - -0.770842432975769, - -38.7278938293457 + 0.0016084255184978247, + -0.000058056619309354573, + 0.0035995407961308956, + -0.0002546110190451145, + 0.0032382626086473465, + 0.0009177429601550102, + 0.0005268087261356413, + -5.435280172605417e-7, + 0.022768178954720497, + -0.005499211139976978, + -0.010610557161271572, + 0.00007200468826340511, + 0.028107669204473495, + 0.0039767916314303875, + 0.017439140006899834, + 0.04443226754665375, + -0.02291657216846943, + -0.000984368845820427, + -6.033478736877441, + -72.48958587646484 ], [ - 0.21943247318267822, - -0.12726733088493347, - 0.037228118628263474, - -0.534363865852356, - 0.5164883732795715, - 0.03384561836719513, - 0.8946473002433777, - 0.002717023016884923, - 17.320478439331055, - 1.5989444255828857, - -83.35277557373047, - 0.04878876730799675, - 2.4009861946105957, - 5.762009620666504, - 1.32908034324646, - 1.8349647521972656, - -0.21863609552383423, - -0.023395920172333717, - -84.03746795654297 + 0.005728207994252443, + 0.007338241674005985, + -0.0013876617886126041, + -0.00005841227903147228, + 0.0013115369947627187, + -0.0034035714343190193, + 0.0010424795327708125, + -0.0000039857986848801374, + 0.007220836356282234, + -0.0009676579502411187, + 0.002990919165313244, + 0.00002437340845062863, + 0.015586882829666138, + -0.004794564098119736, + 0.021078355610370636, + 0.010257022455334663, + -0.007763806264847517, + -0.001913520391099155, + -12.853437423706055, + -109.05554962158203 ], [ - 0.20040203630924225, - -0.11559498310089111, - 0.06417270004749298, - -0.5235376954078674, - 0.4606982469558716, - -0.03526902571320534, - 0.9255168437957764, - 0.0023979234974831343, - 16.93575096130371, - 1.9022513628005981, - -88.30435943603516, - 0.0501277782022953, - 0.9381177425384521, - 5.077188014984131, - 1.1604444980621338, - 1.5118155479431152, - -1.317555546760559, - 0.08588874340057373, - -85.24915313720703 + 0.0019176827045157552, + -0.0012269424041733146, + -0.004493480548262596, + -0.0009640853968448937, + -0.0024018618278205395, + -0.0006162429344840348, + 0.0007012590649537742, + -0.0000021855248633073643, + 0.03149329870939255, + 0.00817134790122509, + -0.013098659925162792, + -0.0008149266359396279, + -0.005814816802740097, + -0.0018502436578273773, + 0.004352622199803591, + -0.024434806779026985, + -0.007340642623603344, + 0.004219281952828169, + -10.980875968933105, + -131.90362548828125 ], [ - 0.18269747495651245, - -0.07605229318141937, - 0.07173091173171997, - -0.4844357669353485, - -0.5732073783874512, - 0.007844681851565838, - 1.12010657787323, - 0.0014891471946612, - 16.58222198486328, - 1.64606511592865, - -83.35057067871094, - -0.01078686024993658, - 0.7091659903526306, - 8.082894325256348, - 1.1329712867736816, - 1.1000499725341797, - -1.6158696413040161, - -0.04177570715546608, - -96.3712387084961 + 0.0019435613648965955, + 0.00003689707591547631, + 0.0017084202263504267, + -0.0002471527550369501, + 0.0029769781976938248, + 0.018473217263817787, + 0.00022028482635505497, + -0.0000024530525024601957, + 0.02743135206401348, + 0.007595893461257219, + -0.00796431303024292, + -0.000054649990488542244, + 0.014777128584682941, + -0.0003132588171865791, + 0.033614858984947205, + 0.028629209846258163, + -0.013384222984313965, + 0.002354757394641638, + -12.905701637268066, + -140.77879333496094 ], [ - 0.1609257012605667, - -0.05698171257972717, - 0.04584861919283867, - -0.43657249212265015, - -0.9378309845924377, - -0.03391912952065468, - -4.230218887329102, - 0.0004189460596535355, - 16.555925369262695, - 1.4549293518066406, - -62.00870895385742, - -0.03154341131448746, - 0.8709114193916321, - 9.55553913116455, - 0.9311321973800659, - 1.621904730796814, - -2.1065187454223633, - -0.09628447890281677, - -117.97828674316406 + 0.0016929584089666605, + 0.00031156433396972716, + 0.002085567219182849, + -0.0001084033865481615, + 0.0029236648697406054, + -0.0015846418682485819, + -0.0027090918738394976, + -0.0000020209704416629393, + 0.027477720752358437, + 0.007388049270957708, + -0.006592149846255779, + -0.0001898197369882837, + 0.013151525519788265, + -0.0005260236794129014, + 0.027983564883470535, + 0.02940315008163452, + -0.016687549650669098, + 0.001318069058470428, + -15.724103927612305, + -139.9279327392578 ], [ - 0.08872067928314209, - -0.08316853642463684, - 0.0016095149330794811, - -0.45677241683006287, - -0.7193160057067871, - -0.004891686141490936, - -4.217394828796387, - 0.0008948497707024217, - 19.923673629760742, - 1.6255260705947876, - -43.96807098388672, - -0.023817621171474457, - 0.6935403347015381, - 14.397486686706543, - 1.1161388158798218, - 1.7200865745544434, - -2.053905487060547, - -0.18823200464248657, - -113.9238052368164 + 0.0016968236304819584, + 0.00046028036740608513, + 0.002799232956022024, + -0.00018599066243041307, + 0.0006236761691980064, + -0.002048034919425845, + -0.0023637674748897552, + -0.0000027183796191820875, + 0.030608220025897026, + 0.008410527370870113, + -0.010060888715088367, + -0.000538619002327323, + 0.025311332195997238, + 0.00013549694267567247, + 0.03711697831749916, + 0.03740866854786873, + -0.01991852931678295, + -0.0007309842039830983, + -13.930608749389648, + -115.61981201171875 ], [ - 0.0777093768119812, - 0.013259045779705048, - 0.03686278313398361, - -0.5079013109207153, - -2.0132761001586914, - 0.0010254626395180821, - -6.094466209411621, - 0.000774412474129349, - 20.7618408203125, - 3.0023746490478516, - 0.21572139859199524, - -0.04260637238621712, - -0.36693641543388367, - 19.99711799621582, - 1.3040275573730469, - 1.5885565280914307, - -3.245990514755249, - -1.6222633123397827, - -111.28253173828125 + 0.005469616036862135, + -0.0009162102942354977, + 0.0019053783034905791, + -0.0007327375351451337, + 0.004812548402696848, + -0.0004097820492461324, + -0.0005595733528025448, + -0.0000019636120214272523, + 0.018957683816552162, + 0.01140508335083723, + -0.04296485334634781, + -0.001897835754789412, + 0.01194736547768116, + 0.00017597072292119265, + 0.03229542076587677, + 0.027351053431630135, + -0.00648263655602932, + -0.004493009764701128, + -16.884206771850586, + -102.13335418701172 ], [ - 1.3190847635269165, - -0.5746856927871704, - 0.17855508625507355, - -0.4402800500392914, - -0.9835253357887268, - -0.10344929993152618, - -23.086894989013672, - 0.0010899447370320559, - 33.84690856933594, - 6.115768909454346, - 89.60429382324219, - -0.07197070121765137, - 7.1410698890686035, - 31.115278244018555, - -0.05915360897779465, - 0.12214836478233337, - -7.519678592681885, - 0.6514346599578857, - -114.10769653320312 + 0.0011101252166554332, + 0.009871318936347961, + 0.004710619803518057, + 0.00038246429176069796, + 0.011278638616204262, + -0.0013867070665583014, + -0.006719605997204781, + -0.000002404046654191916, + 0.022509479895234108, + 0.04487566649913788, + -0.02667502872645855, + 0.0001557477517053485, + 0.039571698755025864, + -0.0008765723323449492, + 0.029532067477703094, + 0.03739596903324127, + -0.02450568601489067, + 0.0043879104778170586, + -30.45172691345215, + 1.7444103956222534 ], [ - 1.2231159210205078, - -0.9607287645339966, - 0.11360731720924377, - -0.8973789811134338, - -3.622178554534912, - -0.04175031557679176, - -31.327651977539062, - 0.00081804976798594, - 55.58741760253906, - 7.034365653991699, - 180.90435791015625, - -0.1258937418460846, - 5.686140060424805, - 43.01454544067383, - -2.399845838546753, - -6.53320837020874, - -8.385109901428223, - -0.6005556583404541, - -81.34176635742188 + -0.012205596081912518, + 0.0015175752341747284, + -0.008626663126051426, + -0.0012961893808096647, + -0.0022021764889359474, + 0.0011928001185879111, + -0.010106973350048065, + -0.0000016436210898973513, + 0.02495524100959301, + -0.01598449982702732, + -0.01273770909756422, + 0.0000033652813726803288, + 0.024278419092297554, + -0.005338772665709257, + -0.01608208194375038, + 0.0007213237113319337, + -0.05310326814651489, + 0.008837436325848103, + -21.1495361328125, + -22.980985641479492 ], [ - 0.1511291116476059, - -0.14357897639274597, - -0.040454570204019547, - -0.6771087646484375, - -0.9349943995475769, - -0.18844249844551086, - 1.8697611093521118, - 0.0005906057194806635, - 48.79141616821289, - 3.4771835803985596, - 64.20134735107422, - -0.07858435064554214, - 1.188006043434143, - 29.33063316345215, - 2.216262102127075, - 2.483311891555786, - -2.1261587142944336, - 1.5241737365722656, - -3.6361958980560303 + -0.0024537891149520874, + -0.018920551985502243, + -0.0028547083493322134, + 0.009560754522681236, + 0.008460825309157372, + 0.03177504241466522, + 0.0004432738642208278, + -5.435280172605417e-7, + 0.06357890367507935, + -0.0159006230533123, + -0.01408358383923769, + -0.00013421075709629804, + 0.05839915946125984, + -0.0030350429005920887, + 0.04186831787228584, + 0.05348591133952141, + -0.07922319322824478, + -0.016010867431759834, + -29.424467086791992, + 86.34281158447266 ], [ - 0.08736417442560196, - -0.08311426639556885, - -0.01806890033185482, - -0.624649703502655, - 0.6050037741661072, - -0.02681633271276951, - 1.0923813581466675, - 0.0006138867465779185, - 32.609310150146484, - 1.8777395486831665, - -67.16415405273438, - -0.06076953560113907, - 1.5194796323776245, - 12.951915740966797, - 3.7513234615325928, - 1.5240014791488647, - -8.173264503479004, - 0.45639482140541077, - 18.55360984802246 + 0.00821803230792284, + -0.0036728119011968374, + 0.009658719412982464, + -0.0037206667475402355, + -0.0028535432647913694, + 0.0010842755436897278, + 0.0011418440844863653, + -5.435280172605417e-7, + -0.005440083798021078, + 0.03370354324579239, + 0.013569224625825882, + -0.0003185592941008508, + -0.002975594252347946, + 0.001179794897325337, + 0.016818633303046227, + 0.01726139709353447, + -0.008923901244997978, + 0.004194809589534998, + -9.714076042175293, + 39.888450622558594 ], [ - 0.04419853538274765, - -0.4252106249332428, - -0.06638911366462708, - -0.5873331427574158, - -0.6901756525039673, - 0.05158567801117897, - -3.1602203845977783, - 0.00033470726339146495, - 27.93245506286621, - 2.6492807865142822, - -81.19194030761719, - 0.005892109125852585, - 2.6808066368103027, - 19.46100425720215, - 1.354649305343628, - 2.2994210720062256, - -3.287984609603882, - -0.13685253262519836, - 129.00477600097656 + -0.0011057185474783182, + -0.016233308240771294, + 0.0075501915998756886, + -0.0035093214828521013, + -0.017202753573656082, + -0.0008982795989140868, + -0.04288431257009506, + -5.836467948938662e-7, + 0.09137625247240067, + 0.013150972314178944, + 0.16757790744304657, + -0.005765180569142103, + 0.04132239520549774, + 0.10927649587392807, + 0.07402195036411285, + 0.015537441708147526, + -0.020421525463461876, + 0.02361263893544674, + 15.355531692504883, + 74.1473617553711 ], [ - 0.11973437666893005, - -0.10793077945709229, - -0.10786595940589905, - -0.6045520305633545, - -1.2147974967956543, - -0.9284350872039795, - 0.7844049334526062, - 0.00048030438483692706, - 32.625423431396484, - 2.515143632888794, - -56.58749771118164, - 0.0021387909073382616, - 4.255259990692139, - 19.609878540039062, - 2.299473524093628, - 2.23740553855896, - -1.2034484148025513, - 0.1916126310825348, - 136.5943603515625 + 0.0004184774006716907, + 0.00017482656403444707, + -0.012260599061846733, + 0.016875242814421654, + -0.009085153229534626, + -0.00348266726359725, + 0.0010970159200951457, + -5.234686568655889e-7, + 0.04750418663024902, + 0.0015898060519248247, + 0.07386710494756699, + -0.003485350403934717, + 0.06950930505990982, + -0.006707921624183655, + 0.05835278332233429, + 0.05805078148841858, + 0.04707755893468857, + -0.029627811163663864, + 15.726099014282227, + 134.1823272705078 ], [ - 0.1082364097237587, - -0.21223677694797516, - -0.05490153655409813, - -0.545283854007721, - -1.429426908493042, - -0.3627423346042633, - 0.8043985962867737, - 0.0004843123606406152, - 34.36043167114258, - 2.9854509830474854, - -57.13039016723633, - -0.08268441259860992, - 3.9013848304748535, - 18.15716552734375, - 3.1370790004730225, - 2.550403594970703, - -0.14497748017311096, - 0.07626056671142578, - 119.68839263916016 + 0.001450967974960804, + 0.008663523942232132, + -0.08330849558115005, + -0.001517414697445929, + -0.004734954796731472, + 0.0226710457354784, + 0.0012432464864104986, + -5.234686568655889e-7, + 0.07729528844356537, + -0.013958658091723919, + 0.13128314912319183, + 0.0057492125779390335, + 0.012975051067769527, + -0.021029822528362274, + -0.10661817342042923, + -0.03641486167907715, + -0.05615438148379326, + 0.07721966505050659, + 10.229193687438965, + 117.00929260253906 ], [ - 0.12623703479766846, - -0.09981473535299301, - -0.022092686966061592, - -0.6123619675636292, - 0.6960574984550476, - 0.17629790306091309, - 0.7644410729408264, - 0.0004500673967413604, - 31.243064880371094, - 2.7847800254821777, - -71.42472076416016, - 0.029871594160795212, - 1.6017038822174072, - 18.788877487182617, - 1.5603853464126587, - 2.075836181640625, - -0.5787506103515625, - -0.8384397029876709, - 123.85447692871094 + 0.01717088557779789, + -0.011571023613214493, + -0.06975243985652924, + -0.006548789795488119, + -0.006513265427201986, + -0.0033634547144174576, + 0.001120731350965798, + -5.234686568655889e-7, + 0.03558531403541565, + 0.021320698782801628, + 0.1137283593416214, + -0.0044189924374222755, + 0.15400280058383942, + 0.0007578463992103934, + -0.01506777387112379, + 0.0024891418870538473, + -0.006772348657250404, + 0.02102750353515148, + 12.581000328063965, + 129.55410766601562 ], [ - 0.30559927225112915, - -0.6843422055244446, - -0.5509061217308044, - -0.5843949317932129, - 0.49212977290153503, - 0.05200646445155144, - 0.7462283372879028, - 0.0004433387366589159, - 36.03656768798828, - 1.8012105226516724, - -52.44881057739258, - 0.08841561526060104, - 4.25314474105835, - 18.274324417114258, - 6.6279802322387695, - 9.095296859741211, - 1.1217288970947266, - -1.7296305894851685, - 186.48130798339844 + -0.001816046074964106, + -0.012102648615837097, + 0.01982852630317211, + 0.0004926009569317102, + 0.007860597223043442, + -0.0018960374873131514, + 0.0008538152324035764, + -5.234686568655889e-7, + 0.06222555786371231, + -0.021105941385030746, + 0.06905367970466614, + -0.0040780240669846535, + 0.031888414174318314, + -0.03257666528224945, + 0.025799615308642387, + -0.02419019676744938, + 0.04766393452882767, + 0.0015151231782510877, + 36.550254821777344, + 123.88862609863281 ], [ - 0.19026543200016022, - -0.9811125993728638, - -0.24197007715702057, - -0.6790480017662048, - 0.826160728931427, - 0.1361076533794403, - 0.9567856788635254, - 0.0017447572899982333, - 44.38533020019531, - 6.729168891906738, - 8.35029125213623, - -0.008922005072236061, - -0.3479408025741577, - 27.414697647094727, - 4.110133647918701, - 3.7592267990112305, - -2.021366596221924, - -0.2974810302257538, - 183.8362274169922 + 0.001257514231838286, + -0.015130575746297836, + -0.004414551891386509, + 0.008090966381132603, + 0.004658644087612629, + -0.015146417543292046, + 0.00020971645426470786, + -5.234686568655889e-7, + 0.011706914752721786, + 0.20146164298057556, + 0.19861085712909698, + -0.00803178921341896, + 0.12098423391580582, + -0.06273028999567032, + 0.10733574628829956, + 0.044928617775440216, + 0.17564228177070618, + -0.03375009447336197, + 32.01504898071289, + 267.82757568359375 ], [ - 0.11138199269771576, - -0.21216361224651337, - -0.07062851637601852, - -1.0341061353683472, - 0.7042338252067566, - -0.03752940893173218, - 1.26123046875, - 0.006767518352717161, - 65.3997802734375, - 5.077115058898926, - 168.5412139892578, - -0.07065502554178238, - -21.741933822631836, - 66.58692932128906, - 3.9180402755737305, - -2.6938364505767822, - -0.8006421327590942, - 0.15820886194705963, - 232.139892578125 + 0.024126891046762466, + -0.06981115788221359, + -0.002126110251992941, + -0.0030447172466665506, + 0.01010955311357975, + -0.016713373363018036, + 0.0011414185864850879, + -5.903332294110442e-7, + 0.02796195261180401, + 0.10212533921003342, + 0.21606597304344177, + 0.028450297191739082, + 0.3123534023761749, + 0.03849228844046593, + 0.19616052508354187, + 0.06000271439552307, + -0.15320873260498047, + 0.07142939418554306, + 38.81772994995117, + 528.9920654296875 ], [ - 0.11156803369522095, - -0.14972706139087677, - -0.03701518103480339, - -1.0750479698181152, - 0.7851226925849915, - 0.05880920961499214, - 1.2723593711853027, - 0.006968651432543993, - 71.91404724121094, - 5.302643775939941, - 160.10682678222656, - -0.32071197032928467, - -27.322114944458008, - 81.18883514404297, - 3.3621318340301514, - -2.1586947441101074, - -3.7938132286071777, - -0.14915278553962708, - 197.42027282714844 + 0.0007653198554180562, + -0.03893428295850754, + -0.11176957935094833, + 0.04548726975917816, + 0.013672908768057823, + 0.025302406400442123, + 0.0037610491272062063, + -5.234686568655889e-7, + 0.15557515621185303, + -0.1976618766784668, + 0.15321378409862518, + -0.0045678457245230675, + 0.9221652150154114, + -0.016127025708556175, + 0.3365885019302368, + 0.441148966550827, + -0.19978415966033936, + 0.14800995588302612, + 29.793498992919922, + 436.032958984375 ], [ - 0.204599067568779, - -0.2461235225200653, - -0.21333153545856476, - -0.7938452959060669, - 0.4815913140773773, - 0.1256493330001831, - 1.0464138984680176, - 0.00518224760890007, - 49.97133255004883, - 4.894437789916992, - 53.68952941894531, - -0.19911928474903107, - -23.529586791992188, - 55.32871627807617, - 3.3635354042053223, - 1.538684368133545, - -2.1115994453430176, - -0.26926857233047485, - 174.94149780273438 + 0.0014974954538047314, + 0.1354808211326599, + 0.14720602333545685, + 0.00072560302214697, + 0.008653385564684868, + 0.002555368933826685, + 0.017076756805181503, + -5.903332294110442e-7, + 0.024949247017502785, + 0.18119129538536072, + -0.10510391741991043, + -0.004335414152592421, + 0.26319852471351624, + -0.035990964621305466, + 0.4638155400753021, + 0.37781164050102234, + 0.023205336183309555, + 0.1530095487833023, + 36.669219970703125, + 291.54913330078125 ], [ - 0.284850537776947, - -0.7224855422973633, - -0.10599470883607864, - -0.7012123465538025, - 0.6031214594841003, - 0.1194339394569397, - 1.062707781791687, - 0.0002201393072027713, - 47.41392517089844, - 3.0333330631256104, - 15.15195083618164, - -0.16700708866119385, - -11.840907096862793, - 22.97865104675293, - 4.272884368896484, - 3.205537796020508, - 1.213819980621338, - 0.24470829963684082, - 102.32076263427734 + 0.0005830085137858987, + -0.0147970886901021, + -0.0005603164900094271, + -0.0021417096722871065, + 0.009206392802298069, + 0.0026123817078769207, + 0.004351895302534103, + -5.234686568655889e-7, + 0.08664233982563019, + 0.03897193819284439, + 0.1724054217338562, + -0.0003045381745323539, + -0.017801929265260696, + -0.016221223399043083, + 0.09720641374588013, + 0.11877352744340897, + 0.012688951566815376, + 0.0767255648970604, + 1.4028081893920898, + 205.1221466064453 ], [ - 0.08558260649442673, - -0.26781657338142395, - -0.03651169314980507, - -0.6109598875045776, - 0.4114564061164856, - 0.024791114032268524, - 0.7712389230728149, - 0.00045804245746694505, - 41.705875396728516, - 2.4311540126800537, - -35.981204986572266, - -0.18467994034290314, - -3.1382734775543213, - 16.870887756347656, - 4.5229268074035645, - 4.405489921569824, - -2.3479084968566895, - 0.03791113942861557, - 82.2328872680664 + 0.0000801934365881607, + -0.004456205293536186, + -0.006387252826243639, + 0.0043287803418934345, + 0.011961555108428001, + 0.004476806148886681, + -0.00011448755685705692, + -5.818232011733926e-7, + 0.06868594884872437, + -0.039755579084157944, + -0.00942378118634224, + -0.0001892316504381597, + 0.05081229656934738, + -0.002565302886068821, + 0.09789375215768814, + 0.05228988081216812, + 0.002476600231602788, + -0.011131628416478634, + -3.6125998497009277, + 127.83191680908203 ], [ - 0.18889480829238892, - -0.7775468826293945, - -0.034241363406181335, - -0.4900377690792084, - 0.4668247401714325, - 0.03599352017045021, - 0.6572790741920471, - 0.0004563787078950554, - 38.646183013916016, - 2.2688169479370117, - -59.59256362915039, - -0.18536728620529175, - 0.9315031170845032, - 13.838233947753906, - 4.0595269203186035, - 5.059770107269287, - -1.8184020519256592, - 0.10285140573978424, - 80.02012634277344 + -0.0021726444829255342, + 0.002795000094920397, + -0.005302713718265295, + -0.0017264267662540078, + -0.017086002975702286, + -0.022952895611524582, + -0.0018570241518318653, + -5.818232011733926e-7, + 0.04155479371547699, + -0.0010825778590515256, + 0.0496688187122345, + -0.00024980775197036564, + -0.006641995161771774, + -0.003954743500798941, + 0.05811557173728943, + 0.01580921560525894, + 0.0028322285506874323, + -0.004397578537464142, + 6.032445907592773, + 49.352500915527344 ], [ - 0.11466164141893387, - -0.16193976998329163, - -0.050843071192502975, - -0.5839547514915466, - 0.4238177239894867, - 0.0644395723938942, - 0.6787403225898743, - 0.0004557965148705989, - 29.917152404785156, - 1.2996795177459717, - -81.47754669189453, - -0.07345428317785263, - 2.0325613021850586, - 13.935806274414062, - 0.7567772269248962, - 1.9554189443588257, - -1.8155736923217773, - -0.9485164284706116, - 40.475616455078125 + 0.00346371834166348, + -0.007487223017960787, + -0.010854658670723438, + 0.007249853573739529, + 0.009227815084159374, + 0.007073963526636362, + 0.0002005675487453118, + -0.000016336676708306186, + 0.027244770899415016, + 0.014673888683319092, + 0.02144038863480091, + -0.0003468676586635411, + -0.019865011796355247, + -0.0020196696277707815, + 0.024652913212776184, + 0.01293950341641903, + -0.02054225280880928, + 0.002757658250629902, + -4.6295037269592285, + 33.4580078125 ], [ - -0.3174290060997009, - 0.3310340642929077, - -0.12958554923534393, - -1.3448700904846191, - 0.5881621837615967, - -0.004714091308414936, - 0.5277523994445801, - 0.001710362615995109, - 25.41599464416504, - 1.3539729118347168, - -50.08005142211914, - -0.3727305829524994, - 3.743600845336914, - -26.54120445251465, - -1.3080363273620605, - 1.7957813739776611, - -2.2712464332580566, - 0.7923770546913147, - 41.63277816772461 + 0.004500665236264467, + 0.004311287775635719, + -0.0015911366790533066, + -0.00004341434396337718, + -0.0036416773218661547, + -0.008009851910173893, + 0.0007097645429894328, + -5.903332294110442e-7, + 0.025420092046260834, + 0.024150747805833817, + -0.030794087797403336, + 0.00014085270231589675, + 0.010085618123412132, + -0.005375177599489689, + 0.04862995073199272, + 0.018579328432679176, + 0.013278493657708168, + 0.008740434423089027, + -0.2043718844652176, + 17.173580169677734 ], [ - -0.19238382577896118, - 0.16576017439365387, - -0.06331092119216919, - -0.877108633518219, - 0.5804239511489868, - 0.02127970941364765, - 0.5031863451004028, - 0.002146092476323247, - 22.907079696655273, - 2.157161235809326, - -53.333221435546875, - -0.15660357475280762, - 4.341437339782715, - -30.90949821472168, - -1.8963706493377686, - 0.18700070679187775, - -1.8457233905792236, - 0.1540101170539856, - 31.643033981323242 + 0.0003680420632008463, + -0.0021799395326524973, + -0.0031030476093292236, + 0.000007032229859760264, + 0.002278556814417243, + -0.0001272457739105448, + 0.0002727881073951721, + -5.903332294110442e-7, + 0.049778763204813004, + 0.00500711053609848, + -0.06298993527889252, + -0.0000027592561764322454, + 0.01155101228505373, + 0.005016802344471216, + 0.022589804604649544, + 0.0030735796317458153, + 0.00017903615662362427, + 0.020538311451673508, + 2.777050256729126, + -49.536006927490234 ], [ - 0.04668380692601204, - 0.046534158289432526, - 0.20892439782619476, - -0.6090874671936035, - -0.5739677548408508, - 0.020424511283636093, - -2.284179449081421, - 0.0005521719576790929, - 15.208908081054688, - 0.8874129056930542, - -55.6029167175293, - 0.15441690385341644, - 1.6044375896453857, - -19.737382888793945, - 0.18790587782859802, - 0.5347346067428589, - -1.110144853591919, - -0.07951051741838455, - -30.715444564819336 + 0.0019602749962359667, + -0.0002076018718071282, + 0.000924740161281079, + -0.004042718093842268, + 0.0015761936083436012, + -0.003634627675637603, + -0.002123443875461817, + -5.836467948938662e-7, + 0.012589669786393642, + 0.008601898327469826, + -0.002863467438146472, + -0.00037004690966568887, + 0.0030082284938544035, + -0.00837839674204588, + 0.03412327915430069, + 0.03683372959494591, + 0.011561469174921513, + -0.007075319532305002, + -3.8904707431793213, + -73.40371704101562 ], [ - 0.0704040378332138, - 0.00306660495698452, - 0.005788542330265045, - -0.5281633138656616, - -0.3896014392375946, - -0.051410697400569916, - -2.4512624740600586, - 0.0005640322342514992, - 14.02071762084961, - 0.9111858606338501, - -42.93519592285156, - 0.022168485447764397, - 1.2551944255828857, - -14.146629333496094, - 0.7183982133865356, - 1.0827301740646362, - -1.948799967765808, - 0.03619908541440964, - -95.28205108642578 + 0.0021590138785541058, + -0.0012494655093178153, + 0.00531137827783823, + -0.0006216082256287336, + 0.0023445889819413424, + -0.0018516307463869452, + -0.002895719138905406, + -0.0000019111487290501827, + 0.026525065302848816, + 0.008116654120385647, + -0.009352079592645168, + -0.000039801943785278127, + 0.0064659519121050835, + 0.0032814410515129566, + 0.023766664788126945, + 0.022764375433325768, + -0.014719526283442974, + 0.003942584618926048, + -15.14365291595459, + -126.5219955444336 ], [ - 0.07861907035112381, - -0.041344404220581055, - -0.00439880695194006, - -0.5452210307121277, - 0.32789313793182373, - -0.01280132308602333, - 0.6400336027145386, - 0.0008225631900131702, - 14.963103294372559, - 1.159946084022522, - -51.35942840576172, - -0.10364393144845963, - 1.2107940912246704, - -22.75741958618164, - 0.4763311743736267, - 0.853819727897644, - -1.950206995010376, - 0.16697914898395538, - -95.26329803466797 + 0.001963126240298152, + 0.0004278573323972523, + 0.0017210913356393576, + -0.0004960409132763743, + -0.0002697939344216138, + -0.0012964805355295539, + 0.0002213371335528791, + -0.0000024363362172152847, + 0.027362344786524773, + 0.007259185891598463, + -0.0072751338593661785, + -0.0002024852583417669, + 0.01341261062771082, + 0.0028589600697159767, + 0.022945748642086983, + 0.021707018837332726, + -0.01633487455546856, + 0.0010154079645872116, + -13.435151100158691, + -139.20156860351562 ], [ - 0.13270977139472961, - -0.01503751054406166, - 0.03497190773487091, - -0.5262167453765869, - 0.37883010506629944, - 0.0026681271847337484, - 0.6798986196517944, - 0.0008393845055252314, - 14.390527725219727, - 1.1559127569198608, - -34.342041015625, - -0.2232520431280136, - 0.9509322047233582, - -32.627685546875, - 0.7535831928253174, - 1.1008868217468262, - -2.6093475818634033, - 0.02177518419921398, - -103.45665740966797 + 0.0017983439611271024, + -0.00022226972214411944, + 0.0023725302889943123, + 0.000009755483915796503, + -0.0004627624002750963, + -0.0018390193581581116, + 0.0001538219948997721, + -0.0000016591945950494846, + 0.0263361856341362, + 0.007185096386820078, + -0.00688078161329031, + -0.00026726291980594397, + 0.012591404840350151, + 0.004633589182049036, + 0.02266033925116062, + 0.018868226557970047, + -0.019568270072340965, + 0.0014882589457556605, + -14.473722457885742, + -137.16183471679688 ], [ - 0.15651755034923553, - -0.15258224308490753, - 0.03707513585686684, - -0.5549656748771667, - -0.8716737031936646, - -0.17876099050045013, - 0.5893511772155762, - 0.0012780610704794526, - 16.52436065673828, - 1.6463030576705933, - -15.422141075134277, - -0.3689005374908447, - 1.9884896278381348, - -55.493408203125, - 0.8239267468452454, - 0.7360613942146301, - -2.750591278076172, - -0.06881178915500641, - -82.84323120117188 + 0.0027924291789531708, + 0.0006672564777545631, + 0.019606126472353935, + 0.0042277052998542786, + 0.0055525414645671844, + 0.016647664830088615, + -0.0005231742397882044, + -0.0000021688085780624533, + 0.02380349487066269, + 0.008502909913659096, + -0.008627854287624359, + -0.0001291552180191502, + 0.015335661359131336, + 0.008100496605038643, + 0.02183554135262966, + 0.02545825205743313, + -0.007043658755719662, + 0.021084072068333626, + -12.392168998718262, + -127.07182312011719 ], [ - 0.4447348117828369, - -0.4231981933116913, - -0.02228293940424919, - -0.7803685665130615, - 0.7693158984184265, - 0.3406188488006592, - 1.031157374382019, - 0.0005409898003563285, - 26.59900665283203, - 4.324277877807617, - 44.66126251220703, - -0.6762575507164001, - 4.063052177429199, - -120.94087219238281, - 2.1688156127929688, - 2.7925262451171875, - -2.3223366737365723, - 0.47057315707206726, - -57.06726837158203 + 0.0008910028263926506, + -0.0023655213881284, + -0.00016925547970458865, + 0.0007772634271532297, + -0.00028832152020186186, + -0.0015376099618151784, + 0.00120789825450629, + -2.7600034968600085e-7, + 0.025869540870189667, + 0.010142544284462929, + 0.01182663906365633, + -0.0011886279098689556, + -0.002079905942082405, + 0.020062390714883804, + 0.022434281185269356, + 0.028602467849850655, + -0.0005579907447099686, + 0.0041159093379974365, + -13.156085968017578, + -87.2933578491211 ], [ - 0.3455011546611786, - -0.34853312373161316, - -0.07679200172424316, - -0.7773706316947937, - 0.8298165798187256, - 0.1192348450422287, - 1.2219772338867188, - 0.0004078227502759546, - 40.303794860839844, - 3.6706557273864746, - 87.4390869140625, - -0.5022661089897156, - 5.4427337646484375, - -179.41114807128906, - -2.2335124015808105, - 0.38430309295654297, - -3.290996789932251, - 0.5145955681800842, - 37.80179977416992 + 0.002520846202969551, + -0.0016090237768366933, + -0.011034599505364895, + -0.0037454143166542053, + -0.006465476006269455, + 0.004928687121719122, + 0.00012173393770353869, + -5.435280172605417e-7, + 0.02550685405731201, + -0.00030980102019384503, + -0.0033666309900581837, + 0.00003521377220749855, + 0.015116547234356403, + 0.0031370152719318867, + 0.023118756711483, + 0.037078917026519775, + -0.03095299005508423, + -0.0003248572757001966, + -7.020362377166748, + 6.664906024932861 ], [ - -0.9017656445503235, - 0.4451572299003601, - 0.06388839334249496, - -0.7944748997688293, - 0.6035032272338867, - -0.0905015766620636, - 0.7729612588882446, - 0.00041011886787600815, - 37.274715423583984, - 1.159719467163086, - 14.937543869018555, - -2.050440788269043, - 3.1982452869415283, - -70.25680541992188, - -1.3633711338043213, - 0.7603104114532471, - -5.101544380187988, - -0.42048677802085876, - 83.18323516845703 + -0.0011328888358548284, + -0.0006776886293664575, + 0.0025607720017433167, + -0.0010662269778549671, + -0.004179570358246565, + 0.01139034517109394, + 0.00048582968884147704, + -5.602441888186149e-7, + 0.051470667123794556, + 0.0793420597910881, + -0.021775605157017708, + -0.00029938897932879627, + -0.042126886546611786, + 0.019091205671429634, + 0.05989614129066467, + 0.03380190581083298, + 0.01294303871691227, + -0.00526716373860836, + -0.6558831930160522, + 108.92472839355469 ], [ - 0.11393378674983978, - 0.11304812133312225, - -0.16461777687072754, - -0.7269461154937744, - 0.16770629584789276, - -0.1017497181892395, - 0.5087674260139465, - 0.0004202720010653138, - 27.24408531188965, - 1.5593397617340088, - -28.239973068237305, - 0.4899006187915802, - 1.0886896848678589, - -24.55528450012207, - 2.7483482360839844, - 2.03686785697937, - -0.42894095182418823, - 1.3455692529678345, - 204.861572265625 + 0.004372152499854565, + -0.08473900705575943, + -0.033088285475969315, + 0.011379732750356197, + -0.07079089432954788, + -0.05249302461743355, + 0.0011294371215626597, + -5.435280172605417e-7, + 0.07675136625766754, + -0.1803426742553711, + 0.04048972204327583, + -0.0025652775075286627, + 0.022899962961673737, + 0.02303881011903286, + -0.01693040505051613, + 0.05974923074245453, + -0.053477831184864044, + -0.13646526634693146, + 58.41898727416992, + 188.3303985595703 ], [ - 0.03289812058210373, - 0.00438904482871294, - -0.02268366888165474, - -0.6151777505874634, - 0.26423653960227966, - -0.05472677946090698, - 0.5688372254371643, - 0.00039869867032393813, - 40.12403869628906, - 6.724072456359863, - -3.9013240337371826, - 0.13893280923366547, - 0.9798011779785156, - -21.420793533325195, - -1.6129995584487915, - -4.774735450744629, - -2.7931156158447266, - 1.4105048179626465, - 319.2957458496094 + 0.023136653006076813, + 0.013332482427358627, + -0.10747312754392624, + -0.000027626136215985753, + 0.01566438376903534, + 0.04234756901860237, + 0.0014431572053581476, + -5.602441888186149e-7, + 1.1457523107528687, + 0.013935286551713943, + 0.23359306156635284, + -0.0012342684203758836, + 0.026020588353276253, + 0.03317909687757492, + 0.09904667735099792, + 0.02392827905714512, + 0.09438963979482651, + 0.06155690178275108, + 118.4447021484375, + 216.02000427246094 ], [ - -0.03983254358172417, - -0.03532906994223595, - -0.022279951721429825, - -0.627357006072998, - 0.4631103277206421, - -0.015223309397697449, - 0.5658614635467529, - 0.00040272370097227395, - 35.80498123168945, - 20.436368942260742, - 4.8773040771484375, - -0.02710779756307602, - 2.5953235626220703, - -20.015819549560547, - -0.4222872853279114, - -6.170653820037842, - -1.3667196035385132, - -0.08611901849508286, - 363.1136779785156 + 0.00473807705566287, + -0.013561918400228024, + -0.00569318188354373, + 0.006259304471313953, + 0.04020430147647858, + 0.015873584896326065, + 0.0008505901205353439, + -5.903332294110442e-7, + 0.7021811008453369, + -0.2398284673690796, + -0.003728893818333745, + -0.001245810417458415, + 0.08301378786563873, + 0.006334937177598476, + -0.1641101986169815, + -0.19872988760471344, + -0.43158915638923645, + 0.0553923100233078, + 125.51891326904297, + 256.03302001953125 ], [ - -0.029909580945968628, - -0.054200202226638794, - -0.015400067903101444, - -0.6077865958213806, - 0.45533764362335205, - 0.003094450104981661, - 0.5511691570281982, - 0.00041140950634144247, - 32.99904251098633, - 26.067794799804688, - 5.580532550811768, - -0.01208861917257309, - 2.7792036533355713, - -19.195932388305664, - -3.357377052307129, - -8.327322006225586, - 1.2978521585464478, - 0.4992067217826843, - 374.6746826171875 + -0.019758548587560654, + 0.010217578150331974, + -0.00971164833754301, + -0.002168492414057255, + 0.050850387662649155, + 0.01615949533879757, + 0.000913315627258271, + -5.234686568655889e-7, + 0.23350246250629425, + 0.05356588959693909, + 0.2396046668291092, + -0.0019483801443129778, + 0.1325407475233078, + 0.047976866364479065, + -0.17942087352275848, + -0.22870692610740662, + -0.30266401171684265, + -0.15156613290309906, + 136.47964477539062, + 273.0892639160156 ], [ - 0.002795484848320484, - -0.0554082915186882, - -0.033671021461486816, - -0.6234163641929626, - 0.560994029045105, - 0.020386941730976105, - 0.5377357006072998, - 0.00039178752922452986, - 32.3141975402832, - 23.293106079101562, - 1.1144087314605713, - 0.2542417645454407, - 2.357220411300659, - -18.85422134399414, - -0.9144224524497986, - -15.955507278442383, - 1.5044362545013428, - -0.023106178268790245, - 381.828125 + 0.003229377791285515, + -0.0003926470235455781, + -0.16129636764526367, + 0.0017673897091299295, + 0.032411836087703705, + 0.004987923428416252, + 0.0017363234655931592, + -5.234686568655889e-7, + 1.7381287813186646, + -0.24203439056873322, + 0.09731228649616241, + 0.015623160637915134, + 0.1461087167263031, + 0.029173608869314194, + 0.1483512818813324, + 0.050507497042417526, + -0.5012174844741821, + 0.01543451752513647, + 146.48016357421875, + 224.67330932617188 ], [ - 0.0010237160604447126, - -0.06102044880390167, - -0.034895896911621094, - -0.625860869884491, - 0.5427557229995728, - 0.013131984509527683, - 0.5326250195503235, - 0.0003884797915816307, - 32.58828353881836, - 24.576950073242188, - 1.2001595497131348, - 0.25430577993392944, - 2.411581516265869, - -19.075937271118164, - -1.6931570768356323, - -12.839770317077637, - 3.3814566135406494, - -0.1815534234046936, - 378.95782470703125 + -0.0026937625370919704, + -0.024381984025239944, + -0.013046693056821823, + -0.0008301987545564771, + 0.07341579347848892, + 0.008803494274616241, + 0.005390099715441465, + -5.903332294110442e-7, + 2.091766834259033, + -0.13497331738471985, + 0.25884851813316345, + -0.0012181127676740289, + 0.013696557842195034, + 0.03928625211119652, + 0.10275577008724213, + 0.0670732632279396, + -0.028537996113300323, + 0.06219366192817688, + 143.07008361816406, + 245.90567016601562 ] ] } @@ -4548,7 +4686,9 @@ } ], "source": [ - "px.imshow(samples_explanations, height=700, color_continuous_scale='Bluered', title=\"Sample Explanations\")" + "px.imshow(\n", + " samples_explanations, height=700, color_continuous_scale=\"Bluered\", title=\"Sample Explanations\"\n", + ")" ] } ], @@ -4568,7 +4708,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/indicators.ipynb b/notebooks/indicators.ipynb index ae0dad3..b76c8fb 100644 --- a/notebooks/indicators.ipynb +++ b/notebooks/indicators.ipynb @@ -128,9 +128,9 @@ " \n", " 0\n", " file:///home/fmind/mlops-python-package/mlruns...\n", - " 2024-07-21 15:02:02.224\n", - " 598443335336095652\n", - " 2024-07-21 15:02:02.224\n", + " 2024-12-14 14:35:02.439\n", + " 300971336194126583\n", + " 2024-12-14 14:35:02.439\n", " active\n", " bikes\n", " {}\n", @@ -141,10 +141,10 @@ ], "text/plain": [ " artifact_location creation_time \\\n", - "0 file:///home/fmind/mlops-python-package/mlruns... 2024-07-21 15:02:02.224 \n", + "0 file:///home/fmind/mlops-python-package/mlruns... 2024-12-14 14:35:02.439 \n", "\n", " experiment_id last_update_time lifecycle_stage name tags \n", - "0 598443335336095652 2024-07-21 15:02:02.224 active bikes {} " + "0 300971336194126583 2024-12-14 14:35:02.439 active bikes {} " ] }, "execution_count": 5, @@ -174,7 +174,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "(18, 30)\n" + "(27, 29)\n" ] }, { @@ -222,7 +222,6 @@ " mlflow.runName\n", " mlflow.project.env\n", " mlflow.project.backend\n", - " mlflow.datasets\n", " estimator_name\n", " estimator_class\n", " mlflow.log-model.history\n", @@ -234,24 +233,24 @@ " \n", " 0\n", " file:///home/fmind/mlops-python-package/mlruns...\n", - " 2024-07-21 15:31:53.829\n", - " 598443335336095652\n", + " 2024-12-14 14:42:28.056\n", + " 300971336194126583\n", " active\n", - " 4df1e5931159491c963f2252add508cd\n", + " 9923cb99c1824857b68c0bedb63f8446\n", " Explanations\n", - " 4df1e5931159491c963f2252add508cd\n", - " 2024-07-21 15:31:20.207\n", + " 9923cb99c1824857b68c0bedb63f8446\n", + " 2024-12-14 14:42:16.077\n", " FINISHED\n", " fmind\n", " {}\n", " {'conf_file': 'confs/explanations.yaml'}\n", " {'mlflow.user': 'fmind', 'mlflow.source.name':...\n", - " 33.622\n", + " 11.979\n", " fmind\n", " file:///home/fmind/mlops-python-package\n", " PROJECT\n", " main\n", - " ee17d0a9de59efd2eb99d667786ac417ec8b3b63\n", + " 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c\n", " git@github.com:fmind/mlops-python-package\n", " git@github.com:fmind/mlops-python-package\n", " Explanations\n", @@ -262,35 +261,33 @@ " NaN\n", " NaN\n", " NaN\n", - " NaN\n", " \n", " \n", " 1\n", " file:///home/fmind/mlops-python-package/mlruns...\n", - " 2024-07-21 15:31:13.361\n", - " 598443335336095652\n", + " 2024-12-14 14:42:13.733\n", + " 300971336194126583\n", " active\n", - " e993a53ee04e4357bad5cec101ab4031\n", + " bfce074e34834054b84e5794450a4fa2\n", " Evaluations\n", - " e993a53ee04e4357bad5cec101ab4031\n", - " 2024-07-21 15:31:07.565\n", + " bfce074e34834054b84e5794450a4fa2\n", + " 2024-12-14 14:42:07.488\n", " FINISHED\n", " fmind\n", " {'example_count': 13903.0, 'mean_absolute_erro...\n", " {'conf_file': 'confs/evaluations.yaml'}\n", " {'mlflow.user': 'fmind', 'mlflow.source.name':...\n", - " 5.796\n", + " 6.245\n", " fmind\n", " file:///home/fmind/mlops-python-package\n", " PROJECT\n", " main\n", - " ee17d0a9de59efd2eb99d667786ac417ec8b3b63\n", + " 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c\n", " git@github.com:fmind/mlops-python-package\n", " git@github.com:fmind/mlops-python-package\n", " Evaluations\n", " virtualenv\n", " local\n", - " [{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"h...\n", " NaN\n", " NaN\n", " NaN\n", @@ -300,24 +297,24 @@ " \n", " 2\n", " file:///home/fmind/mlops-python-package/mlruns...\n", - " 2024-07-21 15:31:04.758\n", - " 598443335336095652\n", + " 2024-12-14 14:42:05.031\n", + " 300971336194126583\n", " active\n", - " c17b893e525b44ed89e349421e72510a\n", + " 5ebe28d67ed54300a177eb61825a6688\n", " Inference\n", - " c17b893e525b44ed89e349421e72510a\n", - " 2024-07-21 15:30:59.023\n", + " 5ebe28d67ed54300a177eb61825a6688\n", + " 2024-12-14 14:41:59.607\n", " FINISHED\n", " fmind\n", " {}\n", " {'conf_file': 'confs/inference.yaml'}\n", " {'mlflow.user': 'fmind', 'mlflow.source.name':...\n", - " 5.735\n", + " 5.424\n", " fmind\n", " file:///home/fmind/mlops-python-package\n", " PROJECT\n", " main\n", - " ee17d0a9de59efd2eb99d667786ac417ec8b3b63\n", + " 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c\n", " git@github.com:fmind/mlops-python-package\n", " git@github.com:fmind/mlops-python-package\n", " Inference\n", @@ -328,29 +325,28 @@ " NaN\n", " NaN\n", " NaN\n", - " NaN\n", " \n", " \n", " 3\n", " file:///home/fmind/mlops-python-package/mlruns...\n", - " 2024-07-21 15:30:56.969\n", - " 598443335336095652\n", + " 2024-12-14 14:41:57.245\n", + " 300971336194126583\n", " active\n", - " d538cc2f3f644b6e97b611c1d96801ac\n", + " f29b930df5a54f1fa9ec5fe4b27df8b9\n", " Promotion\n", - " d538cc2f3f644b6e97b611c1d96801ac\n", - " 2024-07-21 15:30:51.594\n", + " f29b930df5a54f1fa9ec5fe4b27df8b9\n", + " 2024-12-14 14:41:52.639\n", " FINISHED\n", " fmind\n", " {}\n", " {'conf_file': 'confs/promotion.yaml'}\n", " {'mlflow.user': 'fmind', 'mlflow.source.name':...\n", - " 5.375\n", + " 4.606\n", " fmind\n", " file:///home/fmind/mlops-python-package\n", " PROJECT\n", " main\n", - " ee17d0a9de59efd2eb99d667786ac417ec8b3b63\n", + " 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c\n", " git@github.com:fmind/mlops-python-package\n", " git@github.com:fmind/mlops-python-package\n", " Promotion\n", @@ -361,38 +357,36 @@ " NaN\n", " NaN\n", " NaN\n", - " NaN\n", " \n", " \n", " 4\n", " file:///home/fmind/mlops-python-package/mlruns...\n", - " 2024-07-21 15:30:46.302\n", - " 598443335336095652\n", + " 2024-12-14 14:41:49.910\n", + " 300971336194126583\n", " active\n", - " a75ea3e9742c48fd9c34a5b8abf9bd89\n", + " 4753bf6b106845d19eca79b7cb329343\n", " Training\n", - " a75ea3e9742c48fd9c34a5b8abf9bd89\n", - " 2024-07-21 15:29:25.495\n", + " 4753bf6b106845d19eca79b7cb329343\n", + " 2024-12-14 14:41:23.914\n", " FINISHED\n", " fmind\n", - " {'training_mean_squared_error': 124.5105461557...\n", + " {'training_mean_squared_error': 1.280665585452...\n", " {'conf_file': 'confs/training.yaml', 'memory':...\n", " {'mlflow.user': 'fmind', 'mlflow.source.name':...\n", - " 80.807\n", + " 25.996\n", " fmind\n", " file:///home/fmind/mlops-python-package\n", " PROJECT\n", " main\n", - " ee17d0a9de59efd2eb99d667786ac417ec8b3b63\n", + " 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c\n", " git@github.com:fmind/mlops-python-package\n", " git@github.com:fmind/mlops-python-package\n", " Training\n", " virtualenv\n", " local\n", - " NaN\n", " Pipeline\n", " sklearn.pipeline.Pipeline\n", - " [{\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\"...\n", + " [{\"run_id\": \"4753bf6b106845d19eca79b7cb329343\"...\n", " NaN\n", " NaN\n", " \n", @@ -402,32 +396,32 @@ ], "text/plain": [ " artifact_uri end_time \\\n", - "0 file:///home/fmind/mlops-python-package/mlruns... 2024-07-21 15:31:53.829 \n", - "1 file:///home/fmind/mlops-python-package/mlruns... 2024-07-21 15:31:13.361 \n", - "2 file:///home/fmind/mlops-python-package/mlruns... 2024-07-21 15:31:04.758 \n", - "3 file:///home/fmind/mlops-python-package/mlruns... 2024-07-21 15:30:56.969 \n", - "4 file:///home/fmind/mlops-python-package/mlruns... 2024-07-21 15:30:46.302 \n", + "0 file:///home/fmind/mlops-python-package/mlruns... 2024-12-14 14:42:28.056 \n", + "1 file:///home/fmind/mlops-python-package/mlruns... 2024-12-14 14:42:13.733 \n", + "2 file:///home/fmind/mlops-python-package/mlruns... 2024-12-14 14:42:05.031 \n", + "3 file:///home/fmind/mlops-python-package/mlruns... 2024-12-14 14:41:57.245 \n", + "4 file:///home/fmind/mlops-python-package/mlruns... 2024-12-14 14:41:49.910 \n", "\n", " experiment_id lifecycle_stage run_id \\\n", - "0 598443335336095652 active 4df1e5931159491c963f2252add508cd \n", - "1 598443335336095652 active e993a53ee04e4357bad5cec101ab4031 \n", - "2 598443335336095652 active c17b893e525b44ed89e349421e72510a \n", - "3 598443335336095652 active d538cc2f3f644b6e97b611c1d96801ac \n", - "4 598443335336095652 active a75ea3e9742c48fd9c34a5b8abf9bd89 \n", + "0 300971336194126583 active 9923cb99c1824857b68c0bedb63f8446 \n", + "1 300971336194126583 active bfce074e34834054b84e5794450a4fa2 \n", + "2 300971336194126583 active 5ebe28d67ed54300a177eb61825a6688 \n", + "3 300971336194126583 active f29b930df5a54f1fa9ec5fe4b27df8b9 \n", + "4 300971336194126583 active 4753bf6b106845d19eca79b7cb329343 \n", "\n", " run_name run_uuid start_time \\\n", - "0 Explanations 4df1e5931159491c963f2252add508cd 2024-07-21 15:31:20.207 \n", - "1 Evaluations e993a53ee04e4357bad5cec101ab4031 2024-07-21 15:31:07.565 \n", - "2 Inference c17b893e525b44ed89e349421e72510a 2024-07-21 15:30:59.023 \n", - "3 Promotion d538cc2f3f644b6e97b611c1d96801ac 2024-07-21 15:30:51.594 \n", - "4 Training a75ea3e9742c48fd9c34a5b8abf9bd89 2024-07-21 15:29:25.495 \n", + "0 Explanations 9923cb99c1824857b68c0bedb63f8446 2024-12-14 14:42:16.077 \n", + "1 Evaluations bfce074e34834054b84e5794450a4fa2 2024-12-14 14:42:07.488 \n", + "2 Inference 5ebe28d67ed54300a177eb61825a6688 2024-12-14 14:41:59.607 \n", + "3 Promotion f29b930df5a54f1fa9ec5fe4b27df8b9 2024-12-14 14:41:52.639 \n", + "4 Training 4753bf6b106845d19eca79b7cb329343 2024-12-14 14:41:23.914 \n", "\n", " status user_id metrics \\\n", "0 FINISHED fmind {} \n", "1 FINISHED fmind {'example_count': 13903.0, 'mean_absolute_erro... \n", "2 FINISHED fmind {} \n", "3 FINISHED fmind {} \n", - "4 FINISHED fmind {'training_mean_squared_error': 124.5105461557... \n", + "4 FINISHED fmind {'training_mean_squared_error': 1.280665585452... \n", "\n", " params \\\n", "0 {'conf_file': 'confs/explanations.yaml'} \n", @@ -437,11 +431,11 @@ "4 {'conf_file': 'confs/training.yaml', 'memory':... \n", "\n", " tags run_time_secs \\\n", - "0 {'mlflow.user': 'fmind', 'mlflow.source.name':... 33.622 \n", - "1 {'mlflow.user': 'fmind', 'mlflow.source.name':... 5.796 \n", - "2 {'mlflow.user': 'fmind', 'mlflow.source.name':... 5.735 \n", - "3 {'mlflow.user': 'fmind', 'mlflow.source.name':... 5.375 \n", - "4 {'mlflow.user': 'fmind', 'mlflow.source.name':... 80.807 \n", + "0 {'mlflow.user': 'fmind', 'mlflow.source.name':... 11.979 \n", + "1 {'mlflow.user': 'fmind', 'mlflow.source.name':... 6.245 \n", + "2 {'mlflow.user': 'fmind', 'mlflow.source.name':... 5.424 \n", + "3 {'mlflow.user': 'fmind', 'mlflow.source.name':... 4.606 \n", + "4 {'mlflow.user': 'fmind', 'mlflow.source.name':... 25.996 \n", "\n", " mlflow.user mlflow.source.name mlflow.source.type \\\n", "0 fmind file:///home/fmind/mlops-python-package PROJECT \n", @@ -451,11 +445,11 @@ "4 fmind file:///home/fmind/mlops-python-package PROJECT \n", "\n", " mlflow.project.entryPoint mlflow.source.git.commit \\\n", - "0 main ee17d0a9de59efd2eb99d667786ac417ec8b3b63 \n", - "1 main ee17d0a9de59efd2eb99d667786ac417ec8b3b63 \n", - "2 main ee17d0a9de59efd2eb99d667786ac417ec8b3b63 \n", - "3 main ee17d0a9de59efd2eb99d667786ac417ec8b3b63 \n", - "4 main ee17d0a9de59efd2eb99d667786ac417ec8b3b63 \n", + "0 main 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c \n", + "1 main 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c \n", + "2 main 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c \n", + "3 main 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c \n", + "4 main 1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c \n", "\n", " mlflow.source.git.repoURL \\\n", "0 git@github.com:fmind/mlops-python-package \n", @@ -471,19 +465,12 @@ "3 git@github.com:fmind/mlops-python-package Promotion \n", "4 git@github.com:fmind/mlops-python-package Training \n", "\n", - " mlflow.project.env mlflow.project.backend \\\n", - "0 virtualenv local \n", - "1 virtualenv local \n", - "2 virtualenv local \n", - "3 virtualenv local \n", - "4 virtualenv local \n", - "\n", - " mlflow.datasets estimator_name \\\n", - "0 NaN NaN \n", - "1 [{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"h... NaN \n", - "2 NaN NaN \n", - "3 NaN NaN \n", - "4 NaN Pipeline \n", + " mlflow.project.env mlflow.project.backend estimator_name \\\n", + "0 virtualenv local NaN \n", + "1 virtualenv local NaN \n", + "2 virtualenv local NaN \n", + "3 virtualenv local NaN \n", + "4 virtualenv local Pipeline \n", "\n", " estimator_class \\\n", "0 NaN \n", @@ -497,7 +484,7 @@ "1 NaN NaN \n", "2 NaN NaN \n", "3 NaN NaN \n", - "4 [{\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\"... NaN \n", + "4 [{\"run_id\": \"4753bf6b106845d19eca79b7cb329343\"... NaN \n", "\n", " mlflow.parentRunId \n", "0 NaN \n", @@ -523,9 +510,11 @@ "runs = pd.DataFrame(runs).assign(\n", " end_time=lambda data: pd.to_datetime(data[\"end_time\"], unit=\"ms\"),\n", " start_time=lambda data: pd.to_datetime(data[\"start_time\"], unit=\"ms\"),\n", - " run_time_secs=lambda data: (data['end_time'] - data['start_time']).map(lambda t: t.total_seconds()),\n", + " run_time_secs=lambda data: (data[\"end_time\"] - data[\"start_time\"]).map(\n", + " lambda t: t.total_seconds()\n", + " ),\n", ")\n", - "runs = pd.concat([runs, pd.json_normalize(runs['tags'])], axis=\"columns\")\n", + "runs = pd.concat([runs, pd.json_normalize(runs[\"tags\"])], axis=\"columns\")\n", "print(runs.shape)\n", "runs.head()" ] @@ -574,10 +563,10 @@ " \n", " \n", " 0\n", - " {'Champion': '2'}\n", - " 2024-07-21 15:03:06.208\n", + " {'Champion': '3'}\n", + " 2024-12-14 14:37:45.482\n", " \n", - " 2024-07-21 15:30:56.443\n", + " 2024-12-14 14:41:56.590\n", " bikes\n", " {}\n", " \n", @@ -587,10 +576,10 @@ ], "text/plain": [ " aliases creation_timestamp description \\\n", - "0 {'Champion': '2'} 2024-07-21 15:03:06.208 \n", + "0 {'Champion': '3'} 2024-12-14 14:37:45.482 \n", "\n", " last_updated_timestamp name tags \n", - "0 2024-07-21 15:30:56.443 bikes {} " + "0 2024-12-14 14:41:56.590 bikes {} " ] }, "execution_count": 7, @@ -603,10 +592,16 @@ " max_results=MAX_RESULTS, order_by=[\"creation_timestamp DESC\"]\n", ")\n", "models = [dict(model) for model in models]\n", - "models = pd.DataFrame(models).assign(\n", - " creation_timestamp=lambda data: pd.to_datetime(data[\"creation_timestamp\"], unit=\"ms\"),\n", - " last_updated_timestamp=lambda data: pd.to_datetime(data[\"last_updated_timestamp\"], unit=\"ms\"),\n", - ").drop(columns=['latest_versions'])\n", + "models = (\n", + " pd.DataFrame(models)\n", + " .assign(\n", + " creation_timestamp=lambda data: pd.to_datetime(data[\"creation_timestamp\"], unit=\"ms\"),\n", + " last_updated_timestamp=lambda data: pd.to_datetime(\n", + " data[\"last_updated_timestamp\"], unit=\"ms\"\n", + " ),\n", + " )\n", + " .drop(columns=[\"latest_versions\"])\n", + ")\n", "print(models.shape)\n", "models" ] @@ -620,7 +615,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "(2, 14)\n" + "(3, 14)\n" ] }, { @@ -664,29 +659,46 @@ " \n", " 0\n", " Champion\n", - " 2024-07-21 15:30:44.679\n", + " 2024-12-14 14:41:48.936\n", " None\n", " \n", - " 2024-07-21 15:30:44.679\n", + " 2024-12-14 14:41:48.936\n", " bikes\n", - " a75ea3e9742c48fd9c34a5b8abf9bd89\n", + " 4753bf6b106845d19eca79b7cb329343\n", " \n", " file:///home/fmind/mlops-python-package/mlruns...\n", " READY\n", " \n", " {}\n", " \n", - " 2\n", + " 3\n", " \n", " \n", " 1\n", " None\n", - " 2024-07-21 15:03:06.212\n", + " 2024-12-14 14:39:49.417\n", + " None\n", + " \n", + " 2024-12-14 14:39:49.417\n", + " bikes\n", + " ae9f673f6b264240bb79ffd94ca49fe2\n", + " \n", + " file:///home/fmind/mlops-python-package/mlruns...\n", + " READY\n", + " \n", + " {}\n", + " \n", + " 2\n", + " \n", + " \n", + " 2\n", + " None\n", + " 2024-12-14 14:37:45.487\n", " None\n", " \n", - " 2024-07-21 15:03:06.212\n", + " 2024-12-14 14:37:45.487\n", " bikes\n", - " 47302e957d8542198a281aad07b2413b\n", + " d2aed973c12b475f849743599f7bc973\n", " \n", " file:///home/fmind/mlops-python-package/mlruns...\n", " READY\n", @@ -701,20 +713,24 @@ ], "text/plain": [ " aliases creation_timestamp current_stage description \\\n", - "0 Champion 2024-07-21 15:30:44.679 None \n", - "1 None 2024-07-21 15:03:06.212 None \n", + "0 Champion 2024-12-14 14:41:48.936 None \n", + "1 None 2024-12-14 14:39:49.417 None \n", + "2 None 2024-12-14 14:37:45.487 None \n", "\n", " last_updated_timestamp name run_id run_link \\\n", - "0 2024-07-21 15:30:44.679 bikes a75ea3e9742c48fd9c34a5b8abf9bd89 \n", - "1 2024-07-21 15:03:06.212 bikes 47302e957d8542198a281aad07b2413b \n", + "0 2024-12-14 14:41:48.936 bikes 4753bf6b106845d19eca79b7cb329343 \n", + "1 2024-12-14 14:39:49.417 bikes ae9f673f6b264240bb79ffd94ca49fe2 \n", + "2 2024-12-14 14:37:45.487 bikes d2aed973c12b475f849743599f7bc973 \n", "\n", " source status status_message \\\n", "0 file:///home/fmind/mlops-python-package/mlruns... READY \n", "1 file:///home/fmind/mlops-python-package/mlruns... READY \n", + "2 file:///home/fmind/mlops-python-package/mlruns... READY \n", "\n", " tags user_id version \n", - "0 {} 2 \n", - "1 {} 1 " + "0 {} 3 \n", + "1 {} 2 \n", + "2 {} 1 " ] }, "execution_count": 8, @@ -728,7 +744,7 @@ ")\n", "versions = [dict(version) for version in versions]\n", "versions = pd.DataFrame(versions).assign(\n", - " aliases=lambda data: data['aliases'].map(lambda x: x[0] if len(x) else None),\n", + " aliases=lambda data: data[\"aliases\"].map(lambda x: x[0] if len(x) else None),\n", " creation_timestamp=lambda data: pd.to_datetime(data[\"creation_timestamp\"], unit=\"ms\"),\n", " last_updated_timestamp=lambda data: pd.to_datetime(data[\"last_updated_timestamp\"], unit=\"ms\"),\n", ")\n", @@ -760,9 +776,9 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652", - "598443335336095652", - "2024-07-21T15:02:02.224000", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583", + "300971336194126583", + "2024-12-14T14:35:02.439000", "active", "bikes", {} @@ -788,7 +804,7 @@ "showlegend": true, "type": "box", "x": [ - "2024-07-21T15:02:02.224000" + "2024-12-14T14:35:02.439000" ], "x0": " ", "xaxis": "x", @@ -1676,10 +1692,10 @@ "customdata": [ [ { - "Champion": "2" + "Champion": "3" }, "", - "2024-07-21T15:30:56.443000", + "2024-12-14T14:41:56.590000", "bikes", {} ] @@ -1704,7 +1720,7 @@ "showlegend": false, "type": "box", "x": [ - "2024-07-21T15:03:06.208000" + "2024-12-14T14:37:45.482000" ], "x0": " ", "xaxis": "x", @@ -2588,10 +2604,10 @@ "customdata": [ [ { - "Champion": "2" + "Champion": "3" }, "", - "2024-07-21T15:30:56.443000", + "2024-12-14T14:41:56.590000", "bikes", {} ] @@ -2616,7 +2632,7 @@ "showlegend": false, "type": "box", "x": [ - "2024-07-21T15:03:06.208000" + "2024-12-14T14:37:45.482000" ], "x0": " ", "xaxis": "x", @@ -3502,11 +3518,26 @@ "Champion", "None", "", - "2024-07-21T15:30:44.679000", + "2024-12-14T14:41:48.936000", + "bikes", + "4753bf6b106845d19eca79b7cb329343", + "", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/4753bf6b106845d19eca79b7cb329343/artifacts/model", + "READY", + "", + {}, + "", + "3" + ], + [ + null, + "None", + "", + "2024-12-14T14:39:49.417000", "bikes", - "a75ea3e9742c48fd9c34a5b8abf9bd89", + "ae9f673f6b264240bb79ffd94ca49fe2", "", - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/a75ea3e9742c48fd9c34a5b8abf9bd89/artifacts/model", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/ae9f673f6b264240bb79ffd94ca49fe2/artifacts/model", "READY", "", {}, @@ -3517,11 +3548,11 @@ null, "None", "", - "2024-07-21T15:03:06.212000", + "2024-12-14T14:37:45.487000", "bikes", - "47302e957d8542198a281aad07b2413b", + "d2aed973c12b475f849743599f7bc973", "", - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/47302e957d8542198a281aad07b2413b/artifacts/model", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/d2aed973c12b475f849743599f7bc973/artifacts/model", "READY", "", {}, @@ -3533,6 +3564,7 @@ "hoveron": "points", "hovertemplate": "%{hovertext}

name=%{customdata[4]}
creation_timestamp=%{x}
aliases=%{customdata[0]}
current_stage=%{customdata[1]}
description=%{customdata[2]}
last_updated_timestamp=%{customdata[3]}
run_id=%{customdata[5]}
run_link=%{customdata[6]}
source=%{customdata[7]}
status=%{customdata[8]}
status_message=%{customdata[9]}
tags=%{customdata[10]}
user_id=%{customdata[11]}
version=%{customdata[12]}", "hovertext": [ + "bikes", "bikes", "bikes" ], @@ -3550,8 +3582,9 @@ "showlegend": true, "type": "box", "x": [ - "2024-07-21T15:30:44.679000", - "2024-07-21T15:03:06.212000" + "2024-12-14T14:41:48.936000", + "2024-12-14T14:39:49.417000", + "2024-12-14T14:37:45.487000" ], "x0": " ", "xaxis": "x", @@ -4438,13 +4471,13 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/4df1e5931159491c963f2252add508cd/artifacts", - "2024-07-21T15:31:53.829000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/9923cb99c1824857b68c0bedb63f8446/artifacts", + "2024-12-14T14:42:28.056000", + "300971336194126583", "active", - "4df1e5931159491c963f2252add508cd", + "9923cb99c1824857b68c0bedb63f8446", "Explanations", - "4df1e5931159491c963f2252add508cd", + "9923cb99c1824857b68c0bedb63f8446", "FINISHED", "fmind", {}, @@ -4457,18 +4490,18 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Explanations", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 33.622, + 11.979, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Explanations", @@ -4478,58 +4511,55 @@ null, null, null, - null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/e993a53ee04e4357bad5cec101ab4031/artifacts", - "2024-07-21T15:31:13.361000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/bfce074e34834054b84e5794450a4fa2/artifacts", + "2024-12-14T14:42:13.733000", + "300971336194126583", "active", - "e993a53ee04e4357bad5cec101ab4031", + "bfce074e34834054b84e5794450a4fa2", "Evaluations", - "e993a53ee04e4357bad5cec101ab4031", + "bfce074e34834054b84e5794450a4fa2", "FINISHED", "fmind", { "example_count": 13903, "max_error": 4294967295, - "mean_absolute_error": 2044457567.3205063, - "mean_absolute_percentage_error": 55189262.03890929, + "mean_absolute_error": 1959503528.083579, + "mean_absolute_percentage_error": 23650884.88200852, "mean_on_target": 174.63914263108683, - "mean_squared_error": 296.66338200388407, - "r2_score": 0.9893562621162568, - "root_mean_squared_error": 17.223918892165166, + "mean_squared_error": 4.060274760842984, + "r2_score": 0.9998543247906146, + "root_mean_squared_error": 2.0150123475658863, "sum_on_target": 2428008 }, { "conf_file": "confs/evaluations.yaml" }, { - "mlflow.datasets": "[{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"hash\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"model\":\"06840f30fcdd4553a7aaf17e83232475\"}]", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Evaluations", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 5.796, + 6.245, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Evaluations", "virtualenv", "local", - "[{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"hash\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"model\":\"06840f30fcdd4553a7aaf17e83232475\"}]", null, null, null, @@ -4537,13 +4567,13 @@ null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/c17b893e525b44ed89e349421e72510a/artifacts", - "2024-07-21T15:31:04.758000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/5ebe28d67ed54300a177eb61825a6688/artifacts", + "2024-12-14T14:42:05.031000", + "300971336194126583", "active", - "c17b893e525b44ed89e349421e72510a", + "5ebe28d67ed54300a177eb61825a6688", "Inference", - "c17b893e525b44ed89e349421e72510a", + "5ebe28d67ed54300a177eb61825a6688", "FINISHED", "fmind", {}, @@ -4556,18 +4586,18 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Inference", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 5.735, + 5.424, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Inference", @@ -4577,17 +4607,16 @@ null, null, null, - null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/d538cc2f3f644b6e97b611c1d96801ac/artifacts", - "2024-07-21T15:30:56.969000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/f29b930df5a54f1fa9ec5fe4b27df8b9/artifacts", + "2024-12-14T14:41:57.245000", + "300971336194126583", "active", - "d538cc2f3f644b6e97b611c1d96801ac", + "f29b930df5a54f1fa9ec5fe4b27df8b9", "Promotion", - "d538cc2f3f644b6e97b611c1d96801ac", + "f29b930df5a54f1fa9ec5fe4b27df8b9", "FINISHED", "fmind", {}, @@ -4600,18 +4629,18 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Promotion", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 5.375, + 4.606, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Promotion", @@ -4621,34 +4650,33 @@ null, null, null, - null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/a75ea3e9742c48fd9c34a5b8abf9bd89/artifacts", - "2024-07-21T15:30:46.302000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/4753bf6b106845d19eca79b7cb329343/artifacts", + "2024-12-14T14:41:49.910000", + "300971336194126583", "active", - "a75ea3e9742c48fd9c34a5b8abf9bd89", + "4753bf6b106845d19eca79b7cb329343", "Training", - "a75ea3e9742c48fd9c34a5b8abf9bd89", + "4753bf6b106845d19eca79b7cb329343", "FINISHED", "fmind", { - "mean_squared_error": -1786.7527777777777, - "system/cpu_utilization_percentage": 38.1, - "system/disk_available_megabytes": 32585.5, - "system/disk_usage_megabytes": 73526.3, - "system/disk_usage_percentage": 69.3, - "system/network_receive_megabytes": 0.02063199999997778, - "system/network_transmit_megabytes": 0.00015000000007603376, - "system/system_memory_usage_megabytes": 10535.7, - "system/system_memory_usage_percentage": 69.8, - "training_mean_absolute_error": 6.8051192198812736, - "training_mean_squared_error": 124.51054615575788, - "training_r2_score": 0.9948851411922456, - "training_root_mean_squared_error": 11.158429376742852, - "training_score": 0.9948851411922456 + "mean_squared_error": -24.55763888888889, + "system/cpu_utilization_percentage": 14.3, + "system/disk_available_megabytes": 7454.1, + "system/disk_usage_megabytes": 108457.2, + "system/disk_usage_percentage": 93.6, + "system/network_receive_megabytes": 0, + "system/network_transmit_megabytes": 0, + "system/system_memory_usage_megabytes": 4700.3, + "system/system_memory_usage_percentage": 31.2, + "training_mean_absolute_error": 0.3561289343195786, + "training_mean_squared_error": 1.2806655854526316, + "training_r2_score": 0.9999473906118655, + "training_root_mean_squared_error": 1.1316649616616359, + "training_score": 0.9999473906118655 }, { "conf_file": "confs/training.yaml", @@ -4672,8 +4700,8 @@ "regressor__random_state": "42", "regressor__verbose": "0", "regressor__warm_start": "False", - "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", - "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual'])])", + "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", + "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])", "transformer__categoricals": "OneHotEncoder(handle_unknown='ignore', sparse_output=False)", "transformer__categoricals__categories": "auto", "transformer__categoricals__drop": "None", @@ -4683,12 +4711,13 @@ "transformer__categoricals__max_categories": "None", "transformer__categoricals__min_frequency": "None", "transformer__categoricals__sparse_output": "False", + "transformer__force_int_remainder_cols": "True", "transformer__n_jobs": "None", "transformer__numericals": "passthrough", "transformer__remainder": "drop", "transformer__sparse_threshold": "0.3", "transformer__transformer_weights": "None", - "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual'])]", + "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual', 'registered'])]", "transformer__verbose": "False", "transformer__verbose_feature_names_out": "True", "verbose": "False" @@ -4697,125 +4726,55 @@ "estimator_class": "sklearn.pipeline.Pipeline", "estimator_name": "Pipeline", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.log-model.history": "[{\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:30:23.365959\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"ade01433a8a54ec298de322ba009fa10\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"tensor\\\", \\\"tensor-spec\\\": {\\\"dtype\\\": \\\"float64\\\", \\\"shape\\\": [-1]}}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 203898413}, {\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:30:35.571973\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.0.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}, \"model_uuid\": \"06840f30fcdd4553a7aaf17e83232475\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 205599260}]", + "mlflow.log-model.history": "[{\"run_id\": \"4753bf6b106845d19eca79b7cb329343\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:38.398638\", \"model_uuid\": \"77e276c4bf79429ca932062f2825649b\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"4753bf6b106845d19eca79b7cb329343\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:42.667182\", \"model_uuid\": \"50dd5f99ebb944c7a02879fd4dc8d43c\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Training", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 80.807, + 25.996, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Training", "virtualenv", "local", - null, "Pipeline", "sklearn.pipeline.Pipeline", - "[{\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:30:23.365959\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"ade01433a8a54ec298de322ba009fa10\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"tensor\\\", \\\"tensor-spec\\\": {\\\"dtype\\\": \\\"float64\\\", \\\"shape\\\": [-1]}}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 203898413}, {\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:30:35.571973\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.0.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}, \"model_uuid\": \"06840f30fcdd4553a7aaf17e83232475\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 205599260}]", - null, - null - ], - [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/005e2f5532664a7aa7aafaa1509c3575/artifacts", - "2024-07-21T15:29:11.193000", - "598443335336095652", - "active", - "005e2f5532664a7aa7aafaa1509c3575", - "Tuning", - "005e2f5532664a7aa7aafaa1509c3575", - "FINISHED", - "fmind", - { - "best_cv_score": -5517.252604166667, - "system/cpu_utilization_percentage": 47.2, - "system/disk_available_megabytes": 34093.7, - "system/disk_usage_megabytes": 71913, - "system/disk_usage_percentage": 67.8, - "system/network_receive_megabytes": 254.222282, - "system/network_transmit_megabytes": 507.10717, - "system/system_memory_usage_megabytes": 8470.1, - "system/system_memory_usage_percentage": 56.2, - "training_score": -1951.0630079838884 - }, - { - "best_max_depth": "7", - "conf_file": "confs/tuning.yaml", - "cv": "KIND='TimeSeriesSplitter' gap=0 n_splits=4 test_size=1440", - "error_score": "raise", - "estimator": "KIND='BaselineSklearnModel' max_depth=20 n_estimators=200 random_state=42", - "n_jobs": "None", - "param_grid": "{'max_depth': [3, 5, 7]}", - "pre_dispatch": "2*n_jobs", - "refit": "True", - "return_train_score": "False", - "scoring": "", - "verbose": "3" - }, - { - "estimator_class": "sklearn.model_selection._search.GridSearchCV", - "estimator_name": "GridSearchCV", - "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.log-model.history": "[{\"run_id\": \"005e2f5532664a7aa7aafaa1509c3575\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:28:24.521733\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"c800dd5b2d1f49ce98281338d9abbd29\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3726525}, {\"run_id\": \"005e2f5532664a7aa7aafaa1509c3575\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-07-21 15:28:50.044236\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"acb76eef9e5e4a56aa84e634b7d7444c\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3713919}]", - "mlflow.project.backend": "local", - "mlflow.project.entryPoint": "main", - "mlflow.project.env": "virtualenv", - "mlflow.runName": "Tuning", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.source.name": "file:///home/fmind/mlops-python-package", - "mlflow.source.type": "PROJECT", - "mlflow.user": "fmind" - }, - 100.111, - "fmind", - "file:///home/fmind/mlops-python-package", - "PROJECT", - "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - "git@github.com:fmind/mlops-python-package", - "git@github.com:fmind/mlops-python-package", - "Tuning", - "virtualenv", - "local", - null, - "GridSearchCV", - "sklearn.model_selection._search.GridSearchCV", - "[{\"run_id\": \"005e2f5532664a7aa7aafaa1509c3575\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:28:24.521733\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"c800dd5b2d1f49ce98281338d9abbd29\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3726525}, {\"run_id\": \"005e2f5532664a7aa7aafaa1509c3575\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-07-21 15:28:50.044236\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"acb76eef9e5e4a56aa84e634b7d7444c\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3713919}]", + "[{\"run_id\": \"4753bf6b106845d19eca79b7cb329343\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:38.398638\", \"model_uuid\": \"77e276c4bf79429ca932062f2825649b\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"4753bf6b106845d19eca79b7cb329343\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:42.667182\", \"model_uuid\": \"50dd5f99ebb944c7a02879fd4dc8d43c\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/9867f954f07b448a901844dae9fb8d23/artifacts", - "2024-07-21T15:29:05.256000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/066cf65cd3214378a7675e2536c6eb60/artifacts", + "2024-12-14T14:41:20.607000", + "300971336194126583", "active", - "9867f954f07b448a901844dae9fb8d23", - "rumbling-bass-180", - "9867f954f07b448a901844dae9fb8d23", + "066cf65cd3214378a7675e2536c6eb60", + "wise-hound-335", + "066cf65cd3214378a7675e2536c6eb60", "FINISHED", "fmind", { - "mean_fit_time": 1.2907636165618896, - "mean_score_time": 0.04417002201080322, - "mean_test_score": -16644.957118055558, - "rank_test_score": 3, - "std_fit_time": 0.20825952588936553, - "std_score_time": 0.005795796359843565, - "std_test_score": 5315.459715152708 + "mean_fit_time": 2.2717891335487366, + "mean_score_time": 0.04655104875564575, + "mean_test_score": -711.7982638888889, + "rank_test_score": 2, + "std_fit_time": 0.2744423843818404, + "std_score_time": 0.0008752424197515631, + "std_test_score": 506.2583283876414 }, { - "max_depth": "3", + "max_depth": "5", "n_estimators": "200", "random_state": "42" }, @@ -4823,52 +4782,51 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "005e2f5532664a7aa7aafaa1509c3575", - "mlflow.runName": "rumbling-bass-180", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "6f68ed7fee59407f83bff115536fdfc0", + "mlflow.runName": "wise-hound-335", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" }, - 94.174, + 46.191, "fmind", "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, null, - "rumbling-bass-180", - null, + "wise-hound-335", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "005e2f5532664a7aa7aafaa1509c3575" + "6f68ed7fee59407f83bff115536fdfc0" ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/9b9c55b6f0874d0eb97963fff97c172c/artifacts", - "2024-07-21T15:29:05.256000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/0cdfaf5a0e7b44ea88d7297746e6af1f/artifacts", + "2024-12-14T14:41:20.607000", + "300971336194126583", "active", - "9b9c55b6f0874d0eb97963fff97c172c", - "redolent-koi-314", - "9b9c55b6f0874d0eb97963fff97c172c", + "0cdfaf5a0e7b44ea88d7297746e6af1f", + "auspicious-fly-358", + "0cdfaf5a0e7b44ea88d7297746e6af1f", "FINISHED", "fmind", { - "mean_fit_time": 1.8935438394546509, - "mean_score_time": 0.04412144422531128, - "mean_test_score": -8287.860416666666, - "rank_test_score": 2, - "std_fit_time": 0.35395270632391435, - "std_score_time": 0.001845193435988503, - "std_test_score": 1045.7595024691313 + "mean_fit_time": 3.0942174792289734, + "mean_score_time": 0.054158151149749756, + "mean_test_score": -319.5045138888889, + "rank_test_score": 1, + "std_fit_time": 0.41821529328335627, + "std_score_time": 0.0011713553122119475, + "std_test_score": 350.4638291591938 }, { - "max_depth": "5", + "max_depth": "7", "n_estimators": "200", "random_state": "42" }, @@ -4876,52 +4834,119 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "005e2f5532664a7aa7aafaa1509c3575", - "mlflow.runName": "redolent-koi-314", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "6f68ed7fee59407f83bff115536fdfc0", + "mlflow.runName": "auspicious-fly-358", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" }, - 94.174, + 46.191, "fmind", "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, - "redolent-koi-314", null, + "auspicious-fly-358", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "005e2f5532664a7aa7aafaa1509c3575" + "6f68ed7fee59407f83bff115536fdfc0" ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/b8cf5f33d9ac429fab195d32a9326725/artifacts", - "2024-07-21T15:29:05.256000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/6f68ed7fee59407f83bff115536fdfc0/artifacts", + "2024-12-14T14:41:21.575000", + "300971336194126583", "active", - "b8cf5f33d9ac429fab195d32a9326725", - "languid-eel-151", - "b8cf5f33d9ac429fab195d32a9326725", + "6f68ed7fee59407f83bff115536fdfc0", + "Tuning", + "6f68ed7fee59407f83bff115536fdfc0", "FINISHED", "fmind", { - "mean_fit_time": 4.7537882924079895, - "mean_score_time": 0.1421765685081482, - "mean_test_score": -5517.252604166667, - "rank_test_score": 1, - "std_fit_time": 3.0094242269462623, - "std_score_time": 0.10171904359731292, - "std_test_score": 1613.520146542553 + "best_cv_score": -319.5045138888889, + "system/cpu_utilization_percentage": 13.8, + "system/disk_available_megabytes": 7460.8, + "system/disk_usage_megabytes": 108450.2, + "system/disk_usage_percentage": 93.6, + "system/network_receive_megabytes": 0.1935390000001007, + "system/network_transmit_megabytes": 0.2145869999999377, + "system/system_memory_usage_megabytes": 4516.7, + "system/system_memory_usage_percentage": 30, + "training_score": -25.253110839387183 }, { - "max_depth": "7", + "best_max_depth": "7", + "conf_file": "confs/tuning.yaml", + "cv": "KIND='TimeSeriesSplitter' gap=0 n_splits=4 test_size=1440", + "error_score": "raise", + "estimator": "KIND='BaselineSklearnModel' max_depth=20 n_estimators=200 random_state=42", + "n_jobs": "None", + "param_grid": "{'max_depth': [3, 5, 7]}", + "pre_dispatch": "2*n_jobs", + "refit": "True", + "return_train_score": "False", + "scoring": "", + "verbose": "3" + }, + { + "estimator_class": "sklearn.model_selection._search.GridSearchCV", + "estimator_name": "GridSearchCV", + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.log-model.history": "[{\"run_id\": \"6f68ed7fee59407f83bff115536fdfc0\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:11.433265\", \"model_uuid\": \"77b9177b6a914d2d83f8c6062bcaa438\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"6f68ed7fee59407f83bff115536fdfc0\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:41:16.492519\", \"model_uuid\": \"862871d930c845ec882f4b82890fc495\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Tuning", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + 47.159, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Tuning", + "virtualenv", + "local", + "GridSearchCV", + "sklearn.model_selection._search.GridSearchCV", + "[{\"run_id\": \"6f68ed7fee59407f83bff115536fdfc0\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:11.433265\", \"model_uuid\": \"77b9177b6a914d2d83f8c6062bcaa438\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"6f68ed7fee59407f83bff115536fdfc0\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:41:16.492519\", \"model_uuid\": \"862871d930c845ec882f4b82890fc495\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", + null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/e3975321ef4645b698cd8832a2ead79d/artifacts", + "2024-12-14T14:41:20.607000", + "300971336194126583", + "active", + "e3975321ef4645b698cd8832a2ead79d", + "lyrical-asp-40", + "e3975321ef4645b698cd8832a2ead79d", + "FINISHED", + "fmind", + { + "mean_fit_time": 1.5403740406036377, + "mean_score_time": 0.04439198970794678, + "mean_test_score": -2845.011111111111, + "rank_test_score": 3, + "std_fit_time": 0.26986769561457347, + "std_score_time": 0.0011455098275932603, + "std_test_score": 1362.0703338739036 + }, + { + "max_depth": "3", "n_estimators": "200", "random_state": "42" }, @@ -4929,39 +4954,38 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "005e2f5532664a7aa7aafaa1509c3575", - "mlflow.runName": "languid-eel-151", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "6f68ed7fee59407f83bff115536fdfc0", + "mlflow.runName": "lyrical-asp-40", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" }, - 94.174, + 46.191, "fmind", "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, null, - "languid-eel-151", - null, + "lyrical-asp-40", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "005e2f5532664a7aa7aafaa1509c3575" + "6f68ed7fee59407f83bff115536fdfc0" ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/5936b0cb0d9b47b2a1862344a79e55e7/artifacts", - "2024-07-21T15:04:07.438000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/149bc47563a94ae5bc05bbcb7853c122/artifacts", + "2024-12-14T14:40:29.333000", + "300971336194126583", "active", - "5936b0cb0d9b47b2a1862344a79e55e7", + "149bc47563a94ae5bc05bbcb7853c122", "Explanations", - "5936b0cb0d9b47b2a1862344a79e55e7", + "149bc47563a94ae5bc05bbcb7853c122", "FINISHED", "fmind", {}, @@ -4974,18 +4998,18 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Explanations", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 39.107, + 12.229, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Explanations", @@ -4995,58 +5019,55 @@ null, null, null, - null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/ef5b224b3f4e4dbcb05169cfc4f358f7/artifacts", - "2024-07-21T15:03:25.782000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/534a4ff3a1b04ae3b7c5c5e5295b87a8/artifacts", + "2024-12-14T14:40:14.595000", + "300971336194126583", "active", - "ef5b224b3f4e4dbcb05169cfc4f358f7", + "534a4ff3a1b04ae3b7c5c5e5295b87a8", "Evaluations", - "ef5b224b3f4e4dbcb05169cfc4f358f7", + "534a4ff3a1b04ae3b7c5c5e5295b87a8", "FINISHED", "fmind", { "example_count": 13903, "max_error": 4294967295, - "mean_absolute_error": 2044457567.3205063, - "mean_absolute_percentage_error": 55189262.03890929, + "mean_absolute_error": 1959503528.083579, + "mean_absolute_percentage_error": 23650884.88200852, "mean_on_target": 174.63914263108683, - "mean_squared_error": 296.66338200388407, - "r2_score": 0.9893562621162568, - "root_mean_squared_error": 17.223918892165166, + "mean_squared_error": 4.060274760842984, + "r2_score": 0.9998543247906146, + "root_mean_squared_error": 2.0150123475658863, "sum_on_target": 2428008 }, { "conf_file": "confs/evaluations.yaml" }, { - "mlflow.datasets": "[{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"hash\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"model\":\"c18c304506ec438c9937a5804b4e19bc\"}]", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Evaluations", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 6.145, + 6.616, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Evaluations", "virtualenv", "local", - "[{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"hash\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"model\":\"c18c304506ec438c9937a5804b4e19bc\"}]", null, null, null, @@ -5054,13 +5075,13 @@ null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/65f34c799e814cfe82d844b0eff6a16f/artifacts", - "2024-07-21T15:03:18.035000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/4a629039b6c84ad3947f7529f9a28e21/artifacts", + "2024-12-14T14:40:05.598000", + "300971336194126583", "active", - "65f34c799e814cfe82d844b0eff6a16f", + "4a629039b6c84ad3947f7529f9a28e21", "Inference", - "65f34c799e814cfe82d844b0eff6a16f", + "4a629039b6c84ad3947f7529f9a28e21", "FINISHED", "fmind", {}, @@ -5073,18 +5094,18 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Inference", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 4.182, + 5.034, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Inference", @@ -5094,17 +5115,16 @@ null, null, null, - null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/a5dbcb3fc6a24fdc863fb31eb0fc4d7a/artifacts", - "2024-07-21T15:03:12.321000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/e20be51c8bbb4cfb98ad440209dd2ea6/artifacts", + "2024-12-14T14:39:58.173000", + "300971336194126583", "active", - "a5dbcb3fc6a24fdc863fb31eb0fc4d7a", + "e20be51c8bbb4cfb98ad440209dd2ea6", "Promotion", - "a5dbcb3fc6a24fdc863fb31eb0fc4d7a", + "e20be51c8bbb4cfb98ad440209dd2ea6", "FINISHED", "fmind", {}, @@ -5117,18 +5137,18 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Promotion", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 3.31, + 5.05, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Promotion", @@ -5138,34 +5158,33 @@ null, null, null, - null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/47302e957d8542198a281aad07b2413b/artifacts", - "2024-07-21T15:03:07.098000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/ae9f673f6b264240bb79ffd94ca49fe2/artifacts", + "2024-12-14T14:39:50.546000", + "300971336194126583", "active", - "47302e957d8542198a281aad07b2413b", + "ae9f673f6b264240bb79ffd94ca49fe2", "Training", - "47302e957d8542198a281aad07b2413b", + "ae9f673f6b264240bb79ffd94ca49fe2", "FINISHED", "fmind", { - "mean_squared_error": -1786.7527777777777, - "system/cpu_utilization_percentage": 15.6, - "system/disk_available_megabytes": 35139.3, - "system/disk_usage_megabytes": 70848.1, - "system/disk_usage_percentage": 66.8, - "system/network_receive_megabytes": 0.001855000000034579, - "system/network_transmit_megabytes": 0.003730000000018663, - "system/system_memory_usage_megabytes": 4143.6, - "system/system_memory_usage_percentage": 27.5, - "training_mean_absolute_error": 6.8051192198812736, - "training_mean_squared_error": 124.51054615575788, - "training_r2_score": 0.9948851411922456, - "training_root_mean_squared_error": 11.158429376742852, - "training_score": 0.9948851411922456 + "mean_squared_error": -24.55763888888889, + "system/cpu_utilization_percentage": 14.8, + "system/disk_available_megabytes": 7735.1, + "system/disk_usage_megabytes": 108174.9, + "system/disk_usage_percentage": 93.3, + "system/network_receive_megabytes": 0.006746999999904801, + "system/network_transmit_megabytes": 0.006637000000068838, + "system/system_memory_usage_megabytes": 4542, + "system/system_memory_usage_percentage": 30.1, + "training_mean_absolute_error": 0.3561289343195786, + "training_mean_squared_error": 1.2806655854526316, + "training_r2_score": 0.9999473906118655, + "training_root_mean_squared_error": 1.1316649616616359, + "training_score": 0.9999473906118655 }, { "conf_file": "confs/training.yaml", @@ -5189,8 +5208,8 @@ "regressor__random_state": "42", "regressor__verbose": "0", "regressor__warm_start": "False", - "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", - "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual'])])", + "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", + "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])", "transformer__categoricals": "OneHotEncoder(handle_unknown='ignore', sparse_output=False)", "transformer__categoricals__categories": "auto", "transformer__categoricals__drop": "None", @@ -5200,12 +5219,13 @@ "transformer__categoricals__max_categories": "None", "transformer__categoricals__min_frequency": "None", "transformer__categoricals__sparse_output": "False", + "transformer__force_int_remainder_cols": "True", "transformer__n_jobs": "None", "transformer__numericals": "passthrough", "transformer__remainder": "drop", "transformer__sparse_threshold": "0.3", "transformer__transformer_weights": "None", - "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual'])]", + "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual', 'registered'])]", "transformer__verbose": "False", "transformer__verbose_feature_names_out": "True", "verbose": "False" @@ -5214,56 +5234,107 @@ "estimator_class": "sklearn.pipeline.Pipeline", "estimator_name": "Pipeline", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.log-model.history": "[{\"run_id\": \"47302e957d8542198a281aad07b2413b\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:54.863113\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"4fd09447dee548f586e05d2edbfbe2d8\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"tensor\\\", \\\"tensor-spec\\\": {\\\"dtype\\\": \\\"float64\\\", \\\"shape\\\": [-1]}}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 203898413}, {\"run_id\": \"47302e957d8542198a281aad07b2413b\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:59.278448\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.0.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}, \"model_uuid\": \"c18c304506ec438c9937a5804b4e19bc\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 205599260}]", + "mlflow.log-model.history": "[{\"run_id\": \"ae9f673f6b264240bb79ffd94ca49fe2\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:38.524131\", \"model_uuid\": \"18f54df2a682488593dd0412c7be229e\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"ae9f673f6b264240bb79ffd94ca49fe2\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:42.939094\", \"model_uuid\": \"4cc5e6d8a7d841059b37797a371ea10d\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Training", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 25.008, + 25.986, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Training", "virtualenv", "local", - null, "Pipeline", "sklearn.pipeline.Pipeline", - "[{\"run_id\": \"47302e957d8542198a281aad07b2413b\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:54.863113\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"4fd09447dee548f586e05d2edbfbe2d8\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"tensor\\\", \\\"tensor-spec\\\": {\\\"dtype\\\": \\\"float64\\\", \\\"shape\\\": [-1]}}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 203898413}, {\"run_id\": \"47302e957d8542198a281aad07b2413b\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:59.278448\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.0.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}, \"model_uuid\": \"c18c304506ec438c9937a5804b4e19bc\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 205599260}]", + "[{\"run_id\": \"ae9f673f6b264240bb79ffd94ca49fe2\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:38.524131\", \"model_uuid\": \"18f54df2a682488593dd0412c7be229e\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"ae9f673f6b264240bb79ffd94ca49fe2\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:42.939094\", \"model_uuid\": \"4cc5e6d8a7d841059b37797a371ea10d\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/38a4df3abf194e06b5eeaaa0bb383ee8/artifacts", - "2024-07-21T15:02:40.466000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/71d90d8febd9448584236ff7da490944/artifacts", + "2024-12-14T14:39:21.213000", + "300971336194126583", + "active", + "71d90d8febd9448584236ff7da490944", + "classy-yak-743", + "71d90d8febd9448584236ff7da490944", + "FINISHED", + "fmind", + { + "mean_fit_time": 2.310912549495697, + "mean_score_time": 0.04688429832458496, + "mean_test_score": -711.7982638888889, + "rank_test_score": 2, + "std_fit_time": 0.34795851007651757, + "std_score_time": 0.0015674315113117095, + "std_test_score": 506.2583283876414 + }, + { + "max_depth": "5", + "n_estimators": "200", + "random_state": "42" + }, + { + "estimator_class": "bikes.core.models.BaselineSklearnModel", + "estimator_name": "BaselineSklearnModel", + "mlflow.autologging": "sklearn", + "mlflow.parentRunId": "9c36f396f2214f7bb0c6d9713d5e833e", + "mlflow.runName": "classy-yak-743", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "mlflow.source.type": "LOCAL", + "mlflow.user": "fmind" + }, + 46.567, + "fmind", + "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "LOCAL", + null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + null, + null, + "classy-yak-743", + null, + null, + "BaselineSklearnModel", + "bikes.core.models.BaselineSklearnModel", + null, + "sklearn", + "9c36f396f2214f7bb0c6d9713d5e833e" + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/9c36f396f2214f7bb0c6d9713d5e833e/artifacts", + "2024-12-14T14:39:22.225000", + "300971336194126583", "active", - "38a4df3abf194e06b5eeaaa0bb383ee8", + "9c36f396f2214f7bb0c6d9713d5e833e", "Tuning", - "38a4df3abf194e06b5eeaaa0bb383ee8", + "9c36f396f2214f7bb0c6d9713d5e833e", "FINISHED", "fmind", { - "best_cv_score": -5517.252604166667, - "system/cpu_utilization_percentage": 17.1, - "system/disk_available_megabytes": 35143.4, - "system/disk_usage_megabytes": 70843.7, - "system/disk_usage_percentage": 66.8, - "system/network_receive_megabytes": 0.012593999999978678, - "system/network_transmit_megabytes": 0.006136999999995396, - "system/system_memory_usage_megabytes": 4245, - "system/system_memory_usage_percentage": 28.1, - "training_score": -1951.0630079838884 + "best_cv_score": -319.5045138888889, + "system/cpu_utilization_percentage": 13.7, + "system/disk_available_megabytes": 7735.1, + "system/disk_usage_megabytes": 108174.9, + "system/disk_usage_percentage": 93.3, + "system/network_receive_megabytes": 0.013674000000037267, + "system/network_transmit_megabytes": 0.0075299999999742795, + "system/system_memory_usage_megabytes": 4324.7, + "system/system_memory_usage_percentage": 28.7, + "training_score": -25.253110839387183 }, { "best_max_depth": "7", @@ -5283,56 +5354,55 @@ "estimator_class": "sklearn.model_selection._search.GridSearchCV", "estimator_name": "GridSearchCV", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.log-model.history": "[{\"run_id\": \"38a4df3abf194e06b5eeaaa0bb383ee8\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:33.521812\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"67c6c33385b04cb5ad03402d17d4e377\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3726525}, {\"run_id\": \"38a4df3abf194e06b5eeaaa0bb383ee8\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-07-21 15:02:37.041779\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"301cd67b8f704f2280ce6b59d6846c7c\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3713919}]", + "mlflow.log-model.history": "[{\"run_id\": \"9c36f396f2214f7bb0c6d9713d5e833e\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:11.770616\", \"model_uuid\": \"ba0e722effe1437ba691fb61e730dfb7\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"9c36f396f2214f7bb0c6d9713d5e833e\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:39:16.824355\", \"model_uuid\": \"c561b4012c1445eca99fcd5d7260ad62\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Tuning", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 38.088, + 47.579, "fmind", "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Tuning", "virtualenv", "local", - null, "GridSearchCV", "sklearn.model_selection._search.GridSearchCV", - "[{\"run_id\": \"38a4df3abf194e06b5eeaaa0bb383ee8\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:33.521812\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"67c6c33385b04cb5ad03402d17d4e377\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3726525}, {\"run_id\": \"38a4df3abf194e06b5eeaaa0bb383ee8\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-07-21 15:02:37.041779\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"301cd67b8f704f2280ce6b59d6846c7c\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3713919}]", + "[{\"run_id\": \"9c36f396f2214f7bb0c6d9713d5e833e\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:11.770616\", \"model_uuid\": \"ba0e722effe1437ba691fb61e730dfb7\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"9c36f396f2214f7bb0c6d9713d5e833e\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:39:16.824355\", \"model_uuid\": \"c561b4012c1445eca99fcd5d7260ad62\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/38c04e59e8344096bf574faf63b10cd1/artifacts", - "2024-07-21T15:02:39.624000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/d927facc28d74fbe8d607c7f1656321a/artifacts", + "2024-12-14T14:39:21.213000", + "300971336194126583", "active", - "38c04e59e8344096bf574faf63b10cd1", - "charming-boar-572", - "38c04e59e8344096bf574faf63b10cd1", + "d927facc28d74fbe8d607c7f1656321a", + "legendary-dove-782", + "d927facc28d74fbe8d607c7f1656321a", "FINISHED", "fmind", { - "mean_fit_time": 1.0880586504936218, - "mean_score_time": 0.03774416446685791, - "mean_test_score": -16644.957118055558, - "rank_test_score": 3, - "std_fit_time": 0.15489854371698458, - "std_score_time": 0.001806776770578061, - "std_test_score": 5315.459715152708 + "mean_fit_time": 3.1809995770454407, + "mean_score_time": 0.05519115924835205, + "mean_test_score": -319.5045138888889, + "rank_test_score": 1, + "std_fit_time": 0.4297416271813794, + "std_score_time": 0.002215700766888834, + "std_test_score": 350.4638291591938 }, { - "max_depth": "3", + "max_depth": "7", "n_estimators": "200", "random_state": "42" }, @@ -5340,52 +5410,51 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "38a4df3abf194e06b5eeaaa0bb383ee8", - "mlflow.runName": "charming-boar-572", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "9c36f396f2214f7bb0c6d9713d5e833e", + "mlflow.runName": "legendary-dove-782", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" }, - 37.246, + 46.567, "fmind", "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, - "charming-boar-572", null, + "legendary-dove-782", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "38a4df3abf194e06b5eeaaa0bb383ee8" + "9c36f396f2214f7bb0c6d9713d5e833e" ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/82f77216b8ee4a2d8dc0869d4a6bfc48/artifacts", - "2024-07-21T15:02:39.624000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/dafb45859edf45979643cccb32ea3828/artifacts", + "2024-12-14T14:39:21.213000", + "300971336194126583", "active", - "82f77216b8ee4a2d8dc0869d4a6bfc48", - "luxuriant-bird-233", - "82f77216b8ee4a2d8dc0869d4a6bfc48", + "dafb45859edf45979643cccb32ea3828", + "big-duck-612", + "dafb45859edf45979643cccb32ea3828", "FINISHED", "fmind", { - "mean_fit_time": 2.5814242362976074, - "mean_score_time": 0.04819995164871216, - "mean_test_score": -5517.252604166667, - "rank_test_score": 1, - "std_fit_time": 0.41318261395357886, - "std_score_time": 0.00042696711729265627, - "std_test_score": 1613.520146542553 + "mean_fit_time": 1.4297820329666138, + "mean_score_time": 0.042337894439697266, + "mean_test_score": -2845.011111111111, + "rank_test_score": 3, + "std_fit_time": 0.1887011060177697, + "std_score_time": 0.0005584766538439517, + "std_test_score": 1362.0703338739036 }, { - "max_depth": "7", + "max_depth": "3", "n_estimators": "200", "random_state": "42" }, @@ -5393,140 +5462,612 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "38a4df3abf194e06b5eeaaa0bb383ee8", - "mlflow.runName": "luxuriant-bird-233", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "9c36f396f2214f7bb0c6d9713d5e833e", + "mlflow.runName": "big-duck-612", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" }, - 37.246, + 46.567, "fmind", "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, null, - "luxuriant-bird-233", - null, + "big-duck-612", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "38a4df3abf194e06b5eeaaa0bb383ee8" + "9c36f396f2214f7bb0c6d9713d5e833e" ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/e110400581f846d08f802c970ae25458/artifacts", - "2024-07-21T15:02:39.624000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/422986fde3df4962b0765cdf008a721b/artifacts", + "2024-12-14T14:38:26.878000", + "300971336194126583", "active", - "e110400581f846d08f802c970ae25458", - "capricious-bear-977", - "e110400581f846d08f802c970ae25458", + "422986fde3df4962b0765cdf008a721b", + "Explanations", + "422986fde3df4962b0765cdf008a721b", "FINISHED", "fmind", + {}, { - "mean_fit_time": 1.7571877837181091, - "mean_score_time": 0.0408632755279541, - "mean_test_score": -8287.860416666666, - "rank_test_score": 2, - "std_fit_time": 0.2750353199252692, - "std_score_time": 0.0028638736758093077, - "std_test_score": 1045.7595024691313 - }, - { - "max_depth": "5", - "n_estimators": "200", - "random_state": "42" + "conf_file": "confs/explanations.yaml" }, { - "estimator_class": "bikes.core.models.BaselineSklearnModel", - "estimator_name": "BaselineSklearnModel", - "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "38a4df3abf194e06b5eeaaa0bb383ee8", - "mlflow.runName": "capricious-bear-977", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", - "mlflow.source.type": "LOCAL", + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Explanations", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", "mlflow.user": "fmind" }, - 37.246, + 12.349, "fmind", - "/home/fmind/mlops-python-package/src/bikes/__main__.py", - "LOCAL", - null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - null, - null, - "capricious-bear-977", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Explanations", + "virtualenv", + "local", null, null, null, - "BaselineSklearnModel", - "bikes.core.models.BaselineSklearnModel", null, - "sklearn", - "38a4df3abf194e06b5eeaaa0bb383ee8" - ] - ], - "fillcolor": "rgba(255,255,255,0)", - "hoveron": "points", - "hovertemplate": "%{hovertext}

experiment_id=%{customdata[2]}
start_time=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_name=%{customdata[5]}
run_uuid=%{customdata[6]}
status=%{customdata[7]}
user_id=%{customdata[8]}
metrics=%{customdata[9]}
params=%{customdata[10]}
tags=%{customdata[11]}
run_time_secs=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", - "hovertext": [ - "Explanations", - "Evaluations", - "Inference", - "Promotion", - "Training", - "Tuning", - "rumbling-bass-180", - "redolent-koi-314", - "languid-eel-151", - "Explanations", - "Evaluations", - "Inference", - "Promotion", - "Training", - "Tuning", - "charming-boar-572", - "luxuriant-bird-233", - "capricious-bear-977" - ], - "legendgroup": "598443335336095652", - "line": { + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/b486861e5799446c9bc40c37413acf46/artifacts", + "2024-12-14T14:38:12.143000", + "300971336194126583", + "active", + "b486861e5799446c9bc40c37413acf46", + "Evaluations", + "b486861e5799446c9bc40c37413acf46", + "FINISHED", + "fmind", + { + "example_count": 13903, + "max_error": 4294967295, + "mean_absolute_error": 1959503528.083579, + "mean_absolute_percentage_error": 23650884.88200852, + "mean_on_target": 174.63914263108683, + "mean_squared_error": 4.060274760842984, + "r2_score": 0.9998543247906146, + "root_mean_squared_error": 2.0150123475658863, + "sum_on_target": 2428008 + }, + { + "conf_file": "confs/evaluations.yaml" + }, + { + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Evaluations", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + 6.338, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Evaluations", + "virtualenv", + "local", + null, + null, + null, + null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/dd848a2a73d6469d860c54c519b4cab4/artifacts", + "2024-12-14T14:38:03.147000", + "300971336194126583", + "active", + "dd848a2a73d6469d860c54c519b4cab4", + "Inference", + "dd848a2a73d6469d860c54c519b4cab4", + "FINISHED", + "fmind", + {}, + { + "conf_file": "confs/inference.yaml" + }, + { + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Inference", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + 5.776, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Inference", + "virtualenv", + "local", + null, + null, + null, + null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/a9225f3845ab4da6baf77885d9c75dfd/artifacts", + "2024-12-14T14:37:54.740000", + "300971336194126583", + "active", + "a9225f3845ab4da6baf77885d9c75dfd", + "Promotion", + "a9225f3845ab4da6baf77885d9c75dfd", + "FINISHED", + "fmind", + {}, + { + "conf_file": "confs/promotion.yaml" + }, + { + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Promotion", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + 5.117, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Promotion", + "virtualenv", + "local", + null, + null, + null, + null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/d2aed973c12b475f849743599f7bc973/artifacts", + "2024-12-14T14:37:46.512000", + "300971336194126583", + "active", + "d2aed973c12b475f849743599f7bc973", + "Training", + "d2aed973c12b475f849743599f7bc973", + "FINISHED", + "fmind", + { + "mean_squared_error": -24.55763888888889, + "system/cpu_utilization_percentage": 20.8, + "system/disk_available_megabytes": 8002.4, + "system/disk_usage_megabytes": 107906.7, + "system/disk_usage_percentage": 93.1, + "system/network_receive_megabytes": 0.006799000000000888, + "system/network_transmit_megabytes": 0.004778000000101201, + "system/system_memory_usage_megabytes": 4375.5, + "system/system_memory_usage_percentage": 29, + "training_mean_absolute_error": 0.3561289343195786, + "training_mean_squared_error": 1.2806655854526316, + "training_r2_score": 0.9999473906118655, + "training_root_mean_squared_error": 1.1316649616616359, + "training_score": 0.9999473906118655 + }, + { + "conf_file": "confs/training.yaml", + "memory": "None", + "regressor": "RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42)", + "regressor__bootstrap": "True", + "regressor__ccp_alpha": "0.0", + "regressor__criterion": "squared_error", + "regressor__max_depth": "20", + "regressor__max_features": "1.0", + "regressor__max_leaf_nodes": "None", + "regressor__max_samples": "None", + "regressor__min_impurity_decrease": "0.0", + "regressor__min_samples_leaf": "1", + "regressor__min_samples_split": "2", + "regressor__min_weight_fraction_leaf": "0.0", + "regressor__monotonic_cst": "None", + "regressor__n_estimators": "200", + "regressor__n_jobs": "None", + "regressor__oob_score": "False", + "regressor__random_state": "42", + "regressor__verbose": "0", + "regressor__warm_start": "False", + "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", + "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])", + "transformer__categoricals": "OneHotEncoder(handle_unknown='ignore', sparse_output=False)", + "transformer__categoricals__categories": "auto", + "transformer__categoricals__drop": "None", + "transformer__categoricals__dtype": "", + "transformer__categoricals__feature_name_combiner": "concat", + "transformer__categoricals__handle_unknown": "ignore", + "transformer__categoricals__max_categories": "None", + "transformer__categoricals__min_frequency": "None", + "transformer__categoricals__sparse_output": "False", + "transformer__force_int_remainder_cols": "True", + "transformer__n_jobs": "None", + "transformer__numericals": "passthrough", + "transformer__remainder": "drop", + "transformer__sparse_threshold": "0.3", + "transformer__transformer_weights": "None", + "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual', 'registered'])]", + "transformer__verbose": "False", + "transformer__verbose_feature_names_out": "True", + "verbose": "False" + }, + { + "estimator_class": "sklearn.pipeline.Pipeline", + "estimator_name": "Pipeline", + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.log-model.history": "[{\"run_id\": \"d2aed973c12b475f849743599f7bc973\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:33.468367\", \"model_uuid\": \"e6f77661d7214385a83cc9a45c689a0a\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"d2aed973c12b475f849743599f7bc973\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:38.175626\", \"model_uuid\": \"4b143c2fc8234dac9c98bbdfb03aaa1a\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Training", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + 28.042, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Training", + "virtualenv", + "local", + "Pipeline", + "sklearn.pipeline.Pipeline", + "[{\"run_id\": \"d2aed973c12b475f849743599f7bc973\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:33.468367\", \"model_uuid\": \"e6f77661d7214385a83cc9a45c689a0a\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"d2aed973c12b475f849743599f7bc973\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:38.175626\", \"model_uuid\": \"4b143c2fc8234dac9c98bbdfb03aaa1a\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", + null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/006ccc2cf48e489099b285ab6d538d1a/artifacts", + "2024-12-14T14:37:15.261000", + "300971336194126583", + "active", + "006ccc2cf48e489099b285ab6d538d1a", + "sincere-sow-522", + "006ccc2cf48e489099b285ab6d538d1a", + "FINISHED", + "fmind", + { + "mean_fit_time": 1.635141909122467, + "mean_score_time": 0.04768478870391846, + "mean_test_score": -2845.011111111111, + "rank_test_score": 3, + "std_fit_time": 0.16971366972379937, + "std_score_time": 0.002114185952165752, + "std_test_score": 1362.0703338739036 + }, + { + "max_depth": "3", + "n_estimators": "200", + "random_state": "42" + }, + { + "estimator_class": "bikes.core.models.BaselineSklearnModel", + "estimator_name": "BaselineSklearnModel", + "mlflow.autologging": "sklearn", + "mlflow.parentRunId": "857f0dd0a344439693b8cb9ecbf3ee10", + "mlflow.runName": "sincere-sow-522", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "mlflow.source.type": "LOCAL", + "mlflow.user": "fmind" + }, + 132.755, + "fmind", + "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "LOCAL", + null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + null, + null, + "sincere-sow-522", + null, + null, + "BaselineSklearnModel", + "bikes.core.models.BaselineSklearnModel", + null, + "sklearn", + "857f0dd0a344439693b8cb9ecbf3ee10" + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/44be742accc846c784acacab379cdca3/artifacts", + "2024-12-14T14:37:15.261000", + "300971336194126583", + "active", + "44be742accc846c784acacab379cdca3", + "bittersweet-fowl-631", + "44be742accc846c784acacab379cdca3", + "FINISHED", + "fmind", + { + "mean_fit_time": 2.448797047138214, + "mean_score_time": 0.05008918046951294, + "mean_test_score": -711.7982638888889, + "rank_test_score": 2, + "std_fit_time": 0.33258931824071436, + "std_score_time": 0.0004049252455184904, + "std_test_score": 506.2583283876414 + }, + { + "max_depth": "5", + "n_estimators": "200", + "random_state": "42" + }, + { + "estimator_class": "bikes.core.models.BaselineSklearnModel", + "estimator_name": "BaselineSklearnModel", + "mlflow.autologging": "sklearn", + "mlflow.parentRunId": "857f0dd0a344439693b8cb9ecbf3ee10", + "mlflow.runName": "bittersweet-fowl-631", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "mlflow.source.type": "LOCAL", + "mlflow.user": "fmind" + }, + 132.755, + "fmind", + "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "LOCAL", + null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + null, + null, + "bittersweet-fowl-631", + null, + null, + "BaselineSklearnModel", + "bikes.core.models.BaselineSklearnModel", + null, + "sklearn", + "857f0dd0a344439693b8cb9ecbf3ee10" + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/857f0dd0a344439693b8cb9ecbf3ee10/artifacts", + "2024-12-14T14:37:16.048000", + "300971336194126583", + "active", + "857f0dd0a344439693b8cb9ecbf3ee10", + "Tuning", + "857f0dd0a344439693b8cb9ecbf3ee10", + "FINISHED", + "fmind", + { + "best_cv_score": -319.5045138888889, + "system/cpu_utilization_percentage": 21.5, + "system/disk_available_megabytes": 8003.8, + "system/disk_usage_megabytes": 107904.9, + "system/disk_usage_percentage": 93.1, + "system/network_receive_megabytes": 0.012895999999955166, + "system/network_transmit_megabytes": 0.0012200000001030276, + "system/system_memory_usage_megabytes": 4608.4, + "system/system_memory_usage_percentage": 30.6, + "training_score": -25.253110839387183 + }, + { + "best_max_depth": "7", + "conf_file": "confs/tuning.yaml", + "cv": "KIND='TimeSeriesSplitter' gap=0 n_splits=4 test_size=1440", + "error_score": "raise", + "estimator": "KIND='BaselineSklearnModel' max_depth=20 n_estimators=200 random_state=42", + "n_jobs": "None", + "param_grid": "{'max_depth': [3, 5, 7]}", + "pre_dispatch": "2*n_jobs", + "refit": "True", + "return_train_score": "False", + "scoring": "", + "verbose": "3" + }, + { + "estimator_class": "sklearn.model_selection._search.GridSearchCV", + "estimator_name": "GridSearchCV", + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.log-model.history": "[{\"run_id\": \"857f0dd0a344439693b8cb9ecbf3ee10\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:05.731840\", \"model_uuid\": \"4ada6a336e424391bf2cdf750e2c7042\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"857f0dd0a344439693b8cb9ecbf3ee10\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:37:11.174511\", \"model_uuid\": \"7be250b39fd343ec99975be2a910fb2a\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Tuning", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + 133.542, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Tuning", + "virtualenv", + "local", + "GridSearchCV", + "sklearn.model_selection._search.GridSearchCV", + "[{\"run_id\": \"857f0dd0a344439693b8cb9ecbf3ee10\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:05.731840\", \"model_uuid\": \"4ada6a336e424391bf2cdf750e2c7042\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"857f0dd0a344439693b8cb9ecbf3ee10\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:37:11.174511\", \"model_uuid\": \"7be250b39fd343ec99975be2a910fb2a\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", + null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/e9980ab9c8db4f80a18aadfa47a3e83e/artifacts", + "2024-12-14T14:37:15.261000", + "300971336194126583", + "active", + "e9980ab9c8db4f80a18aadfa47a3e83e", + "smiling-hound-227", + "e9980ab9c8db4f80a18aadfa47a3e83e", + "FINISHED", + "fmind", + { + "mean_fit_time": 3.4514302015304565, + "mean_score_time": 0.060173630714416504, + "mean_test_score": -319.5045138888889, + "rank_test_score": 1, + "std_fit_time": 0.44103751840131455, + "std_score_time": 0.002450930454703554, + "std_test_score": 350.4638291591938 + }, + { + "max_depth": "7", + "n_estimators": "200", + "random_state": "42" + }, + { + "estimator_class": "bikes.core.models.BaselineSklearnModel", + "estimator_name": "BaselineSklearnModel", + "mlflow.autologging": "sklearn", + "mlflow.parentRunId": "857f0dd0a344439693b8cb9ecbf3ee10", + "mlflow.runName": "smiling-hound-227", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "mlflow.source.type": "LOCAL", + "mlflow.user": "fmind" + }, + 132.755, + "fmind", + "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "LOCAL", + null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + null, + null, + "smiling-hound-227", + null, + null, + "BaselineSklearnModel", + "bikes.core.models.BaselineSklearnModel", + null, + "sklearn", + "857f0dd0a344439693b8cb9ecbf3ee10" + ] + ], + "fillcolor": "rgba(255,255,255,0)", + "hoveron": "points", + "hovertemplate": "%{hovertext}

experiment_id=%{customdata[2]}
start_time=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_name=%{customdata[5]}
run_uuid=%{customdata[6]}
status=%{customdata[7]}
user_id=%{customdata[8]}
metrics=%{customdata[9]}
params=%{customdata[10]}
tags=%{customdata[11]}
run_time_secs=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", + "hovertext": [ + "Explanations", + "Evaluations", + "Inference", + "Promotion", + "Training", + "wise-hound-335", + "auspicious-fly-358", + "Tuning", + "lyrical-asp-40", + "Explanations", + "Evaluations", + "Inference", + "Promotion", + "Training", + "classy-yak-743", + "Tuning", + "legendary-dove-782", + "big-duck-612", + "Explanations", + "Evaluations", + "Inference", + "Promotion", + "Training", + "sincere-sow-522", + "bittersweet-fowl-631", + "Tuning", + "smiling-hound-227" + ], + "legendgroup": "300971336194126583", + "line": { "color": "rgba(255,255,255,0)" }, "marker": { "color": "#636efa" }, - "name": "598443335336095652", - "offsetgroup": "598443335336095652", + "name": "300971336194126583", + "offsetgroup": "300971336194126583", "orientation": "h", "pointpos": 0, "showlegend": true, "type": "box", "x": [ - "2024-07-21T15:31:20.207000", - "2024-07-21T15:31:07.565000", - "2024-07-21T15:30:59.023000", - "2024-07-21T15:30:51.594000", - "2024-07-21T15:29:25.495000", - "2024-07-21T15:27:31.082000", - "2024-07-21T15:27:31.082000", - "2024-07-21T15:27:31.082000", - "2024-07-21T15:27:31.082000", - "2024-07-21T15:03:28.331000", - "2024-07-21T15:03:19.637000", - "2024-07-21T15:03:13.853000", - "2024-07-21T15:03:09.011000", - "2024-07-21T15:02:42.090000", - "2024-07-21T15:02:02.378000", - "2024-07-21T15:02:02.378000", - "2024-07-21T15:02:02.378000", - "2024-07-21T15:02:02.378000" + "2024-12-14T14:42:16.077000", + "2024-12-14T14:42:07.488000", + "2024-12-14T14:41:59.607000", + "2024-12-14T14:41:52.639000", + "2024-12-14T14:41:23.914000", + "2024-12-14T14:40:34.416000", + "2024-12-14T14:40:34.416000", + "2024-12-14T14:40:34.416000", + "2024-12-14T14:40:34.416000", + "2024-12-14T14:40:17.104000", + "2024-12-14T14:40:07.979000", + "2024-12-14T14:40:00.564000", + "2024-12-14T14:39:53.123000", + "2024-12-14T14:39:24.560000", + "2024-12-14T14:38:34.646000", + "2024-12-14T14:38:34.646000", + "2024-12-14T14:38:34.646000", + "2024-12-14T14:38:34.646000", + "2024-12-14T14:38:14.529000", + "2024-12-14T14:38:05.805000", + "2024-12-14T14:37:57.371000", + "2024-12-14T14:37:49.623000", + "2024-12-14T14:37:18.470000", + "2024-12-14T14:35:02.506000", + "2024-12-14T14:35:02.506000", + "2024-12-14T14:35:02.506000", + "2024-12-14T14:35:02.506000" ], "x0": " ", "xaxis": "x", @@ -6413,14 +6954,14 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/4df1e5931159491c963f2252add508cd/artifacts", - "2024-07-21T15:31:53.829000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/9923cb99c1824857b68c0bedb63f8446/artifacts", + "2024-12-14T14:42:28.056000", + "300971336194126583", "active", - "4df1e5931159491c963f2252add508cd", + "9923cb99c1824857b68c0bedb63f8446", "Explanations", - "4df1e5931159491c963f2252add508cd", - "2024-07-21T15:31:20.207000", + "9923cb99c1824857b68c0bedb63f8446", + "2024-12-14T14:42:16.077000", "FINISHED", "fmind", {}, @@ -6433,7 +6974,7 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Explanations", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -6443,7 +6984,7 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Explanations", @@ -6453,18 +6994,17 @@ null, null, null, - null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/5936b0cb0d9b47b2a1862344a79e55e7/artifacts", - "2024-07-21T15:04:07.438000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/149bc47563a94ae5bc05bbcb7853c122/artifacts", + "2024-12-14T14:40:29.333000", + "300971336194126583", "active", - "5936b0cb0d9b47b2a1862344a79e55e7", + "149bc47563a94ae5bc05bbcb7853c122", "Explanations", - "5936b0cb0d9b47b2a1862344a79e55e7", - "2024-07-21T15:03:28.331000", + "149bc47563a94ae5bc05bbcb7853c122", + "2024-12-14T14:40:17.104000", "FINISHED", "fmind", {}, @@ -6477,7 +7017,7 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Explanations", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -6487,7 +7027,7 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Explanations", @@ -6497,16 +7037,59 @@ null, null, null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/422986fde3df4962b0765cdf008a721b/artifacts", + "2024-12-14T14:38:26.878000", + "300971336194126583", + "active", + "422986fde3df4962b0765cdf008a721b", + "Explanations", + "422986fde3df4962b0765cdf008a721b", + "2024-12-14T14:38:14.529000", + "FINISHED", + "fmind", + {}, + { + "conf_file": "confs/explanations.yaml" + }, + { + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Explanations", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Explanations", + "virtualenv", + "local", + null, + null, + null, null, null ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "4df1e5931159491c963f2252add508cd", - "5936b0cb0d9b47b2a1862344a79e55e7" + "9923cb99c1824857b68c0bedb63f8446", + "149bc47563a94ae5bc05bbcb7853c122", + "422986fde3df4962b0765cdf008a721b" ], "legendgroup": "Explanations", "line": { @@ -6522,8 +7105,9 @@ "showlegend": true, "type": "box", "x": [ - 33.622, - 39.107 + 11.979, + 12.229, + 12.349 ], "x0": " ", "xaxis": "x", @@ -6535,38 +7119,90 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/e993a53ee04e4357bad5cec101ab4031/artifacts", - "2024-07-21T15:31:13.361000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/bfce074e34834054b84e5794450a4fa2/artifacts", + "2024-12-14T14:42:13.733000", + "300971336194126583", + "active", + "bfce074e34834054b84e5794450a4fa2", + "Evaluations", + "bfce074e34834054b84e5794450a4fa2", + "2024-12-14T14:42:07.488000", + "FINISHED", + "fmind", + { + "example_count": 13903, + "max_error": 4294967295, + "mean_absolute_error": 1959503528.083579, + "mean_absolute_percentage_error": 23650884.88200852, + "mean_on_target": 174.63914263108683, + "mean_squared_error": 4.060274760842984, + "r2_score": 0.9998543247906146, + "root_mean_squared_error": 2.0150123475658863, + "sum_on_target": 2428008 + }, + { + "conf_file": "confs/evaluations.yaml" + }, + { + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Evaluations", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Evaluations", + "virtualenv", + "local", + null, + null, + null, + null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/534a4ff3a1b04ae3b7c5c5e5295b87a8/artifacts", + "2024-12-14T14:40:14.595000", + "300971336194126583", "active", - "e993a53ee04e4357bad5cec101ab4031", + "534a4ff3a1b04ae3b7c5c5e5295b87a8", "Evaluations", - "e993a53ee04e4357bad5cec101ab4031", - "2024-07-21T15:31:07.565000", + "534a4ff3a1b04ae3b7c5c5e5295b87a8", + "2024-12-14T14:40:07.979000", "FINISHED", "fmind", { "example_count": 13903, "max_error": 4294967295, - "mean_absolute_error": 2044457567.3205063, - "mean_absolute_percentage_error": 55189262.03890929, + "mean_absolute_error": 1959503528.083579, + "mean_absolute_percentage_error": 23650884.88200852, "mean_on_target": 174.63914263108683, - "mean_squared_error": 296.66338200388407, - "r2_score": 0.9893562621162568, - "root_mean_squared_error": 17.223918892165166, + "mean_squared_error": 4.060274760842984, + "r2_score": 0.9998543247906146, + "root_mean_squared_error": 2.0150123475658863, "sum_on_target": 2428008 }, { "conf_file": "confs/evaluations.yaml" }, { - "mlflow.datasets": "[{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"hash\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"model\":\"06840f30fcdd4553a7aaf17e83232475\"}]", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Evaluations", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -6576,13 +7212,12 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Evaluations", "virtualenv", "local", - "[{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"hash\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"model\":\"06840f30fcdd4553a7aaf17e83232475\"}]", null, null, null, @@ -6590,38 +7225,37 @@ null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/ef5b224b3f4e4dbcb05169cfc4f358f7/artifacts", - "2024-07-21T15:03:25.782000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/b486861e5799446c9bc40c37413acf46/artifacts", + "2024-12-14T14:38:12.143000", + "300971336194126583", "active", - "ef5b224b3f4e4dbcb05169cfc4f358f7", + "b486861e5799446c9bc40c37413acf46", "Evaluations", - "ef5b224b3f4e4dbcb05169cfc4f358f7", - "2024-07-21T15:03:19.637000", + "b486861e5799446c9bc40c37413acf46", + "2024-12-14T14:38:05.805000", "FINISHED", "fmind", { "example_count": 13903, "max_error": 4294967295, - "mean_absolute_error": 2044457567.3205063, - "mean_absolute_percentage_error": 55189262.03890929, + "mean_absolute_error": 1959503528.083579, + "mean_absolute_percentage_error": 23650884.88200852, "mean_on_target": 174.63914263108683, - "mean_squared_error": 296.66338200388407, - "r2_score": 0.9893562621162568, - "root_mean_squared_error": 17.223918892165166, + "mean_squared_error": 4.060274760842984, + "r2_score": 0.9998543247906146, + "root_mean_squared_error": 2.0150123475658863, "sum_on_target": 2428008 }, { "conf_file": "confs/evaluations.yaml" }, { - "mlflow.datasets": "[{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"hash\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"model\":\"c18c304506ec438c9937a5804b4e19bc\"}]", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Evaluations", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -6631,13 +7265,12 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Evaluations", "virtualenv", "local", - "[{\"name\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"hash\":\"ce0fe6e33c74e2fa3659d51482be5f27\",\"model\":\"c18c304506ec438c9937a5804b4e19bc\"}]", null, null, null, @@ -6647,10 +7280,11 @@ ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "e993a53ee04e4357bad5cec101ab4031", - "ef5b224b3f4e4dbcb05169cfc4f358f7" + "bfce074e34834054b84e5794450a4fa2", + "534a4ff3a1b04ae3b7c5c5e5295b87a8", + "b486861e5799446c9bc40c37413acf46" ], "legendgroup": "Evaluations", "line": { @@ -6666,8 +7300,9 @@ "showlegend": true, "type": "box", "x": [ - 5.796, - 6.145 + 6.245, + 6.616, + 6.338 ], "x0": " ", "xaxis": "x", @@ -6679,14 +7314,57 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/c17b893e525b44ed89e349421e72510a/artifacts", - "2024-07-21T15:31:04.758000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/5ebe28d67ed54300a177eb61825a6688/artifacts", + "2024-12-14T14:42:05.031000", + "300971336194126583", + "active", + "5ebe28d67ed54300a177eb61825a6688", + "Inference", + "5ebe28d67ed54300a177eb61825a6688", + "2024-12-14T14:41:59.607000", + "FINISHED", + "fmind", + {}, + { + "conf_file": "confs/inference.yaml" + }, + { + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Inference", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Inference", + "virtualenv", + "local", + null, + null, + null, + null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/4a629039b6c84ad3947f7529f9a28e21/artifacts", + "2024-12-14T14:40:05.598000", + "300971336194126583", "active", - "c17b893e525b44ed89e349421e72510a", + "4a629039b6c84ad3947f7529f9a28e21", "Inference", - "c17b893e525b44ed89e349421e72510a", - "2024-07-21T15:30:59.023000", + "4a629039b6c84ad3947f7529f9a28e21", + "2024-12-14T14:40:00.564000", "FINISHED", "fmind", {}, @@ -6699,7 +7377,7 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Inference", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -6709,7 +7387,7 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Inference", @@ -6719,18 +7397,17 @@ null, null, null, - null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/65f34c799e814cfe82d844b0eff6a16f/artifacts", - "2024-07-21T15:03:18.035000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/dd848a2a73d6469d860c54c519b4cab4/artifacts", + "2024-12-14T14:38:03.147000", + "300971336194126583", "active", - "65f34c799e814cfe82d844b0eff6a16f", + "dd848a2a73d6469d860c54c519b4cab4", "Inference", - "65f34c799e814cfe82d844b0eff6a16f", - "2024-07-21T15:03:13.853000", + "dd848a2a73d6469d860c54c519b4cab4", + "2024-12-14T14:37:57.371000", "FINISHED", "fmind", {}, @@ -6743,7 +7420,7 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Inference", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -6753,7 +7430,7 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Inference", @@ -6763,16 +7440,16 @@ null, null, null, - null, null ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "c17b893e525b44ed89e349421e72510a", - "65f34c799e814cfe82d844b0eff6a16f" + "5ebe28d67ed54300a177eb61825a6688", + "4a629039b6c84ad3947f7529f9a28e21", + "dd848a2a73d6469d860c54c519b4cab4" ], "legendgroup": "Inference", "line": { @@ -6788,8 +7465,9 @@ "showlegend": true, "type": "box", "x": [ - 5.735, - 4.182 + 5.424, + 5.034, + 5.776 ], "x0": " ", "xaxis": "x", @@ -6801,14 +7479,14 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/d538cc2f3f644b6e97b611c1d96801ac/artifacts", - "2024-07-21T15:30:56.969000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/f29b930df5a54f1fa9ec5fe4b27df8b9/artifacts", + "2024-12-14T14:41:57.245000", + "300971336194126583", "active", - "d538cc2f3f644b6e97b611c1d96801ac", + "f29b930df5a54f1fa9ec5fe4b27df8b9", "Promotion", - "d538cc2f3f644b6e97b611c1d96801ac", - "2024-07-21T15:30:51.594000", + "f29b930df5a54f1fa9ec5fe4b27df8b9", + "2024-12-14T14:41:52.639000", "FINISHED", "fmind", {}, @@ -6821,7 +7499,7 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Promotion", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -6831,7 +7509,7 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Promotion", @@ -6841,18 +7519,17 @@ null, null, null, - null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/a5dbcb3fc6a24fdc863fb31eb0fc4d7a/artifacts", - "2024-07-21T15:03:12.321000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/e20be51c8bbb4cfb98ad440209dd2ea6/artifacts", + "2024-12-14T14:39:58.173000", + "300971336194126583", "active", - "a5dbcb3fc6a24fdc863fb31eb0fc4d7a", + "e20be51c8bbb4cfb98ad440209dd2ea6", "Promotion", - "a5dbcb3fc6a24fdc863fb31eb0fc4d7a", - "2024-07-21T15:03:09.011000", + "e20be51c8bbb4cfb98ad440209dd2ea6", + "2024-12-14T14:39:53.123000", "FINISHED", "fmind", {}, @@ -6865,7 +7542,7 @@ "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Promotion", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -6875,7 +7552,7 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Promotion", @@ -6885,16 +7562,59 @@ null, null, null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/a9225f3845ab4da6baf77885d9c75dfd/artifacts", + "2024-12-14T14:37:54.740000", + "300971336194126583", + "active", + "a9225f3845ab4da6baf77885d9c75dfd", + "Promotion", + "a9225f3845ab4da6baf77885d9c75dfd", + "2024-12-14T14:37:49.623000", + "FINISHED", + "fmind", + {}, + { + "conf_file": "confs/promotion.yaml" + }, + { + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Promotion", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Promotion", + "virtualenv", + "local", + null, + null, + null, null, null ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "d538cc2f3f644b6e97b611c1d96801ac", - "a5dbcb3fc6a24fdc863fb31eb0fc4d7a" + "f29b930df5a54f1fa9ec5fe4b27df8b9", + "e20be51c8bbb4cfb98ad440209dd2ea6", + "a9225f3845ab4da6baf77885d9c75dfd" ], "legendgroup": "Promotion", "line": { @@ -6910,8 +7630,9 @@ "showlegend": true, "type": "box", "x": [ - 5.375, - 3.31 + 4.606, + 5.05, + 5.117 ], "x0": " ", "xaxis": "x", @@ -6923,31 +7644,31 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/a75ea3e9742c48fd9c34a5b8abf9bd89/artifacts", - "2024-07-21T15:30:46.302000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/4753bf6b106845d19eca79b7cb329343/artifacts", + "2024-12-14T14:41:49.910000", + "300971336194126583", "active", - "a75ea3e9742c48fd9c34a5b8abf9bd89", + "4753bf6b106845d19eca79b7cb329343", "Training", - "a75ea3e9742c48fd9c34a5b8abf9bd89", - "2024-07-21T15:29:25.495000", + "4753bf6b106845d19eca79b7cb329343", + "2024-12-14T14:41:23.914000", "FINISHED", "fmind", { - "mean_squared_error": -1786.7527777777777, - "system/cpu_utilization_percentage": 38.1, - "system/disk_available_megabytes": 32585.5, - "system/disk_usage_megabytes": 73526.3, - "system/disk_usage_percentage": 69.3, - "system/network_receive_megabytes": 0.02063199999997778, - "system/network_transmit_megabytes": 0.00015000000007603376, - "system/system_memory_usage_megabytes": 10535.7, - "system/system_memory_usage_percentage": 69.8, - "training_mean_absolute_error": 6.8051192198812736, - "training_mean_squared_error": 124.51054615575788, - "training_r2_score": 0.9948851411922456, - "training_root_mean_squared_error": 11.158429376742852, - "training_score": 0.9948851411922456 + "mean_squared_error": -24.55763888888889, + "system/cpu_utilization_percentage": 14.3, + "system/disk_available_megabytes": 7454.1, + "system/disk_usage_megabytes": 108457.2, + "system/disk_usage_percentage": 93.6, + "system/network_receive_megabytes": 0, + "system/network_transmit_megabytes": 0, + "system/system_memory_usage_megabytes": 4700.3, + "system/system_memory_usage_percentage": 31.2, + "training_mean_absolute_error": 0.3561289343195786, + "training_mean_squared_error": 1.2806655854526316, + "training_r2_score": 0.9999473906118655, + "training_root_mean_squared_error": 1.1316649616616359, + "training_score": 0.9999473906118655 }, { "conf_file": "confs/training.yaml", @@ -6971,8 +7692,8 @@ "regressor__random_state": "42", "regressor__verbose": "0", "regressor__warm_start": "False", - "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", - "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual'])])", + "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", + "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])", "transformer__categoricals": "OneHotEncoder(handle_unknown='ignore', sparse_output=False)", "transformer__categoricals__categories": "auto", "transformer__categoricals__drop": "None", @@ -6982,12 +7703,13 @@ "transformer__categoricals__max_categories": "None", "transformer__categoricals__min_frequency": "None", "transformer__categoricals__sparse_output": "False", + "transformer__force_int_remainder_cols": "True", "transformer__n_jobs": "None", "transformer__numericals": "passthrough", "transformer__remainder": "drop", "transformer__sparse_threshold": "0.3", "transformer__transformer_weights": "None", - "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual'])]", + "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual', 'registered'])]", "transformer__verbose": "False", "transformer__verbose_feature_names_out": "True", "verbose": "False" @@ -6996,12 +7718,12 @@ "estimator_class": "sklearn.pipeline.Pipeline", "estimator_name": "Pipeline", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.log-model.history": "[{\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:30:23.365959\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"ade01433a8a54ec298de322ba009fa10\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"tensor\\\", \\\"tensor-spec\\\": {\\\"dtype\\\": \\\"float64\\\", \\\"shape\\\": [-1]}}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 203898413}, {\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:30:35.571973\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.0.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}, \"model_uuid\": \"06840f30fcdd4553a7aaf17e83232475\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 205599260}]", + "mlflow.log-model.history": "[{\"run_id\": \"4753bf6b106845d19eca79b7cb329343\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:38.398638\", \"model_uuid\": \"77e276c4bf79429ca932062f2825649b\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"4753bf6b106845d19eca79b7cb329343\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:42.667182\", \"model_uuid\": \"50dd5f99ebb944c7a02879fd4dc8d43c\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Training", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -7011,145 +7733,416 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Training", "virtualenv", "local", + "Pipeline", + "sklearn.pipeline.Pipeline", + "[{\"run_id\": \"4753bf6b106845d19eca79b7cb329343\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:38.398638\", \"model_uuid\": \"77e276c4bf79429ca932062f2825649b\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"4753bf6b106845d19eca79b7cb329343\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:42.667182\", \"model_uuid\": \"50dd5f99ebb944c7a02879fd4dc8d43c\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/ae9f673f6b264240bb79ffd94ca49fe2/artifacts", + "2024-12-14T14:39:50.546000", + "300971336194126583", + "active", + "ae9f673f6b264240bb79ffd94ca49fe2", + "Training", + "ae9f673f6b264240bb79ffd94ca49fe2", + "2024-12-14T14:39:24.560000", + "FINISHED", + "fmind", + { + "mean_squared_error": -24.55763888888889, + "system/cpu_utilization_percentage": 14.8, + "system/disk_available_megabytes": 7735.1, + "system/disk_usage_megabytes": 108174.9, + "system/disk_usage_percentage": 93.3, + "system/network_receive_megabytes": 0.006746999999904801, + "system/network_transmit_megabytes": 0.006637000000068838, + "system/system_memory_usage_megabytes": 4542, + "system/system_memory_usage_percentage": 30.1, + "training_mean_absolute_error": 0.3561289343195786, + "training_mean_squared_error": 1.2806655854526316, + "training_r2_score": 0.9999473906118655, + "training_root_mean_squared_error": 1.1316649616616359, + "training_score": 0.9999473906118655 + }, + { + "conf_file": "confs/training.yaml", + "memory": "None", + "regressor": "RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42)", + "regressor__bootstrap": "True", + "regressor__ccp_alpha": "0.0", + "regressor__criterion": "squared_error", + "regressor__max_depth": "20", + "regressor__max_features": "1.0", + "regressor__max_leaf_nodes": "None", + "regressor__max_samples": "None", + "regressor__min_impurity_decrease": "0.0", + "regressor__min_samples_leaf": "1", + "regressor__min_samples_split": "2", + "regressor__min_weight_fraction_leaf": "0.0", + "regressor__monotonic_cst": "None", + "regressor__n_estimators": "200", + "regressor__n_jobs": "None", + "regressor__oob_score": "False", + "regressor__random_state": "42", + "regressor__verbose": "0", + "regressor__warm_start": "False", + "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", + "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])", + "transformer__categoricals": "OneHotEncoder(handle_unknown='ignore', sparse_output=False)", + "transformer__categoricals__categories": "auto", + "transformer__categoricals__drop": "None", + "transformer__categoricals__dtype": "", + "transformer__categoricals__feature_name_combiner": "concat", + "transformer__categoricals__handle_unknown": "ignore", + "transformer__categoricals__max_categories": "None", + "transformer__categoricals__min_frequency": "None", + "transformer__categoricals__sparse_output": "False", + "transformer__force_int_remainder_cols": "True", + "transformer__n_jobs": "None", + "transformer__numericals": "passthrough", + "transformer__remainder": "drop", + "transformer__sparse_threshold": "0.3", + "transformer__transformer_weights": "None", + "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual', 'registered'])]", + "transformer__verbose": "False", + "transformer__verbose_feature_names_out": "True", + "verbose": "False" + }, + { + "estimator_class": "sklearn.pipeline.Pipeline", + "estimator_name": "Pipeline", + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.log-model.history": "[{\"run_id\": \"ae9f673f6b264240bb79ffd94ca49fe2\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:38.524131\", \"model_uuid\": \"18f54df2a682488593dd0412c7be229e\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"ae9f673f6b264240bb79ffd94ca49fe2\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:42.939094\", \"model_uuid\": \"4cc5e6d8a7d841059b37797a371ea10d\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Training", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Training", + "virtualenv", + "local", "Pipeline", "sklearn.pipeline.Pipeline", - "[{\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:30:23.365959\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"ade01433a8a54ec298de322ba009fa10\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"tensor\\\", \\\"tensor-spec\\\": {\\\"dtype\\\": \\\"float64\\\", \\\"shape\\\": [-1]}}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 203898413}, {\"run_id\": \"a75ea3e9742c48fd9c34a5b8abf9bd89\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:30:35.571973\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.0.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}, \"model_uuid\": \"06840f30fcdd4553a7aaf17e83232475\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 205599260}]", + "[{\"run_id\": \"ae9f673f6b264240bb79ffd94ca49fe2\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:38.524131\", \"model_uuid\": \"18f54df2a682488593dd0412c7be229e\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"ae9f673f6b264240bb79ffd94ca49fe2\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:42.939094\", \"model_uuid\": \"4cc5e6d8a7d841059b37797a371ea10d\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/47302e957d8542198a281aad07b2413b/artifacts", - "2024-07-21T15:03:07.098000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/d2aed973c12b475f849743599f7bc973/artifacts", + "2024-12-14T14:37:46.512000", + "300971336194126583", + "active", + "d2aed973c12b475f849743599f7bc973", + "Training", + "d2aed973c12b475f849743599f7bc973", + "2024-12-14T14:37:18.470000", + "FINISHED", + "fmind", + { + "mean_squared_error": -24.55763888888889, + "system/cpu_utilization_percentage": 20.8, + "system/disk_available_megabytes": 8002.4, + "system/disk_usage_megabytes": 107906.7, + "system/disk_usage_percentage": 93.1, + "system/network_receive_megabytes": 0.006799000000000888, + "system/network_transmit_megabytes": 0.004778000000101201, + "system/system_memory_usage_megabytes": 4375.5, + "system/system_memory_usage_percentage": 29, + "training_mean_absolute_error": 0.3561289343195786, + "training_mean_squared_error": 1.2806655854526316, + "training_r2_score": 0.9999473906118655, + "training_root_mean_squared_error": 1.1316649616616359, + "training_score": 0.9999473906118655 + }, + { + "conf_file": "confs/training.yaml", + "memory": "None", + "regressor": "RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42)", + "regressor__bootstrap": "True", + "regressor__ccp_alpha": "0.0", + "regressor__criterion": "squared_error", + "regressor__max_depth": "20", + "regressor__max_features": "1.0", + "regressor__max_leaf_nodes": "None", + "regressor__max_samples": "None", + "regressor__min_impurity_decrease": "0.0", + "regressor__min_samples_leaf": "1", + "regressor__min_samples_split": "2", + "regressor__min_weight_fraction_leaf": "0.0", + "regressor__monotonic_cst": "None", + "regressor__n_estimators": "200", + "regressor__n_jobs": "None", + "regressor__oob_score": "False", + "regressor__random_state": "42", + "regressor__verbose": "0", + "regressor__warm_start": "False", + "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", + "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual', 'registered'])])", + "transformer__categoricals": "OneHotEncoder(handle_unknown='ignore', sparse_output=False)", + "transformer__categoricals__categories": "auto", + "transformer__categoricals__drop": "None", + "transformer__categoricals__dtype": "", + "transformer__categoricals__feature_name_combiner": "concat", + "transformer__categoricals__handle_unknown": "ignore", + "transformer__categoricals__max_categories": "None", + "transformer__categoricals__min_frequency": "None", + "transformer__categoricals__sparse_output": "False", + "transformer__force_int_remainder_cols": "True", + "transformer__n_jobs": "None", + "transformer__numericals": "passthrough", + "transformer__remainder": "drop", + "transformer__sparse_threshold": "0.3", + "transformer__transformer_weights": "None", + "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual', 'registered'])]", + "transformer__verbose": "False", + "transformer__verbose_feature_names_out": "True", + "verbose": "False" + }, + { + "estimator_class": "sklearn.pipeline.Pipeline", + "estimator_name": "Pipeline", + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.log-model.history": "[{\"run_id\": \"d2aed973c12b475f849743599f7bc973\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:33.468367\", \"model_uuid\": \"e6f77661d7214385a83cc9a45c689a0a\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"d2aed973c12b475f849743599f7bc973\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:38.175626\", \"model_uuid\": \"4b143c2fc8234dac9c98bbdfb03aaa1a\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Training", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Training", + "virtualenv", + "local", + "Pipeline", + "sklearn.pipeline.Pipeline", + "[{\"run_id\": \"d2aed973c12b475f849743599f7bc973\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:33.468367\", \"model_uuid\": \"e6f77661d7214385a83cc9a45c689a0a\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"d2aed973c12b475f849743599f7bc973\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:38.175626\", \"model_uuid\": \"4b143c2fc8234dac9c98bbdfb03aaa1a\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.1.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}}]", + null, + null + ] + ], + "fillcolor": "rgba(255,255,255,0)", + "hoveron": "points", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", + "hovertext": [ + "4753bf6b106845d19eca79b7cb329343", + "ae9f673f6b264240bb79ffd94ca49fe2", + "d2aed973c12b475f849743599f7bc973" + ], + "legendgroup": "Training", + "line": { + "color": "rgba(255,255,255,0)" + }, + "marker": { + "color": "#FFA15A" + }, + "name": "Training", + "offsetgroup": "Training", + "orientation": "h", + "pointpos": 0, + "showlegend": true, + "type": "box", + "x": [ + 25.996, + 25.986, + 28.042 + ], + "x0": " ", + "xaxis": "x", + "y0": " ", + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "boxpoints": "all", + "customdata": [ + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/066cf65cd3214378a7675e2536c6eb60/artifacts", + "2024-12-14T14:41:20.607000", + "300971336194126583", + "active", + "066cf65cd3214378a7675e2536c6eb60", + "wise-hound-335", + "066cf65cd3214378a7675e2536c6eb60", + "2024-12-14T14:40:34.416000", + "FINISHED", + "fmind", + { + "mean_fit_time": 2.2717891335487366, + "mean_score_time": 0.04655104875564575, + "mean_test_score": -711.7982638888889, + "rank_test_score": 2, + "std_fit_time": 0.2744423843818404, + "std_score_time": 0.0008752424197515631, + "std_test_score": 506.2583283876414 + }, + { + "max_depth": "5", + "n_estimators": "200", + "random_state": "42" + }, + { + "estimator_class": "bikes.core.models.BaselineSklearnModel", + "estimator_name": "BaselineSklearnModel", + "mlflow.autologging": "sklearn", + "mlflow.parentRunId": "6f68ed7fee59407f83bff115536fdfc0", + "mlflow.runName": "wise-hound-335", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "mlflow.source.type": "LOCAL", + "mlflow.user": "fmind" + }, + "fmind", + "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "LOCAL", + null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + null, + null, + "wise-hound-335", + null, + null, + "BaselineSklearnModel", + "bikes.core.models.BaselineSklearnModel", + null, + "sklearn", + "6f68ed7fee59407f83bff115536fdfc0" + ] + ], + "fillcolor": "rgba(255,255,255,0)", + "hoveron": "points", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", + "hovertext": [ + "066cf65cd3214378a7675e2536c6eb60" + ], + "legendgroup": "wise-hound-335", + "line": { + "color": "rgba(255,255,255,0)" + }, + "marker": { + "color": "#19d3f3" + }, + "name": "wise-hound-335", + "offsetgroup": "wise-hound-335", + "orientation": "h", + "pointpos": 0, + "showlegend": true, + "type": "box", + "x": [ + 46.191 + ], + "x0": " ", + "xaxis": "x", + "y0": " ", + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "boxpoints": "all", + "customdata": [ + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/0cdfaf5a0e7b44ea88d7297746e6af1f/artifacts", + "2024-12-14T14:41:20.607000", + "300971336194126583", "active", - "47302e957d8542198a281aad07b2413b", - "Training", - "47302e957d8542198a281aad07b2413b", - "2024-07-21T15:02:42.090000", + "0cdfaf5a0e7b44ea88d7297746e6af1f", + "auspicious-fly-358", + "0cdfaf5a0e7b44ea88d7297746e6af1f", + "2024-12-14T14:40:34.416000", "FINISHED", "fmind", { - "mean_squared_error": -1786.7527777777777, - "system/cpu_utilization_percentage": 15.6, - "system/disk_available_megabytes": 35139.3, - "system/disk_usage_megabytes": 70848.1, - "system/disk_usage_percentage": 66.8, - "system/network_receive_megabytes": 0.001855000000034579, - "system/network_transmit_megabytes": 0.003730000000018663, - "system/system_memory_usage_megabytes": 4143.6, - "system/system_memory_usage_percentage": 27.5, - "training_mean_absolute_error": 6.8051192198812736, - "training_mean_squared_error": 124.51054615575788, - "training_r2_score": 0.9948851411922456, - "training_root_mean_squared_error": 11.158429376742852, - "training_score": 0.9948851411922456 + "mean_fit_time": 3.0942174792289734, + "mean_score_time": 0.054158151149749756, + "mean_test_score": -319.5045138888889, + "rank_test_score": 1, + "std_fit_time": 0.41821529328335627, + "std_score_time": 0.0011713553122119475, + "std_test_score": 350.4638291591938 }, { - "conf_file": "confs/training.yaml", - "memory": "None", - "regressor": "RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42)", - "regressor__bootstrap": "True", - "regressor__ccp_alpha": "0.0", - "regressor__criterion": "squared_error", - "regressor__max_depth": "20", - "regressor__max_features": "1.0", - "regressor__max_leaf_nodes": "None", - "regressor__max_samples": "None", - "regressor__min_impurity_decrease": "0.0", - "regressor__min_samples_leaf": "1", - "regressor__min_samples_split": "2", - "regressor__min_weight_fraction_leaf": "0.0", - "regressor__monotonic_cst": "None", - "regressor__n_estimators": "200", - "regressor__n_jobs": "None", - "regressor__oob_score": "False", - "regressor__random_state": "42", - "regressor__verbose": "0", - "regressor__warm_start": "False", - "steps": "[('transformer', ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual'])])), ('regressor', RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42))]", - "transformer": "ColumnTransformer(transformers=[('categoricals',\n OneHotEncoder(handle_unknown='ignore',\n sparse_output=False),\n ['season', 'weathersit']),\n ('numericals', 'passthrough',\n ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n 'workingday', 'temp', 'atemp', 'hum',\n 'windspeed', 'casual'])])", - "transformer__categoricals": "OneHotEncoder(handle_unknown='ignore', sparse_output=False)", - "transformer__categoricals__categories": "auto", - "transformer__categoricals__drop": "None", - "transformer__categoricals__dtype": "", - "transformer__categoricals__feature_name_combiner": "concat", - "transformer__categoricals__handle_unknown": "ignore", - "transformer__categoricals__max_categories": "None", - "transformer__categoricals__min_frequency": "None", - "transformer__categoricals__sparse_output": "False", - "transformer__n_jobs": "None", - "transformer__numericals": "passthrough", - "transformer__remainder": "drop", - "transformer__sparse_threshold": "0.3", - "transformer__transformer_weights": "None", - "transformer__transformers": "[('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual'])]", - "transformer__verbose": "False", - "transformer__verbose_feature_names_out": "True", - "verbose": "False" + "max_depth": "7", + "n_estimators": "200", + "random_state": "42" }, { - "estimator_class": "sklearn.pipeline.Pipeline", - "estimator_name": "Pipeline", - "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.log-model.history": "[{\"run_id\": \"47302e957d8542198a281aad07b2413b\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:54.863113\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"4fd09447dee548f586e05d2edbfbe2d8\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"tensor\\\", \\\"tensor-spec\\\": {\\\"dtype\\\": \\\"float64\\\", \\\"shape\\\": [-1]}}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 203898413}, {\"run_id\": \"47302e957d8542198a281aad07b2413b\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:59.278448\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.0.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}, \"model_uuid\": \"c18c304506ec438c9937a5804b4e19bc\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 205599260}]", - "mlflow.project.backend": "local", - "mlflow.project.entryPoint": "main", - "mlflow.project.env": "virtualenv", - "mlflow.runName": "Training", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.source.name": "file:///home/fmind/mlops-python-package", - "mlflow.source.type": "PROJECT", + "estimator_class": "bikes.core.models.BaselineSklearnModel", + "estimator_name": "BaselineSklearnModel", + "mlflow.autologging": "sklearn", + "mlflow.parentRunId": "6f68ed7fee59407f83bff115536fdfc0", + "mlflow.runName": "auspicious-fly-358", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" }, "fmind", - "file:///home/fmind/mlops-python-package", - "PROJECT", - "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - "git@github.com:fmind/mlops-python-package", - "git@github.com:fmind/mlops-python-package", - "Training", - "virtualenv", - "local", + "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "LOCAL", null, - "Pipeline", - "sklearn.pipeline.Pipeline", - "[{\"run_id\": \"47302e957d8542198a281aad07b2413b\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:54.863113\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"4fd09447dee548f586e05d2edbfbe2d8\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"tensor\\\", \\\"tensor-spec\\\": {\\\"dtype\\\": \\\"float64\\\", \\\"shape\\\": [-1]}}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 203898413}, {\"run_id\": \"47302e957d8542198a281aad07b2413b\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:59.278448\", \"flavors\": {\"python_function\": {\"streamable\": false, \"cloudpickle_version\": \"3.0.0\", \"python_model\": \"python_model.pkl\", \"loader_module\": \"mlflow.pyfunc.model\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}, \"code\": null}}, \"model_uuid\": \"c18c304506ec438c9937a5804b4e19bc\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 205599260}]", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, - null + null, + "auspicious-fly-358", + null, + null, + "BaselineSklearnModel", + "bikes.core.models.BaselineSklearnModel", + null, + "sklearn", + "6f68ed7fee59407f83bff115536fdfc0" ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "a75ea3e9742c48fd9c34a5b8abf9bd89", - "47302e957d8542198a281aad07b2413b" + "0cdfaf5a0e7b44ea88d7297746e6af1f" ], - "legendgroup": "Training", + "legendgroup": "auspicious-fly-358", "line": { "color": "rgba(255,255,255,0)" }, "marker": { - "color": "#FFA15A" + "color": "#FF6692" }, - "name": "Training", - "offsetgroup": "Training", + "name": "auspicious-fly-358", + "offsetgroup": "auspicious-fly-358", "orientation": "h", "pointpos": 0, "showlegend": true, "type": "box", "x": [ - 80.807, - 25.008 + 46.191 ], "x0": " ", "xaxis": "x", @@ -7161,27 +8154,27 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/005e2f5532664a7aa7aafaa1509c3575/artifacts", - "2024-07-21T15:29:11.193000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/6f68ed7fee59407f83bff115536fdfc0/artifacts", + "2024-12-14T14:41:21.575000", + "300971336194126583", "active", - "005e2f5532664a7aa7aafaa1509c3575", + "6f68ed7fee59407f83bff115536fdfc0", "Tuning", - "005e2f5532664a7aa7aafaa1509c3575", - "2024-07-21T15:27:31.082000", + "6f68ed7fee59407f83bff115536fdfc0", + "2024-12-14T14:40:34.416000", "FINISHED", "fmind", { - "best_cv_score": -5517.252604166667, - "system/cpu_utilization_percentage": 47.2, - "system/disk_available_megabytes": 34093.7, - "system/disk_usage_megabytes": 71913, - "system/disk_usage_percentage": 67.8, - "system/network_receive_megabytes": 254.222282, - "system/network_transmit_megabytes": 507.10717, - "system/system_memory_usage_megabytes": 8470.1, - "system/system_memory_usage_percentage": 56.2, - "training_score": -1951.0630079838884 + "best_cv_score": -319.5045138888889, + "system/cpu_utilization_percentage": 13.8, + "system/disk_available_megabytes": 7460.8, + "system/disk_usage_megabytes": 108450.2, + "system/disk_usage_percentage": 93.6, + "system/network_receive_megabytes": 0.1935390000001007, + "system/network_transmit_megabytes": 0.2145869999999377, + "system/system_memory_usage_megabytes": 4516.7, + "system/system_memory_usage_percentage": 30, + "training_score": -25.253110839387183 }, { "best_max_depth": "7", @@ -7201,12 +8194,12 @@ "estimator_class": "sklearn.model_selection._search.GridSearchCV", "estimator_name": "GridSearchCV", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.log-model.history": "[{\"run_id\": \"005e2f5532664a7aa7aafaa1509c3575\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:28:24.521733\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"c800dd5b2d1f49ce98281338d9abbd29\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3726525}, {\"run_id\": \"005e2f5532664a7aa7aafaa1509c3575\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-07-21 15:28:50.044236\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"acb76eef9e5e4a56aa84e634b7d7444c\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3713919}]", + "mlflow.log-model.history": "[{\"run_id\": \"6f68ed7fee59407f83bff115536fdfc0\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:11.433265\", \"model_uuid\": \"77b9177b6a914d2d83f8c6062bcaa438\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"6f68ed7fee59407f83bff115536fdfc0\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:41:16.492519\", \"model_uuid\": \"862871d930c845ec882f4b82890fc495\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Tuning", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -7216,41 +8209,40 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Tuning", "virtualenv", "local", - null, "GridSearchCV", "sklearn.model_selection._search.GridSearchCV", - "[{\"run_id\": \"005e2f5532664a7aa7aafaa1509c3575\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:28:24.521733\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"c800dd5b2d1f49ce98281338d9abbd29\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3726525}, {\"run_id\": \"005e2f5532664a7aa7aafaa1509c3575\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-07-21 15:28:50.044236\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"acb76eef9e5e4a56aa84e634b7d7444c\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3713919}]", + "[{\"run_id\": \"6f68ed7fee59407f83bff115536fdfc0\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:41:11.433265\", \"model_uuid\": \"77b9177b6a914d2d83f8c6062bcaa438\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"6f68ed7fee59407f83bff115536fdfc0\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:41:16.492519\", \"model_uuid\": \"862871d930c845ec882f4b82890fc495\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", null, null ], [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/38a4df3abf194e06b5eeaaa0bb383ee8/artifacts", - "2024-07-21T15:02:40.466000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/9c36f396f2214f7bb0c6d9713d5e833e/artifacts", + "2024-12-14T14:39:22.225000", + "300971336194126583", "active", - "38a4df3abf194e06b5eeaaa0bb383ee8", + "9c36f396f2214f7bb0c6d9713d5e833e", "Tuning", - "38a4df3abf194e06b5eeaaa0bb383ee8", - "2024-07-21T15:02:02.378000", + "9c36f396f2214f7bb0c6d9713d5e833e", + "2024-12-14T14:38:34.646000", "FINISHED", "fmind", { - "best_cv_score": -5517.252604166667, - "system/cpu_utilization_percentage": 17.1, - "system/disk_available_megabytes": 35143.4, - "system/disk_usage_megabytes": 70843.7, - "system/disk_usage_percentage": 66.8, - "system/network_receive_megabytes": 0.012593999999978678, - "system/network_transmit_megabytes": 0.006136999999995396, - "system/system_memory_usage_megabytes": 4245, - "system/system_memory_usage_percentage": 28.1, - "training_score": -1951.0630079838884 + "best_cv_score": -319.5045138888889, + "system/cpu_utilization_percentage": 13.7, + "system/disk_available_megabytes": 7735.1, + "system/disk_usage_megabytes": 108174.9, + "system/disk_usage_percentage": 93.3, + "system/network_receive_megabytes": 0.013674000000037267, + "system/network_transmit_megabytes": 0.0075299999999742795, + "system/system_memory_usage_megabytes": 4324.7, + "system/system_memory_usage_percentage": 28.7, + "training_score": -25.253110839387183 }, { "best_max_depth": "7", @@ -7270,12 +8262,12 @@ "estimator_class": "sklearn.model_selection._search.GridSearchCV", "estimator_name": "GridSearchCV", "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", - "mlflow.log-model.history": "[{\"run_id\": \"38a4df3abf194e06b5eeaaa0bb383ee8\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:33.521812\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"67c6c33385b04cb5ad03402d17d4e377\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3726525}, {\"run_id\": \"38a4df3abf194e06b5eeaaa0bb383ee8\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-07-21 15:02:37.041779\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"301cd67b8f704f2280ce6b59d6846c7c\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3713919}]", + "mlflow.log-model.history": "[{\"run_id\": \"9c36f396f2214f7bb0c6d9713d5e833e\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:11.770616\", \"model_uuid\": \"ba0e722effe1437ba691fb61e730dfb7\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"9c36f396f2214f7bb0c6d9713d5e833e\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:39:16.824355\", \"model_uuid\": \"c561b4012c1445eca99fcd5d7260ad62\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", "mlflow.project.backend": "local", "mlflow.project.entryPoint": "main", "mlflow.project.env": "virtualenv", "mlflow.runName": "Tuning", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", "mlflow.source.name": "file:///home/fmind/mlops-python-package", "mlflow.source.type": "PROJECT", @@ -7285,33 +8277,101 @@ "file:///home/fmind/mlops-python-package", "PROJECT", "main", - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "git@github.com:fmind/mlops-python-package", "git@github.com:fmind/mlops-python-package", "Tuning", "virtualenv", "local", + "GridSearchCV", + "sklearn.model_selection._search.GridSearchCV", + "[{\"run_id\": \"9c36f396f2214f7bb0c6d9713d5e833e\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:39:11.770616\", \"model_uuid\": \"ba0e722effe1437ba691fb61e730dfb7\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"9c36f396f2214f7bb0c6d9713d5e833e\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:39:16.824355\", \"model_uuid\": \"c561b4012c1445eca99fcd5d7260ad62\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", null, + null + ], + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/857f0dd0a344439693b8cb9ecbf3ee10/artifacts", + "2024-12-14T14:37:16.048000", + "300971336194126583", + "active", + "857f0dd0a344439693b8cb9ecbf3ee10", + "Tuning", + "857f0dd0a344439693b8cb9ecbf3ee10", + "2024-12-14T14:35:02.506000", + "FINISHED", + "fmind", + { + "best_cv_score": -319.5045138888889, + "system/cpu_utilization_percentage": 21.5, + "system/disk_available_megabytes": 8003.8, + "system/disk_usage_megabytes": 107904.9, + "system/disk_usage_percentage": 93.1, + "system/network_receive_megabytes": 0.012895999999955166, + "system/network_transmit_megabytes": 0.0012200000001030276, + "system/system_memory_usage_megabytes": 4608.4, + "system/system_memory_usage_percentage": 30.6, + "training_score": -25.253110839387183 + }, + { + "best_max_depth": "7", + "conf_file": "confs/tuning.yaml", + "cv": "KIND='TimeSeriesSplitter' gap=0 n_splits=4 test_size=1440", + "error_score": "raise", + "estimator": "KIND='BaselineSklearnModel' max_depth=20 n_estimators=200 random_state=42", + "n_jobs": "None", + "param_grid": "{'max_depth': [3, 5, 7]}", + "pre_dispatch": "2*n_jobs", + "refit": "True", + "return_train_score": "False", + "scoring": "", + "verbose": "3" + }, + { + "estimator_class": "sklearn.model_selection._search.GridSearchCV", + "estimator_name": "GridSearchCV", + "mlflow.gitRepoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.log-model.history": "[{\"run_id\": \"857f0dd0a344439693b8cb9ecbf3ee10\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:05.731840\", \"model_uuid\": \"4ada6a336e424391bf2cdf750e2c7042\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"857f0dd0a344439693b8cb9ecbf3ee10\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:37:11.174511\", \"model_uuid\": \"7be250b39fd343ec99975be2a910fb2a\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", + "mlflow.project.backend": "local", + "mlflow.project.entryPoint": "main", + "mlflow.project.env": "virtualenv", + "mlflow.runName": "Tuning", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.git.repoURL": "git@github.com:fmind/mlops-python-package", + "mlflow.source.name": "file:///home/fmind/mlops-python-package", + "mlflow.source.type": "PROJECT", + "mlflow.user": "fmind" + }, + "fmind", + "file:///home/fmind/mlops-python-package", + "PROJECT", + "main", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "git@github.com:fmind/mlops-python-package", + "git@github.com:fmind/mlops-python-package", + "Tuning", + "virtualenv", + "local", "GridSearchCV", "sklearn.model_selection._search.GridSearchCV", - "[{\"run_id\": \"38a4df3abf194e06b5eeaaa0bb383ee8\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-07-21 15:02:33.521812\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"67c6c33385b04cb5ad03402d17d4e377\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3726525}, {\"run_id\": \"38a4df3abf194e06b5eeaaa0bb383ee8\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-07-21 15:02:37.041779\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.4\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.4.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}, \"model_uuid\": \"301cd67b8f704f2280ce6b59d6846c7c\", \"mlflow_version\": \"2.14.3\", \"signature\": {\"inputs\": \"[{\\\"type\\\": \\\"datetime\\\", \\\"name\\\": \\\"dteday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"season\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"yr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"mnth\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"hr\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"holiday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weekday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"boolean\\\", \\\"name\\\": \\\"workingday\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"integer\\\", \\\"name\\\": \\\"weathersit\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"temp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"atemp\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"hum\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"float\\\", \\\"name\\\": \\\"windspeed\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"casual\\\", \\\"required\\\": true}, {\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"registered\\\", \\\"required\\\": true}]\", \"outputs\": \"[{\\\"type\\\": \\\"long\\\", \\\"name\\\": \\\"prediction\\\", \\\"required\\\": true}]\", \"params\": null}, \"saved_input_example_info\": {\"artifact_path\": \"input_example.json\", \"type\": \"dataframe\", \"pandas_orient\": \"split\"}, \"model_size_bytes\": 3713919}]", + "[{\"run_id\": \"857f0dd0a344439693b8cb9ecbf3ee10\", \"artifact_path\": \"model\", \"utc_time_created\": \"2024-12-14 14:37:05.731840\", \"model_uuid\": \"4ada6a336e424391bf2cdf750e2c7042\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}, {\"run_id\": \"857f0dd0a344439693b8cb9ecbf3ee10\", \"artifact_path\": \"best_estimator\", \"utc_time_created\": \"2024-12-14 14:37:11.174511\", \"model_uuid\": \"7be250b39fd343ec99975be2a910fb2a\", \"flavors\": {\"python_function\": {\"model_path\": \"model.pkl\", \"predict_fn\": \"predict\", \"loader_module\": \"mlflow.sklearn\", \"python_version\": \"3.12.7\", \"env\": {\"conda\": \"conda.yaml\", \"virtualenv\": \"python_env.yaml\"}}, \"sklearn\": {\"pickled_model\": \"model.pkl\", \"sklearn_version\": \"1.5.2\", \"serialization_format\": \"cloudpickle\", \"code\": null}}}]", null, null ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "005e2f5532664a7aa7aafaa1509c3575", - "38a4df3abf194e06b5eeaaa0bb383ee8" + "6f68ed7fee59407f83bff115536fdfc0", + "9c36f396f2214f7bb0c6d9713d5e833e", + "857f0dd0a344439693b8cb9ecbf3ee10" ], "legendgroup": "Tuning", "line": { "color": "rgba(255,255,255,0)" }, "marker": { - "color": "#19d3f3" + "color": "#B6E880" }, "name": "Tuning", "offsetgroup": "Tuning", @@ -7320,8 +8380,9 @@ "showlegend": true, "type": "box", "x": [ - 100.111, - 38.088 + 47.159, + 47.579, + 133.542 ], "x0": " ", "xaxis": "x", @@ -7333,24 +8394,24 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/9867f954f07b448a901844dae9fb8d23/artifacts", - "2024-07-21T15:29:05.256000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/e3975321ef4645b698cd8832a2ead79d/artifacts", + "2024-12-14T14:41:20.607000", + "300971336194126583", "active", - "9867f954f07b448a901844dae9fb8d23", - "rumbling-bass-180", - "9867f954f07b448a901844dae9fb8d23", - "2024-07-21T15:27:31.082000", + "e3975321ef4645b698cd8832a2ead79d", + "lyrical-asp-40", + "e3975321ef4645b698cd8832a2ead79d", + "2024-12-14T14:40:34.416000", "FINISHED", "fmind", { - "mean_fit_time": 1.2907636165618896, - "mean_score_time": 0.04417002201080322, - "mean_test_score": -16644.957118055558, + "mean_fit_time": 1.5403740406036377, + "mean_score_time": 0.04439198970794678, + "mean_test_score": -2845.011111111111, "rank_test_score": 3, - "std_fit_time": 0.20825952588936553, - "std_score_time": 0.005795796359843565, - "std_test_score": 5315.459715152708 + "std_fit_time": 0.26986769561457347, + "std_score_time": 0.0011455098275932603, + "std_test_score": 1362.0703338739036 }, { "max_depth": "3", @@ -7361,9 +8422,9 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "005e2f5532664a7aa7aafaa1509c3575", - "mlflow.runName": "rumbling-bass-180", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "6f68ed7fee59407f83bff115536fdfc0", + "mlflow.runName": "lyrical-asp-40", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" @@ -7372,41 +8433,40 @@ "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, - "rumbling-bass-180", null, + "lyrical-asp-40", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "005e2f5532664a7aa7aafaa1509c3575" + "6f68ed7fee59407f83bff115536fdfc0" ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "9867f954f07b448a901844dae9fb8d23" + "e3975321ef4645b698cd8832a2ead79d" ], - "legendgroup": "rumbling-bass-180", + "legendgroup": "lyrical-asp-40", "line": { "color": "rgba(255,255,255,0)" }, "marker": { - "color": "#FF6692" + "color": "#FF97FF" }, - "name": "rumbling-bass-180", - "offsetgroup": "rumbling-bass-180", + "name": "lyrical-asp-40", + "offsetgroup": "lyrical-asp-40", "orientation": "h", "pointpos": 0, "showlegend": true, "type": "box", "x": [ - 94.174 + 46.191 ], "x0": " ", "xaxis": "x", @@ -7418,24 +8478,24 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/9b9c55b6f0874d0eb97963fff97c172c/artifacts", - "2024-07-21T15:29:05.256000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/71d90d8febd9448584236ff7da490944/artifacts", + "2024-12-14T14:39:21.213000", + "300971336194126583", "active", - "9b9c55b6f0874d0eb97963fff97c172c", - "redolent-koi-314", - "9b9c55b6f0874d0eb97963fff97c172c", - "2024-07-21T15:27:31.082000", + "71d90d8febd9448584236ff7da490944", + "classy-yak-743", + "71d90d8febd9448584236ff7da490944", + "2024-12-14T14:38:34.646000", "FINISHED", "fmind", { - "mean_fit_time": 1.8935438394546509, - "mean_score_time": 0.04412144422531128, - "mean_test_score": -8287.860416666666, + "mean_fit_time": 2.310912549495697, + "mean_score_time": 0.04688429832458496, + "mean_test_score": -711.7982638888889, "rank_test_score": 2, - "std_fit_time": 0.35395270632391435, - "std_score_time": 0.001845193435988503, - "std_test_score": 1045.7595024691313 + "std_fit_time": 0.34795851007651757, + "std_score_time": 0.0015674315113117095, + "std_test_score": 506.2583283876414 }, { "max_depth": "5", @@ -7446,9 +8506,9 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "005e2f5532664a7aa7aafaa1509c3575", - "mlflow.runName": "redolent-koi-314", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "9c36f396f2214f7bb0c6d9713d5e833e", + "mlflow.runName": "classy-yak-743", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" @@ -7457,41 +8517,40 @@ "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, null, - "redolent-koi-314", - null, + "classy-yak-743", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "005e2f5532664a7aa7aafaa1509c3575" + "9c36f396f2214f7bb0c6d9713d5e833e" ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "9b9c55b6f0874d0eb97963fff97c172c" + "71d90d8febd9448584236ff7da490944" ], - "legendgroup": "redolent-koi-314", + "legendgroup": "classy-yak-743", "line": { "color": "rgba(255,255,255,0)" }, "marker": { - "color": "#B6E880" + "color": "#FECB52" }, - "name": "redolent-koi-314", - "offsetgroup": "redolent-koi-314", + "name": "classy-yak-743", + "offsetgroup": "classy-yak-743", "orientation": "h", "pointpos": 0, "showlegend": true, "type": "box", "x": [ - 94.174 + 46.567 ], "x0": " ", "xaxis": "x", @@ -7503,24 +8562,24 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/b8cf5f33d9ac429fab195d32a9326725/artifacts", - "2024-07-21T15:29:05.256000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/d927facc28d74fbe8d607c7f1656321a/artifacts", + "2024-12-14T14:39:21.213000", + "300971336194126583", "active", - "b8cf5f33d9ac429fab195d32a9326725", - "languid-eel-151", - "b8cf5f33d9ac429fab195d32a9326725", - "2024-07-21T15:27:31.082000", + "d927facc28d74fbe8d607c7f1656321a", + "legendary-dove-782", + "d927facc28d74fbe8d607c7f1656321a", + "2024-12-14T14:38:34.646000", "FINISHED", "fmind", { - "mean_fit_time": 4.7537882924079895, - "mean_score_time": 0.1421765685081482, - "mean_test_score": -5517.252604166667, + "mean_fit_time": 3.1809995770454407, + "mean_score_time": 0.05519115924835205, + "mean_test_score": -319.5045138888889, "rank_test_score": 1, - "std_fit_time": 3.0094242269462623, - "std_score_time": 0.10171904359731292, - "std_test_score": 1613.520146542553 + "std_fit_time": 0.4297416271813794, + "std_score_time": 0.002215700766888834, + "std_test_score": 350.4638291591938 }, { "max_depth": "7", @@ -7531,9 +8590,9 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "005e2f5532664a7aa7aafaa1509c3575", - "mlflow.runName": "languid-eel-151", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "9c36f396f2214f7bb0c6d9713d5e833e", + "mlflow.runName": "legendary-dove-782", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" @@ -7542,41 +8601,40 @@ "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, - "languid-eel-151", null, + "legendary-dove-782", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "005e2f5532664a7aa7aafaa1509c3575" + "9c36f396f2214f7bb0c6d9713d5e833e" ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "b8cf5f33d9ac429fab195d32a9326725" + "d927facc28d74fbe8d607c7f1656321a" ], - "legendgroup": "languid-eel-151", + "legendgroup": "legendary-dove-782", "line": { "color": "rgba(255,255,255,0)" }, "marker": { - "color": "#FF97FF" + "color": "#636efa" }, - "name": "languid-eel-151", - "offsetgroup": "languid-eel-151", + "name": "legendary-dove-782", + "offsetgroup": "legendary-dove-782", "orientation": "h", "pointpos": 0, "showlegend": true, "type": "box", "x": [ - 94.174 + 46.567 ], "x0": " ", "xaxis": "x", @@ -7588,24 +8646,24 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/38c04e59e8344096bf574faf63b10cd1/artifacts", - "2024-07-21T15:02:39.624000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/dafb45859edf45979643cccb32ea3828/artifacts", + "2024-12-14T14:39:21.213000", + "300971336194126583", "active", - "38c04e59e8344096bf574faf63b10cd1", - "charming-boar-572", - "38c04e59e8344096bf574faf63b10cd1", - "2024-07-21T15:02:02.378000", + "dafb45859edf45979643cccb32ea3828", + "big-duck-612", + "dafb45859edf45979643cccb32ea3828", + "2024-12-14T14:38:34.646000", "FINISHED", "fmind", { - "mean_fit_time": 1.0880586504936218, - "mean_score_time": 0.03774416446685791, - "mean_test_score": -16644.957118055558, + "mean_fit_time": 1.4297820329666138, + "mean_score_time": 0.042337894439697266, + "mean_test_score": -2845.011111111111, "rank_test_score": 3, - "std_fit_time": 0.15489854371698458, - "std_score_time": 0.001806776770578061, - "std_test_score": 5315.459715152708 + "std_fit_time": 0.1887011060177697, + "std_score_time": 0.0005584766538439517, + "std_test_score": 1362.0703338739036 }, { "max_depth": "3", @@ -7616,9 +8674,9 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "38a4df3abf194e06b5eeaaa0bb383ee8", - "mlflow.runName": "charming-boar-572", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "9c36f396f2214f7bb0c6d9713d5e833e", + "mlflow.runName": "big-duck-612", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" @@ -7627,41 +8685,40 @@ "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, null, - "charming-boar-572", - null, + "big-duck-612", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "38a4df3abf194e06b5eeaaa0bb383ee8" + "9c36f396f2214f7bb0c6d9713d5e833e" ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "38c04e59e8344096bf574faf63b10cd1" + "dafb45859edf45979643cccb32ea3828" ], - "legendgroup": "charming-boar-572", + "legendgroup": "big-duck-612", "line": { "color": "rgba(255,255,255,0)" }, "marker": { - "color": "#FECB52" + "color": "#EF553B" }, - "name": "charming-boar-572", - "offsetgroup": "charming-boar-572", + "name": "big-duck-612", + "offsetgroup": "big-duck-612", "orientation": "h", "pointpos": 0, "showlegend": true, "type": "box", "x": [ - 37.246 + 46.567 ], "x0": " ", "xaxis": "x", @@ -7673,27 +8730,27 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/82f77216b8ee4a2d8dc0869d4a6bfc48/artifacts", - "2024-07-21T15:02:39.624000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/006ccc2cf48e489099b285ab6d538d1a/artifacts", + "2024-12-14T14:37:15.261000", + "300971336194126583", "active", - "82f77216b8ee4a2d8dc0869d4a6bfc48", - "luxuriant-bird-233", - "82f77216b8ee4a2d8dc0869d4a6bfc48", - "2024-07-21T15:02:02.378000", + "006ccc2cf48e489099b285ab6d538d1a", + "sincere-sow-522", + "006ccc2cf48e489099b285ab6d538d1a", + "2024-12-14T14:35:02.506000", "FINISHED", "fmind", { - "mean_fit_time": 2.5814242362976074, - "mean_score_time": 0.04819995164871216, - "mean_test_score": -5517.252604166667, - "rank_test_score": 1, - "std_fit_time": 0.41318261395357886, - "std_score_time": 0.00042696711729265627, - "std_test_score": 1613.520146542553 + "mean_fit_time": 1.635141909122467, + "mean_score_time": 0.04768478870391846, + "mean_test_score": -2845.011111111111, + "rank_test_score": 3, + "std_fit_time": 0.16971366972379937, + "std_score_time": 0.002114185952165752, + "std_test_score": 1362.0703338739036 }, { - "max_depth": "7", + "max_depth": "3", "n_estimators": "200", "random_state": "42" }, @@ -7701,9 +8758,9 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "38a4df3abf194e06b5eeaaa0bb383ee8", - "mlflow.runName": "luxuriant-bird-233", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "857f0dd0a344439693b8cb9ecbf3ee10", + "mlflow.runName": "sincere-sow-522", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" @@ -7712,41 +8769,40 @@ "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", - null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, - "luxuriant-bird-233", null, + "sincere-sow-522", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "38a4df3abf194e06b5eeaaa0bb383ee8" + "857f0dd0a344439693b8cb9ecbf3ee10" ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "82f77216b8ee4a2d8dc0869d4a6bfc48" + "006ccc2cf48e489099b285ab6d538d1a" ], - "legendgroup": "luxuriant-bird-233", + "legendgroup": "sincere-sow-522", "line": { "color": "rgba(255,255,255,0)" }, "marker": { - "color": "#636efa" + "color": "#00cc96" }, - "name": "luxuriant-bird-233", - "offsetgroup": "luxuriant-bird-233", + "name": "sincere-sow-522", + "offsetgroup": "sincere-sow-522", "orientation": "h", "pointpos": 0, "showlegend": true, "type": "box", "x": [ - 37.246 + 132.755 ], "x0": " ", "xaxis": "x", @@ -7758,24 +8814,24 @@ "boxpoints": "all", "customdata": [ [ - "file:///home/fmind/mlops-python-package/mlruns/598443335336095652/e110400581f846d08f802c970ae25458/artifacts", - "2024-07-21T15:02:39.624000", - "598443335336095652", + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/44be742accc846c784acacab379cdca3/artifacts", + "2024-12-14T14:37:15.261000", + "300971336194126583", "active", - "e110400581f846d08f802c970ae25458", - "capricious-bear-977", - "e110400581f846d08f802c970ae25458", - "2024-07-21T15:02:02.378000", + "44be742accc846c784acacab379cdca3", + "bittersweet-fowl-631", + "44be742accc846c784acacab379cdca3", + "2024-12-14T14:35:02.506000", "FINISHED", "fmind", { - "mean_fit_time": 1.7571877837181091, - "mean_score_time": 0.0408632755279541, - "mean_test_score": -8287.860416666666, + "mean_fit_time": 2.448797047138214, + "mean_score_time": 0.05008918046951294, + "mean_test_score": -711.7982638888889, "rank_test_score": 2, - "std_fit_time": 0.2750353199252692, - "std_score_time": 0.0028638736758093077, - "std_test_score": 1045.7595024691313 + "std_fit_time": 0.33258931824071436, + "std_score_time": 0.0004049252455184904, + "std_test_score": 506.2583283876414 }, { "max_depth": "5", @@ -7786,9 +8842,9 @@ "estimator_class": "bikes.core.models.BaselineSklearnModel", "estimator_name": "BaselineSklearnModel", "mlflow.autologging": "sklearn", - "mlflow.parentRunId": "38a4df3abf194e06b5eeaaa0bb383ee8", - "mlflow.runName": "capricious-bear-977", - "mlflow.source.git.commit": "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "mlflow.parentRunId": "857f0dd0a344439693b8cb9ecbf3ee10", + "mlflow.runName": "bittersweet-fowl-631", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", "mlflow.source.type": "LOCAL", "mlflow.user": "fmind" @@ -7797,41 +8853,124 @@ "/home/fmind/mlops-python-package/src/bikes/__main__.py", "LOCAL", null, - "ee17d0a9de59efd2eb99d667786ac417ec8b3b63", + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + null, + null, + "bittersweet-fowl-631", + null, + null, + "BaselineSklearnModel", + "bikes.core.models.BaselineSklearnModel", + null, + "sklearn", + "857f0dd0a344439693b8cb9ecbf3ee10" + ] + ], + "fillcolor": "rgba(255,255,255,0)", + "hoveron": "points", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", + "hovertext": [ + "44be742accc846c784acacab379cdca3" + ], + "legendgroup": "bittersweet-fowl-631", + "line": { + "color": "rgba(255,255,255,0)" + }, + "marker": { + "color": "#ab63fa" + }, + "name": "bittersweet-fowl-631", + "offsetgroup": "bittersweet-fowl-631", + "orientation": "h", + "pointpos": 0, + "showlegend": true, + "type": "box", + "x": [ + 132.755 + ], + "x0": " ", + "xaxis": "x", + "y0": " ", + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "boxpoints": "all", + "customdata": [ + [ + "file:///home/fmind/mlops-python-package/mlruns/300971336194126583/e9980ab9c8db4f80a18aadfa47a3e83e/artifacts", + "2024-12-14T14:37:15.261000", + "300971336194126583", + "active", + "e9980ab9c8db4f80a18aadfa47a3e83e", + "smiling-hound-227", + "e9980ab9c8db4f80a18aadfa47a3e83e", + "2024-12-14T14:35:02.506000", + "FINISHED", + "fmind", + { + "mean_fit_time": 3.4514302015304565, + "mean_score_time": 0.060173630714416504, + "mean_test_score": -319.5045138888889, + "rank_test_score": 1, + "std_fit_time": 0.44103751840131455, + "std_score_time": 0.002450930454703554, + "std_test_score": 350.4638291591938 + }, + { + "max_depth": "7", + "n_estimators": "200", + "random_state": "42" + }, + { + "estimator_class": "bikes.core.models.BaselineSklearnModel", + "estimator_name": "BaselineSklearnModel", + "mlflow.autologging": "sklearn", + "mlflow.parentRunId": "857f0dd0a344439693b8cb9ecbf3ee10", + "mlflow.runName": "smiling-hound-227", + "mlflow.source.git.commit": "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", + "mlflow.source.name": "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "mlflow.source.type": "LOCAL", + "mlflow.user": "fmind" + }, + "fmind", + "/home/fmind/mlops-python-package/src/bikes/__main__.py", + "LOCAL", null, + "1a4b8a25a32f0e933a7db9ec47f763cc7bd17d1c", null, - "capricious-bear-977", null, + "smiling-hound-227", null, null, "BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", null, "sklearn", - "38a4df3abf194e06b5eeaaa0bb383ee8" + "857f0dd0a344439693b8cb9ecbf3ee10" ] ], "fillcolor": "rgba(255,255,255,0)", "hoveron": "points", - "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
mlflow.datasets=%{customdata[23]}
estimator_name=%{customdata[24]}
estimator_class=%{customdata[25]}
mlflow.log-model.history=%{customdata[26]}
mlflow.autologging=%{customdata[27]}
mlflow.parentRunId=%{customdata[28]}", + "hovertemplate": "%{hovertext}

run_name=%{customdata[5]}
run_time_secs=%{x}
artifact_uri=%{customdata[0]}
end_time=%{customdata[1]}
experiment_id=%{customdata[2]}
lifecycle_stage=%{customdata[3]}
run_id=%{customdata[4]}
run_uuid=%{customdata[6]}
start_time=%{customdata[7]}
status=%{customdata[8]}
user_id=%{customdata[9]}
metrics=%{customdata[10]}
params=%{customdata[11]}
tags=%{customdata[12]}
mlflow.user=%{customdata[13]}
mlflow.source.name=%{customdata[14]}
mlflow.source.type=%{customdata[15]}
mlflow.project.entryPoint=%{customdata[16]}
mlflow.source.git.commit=%{customdata[17]}
mlflow.source.git.repoURL=%{customdata[18]}
mlflow.gitRepoURL=%{customdata[19]}
mlflow.runName=%{customdata[20]}
mlflow.project.env=%{customdata[21]}
mlflow.project.backend=%{customdata[22]}
estimator_name=%{customdata[23]}
estimator_class=%{customdata[24]}
mlflow.log-model.history=%{customdata[25]}
mlflow.autologging=%{customdata[26]}
mlflow.parentRunId=%{customdata[27]}", "hovertext": [ - "e110400581f846d08f802c970ae25458" + "e9980ab9c8db4f80a18aadfa47a3e83e" ], - "legendgroup": "capricious-bear-977", + "legendgroup": "smiling-hound-227", "line": { "color": "rgba(255,255,255,0)" }, "marker": { - "color": "#EF553B" + "color": "#FFA15A" }, - "name": "capricious-bear-977", - "offsetgroup": "capricious-bear-977", + "name": "smiling-hound-227", + "offsetgroup": "smiling-hound-227", "orientation": "h", "pointpos": 0, "showlegend": true, "type": "box", "x": [ - 37.246 + 132.755 ], "x0": " ", "xaxis": "x", @@ -8735,18 +9874,27 @@ null, null, "sklearn.pipeline.Pipeline", - "sklearn.model_selection._search.GridSearchCV", "bikes.core.models.BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", + "sklearn.model_selection._search.GridSearchCV", "bikes.core.models.BaselineSklearnModel", null, null, null, null, "sklearn.pipeline.Pipeline", + "bikes.core.models.BaselineSklearnModel", "sklearn.model_selection._search.GridSearchCV", "bikes.core.models.BaselineSklearnModel", "bikes.core.models.BaselineSklearnModel", + null, + null, + null, + null, + "sklearn.pipeline.Pipeline", + "bikes.core.models.BaselineSklearnModel", + "bikes.core.models.BaselineSklearnModel", + "sklearn.model_selection._search.GridSearchCV", "bikes.core.models.BaselineSklearnModel" ], "xaxis": "x", @@ -8768,6 +9916,15 @@ 1, 1, 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, 1 ], "yaxis": "y" @@ -9645,7 +10802,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/processing.ipynb b/notebooks/processing.ipynb index 78f28c4..c967b38 100644 --- a/notebooks/processing.ipynb +++ b/notebooks/processing.ipynb @@ -65,7 +65,7 @@ "outputs": [], "source": [ "INDEX_COL = \"instant\"\n", - "TARGET_COL = 'cnt'" + "TARGET_COL = \"cnt\"" ] }, { @@ -81,7 +81,7 @@ "metadata": {}, "outputs": [], "source": [ - "SHUFFLE = False # time-sensitive\n", + "SHUFFLE = False # time-sensitive\n", "TEST_SIZE = 0.2" ] }, @@ -98,8 +98,7 @@ "metadata": {}, "outputs": [], "source": [ - "SAMPLE_RATIO = 0.15\n", - "SAMPLE_RANDOM_STATE = 0" + "SAMPLE_SIZE = 2000" ] }, { @@ -659,7 +658,7 @@ { "data": { "text/plain": [ - "((2085, 15), (2085, 1))" + "((2000, 15), (2000, 1))" ] }, "execution_count": 11, @@ -668,8 +667,8 @@ } ], "source": [ - "inputs_train_sample = inputs_train.sample(frac=SAMPLE_RATIO, random_state=SAMPLE_RANDOM_STATE)\n", - "targets_train_sample = targets_train.sample(frac=SAMPLE_RATIO, random_state=SAMPLE_RANDOM_STATE)\n", + "inputs_train_sample = inputs_train.tail(SAMPLE_SIZE)\n", + "targets_train_sample = targets_train.tail(SAMPLE_SIZE)\n", "inputs_train_sample.shape, targets_train_sample.shape" ] }, @@ -711,7 +710,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/prototype.ipynb b/notebooks/prototype.ipynb index 7d222f6..fc52d1e 100644 --- a/notebooks/prototype.ipynb +++ b/notebooks/prototype.ipynb @@ -45,9 +45,9 @@ "outputs": [], "source": [ "import pandas as pd\n", - "import sklearn as sk\n", - "import plotly.io as pio\n", "import plotly.express as px\n", + "import plotly.io as pio\n", + "import sklearn as sk\n", "from sklearn import compose, ensemble, metrics, model_selection, pipeline, preprocessing" ] }, @@ -90,7 +90,7 @@ "source": [ "ROOT = Path(\"../\")\n", "DATA = str(ROOT / \"data\")\n", - "CACHE = str(ROOT / \".cache\")" + "CACHE = str(ROOT / \".cache\")" ] }, { @@ -141,7 +141,7 @@ "source": [ "SPLITS = 4\n", "SHUFFLE = False # required (time sensitive)\n", - "TEST_SIZE = 24 * 30 * 2 # use 2 months for backtesting" + "TEST_SIZE = 24 * 30 * 2 # use 2 months for backtesting" ] }, { @@ -203,7 +203,7 @@ "outputs": [], "source": [ "# change the default theme\n", - "pio.templates.default = \"plotly_dark\"" + "pio.templates.default = \"plotly_white\"" ] }, { @@ -575,7 +575,7 @@ " \n", " \n", " top\n", - " 2011-01-01\n", + " 2012-12-31\n", " NaN\n", " NaN\n", " NaN\n", @@ -752,7 +752,7 @@ " dteday season yr mnth hr \\\n", "count 17379 17379.000000 17379.000000 17379.000000 17379.000000 \n", "unique 731 NaN NaN NaN NaN \n", - "top 2011-01-01 NaN NaN NaN NaN \n", + "top 2012-12-31 NaN NaN NaN NaN \n", "freq 24 NaN NaN NaN NaN \n", "mean NaN 2.501640 0.502561 6.537775 11.546752 \n", "std NaN 1.106918 0.500008 3.438776 6.914405 \n", @@ -105220,14 +105220,14 @@ "bar": [ { "error_x": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "error_y": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -105243,7 +105243,7 @@ { "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -105258,18 +105258,18 @@ "carpet": [ { "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "type": "carpet" } @@ -105587,10 +105587,10 @@ ], "scatter": [ { - "marker": { - "line": { - "color": "#283442" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -105637,8 +105637,9 @@ "scattergl": [ { "marker": { - "line": { - "color": "#283442" + "colorbar": { + "outlinewidth": 0, + "ticks": "" } }, "type": "scattergl" @@ -105743,18 +105744,18 @@ { "cells": { "fill": { - "color": "#506784" + "color": "#EBF0F8" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "header": { "fill": { - "color": "#2a3f5f" + "color": "#C8D4E3" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "type": "table" @@ -105763,7 +105764,7 @@ }, "layout": { "annotationdefaults": { - "arrowcolor": "#f2f5fa", + "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, @@ -105919,123 +105920,113 @@ "#FECB52" ], "font": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", "showlakes": true, "showland": true, - "subunitcolor": "#506784" + "subunitcolor": "#C8D4E3" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { - "style": "dark" + "style": "light" }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", + "paper_bgcolor": "white", + "plot_bgcolor": "white", "polar": { "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" } }, "scene": { "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" } }, "shapedefaults": { "line": { - "color": "#f2f5fa" + "color": "#2a3f5f" } }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, "ternary": { "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" } }, "title": { "x": 0.05 }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, "xaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 }, "yaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 } } @@ -106052,8 +106043,11 @@ ], "source": [ "px.scatter_matrix(\n", - " hour, dimensions=[\"registered\", \"casual\", \"cnt\", \"mnth\", \"hr\"], color=TARGET,\n", - " height=800, title=\"Analysis of top features\",\n", + " hour,\n", + " dimensions=[\"registered\", \"casual\", \"cnt\", \"mnth\", \"hr\"],\n", + " color=TARGET,\n", + " height=800,\n", + " title=\"Analysis of top features\",\n", ")" ] }, @@ -106087,7 +106081,7 @@ ], "source": [ "inputs, targets = hour.drop(columns=TARGET), hour[TARGET]\n", - "print('Inputs:', inputs.shape, '; Targets:', targets.shape)" + "print(\"Inputs:\", inputs.shape, \"; Targets:\", targets.shape)" ] }, { @@ -106125,8 +106119,12 @@ "metadata": {}, "outputs": [], "source": [ - "assert inputs_train.index.max() < inputs_test.index.min(), \"Inputs train should be before inputs test\"\n", - "assert targets_train.index.max() < targets_test.index.min(), \"Targets train should be before targets test\"" + "assert (\n", + " inputs_train.index.max() < inputs_test.index.min()\n", + "), \"Inputs train should be before inputs test\"\n", + "assert (\n", + " targets_train.index.max() < targets_test.index.min()\n", + "), \"Targets train should be before targets test\"" ] }, { @@ -106154,7 +106152,9 @@ " \"season\",\n", " \"weathersit\",\n", "]\n", - "assert all(col in inputs.columns for col in categoricals), \"All categorical columns should be in inputs.\"" + "assert all(\n", + " col in inputs.columns for col in categoricals\n", + "), \"All categorical columns should be in inputs.\"" ] }, { @@ -106177,7 +106177,9 @@ " \"casual\",\n", " # \"registered\", # too correlated with target\n", "]\n", - "assert all(col in inputs.columns for col in numericals), \"All numerical columns should be in inputs.\"" + "assert all(\n", + " col in inputs.columns for col in numericals\n", + "), \"All numerical columns should be in inputs.\"" ] }, { @@ -106620,7 +106622,7 @@ " 'workingday', 'temp',\n", " 'atemp', 'hum', 'windspeed',\n", " 'casual'])])),\n", - " ('regressor', RandomForestRegressor(random_state=42))])In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(memory='../.cache',\n", @@ -106665,12 +106667,20 @@ "source": [ "draft = pipeline.Pipeline(\n", " steps=[\n", - " (\"transformer\", compose.ColumnTransformer([\n", - " (\"categoricals\", preprocessing.OneHotEncoder(\n", - " sparse_output=False, handle_unknown=\"ignore\"\n", - " ), categoricals),\n", - " (\"numericals\", \"passthrough\", numericals),\n", - " ], remainder=\"drop\")),\n", + " (\n", + " \"transformer\",\n", + " compose.ColumnTransformer(\n", + " [\n", + " (\n", + " \"categoricals\",\n", + " preprocessing.OneHotEncoder(sparse_output=False, handle_unknown=\"ignore\"),\n", + " categoricals,\n", + " ),\n", + " (\"numericals\", \"passthrough\", numericals),\n", + " ],\n", + " remainder=\"drop\",\n", + " ),\n", + " ),\n", " (\"regressor\", ensemble.RandomForestRegressor(random_state=RANDOM)),\n", " ],\n", " memory=CACHE,\n", @@ -106710,8 +106720,10 @@ ], "source": [ "splitter = model_selection.TimeSeriesSplit(n_splits=SPLITS, test_size=TEST_SIZE)\n", - "for train_index, test_index in splitter.split(inputs_train): # test splitter generation\n", - " print(f\"Train: {train_index.min()} - {train_index.max()}; Test: {test_index.min()} - {test_index.max()}\")" + "for train_index, test_index in splitter.split(inputs_train): # test splitter generation\n", + " print(\n", + " f\"Train: {train_index.min()} - {train_index.max()}; Test: {test_index.min()} - {test_index.max()}\"\n", + " )" ] }, { @@ -106739,7 +106751,23 @@ "text": [ "/home/fmind/mlops-python-package/.venv/lib/python3.12/site-packages/joblib/memory.py:577: UserWarning:\n", "\n", - "Persisting input arguments took 1.02s to run.If this happens often in your code, it can cause performance problems (results will be correct in all cases). The reason for this is probably some large input arguments for a wrapped function.\n", + "Persisting input arguments took 0.68s to run.If this happens often in your code, it can cause performance problems (results will be correct in all cases). The reason for this is probably some large input arguments for a wrapped function.\n", + "\n", + "/home/fmind/mlops-python-package/.venv/lib/python3.12/site-packages/joblib/memory.py:577: UserWarning:\n", + "\n", + "Persisting input arguments took 0.69s to run.If this happens often in your code, it can cause performance problems (results will be correct in all cases). The reason for this is probably some large input arguments for a wrapped function.\n", + "\n", + "/home/fmind/mlops-python-package/.venv/lib/python3.12/site-packages/joblib/memory.py:577: UserWarning:\n", + "\n", + "Persisting input arguments took 0.79s to run.If this happens often in your code, it can cause performance problems (results will be correct in all cases). The reason for this is probably some large input arguments for a wrapped function.\n", + "\n", + "/home/fmind/mlops-python-package/.venv/lib/python3.12/site-packages/joblib/memory.py:577: UserWarning:\n", + "\n", + "Persisting input arguments took 0.90s to run.If this happens often in your code, it can cause performance problems (results will be correct in all cases). The reason for this is probably some large input arguments for a wrapped function.\n", + "\n", + "/home/fmind/mlops-python-package/.venv/lib/python3.12/site-packages/joblib/memory.py:577: UserWarning:\n", + "\n", + "Persisting input arguments took 1.00s to run.If this happens often in your code, it can cause performance problems (results will be correct in all cases). The reason for this is probably some large input arguments for a wrapped function.\n", "\n" ] }, @@ -107175,7 +107203,7 @@ " RandomForestRegressor(random_state=42))]),\n", " param_grid={'regressor__max_depth': [15, 20, 25],\n", " 'regressor__n_estimators': [150, 200, 250]},\n", - " scoring='neg_mean_squared_error', verbose=1)In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "GridSearchCV(cv=TimeSeriesSplit(gap=0, max_train_size=None, n_splits=4, test_size=1440),\n", @@ -107314,10 +107344,10 @@ " \n", " \n", " 4\n", - " 9.851526\n", - " 2.065956\n", - " 0.071210\n", - " 0.029418\n", + " 9.947961\n", + " 1.757322\n", + " 0.065129\n", + " 0.012880\n", " 20\n", " 200\n", " {'regressor__max_depth': 20, 'regressor__n_est...\n", @@ -107331,10 +107361,10 @@ " \n", " \n", " 1\n", - " 6.918022\n", - " 0.886340\n", - " 0.043904\n", - " 0.005060\n", + " 9.226854\n", + " 0.965719\n", + " 0.050904\n", + " 0.002971\n", " 15\n", " 200\n", " {'regressor__max_depth': 15, 'regressor__n_est...\n", @@ -107348,10 +107378,10 @@ " \n", " \n", " 5\n", - " 11.964708\n", - " 1.272631\n", - " 0.074480\n", - " 0.013998\n", + " 11.779174\n", + " 1.353100\n", + " 0.066897\n", + " 0.005953\n", " 20\n", " 250\n", " {'regressor__max_depth': 20, 'regressor__n_est...\n", @@ -107365,10 +107395,10 @@ " \n", " \n", " 7\n", - " 8.290697\n", - " 1.105596\n", - " 0.049447\n", - " 0.004403\n", + " 9.096495\n", + " 1.247697\n", + " 0.054601\n", + " 0.006268\n", " 25\n", " 200\n", " {'regressor__max_depth': 25, 'regressor__n_est...\n", @@ -107382,10 +107412,10 @@ " \n", " \n", " 2\n", - " 8.716824\n", - " 1.402426\n", - " 0.055110\n", - " 0.008181\n", + " 10.684988\n", + " 1.501814\n", + " 0.064013\n", + " 0.008608\n", " 15\n", " 250\n", " {'regressor__max_depth': 15, 'regressor__n_est...\n", @@ -107403,18 +107433,18 @@ ], "text/plain": [ " mean_fit_time std_fit_time mean_score_time std_score_time \\\n", - "4 9.851526 2.065956 0.071210 0.029418 \n", - "1 6.918022 0.886340 0.043904 0.005060 \n", - "5 11.964708 1.272631 0.074480 0.013998 \n", - "7 8.290697 1.105596 0.049447 0.004403 \n", - "2 8.716824 1.402426 0.055110 0.008181 \n", + "4 9.947961 1.757322 0.065129 0.012880 \n", + "1 9.226854 0.965719 0.050904 0.002971 \n", + "5 11.779174 1.353100 0.066897 0.005953 \n", + "7 9.096495 1.247697 0.054601 0.006268 \n", + "2 10.684988 1.501814 0.064013 0.008608 \n", "\n", - " param_regressor__max_depth param_regressor__n_estimators \\\n", - "4 20 200 \n", - "1 15 200 \n", - "5 20 250 \n", - "7 25 200 \n", - "2 15 250 \n", + " param_regressor__max_depth param_regressor__n_estimators \\\n", + "4 20 200 \n", + "1 15 200 \n", + "5 20 250 \n", + "7 25 200 \n", + "2 15 250 \n", "\n", " params split0_test_score \\\n", "4 {'regressor__max_depth': 20, 'regressor__n_est... -8284.760118 \n", @@ -107890,7 +107920,7 @@ " 'casual'])])),\n", " ('regressor',\n", " RandomForestRegressor(max_depth=20, n_estimators=200,\n", - " random_state=42))])In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(memory='../.cache',\n", @@ -107971,7 +108001,7 @@ " ('numericals', 'passthrough',\n", " ['yr', 'mnth', 'hr', 'holiday', 'weekday',\n", " 'workingday', 'temp', 'atemp', 'hum',\n", - " 'windspeed', 'casual'])]), 'regressor': RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42), 'transformer__n_jobs': None, 'transformer__remainder': 'drop', 'transformer__sparse_threshold': 0.3, 'transformer__transformer_weights': None, 'transformer__transformers': [('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual'])], 'transformer__verbose': False, 'transformer__verbose_feature_names_out': True, 'transformer__categoricals': OneHotEncoder(handle_unknown='ignore', sparse_output=False), 'transformer__numericals': 'passthrough', 'transformer__categoricals__categories': 'auto', 'transformer__categoricals__drop': None, 'transformer__categoricals__dtype': , 'transformer__categoricals__feature_name_combiner': 'concat', 'transformer__categoricals__handle_unknown': 'ignore', 'transformer__categoricals__max_categories': None, 'transformer__categoricals__min_frequency': None, 'transformer__categoricals__sparse_output': False, 'regressor__bootstrap': True, 'regressor__ccp_alpha': 0.0, 'regressor__criterion': 'squared_error', 'regressor__max_depth': 20, 'regressor__max_features': 1.0, 'regressor__max_leaf_nodes': None, 'regressor__max_samples': None, 'regressor__min_impurity_decrease': 0.0, 'regressor__min_samples_leaf': 1, 'regressor__min_samples_split': 2, 'regressor__min_weight_fraction_leaf': 0.0, 'regressor__monotonic_cst': None, 'regressor__n_estimators': 200, 'regressor__n_jobs': None, 'regressor__oob_score': False, 'regressor__random_state': 42, 'regressor__verbose': 0, 'regressor__warm_start': False}\n" + " 'windspeed', 'casual'])]), 'regressor': RandomForestRegressor(max_depth=20, n_estimators=200, random_state=42), 'transformer__force_int_remainder_cols': True, 'transformer__n_jobs': None, 'transformer__remainder': 'drop', 'transformer__sparse_threshold': 0.3, 'transformer__transformer_weights': None, 'transformer__transformers': [('categoricals', OneHotEncoder(handle_unknown='ignore', sparse_output=False), ['season', 'weathersit']), ('numericals', 'passthrough', ['yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'temp', 'atemp', 'hum', 'windspeed', 'casual'])], 'transformer__verbose': False, 'transformer__verbose_feature_names_out': True, 'transformer__categoricals': OneHotEncoder(handle_unknown='ignore', sparse_output=False), 'transformer__numericals': 'passthrough', 'transformer__categoricals__categories': 'auto', 'transformer__categoricals__drop': None, 'transformer__categoricals__dtype': , 'transformer__categoricals__feature_name_combiner': 'concat', 'transformer__categoricals__handle_unknown': 'ignore', 'transformer__categoricals__max_categories': None, 'transformer__categoricals__min_frequency': None, 'transformer__categoricals__sparse_output': False, 'regressor__bootstrap': True, 'regressor__ccp_alpha': 0.0, 'regressor__criterion': 'squared_error', 'regressor__max_depth': 20, 'regressor__max_features': 1.0, 'regressor__max_leaf_nodes': None, 'regressor__max_samples': None, 'regressor__min_impurity_decrease': 0.0, 'regressor__min_samples_leaf': 1, 'regressor__min_samples_split': 2, 'regressor__min_weight_fraction_leaf': 0.0, 'regressor__monotonic_cst': None, 'regressor__n_estimators': 200, 'regressor__n_jobs': None, 'regressor__oob_score': False, 'regressor__random_state': 42, 'regressor__verbose': 0, 'regressor__warm_start': False}\n" ] } ], @@ -108140,14 +108170,14 @@ "bar": [ { "error_x": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "error_y": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -108163,7 +108193,7 @@ { "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -108178,18 +108208,18 @@ "carpet": [ { "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "type": "carpet" } @@ -108507,10 +108537,10 @@ ], "scatter": [ { - "marker": { - "line": { - "color": "#283442" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -108557,8 +108587,9 @@ "scattergl": [ { "marker": { - "line": { - "color": "#283442" + "colorbar": { + "outlinewidth": 0, + "ticks": "" } }, "type": "scattergl" @@ -108663,18 +108694,18 @@ { "cells": { "fill": { - "color": "#506784" + "color": "#EBF0F8" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "header": { "fill": { - "color": "#2a3f5f" + "color": "#C8D4E3" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "type": "table" @@ -108683,7 +108714,7 @@ }, "layout": { "annotationdefaults": { - "arrowcolor": "#f2f5fa", + "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, @@ -108839,123 +108870,113 @@ "#FECB52" ], "font": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", "showlakes": true, "showland": true, - "subunitcolor": "#506784" + "subunitcolor": "#C8D4E3" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { - "style": "dark" + "style": "light" }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", + "paper_bgcolor": "white", + "plot_bgcolor": "white", "polar": { "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" } }, "scene": { "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" } }, "shapedefaults": { "line": { - "color": "#f2f5fa" + "color": "#2a3f5f" } }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, "ternary": { "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" } }, "title": { "x": 0.05 }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, "xaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 }, "yaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 } } @@ -109130,14 +109151,14 @@ "bar": [ { "error_x": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "error_y": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -109153,7 +109174,7 @@ { "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -109168,18 +109189,18 @@ "carpet": [ { "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "type": "carpet" } @@ -109497,10 +109518,10 @@ ], "scatter": [ { - "marker": { - "line": { - "color": "#283442" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -109547,8 +109568,9 @@ "scattergl": [ { "marker": { - "line": { - "color": "#283442" + "colorbar": { + "outlinewidth": 0, + "ticks": "" } }, "type": "scattergl" @@ -109653,18 +109675,18 @@ { "cells": { "fill": { - "color": "#506784" + "color": "#EBF0F8" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "header": { "fill": { - "color": "#2a3f5f" + "color": "#C8D4E3" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "type": "table" @@ -109673,7 +109695,7 @@ }, "layout": { "annotationdefaults": { - "arrowcolor": "#f2f5fa", + "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, @@ -109829,123 +109851,113 @@ "#FECB52" ], "font": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", "showlakes": true, "showland": true, - "subunitcolor": "#506784" + "subunitcolor": "#C8D4E3" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { - "style": "dark" + "style": "light" }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", + "paper_bgcolor": "white", + "plot_bgcolor": "white", "polar": { "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" } }, "scene": { "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" } }, "shapedefaults": { "line": { - "color": "#f2f5fa" + "color": "#2a3f5f" } }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, "ternary": { "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" } }, "title": { "x": 0.05 }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, "xaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 }, "yaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 } } @@ -109962,7 +109974,9 @@ ], "source": [ "dimensions = [col for col in results.columns if col.startswith(\"param_\")]\n", - "px.parallel_categories(results, dimensions=dimensions, color=\"mean_test_score\", title=\"Params by test score\")" + "px.parallel_categories(\n", + " results, dimensions=dimensions, color=\"mean_test_score\", title=\"Params by test score\"\n", + ")" ] }, { @@ -109980,7 +109994,7 @@ { "data": { "text/plain": [ - "4706.147416021958" + "np.float64(4706.147416021958)" ] }, "execution_count": 32, @@ -111577,14 +111591,14 @@ "bar": [ { "error_x": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "error_y": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -111600,7 +111614,7 @@ { "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -111615,18 +111629,18 @@ "carpet": [ { "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "type": "carpet" } @@ -111944,10 +111958,10 @@ ], "scatter": [ { - "marker": { - "line": { - "color": "#283442" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -111994,8 +112008,9 @@ "scattergl": [ { "marker": { - "line": { - "color": "#283442" + "colorbar": { + "outlinewidth": 0, + "ticks": "" } }, "type": "scattergl" @@ -112100,18 +112115,18 @@ { "cells": { "fill": { - "color": "#506784" + "color": "#EBF0F8" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "header": { "fill": { - "color": "#2a3f5f" + "color": "#C8D4E3" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "type": "table" @@ -112120,7 +112135,7 @@ }, "layout": { "annotationdefaults": { - "arrowcolor": "#f2f5fa", + "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, @@ -112276,123 +112291,113 @@ "#FECB52" ], "font": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", "showlakes": true, "showland": true, - "subunitcolor": "#506784" + "subunitcolor": "#C8D4E3" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { - "style": "dark" + "style": "light" }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", + "paper_bgcolor": "white", + "plot_bgcolor": "white", "polar": { "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" } }, "scene": { "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" } }, "shapedefaults": { "line": { - "color": "#f2f5fa" + "color": "#2a3f5f" } }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, "ternary": { "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" } }, "title": { "x": 0.05 }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, "xaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 }, "yaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 } } @@ -112562,14 +112567,14 @@ "bar": [ { "error_x": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "error_y": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -112585,7 +112590,7 @@ { "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -112600,18 +112605,18 @@ "carpet": [ { "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "type": "carpet" } @@ -112929,10 +112934,10 @@ ], "scatter": [ { - "marker": { - "line": { - "color": "#283442" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -112979,8 +112984,9 @@ "scattergl": [ { "marker": { - "line": { - "color": "#283442" + "colorbar": { + "outlinewidth": 0, + "ticks": "" } }, "type": "scattergl" @@ -113085,18 +113091,18 @@ { "cells": { "fill": { - "color": "#506784" + "color": "#EBF0F8" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "header": { "fill": { - "color": "#2a3f5f" + "color": "#C8D4E3" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "type": "table" @@ -113105,7 +113111,7 @@ }, "layout": { "annotationdefaults": { - "arrowcolor": "#f2f5fa", + "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, @@ -113261,123 +113267,113 @@ "#FECB52" ], "font": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", "showlakes": true, "showland": true, - "subunitcolor": "#506784" + "subunitcolor": "#C8D4E3" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { - "style": "dark" + "style": "light" }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", + "paper_bgcolor": "white", + "plot_bgcolor": "white", "polar": { "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" } }, "scene": { "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" } }, "shapedefaults": { "line": { - "color": "#f2f5fa" + "color": "#2a3f5f" } }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, "ternary": { "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" } }, "title": { "x": 0.05 }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, "xaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 }, "yaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 } } @@ -113435,16 +113431,6 @@ "execution_count": 37, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/fmind/mlops-python-package/.venv/lib/python3.12/site-packages/joblib/memory.py:577: UserWarning:\n", - "\n", - "Persisting input arguments took 0.54s to run.If this happens often in your code, it can cause performance problems (results will be correct in all cases). The reason for this is probably some large input arguments for a wrapped function.\n", - "\n" - ] - }, { "data": { "application/vnd.plotly.v1+json": { @@ -113529,14 +113515,14 @@ "bar": [ { "error_x": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "error_y": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -113552,7 +113538,7 @@ { "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -113567,18 +113553,18 @@ "carpet": [ { "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "type": "carpet" } @@ -113896,10 +113882,10 @@ ], "scatter": [ { - "marker": { - "line": { - "color": "#283442" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -113946,8 +113932,9 @@ "scattergl": [ { "marker": { - "line": { - "color": "#283442" + "colorbar": { + "outlinewidth": 0, + "ticks": "" } }, "type": "scattergl" @@ -114052,18 +114039,18 @@ { "cells": { "fill": { - "color": "#506784" + "color": "#EBF0F8" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "header": { "fill": { - "color": "#2a3f5f" + "color": "#C8D4E3" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "type": "table" @@ -114072,7 +114059,7 @@ }, "layout": { "annotationdefaults": { - "arrowcolor": "#f2f5fa", + "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, @@ -114228,123 +114215,113 @@ "#FECB52" ], "font": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", "showlakes": true, "showland": true, - "subunitcolor": "#506784" + "subunitcolor": "#C8D4E3" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { - "style": "dark" + "style": "light" }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", + "paper_bgcolor": "white", + "plot_bgcolor": "white", "polar": { "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" } }, "scene": { "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" } }, "shapedefaults": { "line": { - "color": "#f2f5fa" + "color": "#2a3f5f" } }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, "ternary": { "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" } }, "title": { "x": 0.05 }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, "xaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 }, "yaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 } } @@ -114381,7 +114358,12 @@ ], "source": [ "train_size, train_scores, test_scores = model_selection.learning_curve(\n", - " final, inputs, targets, cv=splitter, scoring=SCORING, random_state=RANDOM,\n", + " final,\n", + " inputs,\n", + " targets,\n", + " cv=splitter,\n", + " scoring=SCORING,\n", + " random_state=RANDOM,\n", ")\n", "learning = pd.DataFrame(\n", " {\n", @@ -114488,14 +114470,14 @@ "bar": [ { "error_x": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "error_y": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -114511,7 +114493,7 @@ { "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -114526,18 +114508,18 @@ "carpet": [ { "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "type": "carpet" } @@ -114855,10 +114837,10 @@ ], "scatter": [ { - "marker": { - "line": { - "color": "#283442" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -114905,8 +114887,9 @@ "scattergl": [ { "marker": { - "line": { - "color": "#283442" + "colorbar": { + "outlinewidth": 0, + "ticks": "" } }, "type": "scattergl" @@ -115011,18 +114994,18 @@ { "cells": { "fill": { - "color": "#506784" + "color": "#EBF0F8" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "header": { "fill": { - "color": "#2a3f5f" + "color": "#C8D4E3" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "type": "table" @@ -115031,7 +115014,7 @@ }, "layout": { "annotationdefaults": { - "arrowcolor": "#f2f5fa", + "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, @@ -115187,123 +115170,113 @@ "#FECB52" ], "font": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", "showlakes": true, "showland": true, - "subunitcolor": "#506784" + "subunitcolor": "#C8D4E3" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { - "style": "dark" + "style": "light" }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", + "paper_bgcolor": "white", + "plot_bgcolor": "white", "polar": { "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" } }, "scene": { "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" } }, "shapedefaults": { "line": { - "color": "#f2f5fa" + "color": "#2a3f5f" } }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, "ternary": { "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" } }, "title": { "x": 0.05 }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, "xaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 }, "yaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 } } @@ -115420,14 +115393,14 @@ "bar": [ { "error_x": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "error_y": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -115443,7 +115416,7 @@ { "marker": { "line": { - "color": "rgb(17,17,17)", + "color": "white", "width": 0.5 }, "pattern": { @@ -115458,18 +115431,18 @@ "carpet": [ { "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" }, "type": "carpet" } @@ -115787,10 +115760,10 @@ ], "scatter": [ { - "marker": { - "line": { - "color": "#283442" - } + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 }, "type": "scatter" } @@ -115837,8 +115810,9 @@ "scattergl": [ { "marker": { - "line": { - "color": "#283442" + "colorbar": { + "outlinewidth": 0, + "ticks": "" } }, "type": "scattergl" @@ -115943,18 +115917,18 @@ { "cells": { "fill": { - "color": "#506784" + "color": "#EBF0F8" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "header": { "fill": { - "color": "#2a3f5f" + "color": "#C8D4E3" }, "line": { - "color": "rgb(17,17,17)" + "color": "white" } }, "type": "table" @@ -115963,7 +115937,7 @@ }, "layout": { "annotationdefaults": { - "arrowcolor": "#f2f5fa", + "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, @@ -116119,123 +116093,113 @@ "#FECB52" ], "font": { - "color": "#f2f5fa" + "color": "#2a3f5f" }, "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", "showlakes": true, "showland": true, - "subunitcolor": "#506784" + "subunitcolor": "#C8D4E3" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { - "style": "dark" + "style": "light" }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", + "paper_bgcolor": "white", + "plot_bgcolor": "white", "polar": { "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "" } }, "scene": { "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" }, "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", "gridwidth": 2, - "linecolor": "#506784", + "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3" + "zerolinecolor": "#EBF0F8" } }, "shapedefaults": { "line": { - "color": "#f2f5fa" + "color": "#2a3f5f" } }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, "ternary": { "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" }, - "bgcolor": "rgb(17,17,17)", + "bgcolor": "white", "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", "ticks": "" } }, "title": { "x": 0.05 }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, "xaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 }, "yaxis": { "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, - "zerolinecolor": "#283442", + "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 } } @@ -116274,8 +116238,13 @@ "for param_name, param_range in PARAM_GRID.items():\n", " print(f\"Validation Curve for: {param_name} -> {param_range}\")\n", " train_scores, test_scores = model_selection.validation_curve(\n", - " final, inputs, targets, cv=splitter, scoring=SCORING,\n", - " param_name=param_name, param_range=param_range,\n", + " final,\n", + " inputs,\n", + " targets,\n", + " cv=splitter,\n", + " scoring=SCORING,\n", + " param_name=param_name,\n", + " param_range=param_range,\n", " )\n", " validation = pd.DataFrame(\n", " {\n", @@ -116285,7 +116254,10 @@ " }\n", " )\n", " curve = px.line(\n", - " validation, x=\"param_value\", y=[\"mean_test_score\", \"mean_train_score\"], title=f\"Validation Curve: {param_name}\"\n", + " validation,\n", + " x=\"param_value\",\n", + " y=[\"mean_test_score\", \"mean_train_score\"],\n", + " title=f\"Validation Curve: {param_name}\",\n", " )\n", " curve.show()" ] @@ -116307,7 +116279,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.5" }, "orig_nbformat": 4 }, diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index b4a779b..0000000 --- a/poetry.lock +++ /dev/null @@ -1,3837 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. - -[[package]] -name = "alembic" -version = "1.13.2" -description = "A database migration tool for SQLAlchemy." -optional = false -python-versions = ">=3.8" -files = [ - {file = "alembic-1.13.2-py3-none-any.whl", hash = "sha256:6b8733129a6224a9a711e17c99b08462dbf7cc9670ba8f2e2ae9af860ceb1953"}, - {file = "alembic-1.13.2.tar.gz", hash = "sha256:1ff0ae32975f4fd96028c39ed9bb3c867fe3af956bd7bb37343b54c9fe7445ef"}, -] - -[package.dependencies] -Mako = "*" -SQLAlchemy = ">=1.3.0" -typing-extensions = ">=4" - -[package.extras] -tz = ["backports.zoneinfo"] - -[[package]] -name = "aniso8601" -version = "9.0.1" -description = "A library for parsing ISO 8601 strings." -optional = false -python-versions = "*" -files = [ - {file = "aniso8601-9.0.1-py2.py3-none-any.whl", hash = "sha256:1d2b7ef82963909e93c4f24ce48d4de9e66009a21bf1c1e1c85bdd0812fe412f"}, - {file = "aniso8601-9.0.1.tar.gz", hash = "sha256:72e3117667eedf66951bb2d93f4296a56b94b078a8a95905a052611fb3f1b973"}, -] - -[package.extras] -dev = ["black", "coverage", "isort", "pre-commit", "pyenchant", "pylint"] - -[[package]] -name = "annotated-types" -version = "0.7.0" -description = "Reusable constraint types to use with typing.Annotated" -optional = false -python-versions = ">=3.8" -files = [ - {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, - {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, -] - -[[package]] -name = "antlr4-python3-runtime" -version = "4.9.3" -description = "ANTLR 4.9.3 runtime for Python 3.7" -optional = false -python-versions = "*" -files = [ - {file = "antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b"}, -] - -[[package]] -name = "appnope" -version = "0.1.4" -description = "Disable App Nap on macOS >= 10.9" -optional = false -python-versions = ">=3.6" -files = [ - {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, - {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, -] - -[[package]] -name = "argcomplete" -version = "3.4.0" -description = "Bash tab completion for argparse" -optional = false -python-versions = ">=3.8" -files = [ - {file = "argcomplete-3.4.0-py3-none-any.whl", hash = "sha256:69a79e083a716173e5532e0fa3bef45f793f4e61096cf52b5a42c0211c8b8aa5"}, - {file = "argcomplete-3.4.0.tar.gz", hash = "sha256:c2abcdfe1be8ace47ba777d4fce319eb13bf8ad9dace8d085dcad6eded88057f"}, -] - -[package.extras] -test = ["coverage", "mypy", "pexpect", "ruff", "wheel"] - -[[package]] -name = "asttokens" -version = "2.4.1" -description = "Annotate AST trees with source code positions" -optional = false -python-versions = "*" -files = [ - {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, - {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, -] - -[package.dependencies] -six = ">=1.12.0" - -[package.extras] -astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] -test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] - -[[package]] -name = "attrs" -version = "23.2.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.7" -files = [ - {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, - {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, -] - -[package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] -tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] - -[[package]] -name = "bandit" -version = "1.7.9" -description = "Security oriented static analyser for python code." -optional = false -python-versions = ">=3.8" -files = [ - {file = "bandit-1.7.9-py3-none-any.whl", hash = "sha256:52077cb339000f337fb25f7e045995c4ad01511e716e5daac37014b9752de8ec"}, - {file = "bandit-1.7.9.tar.gz", hash = "sha256:7c395a436743018f7be0a4cbb0a4ea9b902b6d87264ddecf8cfdc73b4f78ff61"}, -] - -[package.dependencies] -colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} -PyYAML = ">=5.3.1" -rich = "*" -stevedore = ">=1.20.0" - -[package.extras] -baseline = ["GitPython (>=3.1.30)"] -sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] -test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] -toml = ["tomli (>=1.1.0)"] -yaml = ["PyYAML"] - -[[package]] -name = "blinker" -version = "1.8.2" -description = "Fast, simple object-to-object and broadcast signaling" -optional = false -python-versions = ">=3.8" -files = [ - {file = "blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01"}, - {file = "blinker-1.8.2.tar.gz", hash = "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83"}, -] - -[[package]] -name = "cachetools" -version = "5.4.0" -description = "Extensible memoizing collections and decorators" -optional = false -python-versions = ">=3.7" -files = [ - {file = "cachetools-5.4.0-py3-none-any.whl", hash = "sha256:3ae3b49a3d5e28a77a0be2b37dbcb89005058959cb2323858c2657c4a8cab474"}, - {file = "cachetools-5.4.0.tar.gz", hash = "sha256:b8adc2e7c07f105ced7bc56dbb6dfbe7c4a00acce20e2227b3f355be89bc6827"}, -] - -[[package]] -name = "certifi" -version = "2024.7.4" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, -] - -[[package]] -name = "cffi" -version = "1.16.0" -description = "Foreign Function Interface for Python calling C code." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, - {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, - {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, - {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, - {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, - {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, - {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, - {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, - {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, - {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, - {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, - {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, - {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, - {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, - {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, -] - -[package.dependencies] -pycparser = "*" - -[[package]] -name = "cfgv" -version = "3.4.0" -description = "Validate configuration and produce human readable error messages." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, - {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.3.2" -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.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, -] - -[[package]] -name = "click" -version = "8.1.7" -description = "Composable command line interface toolkit" -optional = false -python-versions = ">=3.7" -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "cloudpickle" -version = "3.0.0" -description = "Pickler class to extend the standard pickle.Pickler functionality" -optional = false -python-versions = ">=3.8" -files = [ - {file = "cloudpickle-3.0.0-py3-none-any.whl", hash = "sha256:246ee7d0c295602a036e86369c77fecda4ab17b506496730f2f576d9016fd9c7"}, - {file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "comm" -version = "0.2.2" -description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." -optional = false -python-versions = ">=3.8" -files = [ - {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, - {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, -] - -[package.dependencies] -traitlets = ">=4" - -[package.extras] -test = ["pytest"] - -[[package]] -name = "commitizen" -version = "3.28.0" -description = "Python commitizen client tool" -optional = false -python-versions = ">=3.8" -files = [ - {file = "commitizen-3.28.0-py3-none-any.whl", hash = "sha256:372dba10bb082be0e571cfa9ac0946f4333c3f4b2e242fbe32ae2f2afea143e4"}, - {file = "commitizen-3.28.0.tar.gz", hash = "sha256:de3a90b3246233260649e423963cd702d56a3b499ea02886a6412ebfb76f9462"}, -] - -[package.dependencies] -argcomplete = ">=1.12.1,<3.5" -charset-normalizer = ">=2.1.0,<4" -colorama = ">=0.4.1,<0.5.0" -decli = ">=0.6.0,<0.7.0" -jinja2 = ">=2.10.3" -packaging = ">=19" -pyyaml = ">=3.08" -questionary = ">=2.0,<3.0" -termcolor = ">=1.1,<3" -tomlkit = ">=0.5.3,<1.0.0" - -[[package]] -name = "contourpy" -version = "1.2.1" -description = "Python library for calculating contours of 2D quadrilateral grids" -optional = false -python-versions = ">=3.9" -files = [ - {file = "contourpy-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd7c23df857d488f418439686d3b10ae2fbf9bc256cd045b37a8c16575ea1040"}, - {file = "contourpy-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5b9eb0ca724a241683c9685a484da9d35c872fd42756574a7cfbf58af26677fd"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c75507d0a55378240f781599c30e7776674dbaf883a46d1c90f37e563453480"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11959f0ce4a6f7b76ec578576a0b61a28bdc0696194b6347ba3f1c53827178b9"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb3315a8a236ee19b6df481fc5f997436e8ade24a9f03dfdc6bd490fea20c6da"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39f3ecaf76cd98e802f094e0d4fbc6dc9c45a8d0c4d185f0f6c2234e14e5f75b"}, - {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:94b34f32646ca0414237168d68a9157cb3889f06b096612afdd296003fdd32fd"}, - {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:457499c79fa84593f22454bbd27670227874cd2ff5d6c84e60575c8b50a69619"}, - {file = "contourpy-1.2.1-cp310-cp310-win32.whl", hash = "sha256:ac58bdee53cbeba2ecad824fa8159493f0bf3b8ea4e93feb06c9a465d6c87da8"}, - {file = "contourpy-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9cffe0f850e89d7c0012a1fb8730f75edd4320a0a731ed0c183904fe6ecfc3a9"}, - {file = "contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5"}, - {file = "contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6150ffa5c767bc6332df27157d95442c379b7dce3a38dff89c0f39b63275696f"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c863140fafc615c14a4bf4efd0f4425c02230eb8ef02784c9a156461e62c965"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df"}, - {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49e70d111fee47284d9dd867c9bb9a7058a3c617274900780c43e38d90fe1205"}, - {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b59c0ffceff8d4d3996a45f2bb6f4c207f94684a96bf3d9728dbb77428dd8cb8"}, - {file = "contourpy-1.2.1-cp311-cp311-win32.whl", hash = "sha256:7b4182299f251060996af5249c286bae9361fa8c6a9cda5efc29fe8bfd6062ec"}, - {file = "contourpy-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922"}, - {file = "contourpy-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:62828cada4a2b850dbef89c81f5a33741898b305db244904de418cc957ff05dc"}, - {file = "contourpy-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:309be79c0a354afff9ff7da4aaed7c3257e77edf6c1b448a779329431ee79d7e"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e785e0f2ef0d567099b9ff92cbfb958d71c2d5b9259981cd9bee81bd194c9a4"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cac0a8f71a041aa587410424ad46dfa6a11f6149ceb219ce7dd48f6b02b87a7"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af3f4485884750dddd9c25cb7e3915d83c2db92488b38ccb77dd594eac84c4a0"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce6889abac9a42afd07a562c2d6d4b2b7134f83f18571d859b25624a331c90b"}, - {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a1eea9aecf761c661d096d39ed9026574de8adb2ae1c5bd7b33558af884fb2ce"}, - {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:187fa1d4c6acc06adb0fae5544c59898ad781409e61a926ac7e84b8f276dcef4"}, - {file = "contourpy-1.2.1-cp312-cp312-win32.whl", hash = "sha256:c2528d60e398c7c4c799d56f907664673a807635b857df18f7ae64d3e6ce2d9f"}, - {file = "contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce"}, - {file = "contourpy-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb6834cbd983b19f06908b45bfc2dad6ac9479ae04abe923a275b5f48f1a186b"}, - {file = "contourpy-1.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1d59e739ab0e3520e62a26c60707cc3ab0365d2f8fecea74bfe4de72dc56388f"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd3db01f59fdcbce5b22afad19e390260d6d0222f35a1023d9adc5690a889364"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a12a813949e5066148712a0626895c26b2578874e4cc63160bb007e6df3436fe"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe0ccca550bb8e5abc22f530ec0466136379c01321fd94f30a22231e8a48d985"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1d59258c3c67c865435d8fbeb35f8c59b8bef3d6f46c1f29f6123556af28445"}, - {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f32c38afb74bd98ce26de7cc74a67b40afb7b05aae7b42924ea990d51e4dac02"}, - {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d31a63bc6e6d87f77d71e1abbd7387ab817a66733734883d1fc0021ed9bfa083"}, - {file = "contourpy-1.2.1-cp39-cp39-win32.whl", hash = "sha256:ddcb8581510311e13421b1f544403c16e901c4e8f09083c881fab2be80ee31ba"}, - {file = "contourpy-1.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:10a37ae557aabf2509c79715cd20b62e4c7c28b8cd62dd7d99e5ed3ce28c3fd9"}, - {file = "contourpy-1.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a31f94983fecbac95e58388210427d68cd30fe8a36927980fab9c20062645609"}, - {file = "contourpy-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef2b055471c0eb466033760a521efb9d8a32b99ab907fc8358481a1dd29e3bd3"}, - {file = "contourpy-1.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b33d2bc4f69caedcd0a275329eb2198f560b325605810895627be5d4b876bf7f"}, - {file = "contourpy-1.2.1.tar.gz", hash = "sha256:4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c"}, -] - -[package.dependencies] -numpy = ">=1.20" - -[package.extras] -bokeh = ["bokeh", "selenium"] -docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.8.0)", "types-Pillow"] -test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] - -[[package]] -name = "coverage" -version = "7.6.0" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "coverage-7.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dff044f661f59dace805eedb4a7404c573b6ff0cdba4a524141bc63d7be5c7fd"}, - {file = "coverage-7.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a8659fd33ee9e6ca03950cfdcdf271d645cf681609153f218826dd9805ab585c"}, - {file = "coverage-7.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7792f0ab20df8071d669d929c75c97fecfa6bcab82c10ee4adb91c7a54055463"}, - {file = "coverage-7.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4b3cd1ca7cd73d229487fa5caca9e4bc1f0bca96526b922d61053ea751fe791"}, - {file = "coverage-7.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7e128f85c0b419907d1f38e616c4f1e9f1d1b37a7949f44df9a73d5da5cd53c"}, - {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a94925102c89247530ae1dab7dc02c690942566f22e189cbd53579b0693c0783"}, - {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dcd070b5b585b50e6617e8972f3fbbee786afca71b1936ac06257f7e178f00f6"}, - {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d50a252b23b9b4dfeefc1f663c568a221092cbaded20a05a11665d0dbec9b8fb"}, - {file = "coverage-7.6.0-cp310-cp310-win32.whl", hash = "sha256:0e7b27d04131c46e6894f23a4ae186a6a2207209a05df5b6ad4caee6d54a222c"}, - {file = "coverage-7.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:54dece71673b3187c86226c3ca793c5f891f9fc3d8aa183f2e3653da18566169"}, - {file = "coverage-7.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7b525ab52ce18c57ae232ba6f7010297a87ced82a2383b1afd238849c1ff933"}, - {file = "coverage-7.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bea27c4269234e06f621f3fac3925f56ff34bc14521484b8f66a580aacc2e7d"}, - {file = "coverage-7.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed8d1d1821ba5fc88d4a4f45387b65de52382fa3ef1f0115a4f7a20cdfab0e94"}, - {file = "coverage-7.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01c322ef2bbe15057bc4bf132b525b7e3f7206f071799eb8aa6ad1940bcf5fb1"}, - {file = "coverage-7.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03cafe82c1b32b770a29fd6de923625ccac3185a54a5e66606da26d105f37dac"}, - {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0d1b923fc4a40c5832be4f35a5dab0e5ff89cddf83bb4174499e02ea089daf57"}, - {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4b03741e70fb811d1a9a1d75355cf391f274ed85847f4b78e35459899f57af4d"}, - {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a73d18625f6a8a1cbb11eadc1d03929f9510f4131879288e3f7922097a429f63"}, - {file = "coverage-7.6.0-cp311-cp311-win32.whl", hash = "sha256:65fa405b837060db569a61ec368b74688f429b32fa47a8929a7a2f9b47183713"}, - {file = "coverage-7.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:6379688fb4cfa921ae349c76eb1a9ab26b65f32b03d46bb0eed841fd4cb6afb1"}, - {file = "coverage-7.6.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f7db0b6ae1f96ae41afe626095149ecd1b212b424626175a6633c2999eaad45b"}, - {file = "coverage-7.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bbdf9a72403110a3bdae77948b8011f644571311c2fb35ee15f0f10a8fc082e8"}, - {file = "coverage-7.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc44bf0315268e253bf563f3560e6c004efe38f76db03a1558274a6e04bf5d5"}, - {file = "coverage-7.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da8549d17489cd52f85a9829d0e1d91059359b3c54a26f28bec2c5d369524807"}, - {file = "coverage-7.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0086cd4fc71b7d485ac93ca4239c8f75732c2ae3ba83f6be1c9be59d9e2c6382"}, - {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1fad32ee9b27350687035cb5fdf9145bc9cf0a094a9577d43e909948ebcfa27b"}, - {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:044a0985a4f25b335882b0966625270a8d9db3d3409ddc49a4eb00b0ef5e8cee"}, - {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:76d5f82213aa78098b9b964ea89de4617e70e0d43e97900c2778a50856dac605"}, - {file = "coverage-7.6.0-cp312-cp312-win32.whl", hash = "sha256:3c59105f8d58ce500f348c5b56163a4113a440dad6daa2294b5052a10db866da"}, - {file = "coverage-7.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:ca5d79cfdae420a1d52bf177de4bc2289c321d6c961ae321503b2ca59c17ae67"}, - {file = "coverage-7.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d39bd10f0ae453554798b125d2f39884290c480f56e8a02ba7a6ed552005243b"}, - {file = "coverage-7.6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:beb08e8508e53a568811016e59f3234d29c2583f6b6e28572f0954a6b4f7e03d"}, - {file = "coverage-7.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2e16f4cd2bc4d88ba30ca2d3bbf2f21f00f382cf4e1ce3b1ddc96c634bc48ca"}, - {file = "coverage-7.6.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6616d1c9bf1e3faea78711ee42a8b972367d82ceae233ec0ac61cc7fec09fa6b"}, - {file = "coverage-7.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad4567d6c334c46046d1c4c20024de2a1c3abc626817ae21ae3da600f5779b44"}, - {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d17c6a415d68cfe1091d3296ba5749d3d8696e42c37fca5d4860c5bf7b729f03"}, - {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9146579352d7b5f6412735d0f203bbd8d00113a680b66565e205bc605ef81bc6"}, - {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cdab02a0a941af190df8782aafc591ef3ad08824f97850b015c8c6a8b3877b0b"}, - {file = "coverage-7.6.0-cp38-cp38-win32.whl", hash = "sha256:df423f351b162a702c053d5dddc0fc0ef9a9e27ea3f449781ace5f906b664428"}, - {file = "coverage-7.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:f2501d60d7497fd55e391f423f965bbe9e650e9ffc3c627d5f0ac516026000b8"}, - {file = "coverage-7.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7221f9ac9dad9492cecab6f676b3eaf9185141539d5c9689d13fd6b0d7de840c"}, - {file = "coverage-7.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ddaaa91bfc4477d2871442bbf30a125e8fe6b05da8a0015507bfbf4718228ab2"}, - {file = "coverage-7.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4cbe651f3904e28f3a55d6f371203049034b4ddbce65a54527a3f189ca3b390"}, - {file = "coverage-7.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:831b476d79408ab6ccfadaaf199906c833f02fdb32c9ab907b1d4aa0713cfa3b"}, - {file = "coverage-7.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46c3d091059ad0b9c59d1034de74a7f36dcfa7f6d3bde782c49deb42438f2450"}, - {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4d5fae0a22dc86259dee66f2cc6c1d3e490c4a1214d7daa2a93d07491c5c04b6"}, - {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:07ed352205574aad067482e53dd606926afebcb5590653121063fbf4e2175166"}, - {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:49c76cdfa13015c4560702574bad67f0e15ca5a2872c6a125f6327ead2b731dd"}, - {file = "coverage-7.6.0-cp39-cp39-win32.whl", hash = "sha256:482855914928c8175735a2a59c8dc5806cf7d8f032e4820d52e845d1f731dca2"}, - {file = "coverage-7.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:543ef9179bc55edfd895154a51792b01c017c87af0ebaae092720152e19e42ca"}, - {file = "coverage-7.6.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:6fe885135c8a479d3e37a7aae61cbd3a0fb2deccb4dda3c25f92a49189f766d6"}, - {file = "coverage-7.6.0.tar.gz", hash = "sha256:289cc803fa1dc901f84701ac10c9ee873619320f2f9aff38794db4a4a0268d51"}, -] - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "cycler" -version = "0.12.1" -description = "Composable style cycles" -optional = false -python-versions = ">=3.8" -files = [ - {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, - {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, -] - -[package.extras] -docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] -tests = ["pytest", "pytest-cov", "pytest-xdist"] - -[[package]] -name = "debugpy" -version = "1.8.2" -description = "An implementation of the Debug Adapter Protocol for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "debugpy-1.8.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7ee2e1afbf44b138c005e4380097d92532e1001580853a7cb40ed84e0ef1c3d2"}, - {file = "debugpy-1.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f8c3f7c53130a070f0fc845a0f2cee8ed88d220d6b04595897b66605df1edd6"}, - {file = "debugpy-1.8.2-cp310-cp310-win32.whl", hash = "sha256:f179af1e1bd4c88b0b9f0fa153569b24f6b6f3de33f94703336363ae62f4bf47"}, - {file = "debugpy-1.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:0600faef1d0b8d0e85c816b8bb0cb90ed94fc611f308d5fde28cb8b3d2ff0fe3"}, - {file = "debugpy-1.8.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:8a13417ccd5978a642e91fb79b871baded925d4fadd4dfafec1928196292aa0a"}, - {file = "debugpy-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acdf39855f65c48ac9667b2801234fc64d46778021efac2de7e50907ab90c634"}, - {file = "debugpy-1.8.2-cp311-cp311-win32.whl", hash = "sha256:2cbd4d9a2fc5e7f583ff9bf11f3b7d78dfda8401e8bb6856ad1ed190be4281ad"}, - {file = "debugpy-1.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:d3408fddd76414034c02880e891ea434e9a9cf3a69842098ef92f6e809d09afa"}, - {file = "debugpy-1.8.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:5d3ccd39e4021f2eb86b8d748a96c766058b39443c1f18b2dc52c10ac2757835"}, - {file = "debugpy-1.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62658aefe289598680193ff655ff3940e2a601765259b123dc7f89c0239b8cd3"}, - {file = "debugpy-1.8.2-cp312-cp312-win32.whl", hash = "sha256:bd11fe35d6fd3431f1546d94121322c0ac572e1bfb1f6be0e9b8655fb4ea941e"}, - {file = "debugpy-1.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:15bc2f4b0f5e99bf86c162c91a74c0631dbd9cef3c6a1d1329c946586255e859"}, - {file = "debugpy-1.8.2-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:5a019d4574afedc6ead1daa22736c530712465c0c4cd44f820d803d937531b2d"}, - {file = "debugpy-1.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40f062d6877d2e45b112c0bbade9a17aac507445fd638922b1a5434df34aed02"}, - {file = "debugpy-1.8.2-cp38-cp38-win32.whl", hash = "sha256:c78ba1680f1015c0ca7115671fe347b28b446081dada3fedf54138f44e4ba031"}, - {file = "debugpy-1.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cf327316ae0c0e7dd81eb92d24ba8b5e88bb4d1b585b5c0d32929274a66a5210"}, - {file = "debugpy-1.8.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:1523bc551e28e15147815d1397afc150ac99dbd3a8e64641d53425dba57b0ff9"}, - {file = "debugpy-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e24ccb0cd6f8bfaec68d577cb49e9c680621c336f347479b3fce060ba7c09ec1"}, - {file = "debugpy-1.8.2-cp39-cp39-win32.whl", hash = "sha256:7f8d57a98c5a486c5c7824bc0b9f2f11189d08d73635c326abef268f83950326"}, - {file = "debugpy-1.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:16c8dcab02617b75697a0a925a62943e26a0330da076e2a10437edd9f0bf3755"}, - {file = "debugpy-1.8.2-py2.py3-none-any.whl", hash = "sha256:16e16df3a98a35c63c3ab1e4d19be4cbc7fdda92d9ddc059294f18910928e0ca"}, - {file = "debugpy-1.8.2.zip", hash = "sha256:95378ed08ed2089221896b9b3a8d021e642c24edc8fef20e5d4342ca8be65c00"}, -] - -[[package]] -name = "decli" -version = "0.6.2" -description = "Minimal, easy-to-use, declarative cli tool" -optional = false -python-versions = ">=3.7" -files = [ - {file = "decli-0.6.2-py3-none-any.whl", hash = "sha256:2fc84106ce9a8f523ed501ca543bdb7e416c064917c12a59ebdc7f311a97b7ed"}, - {file = "decli-0.6.2.tar.gz", hash = "sha256:36f71eb55fd0093895efb4f416ec32b7f6e00147dda448e3365cf73ceab42d6f"}, -] - -[[package]] -name = "decorator" -version = "5.1.1" -description = "Decorators for Humans" -optional = false -python-versions = ">=3.5" -files = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, -] - -[[package]] -name = "deprecated" -version = "1.2.14" -description = "Python @deprecated decorator to deprecate old python classes, functions or methods." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c"}, - {file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"}, -] - -[package.dependencies] -wrapt = ">=1.10,<2" - -[package.extras] -dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] - -[[package]] -name = "distlib" -version = "0.3.8" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, - {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, -] - -[[package]] -name = "docker" -version = "7.1.0" -description = "A Python library for the Docker Engine API." -optional = false -python-versions = ">=3.8" -files = [ - {file = "docker-7.1.0-py3-none-any.whl", hash = "sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0"}, - {file = "docker-7.1.0.tar.gz", hash = "sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c"}, -] - -[package.dependencies] -pywin32 = {version = ">=304", markers = "sys_platform == \"win32\""} -requests = ">=2.26.0" -urllib3 = ">=1.26.0" - -[package.extras] -dev = ["coverage (==7.2.7)", "pytest (==7.4.2)", "pytest-cov (==4.1.0)", "pytest-timeout (==2.1.0)", "ruff (==0.1.8)"] -docs = ["myst-parser (==0.18.0)", "sphinx (==5.1.1)"] -ssh = ["paramiko (>=2.4.3)"] -websockets = ["websocket-client (>=1.3.0)"] - -[[package]] -name = "entrypoints" -version = "0.4" -description = "Discover and load entry points from installed packages." -optional = false -python-versions = ">=3.6" -files = [ - {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, - {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, -] - -[[package]] -name = "execnet" -version = "2.1.1" -description = "execnet: rapid multi-Python deployment" -optional = false -python-versions = ">=3.8" -files = [ - {file = "execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc"}, - {file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"}, -] - -[package.extras] -testing = ["hatch", "pre-commit", "pytest", "tox"] - -[[package]] -name = "executing" -version = "2.0.1" -description = "Get the currently executing AST node of a frame, and other information" -optional = false -python-versions = ">=3.5" -files = [ - {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, - {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, -] - -[package.extras] -tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] - -[[package]] -name = "fastjsonschema" -version = "2.20.0" -description = "Fastest Python implementation of JSON schema" -optional = false -python-versions = "*" -files = [ - {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, - {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, -] - -[package.extras] -devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] - -[[package]] -name = "filelock" -version = "3.15.4" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.8" -files = [ - {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, - {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] -typing = ["typing-extensions (>=4.8)"] - -[[package]] -name = "flask" -version = "3.0.3" -description = "A simple framework for building complex web applications." -optional = false -python-versions = ">=3.8" -files = [ - {file = "flask-3.0.3-py3-none-any.whl", hash = "sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3"}, - {file = "flask-3.0.3.tar.gz", hash = "sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842"}, -] - -[package.dependencies] -blinker = ">=1.6.2" -click = ">=8.1.3" -itsdangerous = ">=2.1.2" -Jinja2 = ">=3.1.2" -Werkzeug = ">=3.0.0" - -[package.extras] -async = ["asgiref (>=3.2)"] -dotenv = ["python-dotenv"] - -[[package]] -name = "fonttools" -version = "4.53.1" -description = "Tools to manipulate font files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fonttools-4.53.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0679a30b59d74b6242909945429dbddb08496935b82f91ea9bf6ad240ec23397"}, - {file = "fonttools-4.53.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8bf06b94694251861ba7fdeea15c8ec0967f84c3d4143ae9daf42bbc7717fe3"}, - {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b96cd370a61f4d083c9c0053bf634279b094308d52fdc2dd9a22d8372fdd590d"}, - {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1c7c5aa18dd3b17995898b4a9b5929d69ef6ae2af5b96d585ff4005033d82f0"}, - {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e013aae589c1c12505da64a7d8d023e584987e51e62006e1bb30d72f26522c41"}, - {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9efd176f874cb6402e607e4cc9b4a9cd584d82fc34a4b0c811970b32ba62501f"}, - {file = "fonttools-4.53.1-cp310-cp310-win32.whl", hash = "sha256:c8696544c964500aa9439efb6761947393b70b17ef4e82d73277413f291260a4"}, - {file = "fonttools-4.53.1-cp310-cp310-win_amd64.whl", hash = "sha256:8959a59de5af6d2bec27489e98ef25a397cfa1774b375d5787509c06659b3671"}, - {file = "fonttools-4.53.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:da33440b1413bad53a8674393c5d29ce64d8c1a15ef8a77c642ffd900d07bfe1"}, - {file = "fonttools-4.53.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ff7e5e9bad94e3a70c5cd2fa27f20b9bb9385e10cddab567b85ce5d306ea923"}, - {file = "fonttools-4.53.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6e7170d675d12eac12ad1a981d90f118c06cf680b42a2d74c6c931e54b50719"}, - {file = "fonttools-4.53.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bee32ea8765e859670c4447b0817514ca79054463b6b79784b08a8df3a4d78e3"}, - {file = "fonttools-4.53.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6e08f572625a1ee682115223eabebc4c6a2035a6917eac6f60350aba297ccadb"}, - {file = "fonttools-4.53.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b21952c092ffd827504de7e66b62aba26fdb5f9d1e435c52477e6486e9d128b2"}, - {file = "fonttools-4.53.1-cp311-cp311-win32.whl", hash = "sha256:9dfdae43b7996af46ff9da520998a32b105c7f098aeea06b2226b30e74fbba88"}, - {file = "fonttools-4.53.1-cp311-cp311-win_amd64.whl", hash = "sha256:d4d0096cb1ac7a77b3b41cd78c9b6bc4a400550e21dc7a92f2b5ab53ed74eb02"}, - {file = "fonttools-4.53.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d92d3c2a1b39631a6131c2fa25b5406855f97969b068e7e08413325bc0afba58"}, - {file = "fonttools-4.53.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3b3c8ebafbee8d9002bd8f1195d09ed2bd9ff134ddec37ee8f6a6375e6a4f0e8"}, - {file = "fonttools-4.53.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32f029c095ad66c425b0ee85553d0dc326d45d7059dbc227330fc29b43e8ba60"}, - {file = "fonttools-4.53.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10f5e6c3510b79ea27bb1ebfcc67048cde9ec67afa87c7dd7efa5c700491ac7f"}, - {file = "fonttools-4.53.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f677ce218976496a587ab17140da141557beb91d2a5c1a14212c994093f2eae2"}, - {file = "fonttools-4.53.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9e6ceba2a01b448e36754983d376064730690401da1dd104ddb543519470a15f"}, - {file = "fonttools-4.53.1-cp312-cp312-win32.whl", hash = "sha256:791b31ebbc05197d7aa096bbc7bd76d591f05905d2fd908bf103af4488e60670"}, - {file = "fonttools-4.53.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ed170b5e17da0264b9f6fae86073be3db15fa1bd74061c8331022bca6d09bab"}, - {file = "fonttools-4.53.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c818c058404eb2bba05e728d38049438afd649e3c409796723dfc17cd3f08749"}, - {file = "fonttools-4.53.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:651390c3b26b0c7d1f4407cad281ee7a5a85a31a110cbac5269de72a51551ba2"}, - {file = "fonttools-4.53.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e54f1bba2f655924c1138bbc7fa91abd61f45c68bd65ab5ed985942712864bbb"}, - {file = "fonttools-4.53.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9cd19cf4fe0595ebdd1d4915882b9440c3a6d30b008f3cc7587c1da7b95be5f"}, - {file = "fonttools-4.53.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2af40ae9cdcb204fc1d8f26b190aa16534fcd4f0df756268df674a270eab575d"}, - {file = "fonttools-4.53.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:35250099b0cfb32d799fb5d6c651220a642fe2e3c7d2560490e6f1d3f9ae9169"}, - {file = "fonttools-4.53.1-cp38-cp38-win32.whl", hash = "sha256:f08df60fbd8d289152079a65da4e66a447efc1d5d5a4d3f299cdd39e3b2e4a7d"}, - {file = "fonttools-4.53.1-cp38-cp38-win_amd64.whl", hash = "sha256:7b6b35e52ddc8fb0db562133894e6ef5b4e54e1283dff606fda3eed938c36fc8"}, - {file = "fonttools-4.53.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75a157d8d26c06e64ace9df037ee93a4938a4606a38cb7ffaf6635e60e253b7a"}, - {file = "fonttools-4.53.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4824c198f714ab5559c5be10fd1adf876712aa7989882a4ec887bf1ef3e00e31"}, - {file = "fonttools-4.53.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:becc5d7cb89c7b7afa8321b6bb3dbee0eec2b57855c90b3e9bf5fb816671fa7c"}, - {file = "fonttools-4.53.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84ec3fb43befb54be490147b4a922b5314e16372a643004f182babee9f9c3407"}, - {file = "fonttools-4.53.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:73379d3ffdeecb376640cd8ed03e9d2d0e568c9d1a4e9b16504a834ebadc2dfb"}, - {file = "fonttools-4.53.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:02569e9a810f9d11f4ae82c391ebc6fb5730d95a0657d24d754ed7763fb2d122"}, - {file = "fonttools-4.53.1-cp39-cp39-win32.whl", hash = "sha256:aae7bd54187e8bf7fd69f8ab87b2885253d3575163ad4d669a262fe97f0136cb"}, - {file = "fonttools-4.53.1-cp39-cp39-win_amd64.whl", hash = "sha256:e5b708073ea3d684235648786f5f6153a48dc8762cdfe5563c57e80787c29fbb"}, - {file = "fonttools-4.53.1-py3-none-any.whl", hash = "sha256:f1f8758a2ad110bd6432203a344269f445a2907dc24ef6bccfd0ac4e14e0d71d"}, - {file = "fonttools-4.53.1.tar.gz", hash = "sha256:e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4"}, -] - -[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)"] -graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "pycairo", "scipy"] -lxml = ["lxml (>=4.0)"] -pathops = ["skia-pathops (>=0.5.0)"] -plot = ["matplotlib"] -repacker = ["uharfbuzz (>=0.23.0)"] -symfont = ["sympy"] -type1 = ["xattr"] -ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=15.1.0)"] -woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] - -[[package]] -name = "gitdb" -version = "4.0.11" -description = "Git Object Database" -optional = false -python-versions = ">=3.7" -files = [ - {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, - {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, -] - -[package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.43" -description = "GitPython is a Python library used to interact with Git repositories" -optional = false -python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, - {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, -] - -[package.dependencies] -gitdb = ">=4.0.1,<5" - -[package.extras] -doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] -test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] - -[[package]] -name = "graphene" -version = "3.3" -description = "GraphQL Framework for Python" -optional = false -python-versions = "*" -files = [ - {file = "graphene-3.3-py2.py3-none-any.whl", hash = "sha256:bb3810be33b54cb3e6969506671eb72319e8d7ba0d5ca9c8066472f75bf35a38"}, - {file = "graphene-3.3.tar.gz", hash = "sha256:529bf40c2a698954217d3713c6041d69d3f719ad0080857d7ee31327112446b0"}, -] - -[package.dependencies] -aniso8601 = ">=8,<10" -graphql-core = ">=3.1,<3.3" -graphql-relay = ">=3.1,<3.3" - -[package.extras] -dev = ["black (==22.3.0)", "coveralls (>=3.3,<4)", "flake8 (>=4,<5)", "iso8601 (>=1,<2)", "mock (>=4,<5)", "pytest (>=6,<7)", "pytest-asyncio (>=0.16,<2)", "pytest-benchmark (>=3.4,<4)", "pytest-cov (>=3,<4)", "pytest-mock (>=3,<4)", "pytz (==2022.1)", "snapshottest (>=0.6,<1)"] -test = ["coveralls (>=3.3,<4)", "iso8601 (>=1,<2)", "mock (>=4,<5)", "pytest (>=6,<7)", "pytest-asyncio (>=0.16,<2)", "pytest-benchmark (>=3.4,<4)", "pytest-cov (>=3,<4)", "pytest-mock (>=3,<4)", "pytz (==2022.1)", "snapshottest (>=0.6,<1)"] - -[[package]] -name = "graphql-core" -version = "3.2.3" -description = "GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL." -optional = false -python-versions = ">=3.6,<4" -files = [ - {file = "graphql-core-3.2.3.tar.gz", hash = "sha256:06d2aad0ac723e35b1cb47885d3e5c45e956a53bc1b209a9fc5369007fe46676"}, - {file = "graphql_core-3.2.3-py3-none-any.whl", hash = "sha256:5766780452bd5ec8ba133f8bf287dc92713e3868ddd83aee4faab9fc3e303dc3"}, -] - -[[package]] -name = "graphql-relay" -version = "3.2.0" -description = "Relay library for graphql-core" -optional = false -python-versions = ">=3.6,<4" -files = [ - {file = "graphql-relay-3.2.0.tar.gz", hash = "sha256:1ff1c51298356e481a0be009ccdff249832ce53f30559c1338f22a0e0d17250c"}, - {file = "graphql_relay-3.2.0-py3-none-any.whl", hash = "sha256:c9b22bd28b170ba1fe674c74384a8ff30a76c8e26f88ac3aa1584dd3179953e5"}, -] - -[package.dependencies] -graphql-core = ">=3.2,<3.3" - -[[package]] -name = "greenlet" -version = "3.0.3" -description = "Lightweight in-process concurrent programming" -optional = false -python-versions = ">=3.7" -files = [ - {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, - {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, - {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, - {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, - {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, - {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, - {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, - {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, - {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, - {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, - {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, - {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, - {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, - {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, - {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, - {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, -] - -[package.extras] -docs = ["Sphinx", "furo"] -test = ["objgraph", "psutil"] - -[[package]] -name = "gunicorn" -version = "22.0.0" -description = "WSGI HTTP Server for UNIX" -optional = false -python-versions = ">=3.7" -files = [ - {file = "gunicorn-22.0.0-py3-none-any.whl", hash = "sha256:350679f91b24062c86e386e198a15438d53a7a8207235a78ba1b53df4c4378d9"}, - {file = "gunicorn-22.0.0.tar.gz", hash = "sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63"}, -] - -[package.dependencies] -packaging = "*" - -[package.extras] -eventlet = ["eventlet (>=0.24.1,!=0.36.0)"] -gevent = ["gevent (>=1.4.0)"] -setproctitle = ["setproctitle"] -testing = ["coverage", "eventlet", "gevent", "pytest", "pytest-cov"] -tornado = ["tornado (>=0.2)"] - -[[package]] -name = "identify" -version = "2.6.0" -description = "File identification library for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "identify-2.6.0-py2.py3-none-any.whl", hash = "sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0"}, - {file = "identify-2.6.0.tar.gz", hash = "sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.7" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.5" -files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, -] - -[[package]] -name = "importlib-metadata" -version = "7.2.1" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_metadata-7.2.1-py3-none-any.whl", hash = "sha256:ffef94b0b66046dd8ea2d619b701fe978d9264d38f3998bc4c27ec3b146a87c8"}, - {file = "importlib_metadata-7.2.1.tar.gz", hash = "sha256:509ecb2ab77071db5137c655e24ceb3eee66e7bbc6574165d0d114d9fc4bbe68"}, -] - -[package.dependencies] -zipp = ">=0.5" - -[package.extras] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "invoke" -version = "2.2.0" -description = "Pythonic task execution" -optional = false -python-versions = ">=3.6" -files = [ - {file = "invoke-2.2.0-py3-none-any.whl", hash = "sha256:6ea924cc53d4f78e3d98bc436b08069a03077e6f85ad1ddaa8a116d7dad15820"}, - {file = "invoke-2.2.0.tar.gz", hash = "sha256:ee6cbb101af1a859c7fe84f2a264c059020b0cb7fe3535f9424300ab568f6bd5"}, -] - -[[package]] -name = "ipykernel" -version = "6.29.5" -description = "IPython Kernel for Jupyter" -optional = false -python-versions = ">=3.8" -files = [ - {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, - {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, -] - -[package.dependencies] -appnope = {version = "*", markers = "platform_system == \"Darwin\""} -comm = ">=0.1.1" -debugpy = ">=1.6.5" -ipython = ">=7.23.1" -jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" -matplotlib-inline = ">=0.1" -nest-asyncio = "*" -packaging = "*" -psutil = "*" -pyzmq = ">=24" -tornado = ">=6.1" -traitlets = ">=5.4.0" - -[package.extras] -cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] -pyqt5 = ["pyqt5"] -pyside6 = ["pyside6"] -test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "ipython" -version = "8.18.0" -description = "IPython: Productive Interactive Computing" -optional = false -python-versions = ">=3.9" -files = [ - {file = "ipython-8.18.0-py3-none-any.whl", hash = "sha256:d538a7a98ad9b7e018926447a5f35856113a85d08fd68a165d7871ab5175f6e0"}, - {file = "ipython-8.18.0.tar.gz", hash = "sha256:4feb61210160f75e229ce932dbf8b719bff37af123c0b985fd038b14233daa16"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -decorator = "*" -jedi = ">=0.16" -matplotlib-inline = "*" -pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} -prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" -pygments = ">=2.4.0" -stack-data = "*" -traitlets = ">=5" - -[package.extras] -all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio (<0.22)", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] -black = ["black"] -doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pickleshare", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio (<0.22)", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] -kernel = ["ipykernel"] -nbconvert = ["nbconvert"] -nbformat = ["nbformat"] -notebook = ["ipywidgets", "notebook"] -parallel = ["ipyparallel"] -qtconsole = ["qtconsole"] -test = ["pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath"] -test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "trio"] - -[[package]] -name = "itsdangerous" -version = "2.2.0" -description = "Safely pass data to untrusted environments and back." -optional = false -python-versions = ">=3.8" -files = [ - {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, - {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, -] - -[[package]] -name = "jedi" -version = "0.19.1" -description = "An autocompletion tool for Python that can be used for text editors." -optional = false -python-versions = ">=3.6" -files = [ - {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, - {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, -] - -[package.dependencies] -parso = ">=0.8.3,<0.9.0" - -[package.extras] -docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] -qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] -testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] - -[[package]] -name = "jinja2" -version = "3.1.4" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "joblib" -version = "1.4.2" -description = "Lightweight pipelining with Python functions" -optional = false -python-versions = ">=3.8" -files = [ - {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, - {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, -] - -[[package]] -name = "jsonschema" -version = "4.23.0" -description = "An implementation of JSON Schema validation for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, - {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, -] - -[package.dependencies] -attrs = ">=22.2.0" -jsonschema-specifications = ">=2023.03.6" -referencing = ">=0.28.4" -rpds-py = ">=0.7.1" - -[package.extras] -format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] - -[[package]] -name = "jsonschema-specifications" -version = "2023.12.1" -description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, - {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, -] - -[package.dependencies] -referencing = ">=0.31.0" - -[[package]] -name = "jupyter-client" -version = "8.6.2" -description = "Jupyter protocol implementation and client libraries" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"}, - {file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"}, -] - -[package.dependencies] -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" -python-dateutil = ">=2.8.2" -pyzmq = ">=23.0" -tornado = ">=6.2" -traitlets = ">=5.3" - -[package.extras] -docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] - -[[package]] -name = "jupyter-core" -version = "5.7.2" -description = "Jupyter core package. A base package on which Jupyter projects rely." -optional = false -python-versions = ">=3.8" -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"}, -] - -[package.dependencies] -platformdirs = ">=2.5" -pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} -traitlets = ">=5.3" - -[package.extras] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] -test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "kiwisolver" -version = "1.4.5" -description = "A fast implementation of the Cassowary constraint solver" -optional = false -python-versions = ">=3.7" -files = [ - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, - {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, -] - -[[package]] -name = "llvmlite" -version = "0.43.0" -description = "lightweight wrapper around basic LLVM functionality" -optional = false -python-versions = ">=3.9" -files = [ - {file = "llvmlite-0.43.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a289af9a1687c6cf463478f0fa8e8aa3b6fb813317b0d70bf1ed0759eab6f761"}, - {file = "llvmlite-0.43.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d4fd101f571a31acb1559ae1af30f30b1dc4b3186669f92ad780e17c81e91bc"}, - {file = "llvmlite-0.43.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d434ec7e2ce3cc8f452d1cd9a28591745de022f931d67be688a737320dfcead"}, - {file = "llvmlite-0.43.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6912a87782acdff6eb8bf01675ed01d60ca1f2551f8176a300a886f09e836a6a"}, - {file = "llvmlite-0.43.0-cp310-cp310-win_amd64.whl", hash = "sha256:14f0e4bf2fd2d9a75a3534111e8ebeb08eda2f33e9bdd6dfa13282afacdde0ed"}, - {file = "llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8d0618cb9bfe40ac38a9633f2493d4d4e9fcc2f438d39a4e854f39cc0f5f98"}, - {file = "llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0a9a1a39d4bf3517f2af9d23d479b4175ead205c592ceeb8b89af48a327ea57"}, - {file = "llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1da416ab53e4f7f3bc8d4eeba36d801cc1894b9fbfbf2022b29b6bad34a7df2"}, - {file = "llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749"}, - {file = "llvmlite-0.43.0-cp311-cp311-win_amd64.whl", hash = "sha256:d5bd550001d26450bd90777736c69d68c487d17bf371438f975229b2b8241a91"}, - {file = "llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7"}, - {file = "llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7"}, - {file = "llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f"}, - {file = "llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844"}, - {file = "llvmlite-0.43.0-cp312-cp312-win_amd64.whl", hash = "sha256:7a2872ee80dcf6b5dbdc838763d26554c2a18aa833d31a2635bff16aafefb9c9"}, - {file = "llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cd2a7376f7b3367019b664c21f0c61766219faa3b03731113ead75107f3b66c"}, - {file = "llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18e9953c748b105668487b7c81a3e97b046d8abf95c4ddc0cd3c94f4e4651ae8"}, - {file = "llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74937acd22dc11b33946b67dca7680e6d103d6e90eeaaaf932603bec6fe7b03a"}, - {file = "llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9efc739cc6ed760f795806f67889923f7274276f0eb45092a1473e40d9b867"}, - {file = "llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash = "sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4"}, - {file = "llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5"}, -] - -[[package]] -name = "loguru" -version = "0.7.2" -description = "Python logging made (stupidly) simple" -optional = false -python-versions = ">=3.5" -files = [ - {file = "loguru-0.7.2-py3-none-any.whl", hash = "sha256:003d71e3d3ed35f0f8984898359d65b79e5b21943f78af86aa5491210429b8eb"}, - {file = "loguru-0.7.2.tar.gz", hash = "sha256:e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac"}, -] - -[package.dependencies] -colorama = {version = ">=0.3.4", markers = "sys_platform == \"win32\""} -win32-setctime = {version = ">=1.0.0", markers = "sys_platform == \"win32\""} - -[package.extras] -dev = ["Sphinx (==7.2.5)", "colorama (==0.4.5)", "colorama (==0.4.6)", "exceptiongroup (==1.1.3)", "freezegun (==1.1.0)", "freezegun (==1.2.2)", "mypy (==v0.910)", "mypy (==v0.971)", "mypy (==v1.4.1)", "mypy (==v1.5.1)", "pre-commit (==3.4.0)", "pytest (==6.1.2)", "pytest (==7.4.0)", "pytest-cov (==2.12.1)", "pytest-cov (==4.1.0)", "pytest-mypy-plugins (==1.9.3)", "pytest-mypy-plugins (==3.0.0)", "sphinx-autobuild (==2021.3.14)", "sphinx-rtd-theme (==1.3.0)", "tox (==3.27.1)", "tox (==4.11.0)"] - -[[package]] -name = "mako" -version = "1.3.5" -description = "A super-fast templating language that borrows the best ideas from the existing templating languages." -optional = false -python-versions = ">=3.8" -files = [ - {file = "Mako-1.3.5-py3-none-any.whl", hash = "sha256:260f1dbc3a519453a9c856dedfe4beb4e50bd5a26d96386cb6c80856556bb91a"}, - {file = "Mako-1.3.5.tar.gz", hash = "sha256:48dbc20568c1d276a2698b36d968fa76161bf127194907ea6fc594fa81f943bc"}, -] - -[package.dependencies] -MarkupSafe = ">=0.9.2" - -[package.extras] -babel = ["Babel"] -lingua = ["lingua"] -testing = ["pytest"] - -[[package]] -name = "markdown" -version = "3.6" -description = "Python implementation of John Gruber's Markdown." -optional = false -python-versions = ">=3.8" -files = [ - {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"}, - {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"}, -] - -[package.extras] -docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] -testing = ["coverage", "pyyaml"] - -[[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" -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 = "2.1.5" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, -] - -[[package]] -name = "matplotlib" -version = "3.9.1" -description = "Python plotting package" -optional = false -python-versions = ">=3.9" -files = [ - {file = "matplotlib-3.9.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:7ccd6270066feb9a9d8e0705aa027f1ff39f354c72a87efe8fa07632f30fc6bb"}, - {file = "matplotlib-3.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:591d3a88903a30a6d23b040c1e44d1afdd0d778758d07110eb7596f811f31842"}, - {file = "matplotlib-3.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd2a59ff4b83d33bca3b5ec58203cc65985367812cb8c257f3e101632be86d92"}, - {file = "matplotlib-3.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fc001516ffcf1a221beb51198b194d9230199d6842c540108e4ce109ac05cc0"}, - {file = "matplotlib-3.9.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:83c6a792f1465d174c86d06f3ae85a8fe36e6f5964633ae8106312ec0921fdf5"}, - {file = "matplotlib-3.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:421851f4f57350bcf0811edd754a708d2275533e84f52f6760b740766c6747a7"}, - {file = "matplotlib-3.9.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b3fce58971b465e01b5c538f9d44915640c20ec5ff31346e963c9e1cd66fa812"}, - {file = "matplotlib-3.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a973c53ad0668c53e0ed76b27d2eeeae8799836fd0d0caaa4ecc66bf4e6676c0"}, - {file = "matplotlib-3.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82cd5acf8f3ef43f7532c2f230249720f5dc5dd40ecafaf1c60ac8200d46d7eb"}, - {file = "matplotlib-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab38a4f3772523179b2f772103d8030215b318fef6360cb40558f585bf3d017f"}, - {file = "matplotlib-3.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2315837485ca6188a4b632c5199900e28d33b481eb083663f6a44cfc8987ded3"}, - {file = "matplotlib-3.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:a0c977c5c382f6696caf0bd277ef4f936da7e2aa202ff66cad5f0ac1428ee15b"}, - {file = "matplotlib-3.9.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:565d572efea2b94f264dd86ef27919515aa6d629252a169b42ce5f570db7f37b"}, - {file = "matplotlib-3.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d397fd8ccc64af2ec0af1f0efc3bacd745ebfb9d507f3f552e8adb689ed730a"}, - {file = "matplotlib-3.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26040c8f5121cd1ad712abffcd4b5222a8aec3a0fe40bc8542c94331deb8780d"}, - {file = "matplotlib-3.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d12cb1837cffaac087ad6b44399d5e22b78c729de3cdae4629e252067b705e2b"}, - {file = "matplotlib-3.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0e835c6988edc3d2d08794f73c323cc62483e13df0194719ecb0723b564e0b5c"}, - {file = "matplotlib-3.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:44a21d922f78ce40435cb35b43dd7d573cf2a30138d5c4b709d19f00e3907fd7"}, - {file = "matplotlib-3.9.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:0c584210c755ae921283d21d01f03a49ef46d1afa184134dd0f95b0202ee6f03"}, - {file = "matplotlib-3.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:11fed08f34fa682c2b792942f8902e7aefeed400da71f9e5816bea40a7ce28fe"}, - {file = "matplotlib-3.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0000354e32efcfd86bda75729716b92f5c2edd5b947200be9881f0a671565c33"}, - {file = "matplotlib-3.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db17fea0ae3aceb8e9ac69c7e3051bae0b3d083bfec932240f9bf5d0197a049"}, - {file = "matplotlib-3.9.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:208cbce658b72bf6a8e675058fbbf59f67814057ae78165d8a2f87c45b48d0ff"}, - {file = "matplotlib-3.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:dc23f48ab630474264276be156d0d7710ac6c5a09648ccdf49fef9200d8cbe80"}, - {file = "matplotlib-3.9.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3fda72d4d472e2ccd1be0e9ccb6bf0d2eaf635e7f8f51d737ed7e465ac020cb3"}, - {file = "matplotlib-3.9.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:84b3ba8429935a444f1fdc80ed930babbe06725bcf09fbeb5c8757a2cd74af04"}, - {file = "matplotlib-3.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b918770bf3e07845408716e5bbda17eadfc3fcbd9307dc67f37d6cf834bb3d98"}, - {file = "matplotlib-3.9.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f1f2e5d29e9435c97ad4c36fb6668e89aee13d48c75893e25cef064675038ac9"}, - {file = "matplotlib-3.9.1.tar.gz", hash = "sha256:de06b19b8db95dd33d0dc17c926c7c9ebed9f572074b6fac4f65068a6814d010"}, -] - -[package.dependencies] -contourpy = ">=1.0.1" -cycler = ">=0.10" -fonttools = ">=4.22.0" -kiwisolver = ">=1.3.1" -numpy = ">=1.23" -packaging = ">=20.0" -pillow = ">=8" -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)"] - -[[package]] -name = "matplotlib-inline" -version = "0.1.7" -description = "Inline Matplotlib backend for Jupyter" -optional = false -python-versions = ">=3.8" -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"}, -] - -[package.dependencies] -traitlets = "*" - -[[package]] -name = "mdurl" -version = "0.1.2" -description = "Markdown URL utilities" -optional = false -python-versions = ">=3.7" -files = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] - -[[package]] -name = "mlflow" -version = "2.14.3" -description = "MLflow is an open source platform for the complete machine learning lifecycle" -optional = false -python-versions = ">=3.8" -files = [ - {file = "mlflow-2.14.3-py3-none-any.whl", hash = "sha256:2de915346c8e34a9d13efbd6469551980923619274db57fd2253621a2c666e18"}, - {file = "mlflow-2.14.3.tar.gz", hash = "sha256:292cae4b83574a0cb223117e224caa6798933078af0233719c2b612bea645617"}, -] - -[package.dependencies] -alembic = "<1.10.0 || >1.10.0,<2" -cachetools = ">=5.0.0,<6" -click = ">=7.0,<9" -cloudpickle = "<4" -docker = ">=4.0.0,<8" -entrypoints = "<1" -Flask = "<4" -gitpython = ">=3.1.9,<4" -graphene = "<4" -gunicorn = {version = "<23", markers = "platform_system != \"Windows\""} -importlib-metadata = ">=3.7.0,<4.7.0 || >4.7.0,<8" -Jinja2 = [ - {version = ">=2.11,<4", markers = "platform_system != \"Windows\""}, - {version = ">=3.0,<4", markers = "platform_system == \"Windows\""}, -] -markdown = ">=3.3,<4" -matplotlib = "<4" -numpy = "<2" -opentelemetry-api = ">=1.9.0,<3" -opentelemetry-sdk = ">=1.9.0,<3" -packaging = "<25" -pandas = "<3" -protobuf = ">=3.12.0,<5" -pyarrow = ">=4.0.0,<16" -pytz = "<2025" -pyyaml = ">=5.1,<7" -querystring-parser = "<2" -requests = ">=2.17.3,<3" -scikit-learn = "<2" -scipy = "<2" -sqlalchemy = ">=1.4.0,<3" -sqlparse = ">=0.4.0,<1" -waitress = {version = "<4", markers = "platform_system == \"Windows\""} - -[package.extras] -aliyun-oss = ["aliyunstoreplugin"] -databricks = ["azure-storage-file-datalake (>12)", "boto3 (>1)", "botocore", "google-cloud-storage (>=1.30.0)"] -extras = ["azureml-core (>=1.2.0)", "boto3", "botocore", "google-cloud-storage (>=1.30.0)", "kubernetes", "mlserver (>=1.2.0,!=1.3.1,<1.4.0)", "mlserver-mlflow (>=1.2.0,!=1.3.1,<1.4.0)", "prometheus-flask-exporter", "pyarrow", "pysftp", "requests-auth-aws-sigv4", "virtualenv"] -gateway = ["aiohttp (<4)", "boto3 (>=1.28.56,<2)", "fastapi (<1)", "pydantic (>=1.0,<3)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<1)"] -genai = ["aiohttp (<4)", "boto3 (>=1.28.56,<2)", "fastapi (<1)", "pydantic (>=1.0,<3)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<1)"] -jfrog = ["mlflow-jfrog-plugin"] -langchain = ["langchain (>=0.1.0,<=0.2.3)"] -sqlserver = ["mlflow-dbstore"] -xethub = ["mlflow-xethub"] - -[[package]] -name = "multimethod" -version = "1.10" -description = "Multiple argument dispatching." -optional = false -python-versions = ">=3.8" -files = [ - {file = "multimethod-1.10-py3-none-any.whl", hash = "sha256:afd84da9c3d0445c84f827e4d63ad42d17c6d29b122427c6dee9032ac2d2a0d4"}, - {file = "multimethod-1.10.tar.gz", hash = "sha256:daa45af3fe257f73abb69673fd54ddeaf31df0eb7363ad6e1251b7c9b192d8c5"}, -] - -[[package]] -name = "mypy" -version = "1.11.0" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "mypy-1.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3824187c99b893f90c845bab405a585d1ced4ff55421fdf5c84cb7710995229"}, - {file = "mypy-1.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:96f8dbc2c85046c81bcddc246232d500ad729cb720da4e20fce3b542cab91287"}, - {file = "mypy-1.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a5d8d8dd8613a3e2be3eae829ee891b6b2de6302f24766ff06cb2875f5be9c6"}, - {file = "mypy-1.11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72596a79bbfb195fd41405cffa18210af3811beb91ff946dbcb7368240eed6be"}, - {file = "mypy-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:35ce88b8ed3a759634cb4eb646d002c4cef0a38f20565ee82b5023558eb90c00"}, - {file = "mypy-1.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:98790025861cb2c3db8c2f5ad10fc8c336ed2a55f4daf1b8b3f877826b6ff2eb"}, - {file = "mypy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25bcfa75b9b5a5f8d67147a54ea97ed63a653995a82798221cca2a315c0238c1"}, - {file = "mypy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bea2a0e71c2a375c9fa0ede3d98324214d67b3cbbfcbd55ac8f750f85a414e3"}, - {file = "mypy-1.11.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2b3d36baac48e40e3064d2901f2fbd2a2d6880ec6ce6358825c85031d7c0d4d"}, - {file = "mypy-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8e2e43977f0e09f149ea69fd0556623919f816764e26d74da0c8a7b48f3e18a"}, - {file = "mypy-1.11.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d44c1e44a8be986b54b09f15f2c1a66368eb43861b4e82573026e04c48a9e20"}, - {file = "mypy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cea3d0fb69637944dd321f41bc896e11d0fb0b0aa531d887a6da70f6e7473aba"}, - {file = "mypy-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a83ec98ae12d51c252be61521aa5731f5512231d0b738b4cb2498344f0b840cd"}, - {file = "mypy-1.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7b73a856522417beb78e0fb6d33ef89474e7a622db2653bc1285af36e2e3e3d"}, - {file = "mypy-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:f2268d9fcd9686b61ab64f077be7ffbc6fbcdfb4103e5dd0cc5eaab53a8886c2"}, - {file = "mypy-1.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:940bfff7283c267ae6522ef926a7887305945f716a7704d3344d6d07f02df850"}, - {file = "mypy-1.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:14f9294528b5f5cf96c721f231c9f5b2733164e02c1c018ed1a0eff8a18005ac"}, - {file = "mypy-1.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7b54c27783991399046837df5c7c9d325d921394757d09dbcbf96aee4649fe9"}, - {file = "mypy-1.11.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:65f190a6349dec29c8d1a1cd4aa71284177aee5949e0502e6379b42873eddbe7"}, - {file = "mypy-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbe286303241fea8c2ea5466f6e0e6a046a135a7e7609167b07fd4e7baf151bf"}, - {file = "mypy-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:104e9c1620c2675420abd1f6c44bab7dd33cc85aea751c985006e83dcd001095"}, - {file = "mypy-1.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f006e955718ecd8d159cee9932b64fba8f86ee6f7728ca3ac66c3a54b0062abe"}, - {file = "mypy-1.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:becc9111ca572b04e7e77131bc708480cc88a911adf3d0239f974c034b78085c"}, - {file = "mypy-1.11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6801319fe76c3f3a3833f2b5af7bd2c17bb93c00026a2a1b924e6762f5b19e13"}, - {file = "mypy-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:c1a184c64521dc549324ec6ef7cbaa6b351912be9cb5edb803c2808a0d7e85ac"}, - {file = "mypy-1.11.0-py3-none-any.whl", hash = "sha256:56913ec8c7638b0091ef4da6fcc9136896914a9d60d54670a75880c3e5b99ace"}, - {file = "mypy-1.11.0.tar.gz", hash = "sha256:93743608c7348772fdc717af4aeee1997293a1ad04bc0ea6efa15bf65385c538"}, -] - -[package.dependencies] -mypy-extensions = ">=1.0.0" -typing-extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -install-types = ["pip"] -mypyc = ["setuptools (>=50)"] -reports = ["lxml"] - -[[package]] -name = "mypy-extensions" -version = "1.0.0" -description = "Type system extensions for programs checked with the mypy type checker." -optional = false -python-versions = ">=3.5" -files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] - -[[package]] -name = "nbformat" -version = "5.10.4" -description = "The Jupyter Notebook format" -optional = false -python-versions = ">=3.8" -files = [ - {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, - {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, -] - -[package.dependencies] -fastjsonschema = ">=2.15" -jsonschema = ">=2.6" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" -traitlets = ">=5.1" - -[package.extras] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["pep440", "pre-commit", "pytest", "testpath"] - -[[package]] -name = "nest-asyncio" -version = "1.6.0" -description = "Patch asyncio to allow nested event loops" -optional = false -python-versions = ">=3.5" -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"}, -] - -[[package]] -name = "nodeenv" -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" -files = [ - {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, - {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, -] - -[[package]] -name = "numba" -version = "0.60.0" -description = "compiling Python code using LLVM" -optional = false -python-versions = ">=3.9" -files = [ - {file = "numba-0.60.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d761de835cd38fb400d2c26bb103a2726f548dc30368853121d66201672e651"}, - {file = "numba-0.60.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:159e618ef213fba758837f9837fb402bbe65326e60ba0633dbe6c7f274d42c1b"}, - {file = "numba-0.60.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1527dc578b95c7c4ff248792ec33d097ba6bef9eda466c948b68dfc995c25781"}, - {file = "numba-0.60.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe0b28abb8d70f8160798f4de9d486143200f34458d34c4a214114e445d7124e"}, - {file = "numba-0.60.0-cp310-cp310-win_amd64.whl", hash = "sha256:19407ced081d7e2e4b8d8c36aa57b7452e0283871c296e12d798852bc7d7f198"}, - {file = "numba-0.60.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a17b70fc9e380ee29c42717e8cc0bfaa5556c416d94f9aa96ba13acb41bdece8"}, - {file = "numba-0.60.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3fb02b344a2a80efa6f677aa5c40cd5dd452e1b35f8d1c2af0dfd9ada9978e4b"}, - {file = "numba-0.60.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5f4fde652ea604ea3c86508a3fb31556a6157b2c76c8b51b1d45eb40c8598703"}, - {file = "numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4142d7ac0210cc86432b818338a2bc368dc773a2f5cf1e32ff7c5b378bd63ee8"}, - {file = "numba-0.60.0-cp311-cp311-win_amd64.whl", hash = "sha256:cac02c041e9b5bc8cf8f2034ff6f0dbafccd1ae9590dc146b3a02a45e53af4e2"}, - {file = "numba-0.60.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7da4098db31182fc5ffe4bc42c6f24cd7d1cb8a14b59fd755bfee32e34b8404"}, - {file = "numba-0.60.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38d6ea4c1f56417076ecf8fc327c831ae793282e0ff51080c5094cb726507b1c"}, - {file = "numba-0.60.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:62908d29fb6a3229c242e981ca27e32a6e606cc253fc9e8faeb0e48760de241e"}, - {file = "numba-0.60.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ebaa91538e996f708f1ab30ef4d3ddc344b64b5227b67a57aa74f401bb68b9d"}, - {file = "numba-0.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:f75262e8fe7fa96db1dca93d53a194a38c46da28b112b8a4aca168f0df860347"}, - {file = "numba-0.60.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:01ef4cd7d83abe087d644eaa3d95831b777aa21d441a23703d649e06b8e06b74"}, - {file = "numba-0.60.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:819a3dfd4630d95fd574036f99e47212a1af41cbcb019bf8afac63ff56834449"}, - {file = "numba-0.60.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0b983bd6ad82fe868493012487f34eae8bf7dd94654951404114f23c3466d34b"}, - {file = "numba-0.60.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c151748cd269ddeab66334bd754817ffc0cabd9433acb0f551697e5151917d25"}, - {file = "numba-0.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab"}, - {file = "numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16"}, -] - -[package.dependencies] -llvmlite = "==0.43.*" -numpy = ">=1.22,<2.1" - -[[package]] -name = "numpy" -version = "1.26.4" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, -] - -[[package]] -name = "omegaconf" -version = "2.3.0" -description = "A flexible configuration library" -optional = false -python-versions = ">=3.6" -files = [ - {file = "omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b"}, - {file = "omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7"}, -] - -[package.dependencies] -antlr4-python3-runtime = "==4.9.*" -PyYAML = ">=5.1.0" - -[[package]] -name = "opentelemetry-api" -version = "1.26.0" -description = "OpenTelemetry Python API" -optional = false -python-versions = ">=3.8" -files = [ - {file = "opentelemetry_api-1.26.0-py3-none-any.whl", hash = "sha256:7d7ea33adf2ceda2dd680b18b1677e4152000b37ca76e679da71ff103b943064"}, - {file = "opentelemetry_api-1.26.0.tar.gz", hash = "sha256:2bd639e4bed5b18486fef0b5a520aaffde5a18fc225e808a1ac4df363f43a1ce"}, -] - -[package.dependencies] -deprecated = ">=1.2.6" -importlib-metadata = ">=6.0,<=8.0.0" - -[[package]] -name = "opentelemetry-sdk" -version = "1.26.0" -description = "OpenTelemetry Python SDK" -optional = false -python-versions = ">=3.8" -files = [ - {file = "opentelemetry_sdk-1.26.0-py3-none-any.whl", hash = "sha256:feb5056a84a88670c041ea0ded9921fca559efec03905dddeb3885525e0af897"}, - {file = "opentelemetry_sdk-1.26.0.tar.gz", hash = "sha256:c90d2868f8805619535c05562d699e2f4fb1f00dbd55a86dcefca4da6fa02f85"}, -] - -[package.dependencies] -opentelemetry-api = "1.26.0" -opentelemetry-semantic-conventions = "0.47b0" -typing-extensions = ">=3.7.4" - -[[package]] -name = "opentelemetry-semantic-conventions" -version = "0.47b0" -description = "OpenTelemetry Semantic Conventions" -optional = false -python-versions = ">=3.8" -files = [ - {file = "opentelemetry_semantic_conventions-0.47b0-py3-none-any.whl", hash = "sha256:4ff9d595b85a59c1c1413f02bba320ce7ea6bf9e2ead2b0913c4395c7bbc1063"}, - {file = "opentelemetry_semantic_conventions-0.47b0.tar.gz", hash = "sha256:a8d57999bbe3495ffd4d510de26a97dadc1dace53e0275001b2c1b2f67992a7e"}, -] - -[package.dependencies] -deprecated = ">=1.2.6" -opentelemetry-api = "1.26.0" - -[[package]] -name = "packaging" -version = "24.1" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, -] - -[[package]] -name = "pandas" -version = "2.2.2" -description = "Powerful data structures for data analysis, time series, and statistics" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, - {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, - {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, - {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, - {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, - {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, - {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, -] - -[package.dependencies] -numpy = {version = ">=1.26.0", markers = "python_version >= \"3.12\""} -python-dateutil = ">=2.8.2" -pytz = ">=2020.1" -tzdata = ">=2022.7" - -[package.extras] -all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] -aws = ["s3fs (>=2022.11.0)"] -clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] -compression = ["zstandard (>=0.19.0)"] -computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] -consortium-standard = ["dataframe-api-compat (>=0.1.7)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] -feather = ["pyarrow (>=10.0.1)"] -fss = ["fsspec (>=2022.11.0)"] -gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] -hdf5 = ["tables (>=3.8.0)"] -html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] -mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] -parquet = ["pyarrow (>=10.0.1)"] -performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] -plot = ["matplotlib (>=3.6.3)"] -postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] -pyarrow = ["pyarrow (>=10.0.1)"] -spss = ["pyreadstat (>=1.2.0)"] -sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] -test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.9.2)"] - -[[package]] -name = "pandas-stubs" -version = "2.2.2.240603" -description = "Type annotations for pandas" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pandas_stubs-2.2.2.240603-py3-none-any.whl", hash = "sha256:e08ce7f602a4da2bff5a67475ba881c39f2a4d4f7fccc1cba57c6f35a379c6c0"}, - {file = "pandas_stubs-2.2.2.240603.tar.gz", hash = "sha256:2dcc86e8fa6ea41535a4561c1f08b3942ba5267b464eff2e99caeee66f9e4cd1"}, -] - -[package.dependencies] -numpy = {version = ">=1.26.0", markers = "python_version >= \"3.12\" and python_version < \"3.13\""} -types-pytz = ">=2022.1.1" - -[[package]] -name = "pandera" -version = "0.20.3" -description = "A light-weight and flexible data validation and testing tool for statistical data objects." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pandera-0.20.3-py3-none-any.whl", hash = "sha256:0c251a3947d8c6d7a0e26602e78fa425268bc9f448f3a0fded85249b158a65c2"}, - {file = "pandera-0.20.3.tar.gz", hash = "sha256:d8542a68493d2dfe3226c186cc145be8d27535d7edf396178e93811515fe3470"}, -] - -[package.dependencies] -multimethod = "<=1.10.0" -numpy = ">=1.19.0" -packaging = ">=20.0" -pandas = ">=1.2.0" -pandas-stubs = {version = "*", optional = true, markers = "extra == \"mypy\""} -pydantic = "*" -typeguard = "*" -typing-inspect = ">=0.6.0" -wrapt = "*" - -[package.extras] -all = ["black", "dask[dataframe]", "fastapi", "frictionless (<=4.40.8)", "geopandas", "hypothesis (>=6.92.7)", "modin", "pandas-stubs", "polars (>=0.20.0)", "pyspark (>=3.2.0)", "pyyaml (>=5.1)", "ray", "scipy", "shapely"] -dask = ["dask[dataframe]"] -fastapi = ["fastapi"] -geopandas = ["geopandas", "shapely"] -hypotheses = ["scipy"] -io = ["black", "frictionless (<=4.40.8)", "pyyaml (>=5.1)"] -modin = ["dask[dataframe]", "modin", "ray"] -modin-dask = ["dask[dataframe]", "modin"] -modin-ray = ["modin", "ray"] -mypy = ["pandas-stubs"] -polars = ["polars (>=0.20.0)"] -pyspark = ["pyspark (>=3.2.0)"] -strategies = ["hypothesis (>=6.92.7)"] - -[[package]] -name = "parso" -version = "0.8.4" -description = "A Python Parser" -optional = false -python-versions = ">=3.6" -files = [ - {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, - {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, -] - -[package.extras] -qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] -testing = ["docopt", "pytest"] - -[[package]] -name = "pbr" -version = "6.0.0" -description = "Python Build Reasonableness" -optional = false -python-versions = ">=2.6" -files = [ - {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"}, - {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"}, -] - -[[package]] -name = "pdoc" -version = "14.6.0" -description = "API Documentation for Python Projects" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pdoc-14.6.0-py3-none-any.whl", hash = "sha256:36c42c546a317d8e3e8c0b39645f24161374de0c7066ccaae76628d721e49ba5"}, - {file = "pdoc-14.6.0.tar.gz", hash = "sha256:6e98a24c5e0ca5d188397969cf82581836eaef13f172fc3820047bfe15c61c9a"}, -] - -[package.dependencies] -Jinja2 = ">=2.11.0" -MarkupSafe = "*" -pygments = ">=2.12.0" - -[package.extras] -dev = ["hypothesis", "mypy", "pdoc-pyo3-sample-library (==1.0.11)", "pygments (>=2.14.0)", "pytest", "pytest-cov", "pytest-timeout", "ruff", "tox", "types-pygments"] - -[[package]] -name = "pexpect" -version = "4.9.0" -description = "Pexpect allows easy control of interactive console applications." -optional = false -python-versions = "*" -files = [ - {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, - {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, -] - -[package.dependencies] -ptyprocess = ">=0.5" - -[[package]] -name = "pillow" -version = "10.4.0" -description = "Python Imaging Library (Fork)" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, - {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"}, - {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"}, - {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"}, - {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"}, - {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"}, - {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"}, - {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"}, - {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"}, - {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"}, - {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"}, - {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"}, - {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"}, - {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"}, - {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"}, - {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"}, - {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"}, - {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"}, - {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"}, - {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"}, - {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"}, - {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"}, - {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"}, - {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"}, - {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"}, - {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"}, - {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"}, - {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"}, - {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"}, - {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"}, - {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"}, - {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"}, - {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"}, - {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"}, - {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"}, - {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"}, - {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"}, - {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"}, - {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"}, - {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"}, - {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"}, - {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"}, -] - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=7.3)", "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"] -xmp = ["defusedxml"] - -[[package]] -name = "platformdirs" -version = "4.2.2" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -optional = false -python-versions = ">=3.8" -files = [ - {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, - {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] -type = ["mypy (>=1.8)"] - -[[package]] -name = "plotly" -version = "5.23.0" -description = "An open-source, interactive data visualization library for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plotly-5.23.0-py3-none-any.whl", hash = "sha256:76cbe78f75eddc10c56f5a4ee3e7ccaade7c0a57465546f02098c0caed6c2d1a"}, - {file = "plotly-5.23.0.tar.gz", hash = "sha256:89e57d003a116303a34de6700862391367dd564222ab71f8531df70279fc0193"}, -] - -[package.dependencies] -packaging = "*" -tenacity = ">=6.2.0" - -[[package]] -name = "pluggy" -version = "1.5.0" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "plyer" -version = "2.1.0" -description = "Platform-independent wrapper for platform-dependent APIs" -optional = false -python-versions = "*" -files = [ - {file = "plyer-2.1.0-py2.py3-none-any.whl", hash = "sha256:1b1772060df8b3045ed4f08231690ec8f7de30f5a004aa1724665a9074eed113"}, - {file = "plyer-2.1.0.tar.gz", hash = "sha256:65b7dfb7e11e07af37a8487eb2aa69524276ef70dad500b07228ce64736baa61"}, -] - -[package.extras] -android = ["pyjnius"] -dev = ["flake8", "mock"] -ios = ["pyobjus"] -macosx = ["pyobjus"] - -[[package]] -name = "pre-commit" -version = "3.7.1" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = false -python-versions = ">=3.9" -files = [ - {file = "pre_commit-3.7.1-py2.py3-none-any.whl", hash = "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"}, - {file = "pre_commit-3.7.1.tar.gz", hash = "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a"}, -] - -[package.dependencies] -cfgv = ">=2.0.0" -identify = ">=1.0.0" -nodeenv = ">=0.11.1" -pyyaml = ">=5.1" -virtualenv = ">=20.10.0" - -[[package]] -name = "prompt-toolkit" -version = "3.0.36" -description = "Library for building powerful interactive command lines in Python" -optional = false -python-versions = ">=3.6.2" -files = [ - {file = "prompt_toolkit-3.0.36-py3-none-any.whl", hash = "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305"}, - {file = "prompt_toolkit-3.0.36.tar.gz", hash = "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "protobuf" -version = "4.25.4" -description = "" -optional = false -python-versions = ">=3.8" -files = [ - {file = "protobuf-4.25.4-cp310-abi3-win32.whl", hash = "sha256:db9fd45183e1a67722cafa5c1da3e85c6492a5383f127c86c4c4aa4845867dc4"}, - {file = "protobuf-4.25.4-cp310-abi3-win_amd64.whl", hash = "sha256:ba3d8504116a921af46499471c63a85260c1a5fc23333154a427a310e015d26d"}, - {file = "protobuf-4.25.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:eecd41bfc0e4b1bd3fa7909ed93dd14dd5567b98c941d6c1ad08fdcab3d6884b"}, - {file = "protobuf-4.25.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:4c8a70fdcb995dcf6c8966cfa3a29101916f7225e9afe3ced4395359955d3835"}, - {file = "protobuf-4.25.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:3319e073562e2515c6ddc643eb92ce20809f5d8f10fead3332f71c63be6a7040"}, - {file = "protobuf-4.25.4-cp38-cp38-win32.whl", hash = "sha256:7e372cbbda66a63ebca18f8ffaa6948455dfecc4e9c1029312f6c2edcd86c4e1"}, - {file = "protobuf-4.25.4-cp38-cp38-win_amd64.whl", hash = "sha256:051e97ce9fa6067a4546e75cb14f90cf0232dcb3e3d508c448b8d0e4265b61c1"}, - {file = "protobuf-4.25.4-cp39-cp39-win32.whl", hash = "sha256:90bf6fd378494eb698805bbbe7afe6c5d12c8e17fca817a646cd6a1818c696ca"}, - {file = "protobuf-4.25.4-cp39-cp39-win_amd64.whl", hash = "sha256:ac79a48d6b99dfed2729ccccee547b34a1d3d63289c71cef056653a846a2240f"}, - {file = "protobuf-4.25.4-py3-none-any.whl", hash = "sha256:bfbebc1c8e4793cfd58589acfb8a1026be0003e852b9da7db5a4285bde996978"}, - {file = "protobuf-4.25.4.tar.gz", hash = "sha256:0dc4a62cc4052a036ee2204d26fe4d835c62827c855c8a03f29fe6da146b380d"}, -] - -[[package]] -name = "psutil" -version = "6.0.0" -description = "Cross-platform lib for process and system monitoring in Python." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" -files = [ - {file = "psutil-6.0.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a021da3e881cd935e64a3d0a20983bda0bb4cf80e4f74fa9bfcb1bc5785360c6"}, - {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1287c2b95f1c0a364d23bc6f2ea2365a8d4d9b726a3be7294296ff7ba97c17f0"}, - {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a3dbfb4de4f18174528d87cc352d1f788b7496991cca33c6996f40c9e3c92c"}, - {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6ec7588fb3ddaec7344a825afe298db83fe01bfaaab39155fa84cf1c0d6b13c3"}, - {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e7c870afcb7d91fdea2b37c24aeb08f98b6d67257a5cb0a8bc3ac68d0f1a68c"}, - {file = "psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35"}, - {file = "psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1"}, - {file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"}, - {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"}, - {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd"}, - {file = "psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132"}, - {file = "psutil-6.0.0-cp36-cp36m-win32.whl", hash = "sha256:fc8c9510cde0146432bbdb433322861ee8c3efbf8589865c8bf8d21cb30c4d14"}, - {file = "psutil-6.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34859b8d8f423b86e4385ff3665d3f4d94be3cdf48221fbe476e883514fdb71c"}, - {file = "psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d"}, - {file = "psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3"}, - {file = "psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0"}, - {file = "psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2"}, -] - -[package.extras] -test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] - -[[package]] -name = "ptyprocess" -version = "0.7.0" -description = "Run a subprocess in a pseudo terminal" -optional = false -python-versions = "*" -files = [ - {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, - {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, -] - -[[package]] -name = "pure-eval" -version = "0.2.3" -description = "Safely evaluate AST nodes without side effects" -optional = false -python-versions = "*" -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"}, -] - -[package.extras] -tests = ["pytest"] - -[[package]] -name = "pyarrow" -version = "15.0.2" -description = "Python library for Apache Arrow" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pyarrow-15.0.2-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:88b340f0a1d05b5ccc3d2d986279045655b1fe8e41aba6ca44ea28da0d1455d8"}, - {file = "pyarrow-15.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eaa8f96cecf32da508e6c7f69bb8401f03745c050c1dd42ec2596f2e98deecac"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23c6753ed4f6adb8461e7c383e418391b8d8453c5d67e17f416c3a5d5709afbd"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f639c059035011db8c0497e541a8a45d98a58dbe34dc8fadd0ef128f2cee46e5"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:290e36a59a0993e9a5224ed2fb3e53375770f07379a0ea03ee2fce2e6d30b423"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:06c2bb2a98bc792f040bef31ad3e9be6a63d0cb39189227c08a7d955db96816e"}, - {file = "pyarrow-15.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:f7a197f3670606a960ddc12adbe8075cea5f707ad7bf0dffa09637fdbb89f76c"}, - {file = "pyarrow-15.0.2-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:5f8bc839ea36b1f99984c78e06e7a06054693dc2af8920f6fb416b5bca9944e4"}, - {file = "pyarrow-15.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5e81dfb4e519baa6b4c80410421528c214427e77ca0ea9461eb4097c328fa33"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a4f240852b302a7af4646c8bfe9950c4691a419847001178662a98915fd7ee7"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e7d9cfb5a1e648e172428c7a42b744610956f3b70f524aa3a6c02a448ba853e"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2d4f905209de70c0eb5b2de6763104d5a9a37430f137678edfb9a675bac9cd98"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:90adb99e8ce5f36fbecbbc422e7dcbcbed07d985eed6062e459e23f9e71fd197"}, - {file = "pyarrow-15.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:b116e7fd7889294cbd24eb90cd9bdd3850be3738d61297855a71ac3b8124ee38"}, - {file = "pyarrow-15.0.2-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:25335e6f1f07fdaa026a61c758ee7d19ce824a866b27bba744348fa73bb5a440"}, - {file = "pyarrow-15.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:90f19e976d9c3d8e73c80be84ddbe2f830b6304e4c576349d9360e335cd627fc"}, - {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a22366249bf5fd40ddacc4f03cd3160f2d7c247692945afb1899bab8a140ddfb"}, - {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2a335198f886b07e4b5ea16d08ee06557e07db54a8400cc0d03c7f6a22f785f"}, - {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3e6d459c0c22f0b9c810a3917a1de3ee704b021a5fb8b3bacf968eece6df098f"}, - {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:033b7cad32198754d93465dcfb71d0ba7cb7cd5c9afd7052cab7214676eec38b"}, - {file = "pyarrow-15.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:29850d050379d6e8b5a693098f4de7fd6a2bea4365bfd073d7c57c57b95041ee"}, - {file = "pyarrow-15.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:7167107d7fb6dcadb375b4b691b7e316f4368f39f6f45405a05535d7ad5e5058"}, - {file = "pyarrow-15.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e85241b44cc3d365ef950432a1b3bd44ac54626f37b2e3a0cc89c20e45dfd8bf"}, - {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:248723e4ed3255fcd73edcecc209744d58a9ca852e4cf3d2577811b6d4b59818"}, - {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ff3bdfe6f1b81ca5b73b70a8d482d37a766433823e0c21e22d1d7dde76ca33f"}, - {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:f3d77463dee7e9f284ef42d341689b459a63ff2e75cee2b9302058d0d98fe142"}, - {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:8c1faf2482fb89766e79745670cbca04e7018497d85be9242d5350cba21357e1"}, - {file = "pyarrow-15.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:28f3016958a8e45a1069303a4a4f6a7d4910643fc08adb1e2e4a7ff056272ad3"}, - {file = "pyarrow-15.0.2-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:89722cb64286ab3d4daf168386f6968c126057b8c7ec3ef96302e81d8cdb8ae4"}, - {file = "pyarrow-15.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd0ba387705044b3ac77b1b317165c0498299b08261d8122c96051024f953cd5"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad2459bf1f22b6a5cdcc27ebfd99307d5526b62d217b984b9f5c974651398832"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58922e4bfece8b02abf7159f1f53a8f4d9f8e08f2d988109126c17c3bb261f22"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:adccc81d3dc0478ea0b498807b39a8d41628fa9210729b2f718b78cb997c7c91"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:8bd2baa5fe531571847983f36a30ddbf65261ef23e496862ece83bdceb70420d"}, - {file = "pyarrow-15.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6669799a1d4ca9da9c7e06ef48368320f5856f36f9a4dd31a11839dda3f6cc8c"}, - {file = "pyarrow-15.0.2.tar.gz", hash = "sha256:9c9bc803cb3b7bfacc1e96ffbfd923601065d9d3f911179d81e72d99fd74a3d9"}, -] - -[package.dependencies] -numpy = ">=1.16.6,<2" - -[[package]] -name = "pycparser" -version = "2.22" -description = "C parser in Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, - {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, -] - -[[package]] -name = "pydantic" -version = "2.8.2" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, - {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, -] - -[package.dependencies] -annotated-types = ">=0.4.0" -pydantic-core = "2.20.1" -typing-extensions = [ - {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, - {version = ">=4.6.1", markers = "python_version < \"3.13\""}, -] - -[package.extras] -email = ["email-validator (>=2.0.0)"] - -[[package]] -name = "pydantic-core" -version = "2.20.1" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, - {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, - {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, - {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, - {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, - {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, - {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, - {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, - {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, - {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, - {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, - {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, - {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, - {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pydantic-settings" -version = "2.3.4" -description = "Settings management using Pydantic" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_settings-2.3.4-py3-none-any.whl", hash = "sha256:11ad8bacb68a045f00e4f862c7a718c8a9ec766aa8fd4c32e39a0594b207b53a"}, - {file = "pydantic_settings-2.3.4.tar.gz", hash = "sha256:c5802e3d62b78e82522319bbc9b8f8ffb28ad1c988a99311d04f2a6051fca0a7"}, -] - -[package.dependencies] -pydantic = ">=2.7.0" -python-dotenv = ">=0.21.0" - -[package.extras] -toml = ["tomli (>=2.0.1)"] -yaml = ["pyyaml (>=6.0.1)"] - -[[package]] -name = "pygments" -version = "2.18.0" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, - {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pynvml" -version = "11.5.3" -description = "Python utilities for the NVIDIA Management Library" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pynvml-11.5.3-py3-none-any.whl", hash = "sha256:a5fba3ab14febda50d19dbda012ef62ae0aed45b7ccc07af0bc5be79223e450c"}, - {file = "pynvml-11.5.3.tar.gz", hash = "sha256:183d223ae487e5f00402d8da06c68c978ef8a9295793ee75559839c6ade7b229"}, -] - -[[package]] -name = "pyparsing" -version = "3.1.2" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -optional = false -python-versions = ">=3.6.8" -files = [ - {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, - {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, -] - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] - -[[package]] -name = "pytest" -version = "8.3.2" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"}, - {file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-cov" -version = "5.0.0" -description = "Pytest plugin for measuring coverage." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, - {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, -] - -[package.dependencies] -coverage = {version = ">=5.2.1", extras = ["toml"]} -pytest = ">=4.6" - -[package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] - -[[package]] -name = "pytest-mock" -version = "3.14.0" -description = "Thin-wrapper around the mock package for easier use with pytest" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, - {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, -] - -[package.dependencies] -pytest = ">=6.2.5" - -[package.extras] -dev = ["pre-commit", "pytest-asyncio", "tox"] - -[[package]] -name = "pytest-xdist" -version = "3.6.1" -description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"}, - {file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"}, -] - -[package.dependencies] -execnet = ">=2.1" -pytest = ">=7.0.0" - -[package.extras] -psutil = ["psutil (>=3.0)"] -setproctitle = ["setproctitle"] -testing = ["filelock"] - -[[package]] -name = "python-dateutil" -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" -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"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "python-dotenv" -version = "1.0.1" -description = "Read key-value pairs from a .env file and set them as environment variables" -optional = false -python-versions = ">=3.8" -files = [ - {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, - {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, -] - -[package.extras] -cli = ["click (>=5.0)"] - -[[package]] -name = "pytz" -version = "2024.1" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, -] - -[[package]] -name = "pywin32" -version = "306" -description = "Python for Window Extensions" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, - {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, - {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, - {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, - {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, - {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, - {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, - {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, - {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, - {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, - {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, - {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, - {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, - {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.1" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.6" -files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, -] - -[[package]] -name = "pyzmq" -version = "26.0.3" -description = "Python bindings for 0MQ" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:44dd6fc3034f1eaa72ece33588867df9e006a7303725a12d64c3dff92330f625"}, - {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:acb704195a71ac5ea5ecf2811c9ee19ecdc62b91878528302dd0be1b9451cc90"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbb9c997932473a27afa93954bb77a9f9b786b4ccf718d903f35da3232317de"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bcb34f869d431799c3ee7d516554797f7760cb2198ecaa89c3f176f72d062be"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ece17ec5f20d7d9b442e5174ae9f020365d01ba7c112205a4d59cf19dc38ee"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ba6e5e6588e49139a0979d03a7deb9c734bde647b9a8808f26acf9c547cab1bf"}, - {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3bf8b000a4e2967e6dfdd8656cd0757d18c7e5ce3d16339e550bd462f4857e59"}, - {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2136f64fbb86451dbbf70223635a468272dd20075f988a102bf8a3f194a411dc"}, - {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e8918973fbd34e7814f59143c5f600ecd38b8038161239fd1a3d33d5817a38b8"}, - {file = "pyzmq-26.0.3-cp310-cp310-win32.whl", hash = "sha256:0aaf982e68a7ac284377d051c742610220fd06d330dcd4c4dbb4cdd77c22a537"}, - {file = "pyzmq-26.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:f1a9b7d00fdf60b4039f4455afd031fe85ee8305b019334b72dcf73c567edc47"}, - {file = "pyzmq-26.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:80b12f25d805a919d53efc0a5ad7c0c0326f13b4eae981a5d7b7cc343318ebb7"}, - {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:a72a84570f84c374b4c287183debc776dc319d3e8ce6b6a0041ce2e400de3f32"}, - {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ca684ee649b55fd8f378127ac8462fb6c85f251c2fb027eb3c887e8ee347bcd"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e222562dc0f38571c8b1ffdae9d7adb866363134299264a1958d077800b193b7"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f17cde1db0754c35a91ac00b22b25c11da6eec5746431d6e5092f0cd31a3fea9"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b7c0c0b3244bb2275abe255d4a30c050d541c6cb18b870975553f1fb6f37527"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:ac97a21de3712afe6a6c071abfad40a6224fd14fa6ff0ff8d0c6e6cd4e2f807a"}, - {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88b88282e55fa39dd556d7fc04160bcf39dea015f78e0cecec8ff4f06c1fc2b5"}, - {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:72b67f966b57dbd18dcc7efbc1c7fc9f5f983e572db1877081f075004614fcdd"}, - {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4b6cecbbf3b7380f3b61de3a7b93cb721125dc125c854c14ddc91225ba52f83"}, - {file = "pyzmq-26.0.3-cp311-cp311-win32.whl", hash = "sha256:eed56b6a39216d31ff8cd2f1d048b5bf1700e4b32a01b14379c3b6dde9ce3aa3"}, - {file = "pyzmq-26.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:3191d312c73e3cfd0f0afdf51df8405aafeb0bad71e7ed8f68b24b63c4f36500"}, - {file = "pyzmq-26.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:b6907da3017ef55139cf0e417c5123a84c7332520e73a6902ff1f79046cd3b94"}, - {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:068ca17214038ae986d68f4a7021f97e187ed278ab6dccb79f837d765a54d753"}, - {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7821d44fe07335bea256b9f1f41474a642ca55fa671dfd9f00af8d68a920c2d4"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eeb438a26d87c123bb318e5f2b3d86a36060b01f22fbdffd8cf247d52f7c9a2b"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69ea9d6d9baa25a4dc9cef5e2b77b8537827b122214f210dd925132e34ae9b12"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7daa3e1369355766dea11f1d8ef829905c3b9da886ea3152788dc25ee6079e02"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6ca7a9a06b52d0e38ccf6bca1aeff7be178917893f3883f37b75589d42c4ac20"}, - {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1b7d0e124948daa4d9686d421ef5087c0516bc6179fdcf8828b8444f8e461a77"}, - {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e746524418b70f38550f2190eeee834db8850088c834d4c8406fbb9bc1ae10b2"}, - {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6b3146f9ae6af82c47a5282ac8803523d381b3b21caeae0327ed2f7ecb718798"}, - {file = "pyzmq-26.0.3-cp312-cp312-win32.whl", hash = "sha256:2b291d1230845871c00c8462c50565a9cd6026fe1228e77ca934470bb7d70ea0"}, - {file = "pyzmq-26.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:926838a535c2c1ea21c903f909a9a54e675c2126728c21381a94ddf37c3cbddf"}, - {file = "pyzmq-26.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:5bf6c237f8c681dfb91b17f8435b2735951f0d1fad10cc5dfd96db110243370b"}, - {file = "pyzmq-26.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c0991f5a96a8e620f7691e61178cd8f457b49e17b7d9cfa2067e2a0a89fc1d5"}, - {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dbf012d8fcb9f2cf0643b65df3b355fdd74fc0035d70bb5c845e9e30a3a4654b"}, - {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:01fbfbeb8249a68d257f601deb50c70c929dc2dfe683b754659569e502fbd3aa"}, - {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c8eb19abe87029c18f226d42b8a2c9efdd139d08f8bf6e085dd9075446db450"}, - {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5344b896e79800af86ad643408ca9aa303a017f6ebff8cee5a3163c1e9aec987"}, - {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:204e0f176fd1d067671157d049466869b3ae1fc51e354708b0dc41cf94e23a3a"}, - {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a42db008d58530efa3b881eeee4991146de0b790e095f7ae43ba5cc612decbc5"}, - {file = "pyzmq-26.0.3-cp37-cp37m-win32.whl", hash = "sha256:8d7a498671ca87e32b54cb47c82a92b40130a26c5197d392720a1bce1b3c77cf"}, - {file = "pyzmq-26.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:3b4032a96410bdc760061b14ed6a33613ffb7f702181ba999df5d16fb96ba16a"}, - {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2cc4e280098c1b192c42a849de8de2c8e0f3a84086a76ec5b07bfee29bda7d18"}, - {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bde86a2ed3ce587fa2b207424ce15b9a83a9fa14422dcc1c5356a13aed3df9d"}, - {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:34106f68e20e6ff253c9f596ea50397dbd8699828d55e8fa18bd4323d8d966e6"}, - {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ebbbd0e728af5db9b04e56389e2299a57ea8b9dd15c9759153ee2455b32be6ad"}, - {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6b1d1c631e5940cac5a0b22c5379c86e8df6a4ec277c7a856b714021ab6cfad"}, - {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e891ce81edd463b3b4c3b885c5603c00141151dd9c6936d98a680c8c72fe5c67"}, - {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9b273ecfbc590a1b98f014ae41e5cf723932f3b53ba9367cfb676f838038b32c"}, - {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b32bff85fb02a75ea0b68f21e2412255b5731f3f389ed9aecc13a6752f58ac97"}, - {file = "pyzmq-26.0.3-cp38-cp38-win32.whl", hash = "sha256:f6c21c00478a7bea93caaaef9e7629145d4153b15a8653e8bb4609d4bc70dbfc"}, - {file = "pyzmq-26.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:3401613148d93ef0fd9aabdbddb212de3db7a4475367f49f590c837355343972"}, - {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:2ed8357f4c6e0daa4f3baf31832df8a33334e0fe5b020a61bc8b345a3db7a606"}, - {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1c8f2a2ca45292084c75bb6d3a25545cff0ed931ed228d3a1810ae3758f975f"}, - {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b63731993cdddcc8e087c64e9cf003f909262b359110070183d7f3025d1c56b5"}, - {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3cd31f859b662ac5d7f4226ec7d8bd60384fa037fc02aee6ff0b53ba29a3ba8"}, - {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:115f8359402fa527cf47708d6f8a0f8234f0e9ca0cab7c18c9c189c194dbf620"}, - {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:715bdf952b9533ba13dfcf1f431a8f49e63cecc31d91d007bc1deb914f47d0e4"}, - {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e1258c639e00bf5e8a522fec6c3eaa3e30cf1c23a2f21a586be7e04d50c9acab"}, - {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15c59e780be8f30a60816a9adab900c12a58d79c1ac742b4a8df044ab2a6d920"}, - {file = "pyzmq-26.0.3-cp39-cp39-win32.whl", hash = "sha256:d0cdde3c78d8ab5b46595054e5def32a755fc028685add5ddc7403e9f6de9879"}, - {file = "pyzmq-26.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:ce828058d482ef860746bf532822842e0ff484e27f540ef5c813d516dd8896d2"}, - {file = "pyzmq-26.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:788f15721c64109cf720791714dc14afd0f449d63f3a5487724f024345067381"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c18645ef6294d99b256806e34653e86236eb266278c8ec8112622b61db255de"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e6bc96ebe49604df3ec2c6389cc3876cabe475e6bfc84ced1bf4e630662cb35"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:971e8990c5cc4ddcff26e149398fc7b0f6a042306e82500f5e8db3b10ce69f84"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8416c23161abd94cc7da80c734ad7c9f5dbebdadfdaa77dad78244457448223"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:082a2988364b60bb5de809373098361cf1dbb239623e39e46cb18bc035ed9c0c"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d57dfbf9737763b3a60d26e6800e02e04284926329aee8fb01049635e957fe81"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:77a85dca4c2430ac04dc2a2185c2deb3858a34fe7f403d0a946fa56970cf60a1"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4c82a6d952a1d555bf4be42b6532927d2a5686dd3c3e280e5f63225ab47ac1f5"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4496b1282c70c442809fc1b151977c3d967bfb33e4e17cedbf226d97de18f709"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e4946d6bdb7ba972dfda282f9127e5756d4f299028b1566d1245fa0d438847e6"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03c0ae165e700364b266876d712acb1ac02693acd920afa67da2ebb91a0b3c09"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3e3070e680f79887d60feeda051a58d0ac36622e1759f305a41059eff62c6da7"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6ca08b840fe95d1c2bd9ab92dac5685f949fc6f9ae820ec16193e5ddf603c3b2"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad"}, - {file = "pyzmq-26.0.3.tar.gz", hash = "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a"}, -] - -[package.dependencies] -cffi = {version = "*", markers = "implementation_name == \"pypy\""} - -[[package]] -name = "querystring-parser" -version = "1.2.4" -description = "QueryString parser for Python/Django that correctly handles nested dictionaries" -optional = false -python-versions = "*" -files = [ - {file = "querystring_parser-1.2.4-py2.py3-none-any.whl", hash = "sha256:d2fa90765eaf0de96c8b087872991a10238e89ba015ae59fedfed6bd61c242a0"}, - {file = "querystring_parser-1.2.4.tar.gz", hash = "sha256:644fce1cffe0530453b43a83a38094dbe422ccba8c9b2f2a1c00280e14ca8a62"}, -] - -[package.dependencies] -six = "*" - -[[package]] -name = "questionary" -version = "2.0.1" -description = "Python library to build pretty command line user prompts ⭐️" -optional = false -python-versions = ">=3.8" -files = [ - {file = "questionary-2.0.1-py3-none-any.whl", hash = "sha256:8ab9a01d0b91b68444dff7f6652c1e754105533f083cbe27597c8110ecc230a2"}, - {file = "questionary-2.0.1.tar.gz", hash = "sha256:bcce898bf3dbb446ff62830c86c5c6fb9a22a54146f0f5597d3da43b10d8fc8b"}, -] - -[package.dependencies] -prompt_toolkit = ">=2.0,<=3.0.36" - -[[package]] -name = "referencing" -version = "0.35.1" -description = "JSON Referencing + Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, - {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, -] - -[package.dependencies] -attrs = ">=22.2.0" -rpds-py = ">=0.7.0" - -[[package]] -name = "requests" -version = "2.32.3" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.8" -files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "rich" -version = "13.7.1" -description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, - {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, -] - -[package.dependencies] -markdown-it-py = ">=2.2.0" -pygments = ">=2.13.0,<3.0.0" - -[package.extras] -jupyter = ["ipywidgets (>=7.5.1,<9)"] - -[[package]] -name = "rpds-py" -version = "0.19.1" -description = "Python bindings to Rust's persistent data structures (rpds)" -optional = false -python-versions = ">=3.8" -files = [ - {file = "rpds_py-0.19.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:aaf71f95b21f9dc708123335df22e5a2fef6307e3e6f9ed773b2e0938cc4d491"}, - {file = "rpds_py-0.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca0dda0c5715efe2ab35bb83f813f681ebcd2840d8b1b92bfc6fe3ab382fae4a"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81db2e7282cc0487f500d4db203edc57da81acde9e35f061d69ed983228ffe3b"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1a8dfa125b60ec00c7c9baef945bb04abf8ac772d8ebefd79dae2a5f316d7850"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:271accf41b02687cef26367c775ab220372ee0f4925591c6796e7c148c50cab5"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9bc4161bd3b970cd6a6fcda70583ad4afd10f2750609fb1f3ca9505050d4ef3"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0cf2a0dbb5987da4bd92a7ca727eadb225581dd9681365beba9accbe5308f7d"}, - {file = "rpds_py-0.19.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b5e28e56143750808c1c79c70a16519e9bc0a68b623197b96292b21b62d6055c"}, - {file = "rpds_py-0.19.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c7af6f7b80f687b33a4cdb0a785a5d4de1fb027a44c9a049d8eb67d5bfe8a687"}, - {file = "rpds_py-0.19.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e429fc517a1c5e2a70d576077231538a98d59a45dfc552d1ac45a132844e6dfb"}, - {file = "rpds_py-0.19.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d2dbd8f4990d4788cb122f63bf000357533f34860d269c1a8e90ae362090ff3a"}, - {file = "rpds_py-0.19.1-cp310-none-win32.whl", hash = "sha256:e0f9d268b19e8f61bf42a1da48276bcd05f7ab5560311f541d22557f8227b866"}, - {file = "rpds_py-0.19.1-cp310-none-win_amd64.whl", hash = "sha256:df7c841813f6265e636fe548a49664c77af31ddfa0085515326342a751a6ba51"}, - {file = "rpds_py-0.19.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:902cf4739458852fe917104365ec0efbea7d29a15e4276c96a8d33e6ed8ec137"}, - {file = "rpds_py-0.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f3d73022990ab0c8b172cce57c69fd9a89c24fd473a5e79cbce92df87e3d9c48"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3837c63dd6918a24de6c526277910e3766d8c2b1627c500b155f3eecad8fad65"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cdb7eb3cf3deb3dd9e7b8749323b5d970052711f9e1e9f36364163627f96da58"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26ab43b6d65d25b1a333c8d1b1c2f8399385ff683a35ab5e274ba7b8bb7dc61c"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75130df05aae7a7ac171b3b5b24714cffeabd054ad2ebc18870b3aa4526eba23"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c34f751bf67cab69638564eee34023909380ba3e0d8ee7f6fe473079bf93f09b"}, - {file = "rpds_py-0.19.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2671cb47e50a97f419a02cd1e0c339b31de017b033186358db92f4d8e2e17d8"}, - {file = "rpds_py-0.19.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3c73254c256081704dba0a333457e2fb815364018788f9b501efe7c5e0ada401"}, - {file = "rpds_py-0.19.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4383beb4a29935b8fa28aca8fa84c956bf545cb0c46307b091b8d312a9150e6a"}, - {file = "rpds_py-0.19.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dbceedcf4a9329cc665452db1aaf0845b85c666e4885b92ee0cddb1dbf7e052a"}, - {file = "rpds_py-0.19.1-cp311-none-win32.whl", hash = "sha256:f0a6d4a93d2a05daec7cb885157c97bbb0be4da739d6f9dfb02e101eb40921cd"}, - {file = "rpds_py-0.19.1-cp311-none-win_amd64.whl", hash = "sha256:c149a652aeac4902ecff2dd93c3b2681c608bd5208c793c4a99404b3e1afc87c"}, - {file = "rpds_py-0.19.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:56313be667a837ff1ea3508cebb1ef6681d418fa2913a0635386cf29cff35165"}, - {file = "rpds_py-0.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d1d7539043b2b31307f2c6c72957a97c839a88b2629a348ebabe5aa8b626d6b"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e1dc59a5e7bc7f44bd0c048681f5e05356e479c50be4f2c1a7089103f1621d5"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8f78398e67a7227aefa95f876481485403eb974b29e9dc38b307bb6eb2315ea"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ef07a0a1d254eeb16455d839cef6e8c2ed127f47f014bbda64a58b5482b6c836"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8124101e92c56827bebef084ff106e8ea11c743256149a95b9fd860d3a4f331f"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08ce9c95a0b093b7aec75676b356a27879901488abc27e9d029273d280438505"}, - {file = "rpds_py-0.19.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b02dd77a2de6e49078c8937aadabe933ceac04b41c5dde5eca13a69f3cf144e"}, - {file = "rpds_py-0.19.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4dd02e29c8cbed21a1875330b07246b71121a1c08e29f0ee3db5b4cfe16980c4"}, - {file = "rpds_py-0.19.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9c7042488165f7251dc7894cd533a875d2875af6d3b0e09eda9c4b334627ad1c"}, - {file = "rpds_py-0.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f809a17cc78bd331e137caa25262b507225854073fd319e987bd216bed911b7c"}, - {file = "rpds_py-0.19.1-cp312-none-win32.whl", hash = "sha256:3ddab996807c6b4227967fe1587febade4e48ac47bb0e2d3e7858bc621b1cace"}, - {file = "rpds_py-0.19.1-cp312-none-win_amd64.whl", hash = "sha256:32e0db3d6e4f45601b58e4ac75c6f24afbf99818c647cc2066f3e4b192dabb1f"}, - {file = "rpds_py-0.19.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:747251e428406b05fc86fee3904ee19550c4d2d19258cef274e2151f31ae9d38"}, - {file = "rpds_py-0.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dc733d35f861f8d78abfaf54035461e10423422999b360966bf1c443cbc42705"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbda75f245caecff8faa7e32ee94dfaa8312a3367397975527f29654cd17a6ed"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd04d8cab16cab5b0a9ffc7d10f0779cf1120ab16c3925404428f74a0a43205a"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2d66eb41ffca6cc3c91d8387509d27ba73ad28371ef90255c50cb51f8953301"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fdf4890cda3b59170009d012fca3294c00140e7f2abe1910e6a730809d0f3f9b"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1fa67ef839bad3815124f5f57e48cd50ff392f4911a9f3cf449d66fa3df62a5"}, - {file = "rpds_py-0.19.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b82c9514c6d74b89a370c4060bdb80d2299bc6857e462e4a215b4ef7aa7b090e"}, - {file = "rpds_py-0.19.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c7b07959866a6afb019abb9564d8a55046feb7a84506c74a6f197cbcdf8a208e"}, - {file = "rpds_py-0.19.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4f580ae79d0b861dfd912494ab9d477bea535bfb4756a2269130b6607a21802e"}, - {file = "rpds_py-0.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c6d20c8896c00775e6f62d8373aba32956aa0b850d02b5ec493f486c88e12859"}, - {file = "rpds_py-0.19.1-cp313-none-win32.whl", hash = "sha256:afedc35fe4b9e30ab240b208bb9dc8938cb4afe9187589e8d8d085e1aacb8309"}, - {file = "rpds_py-0.19.1-cp313-none-win_amd64.whl", hash = "sha256:1d4af2eb520d759f48f1073ad3caef997d1bfd910dc34e41261a595d3f038a94"}, - {file = "rpds_py-0.19.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:34bca66e2e3eabc8a19e9afe0d3e77789733c702c7c43cd008e953d5d1463fde"}, - {file = "rpds_py-0.19.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:24f8ae92c7fae7c28d0fae9b52829235df83f34847aa8160a47eb229d9666c7b"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71157f9db7f6bc6599a852852f3389343bea34315b4e6f109e5cbc97c1fb2963"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1d494887d40dc4dd0d5a71e9d07324e5c09c4383d93942d391727e7a40ff810b"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b3661e6d4ba63a094138032c1356d557de5b3ea6fd3cca62a195f623e381c76"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97fbb77eaeb97591efdc654b8b5f3ccc066406ccfb3175b41382f221ecc216e8"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cc4bc73e53af8e7a42c8fd7923bbe35babacfa7394ae9240b3430b5dcf16b2a"}, - {file = "rpds_py-0.19.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:35af5e4d5448fa179fd7fff0bba0fba51f876cd55212f96c8bbcecc5c684ae5c"}, - {file = "rpds_py-0.19.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3511f6baf8438326e351097cecd137eb45c5f019944fe0fd0ae2fea2fd26be39"}, - {file = "rpds_py-0.19.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:57863d16187995c10fe9cf911b897ed443ac68189179541734502353af33e693"}, - {file = "rpds_py-0.19.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:9e318e6786b1e750a62f90c6f7fa8b542102bdcf97c7c4de2a48b50b61bd36ec"}, - {file = "rpds_py-0.19.1-cp38-none-win32.whl", hash = "sha256:53dbc35808c6faa2ce3e48571f8f74ef70802218554884787b86a30947842a14"}, - {file = "rpds_py-0.19.1-cp38-none-win_amd64.whl", hash = "sha256:8df1c283e57c9cb4d271fdc1875f4a58a143a2d1698eb0d6b7c0d7d5f49c53a1"}, - {file = "rpds_py-0.19.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e76c902d229a3aa9d5ceb813e1cbcc69bf5bda44c80d574ff1ac1fa3136dea71"}, - {file = "rpds_py-0.19.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:de1f7cd5b6b351e1afd7568bdab94934d656abe273d66cda0ceea43bbc02a0c2"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fc5a84777cb61692d17988989690d6f34f7f95968ac81398d67c0d0994a897"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:74129d5ffc4cde992d89d345f7f7d6758320e5d44a369d74d83493429dad2de5"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e360188b72f8080fefa3adfdcf3618604cc8173651c9754f189fece068d2a45"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13e6d4840897d4e4e6b2aa1443e3a8eca92b0402182aafc5f4ca1f5e24f9270a"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f09529d2332264a902688031a83c19de8fda5eb5881e44233286b9c9ec91856d"}, - {file = "rpds_py-0.19.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0d4b52811dcbc1aba08fd88d475f75b4f6db0984ba12275d9bed1a04b2cae9b5"}, - {file = "rpds_py-0.19.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dd635c2c4043222d80d80ca1ac4530a633102a9f2ad12252183bcf338c1b9474"}, - {file = "rpds_py-0.19.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f35b34a5184d5e0cc360b61664c1c06e866aab077b5a7c538a3e20c8fcdbf90b"}, - {file = "rpds_py-0.19.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d4ec0046facab83012d821b33cead742a35b54575c4edfb7ed7445f63441835f"}, - {file = "rpds_py-0.19.1-cp39-none-win32.whl", hash = "sha256:f5b8353ea1a4d7dfb59a7f45c04df66ecfd363bb5b35f33b11ea579111d4655f"}, - {file = "rpds_py-0.19.1-cp39-none-win_amd64.whl", hash = "sha256:1fb93d3486f793d54a094e2bfd9cd97031f63fcb5bc18faeb3dd4b49a1c06523"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7d5c7e32f3ee42f77d8ff1a10384b5cdcc2d37035e2e3320ded909aa192d32c3"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:89cc8921a4a5028d6dd388c399fcd2eef232e7040345af3d5b16c04b91cf3c7e"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca34e913d27401bda2a6f390d0614049f5a95b3b11cd8eff80fe4ec340a1208"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5953391af1405f968eb5701ebbb577ebc5ced8d0041406f9052638bafe52209d"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:840e18c38098221ea6201f091fc5d4de6128961d2930fbbc96806fb43f69aec1"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6d8b735c4d162dc7d86a9cf3d717f14b6c73637a1f9cd57fe7e61002d9cb1972"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce757c7c90d35719b38fa3d4ca55654a76a40716ee299b0865f2de21c146801c"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a9421b23c85f361a133aa7c5e8ec757668f70343f4ed8fdb5a4a14abd5437244"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3b823be829407393d84ee56dc849dbe3b31b6a326f388e171555b262e8456cc1"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:5e58b61dcbb483a442c6239c3836696b79f2cd8e7eec11e12155d3f6f2d886d1"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39d67896f7235b2c886fb1ee77b1491b77049dcef6fbf0f401e7b4cbed86bbd4"}, - {file = "rpds_py-0.19.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8b32cd4ab6db50c875001ba4f5a6b30c0f42151aa1fbf9c2e7e3674893fb1dc4"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1c32e41de995f39b6b315d66c27dea3ef7f7c937c06caab4c6a79a5e09e2c415"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1a129c02b42d46758c87faeea21a9f574e1c858b9f358b6dd0bbd71d17713175"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:346557f5b1d8fd9966059b7a748fd79ac59f5752cd0e9498d6a40e3ac1c1875f"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:31e450840f2f27699d014cfc8865cc747184286b26d945bcea6042bb6aa4d26e"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01227f8b3e6c8961490d869aa65c99653df80d2f0a7fde8c64ebddab2b9b02fd"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69084fd29bfeff14816666c93a466e85414fe6b7d236cfc108a9c11afa6f7301"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d2b88efe65544a7d5121b0c3b003ebba92bfede2ea3577ce548b69c5235185"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ea961a674172ed2235d990d7edf85d15d8dfa23ab8575e48306371c070cda67"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:5beffdbe766cfe4fb04f30644d822a1080b5359df7db3a63d30fa928375b2720"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:720f3108fb1bfa32e51db58b832898372eb5891e8472a8093008010911e324c5"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c2087dbb76a87ec2c619253e021e4fb20d1a72580feeaa6892b0b3d955175a71"}, - {file = "rpds_py-0.19.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ddd50f18ebc05ec29a0d9271e9dbe93997536da3546677f8ca00b76d477680c"}, - {file = "rpds_py-0.19.1.tar.gz", hash = "sha256:31dd5794837f00b46f4096aa8ccaa5972f73a938982e32ed817bb520c465e520"}, -] - -[[package]] -name = "ruff" -version = "0.5.5" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.5.5-py3-none-linux_armv6l.whl", hash = "sha256:605d589ec35d1da9213a9d4d7e7a9c761d90bba78fc8790d1c5e65026c1b9eaf"}, - {file = "ruff-0.5.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:00817603822a3e42b80f7c3298c8269e09f889ee94640cd1fc7f9329788d7bf8"}, - {file = "ruff-0.5.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:187a60f555e9f865a2ff2c6984b9afeffa7158ba6e1eab56cb830404c942b0f3"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe26fc46fa8c6e0ae3f47ddccfbb136253c831c3289bba044befe68f467bfb16"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4ad25dd9c5faac95c8e9efb13e15803cd8bbf7f4600645a60ffe17c73f60779b"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f70737c157d7edf749bcb952d13854e8f745cec695a01bdc6e29c29c288fc36e"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:cfd7de17cef6ab559e9f5ab859f0d3296393bc78f69030967ca4d87a541b97a0"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a09b43e02f76ac0145f86a08e045e2ea452066f7ba064fd6b0cdccb486f7c3e7"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0b856cb19c60cd40198be5d8d4b556228e3dcd545b4f423d1ad812bfdca5884"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3687d002f911e8a5faf977e619a034d159a8373514a587249cc00f211c67a091"}, - {file = "ruff-0.5.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ac9dc814e510436e30d0ba535f435a7f3dc97f895f844f5b3f347ec8c228a523"}, - {file = "ruff-0.5.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:af9bdf6c389b5add40d89b201425b531e0a5cceb3cfdcc69f04d3d531c6be74f"}, - {file = "ruff-0.5.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d40a8533ed545390ef8315b8e25c4bb85739b90bd0f3fe1280a29ae364cc55d8"}, - {file = "ruff-0.5.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:cab904683bf9e2ecbbe9ff235bfe056f0eba754d0168ad5407832928d579e7ab"}, - {file = "ruff-0.5.5-py3-none-win32.whl", hash = "sha256:696f18463b47a94575db635ebb4c178188645636f05e934fdf361b74edf1bb2d"}, - {file = "ruff-0.5.5-py3-none-win_amd64.whl", hash = "sha256:50f36d77f52d4c9c2f1361ccbfbd09099a1b2ea5d2b2222c586ab08885cf3445"}, - {file = "ruff-0.5.5-py3-none-win_arm64.whl", hash = "sha256:3191317d967af701f1b73a31ed5788795936e423b7acce82a2b63e26eb3e89d6"}, - {file = "ruff-0.5.5.tar.gz", hash = "sha256:cc5516bdb4858d972fbc31d246bdb390eab8df1a26e2353be2dbc0c2d7f5421a"}, -] - -[[package]] -name = "scikit-learn" -version = "1.4.2" -description = "A set of python modules for machine learning and data mining" -optional = false -python-versions = ">=3.9" -files = [ - {file = "scikit-learn-1.4.2.tar.gz", hash = "sha256:daa1c471d95bad080c6e44b4946c9390a4842adc3082572c20e4f8884e39e959"}, - {file = "scikit_learn-1.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8539a41b3d6d1af82eb629f9c57f37428ff1481c1e34dddb3b9d7af8ede67ac5"}, - {file = "scikit_learn-1.4.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:68b8404841f944a4a1459b07198fa2edd41a82f189b44f3e1d55c104dbc2e40c"}, - {file = "scikit_learn-1.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81bf5d8bbe87643103334032dd82f7419bc8c8d02a763643a6b9a5c7288c5054"}, - {file = "scikit_learn-1.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36f0ea5d0f693cb247a073d21a4123bdf4172e470e6d163c12b74cbb1536cf38"}, - {file = "scikit_learn-1.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:87440e2e188c87db80ea4023440923dccbd56fbc2d557b18ced00fef79da0727"}, - {file = "scikit_learn-1.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:45dee87ac5309bb82e3ea633955030df9bbcb8d2cdb30383c6cd483691c546cc"}, - {file = "scikit_learn-1.4.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1d0b25d9c651fd050555aadd57431b53d4cf664e749069da77f3d52c5ad14b3b"}, - {file = "scikit_learn-1.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0203c368058ab92efc6168a1507d388d41469c873e96ec220ca8e74079bf62e"}, - {file = "scikit_learn-1.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44c62f2b124848a28fd695db5bc4da019287abf390bfce602ddc8aa1ec186aae"}, - {file = "scikit_learn-1.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:5cd7b524115499b18b63f0c96f4224eb885564937a0b3477531b2b63ce331904"}, - {file = "scikit_learn-1.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:90378e1747949f90c8f385898fff35d73193dfcaec3dd75d6b542f90c4e89755"}, - {file = "scikit_learn-1.4.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ff4effe5a1d4e8fed260a83a163f7dbf4f6087b54528d8880bab1d1377bd78be"}, - {file = "scikit_learn-1.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:671e2f0c3f2c15409dae4f282a3a619601fa824d2c820e5b608d9d775f91780c"}, - {file = "scikit_learn-1.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d36d0bc983336bbc1be22f9b686b50c964f593c8a9a913a792442af9bf4f5e68"}, - {file = "scikit_learn-1.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:d762070980c17ba3e9a4a1e043ba0518ce4c55152032f1af0ca6f39b376b5928"}, - {file = "scikit_learn-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9993d5e78a8148b1d0fdf5b15ed92452af5581734129998c26f481c46586d68"}, - {file = "scikit_learn-1.4.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:426d258fddac674fdf33f3cb2d54d26f49406e2599dbf9a32b4d1696091d4256"}, - {file = "scikit_learn-1.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5460a1a5b043ae5ae4596b3126a4ec33ccba1b51e7ca2c5d36dac2169f62ab1d"}, - {file = "scikit_learn-1.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49d64ef6cb8c093d883e5a36c4766548d974898d378e395ba41a806d0e824db8"}, - {file = "scikit_learn-1.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:c97a50b05c194be9146d61fe87dbf8eac62b203d9e87a3ccc6ae9aed2dfaf361"}, -] - -[package.dependencies] -joblib = ">=1.2.0" -numpy = ">=1.19.5" -scipy = ">=1.6.0" -threadpoolctl = ">=2.0.0" - -[package.extras] -benchmark = ["matplotlib (>=3.3.4)", "memory-profiler (>=0.57.0)", "pandas (>=1.1.5)"] -docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.3.4)", "memory-profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-gallery (>=0.15.0)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] -examples = ["matplotlib (>=3.3.4)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)"] -tests = ["black (>=23.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.3)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "polars (>=0.19.12)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.0.272)", "scikit-image (>=0.17.2)"] - -[[package]] -name = "scipy" -version = "1.14.0" -description = "Fundamental algorithms for scientific computing in Python" -optional = false -python-versions = ">=3.10" -files = [ - {file = "scipy-1.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7e911933d54ead4d557c02402710c2396529540b81dd554fc1ba270eb7308484"}, - {file = "scipy-1.14.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:687af0a35462402dd851726295c1a5ae5f987bd6e9026f52e9505994e2f84ef6"}, - {file = "scipy-1.14.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:07e179dc0205a50721022344fb85074f772eadbda1e1b3eecdc483f8033709b7"}, - {file = "scipy-1.14.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a9c9a9b226d9a21e0a208bdb024c3982932e43811b62d202aaf1bb59af264b1"}, - {file = "scipy-1.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:076c27284c768b84a45dcf2e914d4000aac537da74236a0d45d82c6fa4b7b3c0"}, - {file = "scipy-1.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42470ea0195336df319741e230626b6225a740fd9dce9642ca13e98f667047c0"}, - {file = "scipy-1.14.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:176c6f0d0470a32f1b2efaf40c3d37a24876cebf447498a4cefb947a79c21e9d"}, - {file = "scipy-1.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:ad36af9626d27a4326c8e884917b7ec321d8a1841cd6dacc67d2a9e90c2f0359"}, - {file = "scipy-1.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6d056a8709ccda6cf36cdd2eac597d13bc03dba38360f418560a93050c76a16e"}, - {file = "scipy-1.14.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f0a50da861a7ec4573b7c716b2ebdcdf142b66b756a0d392c236ae568b3a93fb"}, - {file = "scipy-1.14.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:94c164a9e2498e68308e6e148646e486d979f7fcdb8b4cf34b5441894bdb9caf"}, - {file = "scipy-1.14.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:a7d46c3e0aea5c064e734c3eac5cf9eb1f8c4ceee756262f2c7327c4c2691c86"}, - {file = "scipy-1.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9eee2989868e274aae26125345584254d97c56194c072ed96cb433f32f692ed8"}, - {file = "scipy-1.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e3154691b9f7ed73778d746da2df67a19d046a6c8087c8b385bc4cdb2cfca74"}, - {file = "scipy-1.14.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c40003d880f39c11c1edbae8144e3813904b10514cd3d3d00c277ae996488cdb"}, - {file = "scipy-1.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:5b083c8940028bb7e0b4172acafda6df762da1927b9091f9611b0bcd8676f2bc"}, - {file = "scipy-1.14.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bff2438ea1330e06e53c424893ec0072640dac00f29c6a43a575cbae4c99b2b9"}, - {file = "scipy-1.14.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:bbc0471b5f22c11c389075d091d3885693fd3f5e9a54ce051b46308bc787e5d4"}, - {file = "scipy-1.14.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:64b2ff514a98cf2bb734a9f90d32dc89dc6ad4a4a36a312cd0d6327170339eb0"}, - {file = "scipy-1.14.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:7d3da42fbbbb860211a811782504f38ae7aaec9de8764a9bef6b262de7a2b50f"}, - {file = "scipy-1.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d91db2c41dd6c20646af280355d41dfa1ec7eead235642178bd57635a3f82209"}, - {file = "scipy-1.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a01cc03bcdc777c9da3cfdcc74b5a75caffb48a6c39c8450a9a05f82c4250a14"}, - {file = "scipy-1.14.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:65df4da3c12a2bb9ad52b86b4dcf46813e869afb006e58be0f516bc370165159"}, - {file = "scipy-1.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:4c4161597c75043f7154238ef419c29a64ac4a7c889d588ea77690ac4d0d9b20"}, - {file = "scipy-1.14.0.tar.gz", hash = "sha256:b5923f48cb840380f9854339176ef21763118a7300a88203ccd0bdd26e58527b"}, -] - -[package.dependencies] -numpy = ">=1.23.5,<2.3" - -[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)", "sphinx-design (>=0.4.0)"] -test = ["Cython", "array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] - -[[package]] -name = "setuptools" -version = "71.1.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "setuptools-71.1.0-py3-none-any.whl", hash = "sha256:33874fdc59b3188304b2e7c80d9029097ea31627180896fb549c578ceb8a0855"}, - {file = "setuptools-71.1.0.tar.gz", hash = "sha256:032d42ee9fb536e33087fb66cac5f840eb9391ed05637b3f2a76a7c8fb477936"}, -] - -[package.extras] -core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] -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.11.*)", "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.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] - -[[package]] -name = "shap" -version = "0.46.0" -description = "A unified approach to explain the output of any machine learning model." -optional = false -python-versions = ">=3.9" -files = [ - {file = "shap-0.46.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:905b2d7a0262ef820785a7c0e3c7f24c9d281e6f934edb65cbe811fe0e971187"}, - {file = "shap-0.46.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bccbb30ffbf8b9ed53e476d0c1319fdfcbeac455fe9df277fb0d570d92790e80"}, - {file = "shap-0.46.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9633d3d7174acc01455538169ca6e6344f570530384548631aeadcf7bfdaaaea"}, - {file = "shap-0.46.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6097eb2ab7e8c194254bac3e462266490fbdd43bfe35a1014e9ee21c4ef10ee"}, - {file = "shap-0.46.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0cf7c6e3f056cf3bfd16bcfd5744d0cc25b851555b1e750a3ab889b3077d2d05"}, - {file = "shap-0.46.0-cp310-cp310-win_amd64.whl", hash = "sha256:949bd7fa40371c3f1885a30ae0611dd481bf4ac90066ff726c73cb5bb393032b"}, - {file = "shap-0.46.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f18217c98f39fd485d541f6aab0b860b3be74b69b21d4faf11959e3fcba765c5"}, - {file = "shap-0.46.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5bbdae4489577c6fce1cfe2d9d8f3d5b96d69284d29645fe651f78f6e965aeb4"}, - {file = "shap-0.46.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13d36dc58d1e8c010feb4e7da71c77d23626a52d12d16b02869e793b11be4695"}, - {file = "shap-0.46.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70e06fdfdf53d5fb932c82f4529397552b262e0ccce734f5226fb1e1eab2bc3e"}, - {file = "shap-0.46.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:943f0806fa00b4fafb174f172a73d88de2d8600e6d69c2e2bff833f00e6c4c21"}, - {file = "shap-0.46.0-cp311-cp311-win_amd64.whl", hash = "sha256:c972a2efdc9fc00d543efaa55805eca947b8c418d065962d967824c2d5d295d0"}, - {file = "shap-0.46.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a9cc9be191562bea1a782baff912854d267c6f4831bbf454d8d7bb7df7ddb214"}, - {file = "shap-0.46.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab1fecfb43604605be17e26ae12bde4406c451c46b54b980d9570cec03fbc239"}, - {file = "shap-0.46.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b216adf2a17b0e0694f17965ac29354ca8c4f27ac3c66f68bf6fc4cb2aa28207"}, - {file = "shap-0.46.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6e5dc5257b747a784f7a9b3acb64216a9011f01734f3c96b27fe5e15ae5f99f"}, - {file = "shap-0.46.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1230bf973463041dfa15734f290fbf3ab9c6e4e8222339c76f68fc355b940d80"}, - {file = "shap-0.46.0-cp312-cp312-win_amd64.whl", hash = "sha256:0cbbf996537b2a42d3bc7f2a13492988822ee1bfd7220700989408dfb9e1c5ad"}, - {file = "shap-0.46.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c7d0c53a8cbefb2260ce28a98fa866c1a287770981f95c40a54f9d1082cbb31"}, - {file = "shap-0.46.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0726f8c63f09dde586c9859ad315641f5a080e9aecf123a0cabc336b61703d66"}, - {file = "shap-0.46.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99edc28daac4cbb98cd9f02febf4e9fbc6b9e3d24519c22ed59a98c68c47336c"}, - {file = "shap-0.46.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85a6ff9c9e15abd9a332360cff8d105165a600466167d6274dab468a050d005a"}, - {file = "shap-0.46.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9f9f9727839e2459dfa4b4fbc190224e87f7b4b2a29f0e2a438500215921192b"}, - {file = "shap-0.46.0-cp39-cp39-win_amd64.whl", hash = "sha256:b169b485a69f7d32e32fa64ad77be00129436c4455b9d0997b21b553f0becc8c"}, - {file = "shap-0.46.0.tar.gz", hash = "sha256:bdaa5b098be5a958348015e940f6fd264339b5db1e651f9898a3117be95b05a0"}, -] - -[package.dependencies] -cloudpickle = "*" -numba = "*" -numpy = "*" -packaging = ">20.9" -pandas = "*" -scikit-learn = "*" -scipy = "*" -slicer = "0.0.8" -tqdm = ">=4.27.0" - -[package.extras] -docs = ["ipython", "matplotlib", "myst-parser (==2.0.0)", "nbsphinx (==0.9.3)", "numpydoc", "requests", "sphinx (==7.2.6)", "sphinx-github-changelog (==1.2.1)", "sphinx-rtd-theme (==2.0.0)"] -others = ["lime"] -plots = ["ipython", "matplotlib"] -test = ["catboost", "gpboost", "lightgbm", "ngboost", "opencv-python", "protobuf (==3.20.3)", "pyod", "pyspark", "pytest", "pytest-cov", "pytest-mpl", "sentencepiece", "tensorflow", "tf-keras", "torch", "torch (==2.2.0)", "torchvision", "transformers", "xgboost"] -test-core = ["pytest", "pytest-cov", "pytest-mpl"] -test-notebooks = ["datasets", "jupyter", "keras", "nbconvert", "nbformat", "nlp", "transformers"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "slicer" -version = "0.0.8" -description = "A small package for big slicing." -optional = false -python-versions = ">=3.6" -files = [ - {file = "slicer-0.0.8-py3-none-any.whl", hash = "sha256:6c206258543aecd010d497dc2eca9d2805860a0b3758673903456b7df7934dc3"}, - {file = "slicer-0.0.8.tar.gz", hash = "sha256:2e7553af73f0c0c2d355f4afcc3ecf97c6f2156fcf4593955c3f56cf6c4d6eb7"}, -] - -[[package]] -name = "smmap" -version = "5.0.1" -description = "A pure Python implementation of a sliding window memory map manager" -optional = false -python-versions = ">=3.7" -files = [ - {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, - {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, -] - -[[package]] -name = "sqlalchemy" -version = "2.0.31" -description = "Database Abstraction Library" -optional = false -python-versions = ">=3.7" -files = [ - {file = "SQLAlchemy-2.0.31-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f2a213c1b699d3f5768a7272de720387ae0122f1becf0901ed6eaa1abd1baf6c"}, - {file = "SQLAlchemy-2.0.31-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9fea3d0884e82d1e33226935dac990b967bef21315cbcc894605db3441347443"}, - {file = "SQLAlchemy-2.0.31-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ad7f221d8a69d32d197e5968d798217a4feebe30144986af71ada8c548e9fa"}, - {file = "SQLAlchemy-2.0.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2bee229715b6366f86a95d497c347c22ddffa2c7c96143b59a2aa5cc9eebbc"}, - {file = "SQLAlchemy-2.0.31-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cd5b94d4819c0c89280b7c6109c7b788a576084bf0a480ae17c227b0bc41e109"}, - {file = "SQLAlchemy-2.0.31-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:750900a471d39a7eeba57580b11983030517a1f512c2cb287d5ad0fcf3aebd58"}, - {file = "SQLAlchemy-2.0.31-cp310-cp310-win32.whl", hash = "sha256:7bd112be780928c7f493c1a192cd8c5fc2a2a7b52b790bc5a84203fb4381c6be"}, - {file = "SQLAlchemy-2.0.31-cp310-cp310-win_amd64.whl", hash = "sha256:5a48ac4d359f058474fadc2115f78a5cdac9988d4f99eae44917f36aa1476327"}, - {file = "SQLAlchemy-2.0.31-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f68470edd70c3ac3b6cd5c2a22a8daf18415203ca1b036aaeb9b0fb6f54e8298"}, - {file = "SQLAlchemy-2.0.31-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2e2c38c2a4c5c634fe6c3c58a789712719fa1bf9b9d6ff5ebfce9a9e5b89c1ca"}, - {file = "SQLAlchemy-2.0.31-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd15026f77420eb2b324dcb93551ad9c5f22fab2c150c286ef1dc1160f110203"}, - {file = "SQLAlchemy-2.0.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2196208432deebdfe3b22185d46b08f00ac9d7b01284e168c212919891289396"}, - {file = "SQLAlchemy-2.0.31-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:352b2770097f41bff6029b280c0e03b217c2dcaddc40726f8f53ed58d8a85da4"}, - {file = "SQLAlchemy-2.0.31-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56d51ae825d20d604583f82c9527d285e9e6d14f9a5516463d9705dab20c3740"}, - {file = "SQLAlchemy-2.0.31-cp311-cp311-win32.whl", hash = "sha256:6e2622844551945db81c26a02f27d94145b561f9d4b0c39ce7bfd2fda5776dac"}, - {file = "SQLAlchemy-2.0.31-cp311-cp311-win_amd64.whl", hash = "sha256:ccaf1b0c90435b6e430f5dd30a5aede4764942a695552eb3a4ab74ed63c5b8d3"}, - {file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3b74570d99126992d4b0f91fb87c586a574a5872651185de8297c6f90055ae42"}, - {file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f77c4f042ad493cb8595e2f503c7a4fe44cd7bd59c7582fd6d78d7e7b8ec52c"}, - {file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd1591329333daf94467e699e11015d9c944f44c94d2091f4ac493ced0119449"}, - {file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74afabeeff415e35525bf7a4ecdab015f00e06456166a2eba7590e49f8db940e"}, - {file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b9c01990d9015df2c6f818aa8f4297d42ee71c9502026bb074e713d496e26b67"}, - {file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:66f63278db425838b3c2b1c596654b31939427016ba030e951b292e32b99553e"}, - {file = "SQLAlchemy-2.0.31-cp312-cp312-win32.whl", hash = "sha256:0b0f658414ee4e4b8cbcd4a9bb0fd743c5eeb81fc858ca517217a8013d282c96"}, - {file = "SQLAlchemy-2.0.31-cp312-cp312-win_amd64.whl", hash = "sha256:fa4b1af3e619b5b0b435e333f3967612db06351217c58bfb50cee5f003db2a5a"}, - {file = "SQLAlchemy-2.0.31-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f43e93057cf52a227eda401251c72b6fbe4756f35fa6bfebb5d73b86881e59b0"}, - {file = "SQLAlchemy-2.0.31-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d337bf94052856d1b330d5fcad44582a30c532a2463776e1651bd3294ee7e58b"}, - {file = "SQLAlchemy-2.0.31-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c06fb43a51ccdff3b4006aafee9fcf15f63f23c580675f7734245ceb6b6a9e05"}, - {file = "SQLAlchemy-2.0.31-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:b6e22630e89f0e8c12332b2b4c282cb01cf4da0d26795b7eae16702a608e7ca1"}, - {file = "SQLAlchemy-2.0.31-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:79a40771363c5e9f3a77f0e28b3302801db08040928146e6808b5b7a40749c88"}, - {file = "SQLAlchemy-2.0.31-cp37-cp37m-win32.whl", hash = "sha256:501ff052229cb79dd4c49c402f6cb03b5a40ae4771efc8bb2bfac9f6c3d3508f"}, - {file = "SQLAlchemy-2.0.31-cp37-cp37m-win_amd64.whl", hash = "sha256:597fec37c382a5442ffd471f66ce12d07d91b281fd474289356b1a0041bdf31d"}, - {file = "SQLAlchemy-2.0.31-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:dc6d69f8829712a4fd799d2ac8d79bdeff651c2301b081fd5d3fe697bd5b4ab9"}, - {file = "SQLAlchemy-2.0.31-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:23b9fbb2f5dd9e630db70fbe47d963c7779e9c81830869bd7d137c2dc1ad05fb"}, - {file = "SQLAlchemy-2.0.31-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a21c97efcbb9f255d5c12a96ae14da873233597dfd00a3a0c4ce5b3e5e79704"}, - {file = "SQLAlchemy-2.0.31-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26a6a9837589c42b16693cf7bf836f5d42218f44d198f9343dd71d3164ceeeac"}, - {file = "SQLAlchemy-2.0.31-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc251477eae03c20fae8db9c1c23ea2ebc47331bcd73927cdcaecd02af98d3c3"}, - {file = "SQLAlchemy-2.0.31-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2fd17e3bb8058359fa61248c52c7b09a97cf3c820e54207a50af529876451808"}, - {file = "SQLAlchemy-2.0.31-cp38-cp38-win32.whl", hash = "sha256:c76c81c52e1e08f12f4b6a07af2b96b9b15ea67ccdd40ae17019f1c373faa227"}, - {file = "SQLAlchemy-2.0.31-cp38-cp38-win_amd64.whl", hash = "sha256:4b600e9a212ed59355813becbcf282cfda5c93678e15c25a0ef896b354423238"}, - {file = "SQLAlchemy-2.0.31-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b6cf796d9fcc9b37011d3f9936189b3c8074a02a4ed0c0fbbc126772c31a6d4"}, - {file = "SQLAlchemy-2.0.31-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:78fe11dbe37d92667c2c6e74379f75746dc947ee505555a0197cfba9a6d4f1a4"}, - {file = "SQLAlchemy-2.0.31-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fc47dc6185a83c8100b37acda27658fe4dbd33b7d5e7324111f6521008ab4fe"}, - {file = "SQLAlchemy-2.0.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a41514c1a779e2aa9a19f67aaadeb5cbddf0b2b508843fcd7bafdf4c6864005"}, - {file = "SQLAlchemy-2.0.31-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:afb6dde6c11ea4525318e279cd93c8734b795ac8bb5dda0eedd9ebaca7fa23f1"}, - {file = "SQLAlchemy-2.0.31-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3f9faef422cfbb8fd53716cd14ba95e2ef655400235c3dfad1b5f467ba179c8c"}, - {file = "SQLAlchemy-2.0.31-cp39-cp39-win32.whl", hash = "sha256:fc6b14e8602f59c6ba893980bea96571dd0ed83d8ebb9c4479d9ed5425d562e9"}, - {file = "SQLAlchemy-2.0.31-cp39-cp39-win_amd64.whl", hash = "sha256:3cb8a66b167b033ec72c3812ffc8441d4e9f5f78f5e31e54dcd4c90a4ca5bebc"}, - {file = "SQLAlchemy-2.0.31-py3-none-any.whl", hash = "sha256:69f3e3c08867a8e4856e92d7afb618b95cdee18e0bc1647b77599722c9a28911"}, - {file = "SQLAlchemy-2.0.31.tar.gz", hash = "sha256:b607489dd4a54de56984a0c7656247504bd5523d9d0ba799aef59d4add009484"}, -] - -[package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version < \"3.13\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} -typing-extensions = ">=4.6.0" - -[package.extras] -aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] -aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] -asyncio = ["greenlet (!=0.4.17)"] -asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] -mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] -mssql = ["pyodbc"] -mssql-pymssql = ["pymssql"] -mssql-pyodbc = ["pyodbc"] -mypy = ["mypy (>=0.910)"] -mysql = ["mysqlclient (>=1.4.0)"] -mysql-connector = ["mysql-connector-python"] -oracle = ["cx_oracle (>=8)"] -oracle-oracledb = ["oracledb (>=1.0.1)"] -postgresql = ["psycopg2 (>=2.7)"] -postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] -postgresql-pg8000 = ["pg8000 (>=1.29.1)"] -postgresql-psycopg = ["psycopg (>=3.0.7)"] -postgresql-psycopg2binary = ["psycopg2-binary"] -postgresql-psycopg2cffi = ["psycopg2cffi"] -postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] -pymysql = ["pymysql"] -sqlcipher = ["sqlcipher3_binary"] - -[[package]] -name = "sqlparse" -version = "0.5.1" -description = "A non-validating SQL parser." -optional = false -python-versions = ">=3.8" -files = [ - {file = "sqlparse-0.5.1-py3-none-any.whl", hash = "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4"}, - {file = "sqlparse-0.5.1.tar.gz", hash = "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e"}, -] - -[package.extras] -dev = ["build", "hatch"] -doc = ["sphinx"] - -[[package]] -name = "stack-data" -version = "0.6.3" -description = "Extract data from python stack frames and tracebacks for informative displays" -optional = false -python-versions = "*" -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"}, -] - -[package.dependencies] -asttokens = ">=2.1.0" -executing = ">=1.2.0" -pure-eval = "*" - -[package.extras] -tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] - -[[package]] -name = "stevedore" -version = "5.2.0" -description = "Manage dynamic plugins for Python applications" -optional = false -python-versions = ">=3.8" -files = [ - {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, - {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, -] - -[package.dependencies] -pbr = ">=2.0.0,<2.1.0 || >2.1.0" - -[[package]] -name = "tenacity" -version = "8.5.0" -description = "Retry code until it succeeds" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687"}, - {file = "tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78"}, -] - -[package.extras] -doc = ["reno", "sphinx"] -test = ["pytest", "tornado (>=4.5)", "typeguard"] - -[[package]] -name = "termcolor" -version = "2.4.0" -description = "ANSI color formatting for output in terminal" -optional = false -python-versions = ">=3.8" -files = [ - {file = "termcolor-2.4.0-py3-none-any.whl", hash = "sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63"}, - {file = "termcolor-2.4.0.tar.gz", hash = "sha256:aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a"}, -] - -[package.extras] -tests = ["pytest", "pytest-cov"] - -[[package]] -name = "threadpoolctl" -version = "3.5.0" -description = "threadpoolctl" -optional = false -python-versions = ">=3.8" -files = [ - {file = "threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467"}, - {file = "threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107"}, -] - -[[package]] -name = "tomlkit" -version = "0.13.0" -description = "Style preserving TOML library" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tomlkit-0.13.0-py3-none-any.whl", hash = "sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264"}, - {file = "tomlkit-0.13.0.tar.gz", hash = "sha256:08ad192699734149f5b97b45f1f18dad7eb1b6d16bc72ad0c2335772650d7b72"}, -] - -[[package]] -name = "tornado" -version = "6.4.1" -description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -optional = false -python-versions = ">=3.8" -files = [ - {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, - {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, - {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, - {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, - {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, -] - -[[package]] -name = "tqdm" -version = "4.66.4" -description = "Fast, Extensible Progress Meter" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"}, - {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[package.extras] -dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] -notebook = ["ipywidgets (>=6)"] -slack = ["slack-sdk"] -telegram = ["requests"] - -[[package]] -name = "traitlets" -version = "5.14.3" -description = "Traitlets Python configuration system" -optional = false -python-versions = ">=3.8" -files = [ - {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, - {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, -] - -[package.extras] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] - -[[package]] -name = "typeguard" -version = "4.3.0" -description = "Run-time type checker for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typeguard-4.3.0-py3-none-any.whl", hash = "sha256:4d24c5b39a117f8a895b9da7a9b3114f04eb63bade45a4492de49b175b6f7dfa"}, - {file = "typeguard-4.3.0.tar.gz", hash = "sha256:92ee6a0aec9135181eae6067ebd617fd9de8d75d714fb548728a4933b1dea651"}, -] - -[package.dependencies] -typing-extensions = ">=4.10.0" - -[package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.3.0)"] -test = ["coverage[toml] (>=7)", "mypy (>=1.2.0)", "pytest (>=7)"] - -[[package]] -name = "types-pytz" -version = "2024.1.0.20240417" -description = "Typing stubs for pytz" -optional = false -python-versions = ">=3.8" -files = [ - {file = "types-pytz-2024.1.0.20240417.tar.gz", hash = "sha256:6810c8a1f68f21fdf0f4f374a432487c77645a0ac0b31de4bf4690cf21ad3981"}, - {file = "types_pytz-2024.1.0.20240417-py3-none-any.whl", hash = "sha256:8335d443310e2db7b74e007414e74c4f53b67452c0cb0d228ca359ccfba59659"}, -] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -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"}, -] - -[[package]] -name = "typing-inspect" -version = "0.9.0" -description = "Runtime inspection utilities for typing module." -optional = false -python-versions = "*" -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"}, -] - -[package.dependencies] -mypy-extensions = ">=0.3.0" -typing-extensions = ">=3.7.4" - -[[package]] -name = "tzdata" -version = "2024.1" -description = "Provider of IANA time zone data" -optional = false -python-versions = ">=2" -files = [ - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, -] - -[[package]] -name = "urllib3" -version = "2.2.2" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.8" -files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.26.3" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.7" -files = [ - {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, - {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, -] - -[package.dependencies] -distlib = ">=0.3.7,<1" -filelock = ">=3.12.2,<4" -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)"] - -[[package]] -name = "waitress" -version = "3.0.0" -description = "Waitress WSGI server" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "waitress-3.0.0-py3-none-any.whl", hash = "sha256:2a06f242f4ba0cc563444ca3d1998959447477363a2d7e9b8b4d75d35cfd1669"}, - {file = "waitress-3.0.0.tar.gz", hash = "sha256:005da479b04134cdd9dd602d1ee7c49d79de0537610d653674cc6cbde222b8a1"}, -] - -[package.extras] -docs = ["Sphinx (>=1.8.1)", "docutils", "pylons-sphinx-themes (>=1.0.9)"] -testing = ["coverage (>=5.0)", "pytest", "pytest-cov"] - -[[package]] -name = "wcwidth" -version = "0.2.13" -description = "Measures the displayed width of unicode strings in a terminal" -optional = false -python-versions = "*" -files = [ - {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, - {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, -] - -[[package]] -name = "werkzeug" -version = "3.0.3" -description = "The comprehensive WSGI web application library." -optional = false -python-versions = ">=3.8" -files = [ - {file = "werkzeug-3.0.3-py3-none-any.whl", hash = "sha256:fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8"}, - {file = "werkzeug-3.0.3.tar.gz", hash = "sha256:097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18"}, -] - -[package.dependencies] -MarkupSafe = ">=2.1.1" - -[package.extras] -watchdog = ["watchdog (>=2.3)"] - -[[package]] -name = "win32-setctime" -version = "1.1.0" -description = "A small Python utility to set file creation time on Windows" -optional = false -python-versions = ">=3.5" -files = [ - {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, - {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"}, -] - -[package.extras] -dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"] - -[[package]] -name = "wrapt" -version = "1.16.0" -description = "Module for decorators, wrappers and monkey patching." -optional = false -python-versions = ">=3.6" -files = [ - {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, - {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, - {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, - {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, - {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, - {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, - {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, - {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, - {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, - {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, - {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, - {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, - {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, - {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, - {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, - {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, - {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, - {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, -] - -[[package]] -name = "zipp" -version = "3.19.2" -description = "Backport of pathlib-compatible object wrapper for zip files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, - {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, -] - -[package.extras] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] - -[metadata] -lock-version = "2.0" -python-versions = "^3.12" -content-hash = "439e0ec832a7a41a1e40103b0128f30ae7dc1849b3962c74afb7910fc9ca91bd" diff --git a/poetry.toml b/poetry.toml deleted file mode 100644 index 7783e1b..0000000 --- a/poetry.toml +++ /dev/null @@ -1,5 +0,0 @@ -# https://python-poetry.org/docs/configuration/ - -[virtualenvs] -in-project = true -prefer-active-python = true diff --git a/pyproject.toml b/pyproject.toml index 68b7abf..2ed67ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,72 +1,75 @@ -# https://python-poetry.org/docs/pyproject/ +# https://docs.astral.sh/uv/reference/settings/ +# https://packaging.python.org/en/latest/guides/writing-pyproject-toml/ # PROJECT -[tool.poetry] +[project] name = "bikes" -version = "2.0.0" +version = "3.0.0" description = "Predict the number of bikes available." -repository = "https://github.com/fmind/mlops-python-package" -documentation = "https://fmind.github.io/mlops-python-package/" -authors = ["Médéric HURIER "] +authors = [{ name = "Médéric HURIER", email = "github@fmind.dev" }] readme = "README.md" -license = "MIT" +requires-python = ">=3.12" +dependencies = [ + "loguru>=0.7.2", + "matplotlib>=3.9.3", + "mlflow>=2.19.0", + "numba>=0.60.0", + "numpy>=2.0.2", + "omegaconf>=2.3.0", + "pandas>=2.2.3", + "pandera>=0.21.0", + "plotly>=5.24.1", + "plyer>=2.1.0", + "psutil>=6.1.0", + "pyarrow>=18.1.0", + "pydantic-settings>=2.6.1", + "pydantic>=2.10.3", + "pynvml>=12.0.0", + "scikit-learn>=1.5.2,<1.6.0", + "setuptools>=75.6.0", + "shap>=0.46.0", +] +license = { file = "LICENSE.txt" } keywords = ["mlops", "python", "package"] -packages = [{ include = "bikes", from = "src" }] + +# LINKS + +[project.urls] +Homepage = "https://github.com/fmind/mlops-python-package" +Documentation = "https://fmind.github.io/mlops-python-package/bikes.html" +Repository = "https://github.com/fmind/mlops-python-package" +"Bug Tracker" = "https://github.com/fmind/mlops-python-package/issues" +Changelog = "https://github.com/fmind/mlops-python-package/blob/main/CHANGELOG.md" # SCRIPTS -[tool.poetry.scripts] +[project.scripts] bikes = 'bikes.scripts:main' # DEPENDENCIES -[tool.poetry.dependencies] -python = "^3.12" -loguru = "^0.7.2" -matplotlib = "^3.9.0" -mlflow = "^2.14.3" -numpy = "^1.26.4" -omegaconf = "^2.3.0" -pandas = "^2.2.2" -pandera = "^0.20.1" -plotly = "^5.22.0" -plyer = "^2.1.0" -psutil = "^6.0.0" -pyarrow = "^15.0.2" -pydantic = "^2.7.4" -pydantic-settings = "^2.3.4" -pynvml = "^11.5.0" -setuptools = "^71.1.0" -scikit-learn = "1.4.2" -shap = "^0.46.0" - -[tool.poetry.group.checks.dependencies] -bandit = "^1.7.9" -coverage = "^7.5.4" -mypy = "^1.10.1" -pytest = "^8.2.2" -pytest-cov = "^5.0.0" -pytest-xdist = "^3.6.1" -pandera = { extras = ["mypy"], version = "^0.20.1" } -ruff = "^0.5.0" -pytest-mock = "^3.14.0" - -[tool.poetry.group.commits.dependencies] -commitizen = "^3.27.0" -pre-commit = "^3.7.1" - -[tool.poetry.group.dev.dependencies] -invoke = "^2.2.0" - -[tool.poetry.group.docs.dependencies] -pdoc = "^14.5.1" - -[tool.poetry.group.notebooks.dependencies] -ipykernel = "^6.29.4" -nbformat = "^5.10.4" - -# CONFIGURATIONS +[dependency-groups] +checks = [ + "bandit>=1.8.0", + "coverage>=7.6.8", + "mypy>=1.13.0", + "pandera[mypy]>=0.21.0", + "pytest-cov>=6.0.0", + "pytest-mock>=3.14.0", + "pytest-xdist>=3.6.1", + "pytest>=8.3.3", + "ruff>=0.8.1", +] +commits = ["commitizen>=4.0.0", "pre-commit>=4.0.1"] +dev = ["invoke>=2.2.0"] +docs = ["pdoc>=15.0.0"] +notebooks = ["ipykernel>=6.29.5", "nbformat>=5.10.4"] + +# TOOLS + +[tool.uv] +default-groups = ["checks", "commits", "dev", "docs", "notebooks"] [tool.bandit] targets = ["src"] @@ -75,7 +78,7 @@ targets = ["src"] name = "cz_conventional_commits" tag_format = "v$version" version_scheme = "pep440" -version_provider = "poetry" +version_provider = "pep621" changelog_start_rev = "v1.0.0" update_changelog_on_bump = true @@ -86,7 +89,6 @@ omit = ["__main__.py"] [tool.mypy] pretty = true -strict = true python_version = "3.12" check_untyped_defs = true ignore_missing_imports = true @@ -114,5 +116,5 @@ convention = "google" # SYSTEMS [build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +requires = ["hatchling"] +build-backend = "hatchling.build" diff --git a/python_env.yaml b/python_env.yaml index ee99e49..f5377db 100644 --- a/python_env.yaml +++ b/python_env.yaml @@ -1,93 +1,163 @@ { "python": "3.12", "dependencies": [ - "alembic==1.13.2", - "aniso8601==9.0.1", + "alembic==1.14.0", "annotated-types==0.7.0", "antlr4-python3-runtime==4.9.3", - "blinker==1.8.2", - "cachetools==5.4.0", - "certifi==2024.7.4", - "charset-normalizer==3.3.2", + "appnope==0.1.4", + "argcomplete==3.5.2", + "asttokens==3.0.0", + "attrs==24.2.0", + "bandit==1.8.0", + "blinker==1.9.0", + "cachetools==5.5.0", + "certifi==2024.12.14", + "cffi==1.17.1", + "cfgv==3.4.0", + "charset-normalizer==3.4.0", "click==8.1.7", - "cloudpickle==3.0.0", + "cloudpickle==3.1.0", "colorama==0.4.6", - "contourpy==1.2.1", + "comm==0.2.2", + "commitizen==4.1.0", + "contourpy==1.3.1", + "coverage==7.6.9", "cycler==0.12.1", - "deprecated==1.2.14", + "databricks-sdk==0.39.0", + "debugpy==1.8.11", + "decli==0.6.2", + "decorator==5.1.1", + "deprecated==1.2.15", + "distlib==0.3.9", "docker==7.1.0", - "entrypoints==0.4", - "flask==3.0.3", - "fonttools==4.53.1", + "execnet==2.1.1", + "executing==2.1.0", + "fastjsonschema==2.21.1", + "filelock==3.16.1", + "flask==3.1.0", + "fonttools==4.55.3", "gitdb==4.0.11", "gitpython==3.1.43", - "graphene==3.3", - "graphql-core==3.2.3", + "google-auth==2.37.0", + "graphene==3.4.3", + "graphql-core==3.2.5", "graphql-relay==3.2.0", - "greenlet==3.0.3", - "gunicorn==22.0.0", - "idna==3.7", - "importlib-metadata==7.2.1", + "greenlet==3.1.1", + "gunicorn==23.0.0", + "identify==2.6.3", + "idna==3.10", + "importlib-metadata==8.5.0", + "iniconfig==2.0.0", + "ipykernel==6.29.5", + "ipython==8.18.0", "itsdangerous==2.2.0", + "jedi==0.19.2", "jinja2==3.1.4", "joblib==1.4.2", - "kiwisolver==1.4.5", + "jsonschema==4.23.0", + "jsonschema-specifications==2024.10.1", + "jupyter-client==8.6.3", + "jupyter-core==5.7.2", + "kiwisolver==1.4.7", "llvmlite==0.43.0", - "loguru==0.7.2", - "mako==1.3.5", - "markdown==3.6", - "markupsafe==2.1.5", - "matplotlib==3.9.1", - "mlflow==2.14.3", - "multimethod==1.10", + "loguru==0.7.3", + "mako==1.3.8", + "markdown==3.7", + "markdown-it-py==3.0.0", + "markupsafe==3.0.2", + "matplotlib==3.10.0", + "matplotlib-inline==0.1.7", + "mdurl==0.1.2", + "mlflow==2.19.0", + "mlflow-skinny==2.19.0", + "multimethod==1.12", + "mypy==1.13.0", "mypy-extensions==1.0.0", + "nbformat==5.10.4", + "nest-asyncio==1.6.0", + "nodeenv==1.9.1", "numba==0.60.0", - "numpy==1.26.4", + "numpy==2.0.2", + "nvidia-ml-py==12.560.30", "omegaconf==2.3.0", - "opentelemetry-api==1.26.0", - "opentelemetry-sdk==1.26.0", - "opentelemetry-semantic-conventions==0.47b0", - "packaging==24.1", - "pandas==2.2.2", - "pandera==0.20.3", - "pillow==10.4.0", - "plotly==5.23.0", + "opentelemetry-api==1.29.0", + "opentelemetry-sdk==1.29.0", + "opentelemetry-semantic-conventions==0.50b0", + "packaging==24.2", + "pandas==2.2.3", + "pandas-stubs==2.2.3.241126", + "pandera==0.21.1", + "parso==0.8.4", + "pbr==6.1.0", + "pdoc==15.0.1", + "pexpect==4.9.0", + "pillow==11.0.0", + "platformdirs==4.3.6", + "plotly==5.24.1", + "pluggy==1.5.0", "plyer==2.1.0", - "protobuf==4.25.4", - "psutil==6.0.0", - "pyarrow==15.0.2", - "pydantic-core==2.20.1", - "pydantic-settings==2.3.4", - "pydantic==2.8.2", - "pynvml==11.5.3", - "pyparsing==3.1.2", + "pre-commit==4.0.1", + "prompt-toolkit==3.0.36", + "protobuf==5.29.1", + "psutil==6.1.0", + "ptyprocess==0.7.0", + "pure-eval==0.2.3", + "pyarrow==18.1.0", + "pyasn1==0.6.1", + "pyasn1-modules==0.4.1", + "pycparser==2.22", + "pydantic==2.10.3", + "pydantic-core==2.27.1", + "pydantic-settings==2.7.0", + "pygments==2.18.0", + "pynvml==12.0.0", + "pyparsing==3.2.0", + "pytest==8.3.4", + "pytest-cov==6.0.0", + "pytest-mock==3.14.0", + "pytest-xdist==3.6.1", "python-dateutil==2.9.0.post0", "python-dotenv==1.0.1", - "pytz==2024.1", - "pyyaml==6.0.1", - "querystring-parser==1.2.4", + "pytz==2024.2", + "pyyaml==6.0.2", + "pyzmq==26.2.0", + "questionary==2.0.1", + "referencing==0.35.1", "requests==2.32.3", - "scikit-learn==1.4.2", - "scipy==1.14.0", - "setuptools==71.1.0", + "rich==13.9.4", + "rpds-py==0.22.3", + "rsa==4.9", + "ruff==0.8.3", + "scikit-learn==1.5.2", + "scipy==1.14.1", + "setuptools==75.6.0", "shap==0.46.0", - "six==1.16.0", + "six==1.17.0", "slicer==0.0.8", "smmap==5.0.1", - "sqlalchemy==2.0.31", - "sqlparse==0.5.1", - "tenacity==8.5.0", + "sqlalchemy==2.0.36", + "sqlparse==0.5.3", + "stack-data==0.6.3", + "stevedore==5.4.0", + "tenacity==9.0.0", + "termcolor==2.5.0", "threadpoolctl==3.5.0", - "tqdm==4.66.4", - "typeguard==4.3.0", + "tomlkit==0.13.2", + "tornado==6.4.2", + "tqdm==4.67.1", + "traitlets==5.14.3", + "typeguard==4.4.1", + "types-pytz==2024.2.0.20241003", "typing-extensions==4.12.2", "typing-inspect==0.9.0", - "tzdata==2024.1", - "urllib3==2.2.2", - "waitress==3.0.0", - "werkzeug==3.0.3", - "win32-setctime==1.1.0", - "wrapt==1.16.0", - "zipp==3.19.2" + "tzdata==2024.2", + "urllib3==2.2.3", + "virtualenv==20.28.0", + "waitress==3.0.2", + "wcwidth==0.2.13", + "werkzeug==3.1.3", + "win32-setctime==1.2.0", + "wrapt==1.17.0", + "zipp==3.21.0" ] } diff --git a/requirements.txt b/requirements.txt index 5221e74..4d576c8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,89 +1,161 @@ -alembic==1.13.2 ; python_version >= "3.12" and python_version < "4.0" -aniso8601==9.0.1 ; python_version >= "3.12" and python_version < "4.0" -annotated-types==0.7.0 ; python_version >= "3.12" and python_version < "4.0" -antlr4-python3-runtime==4.9.3 ; python_version >= "3.12" and python_version < "4.0" -blinker==1.8.2 ; python_version >= "3.12" and python_version < "4.0" -cachetools==5.4.0 ; python_version >= "3.12" and python_version < "4.0" -certifi==2024.7.4 ; python_version >= "3.12" and python_version < "4.0" -charset-normalizer==3.3.2 ; python_version >= "3.12" and python_version < "4.0" -click==8.1.7 ; python_version >= "3.12" and python_version < "4.0" -cloudpickle==3.0.0 ; python_version >= "3.12" and python_version < "4.0" -colorama==0.4.6 ; python_version >= "3.12" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows") -contourpy==1.2.1 ; python_version >= "3.12" and python_version < "4.0" -cycler==0.12.1 ; python_version >= "3.12" and python_version < "4.0" -deprecated==1.2.14 ; python_version >= "3.12" and python_version < "4.0" -docker==7.1.0 ; python_version >= "3.12" and python_version < "4.0" -entrypoints==0.4 ; python_version >= "3.12" and python_version < "4.0" -flask==3.0.3 ; python_version >= "3.12" and python_version < "4.0" -fonttools==4.53.1 ; python_version >= "3.12" and python_version < "4.0" -gitdb==4.0.11 ; python_version >= "3.12" and python_version < "4.0" -gitpython==3.1.43 ; python_version >= "3.12" and python_version < "4.0" -graphene==3.3 ; python_version >= "3.12" and python_version < "4.0" -graphql-core==3.2.3 ; python_version >= "3.12" and python_version < "4" -graphql-relay==3.2.0 ; python_version >= "3.12" and python_version < "4" -greenlet==3.0.3 ; python_version < "3.13" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_version >= "3.12" -gunicorn==22.0.0 ; python_version >= "3.12" and python_version < "4.0" and platform_system != "Windows" -idna==3.7 ; python_version >= "3.12" and python_version < "4.0" -importlib-metadata==7.2.1 ; python_version >= "3.12" and python_version < "4.0" -itsdangerous==2.2.0 ; python_version >= "3.12" and python_version < "4.0" -jinja2==3.1.4 ; python_version >= "3.12" and python_version < "4.0" -joblib==1.4.2 ; python_version >= "3.12" and python_version < "4.0" -kiwisolver==1.4.5 ; python_version >= "3.12" and python_version < "4.0" -llvmlite==0.43.0 ; python_version >= "3.12" and python_version < "4.0" -loguru==0.7.2 ; python_version >= "3.12" and python_version < "4.0" -mako==1.3.5 ; python_version >= "3.12" and python_version < "4.0" -markdown==3.6 ; python_version >= "3.12" and python_version < "4.0" -markupsafe==2.1.5 ; python_version >= "3.12" and python_version < "4.0" -matplotlib==3.9.1 ; python_version >= "3.12" and python_version < "4.0" -mlflow==2.14.3 ; python_version >= "3.12" and python_version < "4.0" -multimethod==1.10 ; python_version >= "3.12" and python_version < "4.0" -mypy-extensions==1.0.0 ; python_version >= "3.12" and python_version < "4.0" -numba==0.60.0 ; python_version >= "3.12" and python_version < "4.0" -numpy==1.26.4 ; python_version >= "3.12" and python_version < "4.0" -omegaconf==2.3.0 ; python_version >= "3.12" and python_version < "4.0" -opentelemetry-api==1.26.0 ; python_version >= "3.12" and python_version < "4.0" -opentelemetry-sdk==1.26.0 ; python_version >= "3.12" and python_version < "4.0" -opentelemetry-semantic-conventions==0.47b0 ; python_version >= "3.12" and python_version < "4.0" -packaging==24.1 ; python_version >= "3.12" and python_version < "4.0" -pandas==2.2.2 ; python_version >= "3.12" and python_version < "4.0" -pandera==0.20.3 ; python_version >= "3.12" and python_version < "4.0" -pillow==10.4.0 ; python_version >= "3.12" and python_version < "4.0" -plotly==5.23.0 ; python_version >= "3.12" and python_version < "4.0" -plyer==2.1.0 ; python_version >= "3.12" and python_version < "4.0" -protobuf==4.25.4 ; python_version >= "3.12" and python_version < "4.0" -psutil==6.0.0 ; python_version >= "3.12" and python_version < "4.0" -pyarrow==15.0.2 ; python_version >= "3.12" and python_version < "4.0" -pydantic-core==2.20.1 ; python_version >= "3.12" and python_version < "4.0" -pydantic-settings==2.3.4 ; python_version >= "3.12" and python_version < "4.0" -pydantic==2.8.2 ; python_version >= "3.12" and python_version < "4.0" -pynvml==11.5.3 ; python_version >= "3.12" and python_version < "4.0" -pyparsing==3.1.2 ; python_version >= "3.12" and python_version < "4.0" -python-dateutil==2.9.0.post0 ; python_version >= "3.12" and python_version < "4.0" -python-dotenv==1.0.1 ; python_version >= "3.12" and python_version < "4.0" -pytz==2024.1 ; python_version >= "3.12" and python_version < "4.0" -pywin32==306 ; python_version >= "3.12" and python_version < "4.0" and sys_platform == "win32" -pyyaml==6.0.1 ; python_version >= "3.12" and python_version < "4.0" -querystring-parser==1.2.4 ; python_version >= "3.12" and python_version < "4.0" -requests==2.32.3 ; python_version >= "3.12" and python_version < "4.0" -scikit-learn==1.4.2 ; python_version >= "3.12" and python_version < "4.0" -scipy==1.14.0 ; python_version >= "3.12" and python_version < "4.0" -setuptools==71.1.0 ; python_version >= "3.12" and python_version < "4.0" -shap==0.46.0 ; python_version >= "3.12" and python_version < "4.0" -six==1.16.0 ; python_version >= "3.12" and python_version < "4.0" -slicer==0.0.8 ; python_version >= "3.12" and python_version < "4.0" -smmap==5.0.1 ; python_version >= "3.12" and python_version < "4.0" -sqlalchemy==2.0.31 ; python_version >= "3.12" and python_version < "4.0" -sqlparse==0.5.1 ; python_version >= "3.12" and python_version < "4.0" -tenacity==8.5.0 ; python_version >= "3.12" and python_version < "4.0" -threadpoolctl==3.5.0 ; python_version >= "3.12" and python_version < "4.0" -tqdm==4.66.4 ; python_version >= "3.12" and python_version < "4.0" -typeguard==4.3.0 ; python_version >= "3.12" and python_version < "4.0" -typing-extensions==4.12.2 ; python_version >= "3.12" and python_version < "4.0" -typing-inspect==0.9.0 ; python_version >= "3.12" and python_version < "4.0" -tzdata==2024.1 ; python_version >= "3.12" and python_version < "4.0" -urllib3==2.2.2 ; python_version >= "3.12" and python_version < "4.0" -waitress==3.0.0 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Windows" -werkzeug==3.0.3 ; python_version >= "3.12" and python_version < "4.0" -win32-setctime==1.1.0 ; python_version >= "3.12" and python_version < "4.0" and sys_platform == "win32" -wrapt==1.16.0 ; python_version >= "3.12" and python_version < "4.0" -zipp==3.19.2 ; python_version >= "3.12" and python_version < "4.0" +# This file was autogenerated by uv via the following command: +# uv export --format=requirements-txt --no-dev --no-hashes --no-editable --no-emit-project --output-file=requirements.txt +alembic==1.14.0 +annotated-types==0.7.0 +antlr4-python3-runtime==4.9.3 +appnope==0.1.4 ; platform_system == 'Darwin' +argcomplete==3.5.2 +asttokens==3.0.0 +attrs==24.2.0 +bandit==1.8.0 +blinker==1.9.0 +cachetools==5.5.0 +certifi==2024.12.14 +cffi==1.17.1 ; implementation_name == 'pypy' +cfgv==3.4.0 +charset-normalizer==3.4.0 +click==8.1.7 +cloudpickle==3.1.0 +colorama==0.4.6 +comm==0.2.2 +commitizen==4.1.0 +contourpy==1.3.1 +coverage==7.6.9 +cycler==0.12.1 +databricks-sdk==0.39.0 +debugpy==1.8.11 +decli==0.6.2 +decorator==5.1.1 +deprecated==1.2.15 +distlib==0.3.9 +docker==7.1.0 +execnet==2.1.1 +executing==2.1.0 +fastjsonschema==2.21.1 +filelock==3.16.1 +flask==3.1.0 +fonttools==4.55.3 +gitdb==4.0.11 +gitpython==3.1.43 +google-auth==2.37.0 +graphene==3.4.3 +graphql-core==3.2.5 +graphql-relay==3.2.0 +greenlet==3.1.1 ; (python_full_version < '3.13' and platform_machine == 'AMD64') or (python_full_version < '3.13' and platform_machine == 'WIN32') or (python_full_version < '3.13' and platform_machine == 'aarch64') or (python_full_version < '3.13' and platform_machine == 'amd64') or (python_full_version < '3.13' and platform_machine == 'ppc64le') or (python_full_version < '3.13' and platform_machine == 'win32') or (python_full_version < '3.13' and platform_machine == 'x86_64') +gunicorn==23.0.0 ; platform_system != 'Windows' +identify==2.6.3 +idna==3.10 +importlib-metadata==8.5.0 +iniconfig==2.0.0 +ipykernel==6.29.5 +ipython==8.18.0 +itsdangerous==2.2.0 +jedi==0.19.2 +jinja2==3.1.4 +joblib==1.4.2 +jsonschema==4.23.0 +jsonschema-specifications==2024.10.1 +jupyter-client==8.6.3 +jupyter-core==5.7.2 +kiwisolver==1.4.7 +llvmlite==0.43.0 +loguru==0.7.3 +mako==1.3.8 +markdown==3.7 +markdown-it-py==3.0.0 +markupsafe==3.0.2 +matplotlib==3.10.0 +matplotlib-inline==0.1.7 +mdurl==0.1.2 +mlflow==2.19.0 +mlflow-skinny==2.19.0 +multimethod==1.12 +mypy==1.13.0 +mypy-extensions==1.0.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +nodeenv==1.9.1 +numba==0.60.0 +numpy==2.0.2 +nvidia-ml-py==12.560.30 +omegaconf==2.3.0 +opentelemetry-api==1.29.0 +opentelemetry-sdk==1.29.0 +opentelemetry-semantic-conventions==0.50b0 +packaging==24.2 +pandas==2.2.3 +pandas-stubs==2.2.3.241126 +pandera==0.21.1 +parso==0.8.4 +pbr==6.1.0 +pdoc==15.0.1 +pexpect==4.9.0 ; sys_platform != 'win32' +pillow==11.0.0 +platformdirs==4.3.6 +plotly==5.24.1 +pluggy==1.5.0 +plyer==2.1.0 +pre-commit==4.0.1 +prompt-toolkit==3.0.36 +protobuf==5.29.1 +psutil==6.1.0 +ptyprocess==0.7.0 ; sys_platform != 'win32' +pure-eval==0.2.3 +pyarrow==18.1.0 +pyasn1==0.6.1 +pyasn1-modules==0.4.1 +pycparser==2.22 ; implementation_name == 'pypy' +pydantic==2.10.3 +pydantic-core==2.27.1 +pydantic-settings==2.7.0 +pygments==2.18.0 +pynvml==12.0.0 +pyparsing==3.2.0 +pytest==8.3.4 +pytest-cov==6.0.0 +pytest-mock==3.14.0 +pytest-xdist==3.6.1 +python-dateutil==2.9.0.post0 +python-dotenv==1.0.1 +pytz==2024.2 +pywin32==308 ; sys_platform == 'win32' +pyyaml==6.0.2 +pyzmq==26.2.0 +questionary==2.0.1 +referencing==0.35.1 +requests==2.32.3 +rich==13.9.4 +rpds-py==0.22.3 +rsa==4.9 +ruff==0.8.3 +scikit-learn==1.5.2 +scipy==1.14.1 +setuptools==75.6.0 +shap==0.46.0 +six==1.17.0 +slicer==0.0.8 +smmap==5.0.1 +sqlalchemy==2.0.36 +sqlparse==0.5.3 +stack-data==0.6.3 +stevedore==5.4.0 +tenacity==9.0.0 +termcolor==2.5.0 +threadpoolctl==3.5.0 +tomlkit==0.13.2 +tornado==6.4.2 +tqdm==4.67.1 +traitlets==5.14.3 +typeguard==4.4.1 +types-pytz==2024.2.0.20241003 +typing-extensions==4.12.2 +typing-inspect==0.9.0 +tzdata==2024.2 +urllib3==2.2.3 +virtualenv==20.28.0 +waitress==3.0.2 ; platform_system == 'Windows' +wcwidth==0.2.13 +werkzeug==3.1.3 +win32-setctime==1.2.0 ; sys_platform == 'win32' +wrapt==1.17.0 +zipp==3.21.0 diff --git a/src/bikes/core/metrics.py b/src/bikes/core/metrics.py index 37b64b5..04fb788 100644 --- a/src/bikes/core/metrics.py +++ b/src/bikes/core/metrics.py @@ -10,13 +10,14 @@ import mlflow import pandas as pd import pydantic as pdt -from sklearn import metrics +from mlflow.metrics import MetricValue +from sklearn import metrics as sklearn_metrics from bikes.core import models, schemas # %% TYPINGS -MlflowMetric: T.TypeAlias = mlflow.metrics.MetricValue +MlflowMetric: T.TypeAlias = MetricValue MlflowThreshold: T.TypeAlias = mlflow.models.MetricThreshold MlflowModelValidationFailedException: T.TypeAlias = ( mlflow.models.evaluation.validation.ModelValidationFailedException @@ -117,7 +118,7 @@ class SklearnMetric(Metric): @T.override def score(self, targets: schemas.Targets, outputs: schemas.Outputs) -> float: - metric = getattr(metrics, self.name) + metric = getattr(sklearn_metrics, self.name) sign = 1 if self.greater_is_better else -1 y_true = targets[schemas.TargetsSchema.cnt] y_pred = outputs[schemas.OutputsSchema.prediction] @@ -126,6 +127,7 @@ def score(self, targets: schemas.Targets, outputs: schemas.Outputs) -> float: MetricKind = SklearnMetric +MetricsKind: T.TypeAlias = list[T.Annotated[MetricKind, pdt.Field(discriminator="KIND")]] # %% THRESHOLDS diff --git a/src/bikes/core/models.py b/src/bikes/core/models.py index dac1acc..22393c1 100644 --- a/src/bikes/core/models.py +++ b/src/bikes/core/models.py @@ -81,9 +81,6 @@ def predict(self, inputs: schemas.Inputs) -> schemas.Outputs: def explain_model(self) -> schemas.FeatureImportances: """Explain the internal model structure. - Raises: - NotImplementedError: method not implemented. - Returns: schemas.FeatureImportances: feature importances. """ @@ -92,9 +89,6 @@ def explain_model(self) -> schemas.FeatureImportances: def explain_samples(self, inputs: schemas.Inputs) -> schemas.SHAPValues: """Explain model outputs on input samples. - Raises: - NotImplementedError: method not implemented. - Returns: schemas.SHAPValues: SHAP values. """ @@ -141,7 +135,7 @@ class BaselineSklearnModel(Model): "hum", "windspeed", "casual", - # "registered", # too correlated with target + "registered", # too correlated with target ] _categoricals: list[str] = [ "season", @@ -163,7 +157,9 @@ def fit(self, inputs: schemas.Inputs, targets: schemas.Targets) -> "BaselineSkle remainder="drop", ) regressor = ensemble.RandomForestRegressor( - max_depth=self.max_depth, n_estimators=self.n_estimators, random_state=self.random_state + max_depth=self.max_depth, + n_estimators=self.n_estimators, + random_state=self.random_state, ) # pipeline self._pipeline = pipeline.Pipeline( @@ -189,10 +185,10 @@ def explain_model(self) -> schemas.FeatureImportances: model = self.get_internal_model() regressor = model.named_steps["regressor"] transformer = model.named_steps["transformer"] - column_names = transformer.get_feature_names_out() + feature = transformer.get_feature_names_out() feature_importances = schemas.FeatureImportances( data={ - "feature": column_names, + "feature": feature, "importance": regressor.feature_importances_, } ) diff --git a/src/bikes/io/__init__.py b/src/bikes/io/__init__.py index 2a8a67d..044aa70 100644 --- a/src/bikes/io/__init__.py +++ b/src/bikes/io/__init__.py @@ -1 +1 @@ -"""Components related to external operations.""" +"""Components related to external operations (inputs and outputs).""" diff --git a/src/bikes/io/datasets.py b/src/bikes/io/datasets.py index 623f69b..677c654 100644 --- a/src/bikes/io/datasets.py +++ b/src/bikes/io/datasets.py @@ -69,11 +69,12 @@ class ParquetReader(Reader): KIND: T.Literal["ParquetReader"] = "ParquetReader" path: str + backend: T.Literal["pyarrow", "numpy_nullable"] = "pyarrow" @T.override def read(self) -> pd.DataFrame: # can't limit rows at read time - data = pd.read_parquet(self.path) + data = pd.read_parquet(self.path, dtype_backend="pyarrow") if self.limit is not None: data = data.head(self.limit) return data @@ -87,7 +88,11 @@ def lineage( predictions: str | None = None, ) -> Lineage: return lineage.from_pandas( - df=data, name=name, source=self.path, targets=targets, predictions=predictions + df=data, + name=name, + source=self.path, + targets=targets, + predictions=predictions, ) diff --git a/src/bikes/io/registries.py b/src/bikes/io/registries.py index 82a824d..c4e33be 100644 --- a/src/bikes/io/registries.py +++ b/src/bikes/io/registries.py @@ -7,6 +7,7 @@ import mlflow import pydantic as pdt +from mlflow.pyfunc import PyFuncModel, PythonModel, PythonModelContext from bikes.core import models, schemas from bikes.utils import signers @@ -82,7 +83,10 @@ class Saver(abc.ABC, pdt.BaseModel, strict=True, frozen=True, extra="forbid"): @abc.abstractmethod def save( - self, model: models.Model, signature: signers.Signature, input_example: schemas.Inputs + self, + model: models.Model, + signature: signers.Signature, + input_example: schemas.Inputs, ) -> Info: """Save a model in the model registry. @@ -104,7 +108,7 @@ class CustomSaver(Saver): KIND: T.Literal["CustomSaver"] = "CustomSaver" - class Adapter(mlflow.pyfunc.PythonModel): # type: ignore[misc] + class Adapter(PythonModel): # type: ignore[misc] """Adapt a custom model to the Mlflow PyFunc flavor for saving operations. https://mlflow.org/docs/latest/python_api/mlflow.pyfunc.html?#mlflow.pyfunc.PythonModel @@ -120,14 +124,14 @@ def __init__(self, model: models.Model): def predict( self, - context: mlflow.pyfunc.PythonModelContext, + context: PythonModelContext, model_input: schemas.Inputs, params: dict[str, T.Any] | None = None, ) -> schemas.Outputs: """Generate predictions with a custom model for the given inputs. Args: - context (mlflow.pyfunc.PythonModelContext): mlflow context. + context (mlflow.PythonModelContext): mlflow context. model_input (schemas.Inputs): inputs for the mlflow model. params (dict[str, T.Any] | None): additional parameters. @@ -138,7 +142,10 @@ def predict( @T.override def save( - self, model: models.Model, signature: signers.Signature, input_example: schemas.Inputs + self, + model: models.Model, + signature: signers.Signature, + input_example: schemas.Inputs, ) -> Info: adapter = CustomSaver.Adapter(model=model) return mlflow.pyfunc.log_model( @@ -167,12 +174,15 @@ def save( self, model: models.Model, signature: signers.Signature, - input_example: schemas.Inputs | None = None, - ) -> mlflow.entities.model_registry.ModelVersion: + input_example: schemas.Inputs, + ) -> Info: builtin_model = model.get_internal_model() module = getattr(mlflow, self.flavor) return module.log_model( - builtin_model, artifact_path=self.path, signature=signature, input_example=input_example + builtin_model, + artifact_path=self.path, + signature=signature, + input_example=input_example, ) @@ -227,11 +237,11 @@ class CustomLoader(Loader): class Adapter(Loader.Adapter): """Adapt a custom model for the project inference.""" - def __init__(self, model: mlflow.pyfunc.PyFuncModel) -> None: + def __init__(self, model: PyFuncModel) -> None: """Initialize the adapter from an mlflow pyfunc model. Args: - model (mlflow.pyfunc.PyFuncModel): mlflow pyfunc model. + model (PyFuncModel): mlflow pyfunc model. """ self.model = model @@ -261,11 +271,11 @@ class BuiltinLoader(Loader): class Adapter(Loader.Adapter): """Adapt a builtin model for the project inference.""" - def __init__(self, model: mlflow.pyfunc.PyFuncModel) -> None: + def __init__(self, model: PyFuncModel) -> None: """Initialize the adapter from an mlflow pyfunc model. Args: - model (mlflow.pyfunc.PyFuncModel): mlflow pyfunc model. + model (PyFuncModel): mlflow pyfunc model. """ self.model = model diff --git a/src/bikes/io/services.py b/src/bikes/io/services.py index d821c35..fe75b72 100644 --- a/src/bikes/io/services.py +++ b/src/bikes/io/services.py @@ -8,6 +8,7 @@ import contextlib as ctx import sys import typing as T +import warnings import loguru import mlflow @@ -113,11 +114,27 @@ def notify(self, title: str, message: str) -> None: message (str): message of the notification. """ if self.enable: - notification.notify( - title=title, message=message, app_name=self.app_name, timeout=self.timeout - ) + try: + notification.notify( + title=title, + message=message, + app_name=self.app_name, + timeout=self.timeout, + ) + except NotImplementedError: + warnings.warn("Notifications are not supported on this system.", RuntimeWarning) + self._print(title=title, message=message) else: - print(f"[{self.app_name}] {title}: {message}") + self._print(title=title, message=message) + + def _print(self, title: str, message: str) -> None: + """Print a notification to the system. + + Args: + title (str): title of the notification. + message (str): message of the notification. + """ + print(f"[{self.app_name}] {title}: {message}") class MlflowService(Service): @@ -196,7 +213,7 @@ def run_context(self, run_config: RunConfig) -> T.Generator[mlflow.ActiveRun, No run (str): run parameters. Yields: - T.Generator[mlflow.ActiveRun, None, None]: active run context. Will be closed as the end of context. + T.Generator[mlflow.ActiveRun, None, None]: active run context. Will be closed at the end of context. """ with mlflow.start_run( run_name=run_config.name, diff --git a/src/bikes/jobs/evaluations.py b/src/bikes/jobs/evaluations.py index b6ecfd9..2f8b216 100644 --- a/src/bikes/jobs/evaluations.py +++ b/src/bikes/jobs/evaluations.py @@ -25,7 +25,7 @@ class EvaluationsJob(base.Job): targets (datasets.ReaderKind): reader for the targets data. model_type (str): model type (e.g. "regressor", "classifier"). alias_or_version (str | int): alias or version for the model. - metrics (metrics_.MetricKind): metrics for the reporting. + metrics (metrics_.MetricsKind): metric list to compute. evaluators (list[str]): list of evaluators to use. thresholds (dict[str, metrics_.Threshold] | None): metric thresholds. """ @@ -42,8 +42,10 @@ class EvaluationsJob(base.Job): # Model model_type: str = "regressor" alias_or_version: str | int = "Champion" + # Loader + loader: registries.LoaderKind = pdt.Field(registries.CustomLoader(), discriminator="KIND") # Metrics - metrics: list[metrics_.MetricKind] = pdt.Field([metrics_.SklearnMetric()], discriminator="KIND") + metrics: metrics_.MetricsKind = [metrics_.SklearnMetric()] # Evaluators evaluators: list[str] = ["default"] # Thresholds @@ -86,21 +88,31 @@ def run(self) -> base.Locals: ) mlflow.log_input(dataset=targets_lineage, context=self.run_config.name) logger.debug("- Targets lineage: {}", targets_lineage.to_dict()) - # dataset - logger.info("Create dataset: inputs & targets") - dataset = mlflow.data.from_pandas( - df=pd.concat([inputs, targets], axis="columns"), - name="evaluation", - source=f"{inputs_lineage.source.uri} & {targets_lineage.source.uri}", - targets=schemas.TargetsSchema.cnt, - ) - logger.debug("- Dataset: {}", dataset.to_dict()) # model logger.info("With model: {}", self.mlflow_service.registry_name) model_uri = registries.uri_for_model_alias_or_version( - name=self.mlflow_service.registry_name, alias_or_version=self.alias_or_version + name=self.mlflow_service.registry_name, + alias_or_version=self.alias_or_version, ) logger.debug("- Model URI: {}", model_uri) + # loader + logger.info("Load model: {}", self.loader) + model = self.loader.load(uri=model_uri) + logger.debug("- Model: {}", model) + # outputs + logger.info("Predict outputs: {}", len(inputs)) + outputs = model.predict(inputs=inputs) # checked + logger.debug("- Outputs shape: {}", outputs.shape) + # dataset + logger.info("Create dataset: inputs & targets & outputs") + dataset_ = pd.concat([inputs, targets, outputs], axis="columns") + dataset = mlflow.data.from_pandas( # type: ignore[attr-defined] + df=dataset_, + name="evaluation", + targets=schemas.TargetsSchema.cnt, + predictions=schemas.OutputsSchema.prediction, + ) + logger.debug("- Dataset: {}", dataset.to_dict()) # metrics logger.debug("Convert metrics: {}", self.metrics) extra_metrics = [metric.to_mlflow() for metric in self.metrics] @@ -115,7 +127,6 @@ def run(self) -> base.Locals: logger.info("Compute evaluations: {}", self.model_type) evaluations = mlflow.evaluate( data=dataset, - model=model_uri, model_type=self.model_type, evaluators=self.evaluators, extra_metrics=extra_metrics, diff --git a/src/bikes/jobs/explanations.py b/src/bikes/jobs/explanations.py index 3983a9d..163adab 100644 --- a/src/bikes/jobs/explanations.py +++ b/src/bikes/jobs/explanations.py @@ -49,7 +49,8 @@ def run(self) -> base.Locals: # model logger.info("With model: {}", self.mlflow_service.registry_name) model_uri = registries.uri_for_model_alias_or_version( - name=self.mlflow_service.registry_name, alias_or_version=self.alias_or_version + name=self.mlflow_service.registry_name, + alias_or_version=self.alias_or_version, ) logger.debug("- Model URI: {}", model_uri) # loader @@ -61,7 +62,7 @@ def run(self) -> base.Locals: logger.info("Explain model: {}", model) models_explanations = model.explain_model() logger.debug("- Models explanations shape: {}", models_explanations.shape) - # - samples + # # - samples logger.info("Explain samples: {}", len(inputs_samples)) samples_explanations = model.explain_samples(inputs=inputs_samples) logger.debug("- Samples explanations shape: {}", samples_explanations.shape) @@ -74,6 +75,7 @@ def run(self) -> base.Locals: self.samples_explanations.write(data=samples_explanations) # notify self.alerts_service.notify( - title="Explanations Job Finished", message=f"Features Count: {len(models_explanations)}" + title="Explanations Job Finished", + message=f"Features Count: {len(models_explanations)}", ) return locals() diff --git a/src/bikes/jobs/inference.py b/src/bikes/jobs/inference.py index aba3eae..878f578 100644 --- a/src/bikes/jobs/inference.py +++ b/src/bikes/jobs/inference.py @@ -47,7 +47,8 @@ def run(self) -> base.Locals: # model logger.info("With model: {}", self.mlflow_service.registry_name) model_uri = registries.uri_for_model_alias_or_version( - name=self.mlflow_service.registry_name, alias_or_version=self.alias_or_version + name=self.mlflow_service.registry_name, + alias_or_version=self.alias_or_version, ) logger.debug("- Model URI: {}", model_uri) # loader diff --git a/src/bikes/jobs/training.py b/src/bikes/jobs/training.py index 571d291..5a2f36e 100644 --- a/src/bikes/jobs/training.py +++ b/src/bikes/jobs/training.py @@ -24,7 +24,7 @@ class TrainingJob(base.Job): inputs (datasets.ReaderKind): reader for the inputs data. targets (datasets.ReaderKind): reader for the targets data. model (models.ModelKind): machine learning model to train. - metrics (metrics_.MetricKind): metrics for the reporting. + metrics (metrics_.MetricsKind): metric list to compute. splitter (splitters.SplitterKind): data sets splitter. saver (registries.SaverKind): model saver. signer (signers.SignerKind): model signer. @@ -41,7 +41,7 @@ class TrainingJob(base.Job): # Model model: models.ModelKind = pdt.Field(models.BaselineSklearnModel(), discriminator="KIND") # Metrics - metrics: list[metrics_.MetricKind] = pdt.Field([metrics_.SklearnMetric()], discriminator="KIND") + metrics: metrics_.MetricsKind = [metrics_.SklearnMetric()] # Splitter splitter: splitters.SplitterKind = pdt.Field( splitters.TrainTestSplitter(), discriminator="KIND" @@ -134,6 +134,7 @@ def run(self) -> base.Locals: logger.debug("- Model version: {}", model_version) # notify self.alerts_service.notify( - title="Training Job Finished", message=f"Model version: {model_version.version}" + title="Training Job Finished", + message=f"Model version: {model_version.version}", ) return locals() diff --git a/src/bikes/utils/signers.py b/src/bikes/utils/signers.py index b976bb5..4a0a5ce 100644 --- a/src/bikes/utils/signers.py +++ b/src/bikes/utils/signers.py @@ -21,7 +21,7 @@ class Signer(abc.ABC, pdt.BaseModel, strict=True, frozen=True, extra="forbid"): """Base class for generating model signatures. - Allow to switch between model signing strategies. + Allow switching between model signing strategies. e.g., automatic inference, manual model signature, ... https://mlflow.org/docs/latest/models.html#model-signature-and-input-example diff --git a/src/bikes/utils/splitters.py b/src/bikes/utils/splitters.py index bbc52ed..0740bc0 100644 --- a/src/bikes/utils/splitters.py +++ b/src/bikes/utils/splitters.py @@ -34,7 +34,10 @@ class Splitter(abc.ABC, pdt.BaseModel, strict=True, frozen=True, extra="forbid") @abc.abstractmethod def split( - self, inputs: schemas.Inputs, targets: schemas.Targets, groups: Index | None = None + self, + inputs: schemas.Inputs, + targets: schemas.Targets, + groups: Index | None = None, ) -> TrainTestSplits: """Split a dataframe into subsets. @@ -49,7 +52,10 @@ def split( @abc.abstractmethod def get_n_splits( - self, inputs: schemas.Inputs, targets: schemas.Targets, groups: Index | None = None + self, + inputs: schemas.Inputs, + targets: schemas.Targets, + groups: Index | None = None, ) -> int: """Get the number of splits generated. @@ -80,17 +86,26 @@ class TrainTestSplitter(Splitter): @T.override def split( - self, inputs: schemas.Inputs, targets: schemas.Targets, groups: Index | None = None + self, + inputs: schemas.Inputs, + targets: schemas.Targets, + groups: Index | None = None, ) -> TrainTestSplits: index = np.arange(len(inputs)) # return integer position train_index, test_index = model_selection.train_test_split( - index, shuffle=self.shuffle, test_size=self.test_size, random_state=self.random_state + index, + shuffle=self.shuffle, + test_size=self.test_size, + random_state=self.random_state, ) yield train_index, test_index @T.override def get_n_splits( - self, inputs: schemas.Inputs, targets: schemas.Targets, groups: Index | None = None + self, + inputs: schemas.Inputs, + targets: schemas.Targets, + groups: Index | None = None, ) -> int: return 1 @@ -112,14 +127,22 @@ class TimeSeriesSplitter(Splitter): @T.override def split( - self, inputs: schemas.Inputs, targets: schemas.Targets, groups: Index | None = None + self, + inputs: schemas.Inputs, + targets: schemas.Targets, + groups: Index | None = None, ) -> TrainTestSplits: - splitter = model_selection.TimeSeriesSplit(n_splits=self.n_splits, test_size=self.test_size) + splitter = model_selection.TimeSeriesSplit( + n_splits=self.n_splits, test_size=self.test_size, gap=self.gap + ) yield from splitter.split(inputs) @T.override def get_n_splits( - self, inputs: schemas.Inputs, targets: schemas.Targets, groups: Index | None = None + self, + inputs: schemas.Inputs, + targets: schemas.Targets, + groups: Index | None = None, ) -> int: return self.n_splits diff --git a/tasks/__init__.py b/tasks/__init__.py index 6a6751c..a7e7b04 100644 --- a/tasks/__init__.py +++ b/tasks/__init__.py @@ -1,4 +1,4 @@ -"""Task collections for the project.""" +"""Task collections of the project.""" # mypy: ignore-errors diff --git a/tasks/checks.py b/tasks/checks.py index 853d109..1046835 100644 --- a/tasks/checks.py +++ b/tasks/checks.py @@ -1,4 +1,4 @@ -"""Check tasks for pyinvoke.""" +"""Check tasks of the project.""" # %% IMPORTS @@ -8,48 +8,42 @@ # %% TASKS -@task -def poetry(ctx: Context) -> None: - """Check poetry config files.""" - ctx.run("poetry check --lock") - - @task def format(ctx: Context) -> None: """Check the formats with ruff.""" - ctx.run("poetry run ruff format --check src/ tasks/ tests/") + ctx.run("uv run ruff format --check src/ tasks/ tests/") @task def type(ctx: Context) -> None: """Check the types with mypy.""" - ctx.run("poetry run mypy src/ tasks/ tests/") + ctx.run("uv run mypy src/ tasks/ tests/") @task def code(ctx: Context) -> None: """Check the codes with ruff.""" - ctx.run("poetry run ruff check src/ tasks/ tests/") + ctx.run("uv run ruff check src/ tasks/ tests/") @task def test(ctx: Context) -> None: """Check the tests with pytest.""" - ctx.run("poetry run pytest --numprocesses='auto' tests/") + ctx.run("uv run pytest --numprocesses=auto tests/") @task def security(ctx: Context) -> None: """Check the security with bandit.""" - ctx.run("poetry run bandit --recursive --configfile=pyproject.toml src/") + ctx.run("uv run bandit --recursive --configfile=pyproject.toml src/") @task def coverage(ctx: Context) -> None: """Check the coverage with coverage.""" - ctx.run("poetry run pytest --numprocesses='auto' --cov=src/ --cov-fail-under=80 tests/") + ctx.run("uv run pytest --numprocesses=auto --cov=src/ --cov-fail-under=80 tests/") -@task(pre=[poetry, format, type, code, security, coverage], default=True) +@task(pre=[format, type, code, security, coverage], default=True) def all(_: Context) -> None: """Run all check tasks.""" diff --git a/tasks/cleans.py b/tasks/cleans.py index e29b7d0..9b13acd 100644 --- a/tasks/cleans.py +++ b/tasks/cleans.py @@ -1,4 +1,4 @@ -"""Clean tasks for pyinvoke.""" +"""Cleaning tasks of the project.""" # %% IMPORTS @@ -77,9 +77,9 @@ def venv(ctx: Context) -> None: @task -def poetry(ctx: Context) -> None: - """Clean poetry lock file.""" - ctx.run("rm -f poetry.lock") +def uv(ctx: Context) -> None: + """Clean uv lock file.""" + ctx.run("rm -f uv.lock") @task @@ -117,7 +117,7 @@ def folders(_: Context) -> None: """Run all folders tasks.""" -@task(pre=[venv, poetry, python]) +@task(pre=[venv, uv, python]) def sources(_: Context) -> None: """Run all sources tasks.""" diff --git a/tasks/commits.py b/tasks/commits.py index 88b087b..2f48bad 100644 --- a/tasks/commits.py +++ b/tasks/commits.py @@ -1,4 +1,4 @@ -"""Commits tasks for pyinvoke.""" +"""Commit tasks of the project.""" # %% IMPORTS @@ -11,19 +11,19 @@ @task def info(ctx: Context) -> None: """Print a guide for messages.""" - ctx.run("poetry run cz info") + ctx.run("uv run cz info") @task def bump(ctx: Context) -> None: """Bump the version of the package.""" - ctx.run("poetry run cz bump", pty=True) + ctx.run("uv run cz bump", pty=True) @task def commit(ctx: Context) -> None: """Commit all changes with a message.""" - ctx.run("poetry run cz commit", pty=True) + ctx.run("uv run cz commit", pty=True) @task(pre=[commit], default=True) diff --git a/tasks/containers.py b/tasks/containers.py index 87510f9..b6401fb 100644 --- a/tasks/containers.py +++ b/tasks/containers.py @@ -1,4 +1,4 @@ -"""Container tasks for pyinvoke.""" +"""Container tasks of the project.""" # %% IMPORTS diff --git a/tasks/docs.py b/tasks/docs.py index 21eea9e..3f0b34c 100644 --- a/tasks/docs.py +++ b/tasks/docs.py @@ -1,4 +1,4 @@ -"""Docs tasks for pyinvoke.""" +"""Documentation tasks of the project.""" # %% IMPORTS @@ -18,14 +18,14 @@ @task def serve(ctx: Context, format: str = DOC_FORMAT, port: int = 8088) -> None: """Serve the API docs with pdoc.""" - ctx.run(f"poetry run pdoc --docformat={format} --port={port} src/{ctx.project.package}") + ctx.run(f"uv run pdoc --docformat={format} --port={port} src/{ctx.project.package}") @task def api(ctx: Context, format: str = DOC_FORMAT, output_dir: str = OUTPUT_DIR) -> None: """Generate the API docs with pdoc.""" ctx.run( - f"poetry run pdoc --docformat={format} --output-directory={output_dir} src/{ctx.project.package}" + f"uv run pdoc --docformat={format} --output-directory={output_dir} src/{ctx.project.package}" ) diff --git a/tasks/formats.py b/tasks/formats.py index 4631bae..cd83b17 100644 --- a/tasks/formats.py +++ b/tasks/formats.py @@ -1,4 +1,4 @@ -"""Format tasks for pyinvoke.""" +"""Format tasks of the project.""" # %% IMPORTS @@ -11,13 +11,13 @@ @task def imports(ctx: Context) -> None: """Format python imports with ruff.""" - ctx.run("poetry run ruff check --select I --fix") + ctx.run("uv run ruff check --select I --fix") @task def sources(ctx: Context) -> None: """Format python sources with ruff.""" - ctx.run("poetry run ruff format src/ tasks/ tests/") + ctx.run("uv run ruff format src/ tasks/ tests/") @task(pre=[imports, sources], default=True) diff --git a/tasks/installs.py b/tasks/installs.py index 05669be..f6754a2 100644 --- a/tasks/installs.py +++ b/tasks/installs.py @@ -1,4 +1,4 @@ -"""Install tasks for pyinvoke.""" +"""Install tasks of the project.""" # %% IMPORTS @@ -9,18 +9,18 @@ @task -def poetry(ctx: Context) -> None: - """Install poetry packages.""" - ctx.run("poetry install") +def uv(ctx: Context) -> None: + """Install uv packages.""" + ctx.run("uv sync --all-groups") @task def pre_commit(ctx: Context) -> None: """Install pre-commit hooks on git.""" - ctx.run("poetry run pre-commit install --hook-type pre-push") - ctx.run("poetry run pre-commit install --hook-type commit-msg") + ctx.run("uv run pre-commit install --hook-type=pre-push") + ctx.run("uv run pre-commit install --hook-type=commit-msg") -@task(pre=[poetry, pre_commit], default=True) +@task(pre=[uv, pre_commit], default=True) def all(_: Context) -> None: """Run all install tasks.""" diff --git a/tasks/mlflow.py b/tasks/mlflow.py index 0053931..3ccf363 100644 --- a/tasks/mlflow.py +++ b/tasks/mlflow.py @@ -1,4 +1,4 @@ -"""Mlflow tasks for pyinvoke.""" +"""Mlflow tasks of the project.""" # %% IMPORTS @@ -11,16 +11,19 @@ @task def doctor(ctx: Context) -> None: """Run mlflow doctor.""" - ctx.run("poetry run mlflow doctor") + ctx.run("uv run mlflow doctor") @task def serve( - ctx: Context, host: str = "127.0.0.1", port: str = "5000", backend_uri: str = "./mlruns" + ctx: Context, + host: str = "127.0.0.1", + port: str = "5000", + backend_store_uri: str = "./mlruns", ) -> None: - """Start the mlflow server.""" + """Start an mlflow server.""" ctx.run( - f"poetry run mlflow server --host={host} --port={port} --backend-store-uri={backend_uri}" + f"uv run mlflow server --host={host} --port={port} --backend-store-uri={backend_store_uri}" ) diff --git a/tasks/packages.py b/tasks/packages.py index 38e9c3d..e476a60 100644 --- a/tasks/packages.py +++ b/tasks/packages.py @@ -1,4 +1,4 @@ -"""Package tasks for pyinvoke.""" +"""Package tasks of the project.""" # %% IMPORTS @@ -7,17 +7,13 @@ from . import cleans -# %% CONFIGS - -BUILD_FORMAT = "wheel" - # %% TASKS @task(pre=[cleans.dist]) -def build(ctx: Context, format: str = BUILD_FORMAT) -> None: +def build(ctx: Context) -> None: """Build the python package.""" - ctx.run(f"poetry build --format={format}") + ctx.run("uv build --wheel") @task(pre=[build], default=True) diff --git a/tasks/projects.py b/tasks/projects.py index 1e8333c..0e31858 100644 --- a/tasks/projects.py +++ b/tasks/projects.py @@ -1,4 +1,4 @@ -"""Project tasks for pyinvoke.""" +"""Project tasks of the project.""" # mypy: disable-error-code="arg-type" @@ -21,7 +21,11 @@ @task def requirements(ctx: Context) -> None: """Export the project requirements file.""" - ctx.run(f"poetry export --without-urls --without-hashes --output={REQUIREMENTS}") + ctx.run( + "uv export --format=requirements-txt --no-dev " + "--no-hashes --no-editable --no-emit-project " + f"--output-file={REQUIREMENTS}" + ) @task(pre=[requirements]) @@ -32,10 +36,11 @@ def environment(ctx: Context) -> None: configuration: dict[str, object] = {"python": python} with open(REQUIREMENTS, "r") as reader: dependencies: list[str] = [] - for line in reader: - dependency = line.split(" ")[0] - if "pywin32" not in dependency: - dependencies.append(dependency) + for line in reader.readlines(): + dependency = line.split(" ")[0].strip() + if "pywin32" in dependency or "#" in dependency: + continue + dependencies.append(dependency) configuration["dependencies"] = dependencies with open(ENVIRONMENT, "w") as writer: # Safe as YAML is a superset of JSON @@ -47,7 +52,7 @@ def environment(ctx: Context) -> None: def run(ctx: Context, job: str) -> None: """Run an mlflow project from the MLproject file.""" ctx.run( - f"poetry run mlflow run --experiment-name={ctx.project.repository}" + f"uv run mlflow run --experiment-name={ctx.project.repository}" f" --run-name={job.capitalize()} -P conf_file=confs/{job}.yaml ." ) diff --git a/tests/conftest.py b/tests/conftest.py index 5daa9d0..e3f145f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,6 +8,7 @@ import omegaconf import pytest from _pytest import logging as pl + from bikes.core import metrics, models, schemas from bikes.io import datasets, registries, services from bikes.utils import searchers, signers, splitters @@ -125,7 +126,9 @@ def targets_reader(targets_path: str) -> datasets.ParquetReader: @pytest.fixture(scope="session") def outputs_reader( - outputs_path: str, inputs_reader: datasets.ParquetReader, targets_reader: datasets.ParquetReader + outputs_path: str, + inputs_reader: datasets.ParquetReader, + targets_reader: datasets.ParquetReader, ) -> datasets.ParquetReader: """Return a reader for the outputs dataset.""" # generate outputs if it is missing @@ -146,13 +149,17 @@ def tmp_outputs_writer(tmp_outputs_path: str) -> datasets.ParquetWriter: @pytest.fixture(scope="function") -def tmp_models_explanations_writer(tmp_models_explanations_path: str) -> datasets.ParquetWriter: +def tmp_models_explanations_writer( + tmp_models_explanations_path: str, +) -> datasets.ParquetWriter: """Return a writer for the tmp model explanations dataset.""" return datasets.ParquetWriter(path=tmp_models_explanations_path) @pytest.fixture(scope="function") -def tmp_samples_explanations_writer(tmp_samples_explanations_path: str) -> datasets.ParquetWriter: +def tmp_samples_explanations_writer( + tmp_samples_explanations_path: str, +) -> datasets.ParquetWriter: """Return a writer for the tmp samples explanations dataset.""" return datasets.ParquetWriter(path=tmp_samples_explanations_path) @@ -207,7 +214,7 @@ def time_series_splitter() -> splitters.TimeSeriesSplitter: @pytest.fixture(scope="session") -def searcher() -> searchers.Searcher: +def searcher() -> searchers.GridCVSearcher: """Return the default searcher object.""" param_grid = {"max_depth": [1, 2], "n_estimators": [3]} return searchers.GridCVSearcher(param_grid=param_grid) @@ -218,7 +225,9 @@ def searcher() -> searchers.Searcher: @pytest.fixture(scope="session") def train_test_sets( - train_test_splitter: splitters.Splitter, inputs: schemas.Inputs, targets: schemas.Targets + train_test_splitter: splitters.TrainTestSplitter, + inputs: schemas.Inputs, + targets: schemas.Targets, ) -> tuple[schemas.Inputs, schemas.Targets, schemas.Inputs, schemas.Targets]: """Return the inputs and targets train and test sets from the splitter.""" train_index, test_index = next(train_test_splitter.split(inputs=inputs, targets=targets)) @@ -259,7 +268,7 @@ def metric() -> metrics.SklearnMetric: @pytest.fixture(scope="session") -def signer() -> signers.Signer: +def signer() -> signers.InferSigner: """Return a model signer.""" return signers.InferSigner() diff --git a/tests/core/test_metrics.py b/tests/core/test_metrics.py index c8a286c..e8ec170 100644 --- a/tests/core/test_metrics.py +++ b/tests/core/test_metrics.py @@ -3,6 +3,7 @@ import mlflow import pandas as pd import pytest + from bikes.core import metrics, models, schemas # %% METRICS @@ -44,9 +45,9 @@ def test_sklearn_metric( # - scorer assert low <= scorer <= high, "Scorer should be in the expected interval!" # - mlflow metric - assert mlflow_metric.name == metric.name, "Mlflow metric name should be the same!" + assert mlflow_metric.name == metric.name, "Mlflow metric name should be the same!" # type: ignore[attr-defined] assert ( - mlflow_metric.greater_is_better == metric.greater_is_better + mlflow_metric.greater_is_better == metric.greater_is_better # type: ignore[attr-defined] ), "Mlflow metric greater is better should be the same!" # - mlflow results assert mlflow_results.metrics == { diff --git a/tests/core/test_models.py b/tests/core/test_models.py index 47ce7f0..12dea8a 100644 --- a/tests/core/test_models.py +++ b/tests/core/test_models.py @@ -3,6 +3,7 @@ import typing as T import pytest + from bikes.core import models, schemas # %% MODELS @@ -36,7 +37,10 @@ def predict(self, inputs: schemas.Inputs) -> schemas.Outputs: with pytest.raises(NotImplementedError) as get_internal_model_error: model.get_internal_model() # then - assert params_init == {"a": 10, "b": 2}, "Model should have the given params after init!" + assert params_init == { + "a": 10, + "b": 2, + }, "Model should have the given params after init!" assert params_set_params == { "a": 10, "b": 20, diff --git a/tests/data/inputs_sample.parquet b/tests/data/inputs_sample.parquet index 8ba44d01f137398d52747380a615f7aded10b300..7267ff38d229f2624c4d6d30730795ccdecd0a5e 100644 GIT binary patch literal 35890 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 n#e00Y{5|-EdZ`@0-A5dF?QFrv*Orei;#5y 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 a2x@ literal 13827 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 diff --git a/tests/data/targets_sample.parquet b/tests/data/targets_sample.parquet index da17dfd6501ae2f14c73fbf58bc6e77c383ab75e..fabec2ebb1e3ccefe072b8eb604e8b0df6c83ff3 100644 GIT binary patch literal 17966 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 literal 18587 zcmch9dt6gj_U{G)BuFGcfPjb*5ubShUtM9d%F<>0_MxJ!w0?nLEFK?&p5)O=q#s*=O&y z*K4o6_S)N##b$(fusqC5Jzn^ydJM5Wh#Mip{_GVt#NLLivv+VNWTP#ILqa%?EaJ>% zlMev~03XoAl@Jz}N3H@k0qjuc#1)X&@Vo)fZvu+BLUJ7MbpSU&AnGasGq`N-EEbu} z<&cZ$QiD$pfL45R1eBuNc9bjeO^vb$&;vLKcmwbr;9bB@0Ml+7S55-ZzXs2pfR*U~ z81Mgu=ShGEfF*z_02jbHz<$8jfV}{Ju7Xsc{V<-V0=&>am^wmUMcpYpr=e~#;733n zz?Bw}Blsr7^Ot~Vz%$TLi@M!_e7r}2b}y7416BjS4Oawlu?ZLThw&VW@>{fh3w7>* zM8FOJ1^5n-%w@BFwt?^&dHDjW0Sc~$*mEGcFS!D)7mHi~l6ut30Mh|;DJ9zRh$nYG zS%gx>m5~yZI(%aWK8ojic>V)mHsBM$S%4>C3iQd;6{4L4WhTmFTs`>)Wdz=H01E&k zTrqh8JnQis4)_BEG=TSQcpe9QgZELCjIEU8*&F3d;D|*V8qco)9--bB@89Ej0N+e_ z-U7G*@IW00AO`#q@PJ~IwWxmw&mRHoz!PH-Rp{r9`Yu2_-kSl70S^Ix1Ki-M$t`^I z$MbE#OHj~!lrIC$WBf-bivfG^ycz8l;&~R}bwCc}%qag1o}U9^xl)pXax1_O?XRL- zgYk`M6N=|xD0mU-8F|bBBtgNc_!f!hFVIeaXND)n{yzuU0vJQ)a-$(z4dl!tY`p&i zz~C9hyB^PjfGY4if%j#2W&;-^mk&^WhVosmyl)@4V$6==BHB9AS-c+r>_Ura01dv` zqh!pCk!}{Kl|qYC(1wR^8ep>nxZ-^czUP2?H`Mo|E=bow%qY_V*YK?ZV_ZTzMv6}X zmjM}oyMU>nlrixXv~@zc9OZtLF98~XFB|12TrHW0{=Wk>0J>2ZjdsiwTZ{fu)G^w# zK^@bMnbu{H{#?{8297qAFX05f0Bl4b9m+`5WdZjcfDhi4fS&-lkjrkalB~e@c)YuS9;RgE+=gey z!!cTN1oQw_q5Ypw8qwZ_vJ~Y9Xv5&XiJ28kn=os5kei5T0cN!MJ)jQI3uuRq{(|x= zKnL*mp=<#J0fGUMj5k231u(AYACTW)(1#D4ui%}TbuC-09cCt%P2A2kN`770JkTAcMzZ+ZV%7}7=aEOP_kePe*hi_JP)GZd6bO1 zvj7;mg#lz}vkq-k01oVKE4Kq4NdSF{NR0J68?%&c)zb;I4M97`lOzM4fxbAre~W$_ z(Psj{ED2WtN^U!m<9h<0dBC*+SU3@D6 z+=6Y%@jVFNCgI%|c2R)u3-Nvc?~E7xJ^C;`;ya@=hPTHkRj`jC)G<0|WX0Z3F#e$iGGSJq5%5rt@*w*E41B==X8!*Xb?pEq4EPD{8G4e@#vf%izJG~&W(hum zXU5j!QNGXR#pKx#>#z3L(t~)s5P3As4)VAp^x%0ocsTe9*h;%!8VT6Hwj!QH^gq<1 z)t~rdi=CL}mxMM>I|xf?CM>?fY-1zTYi%cqEm}Jl39p{zE|b;Udnxqw4pRcmv5tOQ zNgUgMuOyBWct{)PH0QWEZc^|W67L-Pg(TiKVn|}5Nxn`s*E?C0$7YN@*y^u{9wiX=ar?W2g54Mf1ynRb}UrXC2;J zU?V#6V7S3;%kcC|qENBK$?>gJMT+w~hUPtU{$T9iGxr0t+bhmpUv!=2cFSb1cq@jQ zKc!6fjxL)U_~41-yj^2=C(Za1ad)0~u3LLCa5_)y>~lUqwm0NcVawjo&&4}m5nPUb z>KtB@&?51jWTw)RGyuXj~ny zo$)-NU^i#t-Zw8h|M=jOX5>dwe^Y#Lu~4x5U>uL1sH9%(P772&(k~w}b&Z z=W}Lv%OoH3Vp;Lrh?Yd#$&1Du69kg_D|7P_vKkyidkby2i9b(wo#MXQqV;0Q8l_7; zSC4TLl|_xqgIi54O^%_%6`TYg)jgZ}SJeail4fmXx%v9|8ZJ2UP3~@!Vw%F;CIy@b zyGSN|X4X3RNm_ejUJ^EwMKif~Z5(bG^81r_h~7HZpYkNYED2~d4m2;z9Wlq+&I=)# zsoQ&7&)SEb&^82$Zb&le$UA5EBs$zmkOVF@)MutG$ggaQ>3UFPvwYDH=grHT4;{0Y zon)P|cX-q^+ANC}C-lk^JT7R{BP$H%bZK$pZs+79chdqQDNAFONM^7*+)Bf z6r^Mxj{f$uOqu;B^>q4De-E3?BlRhs*T#5z{j##{cg@LJ9nmXQ>RS_it&b$zbgneto(!#R8F?Kcg4c|L_d49H{L0)(xcF?2vhv9zr#P%A` zl{cJSZNqLITWXV$a6#rVZ$UsoD&M)I-p0YX{laAX^=}ylW^s=%emaxQ>NFZqD2PJI628fdlrhUlaG|z9A;5 z>4xrxPdyHAYm)^#YsW2i>AQMfaV{4t?D7Q)2b+jD!v&1$zd>3AuL$L)m&y(|9Ss9)^y z?b}nh@2!4jZ_{R&e!0An7dyH1%n8@ME&@qwhW~s8*<~~Tc;D~&zNOln68eYnDe4<) zt#jNmMaE^0pFDDpCWf&g?%2kRvqSRd!BRGF)2cnbtrF{_jebHcldty^1`pi z-b}OYUFu4gq{nt=R(1_F_NMvq{p0O>ghvmBupS2PTwfCX?b+x%L3QqS{Sz{;s=xCN z^hF-jgf6Q(Yxp*=Ur^sQyX&Wfm(#-SBk9zyhU=%s&-%=!m8A$EyTd1sDsqEfHtl!w;n|0+ zDyw5(we=}E7UJvY8t|!ZQe3fDPS~w`74`Etd4{Pzeyr=#4b^|y>9XkKm~Z5hze+!Q zcKP`bp=}+%TD#oV)G;inyOcHdYF#R~#;p1}n@98Cn@L=SBdJTBR$N(KQz$L?&n zZr8d@c6`0Z$~AX&C$oan%Ut*P{$!|M9{Gmp+XK#?e~mowlp@Jc-)j!oNSD;`F|gE@L$|YnS9637InQ=?Tf&ZLbgI z4n{2974H&t%(v!i*+jnn>)ds*{J3fVH7d-q{V~79Vd103t~XrH9P9RQxD`{y-SMR8 zDOsJUkgSY(MQoYoI`>Azm53K1#5K6W^n6doKW;srroAy&5?25qML9F)+zKFEX8QZmP>iI%Lh_d~xx%`8f=hJL`_2(@0aX%bkH7Fm% z#YVOc47=HF>8&I4rVkv@I%Jd%yDV6zZZSAMRG#>9>hCVQH^k(9VsP%ia6;(VdMx35d5lf3A>$QI?9OmM$xOQ_Zbw7jPUl1S zg;Pkz6N6o3&{;RJjly}NEp_%Te z@6+#e+}s{!_Jcu{(=z>Er4hZ%BL31s^_kwm!6!r@iRwuzte4yGh;N7v&=Rc*6xA=+pzq8nY&+mMM2_+=bv(BvLBtbvlBTa`f$9wXS~dH_w3qN z5UDipbnsDrmUCq05zWygky33oEZQ5M@8Fv2YAZ-k-rLylfv-#snR=n#dv4_23)y~K-7dz-VwWtxg0i&ZHqt3>G+d44}Y%t;g44!huP~%Sj+ev9JsC- zA6L$LgNL^Vv+%Zu+lxIf$9nfbi=r_eDE@WUA2soleei} za)~pIMKrV+nZI@t2|Ny51DT+rSv@m3A=p##ux~XXccLeQlo4sk4(wfcq?$62_i1E= zC>a@~d8{}5IdW{mq^ve4FwsSgV&^x49qTZ5`NJfQ(qdQBj(iz%rRaGXl5n%<$XNXx z2w?3Da4-XcON?LyK#!1jXfexv9th0b0v54qZdUBNF!7xN57X-Y@HDa$PMV>=UoG24(*o&jZ#$QfsbVibd zVb_4Q1WE(ph)6Ka=0b5DDj5kGJ4Ak@HQ1C& z$z^H;n`b2wN~7c{ge{}Q*d$BHH3|tBs-3vdL)c{ZLQ@}-3`#_91K|R+Ifp(AfomQ5 zA5aYwA*`i8h|`D6jGR=#3cjH%*!4rLp#DR=*Qzx1KUieGO3Ui=<;Y+%OqNB0-TM$3 z1J}$B_AL6^LvF>;_#Ytpzo~ky*^R$|o7o`tgicTHQ3Qi&h~Tms*#;4r2|X`>wD@?| zLuEO5UH~gOMGcc6N+yP0bFxba?l_|&QwkIQL&I5 zn|um9UxT3t$JsKZTqcm{Y$DH81QsJCJ5|g~Q@{X_`k*maJC)Y7K{uqLfKe>PwtnyB z4r{*!TqWx^htov-I;A8@CqT|fP9)I(G$7mx5e`7dbtu_Es zqnI2Muuf(lFD0LWi)~QFTyVS(^~bpu5({;xAW0tP%XC=r4BCSH$S~~XLKl&(;H>cFrL=%&c z$bNirG9>#7cGn)?VuzYWMEAj-M0t7n&`Bn(8I zLw^qpqyeKP5P6JB3%4gEUa++w;QbNhOpMc#ypBcWx(>_`1+l1jn8y|zYADF(n2s6H zKg01BP@RQAPjUq$7u;Qhtua~B8c_dxNct;Cb~On1rVhbW;{GKnqBsN(u`!!PyQY z&ntyp5OM@Mo2^rllNdb%mU|PkLWsU!(h_8>g~%mgR)Fe7D#ic>(4zvgU<4dVNF61G z^=k0Fmt;{|lG~{!MYI@}ZN||Ed?)Ce1wJyMl0Sp)52;b^ODqzIrdPSHWCJB9n_V?r zJ!t_^{;0hKV(zMVNERxP@RGn8O^{t6?n_#PDc*r3pPX!`1jM&f21g@9;z>r{0Tw1n zcZw2`}9w$&uq!qa9G2*9CIx~%YLFF^rNUngQ0$PE?3;{`j zNKzrnuV?|;3y!YqOt3IB`U#Oz6(aR2#i7e6#!(_IXhJGXPGTV5lW1?o7>|MXG-%n0 z>9Po1jR9Ul``*hP5ThEdT#Z>_KwkwBf%A13^S?mfQ;ffy9)b%OV9F^;1kFP#T~7>` z3I8+gm+dAgZr-SfSLZo_yBvsX9bynfDmSnu1*M- z!p5Ou6ViPqQm^BY*WeI$VZt$K{{hIJ@p+e2GNgM&Sovk-kCcHFQ$~_aLAKDxbt~Nl zatAWr;iKRX#pP%ST}JY0CSNK<-n@ydq6C;_VjxwLarmbeK$wa-;S`enAoeD0CXGP) zM_m)?RvF1KJpsny$w8bqR|`XsB7cdw1EGHlT(6+tYS?!Yn62Te5i}Ud5f~F2OpJqp zE~*K}GD3WH3M^?%Unwc@iDn#{kURl#Qz;2K2#8ZL62$=pChHOv8wpr7xRsKFu&`+= z*gY&F3j_Lq@P0`DJl-F}=AD2r0QDb1;}5t3avp>nhtG1wdl@X@45ApP(BwYrnVp&| zg2^b!ZYJKLLBR+{SpqDM4~?*S<}ge|qIF0IQ#d)j%%pwwV1-Ems}Vpj4r_$0r_^Kx z?ByL$cNQbZKy25br{i2B^f`fmM*$lef!l7!OjSapCUT!9aDE!bU9r9wbABMYhf??% z9=Y{Ujex|A)ewe2kCIf#-2&NO!obZKpc*3iQN;u-N<=ym1ZhJ!w~``{ZbF{AgNPxv zKhgr68$`1*XLF1=VCul45zYO8MY_=6iNaYI@E-$_o593uDj_+UF5<>wi4>7XoqCXu zgIY=tv(k`Qx(VJ(Pa;wN8EhkrB>lj?fEqz`tASFQh>j9kPrt;J5(~o+38AFK1zJC- zVysO}4(XbR4J=Fw^K_<-q|22J0lxyQtGE*+Os7Xwpukcy1pnFu!Q$)(cH#?RU7vbRm^`|fsb7?VHky;NRE?gFqPL-C_ zU_!i0OR(H&5ETo^_jHH#yuA^VA(M-l4I1A<-%gbXHmFAQ-2ppp#~P}zE*6WpO6$U~ zw$p;pOO3X}5VeBjVv_WN#!@`@!1P7Kua9)d+62giUF|Ac9%+$)tJYRa%3|p&(52abIWBtj*I6?Q-fVnkr=qz_ZS77U(-7QLa3I?(A1obFsD zdB0OjZ0J#PN2kVdu7Vt+71kr^Q=siItl~4!Ujtn8R2|saDM*S6$Fh*aN5GQ|1%1;w zL7a6Gk_aAm(K6Bujo*U>=`l79&6?5Y1uV#s79lKBBLp_#BESfaq@`Gsjbsye`W@t# zqS9h_BZ0MONV`e~{@Mwp6JaZ)C*>56?4X;-G|-w3`MQCg9T@AcDkZ6)a8!vtjw*xI z|3!2*!CPC%6Vc+SD27qM@9F77C zsUac;hvSrlyb0RbI~8TXwY<>#-fipZ?sJWA3M;dMP%kAVEErwSkSjS~#)kCS3j(t#*5~5xX zGwai7pk4#+B1pig2uqO`E3*l!uLL_HIaXdRmI5AvaYEjwMF>!sn@(y3FGC2Gm}_H7 zh;jsGAce!y!s)3|H-X92i!~QFp@8Eq#y^Y+F&8*Xf%}e12pNb-5$K2mpM02ABTO?; zMaZJgXykX=5jdN$wDQ1@h{%1~Ct)`NMjkSI&r$3E6hI~>S`aIMoqo>kz=mrWGg?mA zooaG}?!_gPVbX*F640&-w)7>+VBpBt8OhJOXfP$kmQYH*Q|W~u_s_B7;m@Np6I=0ga; z8;XB}9wuWt0pUEQ&QMfe@V%ZH!#2+q)6*X$t)W8Vi+A!3W#qQDJB!b z8;dogwh3&1!VHh07f~H>6^uKGCcAWOEbnrnzO01pHeufxjf9~Yi@;fgC`xP#W!9)H z807v0oJU|kF$CM2n)-i zOyolv!5I|s4R?fyQ2$5tW|CPiLl{G7^R}u9k)77MTmA-usf3|4)9pkA1+Au-?TiJt ztl;>-g+DC#D^PzK0vDt16;L0kQe#JNh9bnoNE@;I=&`L7ksOs4Gm?#&DF%IHig7erzdL>;;9)c- zG7>egvm>z67ZA7??7;;#_Xcf&59DE$B*abydj*;(IF)TGJ(&yg5}^!R*u-8y0xc#z zIyp=X=}rv!SHR!F&X{TlmqLt)1I6Sr`ZC$fwP=&2(<6p7lUP?dw*%2Dj1 zl+qx%EW)1HjEG)KvN7^7zQs^R1mSwT%dsX76CNm@Mk}zMV{gtytU>i6=w@b=l;qK) zxKbm*Y_%X&B`2%F&B=#)tYBsmN>4zcjN3FJ`in+-S3q#J!Fsi67G})^#=1a7Bbt?9 z1vF!2WG)z*$q$f{DvEKm5YR5w8IdH!jaABw_)3gunumRq0&BC9jKUE9 z1mo!D!hzF6SPd1#$ETe`>_PCvL+0wKg8mZ=Q7i{*Kj;S!Gdc<45QYu`+@OH8!fc;o z{L{ek4;WP)q`Dq;%+1mPl!q~WE&{JDyi+R1d*XXE;kwBjB$|) zCU}67z?}8uI7U$c>&K9`44h1&Wr&cP5aMdFNj4M7WkgamlTpxOf+4yCCl6^Q)+q%E zqfLnR42aLw*yQSArXxrwPQZbhum`aKH^Ns)@C!(48^#X9WQ#^UbHVAa7~}UU32QFz zWp5${%eOl97*s|kQOwOLBzY)=lPH^kkV&De0ej<^YkMdK=9vN_Fp_yRlc{RLMq$Ld zGUQz5S#K_$)G>EH1%wZko5936;HAKD1PD@KZm3jZ(#AEjeh_me;6n7)+{-c`dX3f- zci7ZRlnizwv0ktGGX{JQlKc$i2y8PQ1fEmLtb5ycRR*L^5lsR4IJcL4?n9Vcq)Kd6 zu)fhU^0F?P#6x7u(a8fd^C;B>_SIw&IQkltIl@SNFc{w7}Q493uL(e1!KwL zidj3vv!&z^)qyOFnAod?Sa>_g2rRyXGmk|+_AzrvA8dRhrN*9ph{RnMfd__!AqY^7 zO$5@ru;uL-{%;gA>(mgj#XED&tAY{}fsc|yuBmX-6iifurrDtNTc}X2GGbYfla;7< zrOZ&d2)kf8raw}xKu}NPo+cylP7RFKKy;W?KT=YJhidXC+Dt^9JnV8h;Ga#z0XP#> z6A1N~xIu)8sU-2LA+nllKnSKLw>xoD7=49YA^flyUY18F74E%3PK#Z8A(;S3r3I?W zriRHi)TVJ|h;A$hw};6+jBWyTZ$NqnAYm>wffZhjRYE`#d}M5FuwW!~FPTc|vG))o zeijje_eRKVIY_9-GaqW&#O);oDx5fgl&O$Si;vI=JGTya(_!Q-rC7!#;1P*DS`0H6 zkyl(hd`6jzz!s#&J0LbC7gL!@m8d9<)eWuI5r|$5M`=WE0UKy=#sjb*1qsygF4V+E zcV{k}d=H5;smW42pQPK#UXc48ZNiC+fONo8KBGnm--peHQ8NatAzt_x2Y-<6%BFER zr(-S;vJp)2u!kLik5v*~rvh2HVFYg>!~0XeIob|E%FDrObmm)4mSLCJg|Tx3Xr#`6Fvr#yMTFa zK%1TTrq=ah{V-q`CBx zfG>$+3}F~z!~unmg}If9jX5pGlAtCRAg_b43uZmtORI_LA@0y$M)n#4=aPaj2dH)s zYQ}=4B)v2fwK4?C$zu>{xNL&OT9A|x!g)qx%c{pY0dAkF4A!x)L)W${EFI|oCi;g` zdeW^ka1mO3P7Prn&`y$Q{M!S_`ZG*0DdZyq`C%yS;Facb(@8bO#9somg@4BCpaV$Zl?|`UPl!0uc%-A3{ksJ_g3q`sDe-!w& zffDr?_$S(c(<7uIR6O|f5u6kt4}yN}++HlVQUroxY?PXaCm2eCJdz<}=H|H&!tlj+ z<{rL)i+KVaKY)%HQ}@LbKIMZ`@Q{auOo7Das{~}3PD~2vVUmpwpF{a}It3IlL4x1_ z61YvQMP9Qftnqy&#HQpLNHoOtF}EH2peFL1l8_XiUM3eiij4;HT@cYNkhKpaPt`H$ z7n#+TXM_EhE)zroO^5J^L-aZtbz8!PCY!f9zl-<6Gn!J6>}dl zV$OiVfqWLl%zZN!!eJg*3^yFRe?T2w3AnEW<8RBK!l2$P{wtJCiYllW4SlSe$VKMh8aMeL* zEttCx%^@C#LjLVm@AAlBJ_^__zdTrP_5NoqK7J+`lRE!;tJir4;SpOgVabStny~f6 z$w-_nWb!EC@oaF{hA*@6RNDyjHao2wqkl6;RZAE(9IY!$ci*4|z zt(a#QDz*!k*+r`DqV;wQjCL^=yTzk+5*{l~%u0~464flJo|R%`rCL~NqbwQEK0|Du zC9}^_+spO#D~w~sn%dF%!;yHUp8t!6jr*?Wxay%zSXqij8o(=6t+$~bLmPP?9S(8xJt z;T#_27oZcUGGV&&Mi6?c-CiSQ%ne>xBGEO>Une_4K zBs0(XoY?ui%=x0)xmWLe$>{ur#revpvxUd)7jp+>+(9*WNYA}#wQ;;U}c?6D#=Aef*RY z{M0^v+GD=V)dTda?(=qqPscu=_fGg6@AG;8v5(Pp zN>|8~?(``=6;n+6rhIf_%9*|?A3vUAcJ)0M;(I>b_hN-_?>^s4Cw#x?^S$!e*Wx<0 zKV<4a`qaUSsYCmw-aIk&R^QaykEag1`rQrjyO-{Fzrt^1pWpW<{2uiAJ$mdn>N@R7 z$h5KaY2y{sc1-M>_T!0ZKle?0@pu|>6WWFfSs6lyN+G*h=+q^2?iWseBILPEcMF}) z&zSC6IbF~^-KT51Z~t_^C)0&){{Er<0U7>*mHwh;|2bX$LH+*0PyEGhGeSdWglEi% zteg?uJYzxEjF|ozi=WJpxCO+81|(zzBvuAUn*&n10#f?}(w+p!+-7Ek&dkb~nNvAa z-aK<<*UY^BnQNZRRJa8ega#I61eR0=Dw_k>cLkR92bMnxRJ+Zp44qY-F{`$6mZo{u z=B`;=`)6%`GE3_wY6ulIW{7rIikg~5d%8q>`$exl5$WA#H;2w{&6wR*IlH}i_Q9^% zhx%t9elpwOHs@&QoMRbt-maX}(LCq9t~tm1=e+-9j?ryySLodCjJZ9Pb4|^2KkAx$ zrho3oPv)B4g3g5oozDomSQ*sY9CWEG=!^cKD^G$fZd89LHIP9KR#HRF)XgsHRzG$7 z2{r5%d^a@sUPkc!%HWaa;P1PFAM^)5dJ;V9Ht$L3ys?aV`*0Uw}_oiik+{DCqEVQ+(X>LLim{>o>d`&mJpwlA--2b{GNsg-9!Du zLIW~G1FJ$sEunKxh6Y^?4SpIbb`J{;3k%N-i>wNZZV6j(GA!n5*y5*Q68G@9u<(S; z@WiTcX-jy@$?(*x;b~99W$qCfVG&uG5jj;6@|K8|CnNH%Myz=np>U5Z2#YMrj4Y{& zRJKH}KN(qeHM0C^q}n~IGAyb(Gpe>KO4Aax`DE1At5MsZMrqxn8^WR+GoyD`MK`rX z?>QO0_iFU3Powqj^P9uww`R_7tD4{5GXLPo`G>B~Km2sQ!F|Eeum#657rb4yprd8M zdnXqhzq;W4rwfek3%kM=c4sc^saj}iS@_Y(g=elV{P^iYvwO_Bu$c3iF&C?1dRt;H zos9Y7YRr|VF&6hl{b7p+G8YY2EgEWBbo1n*TUQs|e!6JbeevC}#rHB7->+Ic(z5vb zlZzi*UHs_j;vJ*zOP+)+8OvNUUbSSRWyy~xm;8Kn$&05;2w!3wE@5R!9I7SkR*6%$ z#Cbq6c}&9N$GU~b^0Q(+t78SNu|D0gz5}s-W3fVhoPT&+KvrB}b)2X*ZccYx&_G=9 zSe%$29~vGXo)sTi9Ut8qzo0ulW*~m?SiFRv5Eq`1kd=^Fogi&ZNa;>U9Y{zUOOWxG zW`r-z%37LJy;R=1bY=I_yn&@_#+EAhi3Q<_MOld@)rrd1#P!{YWdn)jV~J{hQe}8j zbyiYsb&{qvX>)hd)`6t$V@X=Rv>{yDm?hm^Ep2L*?&+599gw~{Ce`zko5Pb^vy$7Y zliOR94|XRX8c04omTcgs91Tx7mX-2$bxKET%6r`@#|Kj0A4@Uvmvx0N>&{x%Q@za8 zy6mIwWoHJKeLS|z%uhWRo_anj^^Qm>4qTKIH-I6aU>4_4Ddt@O=q z`qlt_dyF3Dr`-)tyO))AzdCKCHSPQEvZ1OW1&m-L}BAuU|?pc#A*q`omD&6;5y5F;O zp+|;)L`Fb%Mqo{bXn)3>QyD?mGJ>CFh&?hxBQnFYGb3vNU zTtrqvc2;6dmUMqs%Bif>YguW}vSc3F84=l8+1WWY+4B9_D^F$TUCUncEL-7`QxK6; zl$}#jlcU_9v;I_0*|nVVXE|z*+{%dD>g?Rwnq1BP+|8$Qw_eNL{w!DPA#aF~H)hLs z*T|dp%lDj;@4Y5}^_g7nv7$L*MQiqowwe{~`&S%1wc^mV6^Ea#FnFvy8nN)wiy#zWr?Vu*aIa5o_*cueo2d zX2;0>HQ%3F^WfT=N6*%bdaQjCv34wb?Rd@FiT!JTJhk@cYinOTTT46@wvh@}j>4f< z!ERGH^(dSN6_dvmJkNZ$$b5cIzGrQ|pe^60C*OB4-)}r$=vm+&SrCv@5LjCvYAcx2 zQxG&*5IkNW_ACsIEDX;njI1q;ZYx~SQy4Q?xOlu!;#m|IS(K1dlvrCNZ7WLYDM}qI zN*gbdc@}3x7H8!Y=hPO<+lp8A6z2^VuNf~^c$O4ImK5cbl+>0e+e+5=l#~sYl#iFF zJ=ax6uB*;jS6jPI)3$DN&$_LH>$Z=t(|Rf!B9)Cf%H6ffrZ(lC9_8La<*VaLy=Q52 zWNB+oX|$+MZ(G@=p0Y0n%dU){)&{vix37`Tg4Rk+$;hd&(aSmOmOVANAb$By!_e&c^ZD zjT3Dff9%=#^Wer8;~R;W+BQnf%2hkmso4kAPN&t**VU7st9f1(Zc!Ed+zQXS3c-O2 zpVJk-*DL&=bWw#x?UOlyi)8{6&h6)o?8`JR~3DrYQgEM znCn%GpI1q|s^g-n6LPB)>#C&(s#8u^r(Um4dtNQ`s>z6|$;z$CsjHD6s9AZsChvO9 zn&&kNuiApB+M?XrlDb;uf!g(_Ys;?JmOrmmd(~A&)m7)#)z;N%4%BTvUAOgm-S+2o zS}#pQl%_FPv%5~ybU?G`v}W&h&8yEfdaq5*QJY$GH?`GmYCo{);OR|=u5UX0e3QXz z^U16wbh-ulJ$tyi9JwRmmokJ>hnyKS&;+t7h+H&1W7b$#3I=iA(e zy|&+t+I}y0`~AA@BL}vBe|r0a>)Rha-#+TK<4M$xvD_Wwbvq^w?D+BYj-RjZc=3D( z5om3rwJf>TL8E22Yn@D5=OOLn2`x`h?-pIpm)Co0>ILofKBju#p?bfGdZD1fKe{1+ z&FnM+M;mSb`+~P)X?az3{%@DOn@-z$HuTs84)oguK1#zy@BiG7F#q=OKWoYVbkW;8 zCV~hYstT3Gs(cR?Zhp_S6)+dde|h?CWP;n}-oD;Jf&Xvso&W!0+jHb?J8%@p_Iz)r zEuTOz0ta<|c~O3q;EvrE|I+fJV$IsZjb$~e@+$uY!d0lTD!_krkkJ2^`nA?Z#n#VT z{LAxI#b{VwQ&xr+C8fn>MQi`P?iciHt2e2chW<6>rG*=div7{Lyhf$o^v@3)3)UAG zRx|ag;_CdO{OWu(-{N0fj^?H1>zKY+bEs(lZQK5vn183jAL?Te{2Lj+RsL^ul$KXV zhW{rO|E&HOA{gej1%Z}d8T+SD{$r@$q=gUvm%~|EtSrv2-dJfBLs@A-Wq#!*Mhfap z`IVI$>loT=iz};2HN88 zi(VHW8ylMrV1CPDW5Z+P*2N~q#;%KvUuUh0i~G0lbxh^be}0d%_QyMZRxH-<$+59@ zvFL}=iUgaKCM#MQ0Hjo7e4PRGVBUy5dNQOT;Znw3d8;quV5+5%}#bwN2@y1X>5 zfT=GG%TN}Sr((W!e*IoHUtOTeC@W6N*_^z7(J$ zx~k;(6jgq1PSwi9`86wYL&}(T1?4$a1@XXB9;ZZqWnsvCaj`tk`YpLUrzSr)t#)Nn zc4=ySY$@7S7fQ=Yilk+AR=n{kwJTKWvK3+JzkJWl5wFP2P!=UEWoQKtIW;Rn=Woc* zjVNcvN-oRE&L|a!CzprJ|2Nuy<*j&A%0KA>Uo}PX$^RqG|MKluxuyLpO=`#{H0_tZ zHAT50b;UXV!V~0Il(0gaT*}BUq^u|@5pvH^{!`z_u#_^;T3c8Ooia2gm6aB%5;qkyI*w1N zE6z>aRH&LCX63DXWm#c)nz|q~+)5*zm0d%}hi^(Q2Y+b$i@iZ^s+>)Qp=GrN49@uE zO{wdXYv|IH`HX#9O?9c&Uaj^lmSKJ{=A52vwd^Eoqu-_qW5uXQ`lo%yYJO|aOdtG! zB%48s`6OlL1Aghur1<5xG~POh6$#Vyw;$$2Y}|V2G!_#RFX&&#%%fj_!1&vb2!!hV m%8HueYN}AJrmT)Z`0KACHh}L None: assert len(data) == limit, "Data should have the limit size!" # - lineage assert lineage.name == "inputs", "Lineage name should be inputs!" - assert lineage.source.uri == inputs_path, "Lineage source uri should be the inputs path!" - assert set(lineage.schema.input_names()) == set( + assert lineage.source.uri == inputs_path, "Lineage source uri should be the inputs path!" # type: ignore[attr-defined] + assert lineage.schema is not None and set(lineage.schema.input_names()) == set( data.columns ), "Lineage schema names should be the data columns!" - assert lineage.profile["num_rows"] == len( + assert lineage.profile["num_rows"] == len( # type: ignore[index] data ), "Lineage profile should contain the data row count!" diff --git a/tests/io/test_services.py b/tests/io/test_services.py index a11e28b..b631a9a 100644 --- a/tests/io/test_services.py +++ b/tests/io/test_services.py @@ -6,6 +6,7 @@ import plyer import pytest import pytest_mock as pm + from bikes.io import services # %% SERVICES @@ -36,7 +37,10 @@ def test_alerts_service( service.notify(title="test", message="hello") # then if enable: - plyer.notification.notify.assert_called_once(), "Notification method should be called!" + ( + plyer.notification.notify.assert_called_once(), + "Notification method should be called!", + ) assert capsys.readouterr().out == "", "Notification should not be printed to stdout!" else: ( diff --git a/tests/jobs/test_base.py b/tests/jobs/test_base.py index c86982a..7271462 100644 --- a/tests/jobs/test_base.py +++ b/tests/jobs/test_base.py @@ -20,7 +20,9 @@ def run(self) -> base.Locals: return locals() job = MyJob( - logger_service=logger_service, alerts_service=alerts_service, mlflow_service=mlflow_service + logger_service=logger_service, + alerts_service=alerts_service, + mlflow_service=mlflow_service, ) # when with job as runner: diff --git a/tests/jobs/test_evaluations.py b/tests/jobs/test_evaluations.py index 3f5f1bc..32c2a60 100644 --- a/tests/jobs/test_evaluations.py +++ b/tests/jobs/test_evaluations.py @@ -2,6 +2,7 @@ import _pytest.capture as pc import pytest + from bikes import jobs from bikes.core import metrics, schemas from bikes.io import datasets, registries, services @@ -43,7 +44,7 @@ def test_evaluations_job( inputs_reader: datasets.ParquetReader, targets_reader: datasets.ParquetReader, model_alias: registries.Version, - metric: metrics.Metric, + metric: metrics.SklearnMetric, capsys: pc.CaptureFixture[str], ) -> None: # given @@ -52,7 +53,9 @@ def test_evaluations_job( else: assert alias_or_version == model_alias.aliases[0], "Model alias should be the same!" run_config = mlflow_service.RunConfig( - name="EvaluationsTest", tags={"context": "evaluations"}, description="Evaluations job." + name="EvaluationsTest", + tags={"context": "evaluations"}, + description="Evaluations job.", ) # when job = jobs.EvaluationsJob( @@ -81,8 +84,11 @@ def test_evaluations_job( "targets", "targets_", "targets_lineage", - "dataset", + "outputs", + "model", "model_uri", + "dataset", + "dataset_", "extra_metrics", "validation_thresholds", "evaluations", @@ -109,23 +115,30 @@ def test_evaluations_job( assert ( out["targets_lineage"].targets == schemas.TargetsSchema.cnt ), "Targets lineage target should be cnt!" + # - outputs + assert out["outputs"].ndim == 2, "Outputs should be a dataframe!" + # - model uri + assert str(alias_or_version) in out["model_uri"], "Model URI should contain the model alias!" + assert ( + mlflow_service.registry_name in out["model_uri"] + ), "Model URI should contain the registry name!" + # - model + assert ( + out["model"].model.metadata.run_id == model_alias.run_id + ), "Model run id should be the same!" + assert out["model"].model.metadata.signature is not None, "Model should have a signature!" + assert out["model"].model.metadata.flavors.get( + "python_function" + ), "Model should have a pyfunc flavor!" # - dataset assert out["dataset"].name == "evaluation", "Dataset name should be evaluation!" - assert out["dataset"].predictions is None, "Dataset predictions should be None!" assert ( out["dataset"].targets == schemas.TargetsSchema.cnt ), "Dataset targets should be the target column!" assert ( - inputs_reader.path in out["dataset"].source.uri - ), "Dataset source should contain the inputs path!" - assert ( - targets_reader.path in out["dataset"].source.uri - ), "Dataset source should contain the targets path!" - # - model uri - assert str(alias_or_version) in out["model_uri"], "Model URI should contain the model alias!" - assert ( - mlflow_service.registry_name in out["model_uri"] - ), "Model URI should contain the registry name!" + out["dataset"].predictions == schemas.OutputsSchema.prediction + ), "Dataset predictions should be the prediction column!" + assert out["dataset"].source.to_dict().keys() == {"tags"}, "Dataset source should have tags!" # - extra metrics assert len(out["extra_metrics"]) == len( job.metrics @@ -147,6 +160,7 @@ def test_evaluations_job( assert job.metrics[0].name in out["evaluations"].metrics, "Metric should be logged in Mlflow!" # - mlflow tracking experiment = mlflow_service.client().get_experiment_by_name(name=mlflow_service.experiment_name) + assert experiment is not None, "Mlflow Experiment should exist!" assert ( experiment.name == mlflow_service.experiment_name ), "Mlflow Experiment name should be the same!" diff --git a/tests/jobs/test_explanations.py b/tests/jobs/test_explanations.py index 4285bdc..3e4ff24 100644 --- a/tests/jobs/test_explanations.py +++ b/tests/jobs/test_explanations.py @@ -2,6 +2,7 @@ import _pytest.capture as pc import pytest + from bikes import jobs from bikes.core import models from bikes.io import datasets, registries, services @@ -15,11 +16,11 @@ def test_explanations_job( mlflow_service: services.MlflowService, alerts_service: services.AlertsService, logger_service: services.LoggerService, - inputs_samples_reader: datasets.Reader, - tmp_models_explanations_writer: datasets.Writer, - tmp_samples_explanations_writer: datasets.Writer, + inputs_samples_reader: datasets.ParquetReader, + tmp_models_explanations_writer: datasets.ParquetWriter, + tmp_samples_explanations_writer: datasets.ParquetWriter, model_alias: registries.Version, - loader: registries.Loader, + loader: registries.CustomLoader, capsys: pc.CaptureFixture[str], ) -> None: # given diff --git a/tests/jobs/test_inference.py b/tests/jobs/test_inference.py index 0f8808e..d60ea4f 100644 --- a/tests/jobs/test_inference.py +++ b/tests/jobs/test_inference.py @@ -2,6 +2,7 @@ import _pytest.capture as pc import pytest + from bikes import jobs from bikes.io import datasets, registries, services @@ -14,10 +15,10 @@ def test_inference_job( mlflow_service: services.MlflowService, alerts_service: services.AlertsService, logger_service: services.LoggerService, - inputs_reader: datasets.Reader, - tmp_outputs_writer: datasets.Writer, + inputs_reader: datasets.ParquetReader, + tmp_outputs_writer: datasets.ParquetWriter, model_alias: registries.Version, - loader: registries.Loader, + loader: registries.CustomLoader, capsys: pc.CaptureFixture[str], ) -> None: # given diff --git a/tests/jobs/test_promotion.py b/tests/jobs/test_promotion.py index 0c3b81f..d38f6c0 100644 --- a/tests/jobs/test_promotion.py +++ b/tests/jobs/test_promotion.py @@ -3,6 +3,7 @@ import _pytest.capture as pc import mlflow import pytest + from bikes import jobs from bikes.io import registries, services diff --git a/tests/jobs/test_training.py b/tests/jobs/test_training.py index 902c605..0d517bc 100644 --- a/tests/jobs/test_training.py +++ b/tests/jobs/test_training.py @@ -1,6 +1,7 @@ # %% IMPORTS import _pytest.capture as pc + from bikes import jobs from bikes.core import metrics, models, schemas from bikes.io import datasets, registries, services @@ -15,12 +16,12 @@ def test_training_job( logger_service: services.LoggerService, inputs_reader: datasets.ParquetReader, targets_reader: datasets.ParquetReader, - model: models.Model, - metric: metrics.Metric, - train_test_splitter: splitters.Splitter, - saver: registries.Saver, - signer: signers.Signer, - register: registries.Register, + model: models.BaselineSklearnModel, + metric: metrics.SklearnMetric, + train_test_splitter: splitters.TrainTestSplitter, + saver: registries.CustomSaver, + signer: signers.InferSigner, + register: registries.MlflowRegister, capsys: pc.CaptureFixture[str], ) -> None: # given @@ -142,6 +143,7 @@ def test_training_job( ), "Model version run id should be the same!" # - mlflow tracking experiment = client.get_experiment_by_name(name=mlflow_service.experiment_name) + assert experiment is not None, "Mlflow Experiment should exist!" assert ( experiment.name == mlflow_service.experiment_name ), "Mlflow Experiment name should be the same!" diff --git a/tests/jobs/test_tuning.py b/tests/jobs/test_tuning.py index 7263d64..cb7e1e5 100644 --- a/tests/jobs/test_tuning.py +++ b/tests/jobs/test_tuning.py @@ -1,6 +1,7 @@ # %% IMPORTS import _pytest.capture as pc + from bikes import jobs from bikes.core import metrics, models, schemas from bikes.io import datasets, services @@ -15,10 +16,10 @@ def test_tuning_job( logger_service: services.LoggerService, inputs_reader: datasets.ParquetReader, targets_reader: datasets.ParquetReader, - model: models.Model, - metric: metrics.Metric, - time_series_splitter: splitters.Splitter, - searcher: searchers.Searcher, + model: models.BaselineSklearnModel, + metric: metrics.SklearnMetric, + time_series_splitter: splitters.TimeSeriesSplitter, + searcher: searchers.GridCVSearcher, capsys: pc.CaptureFixture[str], ) -> None: # given @@ -92,6 +93,7 @@ def test_tuning_job( ), "Best params should have the same keys!" # - mlflow tracking experiment = client.get_experiment_by_name(name=mlflow_service.experiment_name) + assert experiment is not None, "Mlflow experiment should exist!" assert ( experiment.name == mlflow_service.experiment_name ), "Mlflow experiment name should be the same!" diff --git a/tests/test_scripts.py b/tests/test_scripts.py index 60c58c7..9f00ed0 100644 --- a/tests/test_scripts.py +++ b/tests/test_scripts.py @@ -6,6 +6,7 @@ import pydantic as pdt import pytest from _pytest import capture as pc + from bikes import scripts # %% SCRIPTS diff --git a/tests/utils/test_searchers.py b/tests/utils/test_searchers.py index 7d2f1ca..30c79fb 100644 --- a/tests/utils/test_searchers.py +++ b/tests/utils/test_searchers.py @@ -18,7 +18,11 @@ def test_grid_cv_searcher( searcher = searchers.GridCVSearcher(param_grid=param_grid) # when result, best_score, best_params = searcher.search( - model=model, metric=metric, inputs=inputs, targets=targets, cv=train_test_splitter + model=model, + metric=metric, + inputs=inputs, + targets=targets, + cv=train_test_splitter, ) # then assert set(best_params) == set(param_grid), "Best params should have the same keys as grid!" diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..498a3a2 --- /dev/null +++ b/uv.lock @@ -0,0 +1,2473 @@ +version = 1 +requires-python = ">=3.12" +resolution-markers = [ + "platform_system != 'Windows'", + "platform_system == 'Windows'", +] + +[[package]] +name = "alembic" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mako" }, + { name = "sqlalchemy" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/1e/8cb8900ba1b6360431e46fb7a89922916d3a1b017a8908a7c0499cc7e5f6/alembic-1.14.0.tar.gz", hash = "sha256:b00892b53b3642d0b8dbedba234dbf1924b69be83a9a769d5a624b01094e304b", size = 1916172 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/06/8b505aea3d77021b18dcbd8133aa1418f1a1e37e432a465b14c46b2c0eaa/alembic-1.14.0-py3-none-any.whl", hash = "sha256:99bd884ca390466db5e27ffccff1d179ec5c05c965cfefc0607e69f9e411cb25", size = 233482 }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, +] + +[[package]] +name = "antlr4-python3-runtime" +version = "4.9.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b", size = 117034 } + +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321 }, +] + +[[package]] +name = "argcomplete" +version = "3.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/03/581b1c29d88fffaa08abbced2e628c34dd92d32f1adaed7e42fc416938b0/argcomplete-3.5.2.tar.gz", hash = "sha256:23146ed7ac4403b70bd6026402468942ceba34a6732255b9edf5b7354f68a6bb", size = 82341 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/37/3fa718aaadd36e073891138dc3ebd919a71bafd4881c97d8a133265af191/argcomplete-3.5.2-py3-none-any.whl", hash = "sha256:036d020d79048a5d525bc63880d7a4b8d1668566b8a76daf1144c0bbe0f63472", size = 43506 }, +] + +[[package]] +name = "asttokens" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918 }, +] + +[[package]] +name = "attrs" +version = "24.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", size = 792678 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", size = 63001 }, +] + +[[package]] +name = "bandit" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "stevedore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/c3/bea54f22cdc8224f0ace18b2cf86c6adf7010285d0ed51b703af9910c5b2/bandit-1.8.0.tar.gz", hash = "sha256:b5bfe55a095abd9fe20099178a7c6c060f844bfd4fe4c76d28e35e4c52b9d31e", size = 4228600 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/6b/a9f0574d05d63e7d8125cd02a52732adb6720a9b9f13c921386cb9cdb53e/bandit-1.8.0-py3-none-any.whl", hash = "sha256:b1a61d829c0968aed625381e426aa378904b996529d048f8d908fa28f6b13e38", size = 127035 }, +] + +[[package]] +name = "bikes" +version = "2.0.0" +source = { editable = "." } +dependencies = [ + { name = "loguru" }, + { name = "matplotlib" }, + { name = "mlflow" }, + { name = "numba" }, + { name = "numpy" }, + { name = "omegaconf" }, + { name = "pandas" }, + { name = "pandera" }, + { name = "plotly" }, + { name = "plyer" }, + { name = "psutil" }, + { name = "pyarrow" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pynvml" }, + { name = "scikit-learn" }, + { name = "setuptools" }, + { name = "shap" }, +] + +[package.dev-dependencies] +checks = [ + { name = "bandit" }, + { name = "coverage" }, + { name = "mypy" }, + { name = "pandera", extra = ["mypy"] }, + { name = "pytest" }, + { name = "pytest-cov" }, + { name = "pytest-mock" }, + { name = "pytest-xdist" }, + { name = "ruff" }, +] +commits = [ + { name = "commitizen" }, + { name = "pre-commit" }, +] +dev = [ + { name = "invoke" }, +] +docs = [ + { name = "pdoc" }, +] +notebooks = [ + { name = "ipykernel" }, + { name = "nbformat" }, +] + +[package.metadata] +requires-dist = [ + { name = "loguru", specifier = ">=0.7.2" }, + { name = "matplotlib", specifier = ">=3.9.3" }, + { name = "mlflow", specifier = ">=2.19.0" }, + { name = "numba", specifier = ">=0.60.0" }, + { name = "numpy", specifier = ">=2.0.2" }, + { name = "omegaconf", specifier = ">=2.3.0" }, + { name = "pandas", specifier = ">=2.2.3" }, + { name = "pandera", specifier = ">=0.21.0" }, + { name = "plotly", specifier = ">=5.24.1" }, + { name = "plyer", specifier = ">=2.1.0" }, + { name = "psutil", specifier = ">=6.1.0" }, + { name = "pyarrow", specifier = ">=18.1.0" }, + { name = "pydantic", specifier = ">=2.10.3" }, + { name = "pydantic-settings", specifier = ">=2.6.1" }, + { name = "pynvml", specifier = ">=12.0.0" }, + { name = "scikit-learn", specifier = ">=1.5.2,<1.6.0" }, + { name = "setuptools", specifier = ">=75.6.0" }, + { name = "shap", specifier = ">=0.46.0" }, +] + +[package.metadata.requires-dev] +checks = [ + { name = "bandit", specifier = ">=1.8.0" }, + { name = "coverage", specifier = ">=7.6.8" }, + { name = "mypy", specifier = ">=1.13.0" }, + { name = "pandera", extras = ["mypy"], specifier = ">=0.21.0" }, + { name = "pytest", specifier = ">=8.3.3" }, + { name = "pytest-cov", specifier = ">=6.0.0" }, + { name = "pytest-mock", specifier = ">=3.14.0" }, + { name = "pytest-xdist", specifier = ">=3.6.1" }, + { name = "ruff", specifier = ">=0.8.1" }, +] +commits = [ + { name = "commitizen", specifier = ">=4.0.0" }, + { name = "pre-commit", specifier = ">=4.0.1" }, +] +dev = [{ name = "invoke", specifier = ">=2.2.0" }] +docs = [{ name = "pdoc", specifier = ">=15.0.0" }] +notebooks = [ + { name = "ipykernel", specifier = ">=6.29.5" }, + { name = "nbformat", specifier = ">=5.10.4" }, +] + +[[package]] +name = "blinker" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458 }, +] + +[[package]] +name = "cachetools" +version = "5.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/38/a0f315319737ecf45b4319a8cd1f3a908e29d9277b46942263292115eee7/cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a", size = 27661 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/07/14f8ad37f2d12a5ce41206c21820d8cb6561b728e51fad4530dff0552a67/cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292", size = 9524 }, +] + +[[package]] +name = "certifi" +version = "2024.12.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 }, +] + +[[package]] +name = "cffi" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178 }, + { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840 }, + { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803 }, + { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850 }, + { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729 }, + { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256 }, + { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424 }, + { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568 }, + { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736 }, + { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448 }, + { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976 }, + { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989 }, + { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802 }, + { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792 }, + { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893 }, + { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810 }, + { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200 }, + { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447 }, + { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358 }, + { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 }, + { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 }, + { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 }, +] + +[[package]] +name = "cfgv" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94/cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560", size = 7114 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9", size = 7249 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 }, + { url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 }, + { url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 }, + { url = "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", size = 139128 }, + { url = "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", size = 149277 }, + { url = "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", size = 142174 }, + { url = "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", size = 143838 }, + { url = "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", size = 146149 }, + { url = "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", size = 140043 }, + { url = "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", size = 148229 }, + { url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 }, + { url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 }, + { url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 }, + { url = "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", size = 94836 }, + { url = "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", size = 102187 }, + { url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 }, + { url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 }, + { url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 }, + { url = "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", size = 139342 }, + { url = "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", size = 149383 }, + { url = "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", size = 142214 }, + { url = "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", size = 144104 }, + { url = "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", size = 146255 }, + { url = "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", size = 140251 }, + { url = "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", size = 148474 }, + { url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 }, + { url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 }, + { url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 }, + { url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 }, + { url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 }, + { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 }, +] + +[[package]] +name = "click" +version = "8.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "platform_system == 'Windows'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 }, +] + +[[package]] +name = "cloudpickle" +version = "3.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/97/c7/f746cadd08c4c08129215cf1b984b632f9e579fc781301e63da9e85c76c1/cloudpickle-3.1.0.tar.gz", hash = "sha256:81a929b6e3c7335c863c771d673d105f02efdb89dfaba0c90495d1c64796601b", size = 66155 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/41/e1d85ca3cab0b674e277c8c4f678cf66a91cd2cecf93df94353a606fe0db/cloudpickle-3.1.0-py3-none-any.whl", hash = "sha256:fe11acda67f61aaaec473e3afe030feb131d78a43461b718185363384f1ba12e", size = 22021 }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "comm" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/a8/fb783cb0abe2b5fded9f55e5703015cdf1c9c85b3669087c538dd15a6a86/comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e", size = 6210 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/75/49e5bfe642f71f272236b5b2d2691cf915a7283cc0ceda56357b61daa538/comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3", size = 7180 }, +] + +[[package]] +name = "commitizen" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "argcomplete" }, + { name = "charset-normalizer" }, + { name = "colorama" }, + { name = "decli" }, + { name = "jinja2" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "questionary" }, + { name = "termcolor" }, + { name = "tomlkit" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/c5/66f1b977b48501a33f5fd33253aba14786483b08aba987718d272e99e732/commitizen-4.1.0.tar.gz", hash = "sha256:4f2d9400ec411aec1c738d4c63fc7fd5807cd6ddf6be970869e03e68b88ff718", size = 51252 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/f7/7f70adfbf3553ffdbe391eaacde72b21dbc1b4226ae56ca32e8ded1bf70b/commitizen-4.1.0-py3-none-any.whl", hash = "sha256:2e6c5fbd442cab4bcc5a04bc86ef2196ef84bcf611317d6c596e87f5bb4c09f5", size = 72282 }, +] + +[[package]] +name = "contourpy" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/25/c2/fc7193cc5383637ff390a712e88e4ded0452c9fbcf84abe3de5ea3df1866/contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699", size = 13465753 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/6b/175f60227d3e7f5f1549fcb374592be311293132207e451c3d7c654c25fb/contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509", size = 271494 }, + { url = "https://files.pythonhosted.org/packages/6b/6a/7833cfae2c1e63d1d8875a50fd23371394f540ce809d7383550681a1fa64/contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc", size = 255444 }, + { url = "https://files.pythonhosted.org/packages/7f/b3/7859efce66eaca5c14ba7619791b084ed02d868d76b928ff56890d2d059d/contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454", size = 307628 }, + { url = "https://files.pythonhosted.org/packages/48/b2/011415f5e3f0a50b1e285a0bf78eb5d92a4df000553570f0851b6e309076/contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80", size = 347271 }, + { url = "https://files.pythonhosted.org/packages/84/7d/ef19b1db0f45b151ac78c65127235239a8cf21a59d1ce8507ce03e89a30b/contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec", size = 318906 }, + { url = "https://files.pythonhosted.org/packages/ba/99/6794142b90b853a9155316c8f470d2e4821fe6f086b03e372aca848227dd/contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9", size = 323622 }, + { url = "https://files.pythonhosted.org/packages/3c/0f/37d2c84a900cd8eb54e105f4fa9aebd275e14e266736778bb5dccbf3bbbb/contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b", size = 1266699 }, + { url = "https://files.pythonhosted.org/packages/3a/8a/deb5e11dc7d9cc8f0f9c8b29d4f062203f3af230ba83c30a6b161a6effc9/contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d", size = 1326395 }, + { url = "https://files.pythonhosted.org/packages/1a/35/7e267ae7c13aaf12322ccc493531f1e7f2eb8fba2927b9d7a05ff615df7a/contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e", size = 175354 }, + { url = "https://files.pythonhosted.org/packages/a1/35/c2de8823211d07e8a79ab018ef03960716c5dff6f4d5bff5af87fd682992/contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d", size = 220971 }, + { url = "https://files.pythonhosted.org/packages/9a/e7/de62050dce687c5e96f946a93546910bc67e483fe05324439e329ff36105/contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2", size = 271548 }, + { url = "https://files.pythonhosted.org/packages/78/4d/c2a09ae014ae984c6bdd29c11e74d3121b25eaa117eca0bb76340efd7e1c/contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5", size = 255576 }, + { url = "https://files.pythonhosted.org/packages/ab/8a/915380ee96a5638bda80cd061ccb8e666bfdccea38d5741cb69e6dbd61fc/contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81", size = 306635 }, + { url = "https://files.pythonhosted.org/packages/29/5c/c83ce09375428298acd4e6582aeb68b1e0d1447f877fa993d9bf6cd3b0a0/contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2", size = 345925 }, + { url = "https://files.pythonhosted.org/packages/29/63/5b52f4a15e80c66c8078a641a3bfacd6e07106835682454647aca1afc852/contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7", size = 318000 }, + { url = "https://files.pythonhosted.org/packages/9a/e2/30ca086c692691129849198659bf0556d72a757fe2769eb9620a27169296/contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c", size = 322689 }, + { url = "https://files.pythonhosted.org/packages/6b/77/f37812ef700f1f185d348394debf33f22d531e714cf6a35d13d68a7003c7/contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3", size = 1268413 }, + { url = "https://files.pythonhosted.org/packages/3f/6d/ce84e79cdd128542ebeb268f84abb4b093af78e7f8ec504676673d2675bc/contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1", size = 1326530 }, + { url = "https://files.pythonhosted.org/packages/72/22/8282f4eae20c73c89bee7a82a19c4e27af9b57bb602ecaa00713d5bdb54d/contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82", size = 175315 }, + { url = "https://files.pythonhosted.org/packages/e3/d5/28bca491f65312b438fbf076589dcde7f6f966b196d900777f5811b9c4e2/contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd", size = 220987 }, + { url = "https://files.pythonhosted.org/packages/2f/24/a4b285d6adaaf9746e4700932f579f1a7b6f9681109f694cfa233ae75c4e/contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30", size = 285001 }, + { url = "https://files.pythonhosted.org/packages/48/1d/fb49a401b5ca4f06ccf467cd6c4f1fd65767e63c21322b29b04ec40b40b9/contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751", size = 268553 }, + { url = "https://files.pythonhosted.org/packages/79/1e/4aef9470d13fd029087388fae750dccb49a50c012a6c8d1d634295caa644/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342", size = 310386 }, + { url = "https://files.pythonhosted.org/packages/b0/34/910dc706ed70153b60392b5305c708c9810d425bde12499c9184a1100888/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c", size = 349806 }, + { url = "https://files.pythonhosted.org/packages/31/3c/faee6a40d66d7f2a87f7102236bf4780c57990dd7f98e5ff29881b1b1344/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f", size = 321108 }, + { url = "https://files.pythonhosted.org/packages/17/69/390dc9b20dd4bb20585651d7316cc3054b7d4a7b4f8b710b2b698e08968d/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda", size = 327291 }, + { url = "https://files.pythonhosted.org/packages/ef/74/7030b67c4e941fe1e5424a3d988080e83568030ce0355f7c9fc556455b01/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242", size = 1263752 }, + { url = "https://files.pythonhosted.org/packages/f0/ed/92d86f183a8615f13f6b9cbfc5d4298a509d6ce433432e21da838b4b63f4/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1", size = 1318403 }, + { url = "https://files.pythonhosted.org/packages/b3/0e/c8e4950c77dcfc897c71d61e56690a0a9df39543d2164040301b5df8e67b/contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1", size = 185117 }, + { url = "https://files.pythonhosted.org/packages/c1/31/1ae946f11dfbd229222e6d6ad8e7bd1891d3d48bde5fbf7a0beb9491f8e3/contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546", size = 236668 }, +] + +[[package]] +name = "coverage" +version = "7.6.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/d2/c25011f4d036cf7e8acbbee07a8e09e9018390aee25ba085596c4b83d510/coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d", size = 801710 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/52/b16af8989a2daf0f80a88522bd8e8eed90b5fcbdecf02a6888f3e80f6ba7/coverage-7.6.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8", size = 207325 }, + { url = "https://files.pythonhosted.org/packages/0f/79/6b7826fca8846c1216a113227b9f114ac3e6eacf168b4adcad0cb974aaca/coverage-7.6.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a", size = 207563 }, + { url = "https://files.pythonhosted.org/packages/a7/07/0bc73da0ccaf45d0d64ef86d33b7d7fdeef84b4c44bf6b85fb12c215c5a6/coverage-7.6.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015", size = 240580 }, + { url = "https://files.pythonhosted.org/packages/71/8a/9761f409910961647d892454687cedbaccb99aae828f49486734a82ede6e/coverage-7.6.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3", size = 237613 }, + { url = "https://files.pythonhosted.org/packages/8b/10/ee7d696a17ac94f32f2dbda1e17e730bf798ae9931aec1fc01c1944cd4de/coverage-7.6.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae", size = 239684 }, + { url = "https://files.pythonhosted.org/packages/16/60/aa1066040d3c52fff051243c2d6ccda264da72dc6d199d047624d395b2b2/coverage-7.6.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4", size = 239112 }, + { url = "https://files.pythonhosted.org/packages/4e/e5/69f35344c6f932ba9028bf168d14a79fedb0dd4849b796d43c81ce75a3c9/coverage-7.6.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6", size = 237428 }, + { url = "https://files.pythonhosted.org/packages/32/20/adc895523c4a28f63441b8ac645abd74f9bdd499d2d175bef5b41fc7f92d/coverage-7.6.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f", size = 239098 }, + { url = "https://files.pythonhosted.org/packages/a9/a6/e0e74230c9bb3549ec8ffc137cfd16ea5d56e993d6bffed2218bff6187e3/coverage-7.6.9-cp312-cp312-win32.whl", hash = "sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692", size = 209940 }, + { url = "https://files.pythonhosted.org/packages/3e/18/cb5b88349d4aa2f41ec78d65f92ea32572b30b3f55bc2b70e87578b8f434/coverage-7.6.9-cp312-cp312-win_amd64.whl", hash = "sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97", size = 210726 }, + { url = "https://files.pythonhosted.org/packages/35/26/9abab6539d2191dbda2ce8c97b67d74cbfc966cc5b25abb880ffc7c459bc/coverage-7.6.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664", size = 207356 }, + { url = "https://files.pythonhosted.org/packages/44/da/d49f19402240c93453f606e660a6676a2a1fbbaa6870cc23207790aa9697/coverage-7.6.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c", size = 207614 }, + { url = "https://files.pythonhosted.org/packages/da/e6/93bb9bf85497816082ec8da6124c25efa2052bd4c887dd3b317b91990c9e/coverage-7.6.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014", size = 240129 }, + { url = "https://files.pythonhosted.org/packages/df/65/6a824b9406fe066835c1274a9949e06f084d3e605eb1a602727a27ec2fe3/coverage-7.6.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00", size = 237276 }, + { url = "https://files.pythonhosted.org/packages/9f/79/6c7a800913a9dd23ac8c8da133ebb556771a5a3d4df36b46767b1baffd35/coverage-7.6.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d", size = 239267 }, + { url = "https://files.pythonhosted.org/packages/57/e7/834d530293fdc8a63ba8ff70033d5182022e569eceb9aec7fc716b678a39/coverage-7.6.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a", size = 238887 }, + { url = "https://files.pythonhosted.org/packages/15/05/ec9d6080852984f7163c96984444e7cd98b338fd045b191064f943ee1c08/coverage-7.6.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077", size = 236970 }, + { url = "https://files.pythonhosted.org/packages/0a/d8/775937670b93156aec29f694ce37f56214ed7597e1a75b4083ee4c32121c/coverage-7.6.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb", size = 238831 }, + { url = "https://files.pythonhosted.org/packages/f4/58/88551cb7fdd5ec98cb6044e8814e38583436b14040a5ece15349c44c8f7c/coverage-7.6.9-cp313-cp313-win32.whl", hash = "sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba", size = 210000 }, + { url = "https://files.pythonhosted.org/packages/b7/12/cfbf49b95120872785ff8d56ab1c7fe3970a65e35010c311d7dd35c5fd00/coverage-7.6.9-cp313-cp313-win_amd64.whl", hash = "sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1", size = 210753 }, + { url = "https://files.pythonhosted.org/packages/7c/68/c1cb31445599b04bde21cbbaa6d21b47c5823cdfef99eae470dfce49c35a/coverage-7.6.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419", size = 208091 }, + { url = "https://files.pythonhosted.org/packages/11/73/84b02c6b19c4a11eb2d5b5eabe926fb26c21c080e0852f5e5a4f01165f9e/coverage-7.6.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a", size = 208369 }, + { url = "https://files.pythonhosted.org/packages/de/e0/ae5d878b72ff26df2e994a5c5b1c1f6a7507d976b23beecb1ed4c85411ef/coverage-7.6.9-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4", size = 251089 }, + { url = "https://files.pythonhosted.org/packages/ab/9c/0aaac011aef95a93ef3cb2fba3fde30bc7e68a6635199ed469b1f5ea355a/coverage-7.6.9-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae", size = 246806 }, + { url = "https://files.pythonhosted.org/packages/f8/19/4d5d3ae66938a7dcb2f58cef3fa5386f838f469575b0bb568c8cc9e3a33d/coverage-7.6.9-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030", size = 249164 }, + { url = "https://files.pythonhosted.org/packages/b3/0b/4ee8a7821f682af9ad440ae3c1e379da89a998883271f088102d7ca2473d/coverage-7.6.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be", size = 248642 }, + { url = "https://files.pythonhosted.org/packages/8a/12/36ff1d52be18a16b4700f561852e7afd8df56363a5edcfb04cf26a0e19e0/coverage-7.6.9-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e", size = 246516 }, + { url = "https://files.pythonhosted.org/packages/43/d0/8e258f6c3a527c1655602f4f576215e055ac704de2d101710a71a2affac2/coverage-7.6.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9", size = 247783 }, + { url = "https://files.pythonhosted.org/packages/a9/0d/1e4a48d289429d38aae3babdfcadbf35ca36bdcf3efc8f09b550a845bdb5/coverage-7.6.9-cp313-cp313t-win32.whl", hash = "sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b", size = 210646 }, + { url = "https://files.pythonhosted.org/packages/26/74/b0729f196f328ac55e42b1e22ec2f16d8bcafe4b8158a26ec9f1cdd1d93e/coverage-7.6.9-cp313-cp313t-win_amd64.whl", hash = "sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611", size = 211815 }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 }, +] + +[[package]] +name = "databricks-sdk" +version = "0.39.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-auth" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/98/15030d8ae0c0607739fab357ff731b54e2771a0dd34585f325a266ed950a/databricks_sdk-0.39.0.tar.gz", hash = "sha256:2e04edbb9e050f4362da804fb5dad07637c5adecfcffb4d0ca8abb5aefa36d06", size = 641468 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/a0/3c993a6b468c8a212a45c012c86105ea8ade881662f49382a69ea253a43a/databricks_sdk-0.39.0-py3-none-any.whl", hash = "sha256:915fbf12b249264f74ddae2ca739530e3c4a9c5a454617ac403115d6466c2f99", size = 622955 }, +] + +[[package]] +name = "debugpy" +version = "1.8.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/e7/666f4c9b0e24796af50aadc28d36d21c2e01e831a934535f956e09b3650c/debugpy-1.8.11.tar.gz", hash = "sha256:6ad2688b69235c43b020e04fecccdf6a96c8943ca9c2fb340b8adc103c655e57", size = 1640124 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/ae/2cf26f3111e9d94384d9c01e9d6170188b0aeda15b60a4ac6457f7c8a26f/debugpy-1.8.11-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:84e511a7545d11683d32cdb8f809ef63fc17ea2a00455cc62d0a4dbb4ed1c308", size = 2498756 }, + { url = "https://files.pythonhosted.org/packages/b0/16/ec551789d547541a46831a19aa15c147741133da188e7e6acf77510545a7/debugpy-1.8.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce291a5aca4985d82875d6779f61375e959208cdf09fcec40001e65fb0a54768", size = 4219136 }, + { url = "https://files.pythonhosted.org/packages/72/6f/b2b3ce673c55f882d27a6eb04a5f0c68bcad6b742ac08a86d8392ae58030/debugpy-1.8.11-cp312-cp312-win32.whl", hash = "sha256:28e45b3f827d3bf2592f3cf7ae63282e859f3259db44ed2b129093ca0ac7940b", size = 5224440 }, + { url = "https://files.pythonhosted.org/packages/77/09/b1f05be802c1caef5b3efc042fc6a7cadd13d8118b072afd04a9b9e91e06/debugpy-1.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:44b1b8e6253bceada11f714acf4309ffb98bfa9ac55e4fce14f9e5d4484287a1", size = 5264578 }, + { url = "https://files.pythonhosted.org/packages/2e/66/931dc2479aa8fbf362dc6dcee707d895a84b0b2d7b64020135f20b8db1ed/debugpy-1.8.11-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:8988f7163e4381b0da7696f37eec7aca19deb02e500245df68a7159739bbd0d3", size = 2483651 }, + { url = "https://files.pythonhosted.org/packages/10/07/6c171d0fe6b8d237e35598b742f20ba062511b3a4631938cc78eefbbf847/debugpy-1.8.11-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c1f6a173d1140e557347419767d2b14ac1c9cd847e0b4c5444c7f3144697e4e", size = 4213770 }, + { url = "https://files.pythonhosted.org/packages/89/f1/0711da6ac250d4fe3bf7b3e9b14b4a86e82a98b7825075c07e19bab8da3d/debugpy-1.8.11-cp313-cp313-win32.whl", hash = "sha256:bb3b15e25891f38da3ca0740271e63ab9db61f41d4d8541745cfc1824252cb28", size = 5223911 }, + { url = "https://files.pythonhosted.org/packages/56/98/5e27fa39050749ed460025bcd0034a0a5e78a580a14079b164cc3abdeb98/debugpy-1.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:d8768edcbeb34da9e11bcb8b5c2e0958d25218df7a6e56adf415ef262cd7b6d1", size = 5264166 }, + { url = "https://files.pythonhosted.org/packages/77/0a/d29a5aacf47b4383ed569b8478c02d59ee3a01ad91224d2cff8562410e43/debugpy-1.8.11-py2.py3-none-any.whl", hash = "sha256:0e22f846f4211383e6a416d04b4c13ed174d24cc5d43f5fd52e7821d0ebc8920", size = 5226874 }, +] + +[[package]] +name = "decli" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3d/a0/a4658f93ecb589f479037b164dc13c68d108b50bf6594e54c820749f97ac/decli-0.6.2.tar.gz", hash = "sha256:36f71eb55fd0093895efb4f416ec32b7f6e00147dda448e3365cf73ceab42d6f", size = 7424 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/70/3ea48dc9e958d7d66c44c9944809181f1ca79aaef25703c023b5092d34ff/decli-0.6.2-py3-none-any.whl", hash = "sha256:2fc84106ce9a8f523ed501ca543bdb7e416c064917c12a59ebdc7f311a97b7ed", size = 7854 }, +] + +[[package]] +name = "decorator" +version = "5.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/0c/8d907af351aa16b42caae42f9d6aa37b900c67308052d10fdce809f8d952/decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", size = 35016 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186", size = 9073 }, +] + +[[package]] +name = "deprecated" +version = "1.2.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/a3/53e7d78a6850ffdd394d7048a31a6f14e44900adedf190f9a165f6b69439/deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d", size = 2977612 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/8f/c7f227eb42cfeaddce3eb0c96c60cbca37797fa7b34f8e1aeadf6c5c0983/Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320", size = 9941 }, +] + +[[package]] +name = "distlib" +version = "0.3.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0d/dd/1bec4c5ddb504ca60fc29472f3d27e8d4da1257a854e1d96742f15c1d02d/distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403", size = 613923 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/a1/cf2472db20f7ce4a6be1253a81cfdf85ad9c7885ffbed7047fb72c24cf87/distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87", size = 468973 }, +] + +[[package]] +name = "docker" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "requests" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/9b/4a2ea29aeba62471211598dac5d96825bb49348fa07e906ea930394a83ce/docker-7.1.0.tar.gz", hash = "sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c", size = 117834 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl", hash = "sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0", size = 147774 }, +] + +[[package]] +name = "execnet" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/ff/b4c0dc78fbe20c3e59c0c7334de0c27eb4001a2b2017999af398bf730817/execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3", size = 166524 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc", size = 40612 }, +] + +[[package]] +name = "executing" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/e3/7d45f492c2c4a0e8e0fad57d081a7c8a0286cdd86372b070cca1ec0caa1e/executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab", size = 977485 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/fd/afcd0496feca3276f509df3dbd5dae726fcc756f1a08d9e25abe1733f962/executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf", size = 25805 }, +] + +[[package]] +name = "fastjsonschema" +version = "2.21.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8b/50/4b769ce1ac4071a1ef6d86b1a3fb56cdc3a37615e8c5519e1af96cdac366/fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4", size = 373939 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/2b/0817a2b257fe88725c25589d89aec060581aabf668707a8d03b2e9e0cb2a/fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667", size = 23924 }, +] + +[[package]] +name = "filelock" +version = "3.16.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/db/3ef5bb276dae18d6ec2124224403d1d67bccdbefc17af4cc8f553e341ab1/filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435", size = 18037 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/f8/feced7779d755758a52d1f6635d990b8d98dc0a29fa568bbe0625f18fdf3/filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0", size = 16163 }, +] + +[[package]] +name = "flask" +version = "3.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blinker" }, + { name = "click" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/50/dff6380f1c7f84135484e176e0cac8690af72fa90e932ad2a0a60e28c69b/flask-3.1.0.tar.gz", hash = "sha256:5f873c5184c897c8d9d1b05df1e3d01b14910ce69607a117bd3277098a5836ac", size = 680824 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/47/93213ee66ef8fae3b93b3e29206f6b251e65c97bd91d8e1c5596ef15af0a/flask-3.1.0-py3-none-any.whl", hash = "sha256:d667207822eb83f1c4b50949b1623c8fc8d51f2341d65f72e1a1815397551136", size = 102979 }, +] + +[[package]] +name = "fonttools" +version = "4.55.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/61/a300d1574dc381393424047c0396a0e213db212e28361123af9830d71a8d/fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45", size = 3498155 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/58/fbcf5dff7e3ea844bb00c4d806ca1e339e1f2dce5529633bf4842c0c9a1f/fonttools-4.55.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9e736f60f4911061235603a6119e72053073a12c6d7904011df2d8fad2c0e35", size = 2765380 }, + { url = "https://files.pythonhosted.org/packages/81/dd/da6e329e51919b4f421c8738f3497e2ab08c168e76aaef7b6d5351862bdf/fonttools-4.55.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a8aa2c5e5b8b3bcb2e4538d929f6589a5c6bdb84fd16e2ed92649fb5454f11c", size = 2297940 }, + { url = "https://files.pythonhosted.org/packages/00/44/f5ee560858425c99ef07e04919e736db09d6416408e5a8d3bbfb4a6623fd/fonttools-4.55.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f8288aacf0a38d174445fc78377a97fb0b83cfe352a90c9d9c1400571963c7", size = 4793327 }, + { url = "https://files.pythonhosted.org/packages/24/da/0a001926d791c55e29ac3c52964957a20dbc1963615446b568b7432891c3/fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8d5e8916c0970fbc0f6f1bece0063363bb5857a7f170121a4493e31c3db3314", size = 4865624 }, + { url = "https://files.pythonhosted.org/packages/3d/d8/1edd8b13a427a9fb6418373437caa586c0caa57f260af8e0548f4d11e340/fonttools-4.55.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae3b6600565b2d80b7c05acb8e24d2b26ac407b27a3f2e078229721ba5698427", size = 4774166 }, + { url = "https://files.pythonhosted.org/packages/9c/ec/ade054097976c3d6debc9032e09a351505a0196aa5493edf021be376f75e/fonttools-4.55.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:54153c49913f45065c8d9e6d0c101396725c5621c8aee744719300f79771d75a", size = 5001832 }, + { url = "https://files.pythonhosted.org/packages/e2/cd/233f0e31ad799bb91fc78099c8b4e5ec43b85a131688519640d6bae46f6a/fonttools-4.55.3-cp312-cp312-win32.whl", hash = "sha256:827e95fdbbd3e51f8b459af5ea10ecb4e30af50221ca103bea68218e9615de07", size = 2162228 }, + { url = "https://files.pythonhosted.org/packages/46/45/a498b5291f6c0d91b2394b1ed7447442a57d1c9b9cf8f439aee3c316a56e/fonttools-4.55.3-cp312-cp312-win_amd64.whl", hash = "sha256:e6e8766eeeb2de759e862004aa11a9ea3d6f6d5ec710551a88b476192b64fd54", size = 2209118 }, + { url = "https://files.pythonhosted.org/packages/9c/9f/00142a19bad96eeeb1aed93f567adc19b7f2c1af6f5bc0a1c3de90b4b1ac/fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29", size = 2752812 }, + { url = "https://files.pythonhosted.org/packages/b0/20/14b8250d63ba65e162091fb0dda07730f90c303bbf5257e9ddacec7230d9/fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4", size = 2291521 }, + { url = "https://files.pythonhosted.org/packages/34/47/a681cfd10245eb74f65e491a934053ec75c4af639655446558f29818e45e/fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca", size = 4770980 }, + { url = "https://files.pythonhosted.org/packages/d2/6c/a7066afc19db0705a12efd812e19c32cde2b9514eb714659522f2ebd60b6/fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b", size = 4845534 }, + { url = "https://files.pythonhosted.org/packages/0c/a2/3c204fbabbfd845d9bdcab9ae35279d41e9a4bf5c80a0a2708f9c5a195d6/fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048", size = 4753910 }, + { url = "https://files.pythonhosted.org/packages/6e/8c/b4cb3592880340b89e4ef6601b531780bba73862332a6451d78fe135d6cb/fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe", size = 4976411 }, + { url = "https://files.pythonhosted.org/packages/fc/a8/4bf98840ff89fcc188470b59daec57322178bf36d2f4f756cd19a42a826b/fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628", size = 2160178 }, + { url = "https://files.pythonhosted.org/packages/e6/57/4cc35004605416df3225ff362f3455cf09765db00df578ae9e46d0fefd23/fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b", size = 2206102 }, + { url = "https://files.pythonhosted.org/packages/99/3b/406d17b1f63e04a82aa621936e6e1c53a8c05458abd66300ac85ea7f9ae9/fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977", size = 1111638 }, +] + +[[package]] +name = "gitdb" +version = "4.0.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/0d/bbb5b5ee188dec84647a4664f3e11b06ade2bde568dbd489d9d64adef8ed/gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b", size = 394469 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/5b/8f0c4a5bb9fd491c277c21eff7ccae71b47d43c4446c9d0c6cff2fe8c2c4/gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4", size = 62721 }, +] + +[[package]] +name = "gitpython" +version = "3.1.43" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b6/a1/106fd9fa2dd989b6fb36e5893961f82992cf676381707253e0bf93eb1662/GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c", size = 214149 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/bd/cc3a402a6439c15c3d4294333e13042b915bbeab54edc457c723931fed3f/GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff", size = 207337 }, +] + +[[package]] +name = "google-auth" +version = "2.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools" }, + { name = "pyasn1-modules" }, + { name = "rsa" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/af/b25763b9d35dfc2c6f9c3ec34d8d3f1ba760af3a7b7e8d5c5f0579522c45/google_auth-2.37.0.tar.gz", hash = "sha256:0054623abf1f9c83492c63d3f47e77f0a544caa3d40b2d98e099a611c2dd5d00", size = 268878 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/8d/4d5d5f9f500499f7bd4c93903b43e8d6976f3fc6f064637ded1a85d09b07/google_auth-2.37.0-py2.py3-none-any.whl", hash = "sha256:42664f18290a6be591be5329a96fe30184be1a1badb7292a7f686a9659de9ca0", size = 209829 }, +] + +[[package]] +name = "graphene" +version = "3.4.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "graphql-core" }, + { name = "graphql-relay" }, + { name = "python-dateutil" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cc/f6/bf62ff950c317ed03e77f3f6ddd7e34aaa98fe89d79ebd660c55343d8054/graphene-3.4.3.tar.gz", hash = "sha256:2a3786948ce75fe7e078443d37f609cbe5bb36ad8d6b828740ad3b95ed1a0aaa", size = 44739 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/e0/61d8e98007182e6b2aca7cf65904721fb2e4bce0192272ab9cb6f69d8812/graphene-3.4.3-py2.py3-none-any.whl", hash = "sha256:820db6289754c181007a150db1f7fff544b94142b556d12e3ebc777a7bf36c71", size = 114894 }, +] + +[[package]] +name = "graphql-core" +version = "3.2.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2e/b5/ebc6fe3852e2d2fdaf682dddfc366934f3d2c9ef9b6d1b0e6ca348d936ba/graphql_core-3.2.5.tar.gz", hash = "sha256:e671b90ed653c808715645e3998b7ab67d382d55467b7e2978549111bbabf8d5", size = 504664 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/dc/078bd6b304de790618ebb95e2aedaadb78f4527ac43a9ad8815f006636b6/graphql_core-3.2.5-py3-none-any.whl", hash = "sha256:2f150d5096448aa4f8ab26268567bbfeef823769893b39c1a2e1409590939c8a", size = 203189 }, +] + +[[package]] +name = "graphql-relay" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "graphql-core" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/13/98fbf8d67552f102488ffc16c6f559ce71ea15f6294728d33928ab5ff14d/graphql-relay-3.2.0.tar.gz", hash = "sha256:1ff1c51298356e481a0be009ccdff249832ce53f30559c1338f22a0e0d17250c", size = 50027 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/16/a4cf06adbc711bd364a73ce043b0b08d8fa5aae3df11b6ee4248bcdad2e0/graphql_relay-3.2.0-py3-none-any.whl", hash = "sha256:c9b22bd28b170ba1fe674c74384a8ff30a76c8e26f88ac3aa1584dd3179953e5", size = 16940 }, +] + +[[package]] +name = "greenlet" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2f/ff/df5fede753cc10f6a5be0931204ea30c35fa2f2ea7a35b25bdaf4fe40e46/greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467", size = 186022 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/ec/bad1ac26764d26aa1353216fcbfa4670050f66d445448aafa227f8b16e80/greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d", size = 274260 }, + { url = "https://files.pythonhosted.org/packages/66/d4/c8c04958870f482459ab5956c2942c4ec35cac7fe245527f1039837c17a9/greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79", size = 649064 }, + { url = "https://files.pythonhosted.org/packages/51/41/467b12a8c7c1303d20abcca145db2be4e6cd50a951fa30af48b6ec607581/greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa", size = 663420 }, + { url = "https://files.pythonhosted.org/packages/27/8f/2a93cd9b1e7107d5c7b3b7816eeadcac2ebcaf6d6513df9abaf0334777f6/greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441", size = 658035 }, + { url = "https://files.pythonhosted.org/packages/57/5c/7c6f50cb12be092e1dccb2599be5a942c3416dbcfb76efcf54b3f8be4d8d/greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36", size = 660105 }, + { url = "https://files.pythonhosted.org/packages/f1/66/033e58a50fd9ec9df00a8671c74f1f3a320564c6415a4ed82a1c651654ba/greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9", size = 613077 }, + { url = "https://files.pythonhosted.org/packages/19/c5/36384a06f748044d06bdd8776e231fadf92fc896bd12cb1c9f5a1bda9578/greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0", size = 1135975 }, + { url = "https://files.pythonhosted.org/packages/38/f9/c0a0eb61bdf808d23266ecf1d63309f0e1471f284300ce6dac0ae1231881/greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942", size = 1163955 }, + { url = "https://files.pythonhosted.org/packages/43/21/a5d9df1d21514883333fc86584c07c2b49ba7c602e670b174bd73cfc9c7f/greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01", size = 299655 }, + { url = "https://files.pythonhosted.org/packages/f3/57/0db4940cd7bb461365ca8d6fd53e68254c9dbbcc2b452e69d0d41f10a85e/greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1", size = 272990 }, + { url = "https://files.pythonhosted.org/packages/1c/ec/423d113c9f74e5e402e175b157203e9102feeb7088cee844d735b28ef963/greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff", size = 649175 }, + { url = "https://files.pythonhosted.org/packages/a9/46/ddbd2db9ff209186b7b7c621d1432e2f21714adc988703dbdd0e65155c77/greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a", size = 663425 }, + { url = "https://files.pythonhosted.org/packages/bc/f9/9c82d6b2b04aa37e38e74f0c429aece5eeb02bab6e3b98e7db89b23d94c6/greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e", size = 657736 }, + { url = "https://files.pythonhosted.org/packages/d9/42/b87bc2a81e3a62c3de2b0d550bf91a86939442b7ff85abb94eec3fc0e6aa/greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4", size = 660347 }, + { url = "https://files.pythonhosted.org/packages/37/fa/71599c3fd06336cdc3eac52e6871cfebab4d9d70674a9a9e7a482c318e99/greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e", size = 615583 }, + { url = "https://files.pythonhosted.org/packages/4e/96/e9ef85de031703ee7a4483489b40cf307f93c1824a02e903106f2ea315fe/greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1", size = 1133039 }, + { url = "https://files.pythonhosted.org/packages/87/76/b2b6362accd69f2d1889db61a18c94bc743e961e3cab344c2effaa4b4a25/greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c", size = 1160716 }, + { url = "https://files.pythonhosted.org/packages/1f/1b/54336d876186920e185066d8c3024ad55f21d7cc3683c856127ddb7b13ce/greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761", size = 299490 }, + { url = "https://files.pythonhosted.org/packages/5f/17/bea55bf36990e1638a2af5ba10c1640273ef20f627962cf97107f1e5d637/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011", size = 643731 }, + { url = "https://files.pythonhosted.org/packages/78/d2/aa3d2157f9ab742a08e0fd8f77d4699f37c22adfbfeb0c610a186b5f75e0/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13", size = 649304 }, + { url = "https://files.pythonhosted.org/packages/f1/8e/d0aeffe69e53ccff5a28fa86f07ad1d2d2d6537a9506229431a2a02e2f15/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475", size = 646537 }, + { url = "https://files.pythonhosted.org/packages/05/79/e15408220bbb989469c8871062c97c6c9136770657ba779711b90870d867/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b", size = 642506 }, + { url = "https://files.pythonhosted.org/packages/18/87/470e01a940307796f1d25f8167b551a968540fbe0551c0ebb853cb527dd6/greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822", size = 602753 }, + { url = "https://files.pythonhosted.org/packages/e2/72/576815ba674eddc3c25028238f74d7b8068902b3968cbe456771b166455e/greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01", size = 1122731 }, + { url = "https://files.pythonhosted.org/packages/ac/38/08cc303ddddc4b3d7c628c3039a61a3aae36c241ed01393d00c2fd663473/greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6", size = 1142112 }, +] + +[[package]] +name = "gunicorn" +version = "23.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging", marker = "platform_system != 'Windows'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/34/72/9614c465dc206155d93eff0ca20d42e1e35afc533971379482de953521a4/gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec", size = 375031 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/7d/6dac2a6e1eba33ee43f318edbed4ff29151a49b5d37f080aad1e6469bca4/gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d", size = 85029 }, +] + +[[package]] +name = "identify" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/5f/05f0d167be94585d502b4adf8c7af31f1dc0b1c7e14f9938a88fdbbcf4a7/identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02", size = 99179 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/f5/09644a3ad803fae9eca8efa17e1f2aef380c7f0b02f7ec4e8d446e51d64a/identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd", size = 99049 }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, +] + +[[package]] +name = "importlib-metadata" +version = "8.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", size = 26514 }, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, +] + +[[package]] +name = "invoke" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/42/127e6d792884ab860defc3f4d80a8f9812e48ace584ffc5a346de58cdc6c/invoke-2.2.0.tar.gz", hash = "sha256:ee6cbb101af1a859c7fe84f2a264c059020b0cb7fe3535f9424300ab568f6bd5", size = 299835 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/66/7f8c48009c72d73bc6bbe6eb87ac838d6a526146f7dab14af671121eb379/invoke-2.2.0-py3-none-any.whl", hash = "sha256:6ea924cc53d4f78e3d98bc436b08069a03077e6f85ad1ddaa8a116d7dad15820", size = 160274 }, +] + +[[package]] +name = "ipykernel" +version = "6.29.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "platform_system == 'Darwin'" }, + { name = "comm" }, + { name = "debugpy" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "matplotlib-inline" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/5c/67594cb0c7055dc50814b21731c22a601101ea3b1b50a9a1b090e11f5d0f/ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215", size = 163367 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/5c/368ae6c01c7628438358e6d337c19b05425727fbb221d2a3c4303c372f42/ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5", size = 117173 }, +] + +[[package]] +name = "ipython" +version = "8.18.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/af/e1ff4d5499165e330413e0fb9811ca937c332d20900eae641cd590c0ab71/ipython-8.18.0.tar.gz", hash = "sha256:4feb61210160f75e229ce932dbf8b719bff37af123c0b985fd038b14233daa16", size = 5486388 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/57/ef12725f8af19920db1d8f2eaee44ebbaee6d9fdcf853be5db76bfdb9ce6/ipython-8.18.0-py3-none-any.whl", hash = "sha256:d538a7a98ad9b7e018926447a5f35856113a85d08fd68a165d7871ab5175f6e0", size = 808166 }, +] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234 }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278 }, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271 }, +] + +[[package]] +name = "joblib" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e", size = 2116621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817 }, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", size = 325778 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566", size = 88462 }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2024.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/10/db/58f950c996c793472e336ff3655b13fbcf1e3b359dcf52dcf3ed3b52c352/jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272", size = 15561 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/0f/8910b19ac0670a0f80ce1008e5e751c4a57e14d2c4c13a482aa6079fa9d6/jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf", size = 18459 }, +] + +[[package]] +name = "jupyter-client" +version = "8.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/22/bf9f12fdaeae18019a468b68952a60fe6dbab5d67cd2a103cac7659b41ca/jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", size = 342019 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/85/b0394e0b6fcccd2c1eeefc230978a6f8cb0c5df1e4cd3e7625735a0d7d1e/jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f", size = 106105 }, +] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/11/b56381fa6c3f4cc5d2cf54a7dbf98ad9aa0b339ef7a601d6053538b079a7/jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9", size = 87629 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/fb/108ecd1fe961941959ad0ee4e12ee7b8b1477247f30b1fdfd83ceaf017f0/jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409", size = 28965 }, +] + +[[package]] +name = "kiwisolver" +version = "1.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/4d/2255e1c76304cbd60b48cee302b66d1dde4468dc5b1160e4b7cb43778f2a/kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60", size = 97286 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/9c/0a11c714cf8b6ef91001c8212c4ef207f772dd84540104952c45c1f0a249/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2", size = 121808 }, + { url = "https://files.pythonhosted.org/packages/f2/d8/0fe8c5f5d35878ddd135f44f2af0e4e1d379e1c7b0716f97cdcb88d4fd27/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a", size = 65531 }, + { url = "https://files.pythonhosted.org/packages/80/c5/57fa58276dfdfa612241d640a64ca2f76adc6ffcebdbd135b4ef60095098/kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee", size = 63894 }, + { url = "https://files.pythonhosted.org/packages/8b/e9/26d3edd4c4ad1c5b891d8747a4f81b1b0aba9fb9721de6600a4adc09773b/kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640", size = 1369296 }, + { url = "https://files.pythonhosted.org/packages/b6/67/3f4850b5e6cffb75ec40577ddf54f7b82b15269cc5097ff2e968ee32ea7d/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f", size = 1461450 }, + { url = "https://files.pythonhosted.org/packages/52/be/86cbb9c9a315e98a8dc6b1d23c43cffd91d97d49318854f9c37b0e41cd68/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483", size = 1579168 }, + { url = "https://files.pythonhosted.org/packages/0f/00/65061acf64bd5fd34c1f4ae53f20b43b0a017a541f242a60b135b9d1e301/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258", size = 1507308 }, + { url = "https://files.pythonhosted.org/packages/21/e4/c0b6746fd2eb62fe702118b3ca0cb384ce95e1261cfada58ff693aeec08a/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e", size = 1464186 }, + { url = "https://files.pythonhosted.org/packages/0a/0f/529d0a9fffb4d514f2782c829b0b4b371f7f441d61aa55f1de1c614c4ef3/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107", size = 2247877 }, + { url = "https://files.pythonhosted.org/packages/d1/e1/66603ad779258843036d45adcbe1af0d1a889a07af4635f8b4ec7dccda35/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948", size = 2404204 }, + { url = "https://files.pythonhosted.org/packages/8d/61/de5fb1ca7ad1f9ab7970e340a5b833d735df24689047de6ae71ab9d8d0e7/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038", size = 2352461 }, + { url = "https://files.pythonhosted.org/packages/ba/d2/0edc00a852e369827f7e05fd008275f550353f1f9bcd55db9363d779fc63/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383", size = 2501358 }, + { url = "https://files.pythonhosted.org/packages/84/15/adc15a483506aec6986c01fb7f237c3aec4d9ed4ac10b756e98a76835933/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520", size = 2314119 }, + { url = "https://files.pythonhosted.org/packages/36/08/3a5bb2c53c89660863a5aa1ee236912269f2af8762af04a2e11df851d7b2/kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b", size = 46367 }, + { url = "https://files.pythonhosted.org/packages/19/93/c05f0a6d825c643779fc3c70876bff1ac221f0e31e6f701f0e9578690d70/kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb", size = 55884 }, + { url = "https://files.pythonhosted.org/packages/d2/f9/3828d8f21b6de4279f0667fb50a9f5215e6fe57d5ec0d61905914f5b6099/kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a", size = 48528 }, + { url = "https://files.pythonhosted.org/packages/c4/06/7da99b04259b0f18b557a4effd1b9c901a747f7fdd84cf834ccf520cb0b2/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e", size = 121913 }, + { url = "https://files.pythonhosted.org/packages/97/f5/b8a370d1aa593c17882af0a6f6755aaecd643640c0ed72dcfd2eafc388b9/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6", size = 65627 }, + { url = "https://files.pythonhosted.org/packages/2a/fc/6c0374f7503522539e2d4d1b497f5ebad3f8ed07ab51aed2af988dd0fb65/kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750", size = 63888 }, + { url = "https://files.pythonhosted.org/packages/bf/3e/0b7172793d0f41cae5c923492da89a2ffcd1adf764c16159ca047463ebd3/kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d", size = 1369145 }, + { url = "https://files.pythonhosted.org/packages/77/92/47d050d6f6aced2d634258123f2688fbfef8ded3c5baf2c79d94d91f1f58/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379", size = 1461448 }, + { url = "https://files.pythonhosted.org/packages/9c/1b/8f80b18e20b3b294546a1adb41701e79ae21915f4175f311a90d042301cf/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c", size = 1578750 }, + { url = "https://files.pythonhosted.org/packages/a4/fe/fe8e72f3be0a844f257cadd72689c0848c6d5c51bc1d60429e2d14ad776e/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34", size = 1507175 }, + { url = "https://files.pythonhosted.org/packages/39/fa/cdc0b6105d90eadc3bee525fecc9179e2b41e1ce0293caaf49cb631a6aaf/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1", size = 1463963 }, + { url = "https://files.pythonhosted.org/packages/6e/5c/0c03c4e542720c6177d4f408e56d1c8315899db72d46261a4e15b8b33a41/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f", size = 2248220 }, + { url = "https://files.pythonhosted.org/packages/3d/ee/55ef86d5a574f4e767df7da3a3a7ff4954c996e12d4fbe9c408170cd7dcc/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b", size = 2404463 }, + { url = "https://files.pythonhosted.org/packages/0f/6d/73ad36170b4bff4825dc588acf4f3e6319cb97cd1fb3eb04d9faa6b6f212/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27", size = 2352842 }, + { url = "https://files.pythonhosted.org/packages/0b/16/fa531ff9199d3b6473bb4d0f47416cdb08d556c03b8bc1cccf04e756b56d/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a", size = 2501635 }, + { url = "https://files.pythonhosted.org/packages/78/7e/aa9422e78419db0cbe75fb86d8e72b433818f2e62e2e394992d23d23a583/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee", size = 2314556 }, + { url = "https://files.pythonhosted.org/packages/a8/b2/15f7f556df0a6e5b3772a1e076a9d9f6c538ce5f05bd590eca8106508e06/kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07", size = 46364 }, + { url = "https://files.pythonhosted.org/packages/0b/db/32e897e43a330eee8e4770bfd2737a9584b23e33587a0812b8e20aac38f7/kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76", size = 55887 }, + { url = "https://files.pythonhosted.org/packages/c8/a4/df2bdca5270ca85fd25253049eb6708d4127be2ed0e5c2650217450b59e9/kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650", size = 48530 }, +] + +[[package]] +name = "llvmlite" +version = "0.43.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5", size = 157069 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/67/9443509e5d2b6d8587bae3ede5598fa8bd586b1c7701696663ea8af15b5b/llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7", size = 31064409 }, + { url = "https://files.pythonhosted.org/packages/a2/9c/24139d3712d2d352e300c39c0e00d167472c08b3bd350c3c33d72c88ff8d/llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7", size = 28793145 }, + { url = "https://files.pythonhosted.org/packages/bf/f1/4c205a48488e574ee9f6505d50e84370a978c90f08dab41a42d8f2c576b6/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f", size = 42857276 }, + { url = "https://files.pythonhosted.org/packages/00/5f/323c4d56e8401c50185fd0e875fcf06b71bf825a863699be1eb10aa2a9cb/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844", size = 43871781 }, + { url = "https://files.pythonhosted.org/packages/c6/94/dea10e263655ce78d777e78d904903faae39d1fc440762be4a9dc46bed49/llvmlite-0.43.0-cp312-cp312-win_amd64.whl", hash = "sha256:7a2872ee80dcf6b5dbdc838763d26554c2a18aa833d31a2635bff16aafefb9c9", size = 28107442 }, +] + +[[package]] +name = "loguru" +version = "0.7.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "win32-setctime", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/05/a1dae3dffd1116099471c643b8924f5aa6524411dc6c63fdae648c4f1aca/loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6", size = 63559 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595 }, +] + +[[package]] +name = "mako" +version = "1.3.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/d9/8518279534ed7dace1795d5a47e49d5299dd0994eed1053996402a8902f9/mako-1.3.8.tar.gz", hash = "sha256:577b97e414580d3e088d47c2dbbe9594aa7a5146ed2875d4dfa9075af2dd3cc8", size = 392069 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/bf/7a6a36ce2e4cafdfb202752be68850e22607fccd692847c45c1ae3c17ba6/Mako-1.3.8-py3-none-any.whl", hash = "sha256:42f48953c7eb91332040ff567eb7eea69b22e7a4affbc5ba8e845e8f730f6627", size = 78569 }, +] + +[[package]] +name = "markdown" +version = "3.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/28/3af612670f82f4c056911fbbbb42760255801b3068c48de792d354ff4472/markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", size = 357086 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349 }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, +] + +[[package]] +name = "matplotlib" +version = "3.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/68/dd/fa2e1a45fce2d09f4aea3cee169760e672c8262325aa5796c49d543dc7e6/matplotlib-3.10.0.tar.gz", hash = "sha256:b886d02a581b96704c9d1ffe55709e49b4d2d52709ccebc4be42db856e511278", size = 36686418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/c7/6b2d8cb7cc251d53c976799cacd3200add56351c175ba89ab9cbd7c1e68a/matplotlib-3.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4659665bc7c9b58f8c00317c3c2a299f7f258eeae5a5d56b4c64226fca2f7c59", size = 8172465 }, + { url = "https://files.pythonhosted.org/packages/42/2a/6d66d0fba41e13e9ca6512a0a51170f43e7e7ed3a8dfa036324100775612/matplotlib-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d44cb942af1693cced2604c33a9abcef6205601c445f6d0dc531d813af8a2f5a", size = 8043300 }, + { url = "https://files.pythonhosted.org/packages/90/60/2a60342b27b90a16bada939a85e29589902b41073f59668b904b15ea666c/matplotlib-3.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a994f29e968ca002b50982b27168addfd65f0105610b6be7fa515ca4b5307c95", size = 8448936 }, + { url = "https://files.pythonhosted.org/packages/a7/b2/d872fc3d753516870d520595ddd8ce4dd44fa797a240999f125f58521ad7/matplotlib-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b0558bae37f154fffda54d779a592bc97ca8b4701f1c710055b609a3bac44c8", size = 8594151 }, + { url = "https://files.pythonhosted.org/packages/f4/bd/b2f60cf7f57d014ab33e4f74602a2b5bdc657976db8196bbc022185f6f9c/matplotlib-3.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:503feb23bd8c8acc75541548a1d709c059b7184cde26314896e10a9f14df5f12", size = 9400347 }, + { url = "https://files.pythonhosted.org/packages/9f/6e/264673e64001b99d747aff5a288eca82826c024437a3694e19aed1decf46/matplotlib-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:c40ba2eb08b3f5de88152c2333c58cee7edcead0a2a0d60fcafa116b17117adc", size = 8039144 }, + { url = "https://files.pythonhosted.org/packages/72/11/1b2a094d95dcb6e6edd4a0b238177c439006c6b7a9fe8d31801237bf512f/matplotlib-3.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96f2886f5c1e466f21cc41b70c5a0cd47bfa0015eb2d5793c88ebce658600e25", size = 8173073 }, + { url = "https://files.pythonhosted.org/packages/0d/c4/87b6ad2723070511a411ea719f9c70fde64605423b184face4e94986de9d/matplotlib-3.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:12eaf48463b472c3c0f8dbacdbf906e573013df81a0ab82f0616ea4b11281908", size = 8043892 }, + { url = "https://files.pythonhosted.org/packages/57/69/cb0812a136550b21361335e9ffb7d459bf6d13e03cb7b015555d5143d2d6/matplotlib-3.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fbbabc82fde51391c4da5006f965e36d86d95f6ee83fb594b279564a4c5d0d2", size = 8450532 }, + { url = "https://files.pythonhosted.org/packages/ea/3a/bab9deb4fb199c05e9100f94d7f1c702f78d3241e6a71b784d2b88d7bebd/matplotlib-3.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad2e15300530c1a94c63cfa546e3b7864bd18ea2901317bae8bbf06a5ade6dcf", size = 8593905 }, + { url = "https://files.pythonhosted.org/packages/8b/66/742fd242f989adc1847ddf5f445815f73ad7c46aa3440690cc889cfa423c/matplotlib-3.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3547d153d70233a8496859097ef0312212e2689cdf8d7ed764441c77604095ae", size = 9399609 }, + { url = "https://files.pythonhosted.org/packages/fa/d6/54cee7142cef7d910a324a7aedf335c0c147b03658b54d49ec48166f10a6/matplotlib-3.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:c55b20591ced744aa04e8c3e4b7543ea4d650b6c3c4b208c08a05b4010e8b442", size = 8039076 }, + { url = "https://files.pythonhosted.org/packages/43/14/815d072dc36e88753433bfd0385113405efb947e6895ff7b4d2e8614a33b/matplotlib-3.10.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ade1003376731a971e398cc4ef38bb83ee8caf0aee46ac6daa4b0506db1fd06", size = 8211000 }, + { url = "https://files.pythonhosted.org/packages/9a/76/34e75f364194ec352678adcb540964be6f35ec7d3d8c75ebcb17e6839359/matplotlib-3.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95b710fea129c76d30be72c3b38f330269363fbc6e570a5dd43580487380b5ff", size = 8087707 }, + { url = "https://files.pythonhosted.org/packages/c3/2b/b6bc0dff6a72d333bc7df94a66e6ce662d224e43daa8ad8ae4eaa9a77f55/matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdbaf909887373c3e094b0318d7ff230b2ad9dcb64da7ade654182872ab2593", size = 8477384 }, + { url = "https://files.pythonhosted.org/packages/c2/2d/b5949fb2b76e9b47ab05e25a5f5f887c70de20d8b0cbc704a4e2ee71c786/matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d907fddb39f923d011875452ff1eca29a9e7f21722b873e90db32e5d8ddff12e", size = 8610334 }, + { url = "https://files.pythonhosted.org/packages/d6/9a/6e3c799d5134d9af44b01c787e1360bee38cf51850506ea2e743a787700b/matplotlib-3.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3b427392354d10975c1d0f4ee18aa5844640b512d5311ef32efd4dd7db106ede", size = 9406777 }, + { url = "https://files.pythonhosted.org/packages/0e/dd/e6ae97151e5ed648ab2ea48885bc33d39202b640eec7a2910e2c843f7ac0/matplotlib-3.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5fd41b0ec7ee45cd960a8e71aea7c946a28a0b8a4dcee47d2856b2af051f334c", size = 8109742 }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, +] + +[[package]] +name = "mlflow" +version = "2.19.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "alembic" }, + { name = "docker" }, + { name = "flask" }, + { name = "graphene" }, + { name = "gunicorn", marker = "platform_system != 'Windows'" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "matplotlib" }, + { name = "mlflow-skinny" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "pyarrow" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "sqlalchemy" }, + { name = "waitress", marker = "platform_system == 'Windows'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/76/f623312328a8b642fba8b9683e07904ee9f9c59b9e58528e9a9f5bbdcfea/mlflow-2.19.0.tar.gz", hash = "sha256:b860e9d2599a32460968a0a90efdf960b6a6237a08bff44cc5508830017cf70e", size = 26813362 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/39/e051e58f35077500fea62adb67c0ff32cab768a5bbc1e0d8c682e30d56ee/mlflow-2.19.0-py3-none-any.whl", hash = "sha256:875364a9c37d2e6e5b6256a3cee314e1e6ada0c253f46b6fcb37d986a2dc2514", size = 27397174 }, +] + +[[package]] +name = "mlflow-skinny" +version = "2.19.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools" }, + { name = "click" }, + { name = "cloudpickle" }, + { name = "databricks-sdk" }, + { name = "gitpython" }, + { name = "importlib-metadata" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-sdk" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sqlparse" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/93/69/53c19be8f05574b9955a2930d0c9b04403d5dd35afce05fbe664b5bfbbfc/mlflow_skinny-2.19.0.tar.gz", hash = "sha256:55a464082ecd48961f73f9a0a58b8d44bf2e77bd32632998f1dffd43ef48623c", size = 5503927 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/95/75f59715e39aa2224e5ecd8c52d5a305467e16a843ade2235a215599a1fa/mlflow_skinny-2.19.0-py3-none-any.whl", hash = "sha256:72c652545460db09dc5716241d2fcd9a211b7875444632fbe2d0b62a1f057694", size = 5854771 }, +] + +[[package]] +name = "multimethod" +version = "1.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/f3/930a6dc1d35b2ab65faffa2a75bbcc67f12d8227857188273783df4e5134/multimethod-1.12.tar.gz", hash = "sha256:8db8ef2a8d2a247e3570cc23317680892fdf903d84c8c1053667c8e8f7671a67", size = 17423 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/98/cff14d53a2f2f67d7fe8a4e235a383ee71aba6a1da12aeea24b325d0c72a/multimethod-1.12-py3-none-any.whl", hash = "sha256:fd0c473c43558908d97cc06e4d68e8f69202f167db46f7b4e4058893e7dbdf60", size = 10646 }, +] + +[[package]] +name = "mypy" +version = "1.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e8/21/7e9e523537991d145ab8a0a2fd98548d67646dc2aaaf6091c31ad883e7c1/mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e", size = 3152532 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/31/c526a7bd2e5c710ae47717c7a5f53f616db6d9097caf48ad650581e81748/mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5", size = 11077900 }, + { url = "https://files.pythonhosted.org/packages/83/67/b7419c6b503679d10bd26fc67529bc6a1f7a5f220bbb9f292dc10d33352f/mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e", size = 10074818 }, + { url = "https://files.pythonhosted.org/packages/ba/07/37d67048786ae84e6612575e173d713c9a05d0ae495dde1e68d972207d98/mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2", size = 12589275 }, + { url = "https://files.pythonhosted.org/packages/1f/17/b1018c6bb3e9f1ce3956722b3bf91bff86c1cefccca71cec05eae49d6d41/mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0", size = 13037783 }, + { url = "https://files.pythonhosted.org/packages/cb/32/cd540755579e54a88099aee0287086d996f5a24281a673f78a0e14dba150/mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2", size = 9726197 }, + { url = "https://files.pythonhosted.org/packages/11/bb/ab4cfdc562cad80418f077d8be9b4491ee4fb257440da951b85cbb0a639e/mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7", size = 11069721 }, + { url = "https://files.pythonhosted.org/packages/59/3b/a393b1607cb749ea2c621def5ba8c58308ff05e30d9dbdc7c15028bca111/mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62", size = 10063996 }, + { url = "https://files.pythonhosted.org/packages/d1/1f/6b76be289a5a521bb1caedc1f08e76ff17ab59061007f201a8a18cc514d1/mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8", size = 12584043 }, + { url = "https://files.pythonhosted.org/packages/a6/83/5a85c9a5976c6f96e3a5a7591aa28b4a6ca3a07e9e5ba0cec090c8b596d6/mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7", size = 13036996 }, + { url = "https://files.pythonhosted.org/packages/b4/59/c39a6f752f1f893fccbcf1bdd2aca67c79c842402b5283563d006a67cf76/mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc", size = 9737709 }, + { url = "https://files.pythonhosted.org/packages/3b/86/72ce7f57431d87a7ff17d442f521146a6585019eb8f4f31b7c02801f78ad/mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a", size = 2647043 }, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f/mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782", size = 4433 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", size = 4695 }, +] + +[[package]] +name = "nbformat" +version = "5.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastjsonschema" }, + { name = "jsonschema" }, + { name = "jupyter-core" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454 }, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195 }, +] + +[[package]] +name = "nodeenv" +version = "1.9.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314 }, +] + +[[package]] +name = "numba" +version = "0.60.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "llvmlite" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", size = 2702171 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/5c/b5ec752c475e78a6c3676b67c514220dbde2725896bbb0b6ec6ea54b2738/numba-0.60.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7da4098db31182fc5ffe4bc42c6f24cd7d1cb8a14b59fd755bfee32e34b8404", size = 2647866 }, + { url = "https://files.pythonhosted.org/packages/65/42/39559664b2e7c15689a638c2a38b3b74c6e69a04e2b3019b9f7742479188/numba-0.60.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38d6ea4c1f56417076ecf8fc327c831ae793282e0ff51080c5094cb726507b1c", size = 2650208 }, + { url = "https://files.pythonhosted.org/packages/67/88/c4459ccc05674ef02119abf2888ccd3e2fed12a323f52255f4982fc95876/numba-0.60.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:62908d29fb6a3229c242e981ca27e32a6e606cc253fc9e8faeb0e48760de241e", size = 3466946 }, + { url = "https://files.pythonhosted.org/packages/8b/41/ac11cf33524def12aa5bd698226ae196a1185831c05ed29dc0c56eaa308b/numba-0.60.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ebaa91538e996f708f1ab30ef4d3ddc344b64b5227b67a57aa74f401bb68b9d", size = 3761463 }, + { url = "https://files.pythonhosted.org/packages/ca/bd/0fe29fcd1b6a8de479a4ed25c6e56470e467e3611c079d55869ceef2b6d1/numba-0.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:f75262e8fe7fa96db1dca93d53a194a38c46da28b112b8a4aca168f0df860347", size = 2707588 }, +] + +[[package]] +name = "numpy" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/40/2e117be60ec50d98fa08c2f8c48e09b3edea93cfcabd5a9ff6925d54b1c2/numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", size = 20895803 }, + { url = "https://files.pythonhosted.org/packages/46/92/1b8b8dee833f53cef3e0a3f69b2374467789e0bb7399689582314df02651/numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", size = 13471835 }, + { url = "https://files.pythonhosted.org/packages/7f/19/e2793bde475f1edaea6945be141aef6c8b4c669b90c90a300a8954d08f0a/numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", size = 5038499 }, + { url = "https://files.pythonhosted.org/packages/e3/ff/ddf6dac2ff0dd50a7327bcdba45cb0264d0e96bb44d33324853f781a8f3c/numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", size = 6633497 }, + { url = "https://files.pythonhosted.org/packages/72/21/67f36eac8e2d2cd652a2e69595a54128297cdcb1ff3931cfc87838874bd4/numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", size = 13621158 }, + { url = "https://files.pythonhosted.org/packages/39/68/e9f1126d757653496dbc096cb429014347a36b228f5a991dae2c6b6cfd40/numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", size = 19236173 }, + { url = "https://files.pythonhosted.org/packages/d1/e9/1f5333281e4ebf483ba1c888b1d61ba7e78d7e910fdd8e6499667041cc35/numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", size = 19634174 }, + { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701 }, + { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313 }, + { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179 }, +] + +[[package]] +name = "nvidia-ml-py" +version = "12.560.30" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/10/5f34de4a71db8b2b7ec4269f4a33287f24c23e2857ea3187c977b7bc3604/nvidia-ml-py-12.560.30.tar.gz", hash = "sha256:f0254dc7400647680a072ee02509bfd46102b60bdfeca321576d4d4817e7fe97", size = 39194 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/f3/a69ce0b1a1e12fbf6b2ad9f4c14c9999fdbdf15f2478d210f0fd501ddc98/nvidia_ml_py-12.560.30-py3-none-any.whl", hash = "sha256:fea371c94d63e38a611c17bbb85fe400e9c8ddb9e8684a9cd0e47786a4bc3c73", size = 40526 }, +] + +[[package]] +name = "omegaconf" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "antlr4-python3-runtime" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/48/6388f1bb9da707110532cb70ec4d2822858ddfb44f1cdf1233c20a80ea4b/omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7", size = 3298120 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b", size = 79500 }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.29.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "deprecated" }, + { name = "importlib-metadata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/8e/b886a5e9861afa188d1fe671fb96ff9a1d90a23d57799331e137cc95d573/opentelemetry_api-1.29.0.tar.gz", hash = "sha256:d04a6cf78aad09614f52964ecb38021e248f5714dc32c2e0d8fd99517b4d69cf", size = 62900 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/53/5249ea860d417a26a3a6f1bdedfc0748c4f081a3adaec3d398bc0f7c6a71/opentelemetry_api-1.29.0-py3-none-any.whl", hash = "sha256:5fcd94c4141cc49c736271f3e1efb777bebe9cc535759c54c936cca4f1b312b8", size = 64304 }, +] + +[[package]] +name = "opentelemetry-sdk" +version = "1.29.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0c/5a/1ed4c3cf6c09f80565fc085f7e8efa0c222712fd2a9412d07424705dcf72/opentelemetry_sdk-1.29.0.tar.gz", hash = "sha256:b0787ce6aade6ab84315302e72bd7a7f2f014b0fb1b7c3295b88afe014ed0643", size = 157229 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/1d/512b86af21795fb463726665e2f61db77d384e8779fdcf4cb0ceec47866d/opentelemetry_sdk-1.29.0-py3-none-any.whl", hash = "sha256:173be3b5d3f8f7d671f20ea37056710217959e774e2749d984355d1f9391a30a", size = 118078 }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.50b0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "deprecated" }, + { name = "opentelemetry-api" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e7/4e/d7c7c91ff47cd96fe4095dd7231701aec7347426fd66872ff320d6cd1fcc/opentelemetry_semantic_conventions-0.50b0.tar.gz", hash = "sha256:02dc6dbcb62f082de9b877ff19a3f1ffaa3c306300fa53bfac761c4567c83d38", size = 100459 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/fb/dc15fad105450a015e913cfa4f5c27b6a5f1bea8fb649f8cae11e699c8af/opentelemetry_semantic_conventions-0.50b0-py3-none-any.whl", hash = "sha256:e87efba8fdb67fb38113efea6a349531e75ed7ffc01562f65b802fcecb5e115e", size = 166602 }, +] + +[[package]] +name = "packaging" +version = "24.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, +] + +[[package]] +name = "pandas" +version = "2.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/a3/fb2734118db0af37ea7433f57f722c0a56687e14b14690edff0cdb4b7e58/pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9", size = 12529893 }, + { url = "https://files.pythonhosted.org/packages/e1/0c/ad295fd74bfac85358fd579e271cded3ac969de81f62dd0142c426b9da91/pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4", size = 11363475 }, + { url = "https://files.pythonhosted.org/packages/c6/2a/4bba3f03f7d07207481fed47f5b35f556c7441acddc368ec43d6643c5777/pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3", size = 15188645 }, + { url = "https://files.pythonhosted.org/packages/38/f8/d8fddee9ed0d0c0f4a2132c1dfcf0e3e53265055da8df952a53e7eaf178c/pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319", size = 12739445 }, + { url = "https://files.pythonhosted.org/packages/20/e8/45a05d9c39d2cea61ab175dbe6a2de1d05b679e8de2011da4ee190d7e748/pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8", size = 16359235 }, + { url = "https://files.pythonhosted.org/packages/1d/99/617d07a6a5e429ff90c90da64d428516605a1ec7d7bea494235e1c3882de/pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a", size = 14056756 }, + { url = "https://files.pythonhosted.org/packages/29/d4/1244ab8edf173a10fd601f7e13b9566c1b525c4f365d6bee918e68381889/pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13", size = 11504248 }, + { url = "https://files.pythonhosted.org/packages/64/22/3b8f4e0ed70644e85cfdcd57454686b9057c6c38d2f74fe4b8bc2527214a/pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015", size = 12477643 }, + { url = "https://files.pythonhosted.org/packages/e4/93/b3f5d1838500e22c8d793625da672f3eec046b1a99257666c94446969282/pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28", size = 11281573 }, + { url = "https://files.pythonhosted.org/packages/f5/94/6c79b07f0e5aab1dcfa35a75f4817f5c4f677931d4234afcd75f0e6a66ca/pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0", size = 15196085 }, + { url = "https://files.pythonhosted.org/packages/e8/31/aa8da88ca0eadbabd0a639788a6da13bb2ff6edbbb9f29aa786450a30a91/pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24", size = 12711809 }, + { url = "https://files.pythonhosted.org/packages/ee/7c/c6dbdb0cb2a4344cacfb8de1c5808ca885b2e4dcfde8008266608f9372af/pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659", size = 16356316 }, + { url = "https://files.pythonhosted.org/packages/57/b7/8b757e7d92023b832869fa8881a992696a0bfe2e26f72c9ae9f255988d42/pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb", size = 14022055 }, + { url = "https://files.pythonhosted.org/packages/3b/bc/4b18e2b8c002572c5a441a64826252ce5da2aa738855747247a971988043/pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", size = 11481175 }, + { url = "https://files.pythonhosted.org/packages/76/a3/a5d88146815e972d40d19247b2c162e88213ef51c7c25993942c39dbf41d/pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468", size = 12615650 }, + { url = "https://files.pythonhosted.org/packages/9c/8c/f0fd18f6140ddafc0c24122c8a964e48294acc579d47def376fef12bcb4a/pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18", size = 11290177 }, + { url = "https://files.pythonhosted.org/packages/ed/f9/e995754eab9c0f14c6777401f7eece0943840b7a9fc932221c19d1abee9f/pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2", size = 14651526 }, + { url = "https://files.pythonhosted.org/packages/25/b0/98d6ae2e1abac4f35230aa756005e8654649d305df9a28b16b9ae4353bff/pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4", size = 11871013 }, + { url = "https://files.pythonhosted.org/packages/cc/57/0f72a10f9db6a4628744c8e8f0df4e6e21de01212c7c981d31e50ffc8328/pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d", size = 15711620 }, + { url = "https://files.pythonhosted.org/packages/ab/5f/b38085618b950b79d2d9164a711c52b10aefc0ae6833b96f626b7021b2ed/pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", size = 13098436 }, +] + +[[package]] +name = "pandas-stubs" +version = "2.2.3.241126" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "types-pytz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/90/86/93c545d149c3e1fe1c4c55478cc3a69859d0ea3467e1d9892e9eb28cb1e7/pandas_stubs-2.2.3.241126.tar.gz", hash = "sha256:cf819383c6d9ae7d4dabf34cd47e1e45525bb2f312e6ad2939c2c204cb708acd", size = 104204 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/ab/ed42acf15bab2e86e5c49fad4aa038315233c4c2d22f41b49faa4d837516/pandas_stubs-2.2.3.241126-py3-none-any.whl", hash = "sha256:74aa79c167af374fe97068acc90776c0ebec5266a6e5c69fe11e9c2cf51f2267", size = 158280 }, +] + +[[package]] +name = "pandera" +version = "0.21.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "multimethod" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pydantic" }, + { name = "typeguard" }, + { name = "typing-inspect" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/05/99a9470ff77b7caee59e32f18447068b832dcd6c6f4dbdf8afe4af18c098/pandera-0.21.1.tar.gz", hash = "sha256:3a40b643cd32d1fdd4142917ede1ae91b93a5f3469b01fcf70ffd1046964818c", size = 203482 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/1c/63fac4a86797b584132532cfab7295321103255930b96e516ab9101ffa90/pandera-0.21.1-py3-none-any.whl", hash = "sha256:cb6323952815ab82484bd8371f71d0b609a9cd0f515a7b91b2c076871b4db387", size = 261741 }, +] + +[package.optional-dependencies] +mypy = [ + { name = "pandas-stubs" }, +] + +[[package]] +name = "parso" +version = "0.8.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/94/68e2e17afaa9169cf6412ab0f28623903be73d1b32e208d9e8e541bb086d/parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d", size = 400609 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18", size = 103650 }, +] + +[[package]] +name = "pbr" +version = "6.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/35/80cf8f6a4f34017a7fe28242dc45161a1baa55c41563c354d8147e8358b2/pbr-6.1.0.tar.gz", hash = "sha256:788183e382e3d1d7707db08978239965e8b9e4e5ed42669bf4758186734d5f24", size = 124032 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/44/6a65ecd630393d47ad3e7d5354768cb7f9a10b3a0eb2cd8c6f52b28211ee/pbr-6.1.0-py2.py3-none-any.whl", hash = "sha256:a776ae228892d8013649c0aeccbb3d5f99ee15e005a4cbb7e61d55a067b28a2a", size = 108529 }, +] + +[[package]] +name = "pdoc" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "markupsafe" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/16/1b542af6f18a27de059f722c487a596681127897b6d31f78e46d6e5bf2fe/pdoc-15.0.1.tar.gz", hash = "sha256:3b08382c9d312243ee6c2a1813d0ff517a6ab84d596fa2c6c6b5255b17c3d666", size = 154174 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/4d/60d856a1b12fbf6ac1539efccfa138e57c6b88675c9867d84bbb46455cc1/pdoc-15.0.1-py3-none-any.whl", hash = "sha256:fd437ab8eb55f9b942226af7865a3801e2fb731665199b74fd9a44737dbe20f9", size = 144186 }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 }, +] + +[[package]] +name = "pillow" +version = "11.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/26/0d95c04c868f6bdb0c447e3ee2de5564411845e36a858cfd63766bc7b563/pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739", size = 46737780 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/a3/26e606ff0b2daaf120543e537311fa3ae2eb6bf061490e4fea51771540be/pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923", size = 3147642 }, + { url = "https://files.pythonhosted.org/packages/4f/d5/1caabedd8863526a6cfa44ee7a833bd97f945dc1d56824d6d76e11731939/pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903", size = 2978999 }, + { url = "https://files.pythonhosted.org/packages/d9/ff/5a45000826a1aa1ac6874b3ec5a856474821a1b59d838c4f6ce2ee518fe9/pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4", size = 4196794 }, + { url = "https://files.pythonhosted.org/packages/9d/21/84c9f287d17180f26263b5f5c8fb201de0f88b1afddf8a2597a5c9fe787f/pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f", size = 4300762 }, + { url = "https://files.pythonhosted.org/packages/84/39/63fb87cd07cc541438b448b1fed467c4d687ad18aa786a7f8e67b255d1aa/pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9", size = 4210468 }, + { url = "https://files.pythonhosted.org/packages/7f/42/6e0f2c2d5c60f499aa29be14f860dd4539de322cd8fb84ee01553493fb4d/pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7", size = 4381824 }, + { url = "https://files.pythonhosted.org/packages/31/69/1ef0fb9d2f8d2d114db982b78ca4eeb9db9a29f7477821e160b8c1253f67/pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6", size = 4296436 }, + { url = "https://files.pythonhosted.org/packages/44/ea/dad2818c675c44f6012289a7c4f46068c548768bc6c7f4e8c4ae5bbbc811/pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc", size = 4429714 }, + { url = "https://files.pythonhosted.org/packages/af/3a/da80224a6eb15bba7a0dcb2346e2b686bb9bf98378c0b4353cd88e62b171/pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6", size = 2249631 }, + { url = "https://files.pythonhosted.org/packages/57/97/73f756c338c1d86bb802ee88c3cab015ad7ce4b838f8a24f16b676b1ac7c/pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47", size = 2567533 }, + { url = "https://files.pythonhosted.org/packages/0b/30/2b61876e2722374558b871dfbfcbe4e406626d63f4f6ed92e9c8e24cac37/pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25", size = 2254890 }, + { url = "https://files.pythonhosted.org/packages/63/24/e2e15e392d00fcf4215907465d8ec2a2f23bcec1481a8ebe4ae760459995/pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699", size = 3147300 }, + { url = "https://files.pythonhosted.org/packages/43/72/92ad4afaa2afc233dc44184adff289c2e77e8cd916b3ddb72ac69495bda3/pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38", size = 2978742 }, + { url = "https://files.pythonhosted.org/packages/9e/da/c8d69c5bc85d72a8523fe862f05ababdc52c0a755cfe3d362656bb86552b/pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2", size = 4194349 }, + { url = "https://files.pythonhosted.org/packages/cd/e8/686d0caeed6b998351d57796496a70185376ed9c8ec7d99e1d19ad591fc6/pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2", size = 4298714 }, + { url = "https://files.pythonhosted.org/packages/ec/da/430015cec620d622f06854be67fd2f6721f52fc17fca8ac34b32e2d60739/pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527", size = 4208514 }, + { url = "https://files.pythonhosted.org/packages/44/ae/7e4f6662a9b1cb5f92b9cc9cab8321c381ffbee309210940e57432a4063a/pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa", size = 4380055 }, + { url = "https://files.pythonhosted.org/packages/74/d5/1a807779ac8a0eeed57f2b92a3c32ea1b696e6140c15bd42eaf908a261cd/pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f", size = 4296751 }, + { url = "https://files.pythonhosted.org/packages/38/8c/5fa3385163ee7080bc13026d59656267daaaaf3c728c233d530e2c2757c8/pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb", size = 4430378 }, + { url = "https://files.pythonhosted.org/packages/ca/1d/ad9c14811133977ff87035bf426875b93097fb50af747793f013979facdb/pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798", size = 2249588 }, + { url = "https://files.pythonhosted.org/packages/fb/01/3755ba287dac715e6afdb333cb1f6d69740a7475220b4637b5ce3d78cec2/pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de", size = 2567509 }, + { url = "https://files.pythonhosted.org/packages/c0/98/2c7d727079b6be1aba82d195767d35fcc2d32204c7a5820f822df5330152/pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84", size = 2254791 }, + { url = "https://files.pythonhosted.org/packages/eb/38/998b04cc6f474e78b563716b20eecf42a2fa16a84589d23c8898e64b0ffd/pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b", size = 3150854 }, + { url = "https://files.pythonhosted.org/packages/13/8e/be23a96292113c6cb26b2aa3c8b3681ec62b44ed5c2bd0b258bd59503d3c/pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003", size = 2982369 }, + { url = "https://files.pythonhosted.org/packages/97/8a/3db4eaabb7a2ae8203cd3a332a005e4aba00067fc514aaaf3e9721be31f1/pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2", size = 4333703 }, + { url = "https://files.pythonhosted.org/packages/28/ac/629ffc84ff67b9228fe87a97272ab125bbd4dc462745f35f192d37b822f1/pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a", size = 4412550 }, + { url = "https://files.pythonhosted.org/packages/d6/07/a505921d36bb2df6868806eaf56ef58699c16c388e378b0dcdb6e5b2fb36/pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8", size = 4461038 }, + { url = "https://files.pythonhosted.org/packages/d6/b9/fb620dd47fc7cc9678af8f8bd8c772034ca4977237049287e99dda360b66/pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8", size = 2253197 }, + { url = "https://files.pythonhosted.org/packages/df/86/25dde85c06c89d7fc5db17940f07aae0a56ac69aa9ccb5eb0f09798862a8/pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904", size = 2572169 }, + { url = "https://files.pythonhosted.org/packages/51/85/9c33f2517add612e17f3381aee7c4072779130c634921a756c97bc29fb49/pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3", size = 2256828 }, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439 }, +] + +[[package]] +name = "plotly" +version = "5.24.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, + { name = "tenacity" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/79/4f/428f6d959818d7425a94c190a6b26fbc58035cbef40bf249be0b62a9aedd/plotly-5.24.1.tar.gz", hash = "sha256:dbc8ac8339d248a4bcc36e08a5659bacfe1b079390b8953533f4eb22169b4bae", size = 9479398 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/ae/580600f441f6fc05218bd6c9d5794f4aef072a7d9093b291f1c50a9db8bc/plotly-5.24.1-py3-none-any.whl", hash = "sha256:f67073a1e637eb0dc3e46324d9d51e2fe76e9727c892dde64ddf1e1b51f29089", size = 19054220 }, +] + +[[package]] +name = "pluggy" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 }, +] + +[[package]] +name = "plyer" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/85/f61425aa9be1f9108eec1c13861c1e11c9a04eb786eb4832a8f7188317df/plyer-2.1.0.tar.gz", hash = "sha256:65b7dfb7e11e07af37a8487eb2aa69524276ef70dad500b07228ce64736baa61", size = 121371 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/89/a41c2643fc8eabeb84791acb9d0e4d139b1e4b53473cc4dae947b5fa33ed/plyer-2.1.0-py2.py3-none-any.whl", hash = "sha256:1b1772060df8b3045ed4f08231690ec8f7de30f5a004aa1724665a9074eed113", size = 142266 }, +] + +[[package]] +name = "pre-commit" +version = "4.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cfgv" }, + { name = "identify" }, + { name = "nodeenv" }, + { name = "pyyaml" }, + { name = "virtualenv" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/c8/e22c292035f1bac8b9f5237a2622305bc0304e776080b246f3df57c4ff9f/pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2", size = 191678 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/8f/496e10d51edd6671ebe0432e33ff800aa86775d2d147ce7d43389324a525/pre_commit-4.0.1-py2.py3-none-any.whl", hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878", size = 218713 }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.36" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/93/180be2342f89f16543ec4eb3f25083b5b84eba5378f68efff05409fb39a9/prompt_toolkit-3.0.36.tar.gz", hash = "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63", size = 423863 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/37/791f1a6edd13c61cac85282368aa68cb0f3f164440fdf60032f2cc6ca34e/prompt_toolkit-3.0.36-py3-none-any.whl", hash = "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305", size = 386414 }, +] + +[[package]] +name = "protobuf" +version = "5.29.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d2/4f/1639b7b1633d8fd55f216ba01e21bf2c43384ab25ef3ddb35d85a52033e8/protobuf-5.29.1.tar.gz", hash = "sha256:683be02ca21a6ffe80db6dd02c0b5b2892322c59ca57fd6c872d652cb80549cb", size = 424965 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/c7/28669b04691a376cf7d0617d612f126aa0fff763d57df0142f9bf474c5b8/protobuf-5.29.1-cp310-abi3-win32.whl", hash = "sha256:22c1f539024241ee545cbcb00ee160ad1877975690b16656ff87dde107b5f110", size = 422706 }, + { url = "https://files.pythonhosted.org/packages/e3/33/dc7a7712f457456b7e0b16420ab8ba1cc8686751d3f28392eb43d0029ab9/protobuf-5.29.1-cp310-abi3-win_amd64.whl", hash = "sha256:1fc55267f086dd4050d18ef839d7bd69300d0d08c2a53ca7df3920cc271a3c34", size = 434505 }, + { url = "https://files.pythonhosted.org/packages/e5/39/44239fb1c6ec557e1731d996a5de89a9eb1ada7a92491fcf9c5d714052ed/protobuf-5.29.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:d473655e29c0c4bbf8b69e9a8fb54645bc289dead6d753b952e7aa660254ae18", size = 417822 }, + { url = "https://files.pythonhosted.org/packages/fb/4a/ec56f101d38d4bef2959a9750209809242d86cf8b897db00f2f98bfa360e/protobuf-5.29.1-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:b5ba1d0e4c8a40ae0496d0e2ecfdbb82e1776928a205106d14ad6985a09ec155", size = 319572 }, + { url = "https://files.pythonhosted.org/packages/04/52/c97c58a33b3d6c89a8138788576d372a90a6556f354799971c6b4d16d871/protobuf-5.29.1-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:8ee1461b3af56145aca2800e6a3e2f928108c749ba8feccc6f5dd0062c410c0d", size = 319671 }, + { url = "https://files.pythonhosted.org/packages/3b/24/c8c49df8f6587719e1d400109b16c10c6902d0c9adddc8fff82840146f99/protobuf-5.29.1-py3-none-any.whl", hash = "sha256:32600ddb9c2a53dedc25b8581ea0f1fd8ea04956373c0c07577ce58d312522e0", size = 172547 }, +] + +[[package]] +name = "psutil" +version = "6.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/10/2a30b13c61e7cf937f4adf90710776b7918ed0a9c434e2c38224732af310/psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a", size = 508565 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/9e/8be43078a171381953cfee33c07c0d628594b5dbfc5157847b85022c2c1b/psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688", size = 247762 }, + { url = "https://files.pythonhosted.org/packages/1d/cb/313e80644ea407f04f6602a9e23096540d9dc1878755f3952ea8d3d104be/psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e", size = 248777 }, + { url = "https://files.pythonhosted.org/packages/65/8e/bcbe2025c587b5d703369b6a75b65d41d1367553da6e3f788aff91eaf5bd/psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38", size = 284259 }, + { url = "https://files.pythonhosted.org/packages/58/4d/8245e6f76a93c98aab285a43ea71ff1b171bcd90c9d238bf81f7021fb233/psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b", size = 287255 }, + { url = "https://files.pythonhosted.org/packages/27/c2/d034856ac47e3b3cdfa9720d0e113902e615f4190d5d1bdb8df4b2015fb2/psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a", size = 288804 }, + { url = "https://files.pythonhosted.org/packages/ea/55/5389ed243c878725feffc0d6a3bc5ef6764312b6fc7c081faaa2cfa7ef37/psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e", size = 250386 }, + { url = "https://files.pythonhosted.org/packages/11/91/87fa6f060e649b1e1a7b19a4f5869709fbf750b7c8c262ee776ec32f3028/psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be", size = 254228 }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993 }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842 }, +] + +[[package]] +name = "pyarrow" +version = "18.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/7b/640785a9062bb00314caa8a387abce547d2a420cf09bd6c715fe659ccffb/pyarrow-18.1.0.tar.gz", hash = "sha256:9386d3ca9c145b5539a1cfc75df07757dff870168c959b473a0bccbc3abc8c73", size = 1118671 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/50/12829e7111b932581e51dda51d5cb39207a056c30fe31ef43f14c63c4d7e/pyarrow-18.1.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f3a76670b263dc41d0ae877f09124ab96ce10e4e48f3e3e4257273cee61ad0d", size = 29514620 }, + { url = "https://files.pythonhosted.org/packages/d1/41/468c944eab157702e96abab3d07b48b8424927d4933541ab43788bb6964d/pyarrow-18.1.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:da31fbca07c435be88a0c321402c4e31a2ba61593ec7473630769de8346b54ee", size = 30856494 }, + { url = "https://files.pythonhosted.org/packages/68/f9/29fb659b390312a7345aeb858a9d9c157552a8852522f2c8bad437c29c0a/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:543ad8459bc438efc46d29a759e1079436290bd583141384c6f7a1068ed6f992", size = 39203624 }, + { url = "https://files.pythonhosted.org/packages/6e/f6/19360dae44200e35753c5c2889dc478154cd78e61b1f738514c9f131734d/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0743e503c55be0fdb5c08e7d44853da27f19dc854531c0570f9f394ec9671d54", size = 40139341 }, + { url = "https://files.pythonhosted.org/packages/bb/e6/9b3afbbcf10cc724312e824af94a2e993d8ace22994d823f5c35324cebf5/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d4b3d2a34780645bed6414e22dda55a92e0fcd1b8a637fba86800ad737057e33", size = 38618629 }, + { url = "https://files.pythonhosted.org/packages/3a/2e/3b99f8a3d9e0ccae0e961978a0d0089b25fb46ebbcfb5ebae3cca179a5b3/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c52f81aa6f6575058d8e2c782bf79d4f9fdc89887f16825ec3a66607a5dd8e30", size = 40078661 }, + { url = "https://files.pythonhosted.org/packages/76/52/f8da04195000099d394012b8d42c503d7041b79f778d854f410e5f05049a/pyarrow-18.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ad4892617e1a6c7a551cfc827e072a633eaff758fa09f21c4ee548c30bcaf99", size = 25092330 }, + { url = "https://files.pythonhosted.org/packages/cb/87/aa4d249732edef6ad88899399047d7e49311a55749d3c373007d034ee471/pyarrow-18.1.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:84e314d22231357d473eabec709d0ba285fa706a72377f9cc8e1cb3c8013813b", size = 29497406 }, + { url = "https://files.pythonhosted.org/packages/3c/c7/ed6adb46d93a3177540e228b5ca30d99fc8ea3b13bdb88b6f8b6467e2cb7/pyarrow-18.1.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:f591704ac05dfd0477bb8f8e0bd4b5dc52c1cadf50503858dce3a15db6e46ff2", size = 30835095 }, + { url = "https://files.pythonhosted.org/packages/41/d7/ed85001edfb96200ff606943cff71d64f91926ab42828676c0fc0db98963/pyarrow-18.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acb7564204d3c40babf93a05624fc6a8ec1ab1def295c363afc40b0c9e66c191", size = 39194527 }, + { url = "https://files.pythonhosted.org/packages/59/16/35e28eab126342fa391593415d79477e89582de411bb95232f28b131a769/pyarrow-18.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74de649d1d2ccb778f7c3afff6085bd5092aed4c23df9feeb45dd6b16f3811aa", size = 40131443 }, + { url = "https://files.pythonhosted.org/packages/0c/95/e855880614c8da20f4cd74fa85d7268c725cf0013dc754048593a38896a0/pyarrow-18.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:f96bd502cb11abb08efea6dab09c003305161cb6c9eafd432e35e76e7fa9b90c", size = 38608750 }, + { url = "https://files.pythonhosted.org/packages/54/9d/f253554b1457d4fdb3831b7bd5f8f00f1795585a606eabf6fec0a58a9c38/pyarrow-18.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:36ac22d7782554754a3b50201b607d553a8d71b78cdf03b33c1125be4b52397c", size = 40066690 }, + { url = "https://files.pythonhosted.org/packages/2f/58/8912a2563e6b8273e8aa7b605a345bba5a06204549826f6493065575ebc0/pyarrow-18.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:25dbacab8c5952df0ca6ca0af28f50d45bd31c1ff6fcf79e2d120b4a65ee7181", size = 25081054 }, + { url = "https://files.pythonhosted.org/packages/82/f9/d06ddc06cab1ada0c2f2fd205ac8c25c2701182de1b9c4bf7a0a44844431/pyarrow-18.1.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a276190309aba7bc9d5bd2933230458b3521a4317acfefe69a354f2fe59f2bc", size = 29525542 }, + { url = "https://files.pythonhosted.org/packages/ab/94/8917e3b961810587ecbdaa417f8ebac0abb25105ae667b7aa11c05876976/pyarrow-18.1.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:ad514dbfcffe30124ce655d72771ae070f30bf850b48bc4d9d3b25993ee0e386", size = 30829412 }, + { url = "https://files.pythonhosted.org/packages/5e/e3/3b16c3190f3d71d3b10f6758d2d5f7779ef008c4fd367cedab3ed178a9f7/pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aebc13a11ed3032d8dd6e7171eb6e86d40d67a5639d96c35142bd568b9299324", size = 39119106 }, + { url = "https://files.pythonhosted.org/packages/1d/d6/5d704b0d25c3c79532f8c0639f253ec2803b897100f64bcb3f53ced236e5/pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6cf5c05f3cee251d80e98726b5c7cc9f21bab9e9783673bac58e6dfab57ecc8", size = 40090940 }, + { url = "https://files.pythonhosted.org/packages/37/29/366bc7e588220d74ec00e497ac6710c2833c9176f0372fe0286929b2d64c/pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:11b676cd410cf162d3f6a70b43fb9e1e40affbc542a1e9ed3681895f2962d3d9", size = 38548177 }, + { url = "https://files.pythonhosted.org/packages/c8/11/fabf6ecabb1fe5b7d96889228ca2a9158c4c3bb732e3b8ee3f7f6d40b703/pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:b76130d835261b38f14fc41fdfb39ad8d672afb84c447126b84d5472244cfaba", size = 40043567 }, +] + +[[package]] +name = "pyasn1" +version = "0.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/e9/01f1a64245b89f039897cb0130016d79f77d52669aae6ee7b159a6c4c018/pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034", size = 145322 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629", size = 83135 }, +] + +[[package]] +name = "pyasn1-modules" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1d/67/6afbf0d507f73c32d21084a79946bfcfca5fbc62a72057e9c23797a737c9/pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c", size = 310028 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/89/bc88a6711935ba795a679ea6ebee07e128050d6382eaa35a0a47c8032bdc/pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd", size = 181537 }, +] + +[[package]] +name = "pycparser" +version = "2.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 }, +] + +[[package]] +name = "pydantic" +version = "2.10.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/0f/27908242621b14e649a84e62b133de45f84c255eecb350ab02979844a788/pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9", size = 786486 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/51/72c18c55cf2f46ff4f91ebcc8f75aa30f7305f3d726be3f4ebffb4ae972b/pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d", size = 456997 }, +] + +[[package]] +name = "pydantic-core" +version = "2.27.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/9f/7de1f19b6aea45aeb441838782d68352e71bfa98ee6fa048d5041991b33e/pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235", size = 412785 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/51/2e9b3788feb2aebff2aa9dfbf060ec739b38c05c46847601134cc1fed2ea/pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f", size = 1895239 }, + { url = "https://files.pythonhosted.org/packages/7b/9e/f8063952e4a7d0127f5d1181addef9377505dcce3be224263b25c4f0bfd9/pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02", size = 1805070 }, + { url = "https://files.pythonhosted.org/packages/2c/9d/e1d6c4561d262b52e41b17a7ef8301e2ba80b61e32e94520271029feb5d8/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c", size = 1828096 }, + { url = "https://files.pythonhosted.org/packages/be/65/80ff46de4266560baa4332ae3181fffc4488ea7d37282da1a62d10ab89a4/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac", size = 1857708 }, + { url = "https://files.pythonhosted.org/packages/d5/ca/3370074ad758b04d9562b12ecdb088597f4d9d13893a48a583fb47682cdf/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb", size = 2037751 }, + { url = "https://files.pythonhosted.org/packages/b1/e2/4ab72d93367194317b99d051947c071aef6e3eb95f7553eaa4208ecf9ba4/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529", size = 2733863 }, + { url = "https://files.pythonhosted.org/packages/8a/c6/8ae0831bf77f356bb73127ce5a95fe115b10f820ea480abbd72d3cc7ccf3/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35", size = 2161161 }, + { url = "https://files.pythonhosted.org/packages/f1/f4/b2fe73241da2429400fc27ddeaa43e35562f96cf5b67499b2de52b528cad/pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089", size = 1993294 }, + { url = "https://files.pythonhosted.org/packages/77/29/4bb008823a7f4cc05828198153f9753b3bd4c104d93b8e0b1bfe4e187540/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381", size = 2001468 }, + { url = "https://files.pythonhosted.org/packages/f2/a9/0eaceeba41b9fad851a4107e0cf999a34ae8f0d0d1f829e2574f3d8897b0/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb", size = 2091413 }, + { url = "https://files.pythonhosted.org/packages/d8/36/eb8697729725bc610fd73940f0d860d791dc2ad557faaefcbb3edbd2b349/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae", size = 2154735 }, + { url = "https://files.pythonhosted.org/packages/52/e5/4f0fbd5c5995cc70d3afed1b5c754055bb67908f55b5cb8000f7112749bf/pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c", size = 1833633 }, + { url = "https://files.pythonhosted.org/packages/ee/f2/c61486eee27cae5ac781305658779b4a6b45f9cc9d02c90cb21b940e82cc/pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16", size = 1986973 }, + { url = "https://files.pythonhosted.org/packages/df/a6/e3f12ff25f250b02f7c51be89a294689d175ac76e1096c32bf278f29ca1e/pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e", size = 1883215 }, + { url = "https://files.pythonhosted.org/packages/0f/d6/91cb99a3c59d7b072bded9959fbeab0a9613d5a4935773c0801f1764c156/pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073", size = 1895033 }, + { url = "https://files.pythonhosted.org/packages/07/42/d35033f81a28b27dedcade9e967e8a40981a765795c9ebae2045bcef05d3/pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08", size = 1807542 }, + { url = "https://files.pythonhosted.org/packages/41/c2/491b59e222ec7e72236e512108ecad532c7f4391a14e971c963f624f7569/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf", size = 1827854 }, + { url = "https://files.pythonhosted.org/packages/e3/f3/363652651779113189cefdbbb619b7b07b7a67ebb6840325117cc8cc3460/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737", size = 1857389 }, + { url = "https://files.pythonhosted.org/packages/5f/97/be804aed6b479af5a945daec7538d8bf358d668bdadde4c7888a2506bdfb/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2", size = 2037934 }, + { url = "https://files.pythonhosted.org/packages/42/01/295f0bd4abf58902917e342ddfe5f76cf66ffabfc57c2e23c7681a1a1197/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107", size = 2735176 }, + { url = "https://files.pythonhosted.org/packages/9d/a0/cd8e9c940ead89cc37812a1a9f310fef59ba2f0b22b4e417d84ab09fa970/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51", size = 2160720 }, + { url = "https://files.pythonhosted.org/packages/73/ae/9d0980e286627e0aeca4c352a60bd760331622c12d576e5ea4441ac7e15e/pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a", size = 1992972 }, + { url = "https://files.pythonhosted.org/packages/bf/ba/ae4480bc0292d54b85cfb954e9d6bd226982949f8316338677d56541b85f/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc", size = 2001477 }, + { url = "https://files.pythonhosted.org/packages/55/b7/e26adf48c2f943092ce54ae14c3c08d0d221ad34ce80b18a50de8ed2cba8/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960", size = 2091186 }, + { url = "https://files.pythonhosted.org/packages/ba/cc/8491fff5b608b3862eb36e7d29d36a1af1c945463ca4c5040bf46cc73f40/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23", size = 2154429 }, + { url = "https://files.pythonhosted.org/packages/78/d8/c080592d80edd3441ab7f88f865f51dae94a157fc64283c680e9f32cf6da/pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05", size = 1833713 }, + { url = "https://files.pythonhosted.org/packages/83/84/5ab82a9ee2538ac95a66e51f6838d6aba6e0a03a42aa185ad2fe404a4e8f/pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337", size = 1987897 }, + { url = "https://files.pythonhosted.org/packages/df/c3/b15fb833926d91d982fde29c0624c9f225da743c7af801dace0d4e187e71/pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5", size = 1882983 }, +] + +[[package]] +name = "pydantic-settings" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/41/19b62b99e7530cfa1d6ccd16199afd9289a12929bef1a03aa4382b22e683/pydantic_settings-2.7.0.tar.gz", hash = "sha256:ac4bfd4a36831a48dbf8b2d9325425b549a0a6f18cea118436d728eb4f1c4d66", size = 79743 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/00/57b4540deb5c3a39ba689bb519a4e03124b24ab8589e618be4aac2c769bd/pydantic_settings-2.7.0-py3-none-any.whl", hash = "sha256:e00c05d5fa6cbbb227c84bd7487c5c1065084119b750df7c8c1a554aed236eb5", size = 29549 }, +] + +[[package]] +name = "pygments" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 }, +] + +[[package]] +name = "pynvml" +version = "12.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-ml-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/6f/6b5880ed0239e85b9a39aed103b65b2ef81425beef9f45e5c035bf008330/pynvml-12.0.0.tar.gz", hash = "sha256:299ce2451a6a17e6822d6faee750103e25b415f06f59abb8db65d30f794166f5", size = 33636 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/df/f7cf07a65a96dd11d71f346f9c2863accdd4784da83af7181b067d556cbc/pynvml-12.0.0-py3-none-any.whl", hash = "sha256:fdff84b62a27dbe98e08e1a647eb77342bef1aebe0878bcd15e99a83fcbecb9e", size = 26560 }, +] + +[[package]] +name = "pyparsing" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/d5/e5aeee5387091148a19e1145f63606619cb5f20b83fccb63efae6474e7b2/pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c", size = 920984 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84", size = 106921 }, +] + +[[package]] +name = "pytest" +version = "8.3.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/35/30e0d83068951d90a01852cb1cef56e5d8a09d20c7f511634cc2f7e0372a/pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761", size = 1445919 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/92/76a1c94d3afee238333bc0a42b82935dd8f9cf8ce9e336ff87ee14d9e1cf/pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6", size = 343083 }, +] + +[[package]] +name = "pytest-cov" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/45/9b538de8cef30e17c7b45ef42f538a94889ed6a16f2387a6c89e73220651/pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0", size = 66945 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/3b/48e79f2cd6a61dbbd4807b4ed46cb564b4fd50a76166b1c4ea5c1d9e2371/pytest_cov-6.0.0-py3-none-any.whl", hash = "sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35", size = 22949 }, +] + +[[package]] +name = "pytest-mock" +version = "3.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/90/a955c3ab35ccd41ad4de556596fa86685bf4fc5ffcc62d22d856cfd4e29a/pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0", size = 32814 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/3b/b26f90f74e2986a82df6e7ac7e319b8ea7ccece1caec9f8ab6104dc70603/pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f", size = 9863 }, +] + +[[package]] +name = "pytest-xdist" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108 }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, +] + +[[package]] +name = "python-dotenv" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", size = 39115 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 }, +] + +[[package]] +name = "pytz" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 }, +] + +[[package]] +name = "pywin32" +version = "308" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/7c/d00d6bdd96de4344e06c4afbf218bc86b54436a94c01c71a8701f613aa56/pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897", size = 5939729 }, + { url = "https://files.pythonhosted.org/packages/21/27/0c8811fbc3ca188f93b5354e7c286eb91f80a53afa4e11007ef661afa746/pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47", size = 6543015 }, + { url = "https://files.pythonhosted.org/packages/9d/0f/d40f8373608caed2255781a3ad9a51d03a594a1248cd632d6a298daca693/pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091", size = 7976033 }, + { url = "https://files.pythonhosted.org/packages/a9/a4/aa562d8935e3df5e49c161b427a3a2efad2ed4e9cf81c3de636f1fdddfd0/pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed", size = 5938579 }, + { url = "https://files.pythonhosted.org/packages/c7/50/b0efb8bb66210da67a53ab95fd7a98826a97ee21f1d22949863e6d588b22/pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4", size = 6542056 }, + { url = "https://files.pythonhosted.org/packages/26/df/2b63e3e4f2df0224f8aaf6d131f54fe4e8c96400eb9df563e2aae2e1a1f9/pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd", size = 7974986 }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, +] + +[[package]] +name = "pyzmq" +version = "26.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/05/bed626b9f7bb2322cdbbf7b4bd8f54b1b617b0d2ab2d3547d6e39428a48e/pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f", size = 271975 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/2f/78a766c8913ad62b28581777ac4ede50c6d9f249d39c2963e279524a1bbe/pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9", size = 1343105 }, + { url = "https://files.pythonhosted.org/packages/b7/9c/4b1e2d3d4065be715e007fe063ec7885978fad285f87eae1436e6c3201f4/pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52", size = 1008365 }, + { url = "https://files.pythonhosted.org/packages/4f/ef/5a23ec689ff36d7625b38d121ef15abfc3631a9aecb417baf7a4245e4124/pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08", size = 665923 }, + { url = "https://files.pythonhosted.org/packages/ae/61/d436461a47437d63c6302c90724cf0981883ec57ceb6073873f32172d676/pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5", size = 903400 }, + { url = "https://files.pythonhosted.org/packages/47/42/fc6d35ecefe1739a819afaf6f8e686f7f02a4dd241c78972d316f403474c/pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae", size = 860034 }, + { url = "https://files.pythonhosted.org/packages/07/3b/44ea6266a6761e9eefaa37d98fabefa112328808ac41aa87b4bbb668af30/pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711", size = 860579 }, + { url = "https://files.pythonhosted.org/packages/38/6f/4df2014ab553a6052b0e551b37da55166991510f9e1002c89cab7ce3b3f2/pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6", size = 1196246 }, + { url = "https://files.pythonhosted.org/packages/38/9d/ee240fc0c9fe9817f0c9127a43238a3e28048795483c403cc10720ddef22/pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3", size = 1507441 }, + { url = "https://files.pythonhosted.org/packages/85/4f/01711edaa58d535eac4a26c294c617c9a01f09857c0ce191fd574d06f359/pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b", size = 1406498 }, + { url = "https://files.pythonhosted.org/packages/07/18/907134c85c7152f679ed744e73e645b365f3ad571f38bdb62e36f347699a/pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7", size = 575533 }, + { url = "https://files.pythonhosted.org/packages/ce/2c/a6f4a20202a4d3c582ad93f95ee78d79bbdc26803495aec2912b17dbbb6c/pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a", size = 637768 }, + { url = "https://files.pythonhosted.org/packages/5f/0e/eb16ff731632d30554bf5af4dbba3ffcd04518219d82028aea4ae1b02ca5/pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b", size = 540675 }, + { url = "https://files.pythonhosted.org/packages/04/a7/0f7e2f6c126fe6e62dbae0bc93b1bd3f1099cf7fea47a5468defebe3f39d/pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726", size = 1006564 }, + { url = "https://files.pythonhosted.org/packages/31/b6/a187165c852c5d49f826a690857684333a6a4a065af0a6015572d2284f6a/pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3", size = 1340447 }, + { url = "https://files.pythonhosted.org/packages/68/ba/f4280c58ff71f321602a6e24fd19879b7e79793fb8ab14027027c0fb58ef/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50", size = 665485 }, + { url = "https://files.pythonhosted.org/packages/77/b5/c987a5c53c7d8704216f29fc3d810b32f156bcea488a940e330e1bcbb88d/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb", size = 903484 }, + { url = "https://files.pythonhosted.org/packages/29/c9/07da157d2db18c72a7eccef8e684cefc155b712a88e3d479d930aa9eceba/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187", size = 859981 }, + { url = "https://files.pythonhosted.org/packages/43/09/e12501bd0b8394b7d02c41efd35c537a1988da67fc9c745cae9c6c776d31/pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b", size = 860334 }, + { url = "https://files.pythonhosted.org/packages/eb/ff/f5ec1d455f8f7385cc0a8b2acd8c807d7fade875c14c44b85c1bddabae21/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18", size = 1196179 }, + { url = "https://files.pythonhosted.org/packages/ec/8a/bb2ac43295b1950fe436a81fc5b298be0b96ac76fb029b514d3ed58f7b27/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115", size = 1507668 }, + { url = "https://files.pythonhosted.org/packages/a9/49/dbc284ebcfd2dca23f6349227ff1616a7ee2c4a35fe0a5d6c3deff2b4fed/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e", size = 1406539 }, + { url = "https://files.pythonhosted.org/packages/00/68/093cdce3fe31e30a341d8e52a1ad86392e13c57970d722c1f62a1d1a54b6/pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5", size = 575567 }, + { url = "https://files.pythonhosted.org/packages/92/ae/6cc4657148143412b5819b05e362ae7dd09fb9fe76e2a539dcff3d0386bc/pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad", size = 637551 }, + { url = "https://files.pythonhosted.org/packages/6c/67/fbff102e201688f97c8092e4c3445d1c1068c2f27bbd45a578df97ed5f94/pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797", size = 540378 }, + { url = "https://files.pythonhosted.org/packages/3f/fe/2d998380b6e0122c6c4bdf9b6caf490831e5f5e2d08a203b5adff060c226/pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a", size = 1007378 }, + { url = "https://files.pythonhosted.org/packages/4a/f4/30d6e7157f12b3a0390bde94d6a8567cdb88846ed068a6e17238a4ccf600/pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc", size = 1329532 }, + { url = "https://files.pythonhosted.org/packages/82/86/3fe917870e15ee1c3ad48229a2a64458e36036e64b4afa9659045d82bfa8/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5", size = 653242 }, + { url = "https://files.pythonhosted.org/packages/50/2d/242e7e6ef6c8c19e6cb52d095834508cd581ffb925699fd3c640cdc758f1/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672", size = 888404 }, + { url = "https://files.pythonhosted.org/packages/ac/11/7270566e1f31e4ea73c81ec821a4b1688fd551009a3d2bab11ec66cb1e8f/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797", size = 845858 }, + { url = "https://files.pythonhosted.org/packages/91/d5/72b38fbc69867795c8711bdd735312f9fef1e3d9204e2f63ab57085434b9/pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386", size = 847375 }, + { url = "https://files.pythonhosted.org/packages/dd/9a/10ed3c7f72b4c24e719c59359fbadd1a27556a28b36cdf1cd9e4fb7845d5/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306", size = 1183489 }, + { url = "https://files.pythonhosted.org/packages/72/2d/8660892543fabf1fe41861efa222455811adac9f3c0818d6c3170a1153e3/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6", size = 1492932 }, + { url = "https://files.pythonhosted.org/packages/7b/d6/32fd69744afb53995619bc5effa2a405ae0d343cd3e747d0fbc43fe894ee/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0", size = 1392485 }, +] + +[[package]] +name = "questionary" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "prompt-toolkit" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/d0/d73525aeba800df7030ac187d09c59dc40df1c878b4fab8669bdc805535d/questionary-2.0.1.tar.gz", hash = "sha256:bcce898bf3dbb446ff62830c86c5c6fb9a22a54146f0f5597d3da43b10d8fc8b", size = 24726 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/e7/2dd8f59d1d328773505f78b85405ddb1cfe74126425d076ce72e65540b8b/questionary-2.0.1-py3-none-any.whl", hash = "sha256:8ab9a01d0b91b68444dff7f6652c1e754105533f083cbe27597c8110ecc230a2", size = 34248 }, +] + +[[package]] +name = "referencing" +version = "0.35.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/73ca1f8e72fff6fa52119dbd185f73a907b1989428917b24cff660129b6d/referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c", size = 62991 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de", size = 26684 }, +] + +[[package]] +name = "requests" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, +] + +[[package]] +name = "rich" +version = "13.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, +] + +[[package]] +name = "rpds-py" +version = "0.22.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/80/cce854d0921ff2f0a9fa831ba3ad3c65cee3a46711addf39a2af52df2cfd/rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d", size = 26771 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/47/3383ee3bd787a2a5e65a9b9edc37ccf8505c0a00170e3a5e6ea5fbcd97f7/rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e", size = 352334 }, + { url = "https://files.pythonhosted.org/packages/40/14/aa6400fa8158b90a5a250a77f2077c0d0cd8a76fce31d9f2b289f04c6dec/rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56", size = 342111 }, + { url = "https://files.pythonhosted.org/packages/7d/06/395a13bfaa8a28b302fb433fb285a67ce0ea2004959a027aea8f9c52bad4/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45", size = 384286 }, + { url = "https://files.pythonhosted.org/packages/43/52/d8eeaffab047e6b7b7ef7f00d5ead074a07973968ffa2d5820fa131d7852/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e", size = 391739 }, + { url = "https://files.pythonhosted.org/packages/83/31/52dc4bde85c60b63719610ed6f6d61877effdb5113a72007679b786377b8/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d", size = 427306 }, + { url = "https://files.pythonhosted.org/packages/70/d5/1bab8e389c2261dba1764e9e793ed6830a63f830fdbec581a242c7c46bda/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38", size = 442717 }, + { url = "https://files.pythonhosted.org/packages/82/a1/a45f3e30835b553379b3a56ea6c4eb622cf11e72008229af840e4596a8ea/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15", size = 385721 }, + { url = "https://files.pythonhosted.org/packages/a6/27/780c942de3120bdd4d0e69583f9c96e179dfff082f6ecbb46b8d6488841f/rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059", size = 415824 }, + { url = "https://files.pythonhosted.org/packages/94/0b/aa0542ca88ad20ea719b06520f925bae348ea5c1fdf201b7e7202d20871d/rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e", size = 561227 }, + { url = "https://files.pythonhosted.org/packages/0d/92/3ed77d215f82c8f844d7f98929d56cc321bb0bcfaf8f166559b8ec56e5f1/rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61", size = 587424 }, + { url = "https://files.pythonhosted.org/packages/09/42/cacaeb047a22cab6241f107644f230e2935d4efecf6488859a7dd82fc47d/rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7", size = 555953 }, + { url = "https://files.pythonhosted.org/packages/e6/52/c921dc6d5f5d45b212a456c1f5b17df1a471127e8037eb0972379e39dff4/rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627", size = 221339 }, + { url = "https://files.pythonhosted.org/packages/f2/c7/f82b5be1e8456600395366f86104d1bd8d0faed3802ad511ef6d60c30d98/rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4", size = 235786 }, + { url = "https://files.pythonhosted.org/packages/d0/bf/36d5cc1f2c609ae6e8bf0fc35949355ca9d8790eceb66e6385680c951e60/rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84", size = 351657 }, + { url = "https://files.pythonhosted.org/packages/24/2a/f1e0fa124e300c26ea9382e59b2d582cba71cedd340f32d1447f4f29fa4e/rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25", size = 341829 }, + { url = "https://files.pythonhosted.org/packages/cf/c2/0da1231dd16953845bed60d1a586fcd6b15ceaeb965f4d35cdc71f70f606/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4", size = 384220 }, + { url = "https://files.pythonhosted.org/packages/c7/73/a4407f4e3a00a9d4b68c532bf2d873d6b562854a8eaff8faa6133b3588ec/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5", size = 391009 }, + { url = "https://files.pythonhosted.org/packages/a9/c3/04b7353477ab360fe2563f5f0b176d2105982f97cd9ae80a9c5a18f1ae0f/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc", size = 426989 }, + { url = "https://files.pythonhosted.org/packages/8d/e6/e4b85b722bcf11398e17d59c0f6049d19cd606d35363221951e6d625fcb0/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b", size = 441544 }, + { url = "https://files.pythonhosted.org/packages/27/fc/403e65e56f65fff25f2973216974976d3f0a5c3f30e53758589b6dc9b79b/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518", size = 385179 }, + { url = "https://files.pythonhosted.org/packages/57/9b/2be9ff9700d664d51fd96b33d6595791c496d2778cb0b2a634f048437a55/rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd", size = 415103 }, + { url = "https://files.pythonhosted.org/packages/bb/a5/03c2ad8ca10994fcf22dd2150dd1d653bc974fa82d9a590494c84c10c641/rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2", size = 560916 }, + { url = "https://files.pythonhosted.org/packages/ba/2e/be4fdfc8b5b576e588782b56978c5b702c5a2307024120d8aeec1ab818f0/rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16", size = 587062 }, + { url = "https://files.pythonhosted.org/packages/67/e0/2034c221937709bf9c542603d25ad43a68b4b0a9a0c0b06a742f2756eb66/rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f", size = 555734 }, + { url = "https://files.pythonhosted.org/packages/ea/ce/240bae07b5401a22482b58e18cfbabaa392409b2797da60223cca10d7367/rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de", size = 220663 }, + { url = "https://files.pythonhosted.org/packages/cb/f0/d330d08f51126330467edae2fa4efa5cec8923c87551a79299380fdea30d/rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9", size = 235503 }, + { url = "https://files.pythonhosted.org/packages/f7/c4/dbe1cc03df013bf2feb5ad00615038050e7859f381e96fb5b7b4572cd814/rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b", size = 347698 }, + { url = "https://files.pythonhosted.org/packages/a4/3a/684f66dd6b0f37499cad24cd1c0e523541fd768576fa5ce2d0a8799c3cba/rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b", size = 337330 }, + { url = "https://files.pythonhosted.org/packages/82/eb/e022c08c2ce2e8f7683baa313476492c0e2c1ca97227fe8a75d9f0181e95/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1", size = 380022 }, + { url = "https://files.pythonhosted.org/packages/e4/21/5a80e653e4c86aeb28eb4fea4add1f72e1787a3299687a9187105c3ee966/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83", size = 390754 }, + { url = "https://files.pythonhosted.org/packages/37/a4/d320a04ae90f72d080b3d74597074e62be0a8ecad7d7321312dfe2dc5a6a/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd", size = 423840 }, + { url = "https://files.pythonhosted.org/packages/87/70/674dc47d93db30a6624279284e5631be4c3a12a0340e8e4f349153546728/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1", size = 438970 }, + { url = "https://files.pythonhosted.org/packages/3f/64/9500f4d66601d55cadd21e90784cfd5d5f4560e129d72e4339823129171c/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3", size = 383146 }, + { url = "https://files.pythonhosted.org/packages/4d/45/630327addb1d17173adcf4af01336fd0ee030c04798027dfcb50106001e0/rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130", size = 408294 }, + { url = "https://files.pythonhosted.org/packages/5f/ef/8efb3373cee54ea9d9980b772e5690a0c9e9214045a4e7fa35046e399fee/rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c", size = 556345 }, + { url = "https://files.pythonhosted.org/packages/54/01/151d3b9ef4925fc8f15bfb131086c12ec3c3d6dd4a4f7589c335bf8e85ba/rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b", size = 582292 }, + { url = "https://files.pythonhosted.org/packages/30/89/35fc7a6cdf3477d441c7aca5e9bbf5a14e0f25152aed7f63f4e0b141045d/rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333", size = 553855 }, + { url = "https://files.pythonhosted.org/packages/8f/e0/830c02b2457c4bd20a8c5bb394d31d81f57fbefce2dbdd2e31feff4f7003/rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730", size = 219100 }, + { url = "https://files.pythonhosted.org/packages/f8/30/7ac943f69855c2db77407ae363484b915d861702dbba1aa82d68d57f42be/rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf", size = 233794 }, +] + +[[package]] +name = "rsa" +version = "4.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/aa/65/7d973b89c4d2351d7fb232c2e452547ddfa243e93131e7cfa766da627b52/rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21", size = 29711 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", size = 34315 }, +] + +[[package]] +name = "ruff" +version = "0.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/5e/683c7ef7a696923223e7d95ca06755d6e2acbc5fd8382b2912a28008137c/ruff-0.8.3.tar.gz", hash = "sha256:5e7558304353b84279042fc584a4f4cb8a07ae79b2bf3da1a7551d960b5626d3", size = 3378522 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/c4/bfdbb8b9c419ff3b52479af8581026eeaac3764946fdb463dec043441b7d/ruff-0.8.3-py3-none-linux_armv6l.whl", hash = "sha256:8d5d273ffffff0acd3db5bf626d4b131aa5a5ada1276126231c4174543ce20d6", size = 10535860 }, + { url = "https://files.pythonhosted.org/packages/ef/c5/0aabdc9314b4b6f051168ac45227e2aa8e1c6d82718a547455e40c9c9faa/ruff-0.8.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e4d66a21de39f15c9757d00c50c8cdd20ac84f55684ca56def7891a025d7e939", size = 10346327 }, + { url = "https://files.pythonhosted.org/packages/1a/78/4843a59e7e7b398d6019cf91ab06502fd95397b99b2b858798fbab9151f5/ruff-0.8.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c356e770811858bd20832af696ff6c7e884701115094f427b64b25093d6d932d", size = 9942585 }, + { url = "https://files.pythonhosted.org/packages/91/5a/642ed8f1ba23ffc2dd347697e01eef3c42fad6ac76603be4a8c3a9d6311e/ruff-0.8.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c0a60a825e3e177116c84009d5ebaa90cf40dfab56e1358d1df4e29a9a14b13", size = 10797597 }, + { url = "https://files.pythonhosted.org/packages/30/25/2e654bc7226da09a49730a1a2ea6e89f843b362db80b4b2a7a4f948ac986/ruff-0.8.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:75fb782f4db39501210ac093c79c3de581d306624575eddd7e4e13747e61ba18", size = 10307244 }, + { url = "https://files.pythonhosted.org/packages/c0/2d/a224d56bcd4383583db53c2b8f410ebf1200866984aa6eb9b5a70f04e71f/ruff-0.8.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f26bc76a133ecb09a38b7868737eded6941b70a6d34ef53a4027e83913b6502", size = 11362439 }, + { url = "https://files.pythonhosted.org/packages/82/01/03e2857f9c371b8767d3e909f06a33bbdac880df17f17f93d6f6951c3381/ruff-0.8.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:01b14b2f72a37390c1b13477c1c02d53184f728be2f3ffc3ace5b44e9e87b90d", size = 12078538 }, + { url = "https://files.pythonhosted.org/packages/af/ae/ff7f97b355da16d748ceec50e1604a8215d3659b36b38025a922e0612e9b/ruff-0.8.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:53babd6e63e31f4e96ec95ea0d962298f9f0d9cc5990a1bbb023a6baf2503a82", size = 11616172 }, + { url = "https://files.pythonhosted.org/packages/6a/d0/6156d4d1e53ebd17747049afe801c5d7e3014d9b2f398b9236fe36ba4320/ruff-0.8.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ae441ce4cf925b7f363d33cd6570c51435972d697e3e58928973994e56e1452", size = 12919886 }, + { url = "https://files.pythonhosted.org/packages/4e/84/affcb30bacb94f6036a128ad5de0e29f543d3f67ee42b490b17d68e44b8a/ruff-0.8.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7c65bc0cadce32255e93c57d57ecc2cca23149edd52714c0c5d6fa11ec328cd", size = 11212599 }, + { url = "https://files.pythonhosted.org/packages/60/b9/5694716bdefd8f73df7c0104334156c38fb0f77673d2966a5a1345bab94d/ruff-0.8.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5be450bb18f23f0edc5a4e5585c17a56ba88920d598f04a06bd9fd76d324cb20", size = 10784637 }, + { url = "https://files.pythonhosted.org/packages/24/7e/0e8f835103ac7da81c3663eedf79dec8359e9ae9a3b0d704bae50be59176/ruff-0.8.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8faeae3827eaa77f5721f09b9472a18c749139c891dbc17f45e72d8f2ca1f8fc", size = 10390591 }, + { url = "https://files.pythonhosted.org/packages/27/da/180ec771fc01c004045962ce017ca419a0281f4bfaf867ed0020f555b56e/ruff-0.8.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:db503486e1cf074b9808403991663e4277f5c664d3fe237ee0d994d1305bb060", size = 10894298 }, + { url = "https://files.pythonhosted.org/packages/6d/f8/29f241742ed3954eb2222314b02db29f531a15cab3238d1295e8657c5f18/ruff-0.8.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6567be9fb62fbd7a099209257fef4ad2c3153b60579818b31a23c886ed4147ea", size = 11275965 }, + { url = "https://files.pythonhosted.org/packages/79/e9/5b81dc9afc8a80884405b230b9429efeef76d04caead904bd213f453b973/ruff-0.8.3-py3-none-win32.whl", hash = "sha256:19048f2f878f3ee4583fc6cb23fb636e48c2635e30fb2022b3a1cd293402f964", size = 8807651 }, + { url = "https://files.pythonhosted.org/packages/ea/67/7291461066007617b59a707887b90e319b6a043c79b4d19979f86b7a20e7/ruff-0.8.3-py3-none-win_amd64.whl", hash = "sha256:f7df94f57d7418fa7c3ffb650757e0c2b96cf2501a0b192c18e4fb5571dfada9", size = 9625289 }, + { url = "https://files.pythonhosted.org/packages/03/8f/e4fa95288b81233356d9a9dcaed057e5b0adc6399aa8fd0f6d784041c9c3/ruff-0.8.3-py3-none-win_arm64.whl", hash = "sha256:fe2756edf68ea79707c8d68b78ca9a58ed9af22e430430491ee03e718b5e4936", size = 9078754 }, +] + +[[package]] +name = "scikit-learn" +version = "1.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/37/59/44985a2bdc95c74e34fef3d10cb5d93ce13b0e2a7baefffe1b53853b502d/scikit_learn-1.5.2.tar.gz", hash = "sha256:b4237ed7b3fdd0a4882792e68ef2545d5baa50aca3bb45aa7df468138ad8f94d", size = 7001680 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/db/b485c1ac54ff3bd9e7e6b39d3cc6609c4c76a65f52ab0a7b22b6c3ab0e9d/scikit_learn-1.5.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f932a02c3f4956dfb981391ab24bda1dbd90fe3d628e4b42caef3e041c67707a", size = 12110344 }, + { url = "https://files.pythonhosted.org/packages/54/1a/7deb52fa23aebb855431ad659b3c6a2e1709ece582cb3a63d66905e735fe/scikit_learn-1.5.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:3b923d119d65b7bd555c73be5423bf06c0105678ce7e1f558cb4b40b0a5502b1", size = 11033502 }, + { url = "https://files.pythonhosted.org/packages/a1/32/4a7a205b14c11225609b75b28402c196e4396ac754dab6a81971b811781c/scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f60021ec1574e56632be2a36b946f8143bf4e5e6af4a06d85281adc22938e0dd", size = 12085794 }, + { url = "https://files.pythonhosted.org/packages/c6/29/044048c5e911373827c0e1d3051321b9183b2a4f8d4e2f11c08fcff83f13/scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:394397841449853c2290a32050382edaec3da89e35b3e03d6cc966aebc6a8ae6", size = 12945797 }, + { url = "https://files.pythonhosted.org/packages/aa/ce/c0b912f2f31aeb1b756a6ba56bcd84dd1f8a148470526a48515a3f4d48cd/scikit_learn-1.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:57cc1786cfd6bd118220a92ede80270132aa353647684efa385a74244a41e3b1", size = 10985467 }, + { url = "https://files.pythonhosted.org/packages/a4/50/8891028437858cc510e13578fe7046574a60c2aaaa92b02d64aac5b1b412/scikit_learn-1.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9a702e2de732bbb20d3bad29ebd77fc05a6b427dc49964300340e4c9328b3f5", size = 12025584 }, + { url = "https://files.pythonhosted.org/packages/d2/79/17feef8a1c14149436083bec0e61d7befb4812e272d5b20f9d79ea3e9ab1/scikit_learn-1.5.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:b0768ad641981f5d3a198430a1d31c3e044ed2e8a6f22166b4d546a5116d7908", size = 10959795 }, + { url = "https://files.pythonhosted.org/packages/b1/c8/f08313f9e2e656bd0905930ae8bf99a573ea21c34666a813b749c338202f/scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:178ddd0a5cb0044464fc1bfc4cca5b1833bfc7bb022d70b05db8530da4bb3dd3", size = 12077302 }, + { url = "https://files.pythonhosted.org/packages/a7/48/fbfb4dc72bed0fe31fe045fb30e924909ad03f717c36694351612973b1a9/scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7284ade780084d94505632241bf78c44ab3b6f1e8ccab3d2af58e0e950f9c12", size = 13002811 }, + { url = "https://files.pythonhosted.org/packages/a5/e7/0c869f9e60d225a77af90d2aefa7a4a4c0e745b149325d1450f0f0ce5399/scikit_learn-1.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:b7b0f9a0b1040830d38c39b91b3a44e1b643f4b36e36567b80b7c6bd2202a27f", size = 10951354 }, +] + +[[package]] +name = "scipy" +version = "1.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/62/11/4d44a1f274e002784e4dbdb81e0ea96d2de2d1045b2132d5af62cc31fd28/scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417", size = 58620554 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/04/2bdacc8ac6387b15db6faa40295f8bd25eccf33f1f13e68a72dc3c60a99e/scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d", size = 39128781 }, + { url = "https://files.pythonhosted.org/packages/c8/53/35b4d41f5fd42f5781dbd0dd6c05d35ba8aa75c84ecddc7d44756cd8da2e/scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07", size = 29939542 }, + { url = "https://files.pythonhosted.org/packages/66/67/6ef192e0e4d77b20cc33a01e743b00bc9e68fb83b88e06e636d2619a8767/scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5", size = 23148375 }, + { url = "https://files.pythonhosted.org/packages/f6/32/3a6dedd51d68eb7b8e7dc7947d5d841bcb699f1bf4463639554986f4d782/scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc", size = 25578573 }, + { url = "https://files.pythonhosted.org/packages/f0/5a/efa92a58dc3a2898705f1dc9dbaf390ca7d4fba26d6ab8cfffb0c72f656f/scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310", size = 35319299 }, + { url = "https://files.pythonhosted.org/packages/8e/ee/8a26858ca517e9c64f84b4c7734b89bda8e63bec85c3d2f432d225bb1886/scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066", size = 40849331 }, + { url = "https://files.pythonhosted.org/packages/a5/cd/06f72bc9187840f1c99e1a8750aad4216fc7dfdd7df46e6280add14b4822/scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1", size = 42544049 }, + { url = "https://files.pythonhosted.org/packages/aa/7d/43ab67228ef98c6b5dd42ab386eae2d7877036970a0d7e3dd3eb47a0d530/scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f", size = 44521212 }, + { url = "https://files.pythonhosted.org/packages/50/ef/ac98346db016ff18a6ad7626a35808f37074d25796fd0234c2bb0ed1e054/scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79", size = 39091068 }, + { url = "https://files.pythonhosted.org/packages/b9/cc/70948fe9f393b911b4251e96b55bbdeaa8cca41f37c26fd1df0232933b9e/scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e", size = 29875417 }, + { url = "https://files.pythonhosted.org/packages/3b/2e/35f549b7d231c1c9f9639f9ef49b815d816bf54dd050da5da1c11517a218/scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73", size = 23084508 }, + { url = "https://files.pythonhosted.org/packages/3f/d6/b028e3f3e59fae61fb8c0f450db732c43dd1d836223a589a8be9f6377203/scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e", size = 25503364 }, + { url = "https://files.pythonhosted.org/packages/a7/2f/6c142b352ac15967744d62b165537a965e95d557085db4beab2a11f7943b/scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d", size = 35292639 }, + { url = "https://files.pythonhosted.org/packages/56/46/2449e6e51e0d7c3575f289f6acb7f828938eaab8874dbccfeb0cd2b71a27/scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e", size = 40798288 }, + { url = "https://files.pythonhosted.org/packages/32/cd/9d86f7ed7f4497c9fd3e39f8918dd93d9f647ba80d7e34e4946c0c2d1a7c/scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06", size = 42524647 }, + { url = "https://files.pythonhosted.org/packages/f5/1b/6ee032251bf4cdb0cc50059374e86a9f076308c1512b61c4e003e241efb7/scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84", size = 44469524 }, +] + +[[package]] +name = "setuptools" +version = "75.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/54/292f26c208734e9a7f067aea4a7e282c080750c4546559b58e2e45413ca0/setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6", size = 1337429 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/21/47d163f615df1d30c094f6c8bbb353619274edccf0327b185cc2493c2c33/setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d", size = 1224032 }, +] + +[[package]] +name = "shap" +version = "0.46.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cloudpickle" }, + { name = "numba" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "slicer" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/46/1b497452be642e19af56044814dfe32ee795805b443378821136729017a0/shap-0.46.0.tar.gz", hash = "sha256:bdaa5b098be5a958348015e940f6fd264339b5db1e651f9898a3117be95b05a0", size = 1214102 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/c5/3c4fe600dd71fd2785d21f86a3e7f1f13de60c9b434052e05ba17598f81e/shap-0.46.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a9cc9be191562bea1a782baff912854d267c6f4831bbf454d8d7bb7df7ddb214", size = 459316 }, + { url = "https://files.pythonhosted.org/packages/4d/1a/c00a1e7a68a4af29f2b40c8a8740dd241cba6cc58cd6ac266956a954a41d/shap-0.46.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab1fecfb43604605be17e26ae12bde4406c451c46b54b980d9570cec03fbc239", size = 455333 }, + { url = "https://files.pythonhosted.org/packages/7f/0a/e3ab0dcddf4db1158fbf0d6c96348ba5f3031275f59088e0e3b7630cdcde/shap-0.46.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b216adf2a17b0e0694f17965ac29354ca8c4f27ac3c66f68bf6fc4cb2aa28207", size = 543894 }, + { url = "https://files.pythonhosted.org/packages/8f/8f/ca077689b76161b51b420031b88948ef92ade55730e85490215222734729/shap-0.46.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6e5dc5257b747a784f7a9b3acb64216a9011f01734f3c96b27fe5e15ae5f99f", size = 540735 }, + { url = "https://files.pythonhosted.org/packages/6e/b6/169de0d8971c91decd3dacfd63edeeedfc1bba30bfc6abf8480142aafd48/shap-0.46.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1230bf973463041dfa15734f290fbf3ab9c6e4e8222339c76f68fc355b940d80", size = 1537953 }, + { url = "https://files.pythonhosted.org/packages/04/58/b2ea558ec8d9ed3728e83dfacb1b920c54a1a1f6feee2632c04676c3c1e9/shap-0.46.0-cp312-cp312-win_amd64.whl", hash = "sha256:0cbbf996537b2a42d3bc7f2a13492988822ee1bfd7220700989408dfb9e1c5ad", size = 456226 }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, +] + +[[package]] +name = "slicer" +version = "0.0.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/f9/b4bce2825b39b57760b361e6131a3dacee3d8951c58cb97ad120abb90317/slicer-0.0.8.tar.gz", hash = "sha256:2e7553af73f0c0c2d355f4afcc3ecf97c6f2156fcf4593955c3f56cf6c4d6eb7", size = 14894 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/81/9ef641ff4e12cbcca30e54e72fb0951a2ba195d0cda0ba4100e532d929db/slicer-0.0.8-py3-none-any.whl", hash = "sha256:6c206258543aecd010d497dc2eca9d2805860a0b3758673903456b7df7934dc3", size = 15251 }, +] + +[[package]] +name = "smmap" +version = "5.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/88/04/b5bf6d21dc4041000ccba7eb17dd3055feb237e7ffc2c20d3fae3af62baa/smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62", size = 22291 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/a5/10f97f73544edcdef54409f1d839f6049a0d79df68adbc1ceb24d1aaca42/smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da", size = 24282 }, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.36" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "greenlet", marker = "(python_full_version < '3.13' and platform_machine == 'AMD64') or (python_full_version < '3.13' and platform_machine == 'WIN32') or (python_full_version < '3.13' and platform_machine == 'aarch64') or (python_full_version < '3.13' and platform_machine == 'amd64') or (python_full_version < '3.13' and platform_machine == 'ppc64le') or (python_full_version < '3.13' and platform_machine == 'win32') or (python_full_version < '3.13' and platform_machine == 'x86_64')" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/65/9cbc9c4c3287bed2499e05033e207473504dc4df999ce49385fb1f8b058a/sqlalchemy-2.0.36.tar.gz", hash = "sha256:7f2767680b6d2398aea7082e45a774b2b0767b5c8d8ffb9c8b683088ea9b29c5", size = 9574485 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/bf/005dc47f0e57556e14512d5542f3f183b94fde46e15ff1588ec58ca89555/SQLAlchemy-2.0.36-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7b64e6ec3f02c35647be6b4851008b26cff592a95ecb13b6788a54ef80bbdd4", size = 2092378 }, + { url = "https://files.pythonhosted.org/packages/94/65/f109d5720779a08e6e324ec89a744f5f92c48bd8005edc814bf72fbb24e5/SQLAlchemy-2.0.36-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:46331b00096a6db1fdc052d55b101dbbfc99155a548e20a0e4a8e5e4d1362855", size = 2082778 }, + { url = "https://files.pythonhosted.org/packages/60/f6/d9aa8c49c44f9b8c9b9dada1f12fa78df3d4c42aa2de437164b83ee1123c/SQLAlchemy-2.0.36-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdf3386a801ea5aba17c6410dd1dc8d39cf454ca2565541b5ac42a84e1e28f53", size = 3232191 }, + { url = "https://files.pythonhosted.org/packages/8a/ab/81d4514527c068670cb1d7ab62a81a185df53a7c379bd2a5636e83d09ede/SQLAlchemy-2.0.36-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9dfa18ff2a67b09b372d5db8743c27966abf0e5344c555d86cc7199f7ad83a", size = 3243044 }, + { url = "https://files.pythonhosted.org/packages/35/b4/f87c014ecf5167dc669199cafdb20a7358ff4b1d49ce3622cc48571f811c/SQLAlchemy-2.0.36-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:90812a8933df713fdf748b355527e3af257a11e415b613dd794512461eb8a686", size = 3178511 }, + { url = "https://files.pythonhosted.org/packages/ea/09/badfc9293bc3ccba6ede05e5f2b44a760aa47d84da1fc5a326e963e3d4d9/SQLAlchemy-2.0.36-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1bc330d9d29c7f06f003ab10e1eaced295e87940405afe1b110f2eb93a233588", size = 3205147 }, + { url = "https://files.pythonhosted.org/packages/c8/60/70e681de02a13c4b27979b7b78da3058c49bacc9858c89ba672e030f03f2/SQLAlchemy-2.0.36-cp312-cp312-win32.whl", hash = "sha256:79d2e78abc26d871875b419e1fd3c0bca31a1cb0043277d0d850014599626c2e", size = 2062709 }, + { url = "https://files.pythonhosted.org/packages/b7/ed/f6cd9395e41bfe47dd253d74d2dfc3cab34980d4e20c8878cb1117306085/SQLAlchemy-2.0.36-cp312-cp312-win_amd64.whl", hash = "sha256:b544ad1935a8541d177cb402948b94e871067656b3a0b9e91dbec136b06a2ff5", size = 2088433 }, + { url = "https://files.pythonhosted.org/packages/78/5c/236398ae3678b3237726819b484f15f5c038a9549da01703a771f05a00d6/SQLAlchemy-2.0.36-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b5cc79df7f4bc3d11e4b542596c03826063092611e481fcf1c9dfee3c94355ef", size = 2087651 }, + { url = "https://files.pythonhosted.org/packages/a8/14/55c47420c0d23fb67a35af8be4719199b81c59f3084c28d131a7767b0b0b/SQLAlchemy-2.0.36-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3c01117dd36800f2ecaa238c65365b7b16497adc1522bf84906e5710ee9ba0e8", size = 2078132 }, + { url = "https://files.pythonhosted.org/packages/3d/97/1e843b36abff8c4a7aa2e37f9bea364f90d021754c2de94d792c2d91405b/SQLAlchemy-2.0.36-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9bc633f4ee4b4c46e7adcb3a9b5ec083bf1d9a97c1d3854b92749d935de40b9b", size = 3164559 }, + { url = "https://files.pythonhosted.org/packages/7b/c5/07f18a897b997f6d6b234fab2bf31dccf66d5d16a79fe329aefc95cd7461/SQLAlchemy-2.0.36-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e46ed38affdfc95d2c958de328d037d87801cfcbea6d421000859e9789e61c2", size = 3177897 }, + { url = "https://files.pythonhosted.org/packages/b3/cd/e16f3cbefd82b5c40b33732da634ec67a5f33b587744c7ab41699789d492/SQLAlchemy-2.0.36-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b2985c0b06e989c043f1dc09d4fe89e1616aadd35392aea2844f0458a989eacf", size = 3111289 }, + { url = "https://files.pythonhosted.org/packages/15/85/5b8a3b0bc29c9928aa62b5c91fcc8335f57c1de0a6343873b5f372e3672b/SQLAlchemy-2.0.36-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a121d62ebe7d26fec9155f83f8be5189ef1405f5973ea4874a26fab9f1e262c", size = 3139491 }, + { url = "https://files.pythonhosted.org/packages/a1/95/81babb6089938680dfe2cd3f88cd3fd39cccd1543b7cb603b21ad881bff1/SQLAlchemy-2.0.36-cp313-cp313-win32.whl", hash = "sha256:0572f4bd6f94752167adfd7c1bed84f4b240ee6203a95e05d1e208d488d0d436", size = 2060439 }, + { url = "https://files.pythonhosted.org/packages/c1/ce/5f7428df55660d6879d0522adc73a3364970b5ef33ec17fa125c5dbcac1d/SQLAlchemy-2.0.36-cp313-cp313-win_amd64.whl", hash = "sha256:8c78ac40bde930c60e0f78b3cd184c580f89456dd87fc08f9e3ee3ce8765ce88", size = 2084574 }, + { url = "https://files.pythonhosted.org/packages/b8/49/21633706dd6feb14cd3f7935fc00b60870ea057686035e1a99ae6d9d9d53/SQLAlchemy-2.0.36-py3-none-any.whl", hash = "sha256:fddbe92b4760c6f5d48162aef14824add991aeda8ddadb3c31d56eb15ca69f8e", size = 1883787 }, +] + +[[package]] +name = "sqlparse" +version = "0.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e5/40/edede8dd6977b0d3da179a342c198ed100dd2aba4be081861ee5911e4da4/sqlparse-0.5.3.tar.gz", hash = "sha256:09f67787f56a0b16ecdbde1bfc7f5d9c3371ca683cfeaa8e6ff60b4807ec9272", size = 84999 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/5c/bfd6bd0bf979426d405cc6e71eceb8701b148b16c21d2dc3c261efc61c7b/sqlparse-0.5.3-py3-none-any.whl", hash = "sha256:cf2196ed3418f3ba5de6af7e82c694a9fbdbfecccdfc72e281548517081f16ca", size = 44415 }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521 }, +] + +[[package]] +name = "stevedore" +version = "5.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pbr" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4a/e9/4eedccff8332cc40cc60ddd3b28d4c3e255ee7e9c65679fa4533ab98f598/stevedore-5.4.0.tar.gz", hash = "sha256:79e92235ecb828fe952b6b8b0c6c87863248631922c8e8e0fa5b17b232c4514d", size = 513899 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/73/d0091d22a65b55e8fb6aca7b3b6713b5a261dd01cec4cfd28ed127ac0cfc/stevedore-5.4.0-py3-none-any.whl", hash = "sha256:b0be3c4748b3ea7b854b265dcb4caa891015e442416422be16f8b31756107857", size = 49534 }, +] + +[[package]] +name = "tenacity" +version = "9.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/94/91fccdb4b8110642462e653d5dcb27e7b674742ad68efd146367da7bdb10/tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b", size = 47421 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/cb/b86984bed139586d01532a587464b5805f12e397594f19f931c4c2fbfa61/tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539", size = 28169 }, +] + +[[package]] +name = "termcolor" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/72/88311445fd44c455c7d553e61f95412cf89054308a1aa2434ab835075fc5/termcolor-2.5.0.tar.gz", hash = "sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f", size = 13057 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/be/df630c387a0a054815d60be6a97eb4e8f17385d5d6fe660e1c02750062b4/termcolor-2.5.0-py3-none-any.whl", hash = "sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8", size = 7755 }, +] + +[[package]] +name = "threadpoolctl" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/55/b5148dcbf72f5cde221f8bfe3b6a540da7aa1842f6b491ad979a6c8b84af/threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107", size = 41936 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467", size = 18414 }, +] + +[[package]] +name = "tomlkit" +version = "0.13.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b1/09/a439bec5888f00a54b8b9f05fa94d7f901d6735ef4e55dcec9bc37b5d8fa/tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79", size = 192885 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde", size = 37955 }, +] + +[[package]] +name = "tornado" +version = "6.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/59/45/a0daf161f7d6f36c3ea5fc0c2de619746cc3dd4c76402e9db545bd920f63/tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b", size = 501135 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/7e/71f604d8cea1b58f82ba3590290b66da1e72d840aeb37e0d5f7291bd30db/tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1", size = 436299 }, + { url = "https://files.pythonhosted.org/packages/96/44/87543a3b99016d0bf54fdaab30d24bf0af2e848f1d13d34a3a5380aabe16/tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803", size = 434253 }, + { url = "https://files.pythonhosted.org/packages/cb/fb/fdf679b4ce51bcb7210801ef4f11fdac96e9885daa402861751353beea6e/tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec", size = 437602 }, + { url = "https://files.pythonhosted.org/packages/4f/3b/e31aeffffc22b475a64dbeb273026a21b5b566f74dee48742817626c47dc/tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946", size = 436972 }, + { url = "https://files.pythonhosted.org/packages/22/55/b78a464de78051a30599ceb6983b01d8f732e6f69bf37b4ed07f642ac0fc/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", size = 437173 }, + { url = "https://files.pythonhosted.org/packages/79/5e/be4fb0d1684eb822c9a62fb18a3e44a06188f78aa466b2ad991d2ee31104/tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634", size = 437892 }, + { url = "https://files.pythonhosted.org/packages/f5/33/4f91fdd94ea36e1d796147003b490fe60a0215ac5737b6f9c65e160d4fe0/tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73", size = 437334 }, + { url = "https://files.pythonhosted.org/packages/2b/ae/c1b22d4524b0e10da2f29a176fb2890386f7bd1f63aacf186444873a88a0/tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c", size = 437261 }, + { url = "https://files.pythonhosted.org/packages/b5/25/36dbd49ab6d179bcfc4c6c093a51795a4f3bed380543a8242ac3517a1751/tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482", size = 438463 }, + { url = "https://files.pythonhosted.org/packages/61/cc/58b1adeb1bb46228442081e746fcdbc4540905c87e8add7c277540934edb/tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38", size = 438907 }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "platform_system == 'Windows'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359 }, +] + +[[package]] +name = "typeguard" +version = "4.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/62/c3/400917dd37d7b8c07e9723f3046818530423e1e759a56a22133362adab00/typeguard-4.4.1.tar.gz", hash = "sha256:0d22a89d00b453b47c49875f42b6601b961757541a2e1e0ef517b6e24213c21b", size = 74959 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/53/9465dedf2d69fe26008e7732cf6e0a385e387c240869e7d54eed49782a3c/typeguard-4.4.1-py3-none-any.whl", hash = "sha256:9324ec07a27ec67fc54a9c063020ca4c0ae6abad5e9f0f9804ca59aee68c6e21", size = 35635 }, +] + +[[package]] +name = "types-pytz" +version = "2024.2.0.20241003" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/d0/73aa3063a9ef9881bd7103cb4ae379bfd8fafda0e86b01b694d676313a4b/types-pytz-2024.2.0.20241003.tar.gz", hash = "sha256:575dc38f385a922a212bac00a7d6d2e16e141132a3c955078f4a4fd13ed6cb44", size = 5474 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/60/2a2977ce0f91255bbb668350b127a801a06ad37c326a2e5bfd52f03e0784/types_pytz-2024.2.0.20241003-py3-none-any.whl", hash = "sha256:3e22df1336c0c6ad1d29163c8fda82736909eb977281cb823c57f8bae07118b7", size = 5245 }, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/74/1789779d91f1961fa9438e9a8710cdae6bd138c80d7303996933d117264a/typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78", size = 13825 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f", size = 8827 }, +] + +[[package]] +name = "tzdata" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 }, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", size = 300677 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", size = 126338 }, +] + +[[package]] +name = "virtualenv" +version = "20.28.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "distlib" }, + { name = "filelock" }, + { name = "platformdirs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/75/53316a5a8050069228a2f6d11f32046cfa94fbb6cc3f08703f59b873de2e/virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa", size = 7650368 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/f9/0919cf6f1432a8c4baa62511f8f8da8225432d22e83e3476f5be1a1edc6e/virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0", size = 4276702 }, +] + +[[package]] +name = "waitress" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/cb/04ddb054f45faa306a230769e868c28b8065ea196891f09004ebace5b184/waitress-3.0.2.tar.gz", hash = "sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f", size = 179901 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/57/a27182528c90ef38d82b636a11f606b0cbb0e17588ed205435f8affe3368/waitress-3.0.2-py3-none-any.whl", hash = "sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e", size = 56232 }, +] + +[[package]] +name = "wcwidth" +version = "0.2.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 }, +] + +[[package]] +name = "werkzeug" +version = "3.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/69/83029f1f6300c5fb2471d621ab06f6ec6b3324685a2ce0f9777fd4a8b71e/werkzeug-3.1.3.tar.gz", hash = "sha256:60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746", size = 806925 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/24/ab44c871b0f07f491e5d2ad12c9bd7358e527510618cb1b803a88e986db1/werkzeug-3.1.3-py3-none-any.whl", hash = "sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e", size = 224498 }, +] + +[[package]] +name = "win32-setctime" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/8f/705086c9d734d3b663af0e9bb3d4de6578d08f46b1b101c2442fd9aecaa2/win32_setctime-1.2.0.tar.gz", hash = "sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0", size = 4867 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083 }, +] + +[[package]] +name = "wrapt" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/a1/fc03dca9b0432725c2e8cdbf91a349d2194cf03d8523c124faebe581de09/wrapt-1.17.0.tar.gz", hash = "sha256:16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801", size = 55542 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/82/518605474beafff11f1a34759f6410ab429abff9f7881858a447e0d20712/wrapt-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:89fc28495896097622c3fc238915c79365dd0ede02f9a82ce436b13bd0ab7569", size = 38904 }, + { url = "https://files.pythonhosted.org/packages/80/6c/17c3b2fed28edfd96d8417c865ef0b4c955dc52c4e375d86f459f14340f1/wrapt-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:875d240fdbdbe9e11f9831901fb8719da0bd4e6131f83aa9f69b96d18fae7504", size = 88622 }, + { url = "https://files.pythonhosted.org/packages/4a/11/60ecdf3b0fd3dca18978d89acb5d095a05f23299216e925fcd2717c81d93/wrapt-1.17.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ed16d95fd142e9c72b6c10b06514ad30e846a0d0917ab406186541fe68b451", size = 80920 }, + { url = "https://files.pythonhosted.org/packages/d2/50/dbef1a651578a3520d4534c1e434989e3620380c1ad97e309576b47f0ada/wrapt-1.17.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b956061b8db634120b58f668592a772e87e2e78bc1f6a906cfcaa0cc7991c1", size = 89170 }, + { url = "https://files.pythonhosted.org/packages/44/a2/78c5956bf39955288c9e0dd62e807b308c3aa15a0f611fbff52aa8d6b5ea/wrapt-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:daba396199399ccabafbfc509037ac635a6bc18510ad1add8fd16d4739cdd106", size = 86748 }, + { url = "https://files.pythonhosted.org/packages/99/49/2ee413c78fc0bdfebe5bee590bf3becdc1fab0096a7a9c3b5c9666b2415f/wrapt-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4d63f4d446e10ad19ed01188d6c1e1bb134cde8c18b0aa2acfd973d41fcc5ada", size = 79734 }, + { url = "https://files.pythonhosted.org/packages/c0/8c/4221b7b270e36be90f0930fe15a4755a6ea24093f90b510166e9ed7861ea/wrapt-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a5e7cc39a45fc430af1aefc4d77ee6bad72c5bcdb1322cfde852c15192b8bd4", size = 87552 }, + { url = "https://files.pythonhosted.org/packages/4c/6b/1aaccf3efe58eb95e10ce8e77c8909b7a6b0da93449a92c4e6d6d10b3a3d/wrapt-1.17.0-cp312-cp312-win32.whl", hash = "sha256:0a0a1a1ec28b641f2a3a2c35cbe86c00051c04fffcfcc577ffcdd707df3f8635", size = 36647 }, + { url = "https://files.pythonhosted.org/packages/b3/4f/243f88ac49df005b9129194c6511b3642818b3e6271ddea47a15e2ee4934/wrapt-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:3c34f6896a01b84bab196f7119770fd8466c8ae3dfa73c59c0bb281e7b588ce7", size = 38830 }, + { url = "https://files.pythonhosted.org/packages/67/9c/38294e1bb92b055222d1b8b6591604ca4468b77b1250f59c15256437644f/wrapt-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:714c12485aa52efbc0fc0ade1e9ab3a70343db82627f90f2ecbc898fdf0bb181", size = 38904 }, + { url = "https://files.pythonhosted.org/packages/78/b6/76597fb362cbf8913a481d41b14b049a8813cd402a5d2f84e57957c813ae/wrapt-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da427d311782324a376cacb47c1a4adc43f99fd9d996ffc1b3e8529c4074d393", size = 88608 }, + { url = "https://files.pythonhosted.org/packages/bc/69/b500884e45b3881926b5f69188dc542fb5880019d15c8a0df1ab1dfda1f7/wrapt-1.17.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba1739fb38441a27a676f4de4123d3e858e494fac05868b7a281c0a383c098f4", size = 80879 }, + { url = "https://files.pythonhosted.org/packages/52/31/f4cc58afe29eab8a50ac5969963010c8b60987e719c478a5024bce39bc42/wrapt-1.17.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e711fc1acc7468463bc084d1b68561e40d1eaa135d8c509a65dd534403d83d7b", size = 89119 }, + { url = "https://files.pythonhosted.org/packages/aa/9c/05ab6bf75dbae7a9d34975fb6ee577e086c1c26cde3b6cf6051726d33c7c/wrapt-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:140ea00c87fafc42739bd74a94a5a9003f8e72c27c47cd4f61d8e05e6dec8721", size = 86778 }, + { url = "https://files.pythonhosted.org/packages/0e/6c/4b8d42e3db355603d35fe5c9db79c28f2472a6fd1ccf4dc25ae46739672a/wrapt-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73a96fd11d2b2e77d623a7f26e004cc31f131a365add1ce1ce9a19e55a1eef90", size = 79793 }, + { url = "https://files.pythonhosted.org/packages/69/23/90e3a2ee210c0843b2c2a49b3b97ffcf9cad1387cb18cbeef9218631ed5a/wrapt-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0b48554952f0f387984da81ccfa73b62e52817a4386d070c75e4db7d43a28c4a", size = 87606 }, + { url = "https://files.pythonhosted.org/packages/5f/06/3683126491ca787d8d71d8d340e775d40767c5efedb35039d987203393b7/wrapt-1.17.0-cp313-cp313-win32.whl", hash = "sha256:498fec8da10e3e62edd1e7368f4b24aa362ac0ad931e678332d1b209aec93045", size = 36651 }, + { url = "https://files.pythonhosted.org/packages/f1/bc/3bf6d2ca0d2c030d324ef9272bea0a8fdaff68f3d1fa7be7a61da88e51f7/wrapt-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd136bb85f4568fffca995bd3c8d52080b1e5b225dbf1c2b17b66b4c5fa02838", size = 38835 }, + { url = "https://files.pythonhosted.org/packages/ce/b5/251165c232d87197a81cd362eeb5104d661a2dd3aa1f0b33e4bf61dda8b8/wrapt-1.17.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17fcf043d0b4724858f25b8826c36e08f9fb2e475410bece0ec44a22d533da9b", size = 40146 }, + { url = "https://files.pythonhosted.org/packages/89/33/1e1bdd3e866eeb73d8c4755db1ceb8a80d5bd51ee4648b3f2247adec4e67/wrapt-1.17.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4a557d97f12813dc5e18dad9fa765ae44ddd56a672bb5de4825527c847d6379", size = 113444 }, + { url = "https://files.pythonhosted.org/packages/9f/7c/94f53b065a43f5dc1fbdd8b80fd8f41284315b543805c956619c0b8d92f0/wrapt-1.17.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0229b247b0fc7dee0d36176cbb79dbaf2a9eb7ecc50ec3121f40ef443155fb1d", size = 101246 }, + { url = "https://files.pythonhosted.org/packages/62/5d/640360baac6ea6018ed5e34e6e80e33cfbae2aefde24f117587cd5efd4b7/wrapt-1.17.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8425cfce27b8b20c9b89d77fb50e368d8306a90bf2b6eef2cdf5cd5083adf83f", size = 109320 }, + { url = "https://files.pythonhosted.org/packages/e3/cf/6c7a00ae86a2e9482c91170aefe93f4ccda06c1ac86c4de637c69133da59/wrapt-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c900108df470060174108012de06d45f514aa4ec21a191e7ab42988ff42a86c", size = 110193 }, + { url = "https://files.pythonhosted.org/packages/cd/cc/aa718df0d20287e8f953ce0e2f70c0af0fba1d3c367db7ee8bdc46ea7003/wrapt-1.17.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4e547b447073fc0dbfcbff15154c1be8823d10dab4ad401bdb1575e3fdedff1b", size = 100460 }, + { url = "https://files.pythonhosted.org/packages/f7/16/9f3ac99fe1f6caaa789d67b4e3c562898b532c250769f5255fa8b8b93983/wrapt-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:914f66f3b6fc7b915d46c1cc424bc2441841083de01b90f9e81109c9759e43ab", size = 106347 }, + { url = "https://files.pythonhosted.org/packages/64/85/c77a331b2c06af49a687f8b926fc2d111047a51e6f0b0a4baa01ff3a673a/wrapt-1.17.0-cp313-cp313t-win32.whl", hash = "sha256:a4192b45dff127c7d69b3bdfb4d3e47b64179a0b9900b6351859f3001397dabf", size = 37971 }, + { url = "https://files.pythonhosted.org/packages/05/9b/b2469f8be9efed24283fd7b9eeb8e913e9bc0715cf919ea8645e428ab7af/wrapt-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4f643df3d4419ea3f856c5c3f40fec1d65ea2e89ec812c83f7767c8730f9827a", size = 40755 }, + { url = "https://files.pythonhosted.org/packages/4b/d9/a8ba5e9507a9af1917285d118388c5eb7a81834873f45df213a6fe923774/wrapt-1.17.0-py3-none-any.whl", hash = "sha256:d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371", size = 23592 }, +] + +[[package]] +name = "zipp" +version = "3.21.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/50/bad581df71744867e9468ebd0bcd6505de3b275e06f202c2cb016e3ff56f/zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4", size = 24545 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931", size = 9630 }, +]