From e27347142aef6ea95e8a7bf9f8e8b607350a7f70 Mon Sep 17 00:00:00 2001 From: John Duggan Date: Fri, 2 Jan 2026 15:04:35 -0500 Subject: [PATCH] Update tutorial to work with latest template version --- code/episode_2/poetry.lock | 2164 ----------- code/episode_2/pyproject.toml | 66 +- code/episode_2/src/nova_tutorial/__init__.py | 0 .../src/nova_tutorial/app/__init__.py | 0 .../src/nova_tutorial/app/__main__.py | 0 code/episode_2/src/nova_tutorial/app/main.py | 2 +- .../src/nova_tutorial/app/models/__init__.py | 0 .../nova_tutorial/app/models/main_model.py | 0 .../src/nova_tutorial/app/mvvm_factory.py | 2 +- .../nova_tutorial/app/view_models/__init__.py | 0 .../src/nova_tutorial/app/view_models/main.py | 30 - .../src/nova_tutorial/app/views/__init__.py | 0 .../src/nova_tutorial/app/views/main.py | 44 - .../nova_tutorial/app/views/sample_tab_1.py | 4 +- .../nova_tutorial/app/views/sample_tab_2.py | 4 +- .../app/views/tab_content_panel.py | 16 +- .../src/nova_tutorial/app/views/tabs_panel.py | 11 +- code/episode_3/poetry.lock | 2335 ------------ code/episode_3/pyproject.toml | 70 +- code/episode_3/src/nova_tutorial/__init__.py | 0 .../src/nova_tutorial/app/__init__.py | 0 .../src/nova_tutorial/app/__main__.py | 0 code/episode_3/src/nova_tutorial/app/main.py | 21 +- .../src/nova_tutorial/app/models/__init__.py | 0 .../src/nova_tutorial/app/models/fractal.py | 14 +- .../nova_tutorial/app/models/main_model.py | 0 .../src/nova_tutorial/app/mvvm_factory.py | 2 +- .../nova_tutorial/app/view_models/__init__.py | 0 .../src/nova_tutorial/app/view_models/main.py | 30 - .../src/nova_tutorial/app/views/__init__.py | 0 .../src/nova_tutorial/app/views/main.py | 44 - .../nova_tutorial/app/views/sample_tab_1.py | 4 +- .../nova_tutorial/app/views/sample_tab_2.py | 4 +- .../app/views/tab_content_panel.py | 16 +- .../src/nova_tutorial/app/views/tabs_panel.py | 11 +- code/episode_4/poetry.lock | 2247 ----------- code/episode_4/pyproject.toml | 70 +- code/episode_4/src/nova_tutorial/__init__.py | 0 .../src/nova_tutorial/app/__init__.py | 0 .../src/nova_tutorial/app/__main__.py | 0 code/episode_4/src/nova_tutorial/app/main.py | 2 +- .../src/nova_tutorial/app/models/__init__.py | 0 .../src/nova_tutorial/app/models/fractal.py | 32 +- .../nova_tutorial/app/models/main_model.py | 10 +- .../src/nova_tutorial/app/mvvm_factory.py | 3 +- .../nova_tutorial/app/view_models/__init__.py | 0 .../src/nova_tutorial/app/view_models/main.py | 34 - .../src/nova_tutorial/app/views/__init__.py | 0 .../nova_tutorial/app/views/fractal_tab.py | 18 +- .../src/nova_tutorial/app/views/main.py | 45 - .../nova_tutorial/app/views/sample_tab_1.py | 4 +- .../nova_tutorial/app/views/sample_tab_2.py | 4 +- .../app/views/tab_content_panel.py | 24 +- .../src/nova_tutorial/app/views/tabs_panel.py | 13 +- code/episode_4/tmp.png | Bin 496830 -> 0 bytes code/episode_5/poetry.lock | 3073 --------------- code/episode_5/pyproject.toml | 70 +- code/episode_5/src/nova_tutorial/__init__.py | 0 .../src/nova_tutorial/app/__init__.py | 0 .../src/nova_tutorial/app/__main__.py | 0 code/episode_5/src/nova_tutorial/app/main.py | 3 +- .../src/nova_tutorial/app/models/__init__.py | 0 .../src/nova_tutorial/app/models/fractal.py | 41 +- .../nova_tutorial/app/models/main_model.py | 12 +- .../src/nova_tutorial/app/mvvm_factory.py | 3 +- .../nova_tutorial/app/view_models/__init__.py | 0 .../src/nova_tutorial/app/view_models/main.py | 56 - .../src/nova_tutorial/app/views/__init__.py | 0 .../nova_tutorial/app/views/fractal_tab.py | 13 +- .../src/nova_tutorial/app/views/main.py | 49 - .../nova_tutorial/app/views/sample_tab_1.py | 6 +- .../nova_tutorial/app/views/sample_tab_2.py | 4 +- .../app/views/tab_content_panel.py | 24 +- .../src/nova_tutorial/app/views/tabs_panel.py | 14 +- .../advanced_pydantic/.copier-answers.yml | 9 - .../episode_6/advanced_pydantic/.dockerignore | 1 - code/episode_6/advanced_pydantic/.gitignore | 166 - .../advanced_pydantic/.gitlab-ci.yml | 125 - .../advanced_pydantic/.pre-commit-config.yaml | 27 - .../advanced_pydantic/.vscode/extensions.json | 6 - .../advanced_pydantic/.vscode/launch.json | 10 - .../advanced_pydantic/.vscode/settings.json | 10 - .../advanced_pydantic/CODE_OF_CONDUCT.md | 128 - .../advanced_pydantic/CONTRIBUTING.md | 41 - code/episode_6/advanced_pydantic/LICENSE | 21 - .../episode_6/advanced_pydantic/build_docs.sh | 2 - .../advanced_pydantic/dockerfiles/Dockerfile | 35 - code/episode_6/advanced_pydantic/poetry.lock | 1314 ------- .../advanced_pydantic/pyproject.toml | 69 +- .../advanced_pydantic/scripts/.gitkeep | 0 .../src/advanced_pydantic/__init__.py | 8 - .../src/advanced_pydantic/__main__.py | 5 - .../src/advanced_pydantic/main.py | 52 - .../src/advanced_pydantic/main_class.py | 23 - .../tests/test_main_class.py | 8 - .../pydantic_mvvm/.copier-answers.yml | 11 - code/episode_6/pydantic_mvvm/.dockerignore | 1 - code/episode_6/pydantic_mvvm/.gitignore | 166 - code/episode_6/pydantic_mvvm/.gitlab-ci.yml | 125 - .../pydantic_mvvm/.pre-commit-config.yaml | 27 - .../pydantic_mvvm/.vscode/extensions.json | 6 - .../pydantic_mvvm/.vscode/launch.json | 10 - .../pydantic_mvvm/.vscode/settings.json | 10 - .../pydantic_mvvm/CODE_OF_CONDUCT.md | 128 - code/episode_6/pydantic_mvvm/CONTRIBUTING.md | 41 - code/episode_6/pydantic_mvvm/LICENSE | 21 - code/episode_6/pydantic_mvvm/build_docs.sh | 2 - .../pydantic_mvvm/dockerfiles/Dockerfile | 35 - code/episode_6/pydantic_mvvm/poetry.lock | 2164 ----------- code/episode_6/pydantic_mvvm/pyproject.toml | 70 +- code/episode_6/pydantic_mvvm/scripts/.gitkeep | 0 .../src/trame_with_pydantic/app/main.py | 2 +- .../app/models/settings.py | 7 +- .../trame_with_pydantic/app/mvvm_factory.py | 2 +- .../app/view_models/main.py | 24 - .../src/trame_with_pydantic/app/views/main.py | 43 - .../episode_6/pydantic_mvvm/tests/test_app.py | 8 - .../pydantic_mvvm/tests/test_model.py | 9 - code/episode_7/poetry.lock | 3311 ----------------- code/episode_7/pyproject.toml | 79 +- code/episode_7/src/nova_tutorial/__init__.py | 7 - code/episode_7/src/nova_tutorial/__main__.py | 5 - code/episode_7/src/nova_tutorial/main.py | 12 - .../src/nova_tutorial/models/main_model.py | 23 - .../src/nova_tutorial/models/plotly.py | 58 - .../src/nova_tutorial/models/pyvista.py | 36 - .../episode_7/src/nova_tutorial/models/vtk.py | 114 - .../src/nova_tutorial/mvvm_factory.py | 14 - .../src/nova_tutorial/view_models/main.py | 55 - .../episode_7/src/nova_tutorial/views/main.py | 44 - .../src/nova_tutorial/views/plotly.py | 34 - .../src/nova_tutorial/views/pyvista.py | 40 - .../nova_tutorial/views/tab_content_panel.py | 31 - .../src/nova_tutorial/views/tabs_panel.py | 20 - code/episode_7/src/nova_tutorial/views/vtk.py | 47 - episodes/01-Introduction.md | 14 +- episodes/02-Copy-Template.md | 55 +- episodes/03-Nova-Galaxy.md | 15 +- episodes/04-MVVM-Design-Pattern.md | 118 +- episodes/05-Working-with-Trame.md | 104 +- episodes/06-Advanced-Data-Modeling.md | 67 +- episodes/07-Advanced-Visualizations.md | 124 +- episodes/08-Next-Steps.md | 2 +- 143 files changed, 729 insertions(+), 19440 deletions(-) delete mode 100755 code/episode_2/poetry.lock mode change 100755 => 100644 code/episode_2/src/nova_tutorial/__init__.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/__init__.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/__main__.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/main.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/models/__init__.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/models/main_model.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/mvvm_factory.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/view_models/__init__.py delete mode 100755 code/episode_2/src/nova_tutorial/app/view_models/main.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/views/__init__.py delete mode 100755 code/episode_2/src/nova_tutorial/app/views/main.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/views/sample_tab_1.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/views/sample_tab_2.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/views/tab_content_panel.py mode change 100755 => 100644 code/episode_2/src/nova_tutorial/app/views/tabs_panel.py delete mode 100644 code/episode_3/poetry.lock mode change 100755 => 100644 code/episode_3/src/nova_tutorial/__init__.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/__init__.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/__main__.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/main.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/models/__init__.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/models/fractal.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/models/main_model.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/mvvm_factory.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/view_models/__init__.py delete mode 100755 code/episode_3/src/nova_tutorial/app/view_models/main.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/views/__init__.py delete mode 100755 code/episode_3/src/nova_tutorial/app/views/main.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/views/sample_tab_1.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/views/sample_tab_2.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/views/tab_content_panel.py mode change 100755 => 100644 code/episode_3/src/nova_tutorial/app/views/tabs_panel.py delete mode 100644 code/episode_4/poetry.lock mode change 100755 => 100644 code/episode_4/src/nova_tutorial/__init__.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/__init__.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/__main__.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/main.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/models/__init__.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/models/fractal.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/models/main_model.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/mvvm_factory.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/view_models/__init__.py delete mode 100755 code/episode_4/src/nova_tutorial/app/view_models/main.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/views/__init__.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/views/fractal_tab.py delete mode 100755 code/episode_4/src/nova_tutorial/app/views/main.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/views/sample_tab_1.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/views/sample_tab_2.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/views/tab_content_panel.py mode change 100755 => 100644 code/episode_4/src/nova_tutorial/app/views/tabs_panel.py delete mode 100644 code/episode_4/tmp.png delete mode 100644 code/episode_5/poetry.lock mode change 100755 => 100644 code/episode_5/src/nova_tutorial/__init__.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/__init__.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/__main__.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/main.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/models/__init__.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/models/fractal.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/models/main_model.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/mvvm_factory.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/view_models/__init__.py delete mode 100755 code/episode_5/src/nova_tutorial/app/view_models/main.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/views/__init__.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/views/fractal_tab.py delete mode 100755 code/episode_5/src/nova_tutorial/app/views/main.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/views/sample_tab_1.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/views/sample_tab_2.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/views/tab_content_panel.py mode change 100755 => 100644 code/episode_5/src/nova_tutorial/app/views/tabs_panel.py delete mode 100644 code/episode_6/advanced_pydantic/.copier-answers.yml delete mode 100644 code/episode_6/advanced_pydantic/.dockerignore delete mode 100644 code/episode_6/advanced_pydantic/.gitignore delete mode 100644 code/episode_6/advanced_pydantic/.gitlab-ci.yml delete mode 100644 code/episode_6/advanced_pydantic/.pre-commit-config.yaml delete mode 100644 code/episode_6/advanced_pydantic/.vscode/extensions.json delete mode 100644 code/episode_6/advanced_pydantic/.vscode/launch.json delete mode 100644 code/episode_6/advanced_pydantic/.vscode/settings.json delete mode 100644 code/episode_6/advanced_pydantic/CODE_OF_CONDUCT.md delete mode 100644 code/episode_6/advanced_pydantic/CONTRIBUTING.md delete mode 100644 code/episode_6/advanced_pydantic/LICENSE delete mode 100755 code/episode_6/advanced_pydantic/build_docs.sh delete mode 100644 code/episode_6/advanced_pydantic/dockerfiles/Dockerfile delete mode 100644 code/episode_6/advanced_pydantic/poetry.lock delete mode 100644 code/episode_6/advanced_pydantic/scripts/.gitkeep delete mode 100644 code/episode_6/advanced_pydantic/src/advanced_pydantic/__main__.py delete mode 100644 code/episode_6/advanced_pydantic/src/advanced_pydantic/main.py delete mode 100644 code/episode_6/advanced_pydantic/src/advanced_pydantic/main_class.py delete mode 100644 code/episode_6/advanced_pydantic/tests/test_main_class.py delete mode 100644 code/episode_6/pydantic_mvvm/.copier-answers.yml delete mode 100644 code/episode_6/pydantic_mvvm/.dockerignore delete mode 100644 code/episode_6/pydantic_mvvm/.gitignore delete mode 100644 code/episode_6/pydantic_mvvm/.gitlab-ci.yml delete mode 100644 code/episode_6/pydantic_mvvm/.pre-commit-config.yaml delete mode 100644 code/episode_6/pydantic_mvvm/.vscode/extensions.json delete mode 100644 code/episode_6/pydantic_mvvm/.vscode/launch.json delete mode 100644 code/episode_6/pydantic_mvvm/.vscode/settings.json delete mode 100644 code/episode_6/pydantic_mvvm/CODE_OF_CONDUCT.md delete mode 100644 code/episode_6/pydantic_mvvm/CONTRIBUTING.md delete mode 100644 code/episode_6/pydantic_mvvm/LICENSE delete mode 100755 code/episode_6/pydantic_mvvm/build_docs.sh delete mode 100644 code/episode_6/pydantic_mvvm/dockerfiles/Dockerfile delete mode 100644 code/episode_6/pydantic_mvvm/poetry.lock delete mode 100644 code/episode_6/pydantic_mvvm/scripts/.gitkeep delete mode 100644 code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/view_models/main.py delete mode 100644 code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/views/main.py delete mode 100644 code/episode_6/pydantic_mvvm/tests/test_app.py delete mode 100644 code/episode_6/pydantic_mvvm/tests/test_model.py delete mode 100755 code/episode_7/poetry.lock delete mode 100755 code/episode_7/src/nova_tutorial/__init__.py delete mode 100755 code/episode_7/src/nova_tutorial/__main__.py delete mode 100755 code/episode_7/src/nova_tutorial/main.py delete mode 100644 code/episode_7/src/nova_tutorial/models/main_model.py delete mode 100755 code/episode_7/src/nova_tutorial/models/plotly.py delete mode 100644 code/episode_7/src/nova_tutorial/models/pyvista.py delete mode 100644 code/episode_7/src/nova_tutorial/models/vtk.py delete mode 100644 code/episode_7/src/nova_tutorial/mvvm_factory.py delete mode 100755 code/episode_7/src/nova_tutorial/view_models/main.py delete mode 100755 code/episode_7/src/nova_tutorial/views/main.py delete mode 100755 code/episode_7/src/nova_tutorial/views/plotly.py delete mode 100644 code/episode_7/src/nova_tutorial/views/pyvista.py delete mode 100644 code/episode_7/src/nova_tutorial/views/tab_content_panel.py delete mode 100644 code/episode_7/src/nova_tutorial/views/tabs_panel.py delete mode 100644 code/episode_7/src/nova_tutorial/views/vtk.py diff --git a/code/episode_2/poetry.lock b/code/episode_2/poetry.lock deleted file mode 100755 index d2927940..00000000 --- a/code/episode_2/poetry.lock +++ /dev/null @@ -1,2164 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. - -[[package]] -name = "aiohappyeyeballs" -version = "2.4.4" -description = "Happy Eyeballs for asyncio" -optional = false -python-versions = ">=3.8" -files = [ - {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, - {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, -] - -[[package]] -name = "aiohttp" -version = "3.11.11" -description = "Async http client/server framework (asyncio)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"}, - {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"}, - {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"}, - {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"}, - {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"}, - {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"}, - {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"}, - {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"}, - {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"}, - {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"}, - {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"}, - {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"}, - {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"}, - {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"}, - {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"}, - {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"}, - {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"}, - {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"}, - {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"}, - {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"}, - {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"}, - {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"}, - {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"}, - {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"}, - {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"}, - {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"}, - {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"}, - {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"}, - {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"}, - {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"}, - {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"}, - {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"}, - {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"}, - {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"}, - {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"}, - {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"}, - {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"}, - {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"}, - {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"}, - {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"}, - {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"}, - {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"}, - {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"}, - {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"}, - {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"}, - {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"}, - {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"}, - {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"}, - {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"}, - {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"}, - {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"}, - {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"}, - {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"}, - {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"}, - {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"}, - {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"}, - {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"}, - {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"}, - {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"}, - {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"}, - {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"}, - {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"}, - {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"}, - {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"}, - {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"}, - {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"}, - {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"}, - {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"}, - {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"}, - {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"}, - {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"}, - {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"}, - {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"}, - {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"}, - {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"}, - {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"}, -] - -[package.dependencies] -aiohappyeyeballs = ">=2.3.0" -aiosignal = ">=1.1.2" -async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} -attrs = ">=17.3.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -propcache = ">=0.2.0" -yarl = ">=1.17.0,<2.0" - -[package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] - -[[package]] -name = "aiosignal" -version = "1.3.2" -description = "aiosignal: a list of registered asynchronous callbacks" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, - {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" - -[[package]] -name = "alabaster" -version = "1.0.0" -description = "A light, configurable Sphinx theme" -optional = false -python-versions = ">=3.10" -files = [ - {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, - {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, -] - -[[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 = "async-timeout" -version = "5.0.1" -description = "Timeout context manager for asyncio programs" -optional = false -python-versions = ">=3.8" -files = [ - {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, - {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, -] - -[[package]] -name = "attrs" -version = "25.1.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.8" -files = [ - {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, - {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, -] - -[package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] - -[[package]] -name = "babel" -version = "2.17.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, -] - -[package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] - -[[package]] -name = "certifi" -version = "2025.1.31" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, -] - -[[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.4.1" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7" -files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, -] - -[[package]] -name = "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 = "copier" -version = "9.4.1" -description = "A library for rendering project templates." -optional = false -python-versions = ">=3.9" -files = [ - {file = "copier-9.4.1-py3-none-any.whl", hash = "sha256:863385b7ba8a9090c832cd12ca072dba9153397dbe7c5f337bf8c3d8859efa32"}, - {file = "copier-9.4.1.tar.gz", hash = "sha256:cc81d8204cb17fbc8c4a14996a8ce764166c34c77236de38cfbeb960c887b68f"}, -] - -[package.dependencies] -colorama = ">=0.4.6" -dunamai = ">=1.7.0" -funcy = ">=1.17" -jinja2 = ">=3.1.4" -jinja2-ansible-filters = ">=1.3.1" -packaging = ">=23.0" -pathspec = ">=0.9.0" -plumbum = ">=1.6.9" -pydantic = ">=2.4.2" -pygments = ">=2.7.1" -pyyaml = ">=5.3.1" -questionary = ">=1.8.1" - -[[package]] -name = "coverage" -version = "7.6.10" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78"}, - {file = "coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c"}, - {file = "coverage-7.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a"}, - {file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165"}, - {file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988"}, - {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5"}, - {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3"}, - {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5"}, - {file = "coverage-7.6.10-cp310-cp310-win32.whl", hash = "sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244"}, - {file = "coverage-7.6.10-cp310-cp310-win_amd64.whl", hash = "sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e"}, - {file = "coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3"}, - {file = "coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43"}, - {file = "coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132"}, - {file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f"}, - {file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994"}, - {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99"}, - {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd"}, - {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377"}, - {file = "coverage-7.6.10-cp311-cp311-win32.whl", hash = "sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8"}, - {file = "coverage-7.6.10-cp311-cp311-win_amd64.whl", hash = "sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609"}, - {file = "coverage-7.6.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853"}, - {file = "coverage-7.6.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078"}, - {file = "coverage-7.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0"}, - {file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50"}, - {file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022"}, - {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b"}, - {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0"}, - {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852"}, - {file = "coverage-7.6.10-cp312-cp312-win32.whl", hash = "sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359"}, - {file = "coverage-7.6.10-cp312-cp312-win_amd64.whl", hash = "sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247"}, - {file = "coverage-7.6.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9"}, - {file = "coverage-7.6.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b"}, - {file = "coverage-7.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690"}, - {file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18"}, - {file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c"}, - {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd"}, - {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e"}, - {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694"}, - {file = "coverage-7.6.10-cp313-cp313-win32.whl", hash = "sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6"}, - {file = "coverage-7.6.10-cp313-cp313-win_amd64.whl", hash = "sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e"}, - {file = "coverage-7.6.10-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe"}, - {file = "coverage-7.6.10-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273"}, - {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8"}, - {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098"}, - {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb"}, - {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0"}, - {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf"}, - {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2"}, - {file = "coverage-7.6.10-cp313-cp313t-win32.whl", hash = "sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312"}, - {file = "coverage-7.6.10-cp313-cp313t-win_amd64.whl", hash = "sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d"}, - {file = "coverage-7.6.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a"}, - {file = "coverage-7.6.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27"}, - {file = "coverage-7.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4"}, - {file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f"}, - {file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25"}, - {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315"}, - {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90"}, - {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d"}, - {file = "coverage-7.6.10-cp39-cp39-win32.whl", hash = "sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18"}, - {file = "coverage-7.6.10-cp39-cp39-win_amd64.whl", hash = "sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59"}, - {file = "coverage-7.6.10-pp39.pp310-none-any.whl", hash = "sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f"}, - {file = "coverage-7.6.10.tar.gz", hash = "sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23"}, -] - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "deepdiff" -version = "8.2.0" -description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." -optional = false -python-versions = ">=3.8" -files = [ - {file = "deepdiff-8.2.0-py3-none-any.whl", hash = "sha256:5091f2cdfd372b1b9f6bfd8065ba323ae31118dc4e42594371b38c8bea3fd0a4"}, - {file = "deepdiff-8.2.0.tar.gz", hash = "sha256:6ec78f65031485735545ffbe7a61e716c3c2d12ca6416886d5e9291fc76c46c3"}, -] - -[package.dependencies] -orderly-set = ">=5.3.0,<6" - -[package.extras] -cli = ["click (==8.1.8)", "pyyaml (==6.0.2)"] -optimize = ["orjson"] - -[[package]] -name = "distlib" -version = "0.3.9" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, -] - -[[package]] -name = "docutils" -version = "0.21.2" -description = "Docutils -- Python Documentation Utilities" -optional = false -python-versions = ">=3.9" -files = [ - {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, - {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, -] - -[[package]] -name = "dunamai" -version = "1.23.0" -description = "Dynamic version generation" -optional = false -python-versions = ">=3.5" -files = [ - {file = "dunamai-1.23.0-py3-none-any.whl", hash = "sha256:a0906d876e92441793c6a423e16a4802752e723e9c9a5aabdc5535df02dbe041"}, - {file = "dunamai-1.23.0.tar.gz", hash = "sha256:a163746de7ea5acb6dacdab3a6ad621ebc612ed1e528aaa8beedb8887fccd2c4"}, -] - -[package.dependencies] -packaging = ">=20.9" - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "filelock" -version = "3.17.0" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.9" -files = [ - {file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"}, - {file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] -typing = ["typing-extensions (>=4.12.2)"] - -[[package]] -name = "frozenlist" -version = "1.5.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -optional = false -python-versions = ">=3.8" -files = [ - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, - {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, - {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, - {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, - {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, - {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, - {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, - {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, - {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, - {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, - {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, - {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, - {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, - {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, - {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, -] - -[[package]] -name = "funcy" -version = "2.0" -description = "A fancy and practical functional tools" -optional = false -python-versions = "*" -files = [ - {file = "funcy-2.0-py2.py3-none-any.whl", hash = "sha256:53df23c8bb1651b12f095df764bfb057935d49537a56de211b098f4c79614bb0"}, - {file = "funcy-2.0.tar.gz", hash = "sha256:3963315d59d41c6f30c04bc910e10ab50a3ac4a225868bfa96feed133df075cb"}, -] - -[[package]] -name = "identify" -version = "2.6.6" -description = "File identification library for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "identify-2.6.6-py2.py3-none-any.whl", hash = "sha256:cbd1810bce79f8b671ecb20f53ee0ae8e86ae84b557de31d89709dc2a48ba881"}, - {file = "identify-2.6.6.tar.gz", hash = "sha256:7bec12768ed44ea4761efb47806f0a41f86e7c0a5fdf5950d4648c90eca7e251"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.10" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.6" -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "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 = "jinja2" -version = "3.1.5" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, - {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jinja2-ansible-filters" -version = "1.3.2" -description = "A port of Ansible's jinja2 filters without requiring ansible core." -optional = false -python-versions = "*" -files = [ - {file = "jinja2-ansible-filters-1.3.2.tar.gz", hash = "sha256:07c10cf44d7073f4f01102ca12d9a2dc31b41d47e4c61ed92ef6a6d2669b356b"}, - {file = "jinja2_ansible_filters-1.3.2-py3-none-any.whl", hash = "sha256:e1082f5564917649c76fed239117820610516ec10f87735d0338688800a55b34"}, -] - -[package.dependencies] -Jinja2 = "*" -PyYAML = "*" - -[package.extras] -test = ["pytest", "pytest-cov"] - -[[package]] -name = "libsass" -version = "0.23.0" -description = "Sass for Python: A straightforward binding of libsass for Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "libsass-0.23.0-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:34cae047cbbfc4ffa832a61cbb110f3c95f5471c6170c842d3fed161e40814dc"}, - {file = "libsass-0.23.0-cp38-abi3-macosx_14_0_arm64.whl", hash = "sha256:ea97d1b45cdc2fc3590cb9d7b60f1d8915d3ce17a98c1f2d4dd47ee0d9c68ce6"}, - {file = "libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306"}, - {file = "libsass-0.23.0-cp38-abi3-win32.whl", hash = "sha256:31e86d92a5c7a551df844b72d83fc2b5e50abc6fbbb31e296f7bebd6489ed1b4"}, - {file = "libsass-0.23.0-cp38-abi3-win_amd64.whl", hash = "sha256:a2ec85d819f353cbe807432d7275d653710d12b08ec7ef61c124a580a8352f3c"}, - {file = "libsass-0.23.0.tar.gz", hash = "sha256:6f209955ede26684e76912caf329f4ccb57e4a043fd77fe0e7348dd9574f1880"}, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.9" -files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, -] - -[[package]] -name = "mergedeep" -version = "1.3.4" -description = "A deep merge function for 🐍." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "more-itertools" -version = "10.6.0" -description = "More routines for operating on iterables, beyond itertools" -optional = false -python-versions = ">=3.9" -files = [ - {file = "more-itertools-10.6.0.tar.gz", hash = "sha256:2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b"}, - {file = "more_itertools-10.6.0-py3-none-any.whl", hash = "sha256:6eb054cb4b6db1473f6e15fcc676a08e4732548acd47c708f0e179c2c7c01e89"}, -] - -[[package]] -name = "msgpack" -version = "1.1.0" -description = "MessagePack serializer" -optional = false -python-versions = ">=3.8" -files = [ - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"}, - {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"}, - {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"}, - {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"}, - {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"}, - {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"}, - {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"}, - {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"}, - {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"}, - {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"}, - {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"}, - {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"}, - {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"}, - {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, -] - -[[package]] -name = "multidict" -version = "6.1.0" -description = "multidict implementation" -optional = false -python-versions = ">=3.8" -files = [ - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, - {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, - {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, - {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, - {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, - {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, - {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, - {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, - {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, - {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, - {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, - {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, - {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, - {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, - {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} - -[[package]] -name = "mypy" -version = "1.15.0" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, - {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, - {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, - {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, - {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, - {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, - {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, - {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, - {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, - {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"}, - {file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"}, - {file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"}, - {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, - {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, -] - -[package.dependencies] -mypy_extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing_extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -faster-cache = ["orjson"] -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 = "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 = "nova-mvvm" -version = "0.9.0" -description = "A Python Package for Model-View-ViewModel pattern" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_mvvm-0.9.0-py3-none-any.whl", hash = "sha256:60c70f8579b155e7081548e8aec9e77de497fa33ac569096015cffe27ef0f796"}, -] - -[package.dependencies] -deepdiff = ">=8.0.1,<9.0.0" -pytest-asyncio = ">=0.25.0,<0.26.0" -trame = ">=3.6.3,<4.0.0" - -[package.extras] -panel = ["panel (>=1.4.4,<2.0.0)"] -pyqt5 = ["pyqt5 (>=5.15.11,<6.0.0)"] -pyqt6 = ["pyqt6 (>=6.7.0,<7.0.0)"] - -[[package]] -name = "nova-trame" -version = "0.14.2" -description = "A Python Package for injecting curated themes and custom components into Trame applications" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_trame-0.14.2-py3-none-any.whl", hash = "sha256:225c97960947e7b107c5ed425213658ab192079253ecd13451cd06af66ef1ca3"}, -] - -[package.dependencies] -libsass = "*" -mergedeep = "*" -nova-mvvm = "*" -pydantic = "*" -tomli = "*" -trame = "*" -trame-vega = "*" -trame-vuetify = "*" - -[[package]] -name = "orderly-set" -version = "5.3.0" -description = "Orderly set" -optional = false -python-versions = ">=3.8" -files = [ - {file = "orderly_set-5.3.0-py3-none-any.whl", hash = "sha256:c2c0bfe604f5d3d9b24e8262a06feb612594f37aa3845650548befd7772945d1"}, - {file = "orderly_set-5.3.0.tar.gz", hash = "sha256:80b3d8fdd3d39004d9aad389eaa0eab02c71f0a0511ba3a6d54a935a6c6a0acc"}, -] - -[[package]] -name = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "platformdirs" -version = "4.3.6" -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.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] - -[[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 = "plumbum" -version = "1.9.0" -description = "Plumbum: shell combinators library" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5"}, - {file = "plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219"}, -] - -[package.dependencies] -pywin32 = {version = "*", markers = "platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""} - -[package.extras] -dev = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] -docs = ["sphinx (>=4.0.0)", "sphinx-rtd-theme (>=1.0.0)"] -ssh = ["paramiko"] -test = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] - -[[package]] -name = "pockets" -version = "0.9.1" -description = "A collection of helpful Python tools!" -optional = false -python-versions = "*" -files = [ - {file = "pockets-0.9.1-py2.py3-none-any.whl", hash = "sha256:68597934193c08a08eb2bf6a1d85593f627c22f9b065cc727a4f03f669d96d86"}, - {file = "pockets-0.9.1.tar.gz", hash = "sha256:9320f1a3c6f7a9133fe3b571f283bcf3353cd70249025ae8d618e40e9f7e92b3"}, -] - -[package.dependencies] -six = ">=1.5.2" - -[[package]] -name = "pre-commit" -version = "4.1.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = false -python-versions = ">=3.9" -files = [ - {file = "pre_commit-4.1.0-py2.py3-none-any.whl", hash = "sha256:d29e7cb346295bcc1cc75fc3e92e343495e3ea0196c9ec6ba53f49f10ab6ae7b"}, - {file = "pre_commit-4.1.0.tar.gz", hash = "sha256:ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4"}, -] - -[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.50" -description = "Library for building powerful interactive command lines in Python" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, - {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "propcache" -version = "0.2.1" -description = "Accelerated property cache" -optional = false -python-versions = ">=3.9" -files = [ - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, - {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, - {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, - {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, - {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, - {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, - {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, - {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, - {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, - {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, - {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, - {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, - {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, -] - -[[package]] -name = "pydantic" -version = "2.10.6" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, - {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.27.2" -typing-extensions = ">=4.12.2" - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] - -[[package]] -name = "pydantic-core" -version = "2.27.2" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, - {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pygments" -version = "2.19.1" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pytest" -version = "8.3.4" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, - {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-asyncio" -version = "0.25.3" -description = "Pytest support for asyncio" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3"}, - {file = "pytest_asyncio-0.25.3.tar.gz", hash = "sha256:fc1da2cf9f125ada7e710b4ddad05518d4cee187ae9412e9ac9271003497f07a"}, -] - -[package.dependencies] -pytest = ">=8.2,<9" - -[package.extras] -docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] -testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] - -[[package]] -name = "pywin32" -version = "308" -description = "Python for Window Extensions" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, - {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, - {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, - {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, - {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, - {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, - {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, - {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, - {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, - {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, - {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, - {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, - {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, - {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, - {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, - {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, - {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, - {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "questionary" -version = "2.1.0" -description = "Python library to build pretty command line user prompts ⭐️" -optional = false -python-versions = ">=3.8" -files = [ - {file = "questionary-2.1.0-py3-none-any.whl", hash = "sha256:44174d237b68bc828e4878c763a9ad6790ee61990e0ae72927694ead57bab8ec"}, - {file = "questionary-2.1.0.tar.gz", hash = "sha256:6302cdd645b19667d8f6e6634774e9538bfcd1aad9be287e743d96cacaf95587"}, -] - -[package.dependencies] -prompt_toolkit = ">=2.0,<4.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 = "ruff" -version = "0.9.4" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.9.4-py3-none-linux_armv6l.whl", hash = "sha256:64e73d25b954f71ff100bb70f39f1ee09e880728efb4250c632ceed4e4cdf706"}, - {file = "ruff-0.9.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6ce6743ed64d9afab4fafeaea70d3631b4d4b28b592db21a5c2d1f0ef52934bf"}, - {file = "ruff-0.9.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:54499fb08408e32b57360f6f9de7157a5fec24ad79cb3f42ef2c3f3f728dfe2b"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37c892540108314a6f01f105040b5106aeb829fa5fb0561d2dcaf71485021137"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de9edf2ce4b9ddf43fd93e20ef635a900e25f622f87ed6e3047a664d0e8f810e"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87c90c32357c74f11deb7fbb065126d91771b207bf9bfaaee01277ca59b574ec"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:56acd6c694da3695a7461cc55775f3a409c3815ac467279dfa126061d84b314b"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0c93e7d47ed951b9394cf352d6695b31498e68fd5782d6cbc282425655f687a"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d4c8772670aecf037d1bf7a07c39106574d143b26cfe5ed1787d2f31e800214"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfc5f1d7afeda8d5d37660eeca6d389b142d7f2b5a1ab659d9214ebd0e025231"}, - {file = "ruff-0.9.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:faa935fc00ae854d8b638c16a5f1ce881bc3f67446957dd6f2af440a5fc8526b"}, - {file = "ruff-0.9.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a6c634fc6f5a0ceae1ab3e13c58183978185d131a29c425e4eaa9f40afe1e6d6"}, - {file = "ruff-0.9.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:433dedf6ddfdec7f1ac7575ec1eb9844fa60c4c8c2f8887a070672b8d353d34c"}, - {file = "ruff-0.9.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d612dbd0f3a919a8cc1d12037168bfa536862066808960e0cc901404b77968f0"}, - {file = "ruff-0.9.4-py3-none-win32.whl", hash = "sha256:db1192ddda2200671f9ef61d9597fcef89d934f5d1705e571a93a67fb13a4402"}, - {file = "ruff-0.9.4-py3-none-win_amd64.whl", hash = "sha256:05bebf4cdbe3ef75430d26c375773978950bbf4ee3c95ccb5448940dc092408e"}, - {file = "ruff-0.9.4-py3-none-win_arm64.whl", hash = "sha256:585792f1e81509e38ac5123492f8875fbc36f3ede8185af0a26df348e5154f41"}, - {file = "ruff-0.9.4.tar.gz", hash = "sha256:6907ee3529244bb0ed066683e075f09285b38dd5b4039370df6ff06041ca19e7"}, -] - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -optional = false -python-versions = "*" -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "sphinx" -version = "8.1.3" -description = "Python documentation generator" -optional = false -python-versions = ">=3.10" -files = [ - {file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"}, - {file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"}, -] - -[package.dependencies] -alabaster = ">=0.7.14" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" -imagesize = ">=1.3" -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" -sphinxcontrib-applehelp = ">=1.0.7" -sphinxcontrib-devhelp = ">=1.0.6" -sphinxcontrib-htmlhelp = ">=2.0.6" -sphinxcontrib-jsmath = ">=1.0.1" -sphinxcontrib-qthelp = ">=1.0.6" -sphinxcontrib-serializinghtml = ">=1.1.9" -tomli = {version = ">=2", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] - -[[package]] -name = "sphinx-rtd-theme" -version = "3.0.2" -description = "Read the Docs theme for Sphinx" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, - {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, -] - -[package.dependencies] -docutils = ">0.18,<0.22" -sphinx = ">=6,<9" -sphinxcontrib-jquery = ">=4,<5" - -[package.extras] -dev = ["bump2version", "transifex-client", "twine", "wheel"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, - {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, - {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, - {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jquery" -version = "4.1" -description = "Extension to include jQuery on newer Sphinx releases" -optional = false -python-versions = ">=2.7" -files = [ - {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, - {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, -] - -[package.dependencies] -Sphinx = ">=1.8" - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -optional = false -python-versions = ">=3.5" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-napoleon" -version = "0.7" -description = "Sphinx \"napoleon\" extension." -optional = false -python-versions = "*" -files = [ - {file = "sphinxcontrib-napoleon-0.7.tar.gz", hash = "sha256:407382beed396e9f2d7f3043fad6afda95719204a1e1a231ac865f40abcbfcf8"}, - {file = "sphinxcontrib_napoleon-0.7-py2.py3-none-any.whl", hash = "sha256:711e41a3974bdf110a484aec4c1a556799eb0b3f3b897521a018ad7e2db13fef"}, -] - -[package.dependencies] -pockets = ">=0.3" -six = ">=1.5.2" - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, - {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, - {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "tomli" -version = "2.2.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, -] - -[[package]] -name = "trame" -version = "3.8.0" -description = "Trame, a framework to build applications in plain Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame-3.8.0-py3-none-any.whl", hash = "sha256:e4c9e648938ec0759f6893ba7afd095afaf0c88b4b8202157717691e135e924f"}, - {file = "trame-3.8.0.tar.gz", hash = "sha256:d084942828ac7930e05dbb765468cffe4ef8bd5170dbd48333a930140b540ccd"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" -trame-server = ">=3.2.3,<4" -wslink = ">=2.1.3" - -[package.extras] -app = ["pywebview"] -dev = ["pre-commit", "pytest", "ruff"] -jupyter = ["jupyterlab"] - -[[package]] -name = "trame-client" -version = "3.5.2" -description = "Internal client of trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_client-3.5.2-py3-none-any.whl", hash = "sha256:8a950482a437c8245b66bfeb00ac5d7b880b9023f32199e28f15d04f29205ee1"}, - {file = "trame_client-3.5.2.tar.gz", hash = "sha256:e46ddb8e3d611bff90803bff176044083ed85095544557a499eae9c231abedc5"}, -] - -[package.extras] -dev = ["pre-commit", "ruff"] -test = ["Pillow", "pixelmatch", "pytest", "pytest-xprocess", "seleniumbase"] - -[[package]] -name = "trame-server" -version = "3.3.0" -description = "Internal server side implementation of trame" -optional = false -python-versions = ">=3.7" -files = [ - {file = "trame_server-3.3.0-py3-none-any.whl", hash = "sha256:7865053d82617c8d435d274ccf917594a2b1c0d90379f9e686cd662c7ee9cf1a"}, - {file = "trame_server-3.3.0.tar.gz", hash = "sha256:b0b1769d9a0eb816c69076188773cb93b0e2f83c27009d8e94d7208e63c33805"}, -] - -[package.dependencies] -more-itertools = "*" -wslink = ">=2.2.2,<3" - -[package.extras] -dev = ["pre-commit", "pytest", "pytest-asyncio", "ruff"] - -[[package]] -name = "trame-vega" -version = "2.1.1" -description = "Vega widget for trame" -optional = false -python-versions = "*" -files = [ - {file = "trame-vega-2.1.1.tar.gz", hash = "sha256:a3d82f7535a66a782262647001987dba3ad0ddc64ce21225a4cfccd351fed8fa"}, - {file = "trame_vega-2.1.1-py3-none-any.whl", hash = "sha256:044ea338f74fe83e7a5eca15fd1723b3b5f2847d5ca0ed2f0325e30d7676b6c9"}, -] - -[package.dependencies] -trame-client = "*" - -[[package]] -name = "trame-vuetify" -version = "2.8.1" -description = "Vuetify widgets for trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_vuetify-2.8.1-py3-none-any.whl", hash = "sha256:47d35ab4ec6d37ad1ad8e63c0a2de7c25677f62ef383f1b1e06dd74dda8a3767"}, - {file = "trame_vuetify-2.8.1.tar.gz", hash = "sha256:281606797c29b0300ec2b3524c4396ac2b78da1a300d188d603af09eea83bfe2"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" - -[package.extras] -dev = ["pre-commit", "pytest", "ruff"] - -[[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 = "urllib3" -version = "2.3.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.9" -files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.29.1" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.8" -files = [ - {file = "virtualenv-20.29.1-py3-none-any.whl", hash = "sha256:4e4cb403c0b0da39e13b46b1b2476e505cb0046b25f242bee80f62bf990b2779"}, - {file = "virtualenv-20.29.1.tar.gz", hash = "sha256:b8b8970138d32fb606192cb97f6cd4bb644fa486be9308fb9b63f81091b5dc35"}, -] - -[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 = "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 = "wslink" -version = "2.2.2" -description = "Python/JavaScript library for communicating over WebSocket" -optional = false -python-versions = "*" -files = [ - {file = "wslink-2.2.2-py3-none-any.whl", hash = "sha256:8fbab2fb89d0215b9ac3da0a20d554e6b1e05bab8b97883923e7f7ffeaef43d3"}, - {file = "wslink-2.2.2.tar.gz", hash = "sha256:f9c24c08b89d2bd9bd77951ad0c01da9c28905dda29d7397f7f72b542c496840"}, -] - -[package.dependencies] -aiohttp = "<4" -msgpack = ">=1,<2" - -[package.extras] -ssl = ["cryptography"] - -[[package]] -name = "yarl" -version = "1.18.3" -description = "Yet another URL library" -optional = false -python-versions = ">=3.9" -files = [ - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, - {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, - {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, - {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, - {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, - {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, - {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, - {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, - {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, - {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, - {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, - {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, - {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -propcache = ">=0.2.0" - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "1131a1a151f36bbe11b4fc723d87b3b6ff1d523b617c477bea8ff7b11b8c9997" diff --git a/code/episode_2/pyproject.toml b/code/episode_2/pyproject.toml index acfaf7b1..5f0d2bf9 100755 --- a/code/episode_2/pyproject.toml +++ b/code/episode_2/pyproject.toml @@ -1,4 +1,4 @@ -[tool.poetry] +[project] name = "nova-tutorial" version = "0.1.0" description = "Nova Tutorial Project" @@ -6,19 +6,51 @@ authors = [] readme = "README.md" license = "MIT" keywords = ["NDIP", "NOVA", "python"] +requires-python = ">=3.10,<3.14" -packages = [ - { include = "nova_tutorial", from = "src" } -] +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["linux-64", "osx-64"] + +[tool.pixi.environments] +default = {features = ["dev"], solve-group = "default"} +production = {features = [], solve-group = "default"} +[tool.pixi.dependencies] -[tool.poetry.dependencies] -python = "^3.10" +[tool.pixi.pypi-dependencies] +nova-tutorial = { path = ".", editable = true } +hatch = "*" +gitpython = ">=3.1.40,<4" +python-gitlab = ">=5.6.0,<6" nova-trame = "*" +trame-datagrid = ">=0.2.2" + + +[tool.pixi.feature.dev.pypi-dependencies] +mypy = ">=1.10.0" +pre-commit = ">=2.20.0" +coverage = ">=6.4.3" +pytest = "*" +ruff = ">=0.6.2" +copier=">=9.3" +sphinx = "*" +sphinx-rtd-theme = "*" +sphinxcontrib-napoleon ="*" +tomli = "*" + +[tool.pixi.tasks] +app = "python -m src.nova_tutorial.app" +init-repo = "python -m scripts.git_utils" +deploy-production = "python -m scripts.xml_utils" +deploy-prototype = "python -m scripts.xml_utils_prototype" + [build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +requires = ["hatchling"] +build-backend = "hatchling.build" +[tool.hatch.build.targets.wheel] +packages = ["src/nova_tutorial"] [tool.pytest.ini_options] testpaths = ["tests"] @@ -26,6 +58,7 @@ python_files = ["test*.py"] norecursedirs = [".git", "tmp*", "_tmp*", "__pycache__"] [tool.ruff] +extend-exclude = [".pixi"] line-length = 120 [tool.ruff.lint] @@ -50,8 +83,6 @@ ignore = [ [tool.ruff.lint.extend-per-file-ignores] '__init__.py' = ['D104'] # Missing docstring in public package - - [tool.ruff.lint.pydocstyle] convention = "numpy" @@ -72,18 +103,3 @@ omit = [ [tool.coverage.run] command_line = "-m pytest --junit-xml=reports/junit.xml" data_file = "reports/.coverage" - -[tool.poetry.dev-dependencies] -mypy = ">=1.10.0" -pre-commit = ">=2.20.0" -coverage = ">=6.4.3" -pytest = "*" -ruff = ">=0.6.2" -copier=">=9.3" -sphinx = "*" -sphinx-rtd-theme = "*" -sphinxcontrib-napoleon ="*" -tomli = "*" - -[tool.poetry.scripts] -app = "nova_tutorial.app:main" diff --git a/code/episode_2/src/nova_tutorial/__init__.py b/code/episode_2/src/nova_tutorial/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_2/src/nova_tutorial/app/__init__.py b/code/episode_2/src/nova_tutorial/app/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_2/src/nova_tutorial/app/__main__.py b/code/episode_2/src/nova_tutorial/app/__main__.py old mode 100755 new mode 100644 diff --git a/code/episode_2/src/nova_tutorial/app/main.py b/code/episode_2/src/nova_tutorial/app/main.py old mode 100755 new mode 100644 index 2977dbe1..68cf8a37 --- a/code/episode_2/src/nova_tutorial/app/main.py +++ b/code/episode_2/src/nova_tutorial/app/main.py @@ -5,7 +5,7 @@ def main() -> None: kwargs = {} - from .views.main import MainApp + from .views.main_view import MainApp app = MainApp() for arg in sys.argv[2:]: diff --git a/code/episode_2/src/nova_tutorial/app/models/__init__.py b/code/episode_2/src/nova_tutorial/app/models/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_2/src/nova_tutorial/app/models/main_model.py b/code/episode_2/src/nova_tutorial/app/models/main_model.py old mode 100755 new mode 100644 diff --git a/code/episode_2/src/nova_tutorial/app/mvvm_factory.py b/code/episode_2/src/nova_tutorial/app/mvvm_factory.py old mode 100755 new mode 100644 index d7cf5f4b..c11e5916 --- a/code/episode_2/src/nova_tutorial/app/mvvm_factory.py +++ b/code/episode_2/src/nova_tutorial/app/mvvm_factory.py @@ -3,7 +3,7 @@ from nova.mvvm.interface import BindingInterface from .models.main_model import MainModel -from .view_models.main import MainViewModel +from .view_models.main_view_model import MainViewModel def create_viewmodels(binding: BindingInterface) -> dict: diff --git a/code/episode_2/src/nova_tutorial/app/view_models/__init__.py b/code/episode_2/src/nova_tutorial/app/view_models/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_2/src/nova_tutorial/app/view_models/main.py b/code/episode_2/src/nova_tutorial/app/view_models/main.py deleted file mode 100755 index 5afc3cd0..00000000 --- a/code/episode_2/src/nova_tutorial/app/view_models/main.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Module for the main ViewModel.""" - -from typing import Any, Dict - -from nova.mvvm.interface import BindingInterface - -from ..models.main_model import MainModel - - -class MainViewModel: - """Viewmodel class, used to create data<->view binding and react on changes from GUI.""" - - def __init__(self, model: MainModel, binding: BindingInterface): - self.model = model - - # here we create a bind that connects ViewModel with View. It returns a communicator object, - # that allows to update View from ViewModel (by calling update_view). - # self.model will be updated automatically on changes of connected fields in View, - # but one also can provide a callback function if they want to react to those events - # and/or process errors. - self.config_bind = binding.new_bind(self.model, callback_after_update=self.change_callback) - - def change_callback(self, results: Dict[str, Any]) -> None: - if results["error"]: - print(f"error in fields {results['errored']}, model not changed") - else: - print(f"model fields updated: {results['updated']}") - - def update_view(self) -> None: - self.config_bind.update_in_view(self.model) diff --git a/code/episode_2/src/nova_tutorial/app/views/__init__.py b/code/episode_2/src/nova_tutorial/app/views/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_2/src/nova_tutorial/app/views/main.py b/code/episode_2/src/nova_tutorial/app/views/main.py deleted file mode 100755 index c6832686..00000000 --- a/code/episode_2/src/nova_tutorial/app/views/main.py +++ /dev/null @@ -1,44 +0,0 @@ -"""Main file.""" - -import logging - -from nova.mvvm.trame_binding import TrameBinding -from nova.trame import ThemedApp -from trame.app import get_server - -from ..mvvm_factory import create_viewmodels -from ..view_models.main import MainViewModel -from .tab_content_panel import TabContentPanel -from .tabs_panel import TabsPanel - -logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - - -class MainApp(ThemedApp): - """Main application view class. Calls rendering of nested UI elements.""" - - def __init__(self) -> None: - super().__init__() - self.server = get_server(None, client_type="vue3") - binding = TrameBinding(self.server.state) - self.server.state.trame__title = "Nova Tutorial" - self.view_models = create_viewmodels(binding) - self.view_model: MainViewModel = self.view_models["main"] - self.create_ui() - - def create_ui(self) -> None: - self.state.trame__title = "Nova Tutorial" - - with super().create_ui() as layout: - layout.toolbar_title.set_text("Nova Tutorial") - with layout.pre_content: - TabsPanel(self.view_models["main"]) - with layout.content: - TabContentPanel( - self.server, - self.view_models["main"], - ) - with layout.post_content: - pass - return layout diff --git a/code/episode_2/src/nova_tutorial/app/views/sample_tab_1.py b/code/episode_2/src/nova_tutorial/app/views/sample_tab_1.py old mode 100755 new mode 100644 index 891cdd10..f5d062e5 --- a/code/episode_2/src/nova_tutorial/app/views/sample_tab_1.py +++ b/code/episode_2/src/nova_tutorial/app/views/sample_tab_1.py @@ -1,6 +1,7 @@ """Module for the Sample Tab 1.""" from nova.trame.view.components import InputField +from nova.trame.view.layouts import VBoxLayout class SampleTab1: @@ -10,4 +11,5 @@ def __init__(self) -> None: self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.username") + with VBoxLayout(): + InputField(v_model="config.username") diff --git a/code/episode_2/src/nova_tutorial/app/views/sample_tab_2.py b/code/episode_2/src/nova_tutorial/app/views/sample_tab_2.py old mode 100755 new mode 100644 index 46765f0a..0e787b40 --- a/code/episode_2/src/nova_tutorial/app/views/sample_tab_2.py +++ b/code/episode_2/src/nova_tutorial/app/views/sample_tab_2.py @@ -1,6 +1,7 @@ """Module for the Sample Tab 2.""" from nova.trame.view.components import InputField +from nova.trame.view.layouts import VBoxLayout class SampleTab2: @@ -10,4 +11,5 @@ def __init__(self) -> None: self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.password") + with VBoxLayout(): + InputField(v_model="config.password") diff --git a/code/episode_2/src/nova_tutorial/app/views/tab_content_panel.py b/code/episode_2/src/nova_tutorial/app/views/tab_content_panel.py old mode 100755 new mode 100644 index 2f813811..4b61ee4c --- a/code/episode_2/src/nova_tutorial/app/views/tab_content_panel.py +++ b/code/episode_2/src/nova_tutorial/app/views/tab_content_panel.py @@ -1,9 +1,9 @@ """Module for the Tab Content panel.""" -from trame.widgets import vuetify3 as vuetify +from nova.trame.view.layouts import VBoxLayout from trame_server import Server -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel from .sample_tab_1 import SampleTab1 from .sample_tab_2 import SampleTab2 @@ -18,11 +18,7 @@ def __init__(self, server: Server, view_model: MainViewModel) -> None: self.create_ui() def create_ui(self) -> None: - with vuetify.VForm(ref="form") as self.f: - with vuetify.VContainer(classes="pa-0", fluid=True): - with vuetify.VCard(): - with vuetify.VWindow(v_model="active_tab"): - with vuetify.VWindowItem(value=1): - SampleTab1() - with vuetify.VWindowItem(value=2): - SampleTab2() + with VBoxLayout(v_show="view_state.active_tab == 0", stretch=True): + SampleTab1() + with VBoxLayout(v_show="view_state.active_tab == 1", stretch=True): + SampleTab2() diff --git a/code/episode_2/src/nova_tutorial/app/views/tabs_panel.py b/code/episode_2/src/nova_tutorial/app/views/tabs_panel.py old mode 100755 new mode 100644 index c36ea880..478b9c28 --- a/code/episode_2/src/nova_tutorial/app/views/tabs_panel.py +++ b/code/episode_2/src/nova_tutorial/app/views/tabs_panel.py @@ -1,8 +1,9 @@ """Module for the Tab panel.""" +from trame.widgets import client from trame.widgets import vuetify3 as vuetify -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel class TabsPanel: @@ -11,9 +12,11 @@ class TabsPanel: def __init__(self, view_model: MainViewModel): self.view_model = view_model self.view_model.config_bind.connect("config") + self.view_model.view_state_bind.connect("view_state") self.create_ui() def create_ui(self) -> None: - with vuetify.VTabs(v_model=("active_tab", 0), classes="pl-5"): - vuetify.VTab("Sample Tab 1", value=1) - vuetify.VTab("Sample Tab 2", value=2) + with client.DeepReactive("view_state"): + with vuetify.VTabs(v_model="view_state.active_tab", classes="pl-5"): + vuetify.VTab("Sample Tab 1", value=0) + vuetify.VTab("Sample Tab 2", value=1) diff --git a/code/episode_3/poetry.lock b/code/episode_3/poetry.lock deleted file mode 100644 index 4e9d65c3..00000000 --- a/code/episode_3/poetry.lock +++ /dev/null @@ -1,2335 +0,0 @@ -# This file is automatically @generated by Poetry 1.4.1 and should not be changed by hand. - -[[package]] -name = "aiohappyeyeballs" -version = "2.4.4" -description = "Happy Eyeballs for asyncio" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, - {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, -] - -[[package]] -name = "aiohttp" -version = "3.11.12" -description = "Async http client/server framework (asyncio)" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiohttp-3.11.12-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:aa8a8caca81c0a3e765f19c6953416c58e2f4cc1b84829af01dd1c771bb2f91f"}, - {file = "aiohttp-3.11.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:84ede78acde96ca57f6cf8ccb8a13fbaf569f6011b9a52f870c662d4dc8cd854"}, - {file = "aiohttp-3.11.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:584096938a001378484aa4ee54e05dc79c7b9dd933e271c744a97b3b6f644957"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:392432a2dde22b86f70dd4a0e9671a349446c93965f261dbaecfaf28813e5c42"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:88d385b8e7f3a870146bf5ea31786ef7463e99eb59e31db56e2315535d811f55"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b10a47e5390c4b30a0d58ee12581003be52eedd506862ab7f97da7a66805befb"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b5263dcede17b6b0c41ef0c3ccce847d82a7da98709e75cf7efde3e9e3b5cae"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50c5c7b8aa5443304c55c262c5693b108c35a3b61ef961f1e782dd52a2f559c7"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d1c031a7572f62f66f1257db37ddab4cb98bfaf9b9434a3b4840bf3560f5e788"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:7e44eba534381dd2687be50cbd5f2daded21575242ecfdaf86bbeecbc38dae8e"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:145a73850926018ec1681e734cedcf2716d6a8697d90da11284043b745c286d5"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:2c311e2f63e42c1bf86361d11e2c4a59f25d9e7aabdbdf53dc38b885c5435cdb"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:ea756b5a7bac046d202a9a3889b9a92219f885481d78cd318db85b15cc0b7bcf"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:526c900397f3bbc2db9cb360ce9c35134c908961cdd0ac25b1ae6ffcaa2507ff"}, - {file = "aiohttp-3.11.12-cp310-cp310-win32.whl", hash = "sha256:b8d3bb96c147b39c02d3db086899679f31958c5d81c494ef0fc9ef5bb1359b3d"}, - {file = "aiohttp-3.11.12-cp310-cp310-win_amd64.whl", hash = "sha256:7fe3d65279bfbee8de0fb4f8c17fc4e893eed2dba21b2f680e930cc2b09075c5"}, - {file = "aiohttp-3.11.12-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:87a2e00bf17da098d90d4145375f1d985a81605267e7f9377ff94e55c5d769eb"}, - {file = "aiohttp-3.11.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b34508f1cd928ce915ed09682d11307ba4b37d0708d1f28e5774c07a7674cac9"}, - {file = "aiohttp-3.11.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:936d8a4f0f7081327014742cd51d320296b56aa6d324461a13724ab05f4b2933"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2de1378f72def7dfb5dbd73d86c19eda0ea7b0a6873910cc37d57e80f10d64e1"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9d45dbb3aaec05cf01525ee1a7ac72de46a8c425cb75c003acd29f76b1ffe94"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:930ffa1925393381e1e0a9b82137fa7b34c92a019b521cf9f41263976666a0d6"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8340def6737118f5429a5df4e88f440746b791f8f1c4ce4ad8a595f42c980bd5"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4016e383f91f2814e48ed61e6bda7d24c4d7f2402c75dd28f7e1027ae44ea204"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3c0600bcc1adfaaac321422d615939ef300df81e165f6522ad096b73439c0f58"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:0450ada317a65383b7cce9576096150fdb97396dcfe559109b403c7242faffef"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:850ff6155371fd802a280f8d369d4e15d69434651b844bde566ce97ee2277420"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8fd12d0f989c6099e7b0f30dc6e0d1e05499f3337461f0b2b0dadea6c64b89df"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:76719dd521c20a58a6c256d058547b3a9595d1d885b830013366e27011ffe804"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97fe431f2ed646a3b56142fc81d238abcbaff08548d6912acb0b19a0cadc146b"}, - {file = "aiohttp-3.11.12-cp311-cp311-win32.whl", hash = "sha256:e10c440d142fa8b32cfdb194caf60ceeceb3e49807072e0dc3a8887ea80e8c16"}, - {file = "aiohttp-3.11.12-cp311-cp311-win_amd64.whl", hash = "sha256:246067ba0cf5560cf42e775069c5d80a8989d14a7ded21af529a4e10e3e0f0e6"}, - {file = "aiohttp-3.11.12-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e392804a38353900c3fd8b7cacbea5132888f7129f8e241915e90b85f00e3250"}, - {file = "aiohttp-3.11.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8fa1510b96c08aaad49303ab11f8803787c99222288f310a62f493faf883ede1"}, - {file = "aiohttp-3.11.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dc065a4285307607df3f3686363e7f8bdd0d8ab35f12226362a847731516e42c"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddb31f8474695cd61fc9455c644fc1606c164b93bff2490390d90464b4655df"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9dec0000d2d8621d8015c293e24589d46fa218637d820894cb7356c77eca3259"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3552fe98e90fdf5918c04769f338a87fa4f00f3b28830ea9b78b1bdc6140e0d"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dfe7f984f28a8ae94ff3a7953cd9678550dbd2a1f9bda5dd9c5ae627744c78e"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a481a574af914b6e84624412666cbfbe531a05667ca197804ecc19c97b8ab1b0"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1987770fb4887560363b0e1a9b75aa303e447433c41284d3af2840a2f226d6e0"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:a4ac6a0f0f6402854adca4e3259a623f5c82ec3f0c049374133bcb243132baf9"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c96a43822f1f9f69cc5c3706af33239489a6294be486a0447fb71380070d4d5f"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a5e69046f83c0d3cb8f0d5bd9b8838271b1bc898e01562a04398e160953e8eb9"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:68d54234c8d76d8ef74744f9f9fc6324f1508129e23da8883771cdbb5818cbef"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c9fd9dcf9c91affe71654ef77426f5cf8489305e1c66ed4816f5a21874b094b9"}, - {file = "aiohttp-3.11.12-cp312-cp312-win32.whl", hash = "sha256:0ed49efcd0dc1611378beadbd97beb5d9ca8fe48579fc04a6ed0844072261b6a"}, - {file = "aiohttp-3.11.12-cp312-cp312-win_amd64.whl", hash = "sha256:54775858c7f2f214476773ce785a19ee81d1294a6bedc5cc17225355aab74802"}, - {file = "aiohttp-3.11.12-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:413ad794dccb19453e2b97c2375f2ca3cdf34dc50d18cc2693bd5aed7d16f4b9"}, - {file = "aiohttp-3.11.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a93d28ed4b4b39e6f46fd240896c29b686b75e39cc6992692e3922ff6982b4c"}, - {file = "aiohttp-3.11.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d589264dbba3b16e8951b6f145d1e6b883094075283dafcab4cdd564a9e353a0"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5148ca8955affdfeb864aca158ecae11030e952b25b3ae15d4e2b5ba299bad2"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:525410e0790aab036492eeea913858989c4cb070ff373ec3bc322d700bdf47c1"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bd8695be2c80b665ae3f05cb584093a1e59c35ecb7d794d1edd96e8cc9201d7"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0203433121484b32646a5f5ea93ae86f3d9559d7243f07e8c0eab5ff8e3f70e"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40cd36749a1035c34ba8d8aaf221b91ca3d111532e5ccb5fa8c3703ab1b967ed"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7442662afebbf7b4c6d28cb7aab9e9ce3a5df055fc4116cc7228192ad6cb484"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8a2fb742ef378284a50766e985804bd6adb5adb5aa781100b09befdbfa757b65"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2cee3b117a8d13ab98b38d5b6bdcd040cfb4181068d05ce0c474ec9db5f3c5bb"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f6a19bcab7fbd8f8649d6595624856635159a6527861b9cdc3447af288a00c00"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e4cecdb52aaa9994fbed6b81d4568427b6002f0a91c322697a4bfcc2b2363f5a"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:30f546358dfa0953db92ba620101fefc81574f87b2346556b90b5f3ef16e55ce"}, - {file = "aiohttp-3.11.12-cp313-cp313-win32.whl", hash = "sha256:ce1bb21fc7d753b5f8a5d5a4bae99566386b15e716ebdb410154c16c91494d7f"}, - {file = "aiohttp-3.11.12-cp313-cp313-win_amd64.whl", hash = "sha256:f7914ab70d2ee8ab91c13e5402122edbc77821c66d2758abb53aabe87f013287"}, - {file = "aiohttp-3.11.12-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c3623053b85b4296cd3925eeb725e386644fd5bc67250b3bb08b0f144803e7b"}, - {file = "aiohttp-3.11.12-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:67453e603cea8e85ed566b2700efa1f6916aefbc0c9fcb2e86aaffc08ec38e78"}, - {file = "aiohttp-3.11.12-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6130459189e61baac5a88c10019b21e1f0c6d00ebc770e9ce269475650ff7f73"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9060addfa4ff753b09392efe41e6af06ea5dd257829199747b9f15bfad819460"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34245498eeb9ae54c687a07ad7f160053911b5745e186afe2d0c0f2898a1ab8a"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8dc0fba9a74b471c45ca1a3cb6e6913ebfae416678d90529d188886278e7f3f6"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a478aa11b328983c4444dacb947d4513cb371cd323f3845e53caeda6be5589d5"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c160a04283c8c6f55b5bf6d4cad59bb9c5b9c9cd08903841b25f1f7109ef1259"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:edb69b9589324bdc40961cdf0657815df674f1743a8d5ad9ab56a99e4833cfdd"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ee84c2a22a809c4f868153b178fe59e71423e1f3d6a8cd416134bb231fbf6d3"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:bf4480a5438f80e0f1539e15a7eb8b5f97a26fe087e9828e2c0ec2be119a9f72"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:e6b2732ef3bafc759f653a98881b5b9cdef0716d98f013d376ee8dfd7285abf1"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f752e80606b132140883bb262a457c475d219d7163d996dc9072434ffb0784c4"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ab3247d58b393bda5b1c8f31c9edece7162fc13265334217785518dd770792b8"}, - {file = "aiohttp-3.11.12-cp39-cp39-win32.whl", hash = "sha256:0d5176f310a7fe6f65608213cc74f4228e4f4ce9fd10bcb2bb6da8fc66991462"}, - {file = "aiohttp-3.11.12-cp39-cp39-win_amd64.whl", hash = "sha256:74bd573dde27e58c760d9ca8615c41a57e719bff315c9adb6f2a4281a28e8798"}, - {file = "aiohttp-3.11.12.tar.gz", hash = "sha256:7603ca26d75b1b86160ce1bbe2787a0b706e592af5b2504e12caa88a217767b0"}, -] - -[package.dependencies] -aiohappyeyeballs = ">=2.3.0" -aiosignal = ">=1.1.2" -async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} -attrs = ">=17.3.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -propcache = ">=0.2.0" -yarl = ">=1.17.0,<2.0" - -[package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] - -[[package]] -name = "aiosignal" -version = "1.3.2" -description = "aiosignal: a list of registered asynchronous callbacks" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, - {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" - -[[package]] -name = "alabaster" -version = "1.0.0" -description = "A light, configurable Sphinx theme" -category = "dev" -optional = false -python-versions = ">=3.10" -files = [ - {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, - {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, -] - -[[package]] -name = "annotated-types" -version = "0.7.0" -description = "Reusable constraint types to use with typing.Annotated" -category = "main" -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 = "async-timeout" -version = "5.0.1" -description = "Timeout context manager for asyncio programs" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, - {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, -] - -[[package]] -name = "attrs" -version = "25.1.0" -description = "Classes Without Boilerplate" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, - {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, -] - -[package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] - -[[package]] -name = "babel" -version = "2.17.0" -description = "Internationalization utilities" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, -] - -[package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] - -[[package]] -name = "bioblend" -version = "1.4.0" -description = "Library for interacting with the Galaxy API" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "bioblend-1.4.0-py3-none-any.whl", hash = "sha256:20886e5f7658e1dc3e025cedb4be88538342374afba583ce4e2acb5c14a25c63"}, - {file = "bioblend-1.4.0.tar.gz", hash = "sha256:175d49d288e27d132ff59c870551c87cd95d7747be55ab94807c563291a3fa1d"}, -] - -[package.dependencies] -requests = ">=2.20.0" -requests-toolbelt = ">=0.5.1,<0.9.0 || >0.9.0" -tuspy = "*" - -[package.extras] -testing = ["pytest"] - -[[package]] -name = "certifi" -version = "2025.1.31" -description = "Python package for providing Mozilla's CA Bundle." -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, -] - -[[package]] -name = "cfgv" -version = "3.4.0" -description = "Validate configuration and produce human readable error messages." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, - {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.1" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -category = "main" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "copier" -version = "9.4.1" -description = "A library for rendering project templates." -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "copier-9.4.1-py3-none-any.whl", hash = "sha256:863385b7ba8a9090c832cd12ca072dba9153397dbe7c5f337bf8c3d8859efa32"}, - {file = "copier-9.4.1.tar.gz", hash = "sha256:cc81d8204cb17fbc8c4a14996a8ce764166c34c77236de38cfbeb960c887b68f"}, -] - -[package.dependencies] -colorama = ">=0.4.6" -dunamai = ">=1.7.0" -funcy = ">=1.17" -jinja2 = ">=3.1.4" -jinja2-ansible-filters = ">=1.3.1" -packaging = ">=23.0" -pathspec = ">=0.9.0" -plumbum = ">=1.6.9" -pydantic = ">=2.4.2" -pygments = ">=2.7.1" -pyyaml = ">=5.3.1" -questionary = ">=1.8.1" - -[[package]] -name = "coverage" -version = "7.6.10" -description = "Code coverage measurement for Python" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78"}, - {file = "coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c"}, - {file = "coverage-7.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a"}, - {file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165"}, - {file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988"}, - {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5"}, - {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3"}, - {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5"}, - {file = "coverage-7.6.10-cp310-cp310-win32.whl", hash = "sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244"}, - {file = "coverage-7.6.10-cp310-cp310-win_amd64.whl", hash = "sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e"}, - {file = "coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3"}, - {file = "coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43"}, - {file = "coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132"}, - {file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f"}, - {file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994"}, - {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99"}, - {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd"}, - {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377"}, - {file = "coverage-7.6.10-cp311-cp311-win32.whl", hash = "sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8"}, - {file = "coverage-7.6.10-cp311-cp311-win_amd64.whl", hash = "sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609"}, - {file = "coverage-7.6.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853"}, - {file = "coverage-7.6.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078"}, - {file = "coverage-7.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0"}, - {file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50"}, - {file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022"}, - {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b"}, - {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0"}, - {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852"}, - {file = "coverage-7.6.10-cp312-cp312-win32.whl", hash = "sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359"}, - {file = "coverage-7.6.10-cp312-cp312-win_amd64.whl", hash = "sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247"}, - {file = "coverage-7.6.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9"}, - {file = "coverage-7.6.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b"}, - {file = "coverage-7.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690"}, - {file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18"}, - {file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c"}, - {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd"}, - {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e"}, - {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694"}, - {file = "coverage-7.6.10-cp313-cp313-win32.whl", hash = "sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6"}, - {file = "coverage-7.6.10-cp313-cp313-win_amd64.whl", hash = "sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e"}, - {file = "coverage-7.6.10-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe"}, - {file = "coverage-7.6.10-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273"}, - {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8"}, - {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098"}, - {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb"}, - {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0"}, - {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf"}, - {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2"}, - {file = "coverage-7.6.10-cp313-cp313t-win32.whl", hash = "sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312"}, - {file = "coverage-7.6.10-cp313-cp313t-win_amd64.whl", hash = "sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d"}, - {file = "coverage-7.6.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a"}, - {file = "coverage-7.6.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27"}, - {file = "coverage-7.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4"}, - {file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f"}, - {file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25"}, - {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315"}, - {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90"}, - {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d"}, - {file = "coverage-7.6.10-cp39-cp39-win32.whl", hash = "sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18"}, - {file = "coverage-7.6.10-cp39-cp39-win_amd64.whl", hash = "sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59"}, - {file = "coverage-7.6.10-pp39.pp310-none-any.whl", hash = "sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f"}, - {file = "coverage-7.6.10.tar.gz", hash = "sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23"}, -] - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "deepdiff" -version = "8.2.0" -description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "deepdiff-8.2.0-py3-none-any.whl", hash = "sha256:5091f2cdfd372b1b9f6bfd8065ba323ae31118dc4e42594371b38c8bea3fd0a4"}, - {file = "deepdiff-8.2.0.tar.gz", hash = "sha256:6ec78f65031485735545ffbe7a61e716c3c2d12ca6416886d5e9291fc76c46c3"}, -] - -[package.dependencies] -orderly-set = ">=5.3.0,<6" - -[package.extras] -cli = ["click (==8.1.8)", "pyyaml (==6.0.2)"] -optimize = ["orjson"] - -[[package]] -name = "distlib" -version = "0.3.9" -description = "Distribution utilities" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, -] - -[[package]] -name = "docutils" -version = "0.21.2" -description = "Docutils -- Python Documentation Utilities" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, - {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, -] - -[[package]] -name = "dunamai" -version = "1.23.0" -description = "Dynamic version generation" -category = "dev" -optional = false -python-versions = ">=3.5" -files = [ - {file = "dunamai-1.23.0-py3-none-any.whl", hash = "sha256:a0906d876e92441793c6a423e16a4802752e723e9c9a5aabdc5535df02dbe041"}, - {file = "dunamai-1.23.0.tar.gz", hash = "sha256:a163746de7ea5acb6dacdab3a6ad621ebc612ed1e528aaa8beedb8887fccd2c4"}, -] - -[package.dependencies] -packaging = ">=20.9" - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "filelock" -version = "3.17.0" -description = "A platform independent file lock." -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"}, - {file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] -typing = ["typing-extensions (>=4.12.2)"] - -[[package]] -name = "frozenlist" -version = "1.5.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, - {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, - {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, - {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, - {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, - {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, - {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, - {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, - {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, - {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, - {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, - {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, - {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, - {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, - {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, -] - -[[package]] -name = "funcy" -version = "2.0" -description = "A fancy and practical functional tools" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "funcy-2.0-py2.py3-none-any.whl", hash = "sha256:53df23c8bb1651b12f095df764bfb057935d49537a56de211b098f4c79614bb0"}, - {file = "funcy-2.0.tar.gz", hash = "sha256:3963315d59d41c6f30c04bc910e10ab50a3ac4a225868bfa96feed133df075cb"}, -] - -[[package]] -name = "identify" -version = "2.6.6" -description = "File identification library for Python" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "identify-2.6.6-py2.py3-none-any.whl", hash = "sha256:cbd1810bce79f8b671ecb20f53ee0ae8e86ae84b557de31d89709dc2a48ba881"}, - {file = "identify-2.6.6.tar.gz", hash = "sha256:7bec12768ed44ea4761efb47806f0a41f86e7c0a5fdf5950d4648c90eca7e251"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.10" -description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -category = "main" -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 = "jinja2" -version = "3.1.5" -description = "A very fast and expressive template engine." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, - {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jinja2-ansible-filters" -version = "1.3.2" -description = "A port of Ansible's jinja2 filters without requiring ansible core." -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "jinja2-ansible-filters-1.3.2.tar.gz", hash = "sha256:07c10cf44d7073f4f01102ca12d9a2dc31b41d47e4c61ed92ef6a6d2669b356b"}, - {file = "jinja2_ansible_filters-1.3.2-py3-none-any.whl", hash = "sha256:e1082f5564917649c76fed239117820610516ec10f87735d0338688800a55b34"}, -] - -[package.dependencies] -Jinja2 = "*" -PyYAML = "*" - -[package.extras] -test = ["pytest", "pytest-cov"] - -[[package]] -name = "libsass" -version = "0.23.0" -description = "Sass for Python: A straightforward binding of libsass for Python." -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "libsass-0.23.0-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:34cae047cbbfc4ffa832a61cbb110f3c95f5471c6170c842d3fed161e40814dc"}, - {file = "libsass-0.23.0-cp38-abi3-macosx_14_0_arm64.whl", hash = "sha256:ea97d1b45cdc2fc3590cb9d7b60f1d8915d3ce17a98c1f2d4dd47ee0d9c68ce6"}, - {file = "libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306"}, - {file = "libsass-0.23.0-cp38-abi3-win32.whl", hash = "sha256:31e86d92a5c7a551df844b72d83fc2b5e50abc6fbbb31e296f7bebd6489ed1b4"}, - {file = "libsass-0.23.0-cp38-abi3-win_amd64.whl", hash = "sha256:a2ec85d819f353cbe807432d7275d653710d12b08ec7ef61c124a580a8352f3c"}, - {file = "libsass-0.23.0.tar.gz", hash = "sha256:6f209955ede26684e76912caf329f4ccb57e4a043fd77fe0e7348dd9574f1880"}, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -description = "Safely add untrusted strings to HTML/XML markup." -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, -] - -[[package]] -name = "mergedeep" -version = "1.3.4" -description = "A deep merge function for 🐍." -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "more-itertools" -version = "10.6.0" -description = "More routines for operating on iterables, beyond itertools" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "more-itertools-10.6.0.tar.gz", hash = "sha256:2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b"}, - {file = "more_itertools-10.6.0-py3-none-any.whl", hash = "sha256:6eb054cb4b6db1473f6e15fcc676a08e4732548acd47c708f0e179c2c7c01e89"}, -] - -[[package]] -name = "msgpack" -version = "1.1.0" -description = "MessagePack serializer" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"}, - {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"}, - {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"}, - {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"}, - {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"}, - {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"}, - {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"}, - {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"}, - {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"}, - {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"}, - {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"}, - {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"}, - {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"}, - {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, -] - -[[package]] -name = "multidict" -version = "6.1.0" -description = "multidict implementation" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, - {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, - {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, - {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, - {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, - {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, - {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, - {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, - {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, - {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, - {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, - {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, - {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, - {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, - {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} - -[[package]] -name = "mypy" -version = "1.15.0" -description = "Optional static typing for Python" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, - {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, - {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, - {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, - {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, - {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, - {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, - {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, - {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, - {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"}, - {file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"}, - {file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"}, - {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, - {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, -] - -[package.dependencies] -mypy_extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing_extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -faster-cache = ["orjson"] -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." -category = "dev" -optional = false -python-versions = ">=3.5" -files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] - -[[package]] -name = "nodeenv" -version = "1.9.1" -description = "Node.js virtual environment builder" -category = "dev" -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 = "nova-galaxy" -version = "0.7.0" -description = "Utilties for accessing the ORNL Galaxy instance" -category = "main" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_galaxy-0.7.0-py3-none-any.whl", hash = "sha256:1ff51e5e7fcf050f7678a52dc4248ba3283f3bb222f45d24d7c13efba0d2c91f"}, -] - -[package.dependencies] -bioblend = ">=1.3.0,<2.0.0" -tomli = ">=2.0.2,<3.0.0" - -[[package]] -name = "nova-mvvm" -version = "0.9.0" -description = "A Python Package for Model-View-ViewModel pattern" -category = "main" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_mvvm-0.9.0-py3-none-any.whl", hash = "sha256:60c70f8579b155e7081548e8aec9e77de497fa33ac569096015cffe27ef0f796"}, -] - -[package.dependencies] -deepdiff = ">=8.0.1,<9.0.0" -pytest-asyncio = ">=0.25.0,<0.26.0" -trame = ">=3.6.3,<4.0.0" - -[package.extras] -panel = ["panel (>=1.4.4,<2.0.0)"] -pyqt5 = ["pyqt5 (>=5.15.11,<6.0.0)"] -pyqt6 = ["pyqt6 (>=6.7.0,<7.0.0)"] - -[[package]] -name = "nova-trame" -version = "0.14.2" -description = "A Python Package for injecting curated themes and custom components into Trame applications" -category = "main" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_trame-0.14.2-py3-none-any.whl", hash = "sha256:225c97960947e7b107c5ed425213658ab192079253ecd13451cd06af66ef1ca3"}, -] - -[package.dependencies] -libsass = "*" -mergedeep = "*" -nova-mvvm = "*" -pydantic = "*" -tomli = "*" -trame = "*" -trame-vega = "*" -trame-vuetify = "*" - -[[package]] -name = "orderly-set" -version = "5.3.0" -description = "Orderly set" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "orderly_set-5.3.0-py3-none-any.whl", hash = "sha256:c2c0bfe604f5d3d9b24e8262a06feb612594f37aa3845650548befd7772945d1"}, - {file = "orderly_set-5.3.0.tar.gz", hash = "sha256:80b3d8fdd3d39004d9aad389eaa0eab02c71f0a0511ba3a6d54a935a6c6a0acc"}, -] - -[[package]] -name = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "platformdirs" -version = "4.3.6" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] - -[[package]] -name = "pluggy" -version = "1.5.0" -description = "plugin and hook calling mechanisms for python" -category = "main" -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 = "plumbum" -version = "1.9.0" -description = "Plumbum: shell combinators library" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5"}, - {file = "plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219"}, -] - -[package.dependencies] -pywin32 = {version = "*", markers = "platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""} - -[package.extras] -dev = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] -docs = ["sphinx (>=4.0.0)", "sphinx-rtd-theme (>=1.0.0)"] -ssh = ["paramiko"] -test = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] - -[[package]] -name = "pockets" -version = "0.9.1" -description = "A collection of helpful Python tools!" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "pockets-0.9.1-py2.py3-none-any.whl", hash = "sha256:68597934193c08a08eb2bf6a1d85593f627c22f9b065cc727a4f03f669d96d86"}, - {file = "pockets-0.9.1.tar.gz", hash = "sha256:9320f1a3c6f7a9133fe3b571f283bcf3353cd70249025ae8d618e40e9f7e92b3"}, -] - -[package.dependencies] -six = ">=1.5.2" - -[[package]] -name = "pre-commit" -version = "4.1.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pre_commit-4.1.0-py2.py3-none-any.whl", hash = "sha256:d29e7cb346295bcc1cc75fc3e92e343495e3ea0196c9ec6ba53f49f10ab6ae7b"}, - {file = "pre_commit-4.1.0.tar.gz", hash = "sha256:ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4"}, -] - -[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.50" -description = "Library for building powerful interactive command lines in Python" -category = "dev" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, - {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "propcache" -version = "0.2.1" -description = "Accelerated property cache" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, - {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, - {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, - {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, - {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, - {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, - {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, - {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, - {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, - {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, - {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, - {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, - {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, -] - -[[package]] -name = "pydantic" -version = "2.10.6" -description = "Data validation using Python type hints" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, - {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.27.2" -typing-extensions = ">=4.12.2" - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] - -[[package]] -name = "pydantic-core" -version = "2.27.2" -description = "Core functionality for Pydantic validation and serialization" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, - {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pygments" -version = "2.19.1" -description = "Pygments is a syntax highlighting package written in Python." -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pytest" -version = "8.3.4" -description = "pytest: simple powerful testing with Python" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, - {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-asyncio" -version = "0.25.3" -description = "Pytest support for asyncio" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3"}, - {file = "pytest_asyncio-0.25.3.tar.gz", hash = "sha256:fc1da2cf9f125ada7e710b4ddad05518d4cee187ae9412e9ac9271003497f07a"}, -] - -[package.dependencies] -pytest = ">=8.2,<9" - -[package.extras] -docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] -testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] - -[[package]] -name = "pywin32" -version = "308" -description = "Python for Window Extensions" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, - {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, - {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, - {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, - {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, - {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, - {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, - {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, - {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, - {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, - {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, - {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, - {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, - {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, - {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, - {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, - {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, - {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "questionary" -version = "2.1.0" -description = "Python library to build pretty command line user prompts ⭐️" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "questionary-2.1.0-py3-none-any.whl", hash = "sha256:44174d237b68bc828e4878c763a9ad6790ee61990e0ae72927694ead57bab8ec"}, - {file = "questionary-2.1.0.tar.gz", hash = "sha256:6302cdd645b19667d8f6e6634774e9538bfcd1aad9be287e743d96cacaf95587"}, -] - -[package.dependencies] -prompt_toolkit = ">=2.0,<4.0" - -[[package]] -name = "requests" -version = "2.32.3" -description = "Python HTTP for Humans." -category = "main" -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 = "requests-toolbelt" -version = "1.0.0" -description = "A utility belt for advanced users of python-requests" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, - {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, -] - -[package.dependencies] -requests = ">=2.0.1,<3.0.0" - -[[package]] -name = "ruff" -version = "0.9.4" -description = "An extremely fast Python linter and code formatter, written in Rust." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.9.4-py3-none-linux_armv6l.whl", hash = "sha256:64e73d25b954f71ff100bb70f39f1ee09e880728efb4250c632ceed4e4cdf706"}, - {file = "ruff-0.9.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6ce6743ed64d9afab4fafeaea70d3631b4d4b28b592db21a5c2d1f0ef52934bf"}, - {file = "ruff-0.9.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:54499fb08408e32b57360f6f9de7157a5fec24ad79cb3f42ef2c3f3f728dfe2b"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37c892540108314a6f01f105040b5106aeb829fa5fb0561d2dcaf71485021137"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de9edf2ce4b9ddf43fd93e20ef635a900e25f622f87ed6e3047a664d0e8f810e"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87c90c32357c74f11deb7fbb065126d91771b207bf9bfaaee01277ca59b574ec"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:56acd6c694da3695a7461cc55775f3a409c3815ac467279dfa126061d84b314b"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0c93e7d47ed951b9394cf352d6695b31498e68fd5782d6cbc282425655f687a"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d4c8772670aecf037d1bf7a07c39106574d143b26cfe5ed1787d2f31e800214"}, - {file = "ruff-0.9.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfc5f1d7afeda8d5d37660eeca6d389b142d7f2b5a1ab659d9214ebd0e025231"}, - {file = "ruff-0.9.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:faa935fc00ae854d8b638c16a5f1ce881bc3f67446957dd6f2af440a5fc8526b"}, - {file = "ruff-0.9.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a6c634fc6f5a0ceae1ab3e13c58183978185d131a29c425e4eaa9f40afe1e6d6"}, - {file = "ruff-0.9.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:433dedf6ddfdec7f1ac7575ec1eb9844fa60c4c8c2f8887a070672b8d353d34c"}, - {file = "ruff-0.9.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d612dbd0f3a919a8cc1d12037168bfa536862066808960e0cc901404b77968f0"}, - {file = "ruff-0.9.4-py3-none-win32.whl", hash = "sha256:db1192ddda2200671f9ef61d9597fcef89d934f5d1705e571a93a67fb13a4402"}, - {file = "ruff-0.9.4-py3-none-win_amd64.whl", hash = "sha256:05bebf4cdbe3ef75430d26c375773978950bbf4ee3c95ccb5448940dc092408e"}, - {file = "ruff-0.9.4-py3-none-win_arm64.whl", hash = "sha256:585792f1e81509e38ac5123492f8875fbc36f3ede8185af0a26df348e5154f41"}, - {file = "ruff-0.9.4.tar.gz", hash = "sha256:6907ee3529244bb0ed066683e075f09285b38dd5b4039370df6ff06041ca19e7"}, -] - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "sphinx" -version = "8.1.3" -description = "Python documentation generator" -category = "dev" -optional = false -python-versions = ">=3.10" -files = [ - {file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"}, - {file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"}, -] - -[package.dependencies] -alabaster = ">=0.7.14" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" -imagesize = ">=1.3" -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" -sphinxcontrib-applehelp = ">=1.0.7" -sphinxcontrib-devhelp = ">=1.0.6" -sphinxcontrib-htmlhelp = ">=2.0.6" -sphinxcontrib-jsmath = ">=1.0.1" -sphinxcontrib-qthelp = ">=1.0.6" -sphinxcontrib-serializinghtml = ">=1.1.9" -tomli = {version = ">=2", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] - -[[package]] -name = "sphinx-rtd-theme" -version = "3.0.2" -description = "Read the Docs theme for Sphinx" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, - {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, -] - -[package.dependencies] -docutils = ">0.18,<0.22" -sphinx = ">=6,<9" -sphinxcontrib-jquery = ">=4,<5" - -[package.extras] -dev = ["bump2version", "transifex-client", "twine", "wheel"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, - {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, - {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, - {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jquery" -version = "4.1" -description = "Extension to include jQuery on newer Sphinx releases" -category = "dev" -optional = false -python-versions = ">=2.7" -files = [ - {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, - {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, -] - -[package.dependencies] -Sphinx = ">=1.8" - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "dev" -optional = false -python-versions = ">=3.5" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-napoleon" -version = "0.7" -description = "Sphinx \"napoleon\" extension." -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "sphinxcontrib-napoleon-0.7.tar.gz", hash = "sha256:407382beed396e9f2d7f3043fad6afda95719204a1e1a231ac865f40abcbfcf8"}, - {file = "sphinxcontrib_napoleon-0.7-py2.py3-none-any.whl", hash = "sha256:711e41a3974bdf110a484aec4c1a556799eb0b3f3b897521a018ad7e2db13fef"}, -] - -[package.dependencies] -pockets = ">=0.3" -six = ">=1.5.2" - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, - {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -category = "dev" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, - {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "tinydb" -version = "4.8.2" -description = "TinyDB is a tiny, document oriented database optimized for your happiness :)" -category = "main" -optional = false -python-versions = "<4.0,>=3.8" -files = [ - {file = "tinydb-4.8.2-py3-none-any.whl", hash = "sha256:f97030ee5cbc91eeadd1d7af07ab0e48ceb04aa63d4a983adbaca4cba16e86c3"}, - {file = "tinydb-4.8.2.tar.gz", hash = "sha256:f7dfc39b8d7fda7a1ca62a8dbb449ffd340a117c1206b68c50b1a481fb95181d"}, -] - -[[package]] -name = "tomli" -version = "2.2.1" -description = "A lil' TOML parser" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, -] - -[[package]] -name = "trame" -version = "3.8.0" -description = "Trame, a framework to build applications in plain Python" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame-3.8.0-py3-none-any.whl", hash = "sha256:e4c9e648938ec0759f6893ba7afd095afaf0c88b4b8202157717691e135e924f"}, - {file = "trame-3.8.0.tar.gz", hash = "sha256:d084942828ac7930e05dbb765468cffe4ef8bd5170dbd48333a930140b540ccd"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" -trame-server = ">=3.2.3,<4" -wslink = ">=2.1.3" - -[package.extras] -app = ["pywebview"] -dev = ["pre-commit", "pytest", "ruff"] -jupyter = ["jupyterlab"] - -[[package]] -name = "trame-client" -version = "3.5.2" -description = "Internal client of trame" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_client-3.5.2-py3-none-any.whl", hash = "sha256:8a950482a437c8245b66bfeb00ac5d7b880b9023f32199e28f15d04f29205ee1"}, - {file = "trame_client-3.5.2.tar.gz", hash = "sha256:e46ddb8e3d611bff90803bff176044083ed85095544557a499eae9c231abedc5"}, -] - -[package.extras] -dev = ["pre-commit", "ruff"] -test = ["Pillow", "pixelmatch", "pytest", "pytest-xprocess", "seleniumbase"] - -[[package]] -name = "trame-server" -version = "3.3.0" -description = "Internal server side implementation of trame" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "trame_server-3.3.0-py3-none-any.whl", hash = "sha256:7865053d82617c8d435d274ccf917594a2b1c0d90379f9e686cd662c7ee9cf1a"}, - {file = "trame_server-3.3.0.tar.gz", hash = "sha256:b0b1769d9a0eb816c69076188773cb93b0e2f83c27009d8e94d7208e63c33805"}, -] - -[package.dependencies] -more-itertools = "*" -wslink = ">=2.2.2,<3" - -[package.extras] -dev = ["pre-commit", "pytest", "pytest-asyncio", "ruff"] - -[[package]] -name = "trame-vega" -version = "2.1.1" -description = "Vega widget for trame" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "trame-vega-2.1.1.tar.gz", hash = "sha256:a3d82f7535a66a782262647001987dba3ad0ddc64ce21225a4cfccd351fed8fa"}, - {file = "trame_vega-2.1.1-py3-none-any.whl", hash = "sha256:044ea338f74fe83e7a5eca15fd1723b3b5f2847d5ca0ed2f0325e30d7676b6c9"}, -] - -[package.dependencies] -trame-client = "*" - -[[package]] -name = "trame-vuetify" -version = "2.8.1" -description = "Vuetify widgets for trame" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_vuetify-2.8.1-py3-none-any.whl", hash = "sha256:47d35ab4ec6d37ad1ad8e63c0a2de7c25677f62ef383f1b1e06dd74dda8a3767"}, - {file = "trame_vuetify-2.8.1.tar.gz", hash = "sha256:281606797c29b0300ec2b3524c4396ac2b78da1a300d188d603af09eea83bfe2"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" - -[package.extras] -dev = ["pre-commit", "pytest", "ruff"] - -[[package]] -name = "tuspy" -version = "1.1.0" -description = "A Python client for the tus resumable upload protocol -> http://tus.io" -category = "main" -optional = false -python-versions = ">=3.5.3" -files = [ - {file = "tuspy-1.1.0-py3-none-any.whl", hash = "sha256:7fc5ac8fb25de37c96c90213f83a1ffdede7f48a471cb5a15a2f57846828a79a"}, - {file = "tuspy-1.1.0.tar.gz", hash = "sha256:156734eac5c61a046cfecd70f14119f05be92cce198eb5a1a99a664482bedb89"}, -] - -[package.dependencies] -aiohttp = ">=3.6.2" -requests = ">=2.18.4" -tinydb = ">=3.5.0" - -[package.extras] -dev = ["Sphinx (==1.7.1)", "sphinx-autobuild (==2021.3.14)", "tox (>=2.3.1)"] -test = ["aioresponses (>=0.6.2)", "coverage (>=4.2)", "parametrize (>=0.1.1)", "pytest (>=3.0.3)", "pytest-cov (>=2.3.1,<2.6)", "responses (>=0.5.1)"] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" -category = "main" -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 = "urllib3" -version = "2.3.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.29.1" -description = "Virtual Python Environment builder" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "virtualenv-20.29.1-py3-none-any.whl", hash = "sha256:4e4cb403c0b0da39e13b46b1b2476e505cb0046b25f242bee80f62bf990b2779"}, - {file = "virtualenv-20.29.1.tar.gz", hash = "sha256:b8b8970138d32fb606192cb97f6cd4bb644fa486be9308fb9b63f81091b5dc35"}, -] - -[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 = "wcwidth" -version = "0.2.13" -description = "Measures the displayed width of unicode strings in a terminal" -category = "dev" -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 = "wslink" -version = "2.2.2" -description = "Python/JavaScript library for communicating over WebSocket" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "wslink-2.2.2-py3-none-any.whl", hash = "sha256:8fbab2fb89d0215b9ac3da0a20d554e6b1e05bab8b97883923e7f7ffeaef43d3"}, - {file = "wslink-2.2.2.tar.gz", hash = "sha256:f9c24c08b89d2bd9bd77951ad0c01da9c28905dda29d7397f7f72b542c496840"}, -] - -[package.dependencies] -aiohttp = "<4" -msgpack = ">=1,<2" - -[package.extras] -ssl = ["cryptography"] - -[[package]] -name = "yarl" -version = "1.18.3" -description = "Yet another URL library" -category = "main" -optional = false -python-versions = ">=3.9" -files = [ - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, - {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, - {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, - {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, - {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, - {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, - {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, - {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, - {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, - {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, - {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, - {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, - {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -propcache = ">=0.2.0" - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "21cb4efdfeedffeac02c47e0e53c8fa5e296badf0f246a4f72738eb878ebcc21" diff --git a/code/episode_3/pyproject.toml b/code/episode_3/pyproject.toml index 1237ea40..42637af1 100755 --- a/code/episode_3/pyproject.toml +++ b/code/episode_3/pyproject.toml @@ -1,4 +1,4 @@ -[tool.poetry] +[project] name = "nova-tutorial" version = "0.1.0" description = "Nova Tutorial Project" @@ -6,21 +6,52 @@ authors = [] readme = "README.md" license = "MIT" keywords = ["NDIP", "NOVA", "python"] +requires-python = ">=3.10,<3.14" +dependencies = ["nova-galaxy>=0.11.6,<0.12"] -packages = [ - { include = "nova_tutorial", from = "src" } -] +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["linux-64", "osx-64"] + +[tool.pixi.environments] +default = {features = ["dev"], solve-group = "default"} +production = {features = [], solve-group = "default"} +[tool.pixi.dependencies] -[tool.poetry.dependencies] -python = "^3.10" +[tool.pixi.pypi-dependencies] +nova-tutorial = { path = ".", editable = true } +hatch = "*" +gitpython = ">=3.1.40,<4" +python-gitlab = ">=5.6.0,<6" nova-trame = "*" -nova-galaxy = "^0.7.0" +trame-datagrid = ">=0.2.2" + + +[tool.pixi.feature.dev.pypi-dependencies] +mypy = ">=1.10.0" +pre-commit = ">=2.20.0" +coverage = ">=6.4.3" +pytest = "*" +ruff = ">=0.6.2" +copier=">=9.3" +sphinx = "*" +sphinx-rtd-theme = "*" +sphinxcontrib-napoleon ="*" +tomli = "*" + +[tool.pixi.tasks] +app = "python -m src.nova_tutorial.app" +init-repo = "python -m scripts.git_utils" +deploy-production = "python -m scripts.xml_utils" +deploy-prototype = "python -m scripts.xml_utils_prototype" [build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +requires = ["hatchling"] +build-backend = "hatchling.build" +[tool.hatch.build.targets.wheel] +packages = ["src/nova_tutorial"] [tool.pytest.ini_options] testpaths = ["tests"] @@ -28,6 +59,7 @@ python_files = ["test*.py"] norecursedirs = [".git", "tmp*", "_tmp*", "__pycache__"] [tool.ruff] +extend-exclude = [".pixi"] line-length = 120 [tool.ruff.lint] @@ -52,8 +84,6 @@ ignore = [ [tool.ruff.lint.extend-per-file-ignores] '__init__.py' = ['D104'] # Missing docstring in public package - - [tool.ruff.lint.pydocstyle] convention = "numpy" @@ -72,20 +102,4 @@ omit = [ ] [tool.coverage.run] -command_line = "-m pytest --junit-xml=reports/junit.xml" -data_file = "reports/.coverage" - -[tool.poetry.dev-dependencies] -mypy = ">=1.10.0" -pre-commit = ">=2.20.0" -coverage = ">=6.4.3" -pytest = "*" -ruff = ">=0.6.2" -copier=">=9.3" -sphinx = "*" -sphinx-rtd-theme = "*" -sphinxcontrib-napoleon ="*" -tomli = "*" - -[tool.poetry.scripts] -app = "nova_tutorial.app:main" +command_line = "-m pytest --jun \ No newline at end of file diff --git a/code/episode_3/src/nova_tutorial/__init__.py b/code/episode_3/src/nova_tutorial/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_3/src/nova_tutorial/app/__init__.py b/code/episode_3/src/nova_tutorial/app/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_3/src/nova_tutorial/app/__main__.py b/code/episode_3/src/nova_tutorial/app/__main__.py old mode 100755 new mode 100644 diff --git a/code/episode_3/src/nova_tutorial/app/main.py b/code/episode_3/src/nova_tutorial/app/main.py old mode 100755 new mode 100644 index d77c9da4..9d7983ba --- a/code/episode_3/src/nova_tutorial/app/main.py +++ b/code/episode_3/src/nova_tutorial/app/main.py @@ -11,15 +11,14 @@ def main() -> None: except Exception as e: print(f"Error running fractal tool: {e}") + # kwargs = {} + # from .views.main_view import MainApp - kwargs = {} - from .views.main import MainApp - - app = MainApp() - for arg in sys.argv[2:]: - try: - key, value = arg.split("=") - kwargs[key] = int(value) - except Exception: - pass - app.server.start(**kwargs) + # app = MainApp() + # for arg in sys.argv[2:]: + # try: + # key, value = arg.split("=") + # kwargs[key] = int(value) + # except Exception: + # pass + # app.server.start(**kwargs) diff --git a/code/episode_3/src/nova_tutorial/app/models/__init__.py b/code/episode_3/src/nova_tutorial/app/models/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_3/src/nova_tutorial/app/models/fractal.py b/code/episode_3/src/nova_tutorial/app/models/fractal.py old mode 100755 new mode 100644 index 6d8148e3..fa067c52 --- a/code/episode_3/src/nova_tutorial/app/models/fractal.py +++ b/code/episode_3/src/nova_tutorial/app/models/fractal.py @@ -8,16 +8,7 @@ def __init__(self): self.galaxy_url = os.getenv("GALAXY_URL") self.galaxy_key = os.getenv("GALAXY_API_KEY") - def set_fractal_type(self, fractal_type: str): - self.fractal_type = fractal_type - def run_fractal_tool(self): - """Runs the fractal tool with the current fractal type.""" - if not self.galaxy_url or not self.galaxy_key: - raise Exception( - "You must specify GALAXY_URL and GALAXY_API_KEY as environment variables." - ) - conn = Connection(galaxy_url=self.galaxy_url, galaxy_key=self.galaxy_key) tool = Tool(id="neutrons_fractal") params = Parameters() @@ -27,7 +18,6 @@ def run_fractal_tool(self): data_store = galaxy_connection.create_data_store(name="fractal_store") data_store.persist() print("Executing fractal tool. This might take a few minutes.") - output = tool.run(data_store, params) + output = tool.run(data_store, params, wait=True) output.get_dataset("output").download("image.png") - - print("Fractal tool finished successfully.") \ No newline at end of file + print("Fractal tool finished successfully.") diff --git a/code/episode_3/src/nova_tutorial/app/models/main_model.py b/code/episode_3/src/nova_tutorial/app/models/main_model.py old mode 100755 new mode 100644 diff --git a/code/episode_3/src/nova_tutorial/app/mvvm_factory.py b/code/episode_3/src/nova_tutorial/app/mvvm_factory.py old mode 100755 new mode 100644 index d7cf5f4b..c11e5916 --- a/code/episode_3/src/nova_tutorial/app/mvvm_factory.py +++ b/code/episode_3/src/nova_tutorial/app/mvvm_factory.py @@ -3,7 +3,7 @@ from nova.mvvm.interface import BindingInterface from .models.main_model import MainModel -from .view_models.main import MainViewModel +from .view_models.main_view_model import MainViewModel def create_viewmodels(binding: BindingInterface) -> dict: diff --git a/code/episode_3/src/nova_tutorial/app/view_models/__init__.py b/code/episode_3/src/nova_tutorial/app/view_models/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_3/src/nova_tutorial/app/view_models/main.py b/code/episode_3/src/nova_tutorial/app/view_models/main.py deleted file mode 100755 index 5afc3cd0..00000000 --- a/code/episode_3/src/nova_tutorial/app/view_models/main.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Module for the main ViewModel.""" - -from typing import Any, Dict - -from nova.mvvm.interface import BindingInterface - -from ..models.main_model import MainModel - - -class MainViewModel: - """Viewmodel class, used to create data<->view binding and react on changes from GUI.""" - - def __init__(self, model: MainModel, binding: BindingInterface): - self.model = model - - # here we create a bind that connects ViewModel with View. It returns a communicator object, - # that allows to update View from ViewModel (by calling update_view). - # self.model will be updated automatically on changes of connected fields in View, - # but one also can provide a callback function if they want to react to those events - # and/or process errors. - self.config_bind = binding.new_bind(self.model, callback_after_update=self.change_callback) - - def change_callback(self, results: Dict[str, Any]) -> None: - if results["error"]: - print(f"error in fields {results['errored']}, model not changed") - else: - print(f"model fields updated: {results['updated']}") - - def update_view(self) -> None: - self.config_bind.update_in_view(self.model) diff --git a/code/episode_3/src/nova_tutorial/app/views/__init__.py b/code/episode_3/src/nova_tutorial/app/views/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_3/src/nova_tutorial/app/views/main.py b/code/episode_3/src/nova_tutorial/app/views/main.py deleted file mode 100755 index c6832686..00000000 --- a/code/episode_3/src/nova_tutorial/app/views/main.py +++ /dev/null @@ -1,44 +0,0 @@ -"""Main file.""" - -import logging - -from nova.mvvm.trame_binding import TrameBinding -from nova.trame import ThemedApp -from trame.app import get_server - -from ..mvvm_factory import create_viewmodels -from ..view_models.main import MainViewModel -from .tab_content_panel import TabContentPanel -from .tabs_panel import TabsPanel - -logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - - -class MainApp(ThemedApp): - """Main application view class. Calls rendering of nested UI elements.""" - - def __init__(self) -> None: - super().__init__() - self.server = get_server(None, client_type="vue3") - binding = TrameBinding(self.server.state) - self.server.state.trame__title = "Nova Tutorial" - self.view_models = create_viewmodels(binding) - self.view_model: MainViewModel = self.view_models["main"] - self.create_ui() - - def create_ui(self) -> None: - self.state.trame__title = "Nova Tutorial" - - with super().create_ui() as layout: - layout.toolbar_title.set_text("Nova Tutorial") - with layout.pre_content: - TabsPanel(self.view_models["main"]) - with layout.content: - TabContentPanel( - self.server, - self.view_models["main"], - ) - with layout.post_content: - pass - return layout diff --git a/code/episode_3/src/nova_tutorial/app/views/sample_tab_1.py b/code/episode_3/src/nova_tutorial/app/views/sample_tab_1.py old mode 100755 new mode 100644 index 891cdd10..f5d062e5 --- a/code/episode_3/src/nova_tutorial/app/views/sample_tab_1.py +++ b/code/episode_3/src/nova_tutorial/app/views/sample_tab_1.py @@ -1,6 +1,7 @@ """Module for the Sample Tab 1.""" from nova.trame.view.components import InputField +from nova.trame.view.layouts import VBoxLayout class SampleTab1: @@ -10,4 +11,5 @@ def __init__(self) -> None: self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.username") + with VBoxLayout(): + InputField(v_model="config.username") diff --git a/code/episode_3/src/nova_tutorial/app/views/sample_tab_2.py b/code/episode_3/src/nova_tutorial/app/views/sample_tab_2.py old mode 100755 new mode 100644 index 46765f0a..0e787b40 --- a/code/episode_3/src/nova_tutorial/app/views/sample_tab_2.py +++ b/code/episode_3/src/nova_tutorial/app/views/sample_tab_2.py @@ -1,6 +1,7 @@ """Module for the Sample Tab 2.""" from nova.trame.view.components import InputField +from nova.trame.view.layouts import VBoxLayout class SampleTab2: @@ -10,4 +11,5 @@ def __init__(self) -> None: self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.password") + with VBoxLayout(): + InputField(v_model="config.password") diff --git a/code/episode_3/src/nova_tutorial/app/views/tab_content_panel.py b/code/episode_3/src/nova_tutorial/app/views/tab_content_panel.py old mode 100755 new mode 100644 index 2f813811..4b61ee4c --- a/code/episode_3/src/nova_tutorial/app/views/tab_content_panel.py +++ b/code/episode_3/src/nova_tutorial/app/views/tab_content_panel.py @@ -1,9 +1,9 @@ """Module for the Tab Content panel.""" -from trame.widgets import vuetify3 as vuetify +from nova.trame.view.layouts import VBoxLayout from trame_server import Server -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel from .sample_tab_1 import SampleTab1 from .sample_tab_2 import SampleTab2 @@ -18,11 +18,7 @@ def __init__(self, server: Server, view_model: MainViewModel) -> None: self.create_ui() def create_ui(self) -> None: - with vuetify.VForm(ref="form") as self.f: - with vuetify.VContainer(classes="pa-0", fluid=True): - with vuetify.VCard(): - with vuetify.VWindow(v_model="active_tab"): - with vuetify.VWindowItem(value=1): - SampleTab1() - with vuetify.VWindowItem(value=2): - SampleTab2() + with VBoxLayout(v_show="view_state.active_tab == 0", stretch=True): + SampleTab1() + with VBoxLayout(v_show="view_state.active_tab == 1", stretch=True): + SampleTab2() diff --git a/code/episode_3/src/nova_tutorial/app/views/tabs_panel.py b/code/episode_3/src/nova_tutorial/app/views/tabs_panel.py old mode 100755 new mode 100644 index c36ea880..478b9c28 --- a/code/episode_3/src/nova_tutorial/app/views/tabs_panel.py +++ b/code/episode_3/src/nova_tutorial/app/views/tabs_panel.py @@ -1,8 +1,9 @@ """Module for the Tab panel.""" +from trame.widgets import client from trame.widgets import vuetify3 as vuetify -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel class TabsPanel: @@ -11,9 +12,11 @@ class TabsPanel: def __init__(self, view_model: MainViewModel): self.view_model = view_model self.view_model.config_bind.connect("config") + self.view_model.view_state_bind.connect("view_state") self.create_ui() def create_ui(self) -> None: - with vuetify.VTabs(v_model=("active_tab", 0), classes="pl-5"): - vuetify.VTab("Sample Tab 1", value=1) - vuetify.VTab("Sample Tab 2", value=2) + with client.DeepReactive("view_state"): + with vuetify.VTabs(v_model="view_state.active_tab", classes="pl-5"): + vuetify.VTab("Sample Tab 1", value=0) + vuetify.VTab("Sample Tab 2", value=1) diff --git a/code/episode_4/poetry.lock b/code/episode_4/poetry.lock deleted file mode 100644 index c0a0b9ca..00000000 --- a/code/episode_4/poetry.lock +++ /dev/null @@ -1,2247 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "aiohappyeyeballs" -version = "2.4.4" -description = "Happy Eyeballs for asyncio" -optional = false -python-versions = ">=3.8" -files = [ - {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, - {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, -] - -[[package]] -name = "aiohttp" -version = "3.11.12" -description = "Async http client/server framework (asyncio)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiohttp-3.11.12-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:aa8a8caca81c0a3e765f19c6953416c58e2f4cc1b84829af01dd1c771bb2f91f"}, - {file = "aiohttp-3.11.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:84ede78acde96ca57f6cf8ccb8a13fbaf569f6011b9a52f870c662d4dc8cd854"}, - {file = "aiohttp-3.11.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:584096938a001378484aa4ee54e05dc79c7b9dd933e271c744a97b3b6f644957"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:392432a2dde22b86f70dd4a0e9671a349446c93965f261dbaecfaf28813e5c42"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:88d385b8e7f3a870146bf5ea31786ef7463e99eb59e31db56e2315535d811f55"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b10a47e5390c4b30a0d58ee12581003be52eedd506862ab7f97da7a66805befb"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b5263dcede17b6b0c41ef0c3ccce847d82a7da98709e75cf7efde3e9e3b5cae"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50c5c7b8aa5443304c55c262c5693b108c35a3b61ef961f1e782dd52a2f559c7"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d1c031a7572f62f66f1257db37ddab4cb98bfaf9b9434a3b4840bf3560f5e788"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:7e44eba534381dd2687be50cbd5f2daded21575242ecfdaf86bbeecbc38dae8e"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:145a73850926018ec1681e734cedcf2716d6a8697d90da11284043b745c286d5"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:2c311e2f63e42c1bf86361d11e2c4a59f25d9e7aabdbdf53dc38b885c5435cdb"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:ea756b5a7bac046d202a9a3889b9a92219f885481d78cd318db85b15cc0b7bcf"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:526c900397f3bbc2db9cb360ce9c35134c908961cdd0ac25b1ae6ffcaa2507ff"}, - {file = "aiohttp-3.11.12-cp310-cp310-win32.whl", hash = "sha256:b8d3bb96c147b39c02d3db086899679f31958c5d81c494ef0fc9ef5bb1359b3d"}, - {file = "aiohttp-3.11.12-cp310-cp310-win_amd64.whl", hash = "sha256:7fe3d65279bfbee8de0fb4f8c17fc4e893eed2dba21b2f680e930cc2b09075c5"}, - {file = "aiohttp-3.11.12-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:87a2e00bf17da098d90d4145375f1d985a81605267e7f9377ff94e55c5d769eb"}, - {file = "aiohttp-3.11.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b34508f1cd928ce915ed09682d11307ba4b37d0708d1f28e5774c07a7674cac9"}, - {file = "aiohttp-3.11.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:936d8a4f0f7081327014742cd51d320296b56aa6d324461a13724ab05f4b2933"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2de1378f72def7dfb5dbd73d86c19eda0ea7b0a6873910cc37d57e80f10d64e1"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9d45dbb3aaec05cf01525ee1a7ac72de46a8c425cb75c003acd29f76b1ffe94"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:930ffa1925393381e1e0a9b82137fa7b34c92a019b521cf9f41263976666a0d6"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8340def6737118f5429a5df4e88f440746b791f8f1c4ce4ad8a595f42c980bd5"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4016e383f91f2814e48ed61e6bda7d24c4d7f2402c75dd28f7e1027ae44ea204"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3c0600bcc1adfaaac321422d615939ef300df81e165f6522ad096b73439c0f58"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:0450ada317a65383b7cce9576096150fdb97396dcfe559109b403c7242faffef"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:850ff6155371fd802a280f8d369d4e15d69434651b844bde566ce97ee2277420"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8fd12d0f989c6099e7b0f30dc6e0d1e05499f3337461f0b2b0dadea6c64b89df"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:76719dd521c20a58a6c256d058547b3a9595d1d885b830013366e27011ffe804"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97fe431f2ed646a3b56142fc81d238abcbaff08548d6912acb0b19a0cadc146b"}, - {file = "aiohttp-3.11.12-cp311-cp311-win32.whl", hash = "sha256:e10c440d142fa8b32cfdb194caf60ceeceb3e49807072e0dc3a8887ea80e8c16"}, - {file = "aiohttp-3.11.12-cp311-cp311-win_amd64.whl", hash = "sha256:246067ba0cf5560cf42e775069c5d80a8989d14a7ded21af529a4e10e3e0f0e6"}, - {file = "aiohttp-3.11.12-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e392804a38353900c3fd8b7cacbea5132888f7129f8e241915e90b85f00e3250"}, - {file = "aiohttp-3.11.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8fa1510b96c08aaad49303ab11f8803787c99222288f310a62f493faf883ede1"}, - {file = "aiohttp-3.11.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dc065a4285307607df3f3686363e7f8bdd0d8ab35f12226362a847731516e42c"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddb31f8474695cd61fc9455c644fc1606c164b93bff2490390d90464b4655df"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9dec0000d2d8621d8015c293e24589d46fa218637d820894cb7356c77eca3259"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3552fe98e90fdf5918c04769f338a87fa4f00f3b28830ea9b78b1bdc6140e0d"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dfe7f984f28a8ae94ff3a7953cd9678550dbd2a1f9bda5dd9c5ae627744c78e"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a481a574af914b6e84624412666cbfbe531a05667ca197804ecc19c97b8ab1b0"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1987770fb4887560363b0e1a9b75aa303e447433c41284d3af2840a2f226d6e0"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:a4ac6a0f0f6402854adca4e3259a623f5c82ec3f0c049374133bcb243132baf9"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c96a43822f1f9f69cc5c3706af33239489a6294be486a0447fb71380070d4d5f"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a5e69046f83c0d3cb8f0d5bd9b8838271b1bc898e01562a04398e160953e8eb9"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:68d54234c8d76d8ef74744f9f9fc6324f1508129e23da8883771cdbb5818cbef"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c9fd9dcf9c91affe71654ef77426f5cf8489305e1c66ed4816f5a21874b094b9"}, - {file = "aiohttp-3.11.12-cp312-cp312-win32.whl", hash = "sha256:0ed49efcd0dc1611378beadbd97beb5d9ca8fe48579fc04a6ed0844072261b6a"}, - {file = "aiohttp-3.11.12-cp312-cp312-win_amd64.whl", hash = "sha256:54775858c7f2f214476773ce785a19ee81d1294a6bedc5cc17225355aab74802"}, - {file = "aiohttp-3.11.12-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:413ad794dccb19453e2b97c2375f2ca3cdf34dc50d18cc2693bd5aed7d16f4b9"}, - {file = "aiohttp-3.11.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a93d28ed4b4b39e6f46fd240896c29b686b75e39cc6992692e3922ff6982b4c"}, - {file = "aiohttp-3.11.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d589264dbba3b16e8951b6f145d1e6b883094075283dafcab4cdd564a9e353a0"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5148ca8955affdfeb864aca158ecae11030e952b25b3ae15d4e2b5ba299bad2"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:525410e0790aab036492eeea913858989c4cb070ff373ec3bc322d700bdf47c1"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bd8695be2c80b665ae3f05cb584093a1e59c35ecb7d794d1edd96e8cc9201d7"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0203433121484b32646a5f5ea93ae86f3d9559d7243f07e8c0eab5ff8e3f70e"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40cd36749a1035c34ba8d8aaf221b91ca3d111532e5ccb5fa8c3703ab1b967ed"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7442662afebbf7b4c6d28cb7aab9e9ce3a5df055fc4116cc7228192ad6cb484"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8a2fb742ef378284a50766e985804bd6adb5adb5aa781100b09befdbfa757b65"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2cee3b117a8d13ab98b38d5b6bdcd040cfb4181068d05ce0c474ec9db5f3c5bb"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f6a19bcab7fbd8f8649d6595624856635159a6527861b9cdc3447af288a00c00"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e4cecdb52aaa9994fbed6b81d4568427b6002f0a91c322697a4bfcc2b2363f5a"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:30f546358dfa0953db92ba620101fefc81574f87b2346556b90b5f3ef16e55ce"}, - {file = "aiohttp-3.11.12-cp313-cp313-win32.whl", hash = "sha256:ce1bb21fc7d753b5f8a5d5a4bae99566386b15e716ebdb410154c16c91494d7f"}, - {file = "aiohttp-3.11.12-cp313-cp313-win_amd64.whl", hash = "sha256:f7914ab70d2ee8ab91c13e5402122edbc77821c66d2758abb53aabe87f013287"}, - {file = "aiohttp-3.11.12-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c3623053b85b4296cd3925eeb725e386644fd5bc67250b3bb08b0f144803e7b"}, - {file = "aiohttp-3.11.12-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:67453e603cea8e85ed566b2700efa1f6916aefbc0c9fcb2e86aaffc08ec38e78"}, - {file = "aiohttp-3.11.12-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6130459189e61baac5a88c10019b21e1f0c6d00ebc770e9ce269475650ff7f73"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9060addfa4ff753b09392efe41e6af06ea5dd257829199747b9f15bfad819460"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34245498eeb9ae54c687a07ad7f160053911b5745e186afe2d0c0f2898a1ab8a"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8dc0fba9a74b471c45ca1a3cb6e6913ebfae416678d90529d188886278e7f3f6"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a478aa11b328983c4444dacb947d4513cb371cd323f3845e53caeda6be5589d5"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c160a04283c8c6f55b5bf6d4cad59bb9c5b9c9cd08903841b25f1f7109ef1259"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:edb69b9589324bdc40961cdf0657815df674f1743a8d5ad9ab56a99e4833cfdd"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ee84c2a22a809c4f868153b178fe59e71423e1f3d6a8cd416134bb231fbf6d3"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:bf4480a5438f80e0f1539e15a7eb8b5f97a26fe087e9828e2c0ec2be119a9f72"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:e6b2732ef3bafc759f653a98881b5b9cdef0716d98f013d376ee8dfd7285abf1"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f752e80606b132140883bb262a457c475d219d7163d996dc9072434ffb0784c4"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ab3247d58b393bda5b1c8f31c9edece7162fc13265334217785518dd770792b8"}, - {file = "aiohttp-3.11.12-cp39-cp39-win32.whl", hash = "sha256:0d5176f310a7fe6f65608213cc74f4228e4f4ce9fd10bcb2bb6da8fc66991462"}, - {file = "aiohttp-3.11.12-cp39-cp39-win_amd64.whl", hash = "sha256:74bd573dde27e58c760d9ca8615c41a57e719bff315c9adb6f2a4281a28e8798"}, - {file = "aiohttp-3.11.12.tar.gz", hash = "sha256:7603ca26d75b1b86160ce1bbe2787a0b706e592af5b2504e12caa88a217767b0"}, -] - -[package.dependencies] -aiohappyeyeballs = ">=2.3.0" -aiosignal = ">=1.1.2" -async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} -attrs = ">=17.3.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -propcache = ">=0.2.0" -yarl = ">=1.17.0,<2.0" - -[package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] - -[[package]] -name = "aiosignal" -version = "1.3.2" -description = "aiosignal: a list of registered asynchronous callbacks" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, - {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" - -[[package]] -name = "alabaster" -version = "1.0.0" -description = "A light, configurable Sphinx theme" -optional = false -python-versions = ">=3.10" -files = [ - {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, - {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, -] - -[[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 = "async-timeout" -version = "5.0.1" -description = "Timeout context manager for asyncio programs" -optional = false -python-versions = ">=3.8" -files = [ - {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, - {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, -] - -[[package]] -name = "attrs" -version = "25.1.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.8" -files = [ - {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, - {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, -] - -[package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] - -[[package]] -name = "babel" -version = "2.17.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, -] - -[package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] - -[[package]] -name = "bioblend" -version = "1.4.0" -description = "Library for interacting with the Galaxy API" -optional = false -python-versions = ">=3.8" -files = [ - {file = "bioblend-1.4.0-py3-none-any.whl", hash = "sha256:20886e5f7658e1dc3e025cedb4be88538342374afba583ce4e2acb5c14a25c63"}, - {file = "bioblend-1.4.0.tar.gz", hash = "sha256:175d49d288e27d132ff59c870551c87cd95d7747be55ab94807c563291a3fa1d"}, -] - -[package.dependencies] -requests = ">=2.20.0" -requests-toolbelt = ">=0.5.1,<0.9.0 || >0.9.0" -tuspy = "*" - -[package.extras] -testing = ["pytest"] - -[[package]] -name = "certifi" -version = "2025.1.31" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, -] - -[[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.4.1" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7" -files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, -] - -[[package]] -name = "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 = "copier" -version = "9.4.1" -description = "A library for rendering project templates." -optional = false -python-versions = ">=3.9" -files = [ - {file = "copier-9.4.1-py3-none-any.whl", hash = "sha256:863385b7ba8a9090c832cd12ca072dba9153397dbe7c5f337bf8c3d8859efa32"}, - {file = "copier-9.4.1.tar.gz", hash = "sha256:cc81d8204cb17fbc8c4a14996a8ce764166c34c77236de38cfbeb960c887b68f"}, -] - -[package.dependencies] -colorama = ">=0.4.6" -dunamai = ">=1.7.0" -funcy = ">=1.17" -jinja2 = ">=3.1.4" -jinja2-ansible-filters = ">=1.3.1" -packaging = ">=23.0" -pathspec = ">=0.9.0" -plumbum = ">=1.6.9" -pydantic = ">=2.4.2" -pygments = ">=2.7.1" -pyyaml = ">=5.3.1" -questionary = ">=1.8.1" - -[[package]] -name = "coverage" -version = "7.6.10" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78"}, - {file = "coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c"}, - {file = "coverage-7.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a"}, - {file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165"}, - {file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988"}, - {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5"}, - {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3"}, - {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5"}, - {file = "coverage-7.6.10-cp310-cp310-win32.whl", hash = "sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244"}, - {file = "coverage-7.6.10-cp310-cp310-win_amd64.whl", hash = "sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e"}, - {file = "coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3"}, - {file = "coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43"}, - {file = "coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132"}, - {file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f"}, - {file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994"}, - {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99"}, - {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd"}, - {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377"}, - {file = "coverage-7.6.10-cp311-cp311-win32.whl", hash = "sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8"}, - {file = "coverage-7.6.10-cp311-cp311-win_amd64.whl", hash = "sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609"}, - {file = "coverage-7.6.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853"}, - {file = "coverage-7.6.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078"}, - {file = "coverage-7.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0"}, - {file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50"}, - {file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022"}, - {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b"}, - {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0"}, - {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852"}, - {file = "coverage-7.6.10-cp312-cp312-win32.whl", hash = "sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359"}, - {file = "coverage-7.6.10-cp312-cp312-win_amd64.whl", hash = "sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247"}, - {file = "coverage-7.6.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9"}, - {file = "coverage-7.6.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b"}, - {file = "coverage-7.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690"}, - {file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18"}, - {file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c"}, - {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd"}, - {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e"}, - {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694"}, - {file = "coverage-7.6.10-cp313-cp313-win32.whl", hash = "sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6"}, - {file = "coverage-7.6.10-cp313-cp313-win_amd64.whl", hash = "sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e"}, - {file = "coverage-7.6.10-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe"}, - {file = "coverage-7.6.10-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273"}, - {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8"}, - {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098"}, - {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb"}, - {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0"}, - {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf"}, - {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2"}, - {file = "coverage-7.6.10-cp313-cp313t-win32.whl", hash = "sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312"}, - {file = "coverage-7.6.10-cp313-cp313t-win_amd64.whl", hash = "sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d"}, - {file = "coverage-7.6.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a"}, - {file = "coverage-7.6.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27"}, - {file = "coverage-7.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4"}, - {file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f"}, - {file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25"}, - {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315"}, - {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90"}, - {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d"}, - {file = "coverage-7.6.10-cp39-cp39-win32.whl", hash = "sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18"}, - {file = "coverage-7.6.10-cp39-cp39-win_amd64.whl", hash = "sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59"}, - {file = "coverage-7.6.10-pp39.pp310-none-any.whl", hash = "sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f"}, - {file = "coverage-7.6.10.tar.gz", hash = "sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23"}, -] - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "deepdiff" -version = "8.2.0" -description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." -optional = false -python-versions = ">=3.8" -files = [ - {file = "deepdiff-8.2.0-py3-none-any.whl", hash = "sha256:5091f2cdfd372b1b9f6bfd8065ba323ae31118dc4e42594371b38c8bea3fd0a4"}, - {file = "deepdiff-8.2.0.tar.gz", hash = "sha256:6ec78f65031485735545ffbe7a61e716c3c2d12ca6416886d5e9291fc76c46c3"}, -] - -[package.dependencies] -orderly-set = ">=5.3.0,<6" - -[package.extras] -cli = ["click (==8.1.8)", "pyyaml (==6.0.2)"] -optimize = ["orjson"] - -[[package]] -name = "distlib" -version = "0.3.9" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, -] - -[[package]] -name = "docutils" -version = "0.21.2" -description = "Docutils -- Python Documentation Utilities" -optional = false -python-versions = ">=3.9" -files = [ - {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, - {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, -] - -[[package]] -name = "dunamai" -version = "1.23.0" -description = "Dynamic version generation" -optional = false -python-versions = ">=3.5" -files = [ - {file = "dunamai-1.23.0-py3-none-any.whl", hash = "sha256:a0906d876e92441793c6a423e16a4802752e723e9c9a5aabdc5535df02dbe041"}, - {file = "dunamai-1.23.0.tar.gz", hash = "sha256:a163746de7ea5acb6dacdab3a6ad621ebc612ed1e528aaa8beedb8887fccd2c4"}, -] - -[package.dependencies] -packaging = ">=20.9" - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "filelock" -version = "3.17.0" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.9" -files = [ - {file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"}, - {file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] -typing = ["typing-extensions (>=4.12.2)"] - -[[package]] -name = "frozenlist" -version = "1.5.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -optional = false -python-versions = ">=3.8" -files = [ - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, - {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, - {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, - {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, - {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, - {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, - {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, - {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, - {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, - {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, - {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, - {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, - {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, - {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, - {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, -] - -[[package]] -name = "funcy" -version = "2.0" -description = "A fancy and practical functional tools" -optional = false -python-versions = "*" -files = [ - {file = "funcy-2.0-py2.py3-none-any.whl", hash = "sha256:53df23c8bb1651b12f095df764bfb057935d49537a56de211b098f4c79614bb0"}, - {file = "funcy-2.0.tar.gz", hash = "sha256:3963315d59d41c6f30c04bc910e10ab50a3ac4a225868bfa96feed133df075cb"}, -] - -[[package]] -name = "identify" -version = "2.6.6" -description = "File identification library for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "identify-2.6.6-py2.py3-none-any.whl", hash = "sha256:cbd1810bce79f8b671ecb20f53ee0ae8e86ae84b557de31d89709dc2a48ba881"}, - {file = "identify-2.6.6.tar.gz", hash = "sha256:7bec12768ed44ea4761efb47806f0a41f86e7c0a5fdf5950d4648c90eca7e251"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.10" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.6" -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "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 = "jinja2" -version = "3.1.5" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, - {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jinja2-ansible-filters" -version = "1.3.2" -description = "A port of Ansible's jinja2 filters without requiring ansible core." -optional = false -python-versions = "*" -files = [ - {file = "jinja2-ansible-filters-1.3.2.tar.gz", hash = "sha256:07c10cf44d7073f4f01102ca12d9a2dc31b41d47e4c61ed92ef6a6d2669b356b"}, - {file = "jinja2_ansible_filters-1.3.2-py3-none-any.whl", hash = "sha256:e1082f5564917649c76fed239117820610516ec10f87735d0338688800a55b34"}, -] - -[package.dependencies] -Jinja2 = "*" -PyYAML = "*" - -[package.extras] -test = ["pytest", "pytest-cov"] - -[[package]] -name = "libsass" -version = "0.23.0" -description = "Sass for Python: A straightforward binding of libsass for Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "libsass-0.23.0-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:34cae047cbbfc4ffa832a61cbb110f3c95f5471c6170c842d3fed161e40814dc"}, - {file = "libsass-0.23.0-cp38-abi3-macosx_14_0_arm64.whl", hash = "sha256:ea97d1b45cdc2fc3590cb9d7b60f1d8915d3ce17a98c1f2d4dd47ee0d9c68ce6"}, - {file = "libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306"}, - {file = "libsass-0.23.0-cp38-abi3-win32.whl", hash = "sha256:31e86d92a5c7a551df844b72d83fc2b5e50abc6fbbb31e296f7bebd6489ed1b4"}, - {file = "libsass-0.23.0-cp38-abi3-win_amd64.whl", hash = "sha256:a2ec85d819f353cbe807432d7275d653710d12b08ec7ef61c124a580a8352f3c"}, - {file = "libsass-0.23.0.tar.gz", hash = "sha256:6f209955ede26684e76912caf329f4ccb57e4a043fd77fe0e7348dd9574f1880"}, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.9" -files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, -] - -[[package]] -name = "mergedeep" -version = "1.3.4" -description = "A deep merge function for 🐍." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "more-itertools" -version = "10.6.0" -description = "More routines for operating on iterables, beyond itertools" -optional = false -python-versions = ">=3.9" -files = [ - {file = "more-itertools-10.6.0.tar.gz", hash = "sha256:2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b"}, - {file = "more_itertools-10.6.0-py3-none-any.whl", hash = "sha256:6eb054cb4b6db1473f6e15fcc676a08e4732548acd47c708f0e179c2c7c01e89"}, -] - -[[package]] -name = "msgpack" -version = "1.1.0" -description = "MessagePack serializer" -optional = false -python-versions = ">=3.8" -files = [ - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"}, - {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"}, - {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"}, - {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"}, - {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"}, - {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"}, - {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"}, - {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"}, - {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"}, - {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"}, - {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"}, - {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"}, - {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"}, - {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, -] - -[[package]] -name = "multidict" -version = "6.1.0" -description = "multidict implementation" -optional = false -python-versions = ">=3.8" -files = [ - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, - {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, - {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, - {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, - {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, - {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, - {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, - {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, - {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, - {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, - {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, - {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, - {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, - {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, - {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} - -[[package]] -name = "mypy" -version = "1.15.0" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, - {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, - {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, - {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, - {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, - {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, - {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, - {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, - {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, - {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"}, - {file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"}, - {file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"}, - {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, - {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, -] - -[package.dependencies] -mypy_extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing_extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -faster-cache = ["orjson"] -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 = "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 = "nova-galaxy" -version = "0.7.0" -description = "Utilties for accessing the ORNL Galaxy instance" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_galaxy-0.7.0-py3-none-any.whl", hash = "sha256:1ff51e5e7fcf050f7678a52dc4248ba3283f3bb222f45d24d7c13efba0d2c91f"}, -] - -[package.dependencies] -bioblend = ">=1.3.0,<2.0.0" -tomli = ">=2.0.2,<3.0.0" - -[[package]] -name = "nova-mvvm" -version = "0.9.0" -description = "A Python Package for Model-View-ViewModel pattern" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_mvvm-0.9.0-py3-none-any.whl", hash = "sha256:60c70f8579b155e7081548e8aec9e77de497fa33ac569096015cffe27ef0f796"}, -] - -[package.dependencies] -deepdiff = ">=8.0.1,<9.0.0" -pytest-asyncio = ">=0.25.0,<0.26.0" -trame = ">=3.6.3,<4.0.0" - -[package.extras] -panel = ["panel (>=1.4.4,<2.0.0)"] -pyqt5 = ["pyqt5 (>=5.15.11,<6.0.0)"] -pyqt6 = ["pyqt6 (>=6.7.0,<7.0.0)"] - -[[package]] -name = "nova-trame" -version = "0.14.2" -description = "A Python Package for injecting curated themes and custom components into Trame applications" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_trame-0.14.2-py3-none-any.whl", hash = "sha256:225c97960947e7b107c5ed425213658ab192079253ecd13451cd06af66ef1ca3"}, -] - -[package.dependencies] -libsass = "*" -mergedeep = "*" -nova-mvvm = "*" -pydantic = "*" -tomli = "*" -trame = "*" -trame-vega = "*" -trame-vuetify = "*" - -[[package]] -name = "orderly-set" -version = "5.3.0" -description = "Orderly set" -optional = false -python-versions = ">=3.8" -files = [ - {file = "orderly_set-5.3.0-py3-none-any.whl", hash = "sha256:c2c0bfe604f5d3d9b24e8262a06feb612594f37aa3845650548befd7772945d1"}, - {file = "orderly_set-5.3.0.tar.gz", hash = "sha256:80b3d8fdd3d39004d9aad389eaa0eab02c71f0a0511ba3a6d54a935a6c6a0acc"}, -] - -[[package]] -name = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "platformdirs" -version = "4.3.6" -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.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] - -[[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 = "plumbum" -version = "1.9.0" -description = "Plumbum: shell combinators library" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5"}, - {file = "plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219"}, -] - -[package.dependencies] -pywin32 = {version = "*", markers = "platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""} - -[package.extras] -dev = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] -docs = ["sphinx (>=4.0.0)", "sphinx-rtd-theme (>=1.0.0)"] -ssh = ["paramiko"] -test = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] - -[[package]] -name = "pockets" -version = "0.9.1" -description = "A collection of helpful Python tools!" -optional = false -python-versions = "*" -files = [ - {file = "pockets-0.9.1-py2.py3-none-any.whl", hash = "sha256:68597934193c08a08eb2bf6a1d85593f627c22f9b065cc727a4f03f669d96d86"}, - {file = "pockets-0.9.1.tar.gz", hash = "sha256:9320f1a3c6f7a9133fe3b571f283bcf3353cd70249025ae8d618e40e9f7e92b3"}, -] - -[package.dependencies] -six = ">=1.5.2" - -[[package]] -name = "pre-commit" -version = "4.1.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = false -python-versions = ">=3.9" -files = [ - {file = "pre_commit-4.1.0-py2.py3-none-any.whl", hash = "sha256:d29e7cb346295bcc1cc75fc3e92e343495e3ea0196c9ec6ba53f49f10ab6ae7b"}, - {file = "pre_commit-4.1.0.tar.gz", hash = "sha256:ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4"}, -] - -[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.50" -description = "Library for building powerful interactive command lines in Python" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, - {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "propcache" -version = "0.2.1" -description = "Accelerated property cache" -optional = false -python-versions = ">=3.9" -files = [ - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, - {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, - {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, - {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, - {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, - {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, - {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, - {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, - {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, - {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, - {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, - {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, - {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, -] - -[[package]] -name = "pydantic" -version = "2.10.6" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, - {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.27.2" -typing-extensions = ">=4.12.2" - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] - -[[package]] -name = "pydantic-core" -version = "2.27.2" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, - {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pygments" -version = "2.19.1" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pytest" -version = "8.3.4" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, - {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-asyncio" -version = "0.25.3" -description = "Pytest support for asyncio" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3"}, - {file = "pytest_asyncio-0.25.3.tar.gz", hash = "sha256:fc1da2cf9f125ada7e710b4ddad05518d4cee187ae9412e9ac9271003497f07a"}, -] - -[package.dependencies] -pytest = ">=8.2,<9" - -[package.extras] -docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] -testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] - -[[package]] -name = "pywin32" -version = "308" -description = "Python for Window Extensions" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, - {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, - {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, - {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, - {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, - {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, - {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, - {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, - {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, - {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, - {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, - {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, - {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, - {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, - {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, - {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, - {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, - {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "questionary" -version = "2.1.0" -description = "Python library to build pretty command line user prompts ⭐️" -optional = false -python-versions = ">=3.8" -files = [ - {file = "questionary-2.1.0-py3-none-any.whl", hash = "sha256:44174d237b68bc828e4878c763a9ad6790ee61990e0ae72927694ead57bab8ec"}, - {file = "questionary-2.1.0.tar.gz", hash = "sha256:6302cdd645b19667d8f6e6634774e9538bfcd1aad9be287e743d96cacaf95587"}, -] - -[package.dependencies] -prompt_toolkit = ">=2.0,<4.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 = "requests-toolbelt" -version = "1.0.0" -description = "A utility belt for advanced users of python-requests" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, - {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, -] - -[package.dependencies] -requests = ">=2.0.1,<3.0.0" - -[[package]] -name = "ruff" -version = "0.9.5" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.9.5-py3-none-linux_armv6l.whl", hash = "sha256:d466d2abc05f39018d53f681fa1c0ffe9570e6d73cde1b65d23bb557c846f442"}, - {file = "ruff-0.9.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:38840dbcef63948657fa7605ca363194d2fe8c26ce8f9ae12eee7f098c85ac8a"}, - {file = "ruff-0.9.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d56ba06da53536b575fbd2b56517f6f95774ff7be0f62c80b9e67430391eeb36"}, - {file = "ruff-0.9.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f7cb2a01da08244c50b20ccfaeb5972e4228c3c3a1989d3ece2bc4b1f996001"}, - {file = "ruff-0.9.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:96d5c76358419bc63a671caac70c18732d4fd0341646ecd01641ddda5c39ca0b"}, - {file = "ruff-0.9.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:deb8304636ed394211f3a6d46c0e7d9535b016f53adaa8340139859b2359a070"}, - {file = "ruff-0.9.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:df455000bf59e62b3e8c7ba5ed88a4a2bc64896f900f311dc23ff2dc38156440"}, - {file = "ruff-0.9.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de92170dfa50c32a2b8206a647949590e752aca8100a0f6b8cefa02ae29dce80"}, - {file = "ruff-0.9.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d28532d73b1f3f627ba88e1456f50748b37f3a345d2be76e4c653bec6c3e393"}, - {file = "ruff-0.9.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c746d7d1df64f31d90503ece5cc34d7007c06751a7a3bbeee10e5f2463d52d2"}, - {file = "ruff-0.9.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:11417521d6f2d121fda376f0d2169fb529976c544d653d1d6044f4c5562516ee"}, - {file = "ruff-0.9.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:5b9d71c3879eb32de700f2f6fac3d46566f644a91d3130119a6378f9312a38e1"}, - {file = "ruff-0.9.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2e36c61145e70febcb78483903c43444c6b9d40f6d2f800b5552fec6e4a7bb9a"}, - {file = "ruff-0.9.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:2f71d09aeba026c922aa7aa19a08d7bd27c867aedb2f74285a2639644c1c12f5"}, - {file = "ruff-0.9.5-py3-none-win32.whl", hash = "sha256:134f958d52aa6fdec3b294b8ebe2320a950d10c041473c4316d2e7d7c2544723"}, - {file = "ruff-0.9.5-py3-none-win_amd64.whl", hash = "sha256:78cc6067f6d80b6745b67498fb84e87d32c6fc34992b52bffefbdae3442967d6"}, - {file = "ruff-0.9.5-py3-none-win_arm64.whl", hash = "sha256:18a29f1a005bddb229e580795627d297dfa99f16b30c7039e73278cf6b5f9fa9"}, - {file = "ruff-0.9.5.tar.gz", hash = "sha256:11aecd7a633932875ab3cb05a484c99970b9d52606ce9ea912b690b02653d56c"}, -] - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -optional = false -python-versions = "*" -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "sphinx" -version = "8.1.3" -description = "Python documentation generator" -optional = false -python-versions = ">=3.10" -files = [ - {file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"}, - {file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"}, -] - -[package.dependencies] -alabaster = ">=0.7.14" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" -imagesize = ">=1.3" -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" -sphinxcontrib-applehelp = ">=1.0.7" -sphinxcontrib-devhelp = ">=1.0.6" -sphinxcontrib-htmlhelp = ">=2.0.6" -sphinxcontrib-jsmath = ">=1.0.1" -sphinxcontrib-qthelp = ">=1.0.6" -sphinxcontrib-serializinghtml = ">=1.1.9" -tomli = {version = ">=2", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] - -[[package]] -name = "sphinx-rtd-theme" -version = "3.0.2" -description = "Read the Docs theme for Sphinx" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, - {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, -] - -[package.dependencies] -docutils = ">0.18,<0.22" -sphinx = ">=6,<9" -sphinxcontrib-jquery = ">=4,<5" - -[package.extras] -dev = ["bump2version", "transifex-client", "twine", "wheel"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, - {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, - {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, - {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jquery" -version = "4.1" -description = "Extension to include jQuery on newer Sphinx releases" -optional = false -python-versions = ">=2.7" -files = [ - {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, - {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, -] - -[package.dependencies] -Sphinx = ">=1.8" - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -optional = false -python-versions = ">=3.5" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-napoleon" -version = "0.7" -description = "Sphinx \"napoleon\" extension." -optional = false -python-versions = "*" -files = [ - {file = "sphinxcontrib-napoleon-0.7.tar.gz", hash = "sha256:407382beed396e9f2d7f3043fad6afda95719204a1e1a231ac865f40abcbfcf8"}, - {file = "sphinxcontrib_napoleon-0.7-py2.py3-none-any.whl", hash = "sha256:711e41a3974bdf110a484aec4c1a556799eb0b3f3b897521a018ad7e2db13fef"}, -] - -[package.dependencies] -pockets = ">=0.3" -six = ">=1.5.2" - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, - {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, - {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "tinydb" -version = "4.8.2" -description = "TinyDB is a tiny, document oriented database optimized for your happiness :)" -optional = false -python-versions = "<4.0,>=3.8" -files = [ - {file = "tinydb-4.8.2-py3-none-any.whl", hash = "sha256:f97030ee5cbc91eeadd1d7af07ab0e48ceb04aa63d4a983adbaca4cba16e86c3"}, - {file = "tinydb-4.8.2.tar.gz", hash = "sha256:f7dfc39b8d7fda7a1ca62a8dbb449ffd340a117c1206b68c50b1a481fb95181d"}, -] - -[[package]] -name = "tomli" -version = "2.2.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, -] - -[[package]] -name = "trame" -version = "3.8.0" -description = "Trame, a framework to build applications in plain Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame-3.8.0-py3-none-any.whl", hash = "sha256:e4c9e648938ec0759f6893ba7afd095afaf0c88b4b8202157717691e135e924f"}, - {file = "trame-3.8.0.tar.gz", hash = "sha256:d084942828ac7930e05dbb765468cffe4ef8bd5170dbd48333a930140b540ccd"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" -trame-server = ">=3.2.3,<4" -wslink = ">=2.1.3" - -[package.extras] -app = ["pywebview"] -dev = ["pre-commit", "pytest", "ruff"] -jupyter = ["jupyterlab"] - -[[package]] -name = "trame-client" -version = "3.5.2" -description = "Internal client of trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_client-3.5.2-py3-none-any.whl", hash = "sha256:8a950482a437c8245b66bfeb00ac5d7b880b9023f32199e28f15d04f29205ee1"}, - {file = "trame_client-3.5.2.tar.gz", hash = "sha256:e46ddb8e3d611bff90803bff176044083ed85095544557a499eae9c231abedc5"}, -] - -[package.extras] -dev = ["pre-commit", "ruff"] -test = ["Pillow", "pixelmatch", "pytest", "pytest-xprocess", "seleniumbase"] - -[[package]] -name = "trame-server" -version = "3.3.0" -description = "Internal server side implementation of trame" -optional = false -python-versions = ">=3.7" -files = [ - {file = "trame_server-3.3.0-py3-none-any.whl", hash = "sha256:7865053d82617c8d435d274ccf917594a2b1c0d90379f9e686cd662c7ee9cf1a"}, - {file = "trame_server-3.3.0.tar.gz", hash = "sha256:b0b1769d9a0eb816c69076188773cb93b0e2f83c27009d8e94d7208e63c33805"}, -] - -[package.dependencies] -more-itertools = "*" -wslink = ">=2.2.2,<3" - -[package.extras] -dev = ["pre-commit", "pytest", "pytest-asyncio", "ruff"] - -[[package]] -name = "trame-vega" -version = "2.1.1" -description = "Vega widget for trame" -optional = false -python-versions = "*" -files = [ - {file = "trame-vega-2.1.1.tar.gz", hash = "sha256:a3d82f7535a66a782262647001987dba3ad0ddc64ce21225a4cfccd351fed8fa"}, - {file = "trame_vega-2.1.1-py3-none-any.whl", hash = "sha256:044ea338f74fe83e7a5eca15fd1723b3b5f2847d5ca0ed2f0325e30d7676b6c9"}, -] - -[package.dependencies] -trame-client = "*" - -[[package]] -name = "trame-vuetify" -version = "2.8.1" -description = "Vuetify widgets for trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_vuetify-2.8.1-py3-none-any.whl", hash = "sha256:47d35ab4ec6d37ad1ad8e63c0a2de7c25677f62ef383f1b1e06dd74dda8a3767"}, - {file = "trame_vuetify-2.8.1.tar.gz", hash = "sha256:281606797c29b0300ec2b3524c4396ac2b78da1a300d188d603af09eea83bfe2"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" - -[package.extras] -dev = ["pre-commit", "pytest", "ruff"] - -[[package]] -name = "tuspy" -version = "1.1.0" -description = "A Python client for the tus resumable upload protocol -> http://tus.io" -optional = false -python-versions = ">=3.5.3" -files = [ - {file = "tuspy-1.1.0-py3-none-any.whl", hash = "sha256:7fc5ac8fb25de37c96c90213f83a1ffdede7f48a471cb5a15a2f57846828a79a"}, - {file = "tuspy-1.1.0.tar.gz", hash = "sha256:156734eac5c61a046cfecd70f14119f05be92cce198eb5a1a99a664482bedb89"}, -] - -[package.dependencies] -aiohttp = ">=3.6.2" -requests = ">=2.18.4" -tinydb = ">=3.5.0" - -[package.extras] -dev = ["Sphinx (==1.7.1)", "sphinx-autobuild (==2021.3.14)", "tox (>=2.3.1)"] -test = ["aioresponses (>=0.6.2)", "coverage (>=4.2)", "parametrize (>=0.1.1)", "pytest (>=3.0.3)", "pytest-cov (>=2.3.1,<2.6)", "responses (>=0.5.1)"] - -[[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 = "urllib3" -version = "2.3.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.9" -files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.29.1" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.8" -files = [ - {file = "virtualenv-20.29.1-py3-none-any.whl", hash = "sha256:4e4cb403c0b0da39e13b46b1b2476e505cb0046b25f242bee80f62bf990b2779"}, - {file = "virtualenv-20.29.1.tar.gz", hash = "sha256:b8b8970138d32fb606192cb97f6cd4bb644fa486be9308fb9b63f81091b5dc35"}, -] - -[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 = "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 = "wslink" -version = "2.2.2" -description = "Python/JavaScript library for communicating over WebSocket" -optional = false -python-versions = "*" -files = [ - {file = "wslink-2.2.2-py3-none-any.whl", hash = "sha256:8fbab2fb89d0215b9ac3da0a20d554e6b1e05bab8b97883923e7f7ffeaef43d3"}, - {file = "wslink-2.2.2.tar.gz", hash = "sha256:f9c24c08b89d2bd9bd77951ad0c01da9c28905dda29d7397f7f72b542c496840"}, -] - -[package.dependencies] -aiohttp = "<4" -msgpack = ">=1,<2" - -[package.extras] -ssl = ["cryptography"] - -[[package]] -name = "yarl" -version = "1.18.3" -description = "Yet another URL library" -optional = false -python-versions = ">=3.9" -files = [ - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, - {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, - {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, - {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, - {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, - {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, - {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, - {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, - {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, - {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, - {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, - {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, - {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -propcache = ">=0.2.0" - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "21cb4efdfeedffeac02c47e0e53c8fa5e296badf0f246a4f72738eb878ebcc21" diff --git a/code/episode_4/pyproject.toml b/code/episode_4/pyproject.toml index 1237ea40..42637af1 100755 --- a/code/episode_4/pyproject.toml +++ b/code/episode_4/pyproject.toml @@ -1,4 +1,4 @@ -[tool.poetry] +[project] name = "nova-tutorial" version = "0.1.0" description = "Nova Tutorial Project" @@ -6,21 +6,52 @@ authors = [] readme = "README.md" license = "MIT" keywords = ["NDIP", "NOVA", "python"] +requires-python = ">=3.10,<3.14" +dependencies = ["nova-galaxy>=0.11.6,<0.12"] -packages = [ - { include = "nova_tutorial", from = "src" } -] +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["linux-64", "osx-64"] + +[tool.pixi.environments] +default = {features = ["dev"], solve-group = "default"} +production = {features = [], solve-group = "default"} +[tool.pixi.dependencies] -[tool.poetry.dependencies] -python = "^3.10" +[tool.pixi.pypi-dependencies] +nova-tutorial = { path = ".", editable = true } +hatch = "*" +gitpython = ">=3.1.40,<4" +python-gitlab = ">=5.6.0,<6" nova-trame = "*" -nova-galaxy = "^0.7.0" +trame-datagrid = ">=0.2.2" + + +[tool.pixi.feature.dev.pypi-dependencies] +mypy = ">=1.10.0" +pre-commit = ">=2.20.0" +coverage = ">=6.4.3" +pytest = "*" +ruff = ">=0.6.2" +copier=">=9.3" +sphinx = "*" +sphinx-rtd-theme = "*" +sphinxcontrib-napoleon ="*" +tomli = "*" + +[tool.pixi.tasks] +app = "python -m src.nova_tutorial.app" +init-repo = "python -m scripts.git_utils" +deploy-production = "python -m scripts.xml_utils" +deploy-prototype = "python -m scripts.xml_utils_prototype" [build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +requires = ["hatchling"] +build-backend = "hatchling.build" +[tool.hatch.build.targets.wheel] +packages = ["src/nova_tutorial"] [tool.pytest.ini_options] testpaths = ["tests"] @@ -28,6 +59,7 @@ python_files = ["test*.py"] norecursedirs = [".git", "tmp*", "_tmp*", "__pycache__"] [tool.ruff] +extend-exclude = [".pixi"] line-length = 120 [tool.ruff.lint] @@ -52,8 +84,6 @@ ignore = [ [tool.ruff.lint.extend-per-file-ignores] '__init__.py' = ['D104'] # Missing docstring in public package - - [tool.ruff.lint.pydocstyle] convention = "numpy" @@ -72,20 +102,4 @@ omit = [ ] [tool.coverage.run] -command_line = "-m pytest --junit-xml=reports/junit.xml" -data_file = "reports/.coverage" - -[tool.poetry.dev-dependencies] -mypy = ">=1.10.0" -pre-commit = ">=2.20.0" -coverage = ">=6.4.3" -pytest = "*" -ruff = ">=0.6.2" -copier=">=9.3" -sphinx = "*" -sphinx-rtd-theme = "*" -sphinxcontrib-napoleon ="*" -tomli = "*" - -[tool.poetry.scripts] -app = "nova_tutorial.app:main" +command_line = "-m pytest --jun \ No newline at end of file diff --git a/code/episode_4/src/nova_tutorial/__init__.py b/code/episode_4/src/nova_tutorial/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_4/src/nova_tutorial/app/__init__.py b/code/episode_4/src/nova_tutorial/app/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_4/src/nova_tutorial/app/__main__.py b/code/episode_4/src/nova_tutorial/app/__main__.py old mode 100755 new mode 100644 diff --git a/code/episode_4/src/nova_tutorial/app/main.py b/code/episode_4/src/nova_tutorial/app/main.py old mode 100755 new mode 100644 index 2977dbe1..68cf8a37 --- a/code/episode_4/src/nova_tutorial/app/main.py +++ b/code/episode_4/src/nova_tutorial/app/main.py @@ -5,7 +5,7 @@ def main() -> None: kwargs = {} - from .views.main import MainApp + from .views.main_view import MainApp app = MainApp() for arg in sys.argv[2:]: diff --git a/code/episode_4/src/nova_tutorial/app/models/__init__.py b/code/episode_4/src/nova_tutorial/app/models/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_4/src/nova_tutorial/app/models/fractal.py b/code/episode_4/src/nova_tutorial/app/models/fractal.py old mode 100755 new mode 100644 index 841e72e5..8c0a1c50 --- a/code/episode_4/src/nova_tutorial/app/models/fractal.py +++ b/code/episode_4/src/nova_tutorial/app/models/fractal.py @@ -6,33 +6,33 @@ from nova.galaxy import Connection, Parameters, Tool -class Fractal(BaseModel): +class FractalData(BaseModel): fractal_type: Literal["mandelbrot", "julia", "random", "markus"] = Field(default="mandelbrot") - galaxy_url: str = Field(default_factory=lambda: os.getenv("GALAXY_URL"), description="NDIP Galaxy URL") - galaxy_key: str = Field(default_factory=lambda: os.getenv("GALAXY_API_KEY"), description="NDIP Galaxy API Key") + galaxy_url: str = Field(default=os.getenv("GALAXY_URL", ""), description="NDIP Galaxy URL") + galaxy_key: str = Field(default=os.getenv("GALAXY_API_KEY", ""), description="NDIP Galaxy API Key") image_data: str = Field(default="", description="Base64 encoded PNG") + +class Fractal: + def __init__(self): + self.data = FractalData(fractal_type="mandelbrot") + def set_fractal_type(self, fractal_type: str): - self.fractal_type = fractal_type + self.data.fractal_type = fractal_type def run_fractal_tool(self): - """Runs the fractal tool with the current fractal type.""" - if not self.galaxy_url or not self.galaxy_key: - raise Exception( - "You must specify GALAXY_URL and GALAXY_API_KEY as environment variables." - ) - - conn = Connection(galaxy_url=self.galaxy_url, galaxy_key=self.galaxy_key) + conn = Connection(galaxy_url=self.data.galaxy_url, galaxy_key=self.data.galaxy_key) tool = Tool(id="neutrons_fractal") params = Parameters() + params.add_input(name="option", value=self.data.fractal_type) with conn.connect() as galaxy_connection: data_store = galaxy_connection.create_data_store(name="fractal_store") data_store.persist() - output = tool.run(data_store, params) - output.get_dataset("output").download("tmp.png") - - with open("tmp.png", "rb") as image_file: - self.image_data = f"data:image/png;base64,{b64encode(image_file.read()).decode()}" + print("Executing fractal tool. This might take a few minutes.") + output = tool.run(data_store, params, wait=True) + output.get_dataset("output").download("image.png") + with open("image.png", "rb") as image_file: + self.data.image_data = f"data:image/png;base64,{b64encode(image_file.read()).decode()}" print("Fractal tool finished successfully.") diff --git a/code/episode_4/src/nova_tutorial/app/models/main_model.py b/code/episode_4/src/nova_tutorial/app/models/main_model.py old mode 100755 new mode 100644 index 6d5028af..bca4b83a --- a/code/episode_4/src/nova_tutorial/app/models/main_model.py +++ b/code/episode_4/src/nova_tutorial/app/models/main_model.py @@ -1,10 +1,11 @@ """Module for the main model.""" from pydantic import BaseModel, Field + from .fractal import Fractal -class MainModel(BaseModel): +class Config(BaseModel): """ A model class. @@ -22,4 +23,9 @@ class MainModel(BaseModel): examples=["user"], ) password: str = Field(default="test_password", title="User Password") - fractal: Fractal = Field(default_factory=Fractal) \ No newline at end of file + + +class MainModel: + def __init__(self): + self.config = Config() + self.fractal = Fractal() diff --git a/code/episode_4/src/nova_tutorial/app/mvvm_factory.py b/code/episode_4/src/nova_tutorial/app/mvvm_factory.py old mode 100755 new mode 100644 index 3b56e2b6..c11e5916 --- a/code/episode_4/src/nova_tutorial/app/mvvm_factory.py +++ b/code/episode_4/src/nova_tutorial/app/mvvm_factory.py @@ -3,13 +3,12 @@ from nova.mvvm.interface import BindingInterface from .models.main_model import MainModel -from .view_models.main import MainViewModel +from .view_models.main_view_model import MainViewModel def create_viewmodels(binding: BindingInterface) -> dict: model = MainModel() vm: dict = {} vm["main"] = MainViewModel(model, binding) - print(vm["main"].model.fractal.galaxy_key) return vm diff --git a/code/episode_4/src/nova_tutorial/app/view_models/__init__.py b/code/episode_4/src/nova_tutorial/app/view_models/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_4/src/nova_tutorial/app/view_models/main.py b/code/episode_4/src/nova_tutorial/app/view_models/main.py deleted file mode 100755 index 90d3c9a3..00000000 --- a/code/episode_4/src/nova_tutorial/app/view_models/main.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Module for the main ViewModel.""" - -from typing import Any, Dict - -from nova.mvvm.interface import BindingInterface - -from ..models.main_model import MainModel - - -class MainViewModel(): - """Viewmodel class, used to create data<->view binding and react on changes from GUI.""" - - def __init__(self, model: MainModel, binding: BindingInterface): - self.model = model - - # here we create a bind that connects ViewModel with View. It returns a communicator object, - # that allows to update View from ViewModel (by calling update_view). - # self.model will be updated automatically on changes of connected fields in View, - # but one also can provide a callback function if they want to react to those events - # and/or process errors. - self.config_bind = binding.new_bind(self.model, callback_after_update=self.change_callback) - - def change_callback(self, results: Dict[str, Any]) -> None: - if results["error"]: - print(f"error in fields {results['errored']}, model not changed") - else: - print(f"model fields updated: {results['updated']}") - - def update_view(self) -> None: - self.config_bind.update_in_view(self.model) - - def run_fractal(self) -> None: - self.model.fractal.run_fractal_tool() - self.update_view() diff --git a/code/episode_4/src/nova_tutorial/app/views/__init__.py b/code/episode_4/src/nova_tutorial/app/views/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_4/src/nova_tutorial/app/views/fractal_tab.py b/code/episode_4/src/nova_tutorial/app/views/fractal_tab.py old mode 100755 new mode 100644 index f2ec0383..4767f833 --- a/code/episode_4/src/nova_tutorial/app/views/fractal_tab.py +++ b/code/episode_4/src/nova_tutorial/app/views/fractal_tab.py @@ -1,18 +1,20 @@ from trame.widgets import vuetify3 as vuetify from nova.trame.view.components import InputField -from nova_tutorial.app.view_models.main import MainViewModel +from nova.trame.view.layouts import VBoxLayout +from nova_tutorial.app.view_models.main_view_model import MainViewModel -class FractalTab: +class FractalTab: def __init__(self, view_model: MainViewModel) -> None: self.view_model = view_model + self.view_model.fractal_bind.connect("fractal") self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.fractal.fractal_type") - vuetify.VBtn( - "Run Fractal", - click=self.view_model.run_fractal # calls the run_fractal_tool method - ) - vuetify.VImg(src=("config.fractal.image_data",), height="400", width="400") + with VBoxLayout(): + InputField(v_model="fractal.fractal_type") + with VBoxLayout(classes="mb-2", halign="start"): + vuetify.VBtn("Run Fractal", click=self.view_model.run_fractal) + with VBoxLayout(stretch=True): + vuetify.VImg(src=("fractal.image_data",), classes="h-100 w-100") diff --git a/code/episode_4/src/nova_tutorial/app/views/main.py b/code/episode_4/src/nova_tutorial/app/views/main.py deleted file mode 100755 index 2000c009..00000000 --- a/code/episode_4/src/nova_tutorial/app/views/main.py +++ /dev/null @@ -1,45 +0,0 @@ -"""Main file.""" - -import logging - -from nova.mvvm.trame_binding import TrameBinding -from nova.trame import ThemedApp -from trame.app import get_server - -from ..mvvm_factory import create_viewmodels -from ..view_models.main import MainViewModel -from .tab_content_panel import TabContentPanel -from .tabs_panel import TabsPanel - - -logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - - -class MainApp(ThemedApp): - """Main application view class. Calls rendering of nested UI elements.""" - - def __init__(self) -> None: - super().__init__() - self.server = get_server(None, client_type="vue3") - binding = TrameBinding(self.server.state) - self.server.state.trame__title = "Nova Tutorial" - self.view_models = create_viewmodels(binding) - self.view_model: MainViewModel = self.view_models["main"] - self.create_ui() - - def create_ui(self) -> None: - self.state.trame__title = "Nova Tutorial" - - with super().create_ui() as layout: - layout.toolbar_title.set_text("Nova Tutorial") - with layout.pre_content: - TabsPanel(self.view_models["main"]) - with layout.content: - TabContentPanel( - self.server, - self.view_models["main"], - ) - with layout.post_content: - pass - return layout diff --git a/code/episode_4/src/nova_tutorial/app/views/sample_tab_1.py b/code/episode_4/src/nova_tutorial/app/views/sample_tab_1.py old mode 100755 new mode 100644 index 891cdd10..f5d062e5 --- a/code/episode_4/src/nova_tutorial/app/views/sample_tab_1.py +++ b/code/episode_4/src/nova_tutorial/app/views/sample_tab_1.py @@ -1,6 +1,7 @@ """Module for the Sample Tab 1.""" from nova.trame.view.components import InputField +from nova.trame.view.layouts import VBoxLayout class SampleTab1: @@ -10,4 +11,5 @@ def __init__(self) -> None: self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.username") + with VBoxLayout(): + InputField(v_model="config.username") diff --git a/code/episode_4/src/nova_tutorial/app/views/sample_tab_2.py b/code/episode_4/src/nova_tutorial/app/views/sample_tab_2.py old mode 100755 new mode 100644 index 46765f0a..0e787b40 --- a/code/episode_4/src/nova_tutorial/app/views/sample_tab_2.py +++ b/code/episode_4/src/nova_tutorial/app/views/sample_tab_2.py @@ -1,6 +1,7 @@ """Module for the Sample Tab 2.""" from nova.trame.view.components import InputField +from nova.trame.view.layouts import VBoxLayout class SampleTab2: @@ -10,4 +11,5 @@ def __init__(self) -> None: self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.password") + with VBoxLayout(): + InputField(v_model="config.password") diff --git a/code/episode_4/src/nova_tutorial/app/views/tab_content_panel.py b/code/episode_4/src/nova_tutorial/app/views/tab_content_panel.py old mode 100755 new mode 100644 index ab67bd63..dff310a9 --- a/code/episode_4/src/nova_tutorial/app/views/tab_content_panel.py +++ b/code/episode_4/src/nova_tutorial/app/views/tab_content_panel.py @@ -1,12 +1,13 @@ """Module for the Tab Content panel.""" -from trame.widgets import vuetify3 as vuetify +from nova.trame.view.layouts import VBoxLayout from trame_server import Server -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel +from .fractal_tab import FractalTab from .sample_tab_1 import SampleTab1 from .sample_tab_2 import SampleTab2 -from .fractal_tab import FractalTab # Import the FractalTab + class TabContentPanel: """View class to render content for a selected tab.""" @@ -18,14 +19,9 @@ def __init__(self, server: Server, view_model: MainViewModel) -> None: self.create_ui() def create_ui(self) -> None: - with vuetify.VForm(ref="form") as self.f: - with vuetify.VContainer(classes="pa-0", fluid=True): - with vuetify.VCard(): - with vuetify.VWindow(v_model="active_tab"): - with vuetify.VWindowItem(value=1): - FractalTab(self.view_model) # Add FractalTab - with vuetify.VWindowItem(value=2): - SampleTab1() - with vuetify.VWindowItem(value=3): - SampleTab2() - + with VBoxLayout(v_show="view_state.active_tab == 0", stretch=True): + FractalTab(self.view_model) # Add FractalTab + with VBoxLayout(v_show="view_state.active_tab == 1", stretch=True): + SampleTab1() + with VBoxLayout(v_show="view_state.active_tab == 2", stretch=True): + SampleTab2() diff --git a/code/episode_4/src/nova_tutorial/app/views/tabs_panel.py b/code/episode_4/src/nova_tutorial/app/views/tabs_panel.py old mode 100755 new mode 100644 index 672b25d5..ce32269a --- a/code/episode_4/src/nova_tutorial/app/views/tabs_panel.py +++ b/code/episode_4/src/nova_tutorial/app/views/tabs_panel.py @@ -1,8 +1,9 @@ """Module for the Tab panel.""" +from trame.widgets import client from trame.widgets import vuetify3 as vuetify -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel class TabsPanel: @@ -11,10 +12,12 @@ class TabsPanel: def __init__(self, view_model: MainViewModel): self.view_model = view_model self.view_model.config_bind.connect("config") + self.view_model.view_state_bind.connect("view_state") self.create_ui() def create_ui(self) -> None: - with vuetify.VTabs(v_model=("active_tab", 0), classes="pl-5"): - vuetify.VTab("Fractal", value=1) # Add Fractal Tab - vuetify.VTab("Sample Tab 1", value=2) - vuetify.VTab("Sample Tab 2", value=3) + with client.DeepReactive("view_state"): + with vuetify.VTabs(v_model="view_state.active_tab", classes="pl-5"): + vuetify.VTab("Fractal", value=0) # Add Fractal Tab + vuetify.VTab("Sample Tab 1", value=1) + vuetify.VTab("Sample Tab 2", value=2) diff --git a/code/episode_4/tmp.png b/code/episode_4/tmp.png deleted file mode 100644 index 3989c99fbeafdf68d33a22cc14832b03eb19b5b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496830 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 Cg;FNt0@F19L?lu>av8JEA1rdYA# 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 Qi4hVQBPZwX?68?^{kFUTLn7BcS$aRC}i_-Lv= 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

    6Au;)z*xxR&D(14DT-9;mur12RLvg! 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�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.0,<6.0", markers = "python_version < \"3.11\""} -attrs = ">=17.3.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -propcache = ">=0.2.0" -yarl = ">=1.17.0,<2.0" - -[package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] - -[[package]] -name = "aiosignal" -version = "1.3.2" -description = "aiosignal: a list of registered asynchronous callbacks" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, - {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" - -[[package]] -name = "alabaster" -version = "1.0.0" -description = "A light, configurable Sphinx theme" -optional = false -python-versions = ">=3.10" -files = [ - {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, - {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, -] - -[[package]] -name = "altair" -version = "5.5.0" -description = "Vega-Altair: A declarative statistical visualization library for Python." -optional = false -python-versions = ">=3.9" -files = [ - {file = "altair-5.5.0-py3-none-any.whl", hash = "sha256:91a310b926508d560fe0148d02a194f38b824122641ef528113d029fcd129f8c"}, - {file = "altair-5.5.0.tar.gz", hash = "sha256:d960ebe6178c56de3855a68c47b516be38640b73fb3b5111c2a9ca90546dd73d"}, -] - -[package.dependencies] -jinja2 = "*" -jsonschema = ">=3.0" -narwhals = ">=1.14.2" -packaging = "*" -typing-extensions = {version = ">=4.10.0", markers = "python_version < \"3.14\""} - -[package.extras] -all = ["altair-tiles (>=0.3.0)", "anywidget (>=0.9.0)", "numpy", "pandas (>=1.1.3)", "pyarrow (>=11)", "vega-datasets (>=0.9.0)", "vegafusion[embed] (>=1.6.6)", "vl-convert-python (>=1.7.0)"] -dev = ["duckdb (>=1.0)", "geopandas", "hatch (>=1.13.0)", "ipython[kernel]", "mistune", "mypy", "pandas (>=1.1.3)", "pandas-stubs", "polars (>=0.20.3)", "pyarrow-stubs", "pytest", "pytest-cov", "pytest-xdist[psutil] (>=3.5,<4.0)", "ruff (>=0.6.0)", "types-jsonschema", "types-setuptools"] -doc = ["docutils", "jinja2", "myst-parser", "numpydoc", "pillow (>=9,<10)", "pydata-sphinx-theme (>=0.14.1)", "scipy", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinxext-altair"] -save = ["vl-convert-python (>=1.7.0)"] - -[[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 = "async-timeout" -version = "5.0.1" -description = "Timeout context manager for asyncio programs" -optional = false -python-versions = ">=3.8" -files = [ - {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, - {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, -] - -[[package]] -name = "attrs" -version = "25.3.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.8" -files = [ - {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, - {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, -] - -[package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] - -[[package]] -name = "babel" -version = "2.17.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, -] - -[package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] - -[[package]] -name = "bioblend" -version = "1.5.0" -description = "Library for interacting with the Galaxy API" -optional = false -python-versions = ">=3.9" -files = [ - {file = "bioblend-1.5.0-py3-none-any.whl", hash = "sha256:08d228977caca3750a7d9329e90138bfb16ba0135bc4f44f01e94858a0717ad6"}, - {file = "bioblend-1.5.0.tar.gz", hash = "sha256:a31dd4dc7dbe4bf18eaf8c9bf8bc645e84b7988cb3e4b25d8f52014fc52d9151"}, -] - -[package.dependencies] -PyYAML = "*" -requests = ">=2.20.0" -requests-toolbelt = ">=0.5.1,<0.9.0 || >0.9.0" -tuspy = "*" - -[package.extras] -testing = ["pytest"] - -[[package]] -name = "certifi" -version = "2025.1.31" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, -] - -[[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.4.1" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7" -files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, -] - -[[package]] -name = "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 = "contourpy" -version = "1.3.1" -description = "Python library for calculating contours of 2D quadrilateral grids" -optional = false -python-versions = ">=3.10" -files = [ - {file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"}, - {file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"}, - {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1"}, - {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b"}, - {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453"}, - {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3"}, - {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277"}, - {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595"}, - {file = "contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697"}, - {file = "contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e"}, - {file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"}, - {file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"}, - {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"}, - {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"}, - {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"}, - {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"}, - {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"}, - {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"}, - {file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"}, - {file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"}, - {file = "contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509"}, - {file = "contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc"}, - {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454"}, - {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80"}, - {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec"}, - {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9"}, - {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b"}, - {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d"}, - {file = "contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e"}, - {file = "contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d"}, - {file = "contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2"}, - {file = "contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5"}, - {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81"}, - {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2"}, - {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7"}, - {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c"}, - {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3"}, - {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1"}, - {file = "contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82"}, - {file = "contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd"}, - {file = "contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30"}, - {file = "contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751"}, - {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342"}, - {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c"}, - {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f"}, - {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda"}, - {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242"}, - {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1"}, - {file = "contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1"}, - {file = "contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546"}, - {file = "contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6"}, - {file = "contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750"}, - {file = "contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53"}, - {file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"}, -] - -[package.dependencies] -numpy = ">=1.23" - -[package.extras] -bokeh = ["bokeh", "selenium"] -docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pillow"] -test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] - -[[package]] -name = "copier" -version = "9.6.0" -description = "A library for rendering project templates." -optional = false -python-versions = ">=3.9" -files = [ - {file = "copier-9.6.0-py3-none-any.whl", hash = "sha256:aaf992600a373fa2dda9f61725916a230c210ede14a968c60dab855d524c6cf3"}, - {file = "copier-9.6.0.tar.gz", hash = "sha256:e05a18b387b96e8d1fbd5271d37f59c9a02be5ad717f7878d0505562fd62b786"}, -] - -[package.dependencies] -colorama = ">=0.4.6" -dunamai = ">=1.7.0" -funcy = ">=1.17" -jinja2 = ">=3.1.5" -jinja2-ansible-filters = ">=1.3.1" -packaging = ">=23.0" -pathspec = ">=0.9.0" -platformdirs = ">=4.3.6" -plumbum = ">=1.6.9" -pydantic = ">=2.4.2" -pygments = ">=2.7.1" -pyyaml = ">=5.3.1" -questionary = ">=1.8.1" - -[[package]] -name = "coverage" -version = "7.8.0" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "coverage-7.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2931f66991175369859b5fd58529cd4b73582461877ecfd859b6549869287ffe"}, - {file = "coverage-7.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52a523153c568d2c0ef8826f6cc23031dc86cffb8c6aeab92c4ff776e7951b28"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c8a5c139aae4c35cbd7cadca1df02ea8cf28a911534fc1b0456acb0b14234f3"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a26c0c795c3e0b63ec7da6efded5f0bc856d7c0b24b2ac84b4d1d7bc578d676"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821f7bcbaa84318287115d54becb1915eece6918136c6f91045bb84e2f88739d"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a321c61477ff8ee705b8a5fed370b5710c56b3a52d17b983d9215861e37b642a"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ed2144b8a78f9d94d9515963ed273d620e07846acd5d4b0a642d4849e8d91a0c"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:042e7841a26498fff7a37d6fda770d17519982f5b7d8bf5278d140b67b61095f"}, - {file = "coverage-7.8.0-cp310-cp310-win32.whl", hash = "sha256:f9983d01d7705b2d1f7a95e10bbe4091fabc03a46881a256c2787637b087003f"}, - {file = "coverage-7.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a570cd9bd20b85d1a0d7b009aaf6c110b52b5755c17be6962f8ccd65d1dbd23"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9"}, - {file = "coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c"}, - {file = "coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe"}, - {file = "coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545"}, - {file = "coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3"}, - {file = "coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d"}, - {file = "coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883"}, - {file = "coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada"}, - {file = "coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257"}, - {file = "coverage-7.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fa260de59dfb143af06dcf30c2be0b200bed2a73737a8a59248fcb9fa601ef0f"}, - {file = "coverage-7.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:96121edfa4c2dfdda409877ea8608dd01de816a4dc4a0523356067b305e4e17a"}, - {file = "coverage-7.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b8af63b9afa1031c0ef05b217faa598f3069148eeee6bb24b79da9012423b82"}, - {file = "coverage-7.8.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89b1f4af0d4afe495cd4787a68e00f30f1d15939f550e869de90a86efa7e0814"}, - {file = "coverage-7.8.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94ec0be97723ae72d63d3aa41961a0b9a6f5a53ff599813c324548d18e3b9e8c"}, - {file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8a1d96e780bdb2d0cbb297325711701f7c0b6f89199a57f2049e90064c29f6bd"}, - {file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f1d8a2a57b47142b10374902777e798784abf400a004b14f1b0b9eaf1e528ba4"}, - {file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cf60dd2696b457b710dd40bf17ad269d5f5457b96442f7f85722bdb16fa6c899"}, - {file = "coverage-7.8.0-cp39-cp39-win32.whl", hash = "sha256:be945402e03de47ba1872cd5236395e0f4ad635526185a930735f66710e1bd3f"}, - {file = "coverage-7.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:90e7fbc6216ecaffa5a880cdc9c77b7418c1dcb166166b78dbc630d07f278cc3"}, - {file = "coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd"}, - {file = "coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7"}, - {file = "coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501"}, -] - -[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 = "deepdiff" -version = "8.4.2" -description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." -optional = false -python-versions = ">=3.8" -files = [ - {file = "deepdiff-8.4.2-py3-none-any.whl", hash = "sha256:7e39e5b26f3747c54f9d0e8b9b29daab670c3100166b77cc0185d5793121b099"}, - {file = "deepdiff-8.4.2.tar.gz", hash = "sha256:5c741c0867ebc7fcb83950ad5ed958369c17f424e14dee32a11c56073f4ee92a"}, -] - -[package.dependencies] -orderly-set = ">=5.3.0,<6" - -[package.extras] -cli = ["click (==8.1.8)", "pyyaml (==6.0.2)"] -optimize = ["orjson"] - -[[package]] -name = "distlib" -version = "0.3.9" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, -] - -[[package]] -name = "docutils" -version = "0.21.2" -description = "Docutils -- Python Documentation Utilities" -optional = false -python-versions = ">=3.9" -files = [ - {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, - {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, -] - -[[package]] -name = "dunamai" -version = "1.23.1" -description = "Dynamic version generation" -optional = false -python-versions = ">=3.5" -files = [ - {file = "dunamai-1.23.1-py3-none-any.whl", hash = "sha256:2611b0b9105a5797149ef82f4968a01dd912bdac857d49fc06856a4cfa58cf78"}, - {file = "dunamai-1.23.1.tar.gz", hash = "sha256:0b5712fc63bfb235263d912bfc5eb84590ba2201bb737268d25a5dbad7085489"}, -] - -[package.dependencies] -packaging = ">=20.9" - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "filelock" -version = "3.18.0" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.9" -files = [ - {file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"}, - {file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] -typing = ["typing-extensions (>=4.12.2)"] - -[[package]] -name = "fonttools" -version = "4.57.0" -description = "Tools to manipulate font files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fonttools-4.57.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:babe8d1eb059a53e560e7bf29f8e8f4accc8b6cfb9b5fd10e485bde77e71ef41"}, - {file = "fonttools-4.57.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:81aa97669cd726349eb7bd43ca540cf418b279ee3caba5e2e295fb4e8f841c02"}, - {file = "fonttools-4.57.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0e9618630edd1910ad4f07f60d77c184b2f572c8ee43305ea3265675cbbfe7e"}, - {file = "fonttools-4.57.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34687a5d21f1d688d7d8d416cb4c5b9c87fca8a1797ec0d74b9fdebfa55c09ab"}, - {file = "fonttools-4.57.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:69ab81b66ebaa8d430ba56c7a5f9abe0183afefd3a2d6e483060343398b13fb1"}, - {file = "fonttools-4.57.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d639397de852f2ccfb3134b152c741406752640a266d9c1365b0f23d7b88077f"}, - {file = "fonttools-4.57.0-cp310-cp310-win32.whl", hash = "sha256:cc066cb98b912f525ae901a24cd381a656f024f76203bc85f78fcc9e66ae5aec"}, - {file = "fonttools-4.57.0-cp310-cp310-win_amd64.whl", hash = "sha256:7a64edd3ff6a7f711a15bd70b4458611fb240176ec11ad8845ccbab4fe6745db"}, - {file = "fonttools-4.57.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3871349303bdec958360eedb619169a779956503ffb4543bb3e6211e09b647c4"}, - {file = "fonttools-4.57.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c59375e85126b15a90fcba3443eaac58f3073ba091f02410eaa286da9ad80ed8"}, - {file = "fonttools-4.57.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967b65232e104f4b0f6370a62eb33089e00024f2ce143aecbf9755649421c683"}, - {file = "fonttools-4.57.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39acf68abdfc74e19de7485f8f7396fa4d2418efea239b7061d6ed6a2510c746"}, - {file = "fonttools-4.57.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d077f909f2343daf4495ba22bb0e23b62886e8ec7c109ee8234bdbd678cf344"}, - {file = "fonttools-4.57.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:46370ac47a1e91895d40e9ad48effbe8e9d9db1a4b80888095bc00e7beaa042f"}, - {file = "fonttools-4.57.0-cp311-cp311-win32.whl", hash = "sha256:ca2aed95855506b7ae94e8f1f6217b7673c929e4f4f1217bcaa236253055cb36"}, - {file = "fonttools-4.57.0-cp311-cp311-win_amd64.whl", hash = "sha256:17168a4670bbe3775f3f3f72d23ee786bd965395381dfbb70111e25e81505b9d"}, - {file = "fonttools-4.57.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:889e45e976c74abc7256d3064aa7c1295aa283c6bb19810b9f8b604dfe5c7f31"}, - {file = "fonttools-4.57.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0425c2e052a5f1516c94e5855dbda706ae5a768631e9fcc34e57d074d1b65b92"}, - {file = "fonttools-4.57.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44c26a311be2ac130f40a96769264809d3b0cb297518669db437d1cc82974888"}, - {file = "fonttools-4.57.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c41ba992df5b8d680b89fd84c6a1f2aca2b9f1ae8a67400c8930cd4ea115f6"}, - {file = "fonttools-4.57.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ea1e9e43ca56b0c12440a7c689b1350066595bebcaa83baad05b8b2675129d98"}, - {file = "fonttools-4.57.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84fd56c78d431606332a0627c16e2a63d243d0d8b05521257d77c6529abe14d8"}, - {file = "fonttools-4.57.0-cp312-cp312-win32.whl", hash = "sha256:f4376819c1c778d59e0a31db5dc6ede854e9edf28bbfa5b756604727f7f800ac"}, - {file = "fonttools-4.57.0-cp312-cp312-win_amd64.whl", hash = "sha256:57e30241524879ea10cdf79c737037221f77cc126a8cdc8ff2c94d4a522504b9"}, - {file = "fonttools-4.57.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:408ce299696012d503b714778d89aa476f032414ae57e57b42e4b92363e0b8ef"}, - {file = "fonttools-4.57.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bbceffc80aa02d9e8b99f2a7491ed8c4a783b2fc4020119dc405ca14fb5c758c"}, - {file = "fonttools-4.57.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f022601f3ee9e1f6658ed6d184ce27fa5216cee5b82d279e0f0bde5deebece72"}, - {file = "fonttools-4.57.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dea5893b58d4637ffa925536462ba626f8a1b9ffbe2f5c272cdf2c6ebadb817"}, - {file = "fonttools-4.57.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dff02c5c8423a657c550b48231d0a48d7e2b2e131088e55983cfe74ccc2c7cc9"}, - {file = "fonttools-4.57.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:767604f244dc17c68d3e2dbf98e038d11a18abc078f2d0f84b6c24571d9c0b13"}, - {file = "fonttools-4.57.0-cp313-cp313-win32.whl", hash = "sha256:8e2e12d0d862f43d51e5afb8b9751c77e6bec7d2dc00aad80641364e9df5b199"}, - {file = "fonttools-4.57.0-cp313-cp313-win_amd64.whl", hash = "sha256:f1d6bc9c23356908db712d282acb3eebd4ae5ec6d8b696aa40342b1d84f8e9e3"}, - {file = "fonttools-4.57.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9d57b4e23ebbe985125d3f0cabbf286efa191ab60bbadb9326091050d88e8213"}, - {file = "fonttools-4.57.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:579ba873d7f2a96f78b2e11028f7472146ae181cae0e4d814a37a09e93d5c5cc"}, - {file = "fonttools-4.57.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e3e1ec10c29bae0ea826b61f265ec5c858c5ba2ce2e69a71a62f285cf8e4595"}, - {file = "fonttools-4.57.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1968f2a2003c97c4ce6308dc2498d5fd4364ad309900930aa5a503c9851aec8"}, - {file = "fonttools-4.57.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:aff40f8ac6763d05c2c8f6d240c6dac4bb92640a86d9b0c3f3fff4404f34095c"}, - {file = "fonttools-4.57.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d07f1b64008e39fceae7aa99e38df8385d7d24a474a8c9872645c4397b674481"}, - {file = "fonttools-4.57.0-cp38-cp38-win32.whl", hash = "sha256:51d8482e96b28fb28aa8e50b5706f3cee06de85cbe2dce80dbd1917ae22ec5a6"}, - {file = "fonttools-4.57.0-cp38-cp38-win_amd64.whl", hash = "sha256:03290e818782e7edb159474144fca11e36a8ed6663d1fcbd5268eb550594fd8e"}, - {file = "fonttools-4.57.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7339e6a3283e4b0ade99cade51e97cde3d54cd6d1c3744459e886b66d630c8b3"}, - {file = "fonttools-4.57.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:05efceb2cb5f6ec92a4180fcb7a64aa8d3385fd49cfbbe459350229d1974f0b1"}, - {file = "fonttools-4.57.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a97bb05eb24637714a04dee85bdf0ad1941df64fe3b802ee4ac1c284a5f97b7c"}, - {file = "fonttools-4.57.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:541cb48191a19ceb1a2a4b90c1fcebd22a1ff7491010d3cf840dd3a68aebd654"}, - {file = "fonttools-4.57.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:cdef9a056c222d0479a1fdb721430f9efd68268014c54e8166133d2643cb05d9"}, - {file = "fonttools-4.57.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3cf97236b192a50a4bf200dc5ba405aa78d4f537a2c6e4c624bb60466d5b03bd"}, - {file = "fonttools-4.57.0-cp39-cp39-win32.whl", hash = "sha256:e952c684274a7714b3160f57ec1d78309f955c6335c04433f07d36c5eb27b1f9"}, - {file = "fonttools-4.57.0-cp39-cp39-win_amd64.whl", hash = "sha256:a2a722c0e4bfd9966a11ff55c895c817158fcce1b2b6700205a376403b546ad9"}, - {file = "fonttools-4.57.0-py3-none-any.whl", hash = "sha256:3122c604a675513c68bd24c6a8f9091f1c2376d18e8f5fe5a101746c81b3e98f"}, - {file = "fonttools-4.57.0.tar.gz", hash = "sha256:727ece10e065be2f9dd239d15dd5d60a66e17eac11aea47d447f9f03fdbc42de"}, -] - -[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 = "frozenlist" -version = "1.5.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -optional = false -python-versions = ">=3.8" -files = [ - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, - {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, - {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, - {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, - {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, - {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, - {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, - {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, - {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, - {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, - {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, - {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, - {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, - {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, - {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, -] - -[[package]] -name = "funcy" -version = "2.0" -description = "A fancy and practical functional tools" -optional = false -python-versions = "*" -files = [ - {file = "funcy-2.0-py2.py3-none-any.whl", hash = "sha256:53df23c8bb1651b12f095df764bfb057935d49537a56de211b098f4c79614bb0"}, - {file = "funcy-2.0.tar.gz", hash = "sha256:3963315d59d41c6f30c04bc910e10ab50a3ac4a225868bfa96feed133df075cb"}, -] - -[[package]] -name = "identify" -version = "2.6.9" -description = "File identification library for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "identify-2.6.9-py2.py3-none-any.whl", hash = "sha256:c98b4322da415a8e5a70ff6e51fbc2d2932c015532d77e9f8537b4ba7813b150"}, - {file = "identify-2.6.9.tar.gz", hash = "sha256:d40dfe3142a1421d8518e3d3985ef5ac42890683e32306ad614a29490abeb6bf"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.10" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.6" -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "iniconfig" -version = "2.1.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.8" -files = [ - {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, - {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, -] - -[[package]] -name = "jinja2" -version = "3.1.6" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, - {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jinja2-ansible-filters" -version = "1.3.2" -description = "A port of Ansible's jinja2 filters without requiring ansible core." -optional = false -python-versions = "*" -files = [ - {file = "jinja2-ansible-filters-1.3.2.tar.gz", hash = "sha256:07c10cf44d7073f4f01102ca12d9a2dc31b41d47e4c61ed92ef6a6d2669b356b"}, - {file = "jinja2_ansible_filters-1.3.2-py3-none-any.whl", hash = "sha256:e1082f5564917649c76fed239117820610516ec10f87735d0338688800a55b34"}, -] - -[package.dependencies] -Jinja2 = "*" -PyYAML = "*" - -[package.extras] -test = ["pytest", "pytest-cov"] - -[[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 = "2024.10.1" -description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" -optional = false -python-versions = ">=3.9" -files = [ - {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, - {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, -] - -[package.dependencies] -referencing = ">=0.31.0" - -[[package]] -name = "kiwisolver" -version = "1.4.8" -description = "A fast implementation of the Cassowary constraint solver" -optional = false -python-versions = ">=3.10" -files = [ - {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88c6f252f6816a73b1f8c904f7bbe02fd67c09a69f7cb8a0eecdbf5ce78e63db"}, - {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72941acb7b67138f35b879bbe85be0f6c6a70cab78fe3ef6db9c024d9223e5b"}, - {file = "kiwisolver-1.4.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce2cf1e5688edcb727fdf7cd1bbd0b6416758996826a8be1d958f91880d0809d"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c8bf637892dc6e6aad2bc6d4d69d08764166e5e3f69d469e55427b6ac001b19d"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:034d2c891f76bd3edbdb3ea11140d8510dca675443da7304205a2eaa45d8334c"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47b28d1dfe0793d5e96bce90835e17edf9a499b53969b03c6c47ea5985844c3"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb158fe28ca0c29f2260cca8c43005329ad58452c36f0edf298204de32a9a3ed"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5536185fce131780ebd809f8e623bf4030ce1b161353166c49a3c74c287897f"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:369b75d40abedc1da2c1f4de13f3482cb99e3237b38726710f4a793432b1c5ff"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:641f2ddf9358c80faa22e22eb4c9f54bd3f0e442e038728f500e3b978d00aa7d"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d561d2d8883e0819445cfe58d7ddd673e4015c3c57261d7bdcd3710d0d14005c"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1732e065704b47c9afca7ffa272f845300a4eb959276bf6970dc07265e73b605"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bcb1ebc3547619c3b58a39e2448af089ea2ef44b37988caf432447374941574e"}, - {file = "kiwisolver-1.4.8-cp310-cp310-win_amd64.whl", hash = "sha256:89c107041f7b27844179ea9c85d6da275aa55ecf28413e87624d033cf1f6b751"}, - {file = "kiwisolver-1.4.8-cp310-cp310-win_arm64.whl", hash = "sha256:b5773efa2be9eb9fcf5415ea3ab70fc785d598729fd6057bea38d539ead28271"}, - {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a4d3601908c560bdf880f07d94f31d734afd1bb71e96585cace0e38ef44c6d84"}, - {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856b269c4d28a5c0d5e6c1955ec36ebfd1651ac00e1ce0afa3e28da95293b561"}, - {file = "kiwisolver-1.4.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c2b9a96e0f326205af81a15718a9073328df1173a2619a68553decb7097fd5d7"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5020c83e8553f770cb3b5fc13faac40f17e0b205bd237aebd21d53d733adb03"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dace81d28c787956bfbfbbfd72fdcef014f37d9b48830829e488fdb32b49d954"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11e1022b524bd48ae56c9b4f9296bce77e15a2e42a502cceba602f804b32bb79"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b9b4d2892fefc886f30301cdd80debd8bb01ecdf165a449eb6e78f79f0fabd6"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a96c0e790ee875d65e340ab383700e2b4891677b7fcd30a699146f9384a2bb0"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23454ff084b07ac54ca8be535f4174170c1094a4cff78fbae4f73a4bcc0d4dab"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:87b287251ad6488e95b4f0b4a79a6d04d3ea35fde6340eb38fbd1ca9cd35bbbc"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b21dbe165081142b1232a240fc6383fd32cdd877ca6cc89eab93e5f5883e1c25"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:768cade2c2df13db52475bd28d3a3fac8c9eff04b0e9e2fda0f3760f20b3f7fc"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d47cfb2650f0e103d4bf68b0b5804c68da97272c84bb12850d877a95c056bd67"}, - {file = "kiwisolver-1.4.8-cp311-cp311-win_amd64.whl", hash = "sha256:ed33ca2002a779a2e20eeb06aea7721b6e47f2d4b8a8ece979d8ba9e2a167e34"}, - {file = "kiwisolver-1.4.8-cp311-cp311-win_arm64.whl", hash = "sha256:16523b40aab60426ffdebe33ac374457cf62863e330a90a0383639ce14bf44b2"}, - {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6af5e8815fd02997cb6ad9bbed0ee1e60014438ee1a5c2444c96f87b8843502"}, - {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bade438f86e21d91e0cf5dd7c0ed00cda0f77c8c1616bd83f9fc157fa6760d31"}, - {file = "kiwisolver-1.4.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b83dc6769ddbc57613280118fb4ce3cd08899cc3369f7d0e0fab518a7cf37fdb"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111793b232842991be367ed828076b03d96202c19221b5ebab421ce8bcad016f"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:257af1622860e51b1a9d0ce387bf5c2c4f36a90594cb9514f55b074bcc787cfc"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b5637c3f316cab1ec1c9a12b8c5f4750a4c4b71af9157645bf32830e39c03a"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:782bb86f245ec18009890e7cb8d13a5ef54dcf2ebe18ed65f795e635a96a1c6a"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc978a80a0db3a66d25767b03688f1147a69e6237175c0f4ffffaaedf744055a"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:36dbbfd34838500a31f52c9786990d00150860e46cd5041386f217101350f0d3"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eaa973f1e05131de5ff3569bbba7f5fd07ea0595d3870ed4a526d486fe57fa1b"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a66f60f8d0c87ab7f59b6fb80e642ebb29fec354a4dfad687ca4092ae69d04f4"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858416b7fb777a53f0c59ca08190ce24e9abbd3cffa18886a5781b8e3e26f65d"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:085940635c62697391baafaaeabdf3dd7a6c3643577dde337f4d66eba021b2b8"}, - {file = "kiwisolver-1.4.8-cp312-cp312-win_amd64.whl", hash = "sha256:01c3d31902c7db5fb6182832713d3b4122ad9317c2c5877d0539227d96bb2e50"}, - {file = "kiwisolver-1.4.8-cp312-cp312-win_arm64.whl", hash = "sha256:a3c44cb68861de93f0c4a8175fbaa691f0aa22550c331fefef02b618a9dcb476"}, - {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1c8ceb754339793c24aee1c9fb2485b5b1f5bb1c2c214ff13368431e51fc9a09"}, - {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a62808ac74b5e55a04a408cda6156f986cefbcf0ada13572696b507cc92fa1"}, - {file = "kiwisolver-1.4.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68269e60ee4929893aad82666821aaacbd455284124817af45c11e50a4b42e3c"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34d142fba9c464bc3bbfeff15c96eab0e7310343d6aefb62a79d51421fcc5f1b"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc373e0eef45b59197de815b1b28ef89ae3955e7722cc9710fb91cd77b7f47"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77e6f57a20b9bd4e1e2cedda4d0b986ebd0216236f0106e55c28aea3d3d69b16"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08e77738ed7538f036cd1170cbed942ef749137b1311fa2bbe2a7fda2f6bf3cc"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5ce1e481a74b44dd5e92ff03ea0cb371ae7a0268318e202be06c8f04f4f1246"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc2ace710ba7c1dfd1a3b42530b62b9ceed115f19a1656adefce7b1782a37794"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3452046c37c7692bd52b0e752b87954ef86ee2224e624ef7ce6cb21e8c41cc1b"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e9a60b50fe8b2ec6f448fe8d81b07e40141bfced7f896309df271a0b92f80f3"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:918139571133f366e8362fa4a297aeba86c7816b7ecf0bc79168080e2bd79957"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e063ef9f89885a1d68dd8b2e18f5ead48653176d10a0e324e3b0030e3a69adeb"}, - {file = "kiwisolver-1.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:a17b7c4f5b2c51bb68ed379defd608a03954a1845dfed7cc0117f1cc8a9b7fd2"}, - {file = "kiwisolver-1.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:3cd3bc628b25f74aedc6d374d5babf0166a92ff1317f46267f12d2ed54bc1d30"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370fd2df41660ed4e26b8c9d6bbcad668fbe2560462cba151a721d49e5b6628c"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:84a2f830d42707de1d191b9490ac186bf7997a9495d4e9072210a1296345f7dc"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7a3ad337add5148cf51ce0b55642dc551c0b9d6248458a757f98796ca7348712"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7506488470f41169b86d8c9aeff587293f530a23a23a49d6bc64dab66bedc71e"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f0121b07b356a22fb0414cec4666bbe36fd6d0d759db3d37228f496ed67c880"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6d6bd87df62c27d4185de7c511c6248040afae67028a8a22012b010bc7ad062"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291331973c64bb9cce50bbe871fb2e675c4331dab4f31abe89f175ad7679a4d7"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:893f5525bb92d3d735878ec00f781b2de998333659507d29ea4466208df37bed"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b47a465040146981dc9db8647981b8cb96366fbc8d452b031e4f8fdffec3f26d"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:99cea8b9dd34ff80c521aef46a1dddb0dcc0283cf18bde6d756f1e6f31772165"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:151dffc4865e5fe6dafce5480fab84f950d14566c480c08a53c663a0020504b6"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:577facaa411c10421314598b50413aa1ebcf5126f704f1e5d72d7e4e9f020d90"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:be4816dc51c8a471749d664161b434912eee82f2ea66bd7628bd14583a833e85"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e7a019419b7b510f0f7c9dceff8c5eae2392037eae483a7f9162625233802b0a"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:286b18e86682fd2217a48fc6be6b0f20c1d0ed10958d8dc53453ad58d7be0bf8"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4191ee8dfd0be1c3666ccbac178c5a05d5f8d689bbe3fc92f3c4abec817f8fe0"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cd2785b9391f2873ad46088ed7599a6a71e762e1ea33e87514b1a441ed1da1c"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c07b29089b7ba090b6f1a669f1411f27221c3662b3a1b7010e67b59bb5a6f10b"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:65ea09a5a3faadd59c2ce96dc7bf0f364986a315949dc6374f04396b0d60e09b"}, - {file = "kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e"}, -] - -[[package]] -name = "libsass" -version = "0.23.0" -description = "Sass for Python: A straightforward binding of libsass for Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "libsass-0.23.0-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:34cae047cbbfc4ffa832a61cbb110f3c95f5471c6170c842d3fed161e40814dc"}, - {file = "libsass-0.23.0-cp38-abi3-macosx_14_0_arm64.whl", hash = "sha256:ea97d1b45cdc2fc3590cb9d7b60f1d8915d3ce17a98c1f2d4dd47ee0d9c68ce6"}, - {file = "libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306"}, - {file = "libsass-0.23.0-cp38-abi3-win32.whl", hash = "sha256:31e86d92a5c7a551df844b72d83fc2b5e50abc6fbbb31e296f7bebd6489ed1b4"}, - {file = "libsass-0.23.0-cp38-abi3-win_amd64.whl", hash = "sha256:a2ec85d819f353cbe807432d7275d653710d12b08ec7ef61c124a580a8352f3c"}, - {file = "libsass-0.23.0.tar.gz", hash = "sha256:6f209955ede26684e76912caf329f4ccb57e4a043fd77fe0e7348dd9574f1880"}, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.9" -files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, -] - -[[package]] -name = "matplotlib" -version = "3.10.1" -description = "Python plotting package" -optional = false -python-versions = ">=3.10" -files = [ - {file = "matplotlib-3.10.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ff2ae14910be903f4a24afdbb6d7d3a6c44da210fc7d42790b87aeac92238a16"}, - {file = "matplotlib-3.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0721a3fd3d5756ed593220a8b86808a36c5031fce489adb5b31ee6dbb47dd5b2"}, - {file = "matplotlib-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0673b4b8f131890eb3a1ad058d6e065fb3c6e71f160089b65f8515373394698"}, - {file = "matplotlib-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e875b95ac59a7908978fe307ecdbdd9a26af7fa0f33f474a27fcf8c99f64a19"}, - {file = "matplotlib-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2589659ea30726284c6c91037216f64a506a9822f8e50592d48ac16a2f29e044"}, - {file = "matplotlib-3.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a97ff127f295817bc34517255c9db6e71de8eddaab7f837b7d341dee9f2f587f"}, - {file = "matplotlib-3.10.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:057206ff2d6ab82ff3e94ebd94463d084760ca682ed5f150817b859372ec4401"}, - {file = "matplotlib-3.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a144867dd6bf8ba8cb5fc81a158b645037e11b3e5cf8a50bd5f9917cb863adfe"}, - {file = "matplotlib-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56c5d9fcd9879aa8040f196a235e2dcbdf7dd03ab5b07c0696f80bc6cf04bedd"}, - {file = "matplotlib-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f69dc9713e4ad2fb21a1c30e37bd445d496524257dfda40ff4a8efb3604ab5c"}, - {file = "matplotlib-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c59af3e8aca75d7744b68e8e78a669e91ccbcf1ac35d0102a7b1b46883f1dd7"}, - {file = "matplotlib-3.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:11b65088c6f3dae784bc72e8d039a2580186285f87448babb9ddb2ad0082993a"}, - {file = "matplotlib-3.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:66e907a06e68cb6cfd652c193311d61a12b54f56809cafbed9736ce5ad92f107"}, - {file = "matplotlib-3.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b4bb156abb8fa5e5b2b460196f7db7264fc6d62678c03457979e7d5254b7be"}, - {file = "matplotlib-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1985ad3d97f51307a2cbfc801a930f120def19ba22864182dacef55277102ba6"}, - {file = "matplotlib-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c96f2c2f825d1257e437a1482c5a2cf4fee15db4261bd6fc0750f81ba2b4ba3d"}, - {file = "matplotlib-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35e87384ee9e488d8dd5a2dd7baf471178d38b90618d8ea147aced4ab59c9bea"}, - {file = "matplotlib-3.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:cfd414bce89cc78a7e1d25202e979b3f1af799e416010a20ab2b5ebb3a02425c"}, - {file = "matplotlib-3.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c42eee41e1b60fd83ee3292ed83a97a5f2a8239b10c26715d8a6172226988d7b"}, - {file = "matplotlib-3.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4f0647b17b667ae745c13721602b540f7aadb2a32c5b96e924cd4fea5dcb90f1"}, - {file = "matplotlib-3.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa3854b5f9473564ef40a41bc922be978fab217776e9ae1545c9b3a5cf2092a3"}, - {file = "matplotlib-3.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e496c01441be4c7d5f96d4e40f7fca06e20dcb40e44c8daa2e740e1757ad9e6"}, - {file = "matplotlib-3.10.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d45d3f5245be5b469843450617dcad9af75ca50568acf59997bed9311131a0b"}, - {file = "matplotlib-3.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:8e8e25b1209161d20dfe93037c8a7f7ca796ec9aa326e6e4588d8c4a5dd1e473"}, - {file = "matplotlib-3.10.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:19b06241ad89c3ae9469e07d77efa87041eac65d78df4fcf9cac318028009b01"}, - {file = "matplotlib-3.10.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01e63101ebb3014e6e9f80d9cf9ee361a8599ddca2c3e166c563628b39305dbb"}, - {file = "matplotlib-3.10.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f06bad951eea6422ac4e8bdebcf3a70c59ea0a03338c5d2b109f57b64eb3972"}, - {file = "matplotlib-3.10.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3dfb036f34873b46978f55e240cff7a239f6c4409eac62d8145bad3fc6ba5a3"}, - {file = "matplotlib-3.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dc6ab14a7ab3b4d813b88ba957fc05c79493a037f54e246162033591e770de6f"}, - {file = "matplotlib-3.10.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bc411ebd5889a78dabbc457b3fa153203e22248bfa6eedc6797be5df0164dbf9"}, - {file = "matplotlib-3.10.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:648406f1899f9a818cef8c0231b44dcfc4ff36f167101c3fd1c9151f24220fdc"}, - {file = "matplotlib-3.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:02582304e352f40520727984a5a18f37e8187861f954fea9be7ef06569cf85b4"}, - {file = "matplotlib-3.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3809916157ba871bcdd33d3493acd7fe3037db5daa917ca6e77975a94cef779"}, - {file = "matplotlib-3.10.1.tar.gz", hash = "sha256:e8d2d0e3881b129268585bf4765ad3ee73a4591d77b9a18c214ac7e3a79fb2ba"}, -] - -[package.dependencies] -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,<0.17.0)", "pybind11 (>=2.13.2,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"] - -[[package]] -name = "mergedeep" -version = "1.3.4" -description = "A deep merge function for 🐍." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "more-itertools" -version = "10.6.0" -description = "More routines for operating on iterables, beyond itertools" -optional = false -python-versions = ">=3.9" -files = [ - {file = "more-itertools-10.6.0.tar.gz", hash = "sha256:2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b"}, - {file = "more_itertools-10.6.0-py3-none-any.whl", hash = "sha256:6eb054cb4b6db1473f6e15fcc676a08e4732548acd47c708f0e179c2c7c01e89"}, -] - -[[package]] -name = "mpld3" -version = "0.5.10" -description = "D3 Viewer for Matplotlib" -optional = false -python-versions = "*" -files = [ - {file = "mpld3-0.5.10-py3-none-any.whl", hash = "sha256:80877acce87ea447380fad7374668737505c8c0684aab05238e7c5dc1fab38c1"}, - {file = "mpld3-0.5.10.tar.gz", hash = "sha256:a478eb404fa5212505c59133cf272cd9a94105872e605597720e7f84de38fbc7"}, -] - -[package.dependencies] -jinja2 = "*" -matplotlib = "*" - -[[package]] -name = "msgpack" -version = "1.1.0" -description = "MessagePack serializer" -optional = false -python-versions = ">=3.8" -files = [ - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"}, - {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"}, - {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"}, - {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"}, - {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"}, - {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"}, - {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"}, - {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"}, - {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"}, - {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"}, - {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"}, - {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"}, - {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"}, - {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, -] - -[[package]] -name = "multidict" -version = "6.3.2" -description = "multidict implementation" -optional = false -python-versions = ">=3.9" -files = [ - {file = "multidict-6.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8b3dc0eec9304fa04d84a51ea13b0ec170bace5b7ddeaac748149efd316f1504"}, - {file = "multidict-6.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9534f3d84addd3b6018fa83f97c9d4247aaa94ac917d1ed7b2523306f99f5c16"}, - {file = "multidict-6.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a003ce1413ae01f0b8789c1c987991346a94620a4d22210f7a8fe753646d3209"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b43f7384e68b1b982c99f489921a459467b5584bdb963b25e0df57c9039d0ad"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d142ae84047262dc75c1f92eaf95b20680f85ce11d35571b4c97e267f96fadc4"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ec7e86fbc48aa1d6d686501a8547818ba8d645e7e40eaa98232a5d43ee4380ad"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe019fb437632b016e6cac67a7e964f1ef827ef4023f1ca0227b54be354da97e"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b60cb81214a9da7cfd8ae2853d5e6e47225ece55fe5833142fe0af321c35299"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:32d9e8ef2e0312d4e96ca9adc88e0675b6d8e144349efce4a7c95d5ccb6d88e0"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:335d584312e3fa43633d63175dfc1a5f137dd7aa03d38d1310237d54c3032774"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:b8df917faa6b8cac3d6870fc21cb7e4d169faca68e43ffe568c156c9c6408a4d"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:cc060b9b89b701dd8fedef5b99e1f1002b8cb95072693233a63389d37e48212d"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f2ce3be2500658f3c644494b934628bb0c82e549dde250d2119689ce791cc8b8"}, - {file = "multidict-6.3.2-cp310-cp310-win32.whl", hash = "sha256:dbcb4490d8e74b484449abd51751b8f560dd0a4812eb5dacc6a588498222a9ab"}, - {file = "multidict-6.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:06944f9ced30f8602be873563ed4df7e3f40958f60b2db39732c11d615a33687"}, - {file = "multidict-6.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45a034f41fcd16968c0470d8912d293d7b0d0822fc25739c5c2ff7835b85bc56"}, - {file = "multidict-6.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:352585cec45f5d83d886fc522955492bb436fca032b11d487b12d31c5a81b9e3"}, - {file = "multidict-6.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:da9d89d293511fd0a83a90559dc131f8b3292b6975eb80feff19e5f4663647e2"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fa716592224aa652b9347a586cfe018635229074565663894eb4eb21f8307f"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0326278a44c56e94792475268e5cd3d47fbc0bd41ee56928c3bbb103ba7f58fe"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bb1ea87f7fe45e5079f6315e95d64d4ca8b43ef656d98bed63a02e3756853a22"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cff3c5a98d037024a9065aafc621a8599fad7b423393685dc83cf7a32f8b691"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed99834b053c655d980fb98029003cb24281e47a796052faad4543aa9e01b8e8"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7048440e505d2b4741e5d0b32bd2f427c901f38c7760fc245918be2cf69b3b85"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:27248c27b563f5889556da8a96e18e98a56ff807ac1a7d56cf4453c2c9e4cd91"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6323b4ba0e018bd266f776c35f3f0943fc4ee77e481593c9f93bd49888f24e94"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:81f7ce5ec7c27d0b45c10449c8f0fed192b93251e2e98cb0b21fec779ef1dc4d"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03bfcf2825b3bed0ba08a9d854acd18b938cab0d2dba3372b51c78e496bac811"}, - {file = "multidict-6.3.2-cp311-cp311-win32.whl", hash = "sha256:f32c2790512cae6ca886920e58cdc8c784bdc4bb2a5ec74127c71980369d18dc"}, - {file = "multidict-6.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:0b0c15e58e038a2cd75ef7cf7e072bc39b5e0488b165902efb27978984bbad70"}, - {file = "multidict-6.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d1e0ba1ce1b8cc79117196642d95f4365e118eaf5fb85f57cdbcc5a25640b2a4"}, - {file = "multidict-6.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:029bbd7d782251a78975214b78ee632672310f9233d49531fc93e8e99154af25"}, - {file = "multidict-6.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d7db41e3b56817d9175264e5fe00192fbcb8e1265307a59f53dede86161b150e"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcab18e65cc555ac29981a581518c23311f2b1e72d8f658f9891590465383be"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d50eff89aa4d145a5486b171a2177042d08ea5105f813027eb1050abe91839f"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:643e57b403d3e240045a3681f9e6a04d35a33eddc501b4cbbbdbc9c70122e7bc"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d17b37b9715b30605b5bab1460569742d0c309e5c20079263b440f5d7746e7e"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68acd51fa94e63312b8ddf84bfc9c3d3442fe1f9988bbe1b6c703043af8867fe"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:347eea2852ab7f697cc5ed9b1aae96b08f8529cca0c6468f747f0781b1842898"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4d3f8e57027dcda84a1aa181501c15c45eab9566eb6fcc274cbd1e7561224f8"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:9ca57a841ffcf712e47875d026aa49d6e67f9560624d54b51628603700d5d287"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7cafdafb44c4e646118410368307693e49d19167e5f119cbe3a88697d2d1a636"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:430120c6ce3715a9c6075cabcee557daccbcca8ba25a9fedf05c7bf564532f2d"}, - {file = "multidict-6.3.2-cp312-cp312-win32.whl", hash = "sha256:13bec31375235a68457ab887ce1bbf4f59d5810d838ae5d7e5b416242e1f3ed4"}, - {file = "multidict-6.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:c3b6d7620e6e90c6d97eaf3a63bf7fbd2ba253aab89120a4a9c660bf2d675391"}, - {file = "multidict-6.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b9ca24700322816ae0d426aa33671cf68242f8cc85cee0d0e936465ddaee90b5"}, - {file = "multidict-6.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d9fbbe23667d596ff4f9f74d44b06e40ebb0ab6b262cf14a284f859a66f86457"}, - {file = "multidict-6.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9cb602c5bea0589570ad3a4a6f2649c4f13cc7a1e97b4c616e5e9ff8dc490987"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93ca81dd4d1542e20000ed90f4cc84b7713776f620d04c2b75b8efbe61106c99"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:18b6310b5454c62242577a128c87df8897f39dd913311cf2e1298e47dfc089eb"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7a6dda57de1fc9aedfdb600a8640c99385cdab59a5716cb714b52b6005797f77"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d8ec42d03cc6b29845552a68151f9e623c541f1708328353220af571e24a247"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80681969cee2fa84dafeb53615d51d24246849984e3e87fbe4fe39956f2e23bf"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:01489b0c3592bb9d238e5690e9566db7f77a5380f054b57077d2c4deeaade0eb"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:522d9f1fd995d04dfedc0a40bca7e2591bc577d920079df50b56245a4a252c1c"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2014e9cf0b4e9c75bbad49c1758e5a9bf967a56184fc5fcc51527425baf5abba"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:78ced9fcbee79e446ff4bb3018ac7ba1670703de7873d9c1f6f9883db53c71bc"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1faf01af972bd01216a107c195f5294f9f393531bc3e4faddc9b333581255d4d"}, - {file = "multidict-6.3.2-cp313-cp313-win32.whl", hash = "sha256:7a699ab13d8d8e1f885de1535b4f477fb93836c87168318244c2685da7b7f655"}, - {file = "multidict-6.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:8666bb0d883310c83be01676e302587834dfd185b52758caeab32ef0eb387bc6"}, - {file = "multidict-6.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d82c95aabee29612b1c4f48b98be98181686eb7d6c0152301f72715705cc787b"}, - {file = "multidict-6.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f47709173ea9e87a7fd05cd7e5cf1e5d4158924ff988a9a8e0fbd853705f0e68"}, - {file = "multidict-6.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0c7f9d0276ceaab41b8ae78534ff28ea33d5de85db551cbf80c44371f2b55d13"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6eab22df44a25acab2e738f882f5ec551282ab45b2bbda5301e6d2cfb323036"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a947cb7c657f57874021b9b70c7aac049c877fb576955a40afa8df71d01a1390"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5faa346e8e1c371187cf345ab1e02a75889f9f510c9cbc575c31b779f7df084d"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc6e08d977aebf1718540533b4ba5b351ccec2db093370958a653b1f7f9219cc"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:98eab7acf55275b5bf09834125fa3a80b143a9f241cdcdd3f1295ffdc3c6d097"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:36863655630becc224375c0b99364978a0f95aebfb27fb6dd500f7fb5fb36e79"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d9c0979c096c0d46a963331b0e400d3a9e560e41219df4b35f0d7a2f28f39710"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0efc04f70f05e70e5945890767e8874da5953a196f5b07c552d305afae0f3bf6"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:2c519b3b82c34539fae3e22e4ea965869ac6b628794b1eb487780dde37637ab7"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:329160e301f2afd7b43725d3dda8a7ef8ee41d4ceac2083fc0d8c1cc8a4bd56b"}, - {file = "multidict-6.3.2-cp313-cp313t-win32.whl", hash = "sha256:420e5144a5f598dad8db3128f1695cd42a38a0026c2991091dab91697832f8cc"}, - {file = "multidict-6.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:875faded2861c7af2682c67088e6313fec35ede811e071c96d36b081873cea14"}, - {file = "multidict-6.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2516c5eb5732d6c4e29fa93323bfdc55186895124bc569e2404e3820934be378"}, - {file = "multidict-6.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:be5c8622e665cc5491c13c0fcd52915cdbae991a3514251d71129691338cdfb2"}, - {file = "multidict-6.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3ef33150eea7953cfdb571d862cff894e0ad97ab80d97731eb4b9328fc32d52b"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40b357738ce46e998f1b1bad9c4b79b2a9755915f71b87a8c01ce123a22a4f99"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:27c60e059fcd3655a653ba99fec2556cd0260ec57f9cb138d3e6ffc413638a2e"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:629e7c5e75bde83e54a22c7043ce89d68691d1f103be6d09a1c82b870df3b4b8"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6c8fc97d893fdf1fff15a619fee8de2f31c9b289ef7594730e35074fa0cefb"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52081d2f27e0652265d4637b03f09b82f6da5ce5e1474f07dc64674ff8bfc04c"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:64529dc395b5fd0a7826ffa70d2d9a7f4abd8f5333d6aaaba67fdf7bedde9f21"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2b7c3fad827770840f5399348c89635ed6d6e9bba363baad7d3c7f86a9cf1da3"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:24aa42b1651c654ae9e5273e06c3b7ccffe9f7cc76fbde40c37e9ae65f170818"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:04ceea01e9991357164b12882e120ce6b4d63a0424bb9f9cd37910aa56d30830"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:943897a41160945416617db567d867ab34e9258adaffc56a25a4c3f99d919598"}, - {file = "multidict-6.3.2-cp39-cp39-win32.whl", hash = "sha256:76157a9a0c5380aadd3b5ff7b8deee355ff5adecc66c837b444fa633b4d409a2"}, - {file = "multidict-6.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:d091d123e44035cd5664554308477aff0b58db37e701e7598a67e907b98d1925"}, - {file = "multidict-6.3.2-py3-none-any.whl", hash = "sha256:71409d4579f716217f23be2f5e7afca5ca926aaeb398aa11b72d793bff637a1f"}, - {file = "multidict-6.3.2.tar.gz", hash = "sha256:c1035eea471f759fa853dd6e76aaa1e389f93b3e1403093fa0fd3ab4db490678"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} - -[[package]] -name = "mypy" -version = "1.15.0" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, - {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, - {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, - {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, - {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, - {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, - {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, - {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, - {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, - {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"}, - {file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"}, - {file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"}, - {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, - {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, -] - -[package.dependencies] -mypy_extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing_extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -faster-cache = ["orjson"] -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 = "narwhals" -version = "1.33.0" -description = "Extremely lightweight compatibility layer between dataframe libraries" -optional = false -python-versions = ">=3.8" -files = [ - {file = "narwhals-1.33.0-py3-none-any.whl", hash = "sha256:f653319112fd121a1f1c18a40cf70dada773cdacfd53e62c2aa0afae43c17129"}, - {file = "narwhals-1.33.0.tar.gz", hash = "sha256:6233d2457debf4b5fe4a1da54530c6fe2d84326f4a8e3bca35bbbff580a347cb"}, -] - -[package.extras] -cudf = ["cudf (>=24.10.0)"] -dask = ["dask[dataframe] (>=2024.8)"] -duckdb = ["duckdb (>=1.0)"] -ibis = ["ibis-framework (>=6.0.0)", "packaging", "pyarrow-hotfix", "rich"] -modin = ["modin"] -pandas = ["pandas (>=0.25.3)"] -polars = ["polars (>=0.20.3)"] -pyarrow = ["pyarrow (>=11.0.0)"] -pyspark = ["pyspark (>=3.5.0)"] -sqlframe = ["sqlframe (>=3.22.0)"] - -[[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 = "nova-galaxy" -version = "0.7.2" -description = "Utilties for accessing the ORNL Galaxy instance" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_galaxy-0.7.2-py3-none-any.whl", hash = "sha256:d0bac8c0d2f84f112a7d62833be61122cce15c72f022cfa81d960df9b8d948be"}, -] - -[package.dependencies] -bioblend = ">=1.3.0,<2.0.0" -tomli = ">=2.0.2,<3.0.0" - -[[package]] -name = "nova-mvvm" -version = "0.10.0" -description = "A Python Package for Model-View-ViewModel pattern" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_mvvm-0.10.0-py3-none-any.whl", hash = "sha256:5b07b0bb6ba1d45ce42d80424b427693aab76d40da7993c70c1d3d82ec9d17fd"}, -] - -[package.dependencies] -deepdiff = ">=8.0.1,<9.0.0" -pytest-asyncio = ">=0.25.0,<0.26.0" -trame = ">=3.6.3,<4.0.0" - -[package.extras] -panel = ["panel (>=1.4.4,<2.0.0)"] -pyqt5 = ["pyqt5 (>=5.15.11,<6.0.0)"] -pyqt6 = ["pyqt6 (>=6.7.0,<7.0.0)"] - -[[package]] -name = "nova-trame" -version = "0.16.0" -description = "A Python Package for injecting curated themes and custom components into Trame applications" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_trame-0.16.0-py3-none-any.whl", hash = "sha256:1c24f68a632d775097afe06f54bf27044908d34088fd7ddd835e3744972e95d0"}, -] - -[package.dependencies] -altair = "*" -libsass = "*" -mergedeep = "*" -nova-mvvm = "*" -pydantic = "*" -tomli = "*" -tornado = "*" -trame = "*" -trame-matplotlib = "*" -trame-plotly = "*" -trame-vega = "*" -trame-vuetify = "*" - -[[package]] -name = "numpy" -version = "2.2.4" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.10" -files = [ - {file = "numpy-2.2.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8146f3550d627252269ac42ae660281d673eb6f8b32f113538e0cc2a9aed42b9"}, - {file = "numpy-2.2.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e642d86b8f956098b564a45e6f6ce68a22c2c97a04f5acd3f221f57b8cb850ae"}, - {file = "numpy-2.2.4-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:a84eda42bd12edc36eb5b53bbcc9b406820d3353f1994b6cfe453a33ff101775"}, - {file = "numpy-2.2.4-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:4ba5054787e89c59c593a4169830ab362ac2bee8a969249dc56e5d7d20ff8df9"}, - {file = "numpy-2.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7716e4a9b7af82c06a2543c53ca476fa0b57e4d760481273e09da04b74ee6ee2"}, - {file = "numpy-2.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adf8c1d66f432ce577d0197dceaac2ac00c0759f573f28516246351c58a85020"}, - {file = "numpy-2.2.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:218f061d2faa73621fa23d6359442b0fc658d5b9a70801373625d958259eaca3"}, - {file = "numpy-2.2.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:df2f57871a96bbc1b69733cd4c51dc33bea66146b8c63cacbfed73eec0883017"}, - {file = "numpy-2.2.4-cp310-cp310-win32.whl", hash = "sha256:a0258ad1f44f138b791327961caedffbf9612bfa504ab9597157806faa95194a"}, - {file = "numpy-2.2.4-cp310-cp310-win_amd64.whl", hash = "sha256:0d54974f9cf14acf49c60f0f7f4084b6579d24d439453d5fc5805d46a165b542"}, - {file = "numpy-2.2.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e9e0a277bb2eb5d8a7407e14688b85fd8ad628ee4e0c7930415687b6564207a4"}, - {file = "numpy-2.2.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eeea959168ea555e556b8188da5fa7831e21d91ce031e95ce23747b7609f8a4"}, - {file = "numpy-2.2.4-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bd3ad3b0a40e713fc68f99ecfd07124195333f1e689387c180813f0e94309d6f"}, - {file = "numpy-2.2.4-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:cf28633d64294969c019c6df4ff37f5698e8326db68cc2b66576a51fad634880"}, - {file = "numpy-2.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fa8fa7697ad1646b5c93de1719965844e004fcad23c91228aca1cf0800044a1"}, - {file = "numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4162988a360a29af158aeb4a2f4f09ffed6a969c9776f8f3bdee9b06a8ab7e5"}, - {file = "numpy-2.2.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:892c10d6a73e0f14935c31229e03325a7b3093fafd6ce0af704be7f894d95687"}, - {file = "numpy-2.2.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db1f1c22173ac1c58db249ae48aa7ead29f534b9a948bc56828337aa84a32ed6"}, - {file = "numpy-2.2.4-cp311-cp311-win32.whl", hash = "sha256:ea2bb7e2ae9e37d96835b3576a4fa4b3a97592fbea8ef7c3587078b0068b8f09"}, - {file = "numpy-2.2.4-cp311-cp311-win_amd64.whl", hash = "sha256:f7de08cbe5551911886d1ab60de58448c6df0f67d9feb7d1fb21e9875ef95e91"}, - {file = "numpy-2.2.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a7b9084668aa0f64e64bd00d27ba5146ef1c3a8835f3bd912e7a9e01326804c4"}, - {file = "numpy-2.2.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dbe512c511956b893d2dacd007d955a3f03d555ae05cfa3ff1c1ff6df8851854"}, - {file = "numpy-2.2.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:bb649f8b207ab07caebba230d851b579a3c8711a851d29efe15008e31bb4de24"}, - {file = "numpy-2.2.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:f34dc300df798742b3d06515aa2a0aee20941c13579d7a2f2e10af01ae4901ee"}, - {file = "numpy-2.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3f7ac96b16955634e223b579a3e5798df59007ca43e8d451a0e6a50f6bfdfba"}, - {file = "numpy-2.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f92084defa704deadd4e0a5ab1dc52d8ac9e8a8ef617f3fbb853e79b0ea3592"}, - {file = "numpy-2.2.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4e84a6283b36632e2a5b56e121961f6542ab886bc9e12f8f9818b3c266bfbb"}, - {file = "numpy-2.2.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:11c43995255eb4127115956495f43e9343736edb7fcdb0d973defd9de14cd84f"}, - {file = "numpy-2.2.4-cp312-cp312-win32.whl", hash = "sha256:65ef3468b53269eb5fdb3a5c09508c032b793da03251d5f8722b1194f1790c00"}, - {file = "numpy-2.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:2aad3c17ed2ff455b8eaafe06bcdae0062a1db77cb99f4b9cbb5f4ecb13c5146"}, - {file = "numpy-2.2.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cf4e5c6a278d620dee9ddeb487dc6a860f9b199eadeecc567f777daace1e9e7"}, - {file = "numpy-2.2.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1974afec0b479e50438fc3648974268f972e2d908ddb6d7fb634598cdb8260a0"}, - {file = "numpy-2.2.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:79bd5f0a02aa16808fcbc79a9a376a147cc1045f7dfe44c6e7d53fa8b8a79392"}, - {file = "numpy-2.2.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:3387dd7232804b341165cedcb90694565a6015433ee076c6754775e85d86f1fc"}, - {file = "numpy-2.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f527d8fdb0286fd2fd97a2a96c6be17ba4232da346931d967a0630050dfd298"}, - {file = "numpy-2.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bce43e386c16898b91e162e5baaad90c4b06f9dcbe36282490032cec98dc8ae7"}, - {file = "numpy-2.2.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31504f970f563d99f71a3512d0c01a645b692b12a63630d6aafa0939e52361e6"}, - {file = "numpy-2.2.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:81413336ef121a6ba746892fad881a83351ee3e1e4011f52e97fba79233611fd"}, - {file = "numpy-2.2.4-cp313-cp313-win32.whl", hash = "sha256:f486038e44caa08dbd97275a9a35a283a8f1d2f0ee60ac260a1790e76660833c"}, - {file = "numpy-2.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:207a2b8441cc8b6a2a78c9ddc64d00d20c303d79fba08c577752f080c4007ee3"}, - {file = "numpy-2.2.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8120575cb4882318c791f839a4fd66161a6fa46f3f0a5e613071aae35b5dd8f8"}, - {file = "numpy-2.2.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a761ba0fa886a7bb33c6c8f6f20213735cb19642c580a931c625ee377ee8bd39"}, - {file = "numpy-2.2.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:ac0280f1ba4a4bfff363a99a6aceed4f8e123f8a9b234c89140f5e894e452ecd"}, - {file = "numpy-2.2.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:879cf3a9a2b53a4672a168c21375166171bc3932b7e21f622201811c43cdd3b0"}, - {file = "numpy-2.2.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f05d4198c1bacc9124018109c5fba2f3201dbe7ab6e92ff100494f236209c960"}, - {file = "numpy-2.2.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f085ce2e813a50dfd0e01fbfc0c12bbe5d2063d99f8b29da30e544fb6483b8"}, - {file = "numpy-2.2.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:92bda934a791c01d6d9d8e038363c50918ef7c40601552a58ac84c9613a665bc"}, - {file = "numpy-2.2.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ee4d528022f4c5ff67332469e10efe06a267e32f4067dc76bb7e2cddf3cd25ff"}, - {file = "numpy-2.2.4-cp313-cp313t-win32.whl", hash = "sha256:05c076d531e9998e7e694c36e8b349969c56eadd2cdcd07242958489d79a7286"}, - {file = "numpy-2.2.4-cp313-cp313t-win_amd64.whl", hash = "sha256:188dcbca89834cc2e14eb2f106c96d6d46f200fe0200310fc29089657379c58d"}, - {file = "numpy-2.2.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7051ee569db5fbac144335e0f3b9c2337e0c8d5c9fee015f259a5bd70772b7e8"}, - {file = "numpy-2.2.4-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:ab2939cd5bec30a7430cbdb2287b63151b77cf9624de0532d629c9a1c59b1d5c"}, - {file = "numpy-2.2.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0f35b19894a9e08639fd60a1ec1978cb7f5f7f1eace62f38dd36be8aecdef4d"}, - {file = "numpy-2.2.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b4adfbbc64014976d2f91084915ca4e626fbf2057fb81af209c1a6d776d23e3d"}, - {file = "numpy-2.2.4.tar.gz", hash = "sha256:9ba03692a45d3eef66559efe1d1096c4b9b75c0986b5dff5530c378fb8331d4f"}, -] - -[[package]] -name = "orderly-set" -version = "5.3.0" -description = "Orderly set" -optional = false -python-versions = ">=3.8" -files = [ - {file = "orderly_set-5.3.0-py3-none-any.whl", hash = "sha256:c2c0bfe604f5d3d9b24e8262a06feb612594f37aa3845650548befd7772945d1"}, - {file = "orderly_set-5.3.0.tar.gz", hash = "sha256:80b3d8fdd3d39004d9aad389eaa0eab02c71f0a0511ba3a6d54a935a6c6a0acc"}, -] - -[[package]] -name = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "pillow" -version = "11.1.0" -description = "Python Imaging Library (Fork)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, - {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, - {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, - {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, - {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, - {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, - {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, - {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, - {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, - {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, - {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, - {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, - {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, - {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, - {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, - {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, - {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, - {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, - {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, - {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, - {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, - {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, - {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, - {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, - {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, - {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, - {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, - {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, - {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, - {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, - {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, - {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, - {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, - {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, - {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, - {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, - {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, - {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, - {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, - {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, - {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, - {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, - {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, - {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, - {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, - {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, - {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, - {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, -] - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] -fpx = ["olefile"] -mic = ["olefile"] -tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] -typing = ["typing-extensions"] -xmp = ["defusedxml"] - -[[package]] -name = "platformdirs" -version = "4.3.7" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -optional = false -python-versions = ">=3.9" -files = [ - {file = "platformdirs-4.3.7-py3-none-any.whl", hash = "sha256:a03875334331946f13c549dbd8f4bac7a13a50a895a0eb1e8c6a8ace80d40a94"}, - {file = "platformdirs-4.3.7.tar.gz", hash = "sha256:eb437d586b6a0986388f0d6f74aa0cde27b48d0e3d66843640bfb6bdcdb6e351"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.14.1)"] - -[[package]] -name = "plotly" -version = "6.0.1" -description = "An open-source interactive data visualization library for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plotly-6.0.1-py3-none-any.whl", hash = "sha256:4714db20fea57a435692c548a4eb4fae454f7daddf15f8d8ba7e1045681d7768"}, - {file = "plotly-6.0.1.tar.gz", hash = "sha256:dd8400229872b6e3c964b099be699f8d00c489a974f2cfccfad5e8240873366b"}, -] - -[package.dependencies] -narwhals = ">=1.15.1" -packaging = "*" - -[package.extras] -express = ["numpy"] - -[[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 = "plumbum" -version = "1.9.0" -description = "Plumbum: shell combinators library" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5"}, - {file = "plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219"}, -] - -[package.dependencies] -pywin32 = {version = "*", markers = "platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""} - -[package.extras] -dev = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] -docs = ["sphinx (>=4.0.0)", "sphinx-rtd-theme (>=1.0.0)"] -ssh = ["paramiko"] -test = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] - -[[package]] -name = "pockets" -version = "0.9.1" -description = "A collection of helpful Python tools!" -optional = false -python-versions = "*" -files = [ - {file = "pockets-0.9.1-py2.py3-none-any.whl", hash = "sha256:68597934193c08a08eb2bf6a1d85593f627c22f9b065cc727a4f03f669d96d86"}, - {file = "pockets-0.9.1.tar.gz", hash = "sha256:9320f1a3c6f7a9133fe3b571f283bcf3353cd70249025ae8d618e40e9f7e92b3"}, -] - -[package.dependencies] -six = ">=1.5.2" - -[[package]] -name = "pre-commit" -version = "4.2.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = false -python-versions = ">=3.9" -files = [ - {file = "pre_commit-4.2.0-py2.py3-none-any.whl", hash = "sha256:a009ca7205f1eb497d10b845e52c838a98b6cdd2102a6c8e4540e94ee75c58bd"}, - {file = "pre_commit-4.2.0.tar.gz", hash = "sha256:601283b9757afd87d40c4c4a9b2b5de9637a8ea02eaff7adc2d0fb4e04841146"}, -] - -[package.dependencies] -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.50" -description = "Library for building powerful interactive command lines in Python" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, - {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "propcache" -version = "0.3.1" -description = "Accelerated property cache" -optional = false -python-versions = ">=3.9" -files = [ - {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f27785888d2fdd918bc36de8b8739f2d6c791399552333721b58193f68ea3e98"}, - {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4e89cde74154c7b5957f87a355bb9c8ec929c167b59c83d90654ea36aeb6180"}, - {file = "propcache-0.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:730178f476ef03d3d4d255f0c9fa186cb1d13fd33ffe89d39f2cda4da90ceb71"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967a8eec513dbe08330f10137eacb427b2ca52118769e82ebcfcab0fba92a649"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b9145c35cc87313b5fd480144f8078716007656093d23059e8993d3a8fa730f"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e64e948ab41411958670f1093c0a57acfdc3bee5cf5b935671bbd5313bcf229"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:319fa8765bfd6a265e5fa661547556da381e53274bc05094fc9ea50da51bfd46"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c66d8ccbc902ad548312b96ed8d5d266d0d2c6d006fd0f66323e9d8f2dd49be7"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2d219b0dbabe75e15e581fc1ae796109b07c8ba7d25b9ae8d650da582bed01b0"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:cd6a55f65241c551eb53f8cf4d2f4af33512c39da5d9777694e9d9c60872f519"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9979643ffc69b799d50d3a7b72b5164a2e97e117009d7af6dfdd2ab906cb72cd"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4cf9e93a81979f1424f1a3d155213dc928f1069d697e4353edb8a5eba67c6259"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2fce1df66915909ff6c824bbb5eb403d2d15f98f1518e583074671a30fe0c21e"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4d0dfdd9a2ebc77b869a0b04423591ea8823f791293b527dc1bb896c1d6f1136"}, - {file = "propcache-0.3.1-cp310-cp310-win32.whl", hash = "sha256:1f6cc0ad7b4560e5637eb2c994e97b4fa41ba8226069c9277eb5ea7101845b42"}, - {file = "propcache-0.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:47ef24aa6511e388e9894ec16f0fbf3313a53ee68402bc428744a367ec55b833"}, - {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7f30241577d2fef2602113b70ef7231bf4c69a97e04693bde08ddab913ba0ce5"}, - {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:43593c6772aa12abc3af7784bff4a41ffa921608dd38b77cf1dfd7f5c4e71371"}, - {file = "propcache-0.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a75801768bbe65499495660b777e018cbe90c7980f07f8aa57d6be79ea6f71da"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6f1324db48f001c2ca26a25fa25af60711e09b9aaf4b28488602776f4f9a744"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cdb0f3e1eb6dfc9965d19734d8f9c481b294b5274337a8cb5cb01b462dcb7e0"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb34d90aac9bfbced9a58b266f8946cb5935869ff01b164573a7634d39fbcb5"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35c7070eeec2cdaac6fd3fe245226ed2a6292d3ee8c938e5bb645b434c5f256"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b23c11c2c9e6d4e7300c92e022046ad09b91fd00e36e83c44483df4afa990073"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3e19ea4ea0bf46179f8a3652ac1426e6dcbaf577ce4b4f65be581e237340420d"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:bd39c92e4c8f6cbf5f08257d6360123af72af9f4da75a690bef50da77362d25f"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b0313e8b923b3814d1c4a524c93dfecea5f39fa95601f6a9b1ac96cd66f89ea0"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e861ad82892408487be144906a368ddbe2dc6297074ade2d892341b35c59844a"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:61014615c1274df8da5991a1e5da85a3ccb00c2d4701ac6f3383afd3ca47ab0a"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:71ebe3fe42656a2328ab08933d420df5f3ab121772eef78f2dc63624157f0ed9"}, - {file = "propcache-0.3.1-cp311-cp311-win32.whl", hash = "sha256:58aa11f4ca8b60113d4b8e32d37e7e78bd8af4d1a5b5cb4979ed856a45e62005"}, - {file = "propcache-0.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:9532ea0b26a401264b1365146c440a6d78269ed41f83f23818d4b79497aeabe7"}, - {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f78eb8422acc93d7b69964012ad7048764bb45a54ba7a39bb9e146c72ea29723"}, - {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:89498dd49c2f9a026ee057965cdf8192e5ae070ce7d7a7bd4b66a8e257d0c976"}, - {file = "propcache-0.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:09400e98545c998d57d10035ff623266927cb784d13dd2b31fd33b8a5316b85b"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8efd8c5adc5a2c9d3b952815ff8f7710cefdcaf5f2c36d26aff51aeca2f12f"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2fe5c910f6007e716a06d269608d307b4f36e7babee5f36533722660e8c4a70"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0ab8cf8cdd2194f8ff979a43ab43049b1df0b37aa64ab7eca04ac14429baeb7"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:563f9d8c03ad645597b8d010ef4e9eab359faeb11a0a2ac9f7b4bc8c28ebef25"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb6e0faf8cb6b4beea5d6ed7b5a578254c6d7df54c36ccd3d8b3eb00d6770277"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1c5c7ab7f2bb3f573d1cb921993006ba2d39e8621019dffb1c5bc94cdbae81e8"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:050b571b2e96ec942898f8eb46ea4bfbb19bd5502424747e83badc2d4a99a44e"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e1c4d24b804b3a87e9350f79e2371a705a188d292fd310e663483af6ee6718ee"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e4fe2a6d5ce975c117a6bb1e8ccda772d1e7029c1cca1acd209f91d30fa72815"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:feccd282de1f6322f56f6845bf1207a537227812f0a9bf5571df52bb418d79d5"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ec314cde7314d2dd0510c6787326bbffcbdc317ecee6b7401ce218b3099075a7"}, - {file = "propcache-0.3.1-cp312-cp312-win32.whl", hash = "sha256:7d2d5a0028d920738372630870e7d9644ce437142197f8c827194fca404bf03b"}, - {file = "propcache-0.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:88c423efef9d7a59dae0614eaed718449c09a5ac79a5f224a8b9664d603f04a3"}, - {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f1528ec4374617a7a753f90f20e2f551121bb558fcb35926f99e3c42367164b8"}, - {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc1915ec523b3b494933b5424980831b636fe483d7d543f7afb7b3bf00f0c10f"}, - {file = "propcache-0.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a110205022d077da24e60b3df8bcee73971be9575dec5573dd17ae5d81751111"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d249609e547c04d190e820d0d4c8ca03ed4582bcf8e4e160a6969ddfb57b62e5"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ced33d827625d0a589e831126ccb4f5c29dfdf6766cac441d23995a65825dcb"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4114c4ada8f3181af20808bedb250da6bae56660e4b8dfd9cd95d4549c0962f7"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:975af16f406ce48f1333ec5e912fe11064605d5c5b3f6746969077cc3adeb120"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a34aa3a1abc50740be6ac0ab9d594e274f59960d3ad253cd318af76b996dd654"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9cec3239c85ed15bfaded997773fdad9fb5662b0a7cbc854a43f291eb183179e"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:05543250deac8e61084234d5fc54f8ebd254e8f2b39a16b1dce48904f45b744b"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cb5918253912e088edbf023788de539219718d3b10aef334476b62d2b53de53"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f3bbecd2f34d0e6d3c543fdb3b15d6b60dd69970c2b4c822379e5ec8f6f621d5"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aca63103895c7d960a5b9b044a83f544b233c95e0dcff114389d64d762017af7"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a0a9898fdb99bf11786265468571e628ba60af80dc3f6eb89a3545540c6b0ef"}, - {file = "propcache-0.3.1-cp313-cp313-win32.whl", hash = "sha256:3a02a28095b5e63128bcae98eb59025924f121f048a62393db682f049bf4ac24"}, - {file = "propcache-0.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:813fbb8b6aea2fc9659815e585e548fe706d6f663fa73dff59a1677d4595a037"}, - {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a444192f20f5ce8a5e52761a031b90f5ea6288b1eef42ad4c7e64fef33540b8f"}, - {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fbe94666e62ebe36cd652f5fc012abfbc2342de99b523f8267a678e4dfdee3c"}, - {file = "propcache-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f011f104db880f4e2166bcdcf7f58250f7a465bc6b068dc84c824a3d4a5c94dc"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e584b6d388aeb0001d6d5c2bd86b26304adde6d9bb9bfa9c4889805021b96de"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a17583515a04358b034e241f952f1715243482fc2c2945fd99a1b03a0bd77d6"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5aed8d8308215089c0734a2af4f2e95eeb360660184ad3912686c181e500b2e7"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8e309ff9a0503ef70dc9a0ebd3e69cf7b3894c9ae2ae81fc10943c37762458"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b655032b202028a582d27aeedc2e813299f82cb232f969f87a4fde491a233f11"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f64d91b751df77931336b5ff7bafbe8845c5770b06630e27acd5dbb71e1931c"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:19a06db789a4bd896ee91ebc50d059e23b3639c25d58eb35be3ca1cbe967c3bf"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:bef100c88d8692864651b5f98e871fb090bd65c8a41a1cb0ff2322db39c96c27"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:87380fb1f3089d2a0b8b00f006ed12bd41bd858fabfa7330c954c70f50ed8757"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e474fc718e73ba5ec5180358aa07f6aded0ff5f2abe700e3115c37d75c947e18"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:17d1c688a443355234f3c031349da69444be052613483f3e4158eef751abcd8a"}, - {file = "propcache-0.3.1-cp313-cp313t-win32.whl", hash = "sha256:359e81a949a7619802eb601d66d37072b79b79c2505e6d3fd8b945538411400d"}, - {file = "propcache-0.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e7fb9a84c9abbf2b2683fa3e7b0d7da4d8ecf139a1c635732a8bda29c5214b0e"}, - {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ed5f6d2edbf349bd8d630e81f474d33d6ae5d07760c44d33cd808e2f5c8f4ae6"}, - {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:668ddddc9f3075af019f784456267eb504cb77c2c4bd46cc8402d723b4d200bf"}, - {file = "propcache-0.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0c86e7ceea56376216eba345aa1fc6a8a6b27ac236181f840d1d7e6a1ea9ba5c"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83be47aa4e35b87c106fc0c84c0fc069d3f9b9b06d3c494cd404ec6747544894"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:27c6ac6aa9fc7bc662f594ef380707494cb42c22786a558d95fcdedb9aa5d035"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64a956dff37080b352c1c40b2966b09defb014347043e740d420ca1eb7c9b908"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82de5da8c8893056603ac2d6a89eb8b4df49abf1a7c19d536984c8dd63f481d5"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3c3a203c375b08fd06a20da3cf7aac293b834b6f4f4db71190e8422750cca5"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b303b194c2e6f171cfddf8b8ba30baefccf03d36a4d9cab7fd0bb68ba476a3d7"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:916cd229b0150129d645ec51614d38129ee74c03293a9f3f17537be0029a9641"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a461959ead5b38e2581998700b26346b78cd98540b5524796c175722f18b0294"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:069e7212890b0bcf9b2be0a03afb0c2d5161d91e1bf51569a64f629acc7defbf"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ef2e4e91fb3945769e14ce82ed53007195e616a63aa43b40fb7ebaaf907c8d4c"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8638f99dca15b9dff328fb6273e09f03d1c50d9b6512f3b65a4154588a7595fe"}, - {file = "propcache-0.3.1-cp39-cp39-win32.whl", hash = "sha256:6f173bbfe976105aaa890b712d1759de339d8a7cef2fc0a1714cc1a1e1c47f64"}, - {file = "propcache-0.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:603f1fe4144420374f1a69b907494c3acbc867a581c2d49d4175b0de7cc64566"}, - {file = "propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40"}, - {file = "propcache-0.3.1.tar.gz", hash = "sha256:40d980c33765359098837527e18eddefc9a24cea5b45e078a7f3bb5b032c6ecf"}, -] - -[[package]] -name = "pydantic" -version = "2.11.2" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pydantic-2.11.2-py3-none-any.whl", hash = "sha256:7f17d25846bcdf89b670a86cdfe7b29a9f1c9ca23dee154221c9aa81845cfca7"}, - {file = "pydantic-2.11.2.tar.gz", hash = "sha256:2138628e050bd7a1e70b91d4bf4a91167f4ad76fdb83209b107c8d84b854917e"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.33.1" -typing-extensions = ">=4.12.2" -typing-inspection = ">=0.4.0" - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] - -[[package]] -name = "pydantic-core" -version = "2.33.1" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pydantic_core-2.33.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3077cfdb6125cc8dab61b155fdd714663e401f0e6883f9632118ec12cf42df26"}, - {file = "pydantic_core-2.33.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ffab8b2908d152e74862d276cf5017c81a2f3719f14e8e3e8d6b83fda863927"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5183e4f6a2d468787243ebcd70cf4098c247e60d73fb7d68d5bc1e1beaa0c4db"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:398a38d323f37714023be1e0285765f0a27243a8b1506b7b7de87b647b517e48"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d3776f0001b43acebfa86f8c64019c043b55cc5a6a2e313d728b5c95b46969"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c566dd9c5f63d22226409553531f89de0cac55397f2ab8d97d6f06cfce6d947e"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d5f3acc81452c56895e90643a625302bd6be351e7010664151cc55b7b97f89"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3a07fadec2a13274a8d861d3d37c61e97a816beae717efccaa4b36dfcaadcde"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f99aeda58dce827f76963ee87a0ebe75e648c72ff9ba1174a253f6744f518f65"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:902dbc832141aa0ec374f4310f1e4e7febeebc3256f00dc359a9ac3f264a45dc"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fe44d56aa0b00d66640aa84a3cbe80b7a3ccdc6f0b1ca71090696a6d4777c091"}, - {file = "pydantic_core-2.33.1-cp310-cp310-win32.whl", hash = "sha256:ed3eb16d51257c763539bde21e011092f127a2202692afaeaccb50db55a31383"}, - {file = "pydantic_core-2.33.1-cp310-cp310-win_amd64.whl", hash = "sha256:694ad99a7f6718c1a498dc170ca430687a39894a60327f548e02a9c7ee4b6504"}, - {file = "pydantic_core-2.33.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e966fc3caaf9f1d96b349b0341c70c8d6573bf1bac7261f7b0ba88f96c56c24"}, - {file = "pydantic_core-2.33.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bfd0adeee563d59c598ceabddf2c92eec77abcb3f4a391b19aa7366170bd9e30"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91815221101ad3c6b507804178a7bb5cb7b2ead9ecd600041669c8d805ebd595"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9fea9c1869bb4742d174a57b4700c6dadea951df8b06de40c2fedb4f02931c2e"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d20eb4861329bb2484c021b9d9a977566ab16d84000a57e28061151c62b349a"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb935c5591573ae3201640579f30128ccc10739b45663f93c06796854405505"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c964fd24e6166420d18fb53996d8c9fd6eac9bf5ae3ec3d03015be4414ce497f"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:681d65e9011f7392db5aa002b7423cc442d6a673c635668c227c6c8d0e5a4f77"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e100c52f7355a48413e2999bfb4e139d2977a904495441b374f3d4fb4a170961"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:048831bd363490be79acdd3232f74a0e9951b11b2b4cc058aeb72b22fdc3abe1"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bdc84017d28459c00db6f918a7272a5190bec3090058334e43a76afb279eac7c"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win32.whl", hash = "sha256:32cd11c5914d1179df70406427097c7dcde19fddf1418c787540f4b730289896"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win_amd64.whl", hash = "sha256:2ea62419ba8c397e7da28a9170a16219d310d2cf4970dbc65c32faf20d828c83"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win_arm64.whl", hash = "sha256:fc903512177361e868bc1f5b80ac8c8a6e05fcdd574a5fb5ffeac5a9982b9e89"}, - {file = "pydantic_core-2.33.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1293d7febb995e9d3ec3ea09caf1a26214eec45b0f29f6074abb004723fc1de8"}, - {file = "pydantic_core-2.33.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:99b56acd433386c8f20be5c4000786d1e7ca0523c8eefc995d14d79c7a081498"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35a5ec3fa8c2fe6c53e1b2ccc2454398f95d5393ab398478f53e1afbbeb4d939"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b172f7b9d2f3abc0efd12e3386f7e48b576ef309544ac3a63e5e9cdd2e24585d"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9097b9f17f91eea659b9ec58148c0747ec354a42f7389b9d50701610d86f812e"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc77ec5b7e2118b152b0d886c7514a4653bcb58c6b1d760134a9fab915f777b3"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3d15245b08fa4a84cefc6c9222e6f37c98111c8679fbd94aa145f9a0ae23d"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ef99779001d7ac2e2461d8ab55d3373fe7315caefdbecd8ced75304ae5a6fc6b"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fc6bf8869e193855e8d91d91f6bf59699a5cdfaa47a404e278e776dd7f168b39"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:b1caa0bc2741b043db7823843e1bde8aaa58a55a58fda06083b0569f8b45693a"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ec259f62538e8bf364903a7d0d0239447059f9434b284f5536e8402b7dd198db"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win32.whl", hash = "sha256:e14f369c98a7c15772b9da98987f58e2b509a93235582838bd0d1d8c08b68fda"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win_amd64.whl", hash = "sha256:1c607801d85e2e123357b3893f82c97a42856192997b95b4d8325deb1cd0c5f4"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win_arm64.whl", hash = "sha256:8d13f0276806ee722e70a1c93da19748594f19ac4299c7e41237fc791d1861ea"}, - {file = "pydantic_core-2.33.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:70af6a21237b53d1fe7b9325b20e65cbf2f0a848cf77bed492b029139701e66a"}, - {file = "pydantic_core-2.33.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:282b3fe1bbbe5ae35224a0dbd05aed9ccabccd241e8e6b60370484234b456266"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b315e596282bbb5822d0c7ee9d255595bd7506d1cb20c2911a4da0b970187d3"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1dfae24cf9921875ca0ca6a8ecb4bb2f13c855794ed0d468d6abbec6e6dcd44a"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dd8ecfde08d8bfadaea669e83c63939af76f4cf5538a72597016edfa3fad516"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f593494876eae852dc98c43c6f260f45abdbfeec9e4324e31a481d948214764"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:948b73114f47fd7016088e5186d13faf5e1b2fe83f5e320e371f035557fd264d"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e11f3864eb516af21b01e25fac915a82e9ddad3bb0fb9e95a246067398b435a4"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:549150be302428b56fdad0c23c2741dcdb5572413776826c965619a25d9c6bde"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:495bc156026efafd9ef2d82372bd38afce78ddd82bf28ef5276c469e57c0c83e"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ec79de2a8680b1a67a07490bddf9636d5c2fab609ba8c57597e855fa5fa4dacd"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win32.whl", hash = "sha256:ee12a7be1742f81b8a65b36c6921022301d466b82d80315d215c4c691724986f"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win_amd64.whl", hash = "sha256:ede9b407e39949d2afc46385ce6bd6e11588660c26f80576c11c958e6647bc40"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win_arm64.whl", hash = "sha256:aa687a23d4b7871a00e03ca96a09cad0f28f443690d300500603bd0adba4b523"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:401d7b76e1000d0dd5538e6381d28febdcacb097c8d340dde7d7fc6e13e9f95d"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7aeb055a42d734c0255c9e489ac67e75397d59c6fbe60d155851e9782f276a9c"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-win_amd64.whl", hash = "sha256:338ea9b73e6e109f15ab439e62cb3b78aa752c7fd9536794112e14bee02c8d18"}, - {file = "pydantic_core-2.33.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5ab77f45d33d264de66e1884fca158bc920cb5e27fd0764a72f72f5756ae8bdb"}, - {file = "pydantic_core-2.33.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7aaba1b4b03aaea7bb59e1b5856d734be011d3e6d98f5bcaa98cb30f375f2ad"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fb66263e9ba8fea2aa85e1e5578980d127fb37d7f2e292773e7bc3a38fb0c7b"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f2648b9262607a7fb41d782cc263b48032ff7a03a835581abbf7a3bec62bcf5"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:723c5630c4259400818b4ad096735a829074601805d07f8cafc366d95786d331"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d100e3ae783d2167782391e0c1c7a20a31f55f8015f3293647544df3f9c67824"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177d50460bc976a0369920b6c744d927b0ecb8606fb56858ff542560251b19e5"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3edde68d1a1f9af1273b2fe798997b33f90308fb6d44d8550c89fc6a3647cf6"}, - {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a62c3c3ef6a7e2c45f7853b10b5bc4ddefd6ee3cd31024754a1a5842da7d598d"}, - {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:c91dbb0ab683fa0cd64a6e81907c8ff41d6497c346890e26b23de7ee55353f96"}, - {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f466e8bf0a62dc43e068c12166281c2eca72121dd2adc1040f3aa1e21ef8599"}, - {file = "pydantic_core-2.33.1-cp39-cp39-win32.whl", hash = "sha256:ab0277cedb698749caada82e5d099dc9fed3f906a30d4c382d1a21725777a1e5"}, - {file = "pydantic_core-2.33.1-cp39-cp39-win_amd64.whl", hash = "sha256:5773da0ee2d17136b1f1c6fbde543398d452a6ad2a7b54ea1033e2daa739b8d2"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c834f54f8f4640fd7e4b193f80eb25a0602bba9e19b3cd2fc7ffe8199f5ae02"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:049e0de24cf23766f12cc5cc71d8abc07d4a9deb9061b334b62093dedc7cb068"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a28239037b3d6f16916a4c831a5a0eadf856bdd6d2e92c10a0da3a59eadcf3e"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d3da303ab5f378a268fa7d45f37d7d85c3ec19769f28d2cc0c61826a8de21fe"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25626fb37b3c543818c14821afe0fd3830bc327a43953bc88db924b68c5723f1"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3ab2d36e20fbfcce8f02d73c33a8a7362980cff717926bbae030b93ae46b56c7"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:2f9284e11c751b003fd4215ad92d325d92c9cb19ee6729ebd87e3250072cdcde"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:048c01eee07d37cbd066fc512b9d8b5ea88ceeb4e629ab94b3e56965ad655add"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5ccd429694cf26af7997595d627dd2637e7932214486f55b8a357edaac9dae8c"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3a371dc00282c4b84246509a5ddc808e61b9864aa1eae9ecc92bb1268b82db4a"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f59295ecc75a1788af8ba92f2e8c6eeaa5a94c22fc4d151e8d9638814f85c8fc"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08530b8ac922003033f399128505f513e30ca770527cc8bbacf75a84fcc2c74b"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bae370459da6a5466978c0eacf90690cb57ec9d533f8e63e564ef3822bfa04fe"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3de2777e3b9f4d603112f78006f4ae0acb936e95f06da6cb1a45fbad6bdb4b5"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3a64e81e8cba118e108d7126362ea30e021291b7805d47e4896e52c791be2761"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:52928d8c1b6bda03cc6d811e8923dffc87a2d3c8b3bfd2ce16471c7147a24850"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:1b30d92c9412beb5ac6b10a3eb7ef92ccb14e3f2a8d7732e2d739f58b3aa7544"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f995719707e0e29f0f41a8aa3bcea6e761a36c9136104d3189eafb83f5cec5e5"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7edbc454a29fc6aeae1e1eecba4f07b63b8d76e76a748532233c4c167b4cb9ea"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ad05b683963f69a1d5d2c2bdab1274a31221ca737dbbceaa32bcb67359453cdd"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df6a94bf9452c6da9b5d76ed229a5683d0306ccb91cca8e1eea883189780d568"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7965c13b3967909a09ecc91f21d09cfc4576bf78140b988904e94f130f188396"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f1fdb790440a34f6ecf7679e1863b825cb5ffde858a9197f851168ed08371e5"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5277aec8d879f8d05168fdd17ae811dd313b8ff894aeeaf7cd34ad28b4d77e33"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8ab581d3530611897d863d1a649fb0644b860286b4718db919bfd51ece41f10b"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0483847fa9ad5e3412265c1bd72aad35235512d9ce9d27d81a56d935ef489672"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:de9e06abe3cc5ec6a2d5f75bc99b0bdca4f5c719a5b34026f8c57efbdecd2ee3"}, - {file = "pydantic_core-2.33.1.tar.gz", hash = "sha256:bcc9c6fdb0ced789245b02b7d6603e17d1563064ddcfc36f046b61c0c05dd9df"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pygments" -version = "2.19.1" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pyparsing" -version = "3.2.3" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf"}, - {file = "pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be"}, -] - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] - -[[package]] -name = "pytest" -version = "8.3.5" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820"}, - {file = "pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-asyncio" -version = "0.25.3" -description = "Pytest support for asyncio" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3"}, - {file = "pytest_asyncio-0.25.3.tar.gz", hash = "sha256:fc1da2cf9f125ada7e710b4ddad05518d4cee187ae9412e9ac9271003497f07a"}, -] - -[package.dependencies] -pytest = ">=8.2,<9" - -[package.extras] -docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] -testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] - -[[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 = "pywin32" -version = "310" -description = "Python for Window Extensions" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-310-cp310-cp310-win32.whl", hash = "sha256:6dd97011efc8bf51d6793a82292419eba2c71cf8e7250cfac03bba284454abc1"}, - {file = "pywin32-310-cp310-cp310-win_amd64.whl", hash = "sha256:c3e78706e4229b915a0821941a84e7ef420bf2b77e08c9dae3c76fd03fd2ae3d"}, - {file = "pywin32-310-cp310-cp310-win_arm64.whl", hash = "sha256:33babed0cf0c92a6f94cc6cc13546ab24ee13e3e800e61ed87609ab91e4c8213"}, - {file = "pywin32-310-cp311-cp311-win32.whl", hash = "sha256:1e765f9564e83011a63321bb9d27ec456a0ed90d3732c4b2e312b855365ed8bd"}, - {file = "pywin32-310-cp311-cp311-win_amd64.whl", hash = "sha256:126298077a9d7c95c53823934f000599f66ec9296b09167810eb24875f32689c"}, - {file = "pywin32-310-cp311-cp311-win_arm64.whl", hash = "sha256:19ec5fc9b1d51c4350be7bb00760ffce46e6c95eaf2f0b2f1150657b1a43c582"}, - {file = "pywin32-310-cp312-cp312-win32.whl", hash = "sha256:8a75a5cc3893e83a108c05d82198880704c44bbaee4d06e442e471d3c9ea4f3d"}, - {file = "pywin32-310-cp312-cp312-win_amd64.whl", hash = "sha256:bf5c397c9a9a19a6f62f3fb821fbf36cac08f03770056711f765ec1503972060"}, - {file = "pywin32-310-cp312-cp312-win_arm64.whl", hash = "sha256:2349cc906eae872d0663d4d6290d13b90621eaf78964bb1578632ff20e152966"}, - {file = "pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab"}, - {file = "pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e"}, - {file = "pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33"}, - {file = "pywin32-310-cp38-cp38-win32.whl", hash = "sha256:0867beb8addefa2e3979d4084352e4ac6e991ca45373390775f7084cc0209b9c"}, - {file = "pywin32-310-cp38-cp38-win_amd64.whl", hash = "sha256:30f0a9b3138fb5e07eb4973b7077e1883f558e40c578c6925acc7a94c34eaa36"}, - {file = "pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a"}, - {file = "pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "questionary" -version = "2.1.0" -description = "Python library to build pretty command line user prompts ⭐️" -optional = false -python-versions = ">=3.8" -files = [ - {file = "questionary-2.1.0-py3-none-any.whl", hash = "sha256:44174d237b68bc828e4878c763a9ad6790ee61990e0ae72927694ead57bab8ec"}, - {file = "questionary-2.1.0.tar.gz", hash = "sha256:6302cdd645b19667d8f6e6634774e9538bfcd1aad9be287e743d96cacaf95587"}, -] - -[package.dependencies] -prompt_toolkit = ">=2.0,<4.0" - -[[package]] -name = "referencing" -version = "0.36.2" -description = "JSON Referencing + Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, - {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, -] - -[package.dependencies] -attrs = ">=22.2.0" -rpds-py = ">=0.7.0" -typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""} - -[[package]] -name = "requests" -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 = "requests-toolbelt" -version = "1.0.0" -description = "A utility belt for advanced users of python-requests" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, - {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, -] - -[package.dependencies] -requests = ">=2.0.1,<3.0.0" - -[[package]] -name = "rpds-py" -version = "0.24.0" -description = "Python bindings to Rust's persistent data structures (rpds)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "rpds_py-0.24.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:006f4342fe729a368c6df36578d7a348c7c716be1da0a1a0f86e3021f8e98724"}, - {file = "rpds_py-0.24.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2d53747da70a4e4b17f559569d5f9506420966083a31c5fbd84e764461c4444b"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8acd55bd5b071156bae57b555f5d33697998752673b9de554dd82f5b5352727"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7e80d375134ddb04231a53800503752093dbb65dad8dabacce2c84cccc78e964"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60748789e028d2a46fc1c70750454f83c6bdd0d05db50f5ae83e2db500b34da5"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e1daf5bf6c2be39654beae83ee6b9a12347cb5aced9a29eecf12a2d25fff664"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b221c2457d92a1fb3c97bee9095c874144d196f47c038462ae6e4a14436f7bc"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:66420986c9afff67ef0c5d1e4cdc2d0e5262f53ad11e4f90e5e22448df485bf0"}, - {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:43dba99f00f1d37b2a0265a259592d05fcc8e7c19d140fe51c6e6f16faabeb1f"}, - {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a88c0d17d039333a41d9bf4616bd062f0bd7aa0edeb6cafe00a2fc2a804e944f"}, - {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc31e13ce212e14a539d430428cd365e74f8b2d534f8bc22dd4c9c55b277b875"}, - {file = "rpds_py-0.24.0-cp310-cp310-win32.whl", hash = "sha256:fc2c1e1b00f88317d9de6b2c2b39b012ebbfe35fe5e7bef980fd2a91f6100a07"}, - {file = "rpds_py-0.24.0-cp310-cp310-win_amd64.whl", hash = "sha256:c0145295ca415668420ad142ee42189f78d27af806fcf1f32a18e51d47dd2052"}, - {file = "rpds_py-0.24.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2d3ee4615df36ab8eb16c2507b11e764dcc11fd350bbf4da16d09cda11fcedef"}, - {file = "rpds_py-0.24.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e13ae74a8a3a0c2f22f450f773e35f893484fcfacb00bb4344a7e0f4f48e1f97"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf86f72d705fc2ef776bb7dd9e5fbba79d7e1f3e258bf9377f8204ad0fc1c51e"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c43583ea8517ed2e780a345dd9960896afc1327e8cf3ac8239c167530397440d"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4cd031e63bc5f05bdcda120646a0d32f6d729486d0067f09d79c8db5368f4586"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:34d90ad8c045df9a4259c47d2e16a3f21fdb396665c94520dbfe8766e62187a4"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e838bf2bb0b91ee67bf2b889a1a841e5ecac06dd7a2b1ef4e6151e2ce155c7ae"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04ecf5c1ff4d589987b4d9882872f80ba13da7d42427234fce8f22efb43133bc"}, - {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:630d3d8ea77eabd6cbcd2ea712e1c5cecb5b558d39547ac988351195db433f6c"}, - {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ebcb786b9ff30b994d5969213a8430cbb984cdd7ea9fd6df06663194bd3c450c"}, - {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:174e46569968ddbbeb8a806d9922f17cd2b524aa753b468f35b97ff9c19cb718"}, - {file = "rpds_py-0.24.0-cp311-cp311-win32.whl", hash = "sha256:5ef877fa3bbfb40b388a5ae1cb00636a624690dcb9a29a65267054c9ea86d88a"}, - {file = "rpds_py-0.24.0-cp311-cp311-win_amd64.whl", hash = "sha256:e274f62cbd274359eff63e5c7e7274c913e8e09620f6a57aae66744b3df046d6"}, - {file = "rpds_py-0.24.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d8551e733626afec514b5d15befabea0dd70a343a9f23322860c4f16a9430205"}, - {file = "rpds_py-0.24.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e374c0ce0ca82e5b67cd61fb964077d40ec177dd2c4eda67dba130de09085c7"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d69d003296df4840bd445a5d15fa5b6ff6ac40496f956a221c4d1f6f7b4bc4d9"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8212ff58ac6dfde49946bea57474a386cca3f7706fc72c25b772b9ca4af6b79e"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:528927e63a70b4d5f3f5ccc1fa988a35456eb5d15f804d276709c33fc2f19bda"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a824d2c7a703ba6daaca848f9c3d5cb93af0505be505de70e7e66829affd676e"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44d51febb7a114293ffd56c6cf4736cb31cd68c0fddd6aa303ed09ea5a48e029"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3fab5f4a2c64a8fb64fc13b3d139848817a64d467dd6ed60dcdd6b479e7febc9"}, - {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9be4f99bee42ac107870c61dfdb294d912bf81c3c6d45538aad7aecab468b6b7"}, - {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:564c96b6076a98215af52f55efa90d8419cc2ef45d99e314fddefe816bc24f91"}, - {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:75a810b7664c17f24bf2ffd7f92416c00ec84b49bb68e6a0d93e542406336b56"}, - {file = "rpds_py-0.24.0-cp312-cp312-win32.whl", hash = "sha256:f6016bd950be4dcd047b7475fdf55fb1e1f59fc7403f387be0e8123e4a576d30"}, - {file = "rpds_py-0.24.0-cp312-cp312-win_amd64.whl", hash = "sha256:998c01b8e71cf051c28f5d6f1187abbdf5cf45fc0efce5da6c06447cba997034"}, - {file = "rpds_py-0.24.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:3d2d8e4508e15fc05b31285c4b00ddf2e0eb94259c2dc896771966a163122a0c"}, - {file = "rpds_py-0.24.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0f00c16e089282ad68a3820fd0c831c35d3194b7cdc31d6e469511d9bffc535c"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951cc481c0c395c4a08639a469d53b7d4afa252529a085418b82a6b43c45c240"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9ca89938dff18828a328af41ffdf3902405a19f4131c88e22e776a8e228c5a8"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed0ef550042a8dbcd657dfb284a8ee00f0ba269d3f2286b0493b15a5694f9fe8"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b2356688e5d958c4d5cb964af865bea84db29971d3e563fb78e46e20fe1848b"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78884d155fd15d9f64f5d6124b486f3d3f7fd7cd71a78e9670a0f6f6ca06fb2d"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6a4a535013aeeef13c5532f802708cecae8d66c282babb5cd916379b72110cf7"}, - {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:84e0566f15cf4d769dade9b366b7b87c959be472c92dffb70462dd0844d7cbad"}, - {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:823e74ab6fbaa028ec89615ff6acb409e90ff45580c45920d4dfdddb069f2120"}, - {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c61a2cb0085c8783906b2f8b1f16a7e65777823c7f4d0a6aaffe26dc0d358dd9"}, - {file = "rpds_py-0.24.0-cp313-cp313-win32.whl", hash = "sha256:60d9b630c8025b9458a9d114e3af579a2c54bd32df601c4581bd054e85258143"}, - {file = "rpds_py-0.24.0-cp313-cp313-win_amd64.whl", hash = "sha256:6eea559077d29486c68218178ea946263b87f1c41ae7f996b1f30a983c476a5a"}, - {file = "rpds_py-0.24.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:d09dc82af2d3c17e7dd17120b202a79b578d79f2b5424bda209d9966efeed114"}, - {file = "rpds_py-0.24.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5fc13b44de6419d1e7a7e592a4885b323fbc2f46e1f22151e3a8ed3b8b920405"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c347a20d79cedc0a7bd51c4d4b7dbc613ca4e65a756b5c3e57ec84bd43505b47"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:20f2712bd1cc26a3cc16c5a1bfee9ed1abc33d4cdf1aabd297fe0eb724df4272"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aad911555286884be1e427ef0dc0ba3929e6821cbeca2194b13dc415a462c7fd"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0aeb3329c1721c43c58cae274d7d2ca85c1690d89485d9c63a006cb79a85771a"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a0f156e9509cee987283abd2296ec816225145a13ed0391df8f71bf1d789e2d"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa6800adc8204ce898c8a424303969b7aa6a5e4ad2789c13f8648739830323b7"}, - {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a18fc371e900a21d7392517c6f60fe859e802547309e94313cd8181ad9db004d"}, - {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9168764133fd919f8dcca2ead66de0105f4ef5659cbb4fa044f7014bed9a1797"}, - {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f6e3cec44ba05ee5cbdebe92d052f69b63ae792e7d05f1020ac5e964394080c"}, - {file = "rpds_py-0.24.0-cp313-cp313t-win32.whl", hash = "sha256:8ebc7e65ca4b111d928b669713865f021b7773350eeac4a31d3e70144297baba"}, - {file = "rpds_py-0.24.0-cp313-cp313t-win_amd64.whl", hash = "sha256:675269d407a257b8c00a6b58205b72eec8231656506c56fd429d924ca00bb350"}, - {file = "rpds_py-0.24.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a36b452abbf29f68527cf52e181fced56685731c86b52e852053e38d8b60bc8d"}, - {file = "rpds_py-0.24.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b3b397eefecec8e8e39fa65c630ef70a24b09141a6f9fc17b3c3a50bed6b50e"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdabcd3beb2a6dca7027007473d8ef1c3b053347c76f685f5f060a00327b8b65"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5db385bacd0c43f24be92b60c857cf760b7f10d8234f4bd4be67b5b20a7c0b6b"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8097b3422d020ff1c44effc40ae58e67d93e60d540a65649d2cdaf9466030791"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:493fe54318bed7d124ce272fc36adbf59d46729659b2c792e87c3b95649cdee9"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8aa362811ccdc1f8dadcc916c6d47e554169ab79559319ae9fae7d7752d0d60c"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d8f9a6e7fd5434817526815f09ea27f2746c4a51ee11bb3439065f5fc754db58"}, - {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8205ee14463248d3349131bb8099efe15cd3ce83b8ef3ace63c7e976998e7124"}, - {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:921ae54f9ecba3b6325df425cf72c074cd469dea843fb5743a26ca7fb2ccb149"}, - {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:32bab0a56eac685828e00cc2f5d1200c548f8bc11f2e44abf311d6b548ce2e45"}, - {file = "rpds_py-0.24.0-cp39-cp39-win32.whl", hash = "sha256:f5c0ed12926dec1dfe7d645333ea59cf93f4d07750986a586f511c0bc61fe103"}, - {file = "rpds_py-0.24.0-cp39-cp39-win_amd64.whl", hash = "sha256:afc6e35f344490faa8276b5f2f7cbf71f88bc2cda4328e00553bd451728c571f"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:619ca56a5468f933d940e1bf431c6f4e13bef8e688698b067ae68eb4f9b30e3a"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:4b28e5122829181de1898c2c97f81c0b3246d49f585f22743a1246420bb8d399"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e5ab32cf9eb3647450bc74eb201b27c185d3857276162c101c0f8c6374e098"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:208b3a70a98cf3710e97cabdc308a51cd4f28aa6e7bb11de3d56cd8b74bab98d"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbc4362e06f950c62cad3d4abf1191021b2ffaf0b31ac230fbf0526453eee75e"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ebea2821cdb5f9fef44933617be76185b80150632736f3d76e54829ab4a3b4d1"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a4df06c35465ef4d81799999bba810c68d29972bf1c31db61bfdb81dd9d5bb"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3aa13bdf38630da298f2e0d77aca967b200b8cc1473ea05248f6c5e9c9bdb44"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:041f00419e1da7a03c46042453598479f45be3d787eb837af382bfc169c0db33"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:d8754d872a5dfc3c5bf9c0e059e8107451364a30d9fd50f1f1a85c4fb9481164"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:896c41007931217a343eff197c34513c154267636c8056fb409eafd494c3dcdc"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:92558d37d872e808944c3c96d0423b8604879a3d1c86fdad508d7ed91ea547d5"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f9e0057a509e096e47c87f753136c9b10d7a91842d8042c2ee6866899a717c0d"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6e109a454412ab82979c5b1b3aee0604eca4bbf9a02693bb9df027af2bfa91a"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc1c892b1ec1f8cbd5da8de287577b455e388d9c328ad592eabbdcb6fc93bee5"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c39438c55983d48f4bb3487734d040e22dad200dab22c41e331cee145e7a50d"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d7e8ce990ae17dda686f7e82fd41a055c668e13ddcf058e7fb5e9da20b57793"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ea7f4174d2e4194289cb0c4e172d83e79a6404297ff95f2875cf9ac9bced8ba"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb2954155bb8f63bb19d56d80e5e5320b61d71084617ed89efedb861a684baea"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04f2b712a2206e13800a8136b07aaedc23af3facab84918e7aa89e4be0260032"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:eda5c1e2a715a4cbbca2d6d304988460942551e4e5e3b7457b50943cd741626d"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:9abc80fe8c1f87218db116016de575a7998ab1629078c90840e8d11ab423ee25"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6a727fd083009bc83eb83d6950f0c32b3c94c8b80a9b667c87f4bd1274ca30ba"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e0f3ef95795efcd3b2ec3fe0a5bcfb5dadf5e3996ea2117427e524d4fbf309c6"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2c13777ecdbbba2077670285dd1fe50828c8742f6a4119dbef6f83ea13ad10fb"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e8d804c2ccd618417e96720ad5cd076a86fa3f8cb310ea386a3e6229bae7d1"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd822f019ccccd75c832deb7aa040bb02d70a92eb15a2f16c7987b7ad4ee8d83"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0047638c3aa0dbcd0ab99ed1e549bbf0e142c9ecc173b6492868432d8989a046"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5b66d1b201cc71bc3081bc2f1fc36b0c1f268b773e03bbc39066651b9e18391"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbcbb6db5582ea33ce46a5d20a5793134b5365110d84df4e30b9d37c6fd40ad3"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63981feca3f110ed132fd217bf7768ee8ed738a55549883628ee3da75bb9cb78"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3a55fc10fdcbf1a4bd3c018eea422c52cf08700cf99c28b5cb10fe97ab77a0d3"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:c30ff468163a48535ee7e9bf21bd14c7a81147c0e58a36c1078289a8ca7af0bd"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:369d9c6d4c714e36d4a03957b4783217a3ccd1e222cdd67d464a3a479fc17796"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:24795c099453e3721fda5d8ddd45f5dfcc8e5a547ce7b8e9da06fecc3832e26f"}, - {file = "rpds_py-0.24.0.tar.gz", hash = "sha256:772cc1b2cd963e7e17e6cc55fe0371fb9c704d63e44cacec7b9b7f523b78919e"}, -] - -[[package]] -name = "ruff" -version = "0.11.3" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.11.3-py3-none-linux_armv6l.whl", hash = "sha256:cb893a5eedff45071d52565300a20cd4ac088869e156b25e0971cb98c06f5dd7"}, - {file = "ruff-0.11.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:58edd48af0e201e2f494789de80f5b2f2b46c9a2991a12ea031254865d5f6aa3"}, - {file = "ruff-0.11.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:520f6ade25cea98b2e5cb29eb0906f6a0339c6b8e28a024583b867f48295f1ed"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ca4405a93ebbc05e924358f872efceb1498c3d52a989ddf9476712a5480b16"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4341d38775a6be605ce7cd50e951b89de65cbd40acb0399f95b8e1524d604c8"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72bf5b49e4b546f4bea6c05448ab71919b09cf75363adf5e3bf5276124afd31c"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9fa791ee6c3629ba7f9ba2c8f2e76178b03f3eaefb920e426302115259819237"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2c81d3fe718f4d303aaa4ccdcd0f43e23bb2127da3353635f718394ca9b26721"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e4c38e9b6c01caaba46b6d8e732791f4c78389a9923319991d55b298017ce02"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9686f5d1a2b4c918b5a6e9876bfe7f47498a990076624d41f57d17aadd02a4dd"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4800ddc4764d42d8961ce4cb972bcf5cc2730d11cca3f11f240d9f7360460408"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e63a2808879361aa9597d88d86380d8fb934953ef91f5ff3dafe18d9cb0b1e14"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:8f8b1c4ae62638cc220df440140c21469232d8f2cb7f5059f395f7f48dcdb59e"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3ea2026be50f6b1fbedd2d1757d004e1e58bd0f414efa2a6fa01235468d4c82a"}, - {file = "ruff-0.11.3-py3-none-win32.whl", hash = "sha256:73d8b90d12674a0c6e98cd9e235f2dcad09d1a80e559a585eac994bb536917a3"}, - {file = "ruff-0.11.3-py3-none-win_amd64.whl", hash = "sha256:faf1bfb0a51fb3a82aa1112cb03658796acef978e37c7f807d3ecc50b52ecbf6"}, - {file = "ruff-0.11.3-py3-none-win_arm64.whl", hash = "sha256:67f8b68d7ab909f08af1fb601696925a89d65083ae2bb3ab286e572b5dc456aa"}, - {file = "ruff-0.11.3.tar.gz", hash = "sha256:8d5fcdb3bb359adc12b757ed832ee743993e7474b9de714bb9ea13c4a8458bf9"}, -] - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -optional = false -python-versions = "*" -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "sphinx" -version = "8.1.3" -description = "Python documentation generator" -optional = false -python-versions = ">=3.10" -files = [ - {file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"}, - {file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"}, -] - -[package.dependencies] -alabaster = ">=0.7.14" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" -imagesize = ">=1.3" -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" -sphinxcontrib-applehelp = ">=1.0.7" -sphinxcontrib-devhelp = ">=1.0.6" -sphinxcontrib-htmlhelp = ">=2.0.6" -sphinxcontrib-jsmath = ">=1.0.1" -sphinxcontrib-qthelp = ">=1.0.6" -sphinxcontrib-serializinghtml = ">=1.1.9" -tomli = {version = ">=2", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] - -[[package]] -name = "sphinx-rtd-theme" -version = "3.0.2" -description = "Read the Docs theme for Sphinx" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, - {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, -] - -[package.dependencies] -docutils = ">0.18,<0.22" -sphinx = ">=6,<9" -sphinxcontrib-jquery = ">=4,<5" - -[package.extras] -dev = ["bump2version", "transifex-client", "twine", "wheel"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, - {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, - {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, - {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jquery" -version = "4.1" -description = "Extension to include jQuery on newer Sphinx releases" -optional = false -python-versions = ">=2.7" -files = [ - {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, - {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, -] - -[package.dependencies] -Sphinx = ">=1.8" - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -optional = false -python-versions = ">=3.5" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-napoleon" -version = "0.7" -description = "Sphinx \"napoleon\" extension." -optional = false -python-versions = "*" -files = [ - {file = "sphinxcontrib-napoleon-0.7.tar.gz", hash = "sha256:407382beed396e9f2d7f3043fad6afda95719204a1e1a231ac865f40abcbfcf8"}, - {file = "sphinxcontrib_napoleon-0.7-py2.py3-none-any.whl", hash = "sha256:711e41a3974bdf110a484aec4c1a556799eb0b3f3b897521a018ad7e2db13fef"}, -] - -[package.dependencies] -pockets = ">=0.3" -six = ">=1.5.2" - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, - {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, - {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "tinydb" -version = "4.8.2" -description = "TinyDB is a tiny, document oriented database optimized for your happiness :)" -optional = false -python-versions = "<4.0,>=3.8" -files = [ - {file = "tinydb-4.8.2-py3-none-any.whl", hash = "sha256:f97030ee5cbc91eeadd1d7af07ab0e48ceb04aa63d4a983adbaca4cba16e86c3"}, - {file = "tinydb-4.8.2.tar.gz", hash = "sha256:f7dfc39b8d7fda7a1ca62a8dbb449ffd340a117c1206b68c50b1a481fb95181d"}, -] - -[[package]] -name = "tomli" -version = "2.2.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, -] - -[[package]] -name = "tornado" -version = "6.4.2" -description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -optional = false -python-versions = ">=3.8" -files = [ - {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, - {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, - {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, - {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, - {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, - {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, - {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, - {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, - {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, - {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, - {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, -] - -[[package]] -name = "trame" -version = "3.8.1" -description = "Trame, a framework to build applications in plain Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame-3.8.1-py3-none-any.whl", hash = "sha256:e473462878f63185f49989eba78762170473b8121a2a7d7782586eae5740e4cd"}, - {file = "trame-3.8.1.tar.gz", hash = "sha256:7c2b2d5b5aa9753d5a3483238396bac3addad66faf92ee673b025712102ac28a"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" -trame-server = ">=3.2.3,<4" -wslink = ">=2.1.3" - -[package.extras] -app = ["pywebview"] -dev = ["pre-commit", "pytest", "ruff"] -jupyter = ["jupyterlab"] - -[[package]] -name = "trame-client" -version = "3.6.1" -description = "Internal client of trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_client-3.6.1-py3-none-any.whl", hash = "sha256:30ee404d2bbcc2fdd1e1831ad10bb48e87575ce9550e731fbbd860185cba5904"}, - {file = "trame_client-3.6.1.tar.gz", hash = "sha256:25b5a08c43c852eaca67c651f4b59c1de7a1b7b34801b7cd460e3ac7aa65d215"}, -] - -[package.extras] -dev = ["pre-commit", "ruff"] -test = ["Pillow", "pixelmatch", "pytest", "pytest-xprocess", "seleniumbase"] - -[[package]] -name = "trame-matplotlib" -version = "2.0.3" -description = "Markdown widget for trame" -optional = false -python-versions = "*" -files = [ - {file = "trame-matplotlib-2.0.3.tar.gz", hash = "sha256:4cf0beb092fc2b11988480346a0cae3ce5fe0267429c7876727a8389bded5cd6"}, - {file = "trame_matplotlib-2.0.3-py3-none-any.whl", hash = "sha256:e221605f0ad8c5c3677c09f49f6881bedd0eab16a2b24824a8e0fd013267a698"}, -] - -[package.dependencies] -mpld3 = "*" -trame-client = "*" - -[[package]] -name = "trame-plotly" -version = "3.1.0" -description = "Plotly figure widget for trame" -optional = false -python-versions = "*" -files = [ - {file = "trame-plotly-3.1.0.tar.gz", hash = "sha256:32304b12366b6adab2272d020a257b9b44a0adccc6b6d652826405c730a01906"}, - {file = "trame_plotly-3.1.0-py3-none-any.whl", hash = "sha256:b13f9352d669819f505222b2b87418e1921da323c4343faedd9c2bf82d50e727"}, -] - -[package.dependencies] -plotly = ">=6.0.0" -trame-client = "*" - -[[package]] -name = "trame-server" -version = "3.4.0" -description = "Internal server side implementation of trame" -optional = false -python-versions = ">=3.7" -files = [ - {file = "trame_server-3.4.0-py3-none-any.whl", hash = "sha256:642a8c9abe0344305f46c8e1fabde5fc8b3fc83ee57bcdcc4e05b85b346a538b"}, - {file = "trame_server-3.4.0.tar.gz", hash = "sha256:3d1edd2287949c4a51d3162f21137c061a4921858303ad67d1cf1d4148e36f3c"}, -] - -[package.dependencies] -more-itertools = "*" -wslink = ">=2.2.2,<3" - -[package.extras] -dev = ["nox", "pre-commit", "pytest", "pytest-asyncio", "ruff"] - -[[package]] -name = "trame-vega" -version = "2.1.1" -description = "Vega widget for trame" -optional = false -python-versions = "*" -files = [ - {file = "trame-vega-2.1.1.tar.gz", hash = "sha256:a3d82f7535a66a782262647001987dba3ad0ddc64ce21225a4cfccd351fed8fa"}, - {file = "trame_vega-2.1.1-py3-none-any.whl", hash = "sha256:044ea338f74fe83e7a5eca15fd1723b3b5f2847d5ca0ed2f0325e30d7676b6c9"}, -] - -[package.dependencies] -trame-client = "*" - -[[package]] -name = "trame-vuetify" -version = "2.9.0" -description = "Vuetify widgets for trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_vuetify-2.9.0-py3-none-any.whl", hash = "sha256:3db6a6b3384c313befb9d8f0eaf39a9e6cd1d2b882babd1c85d8779ff0f4f2bc"}, - {file = "trame_vuetify-2.9.0.tar.gz", hash = "sha256:86cfa1387b97e9f18d15ce98ee238b6e6c0e0f921935aab6737ae0bed74ee70a"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" - -[package.extras] -dev = ["pre-commit", "pytest", "ruff"] - -[[package]] -name = "tuspy" -version = "1.1.0" -description = "A Python client for the tus resumable upload protocol -> http://tus.io" -optional = false -python-versions = ">=3.5.3" -files = [ - {file = "tuspy-1.1.0-py3-none-any.whl", hash = "sha256:7fc5ac8fb25de37c96c90213f83a1ffdede7f48a471cb5a15a2f57846828a79a"}, - {file = "tuspy-1.1.0.tar.gz", hash = "sha256:156734eac5c61a046cfecd70f14119f05be92cce198eb5a1a99a664482bedb89"}, -] - -[package.dependencies] -aiohttp = ">=3.6.2" -requests = ">=2.18.4" -tinydb = ">=3.5.0" - -[package.extras] -dev = ["Sphinx (==1.7.1)", "sphinx-autobuild (==2021.3.14)", "tox (>=2.3.1)"] -test = ["aioresponses (>=0.6.2)", "coverage (>=4.2)", "parametrize (>=0.1.1)", "pytest (>=3.0.3)", "pytest-cov (>=2.3.1,<2.6)", "responses (>=0.5.1)"] - -[[package]] -name = "typing-extensions" -version = "4.13.1" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.13.1-py3-none-any.whl", hash = "sha256:4b6cf02909eb5495cfbc3f6e8fd49217e6cc7944e145cdda8caa3734777f9e69"}, - {file = "typing_extensions-4.13.1.tar.gz", hash = "sha256:98795af00fb9640edec5b8e31fc647597b4691f099ad75f469a2616be1a76dff"}, -] - -[[package]] -name = "typing-inspection" -version = "0.4.0" -description = "Runtime typing introspection tools" -optional = false -python-versions = ">=3.9" -files = [ - {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, - {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, -] - -[package.dependencies] -typing-extensions = ">=4.12.0" - -[[package]] -name = "urllib3" -version = "2.3.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.9" -files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.30.0" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.8" -files = [ - {file = "virtualenv-20.30.0-py3-none-any.whl", hash = "sha256:e34302959180fca3af42d1800df014b35019490b119eba981af27f2fa486e5d6"}, - {file = "virtualenv-20.30.0.tar.gz", hash = "sha256:800863162bcaa5450a6e4d721049730e7f2dae07720e0902b0e4040bd6f9ada8"}, -] - -[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 = "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 = "wslink" -version = "2.3.3" -description = "Python/JavaScript library for communicating over WebSocket" -optional = false -python-versions = "*" -files = [ - {file = "wslink-2.3.3-py3-none-any.whl", hash = "sha256:594e2193821caa75fbf580c0c57ae7cd99541dd8cc95bcb55fe253d9a2b42a16"}, - {file = "wslink-2.3.3.tar.gz", hash = "sha256:2eace91ee5a739a965c316dcca4c407009fbb68cbc13be3f11e6485edbd8147f"}, -] - -[package.dependencies] -aiohttp = "<4" -msgpack = ">=1,<2" - -[package.extras] -ssl = ["cryptography"] - -[[package]] -name = "yarl" -version = "1.18.3" -description = "Yet another URL library" -optional = false -python-versions = ">=3.9" -files = [ - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, - {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, - {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, - {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, - {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, - {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, - {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, - {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, - {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, - {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, - {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, - {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, - {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -propcache = ">=0.2.0" - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "21cb4efdfeedffeac02c47e0e53c8fa5e296badf0f246a4f72738eb878ebcc21" diff --git a/code/episode_5/pyproject.toml b/code/episode_5/pyproject.toml index 1237ea40..42637af1 100755 --- a/code/episode_5/pyproject.toml +++ b/code/episode_5/pyproject.toml @@ -1,4 +1,4 @@ -[tool.poetry] +[project] name = "nova-tutorial" version = "0.1.0" description = "Nova Tutorial Project" @@ -6,21 +6,52 @@ authors = [] readme = "README.md" license = "MIT" keywords = ["NDIP", "NOVA", "python"] +requires-python = ">=3.10,<3.14" +dependencies = ["nova-galaxy>=0.11.6,<0.12"] -packages = [ - { include = "nova_tutorial", from = "src" } -] +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["linux-64", "osx-64"] + +[tool.pixi.environments] +default = {features = ["dev"], solve-group = "default"} +production = {features = [], solve-group = "default"} +[tool.pixi.dependencies] -[tool.poetry.dependencies] -python = "^3.10" +[tool.pixi.pypi-dependencies] +nova-tutorial = { path = ".", editable = true } +hatch = "*" +gitpython = ">=3.1.40,<4" +python-gitlab = ">=5.6.0,<6" nova-trame = "*" -nova-galaxy = "^0.7.0" +trame-datagrid = ">=0.2.2" + + +[tool.pixi.feature.dev.pypi-dependencies] +mypy = ">=1.10.0" +pre-commit = ">=2.20.0" +coverage = ">=6.4.3" +pytest = "*" +ruff = ">=0.6.2" +copier=">=9.3" +sphinx = "*" +sphinx-rtd-theme = "*" +sphinxcontrib-napoleon ="*" +tomli = "*" + +[tool.pixi.tasks] +app = "python -m src.nova_tutorial.app" +init-repo = "python -m scripts.git_utils" +deploy-production = "python -m scripts.xml_utils" +deploy-prototype = "python -m scripts.xml_utils_prototype" [build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +requires = ["hatchling"] +build-backend = "hatchling.build" +[tool.hatch.build.targets.wheel] +packages = ["src/nova_tutorial"] [tool.pytest.ini_options] testpaths = ["tests"] @@ -28,6 +59,7 @@ python_files = ["test*.py"] norecursedirs = [".git", "tmp*", "_tmp*", "__pycache__"] [tool.ruff] +extend-exclude = [".pixi"] line-length = 120 [tool.ruff.lint] @@ -52,8 +84,6 @@ ignore = [ [tool.ruff.lint.extend-per-file-ignores] '__init__.py' = ['D104'] # Missing docstring in public package - - [tool.ruff.lint.pydocstyle] convention = "numpy" @@ -72,20 +102,4 @@ omit = [ ] [tool.coverage.run] -command_line = "-m pytest --junit-xml=reports/junit.xml" -data_file = "reports/.coverage" - -[tool.poetry.dev-dependencies] -mypy = ">=1.10.0" -pre-commit = ">=2.20.0" -coverage = ">=6.4.3" -pytest = "*" -ruff = ">=0.6.2" -copier=">=9.3" -sphinx = "*" -sphinx-rtd-theme = "*" -sphinxcontrib-napoleon ="*" -tomli = "*" - -[tool.poetry.scripts] -app = "nova_tutorial.app:main" +command_line = "-m pytest --jun \ No newline at end of file diff --git a/code/episode_5/src/nova_tutorial/__init__.py b/code/episode_5/src/nova_tutorial/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_5/src/nova_tutorial/app/__init__.py b/code/episode_5/src/nova_tutorial/app/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_5/src/nova_tutorial/app/__main__.py b/code/episode_5/src/nova_tutorial/app/__main__.py old mode 100755 new mode 100644 diff --git a/code/episode_5/src/nova_tutorial/app/main.py b/code/episode_5/src/nova_tutorial/app/main.py old mode 100755 new mode 100644 index add49c11..68cf8a37 --- a/code/episode_5/src/nova_tutorial/app/main.py +++ b/code/episode_5/src/nova_tutorial/app/main.py @@ -1,12 +1,11 @@ """Main Application.""" import sys -from .models.fractal import Fractal def main() -> None: kwargs = {} - from .views.main import MainApp + from .views.main_view import MainApp app = MainApp() for arg in sys.argv[2:]: diff --git a/code/episode_5/src/nova_tutorial/app/models/__init__.py b/code/episode_5/src/nova_tutorial/app/models/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_5/src/nova_tutorial/app/models/fractal.py b/code/episode_5/src/nova_tutorial/app/models/fractal.py old mode 100755 new mode 100644 index 0cf2e0cc..91f7af4e --- a/code/episode_5/src/nova_tutorial/app/models/fractal.py +++ b/code/episode_5/src/nova_tutorial/app/models/fractal.py @@ -1,6 +1,7 @@ import os from base64 import b64encode from enum import Enum +from typing import Callable, Literal from pydantic import BaseModel, Field from nova.galaxy import Connection, Parameters, Tool @@ -13,25 +14,43 @@ class FractalTypeOptions(str, Enum): markus = "markus" -class Fractal(BaseModel): - fractal_type: FractalTypeOptions = Field(default=FractalTypeOptions.mandelbrot) - galaxy_url: str = Field(default_factory=lambda: os.getenv("GALAXY_URL"), description="NDIP Galaxy URL") - galaxy_key: str = Field(default_factory=lambda: os.getenv("GALAXY_API_KEY"), description="NDIP Galaxy API Key") +class FractalData(BaseModel): + fractal_type: FractalTypeOptions = Field( + default=FractalTypeOptions.mandelbrot, title="Fractal Type" + ) + galaxy_url: str = Field( + default=os.getenv("GALAXY_URL", ""), description="NDIP Galaxy URL" + ) + galaxy_key: str = Field( + default=os.getenv("GALAXY_API_KEY", ""), description="NDIP Galaxy API Key" + ) image_data: str = Field(default="", description="Base64 encoded PNG") - def run_fractal_tool(self): - conn = Connection(galaxy_url=self.galaxy_url, galaxy_key=self.galaxy_key) + +class Fractal: + def __init__(self): + self.data = FractalData(fractal_type="mandelbrot") + + def set_fractal_type(self, fractal_type: str): + self.data.fractal_type = fractal_type + + def run_fractal_tool(self, progress: Callable): + conn = Connection( + galaxy_url=self.data.galaxy_url, galaxy_key=self.data.galaxy_key + ) tool = Tool(id="neutrons_fractal") params = Parameters() - params.add_input(name="option", value=self.fractal_type) + params.add_input(name="option", value=self.data.fractal_type) with conn.connect() as galaxy_connection: data_store = galaxy_connection.create_data_store(name="fractal_store") data_store.persist() print("Executing fractal tool. This might take a few minutes.") - output = tool.run(data_store, params) - output.get_dataset("output").download("tmp.png") + output = tool.run(data_store, params, wait=True) + output.get_dataset("output").download("image.png") - with open("tmp.png", "rb") as image_file: - self.image_data = f"data:image/png;base64,{b64encode(image_file.read()).decode()}" + with open("image.png", "rb") as image_file: + self.data.image_data = ( + f"data:image/png;base64,{b64encode(image_file.read()).decode()}" + ) print("Fractal tool finished successfully.") diff --git a/code/episode_5/src/nova_tutorial/app/models/main_model.py b/code/episode_5/src/nova_tutorial/app/models/main_model.py old mode 100755 new mode 100644 index 1a08559c..c05b3dbc --- a/code/episode_5/src/nova_tutorial/app/models/main_model.py +++ b/code/episode_5/src/nova_tutorial/app/models/main_model.py @@ -1,10 +1,11 @@ """Module for the main model.""" from pydantic import BaseModel, Field + from .fractal import Fractal -class MainModel(BaseModel): +class Config(BaseModel): """ A model class. @@ -21,6 +22,11 @@ class MainModel(BaseModel): description="Please provide the name of the user", examples=["user"], ) - password: str = Field(default="test_password", title="User Password") file: str = Field(default="", title="Select a File") - fractal: Fractal = Field(default_factory=Fractal) + password: str = Field(default="test_password", title="User Password") + + +class MainModel: + def __init__(self): + self.config = Config() + self.fractal = Fractal() diff --git a/code/episode_5/src/nova_tutorial/app/mvvm_factory.py b/code/episode_5/src/nova_tutorial/app/mvvm_factory.py old mode 100755 new mode 100644 index 3b56e2b6..c11e5916 --- a/code/episode_5/src/nova_tutorial/app/mvvm_factory.py +++ b/code/episode_5/src/nova_tutorial/app/mvvm_factory.py @@ -3,13 +3,12 @@ from nova.mvvm.interface import BindingInterface from .models.main_model import MainModel -from .view_models.main import MainViewModel +from .view_models.main_view_model import MainViewModel def create_viewmodels(binding: BindingInterface) -> dict: model = MainModel() vm: dict = {} vm["main"] = MainViewModel(model, binding) - print(vm["main"].model.fractal.galaxy_key) return vm diff --git a/code/episode_5/src/nova_tutorial/app/view_models/__init__.py b/code/episode_5/src/nova_tutorial/app/view_models/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_5/src/nova_tutorial/app/view_models/main.py b/code/episode_5/src/nova_tutorial/app/view_models/main.py deleted file mode 100755 index d3941e81..00000000 --- a/code/episode_5/src/nova_tutorial/app/view_models/main.py +++ /dev/null @@ -1,56 +0,0 @@ -"""Module for the main ViewModel.""" - -from asyncio import create_task, sleep -from threading import Thread -from typing import Any, Dict - -from nova.mvvm.interface import BindingInterface - -from ..models.main_model import MainModel - - -class MainViewModel: - """Viewmodel class, used to create data<->view binding and react on changes from GUI.""" - - def __init__(self, model: MainModel, binding: BindingInterface): - self.model = model - self.running = False - - # here we create a bind that connects ViewModel with View. It returns a communicator object, - # that allows to update View from ViewModel (by calling update_view). - # self.model will be updated automatically on changes of connected fields in View, - # but one also can provide a callback function if they want to react to those events - # and/or process errors. - self.config_bind = binding.new_bind(self.model, callback_after_update=self.change_callback) - self.running_bind = binding.new_bind() - - def change_callback(self, results: Dict[str, Any]) -> None: - if results["error"]: - print(f"error in fields {results['errored']}, model not changed") - else: - print(f"model fields updated: {results['updated']}") - - def update_view(self) -> None: - self.config_bind.update_in_view(self.model) - self.running_bind.update_in_view(self.running) - - def run_fractal(self) -> None: - self.running = True - self.update_view() - - # update_view won't take effect until this method returns a value, so we must offload this long-running task to - # a background thread for our conditional rendering to work. - fractal_tool_thread = Thread(target=self.run_fractal_in_background, daemon=True) - fractal_tool_thread.start() - - # We also need to know when the tool is done running so that we can know when to update the view. - create_task(self.monitor_fractal()) - - def run_fractal_in_background(self) -> None: - self.model.fractal.run_fractal_tool() - self.running = False - - async def monitor_fractal(self) -> None: - while self.running: - await sleep(0.1) - self.update_view() diff --git a/code/episode_5/src/nova_tutorial/app/views/__init__.py b/code/episode_5/src/nova_tutorial/app/views/__init__.py old mode 100755 new mode 100644 diff --git a/code/episode_5/src/nova_tutorial/app/views/fractal_tab.py b/code/episode_5/src/nova_tutorial/app/views/fractal_tab.py old mode 100755 new mode 100644 index fee0a6e4..25869165 --- a/code/episode_5/src/nova_tutorial/app/views/fractal_tab.py +++ b/code/episode_5/src/nova_tutorial/app/views/fractal_tab.py @@ -1,16 +1,19 @@ from trame.widgets import vuetify3 as vuetify from nova.trame.view.components import InputField -from nova_tutorial.app.view_models.main import MainViewModel +from nova.trame.view.layouts import VBoxLayout +from nova_tutorial.app.view_models.main_view_model import MainViewModel class FractalTab: def __init__(self, view_model: MainViewModel) -> None: self.view_model = view_model - self.view_model.running_bind.connect("running") + self.view_model.fractal_bind.connect("fractal") self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.fractal.fractal_type", classes="mb-2", type="select") - vuetify.VProgressCircular(v_if="running", indeterminate=True) - vuetify.VImg(v_else=True, src=("config.fractal.image_data",), height="400", width="400") + with VBoxLayout(): + InputField(v_model="fractal.fractal_type", type="select") + with VBoxLayout(halign="center", valign="center", stretch=True): + vuetify.VProgressCircular(v_if="view_state.running", indeterminate=True) + vuetify.VImg(v_else=True, src=("fractal.image_data",), classes="h-100 w-100") diff --git a/code/episode_5/src/nova_tutorial/app/views/main.py b/code/episode_5/src/nova_tutorial/app/views/main.py deleted file mode 100755 index 7f1bd3a0..00000000 --- a/code/episode_5/src/nova_tutorial/app/views/main.py +++ /dev/null @@ -1,49 +0,0 @@ -"""Main file.""" - -import logging - -from nova.mvvm.trame_binding import TrameBinding -from nova.trame import ThemedApp -from nova.trame.view import layouts -from trame.app import get_server -from trame.widgets import vuetify3 as vuetify - -from ..mvvm_factory import create_viewmodels -from ..view_models.main import MainViewModel -from .tab_content_panel import TabContentPanel -from .tabs_panel import TabsPanel - -logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - - -class MainApp(ThemedApp): - """Main application view class. Calls rendering of nested UI elements.""" - - def __init__(self) -> None: - super().__init__() - self.server = get_server(None, client_type="vue3") - binding = TrameBinding(self.server.state) - self.view_models = create_viewmodels(binding) - self.view_model: MainViewModel = self.view_models["main"] - self.create_ui() - - def create_ui(self) -> None: - self.state.trame__title = "Fractal Tool GUI" - - with super().create_ui() as layout: - layout.toolbar_title.set_text("Fractal Tool GUI") - with layout.pre_content: - TabsPanel(self.view_models["main"]) - with layout.content: - TabContentPanel( - self.server, - self.view_models["main"], - ) - with layout.post_content: - with layouts.HBoxLayout(classes="my-2", halign="center"): - vuetify.VBtn( - "Run Fractal", - click=self.view_model.run_fractal, # calls the run_fractal_tool method - ) - return layout diff --git a/code/episode_5/src/nova_tutorial/app/views/sample_tab_1.py b/code/episode_5/src/nova_tutorial/app/views/sample_tab_1.py old mode 100755 new mode 100644 index 5f5fd62c..f9f586a9 --- a/code/episode_5/src/nova_tutorial/app/views/sample_tab_1.py +++ b/code/episode_5/src/nova_tutorial/app/views/sample_tab_1.py @@ -1,6 +1,7 @@ """Module for the Sample Tab 1.""" from nova.trame.view.components import InputField, RemoteFileInput +from nova.trame.view.layouts import VBoxLayout class SampleTab1: @@ -10,5 +11,6 @@ def __init__(self) -> None: self.create_ui() def create_ui(self) -> None: - RemoteFileInput(v_model="config.file", base_paths=["/HFIR", "/SNS"]) - InputField(v_model="config.username") + with VBoxLayout(): + RemoteFileInput(v_model="config.file", base_paths=["/HFIR", "/SNS"]) + InputField(v_model="config.username") diff --git a/code/episode_5/src/nova_tutorial/app/views/sample_tab_2.py b/code/episode_5/src/nova_tutorial/app/views/sample_tab_2.py old mode 100755 new mode 100644 index 46765f0a..0e787b40 --- a/code/episode_5/src/nova_tutorial/app/views/sample_tab_2.py +++ b/code/episode_5/src/nova_tutorial/app/views/sample_tab_2.py @@ -1,6 +1,7 @@ """Module for the Sample Tab 2.""" from nova.trame.view.components import InputField +from nova.trame.view.layouts import VBoxLayout class SampleTab2: @@ -10,4 +11,5 @@ def __init__(self) -> None: self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.password") + with VBoxLayout(): + InputField(v_model="config.password") diff --git a/code/episode_5/src/nova_tutorial/app/views/tab_content_panel.py b/code/episode_5/src/nova_tutorial/app/views/tab_content_panel.py old mode 100755 new mode 100644 index ab67bd63..dff310a9 --- a/code/episode_5/src/nova_tutorial/app/views/tab_content_panel.py +++ b/code/episode_5/src/nova_tutorial/app/views/tab_content_panel.py @@ -1,12 +1,13 @@ """Module for the Tab Content panel.""" -from trame.widgets import vuetify3 as vuetify +from nova.trame.view.layouts import VBoxLayout from trame_server import Server -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel +from .fractal_tab import FractalTab from .sample_tab_1 import SampleTab1 from .sample_tab_2 import SampleTab2 -from .fractal_tab import FractalTab # Import the FractalTab + class TabContentPanel: """View class to render content for a selected tab.""" @@ -18,14 +19,9 @@ def __init__(self, server: Server, view_model: MainViewModel) -> None: self.create_ui() def create_ui(self) -> None: - with vuetify.VForm(ref="form") as self.f: - with vuetify.VContainer(classes="pa-0", fluid=True): - with vuetify.VCard(): - with vuetify.VWindow(v_model="active_tab"): - with vuetify.VWindowItem(value=1): - FractalTab(self.view_model) # Add FractalTab - with vuetify.VWindowItem(value=2): - SampleTab1() - with vuetify.VWindowItem(value=3): - SampleTab2() - + with VBoxLayout(v_show="view_state.active_tab == 0", stretch=True): + FractalTab(self.view_model) # Add FractalTab + with VBoxLayout(v_show="view_state.active_tab == 1", stretch=True): + SampleTab1() + with VBoxLayout(v_show="view_state.active_tab == 2", stretch=True): + SampleTab2() diff --git a/code/episode_5/src/nova_tutorial/app/views/tabs_panel.py b/code/episode_5/src/nova_tutorial/app/views/tabs_panel.py old mode 100755 new mode 100644 index ac1f6ab3..ce32269a --- a/code/episode_5/src/nova_tutorial/app/views/tabs_panel.py +++ b/code/episode_5/src/nova_tutorial/app/views/tabs_panel.py @@ -1,8 +1,9 @@ """Module for the Tab panel.""" +from trame.widgets import client from trame.widgets import vuetify3 as vuetify -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel class TabsPanel: @@ -11,11 +12,12 @@ class TabsPanel: def __init__(self, view_model: MainViewModel): self.view_model = view_model self.view_model.config_bind.connect("config") - #self.view_model.fractal_bind.connect("fractal") + self.view_model.view_state_bind.connect("view_state") self.create_ui() def create_ui(self) -> None: - with vuetify.VTabs(v_model=("active_tab", 0), classes="pl-5"): - vuetify.VTab("Fractal", value=1) # Add Fractal Tab - vuetify.VTab("Sample Tab 1", value=2) - vuetify.VTab("Sample Tab 2", value=3) + with client.DeepReactive("view_state"): + with vuetify.VTabs(v_model="view_state.active_tab", classes="pl-5"): + vuetify.VTab("Fractal", value=0) # Add Fractal Tab + vuetify.VTab("Sample Tab 1", value=1) + vuetify.VTab("Sample Tab 2", value=2) diff --git a/code/episode_6/advanced_pydantic/.copier-answers.yml b/code/episode_6/advanced_pydantic/.copier-answers.yml deleted file mode 100644 index 0e125b82..00000000 --- a/code/episode_6/advanced_pydantic/.copier-answers.yml +++ /dev/null @@ -1,9 +0,0 @@ -# Please do not edit or delete this file. It is needed to be able to update project from template. -_commit: '0.13' -_src_path: https://code.ornl.gov/ndip/project-templates/nova-application-template.git -gui: false -project_name: Advanced Pydantic -publish_docs: false -publish_to_pypi: false -python_package: advanced-pydantic -use_mantid: false diff --git a/code/episode_6/advanced_pydantic/.dockerignore b/code/episode_6/advanced_pydantic/.dockerignore deleted file mode 100644 index 75e9bfa5..00000000 --- a/code/episode_6/advanced_pydantic/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -dockerfiles/Dockerfile diff --git a/code/episode_6/advanced_pydantic/.gitignore b/code/episode_6/advanced_pydantic/.gitignore deleted file mode 100644 index bb338b20..00000000 --- a/code/episode_6/advanced_pydantic/.gitignore +++ /dev/null @@ -1,166 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# We ingore the whole .idea folder -# For more fine tuning, JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. -.idea - - -.envrc - - -junit.xml diff --git a/code/episode_6/advanced_pydantic/.gitlab-ci.yml b/code/episode_6/advanced_pydantic/.gitlab-ci.yml deleted file mode 100644 index 67024b69..00000000 --- a/code/episode_6/advanced_pydantic/.gitlab-ci.yml +++ /dev/null @@ -1,125 +0,0 @@ -workflow: - rules: - - if: $CI_COMMIT_TAG - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - when: always - -stages: - - lint - - test - - tag - - publish - -variables: - GIT_STRATEGY: clone - IMAGE_NAME: ${NDIP_DOCKER_REPOSITORY}/${CI_PROJECT_PATH} - -before_script: - - curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - - source rse-bash-modules.sh - - func_rse_docker_cleanup - - docker login -u $NDIP_DOCKER_USER -p $NDIP_DOCKER_PASSWORD $NDIP_DOCKER_REPOSITORY - - export VERSION=$(cat pyproject.toml | grep "version =" | head -n 1 | awk '{ print $3 }' | tr -d '"') -after_script: - - curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - - source rse-bash-modules.sh - - func_rse_docker_cleanup - -lint-check: - stage: lint - script: - - docker build -f dockerfiles/Dockerfile --target source -t image . - - docker run -u `id -u`:`id -g` image poetry run ruff check - - docker run -u `id -u`:`id -g` image poetry run ruff format --check - - docker run -u `id -u`:`id -g` image poetry run mypy . - - docker tag image ${IMAGE_NAME}:src-${CI_COMMIT_SHA} - - docker push ${IMAGE_NAME}:src-${CI_COMMIT_SHA} - tags: - - rse-multi-builder - -unit-tests: - stage: test - script: - - mkdir reports - - docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${CI_COMMIT_SHA} poetry run coverage run - - docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${CI_COMMIT_SHA} poetry run coverage report - - docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${CI_COMMIT_SHA} poetry run coverage xml -o reports/coverage.xml - - sed -i "s:/src:${CI_BUILDS_DIR}/${CI_PROJECT_PATH}:" reports/coverage.xml - - coverage: '/TOTAL.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' - artifacts: - when: always - reports: - junit: reports/junit.xml - coverage_report: - coverage_format: cobertura - path: reports/coverage.xml - tags: - - rse-multi-builder - -docs-test: - stage: test - script: - - docker run -u `id -u`:`id -g` ${IMAGE_NAME}:src-${CI_COMMIT_SHA} bash build_docs.sh - tags: - - rse-multi-builder - - -tag-release: - stage: tag - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - when: always - - when: never - script: - - git config user.email "$GITLAB_USER_EMAIL" - - git config user.name "$GITLAB_USER_NAME" - - > - if [ -z $(git ls-remote --tags origin "$VERSION") ]; then - git remote add gitlab https://oauth2:${NDIP_GROUP_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git - git tag ${VERSION} - git push gitlab --tags - fi - tags: - - rse-multi-builder - - -build-image: - stage: publish - variables: - OVERWRITE_IMAGE: "false" - when: manual - script: - - IMAGE_TAG=${VERSION} - - docker build -f dockerfiles/Dockerfile -t image --target run --build-arg SOURCE_IMAGE=${IMAGE_NAME}:src-${CI_COMMIT_SHA} . - - docker tag image ${IMAGE_NAME}:bin-${CI_COMMIT_SHA} - - docker push ${IMAGE_NAME}:bin-${CI_COMMIT_SHA} - - docker tag image ${IMAGE_NAME}:latest - - docker push ${IMAGE_NAME}:latest - - > - if ! docker pull ${IMAGE_NAME}:${IMAGE_TAG} || [ "$OVERWRITE_IMAGE" == "true" ]; then - docker tag image ${IMAGE_NAME}:${IMAGE_TAG} - docker push ${IMAGE_NAME}:${IMAGE_TAG} - else - echo tag ${IMAGE_TAG} already exists in ${NDIP_DOCKER_REPOSITORY}. Use OVERWRITE_IMAGE="true", delete image in the repository or change the tag - exit 1 - fi - tags: - - rse-multi-builder - -package-build: - stage: publish - script: - - > - docker run - -u `id -u`:`id -g` - ${IMAGE_NAME}:src-${CI_COMMIT_SHA} - bash -c " - poetry config repositories.gitlab_repo ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi && - poetry publish -u gitlab-ci-token -p ${CI_JOB_TOKEN} -r gitlab_repo - " - when: manual - tags: - - rse-multi-builder diff --git a/code/episode_6/advanced_pydantic/.pre-commit-config.yaml b/code/episode_6/advanced_pydantic/.pre-commit-config.yaml deleted file mode 100644 index 302be768..00000000 --- a/code/episode_6/advanced_pydantic/.pre-commit-config.yaml +++ /dev/null @@ -1,27 +0,0 @@ -repos: -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 - hooks: - - id: check-added-large-files - args: [--maxkb=8192] - - id: check-merge-conflict - - id: check-yaml - args: [--allow-multiple-documents] - - id: end-of-file-fixer - - id: check-toml - - id: trailing-whitespace -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.2 - hooks: - - id: ruff - args: [--fix, --exit-non-zero-on-fix] - - id: ruff-format -- repo: local - hooks: - - id: mypy - name: mypy - entry: poetry run mypy . - language: system - types: [python] - verbose: true - pass_filenames: false diff --git a/code/episode_6/advanced_pydantic/.vscode/extensions.json b/code/episode_6/advanced_pydantic/.vscode/extensions.json deleted file mode 100644 index 18a8fa1e..00000000 --- a/code/episode_6/advanced_pydantic/.vscode/extensions.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "recommendations": [ - "charliermarsh.ruff", - "ms-python.mypy-type-checker" - ] -} diff --git a/code/episode_6/advanced_pydantic/.vscode/launch.json b/code/episode_6/advanced_pydantic/.vscode/launch.json deleted file mode 100644 index 0a1ddce4..00000000 --- a/code/episode_6/advanced_pydantic/.vscode/launch.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "configurations": [{ - "name": "Launch", - "type": "debugpy", - "request": "launch", - "cwd": "${workspaceFolder}", - "module": "advanced_pydantic", - "args": [] - }] -} diff --git a/code/episode_6/advanced_pydantic/.vscode/settings.json b/code/episode_6/advanced_pydantic/.vscode/settings.json deleted file mode 100644 index 8700fea6..00000000 --- a/code/episode_6/advanced_pydantic/.vscode/settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "[python]": { - "editor.defaultFormatter": "charliermarsh.ruff" - }, - "python.testing.pytestArgs": [ - "tests" - ], - "python.testing.unittestEnabled": false, - "python.testing.pytestEnabled": true -} diff --git a/code/episode_6/advanced_pydantic/CODE_OF_CONDUCT.md b/code/episode_6/advanced_pydantic/CODE_OF_CONDUCT.md deleted file mode 100644 index 4db92857..00000000 --- a/code/episode_6/advanced_pydantic/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,128 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socioeconomic status, -nationality, personal appearance, race, religion, or sexual identity -and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the - overall community - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or - advances of any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email - address, without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -watsongr@ornl.gov. -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series -of actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or -permanent ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within -the community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.0, available at -https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. - -Community Impact Guidelines were inspired by [Mozilla's code of conduct -enforcement ladder](https://github.com/mozilla/diversity). - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. diff --git a/code/episode_6/advanced_pydantic/CONTRIBUTING.md b/code/episode_6/advanced_pydantic/CONTRIBUTING.md deleted file mode 100644 index f1b779ce..00000000 --- a/code/episode_6/advanced_pydantic/CONTRIBUTING.md +++ /dev/null @@ -1,41 +0,0 @@ -# Contributing to Advanced Pydantic - -Thank you for considering contributing to Advanced Pydantic! -This document provides guidelines to help you contribute effectively and ensure a smooth process for everyone involved. - -## Getting Started - -To start contributing to this project, you will need an ORNL's GitLab account. -If you are unfamiliar with GitLab or version control, -consider reviewing GitLab's [Documentation](https://docs.gitlab.com/). - -## How to Contribute - -### Reporting Bugs - -If you find a bug in the project, please open an issue on GitLab with a clear and concise description. Make sure to include: - -- Steps to reproduce the bug. -- Expected behavior. -- Actual behavior. -- Any relevant screenshots, logs, or stack traces. - -### Suggesting Features - -We welcome feature suggestions! To propose a new feature: - -1. Open an issue on GitLab with the title "Feature Request: [Feature Name]". -2. Provide a detailed description of the proposed feature. -3. Explain why this feature would be useful for the project. -4. Include any relevant examples or mockups. - -### Submitting Changes - -If you'd like to contribute code changes, please follow the following guidelines: - -- [Working on a feature](https://calvera.ornl.gov/docs/dev/project_management/gitlab/single-repo/) -- [Style guidelines](https://calvera.ornl.gov/docs/dev/project_management/style_guidelines/) - -## Code of Conduct - -Please adhere to the project's [Code of Conduct](CODE_OF_CONDUCT.md) in all interactions. diff --git a/code/episode_6/advanced_pydantic/LICENSE b/code/episode_6/advanced_pydantic/LICENSE deleted file mode 100644 index f1386ccb..00000000 --- a/code/episode_6/advanced_pydantic/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 ONRL - -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. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/code/episode_6/advanced_pydantic/build_docs.sh b/code/episode_6/advanced_pydantic/build_docs.sh deleted file mode 100755 index 18cf838d..00000000 --- a/code/episode_6/advanced_pydantic/build_docs.sh +++ /dev/null @@ -1,2 +0,0 @@ -SPHINX_APIDOC_OPTIONS=members,show-inheritance poetry run sphinx-apidoc -o docs/source src -poetry run sphinx-build -M html docs docs/_build diff --git a/code/episode_6/advanced_pydantic/dockerfiles/Dockerfile b/code/episode_6/advanced_pydantic/dockerfiles/Dockerfile deleted file mode 100644 index 60ca2bbf..00000000 --- a/code/episode_6/advanced_pydantic/dockerfiles/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -ARG SOURCE_IMAGE=source - -FROM --platform=amd64 regproxy.ornl.gov/hub_proxy/python:3.10-slim AS source - -# make sure image can run as non-root user -ENV POETRY_CACHE_DIR=/poetry/.cache -ENV POETRY_CONFIG_DIR=/poetry/.config -ENV POETRY_HOME=/poetry - -RUN pip install poetry -COPY . /src -WORKDIR /src - -RUN poetry install -RUN poetry build --format=wheel - -RUN chmod og+rwX -R /poetry -RUN chmod og+rwX -R /src - - -# This is a workaround that allows the COPY --from location to be defined as a build argument. -# With this, we can reference the built source image from Harbor in our pipelines, while still -# defaulting to using the previous stage for local builds. -FROM $SOURCE_IMAGE as source_image - - - -FROM --platform=amd64 regproxy.ornl.gov/hub_proxy/ubuntu:22.04 AS run - -RUN DEBIAN_FRONTEND="noninteractive" apt-get update && apt-get -y install tzdata -RUN apt-get install -y python3.10 curl -RUN curl -ksS https://bootstrap.pypa.io/get-pip.py | python3.10 - -COPY --from=source_image /src/dist /dist -RUN pip install /dist/*.whl diff --git a/code/episode_6/advanced_pydantic/poetry.lock b/code/episode_6/advanced_pydantic/poetry.lock deleted file mode 100644 index 7124d927..00000000 --- a/code/episode_6/advanced_pydantic/poetry.lock +++ /dev/null @@ -1,1314 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "alabaster" -version = "1.0.0" -description = "A light, configurable Sphinx theme" -optional = false -python-versions = ">=3.10" -files = [ - {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, - {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, -] - -[[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 = "babel" -version = "2.17.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, -] - -[package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] - -[[package]] -name = "certifi" -version = "2025.1.31" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, -] - -[[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.4.1" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7" -files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, -] - -[[package]] -name = "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 = "copier" -version = "9.4.1" -description = "A library for rendering project templates." -optional = false -python-versions = ">=3.9" -files = [ - {file = "copier-9.4.1-py3-none-any.whl", hash = "sha256:863385b7ba8a9090c832cd12ca072dba9153397dbe7c5f337bf8c3d8859efa32"}, - {file = "copier-9.4.1.tar.gz", hash = "sha256:cc81d8204cb17fbc8c4a14996a8ce764166c34c77236de38cfbeb960c887b68f"}, -] - -[package.dependencies] -colorama = ">=0.4.6" -dunamai = ">=1.7.0" -funcy = ">=1.17" -jinja2 = ">=3.1.4" -jinja2-ansible-filters = ">=1.3.1" -packaging = ">=23.0" -pathspec = ">=0.9.0" -plumbum = ">=1.6.9" -pydantic = ">=2.4.2" -pygments = ">=2.7.1" -pyyaml = ">=5.3.1" -questionary = ">=1.8.1" - -[[package]] -name = "coverage" -version = "7.6.11" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "coverage-7.6.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eafea49da254a8289bed3fab960f808b322eda5577cb17a3733014928bbfbebd"}, - {file = "coverage-7.6.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5a3f7cbbcb4ad95067a6525f83a6fc78d9cbc1e70f8abaeeaeaa72ef34f48fc3"}, - {file = "coverage-7.6.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de6b079b39246a7da9a40cfa62d5766bd52b4b7a88cf5a82ec4c45bf6e152306"}, - {file = "coverage-7.6.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:60d4ad09dfc8c36c4910685faafcb8044c84e4dae302e86c585b3e2e7778726c"}, - {file = "coverage-7.6.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e433b6e3a834a43dae2889adc125f3fa4c66668df420d8e49bc4ee817dd7a70"}, - {file = "coverage-7.6.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ac5d92e2cc121a13270697e4cb37e1eb4511ac01d23fe1b6c097facc3b46489e"}, - {file = "coverage-7.6.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5128f3ba694c0a1bde55fc480090392c336236c3e1a10dad40dc1ab17c7675ff"}, - {file = "coverage-7.6.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:397489c611b76302dfa1d9ea079e138dddc4af80fc6819d5f5119ec8ca6c0e47"}, - {file = "coverage-7.6.11-cp310-cp310-win32.whl", hash = "sha256:c7719a5e1dc93883a6b319bc0374ecd46fb6091ed659f3fbe281ab991634b9b0"}, - {file = "coverage-7.6.11-cp310-cp310-win_amd64.whl", hash = "sha256:c27df03730059118b8a923cfc8b84b7e9976742560af528242f201880879c1da"}, - {file = "coverage-7.6.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:532fe139691af134aa8b54ed60dd3c806aa81312d93693bd2883c7b61592c840"}, - {file = "coverage-7.6.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0b0f272901a5172090c0802053fbc503cdc3fa2612720d2669a98a7384a7bec"}, - {file = "coverage-7.6.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4bda710139ea646890d1c000feb533caff86904a0e0638f85e967c28cb8eec50"}, - {file = "coverage-7.6.11-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a165b09e7d5f685bf659063334a9a7b1a2d57b531753d3e04bd442b3cfe5845b"}, - {file = "coverage-7.6.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ff136607689c1c87f43d24203b6d2055b42030f352d5176f9c8b204d4235ef27"}, - {file = "coverage-7.6.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:050172741de03525290e67f0161ae5f7f387c88fca50d47fceb4724ceaa591d2"}, - {file = "coverage-7.6.11-cp311-cp311-win32.whl", hash = "sha256:27700d859be68e4fb2e7bf774cf49933dcac6f81a9bc4c13bd41735b8d26a53b"}, - {file = "coverage-7.6.11-cp311-cp311-win_amd64.whl", hash = "sha256:cd4839813b09ab1dd1be1bbc74f9a7787615f931f83952b6a9af1b2d3f708bf7"}, - {file = "coverage-7.6.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dbb1a822fd858d9853333a7c95d4e70dde9a79e65893138ce32c2ec6457d7a36"}, - {file = "coverage-7.6.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:61c834cbb80946d6ebfddd9b393a4c46bec92fcc0fa069321fcb8049117f76ea"}, - {file = "coverage-7.6.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a46d56e99a31d858d6912d31ffa4ede6a325c86af13139539beefca10a1234ce"}, - {file = "coverage-7.6.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b48db06f53d1864fea6dbd855e6d51d41c0f06c212c3004511c0bdc6847b297"}, - {file = "coverage-7.6.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6ff5be3b1853e0862da9d349fe87f869f68e63a25f7c37ce1130b321140f963"}, - {file = "coverage-7.6.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be05bde21d5e6eefbc3a6de6b9bee2b47894b8945342e8663192809c4d1f08ce"}, - {file = "coverage-7.6.11-cp312-cp312-win32.whl", hash = "sha256:e3b746fa0ffc5b6b8856529de487da8b9aeb4fb394bb58de6502ef45f3434f12"}, - {file = "coverage-7.6.11-cp312-cp312-win_amd64.whl", hash = "sha256:ac476e6d0128fb7919b3fae726de72b28b5c9644cb4b579e4a523d693187c551"}, - {file = "coverage-7.6.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c86f4c7a6d1a54a24d804d9684d96e36a62d3ef7c0d7745ae2ea39e3e0293251"}, - {file = "coverage-7.6.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7eb0504bb307401fd08bc5163a351df301438b3beb88a4fa044681295bbefc67"}, - {file = "coverage-7.6.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca95d40900cf614e07f00cee8c2fad0371df03ca4d7a80161d84be2ec132b7a4"}, - {file = "coverage-7.6.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db4b1a69976b1b02acda15937538a1d3fe10b185f9d99920b17a740a0a102e06"}, - {file = "coverage-7.6.11-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf96beb05d004e4c51cd846fcdf9eee9eb2681518524b66b2e7610507944c2f"}, - {file = "coverage-7.6.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:08e5fb93576a6b054d3d326242af5ef93daaac9bb52bc25f12ccbc3fa94227cd"}, - {file = "coverage-7.6.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:25575cd5a7d2acc46b42711e8aff826027c0e4f80fb38028a74f31ac22aae69d"}, - {file = "coverage-7.6.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8fa4fffd90ee92f62ff7404b4801b59e8ea8502e19c9bf2d3241ce745b52926c"}, - {file = "coverage-7.6.11-cp313-cp313-win32.whl", hash = "sha256:0d03c9452d9d1ccfe5d3a5df0427705022a49b356ac212d529762eaea5ef97b4"}, - {file = "coverage-7.6.11-cp313-cp313-win_amd64.whl", hash = "sha256:fd2fffc8ce8692ce540103dff26279d2af22d424516ddebe2d7e4d6dbb3816b2"}, - {file = "coverage-7.6.11-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:5e7ac966ab110bd94ee844f2643f196d78fde1cd2450399116d3efdd706e19f5"}, - {file = "coverage-7.6.11-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ba27a0375c5ef4d2a7712f829265102decd5ff78b96d342ac2fa555742c4f4f"}, - {file = "coverage-7.6.11-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2778be4f574b39ec9dcd9e5e13644f770351ee0990a0ecd27e364aba95af89b"}, - {file = "coverage-7.6.11-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5edc16712187139ab635a2e644cc41fc239bc6d245b16124045743130455c652"}, - {file = "coverage-7.6.11-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6ff122a0a10a30121d9f0cb3fbd03a6fe05861e4ec47adb9f25e9245aabc19"}, - {file = "coverage-7.6.11-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ff562952f15eff27247a4c4b03e45ce8a82e3fb197de6a7c54080f9d4ba07845"}, - {file = "coverage-7.6.11-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4f21e3617f48d683f30cf2a6c8b739c838e600cb1454fe6b2eb486ac2bce8fbd"}, - {file = "coverage-7.6.11-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6d60577673ba48d8ae8e362e61fd4ad1a640293ffe8991d11c86f195479100b7"}, - {file = "coverage-7.6.11-cp313-cp313t-win32.whl", hash = "sha256:13100f98497086b359bf56fc035a762c674de8ef526daa389ac8932cb9bff1e0"}, - {file = "coverage-7.6.11-cp313-cp313t-win_amd64.whl", hash = "sha256:2c81e53782043b323bd34c7de711ed9b4673414eb517eaf35af92185b873839c"}, - {file = "coverage-7.6.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ff52b4e2ac0080c96e506819586c4b16cdbf46724bda90d308a7330a73cc8521"}, - {file = "coverage-7.6.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f4679fcc9eb9004fdd1b00231ef1ec7167168071bebc4d66327e28c1979b4449"}, - {file = "coverage-7.6.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:90de4e9ca4489e823138bd13098af9ac8028cc029f33f60098b5c08c675c7bda"}, - {file = "coverage-7.6.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c96a142057d83ee993eaf71629ca3fb952cda8afa9a70af4132950c2bd3deb9"}, - {file = "coverage-7.6.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:476f29a258b9cd153f2be5bf5f119d670d2806363595263917bddc167d6e5cce"}, - {file = "coverage-7.6.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:09d03f48d9025b8a6a116cddcb6c7b8ce80e4fb4c31dd2e124a7c377036ad58e"}, - {file = "coverage-7.6.11-cp39-cp39-win32.whl", hash = "sha256:bb35ae9f134fbd9cf7302a9654d5a1e597c974202678082dcc569eb39a8cde03"}, - {file = "coverage-7.6.11-cp39-cp39-win_amd64.whl", hash = "sha256:f382004fa4c93c01016d9226b9d696a08c53f6818b7ad59b4e96cb67e863353a"}, - {file = "coverage-7.6.11-pp39.pp310-none-any.whl", hash = "sha256:adc2d941c0381edfcf3897f94b9f41b1e504902fab78a04b1677f2f72afead4b"}, - {file = "coverage-7.6.11-py3-none-any.whl", hash = "sha256:f0f334ae844675420164175bf32b04e18a81fe57ad8eb7e0cfd4689d681ffed7"}, - {file = "coverage-7.6.11.tar.gz", hash = "sha256:e642e6a46a04e992ebfdabed79e46f478ec60e2c528e1e1a074d63800eda4286"}, -] - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "distlib" -version = "0.3.9" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, -] - -[[package]] -name = "docutils" -version = "0.21.2" -description = "Docutils -- Python Documentation Utilities" -optional = false -python-versions = ">=3.9" -files = [ - {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, - {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, -] - -[[package]] -name = "dunamai" -version = "1.23.0" -description = "Dynamic version generation" -optional = false -python-versions = ">=3.5" -files = [ - {file = "dunamai-1.23.0-py3-none-any.whl", hash = "sha256:a0906d876e92441793c6a423e16a4802752e723e9c9a5aabdc5535df02dbe041"}, - {file = "dunamai-1.23.0.tar.gz", hash = "sha256:a163746de7ea5acb6dacdab3a6ad621ebc612ed1e528aaa8beedb8887fccd2c4"}, -] - -[package.dependencies] -packaging = ">=20.9" - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "filelock" -version = "3.17.0" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.9" -files = [ - {file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"}, - {file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] -typing = ["typing-extensions (>=4.12.2)"] - -[[package]] -name = "funcy" -version = "2.0" -description = "A fancy and practical functional tools" -optional = false -python-versions = "*" -files = [ - {file = "funcy-2.0-py2.py3-none-any.whl", hash = "sha256:53df23c8bb1651b12f095df764bfb057935d49537a56de211b098f4c79614bb0"}, - {file = "funcy-2.0.tar.gz", hash = "sha256:3963315d59d41c6f30c04bc910e10ab50a3ac4a225868bfa96feed133df075cb"}, -] - -[[package]] -name = "identify" -version = "2.6.7" -description = "File identification library for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "identify-2.6.7-py2.py3-none-any.whl", hash = "sha256:155931cb617a401807b09ecec6635d6c692d180090a1cedca8ef7d58ba5b6aa0"}, - {file = "identify-2.6.7.tar.gz", hash = "sha256:3fa266b42eba321ee0b2bb0936a6a6b9e36a1351cbb69055b3082f4193035684"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.10" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.6" -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "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 = "jinja2" -version = "3.1.5" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, - {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jinja2-ansible-filters" -version = "1.3.2" -description = "A port of Ansible's jinja2 filters without requiring ansible core." -optional = false -python-versions = "*" -files = [ - {file = "jinja2-ansible-filters-1.3.2.tar.gz", hash = "sha256:07c10cf44d7073f4f01102ca12d9a2dc31b41d47e4c61ed92ef6a6d2669b356b"}, - {file = "jinja2_ansible_filters-1.3.2-py3-none-any.whl", hash = "sha256:e1082f5564917649c76fed239117820610516ec10f87735d0338688800a55b34"}, -] - -[package.dependencies] -Jinja2 = "*" -PyYAML = "*" - -[package.extras] -test = ["pytest", "pytest-cov"] - -[[package]] -name = "markupsafe" -version = "3.0.2" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.9" -files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, -] - -[[package]] -name = "mypy" -version = "1.15.0" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, - {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, - {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, - {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, - {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, - {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, - {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, - {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, - {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, - {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"}, - {file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"}, - {file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"}, - {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, - {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, -] - -[package.dependencies] -mypy_extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing_extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -faster-cache = ["orjson"] -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 = "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 = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "platformdirs" -version = "4.3.6" -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.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] - -[[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 = "plumbum" -version = "1.9.0" -description = "Plumbum: shell combinators library" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5"}, - {file = "plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219"}, -] - -[package.dependencies] -pywin32 = {version = "*", markers = "platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""} - -[package.extras] -dev = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] -docs = ["sphinx (>=4.0.0)", "sphinx-rtd-theme (>=1.0.0)"] -ssh = ["paramiko"] -test = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] - -[[package]] -name = "pockets" -version = "0.9.1" -description = "A collection of helpful Python tools!" -optional = false -python-versions = "*" -files = [ - {file = "pockets-0.9.1-py2.py3-none-any.whl", hash = "sha256:68597934193c08a08eb2bf6a1d85593f627c22f9b065cc727a4f03f669d96d86"}, - {file = "pockets-0.9.1.tar.gz", hash = "sha256:9320f1a3c6f7a9133fe3b571f283bcf3353cd70249025ae8d618e40e9f7e92b3"}, -] - -[package.dependencies] -six = ">=1.5.2" - -[[package]] -name = "pre-commit" -version = "4.1.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = false -python-versions = ">=3.9" -files = [ - {file = "pre_commit-4.1.0-py2.py3-none-any.whl", hash = "sha256:d29e7cb346295bcc1cc75fc3e92e343495e3ea0196c9ec6ba53f49f10ab6ae7b"}, - {file = "pre_commit-4.1.0.tar.gz", hash = "sha256:ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4"}, -] - -[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.50" -description = "Library for building powerful interactive command lines in Python" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, - {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "pydantic" -version = "2.10.6" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, - {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.27.2" -typing-extensions = ">=4.12.2" - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] - -[[package]] -name = "pydantic-core" -version = "2.27.2" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, - {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pygments" -version = "2.19.1" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pytest" -version = "8.3.4" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, - {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pywin32" -version = "308" -description = "Python for Window Extensions" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, - {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, - {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, - {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, - {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, - {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, - {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, - {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, - {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, - {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, - {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, - {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, - {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, - {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, - {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, - {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, - {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, - {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "questionary" -version = "2.1.0" -description = "Python library to build pretty command line user prompts ⭐️" -optional = false -python-versions = ">=3.8" -files = [ - {file = "questionary-2.1.0-py3-none-any.whl", hash = "sha256:44174d237b68bc828e4878c763a9ad6790ee61990e0ae72927694ead57bab8ec"}, - {file = "questionary-2.1.0.tar.gz", hash = "sha256:6302cdd645b19667d8f6e6634774e9538bfcd1aad9be287e743d96cacaf95587"}, -] - -[package.dependencies] -prompt_toolkit = ">=2.0,<4.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 = "ruff" -version = "0.9.6" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.9.6-py3-none-linux_armv6l.whl", hash = "sha256:2f218f356dd2d995839f1941322ff021c72a492c470f0b26a34f844c29cdf5ba"}, - {file = "ruff-0.9.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b908ff4df65dad7b251c9968a2e4560836d8f5487c2f0cc238321ed951ea0504"}, - {file = "ruff-0.9.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b109c0ad2ececf42e75fa99dc4043ff72a357436bb171900714a9ea581ddef83"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1de4367cca3dac99bcbd15c161404e849bb0bfd543664db39232648dc00112dc"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac3ee4d7c2c92ddfdaedf0bf31b2b176fa7aa8950efc454628d477394d35638b"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5dc1edd1775270e6aa2386119aea692039781429f0be1e0949ea5884e011aa8e"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:4a091729086dffa4bd070aa5dab7e39cc6b9d62eb2bef8f3d91172d30d599666"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1bbc6808bf7b15796cef0815e1dfb796fbd383e7dbd4334709642649625e7c5"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:589d1d9f25b5754ff230dce914a174a7c951a85a4e9270613a2b74231fdac2f5"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc61dd5131742e21103fbbdcad683a8813be0e3c204472d520d9a5021ca8b217"}, - {file = "ruff-0.9.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5e2d9126161d0357e5c8f30b0bd6168d2c3872372f14481136d13de9937f79b6"}, - {file = "ruff-0.9.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:68660eab1a8e65babb5229a1f97b46e3120923757a68b5413d8561f8a85d4897"}, - {file = "ruff-0.9.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c4cae6c4cc7b9b4017c71114115db0445b00a16de3bcde0946273e8392856f08"}, - {file = "ruff-0.9.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:19f505b643228b417c1111a2a536424ddde0db4ef9023b9e04a46ed8a1cb4656"}, - {file = "ruff-0.9.6-py3-none-win32.whl", hash = "sha256:194d8402bceef1b31164909540a597e0d913c0e4952015a5b40e28c146121b5d"}, - {file = "ruff-0.9.6-py3-none-win_amd64.whl", hash = "sha256:03482d5c09d90d4ee3f40d97578423698ad895c87314c4de39ed2af945633caa"}, - {file = "ruff-0.9.6-py3-none-win_arm64.whl", hash = "sha256:0e2bb706a2be7ddfea4a4af918562fdc1bcb16df255e5fa595bbd800ce322a5a"}, - {file = "ruff-0.9.6.tar.gz", hash = "sha256:81761592f72b620ec8fa1068a6fd00e98a5ebee342a3642efd84454f3031dca9"}, -] - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -optional = false -python-versions = "*" -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "sphinx" -version = "8.1.3" -description = "Python documentation generator" -optional = false -python-versions = ">=3.10" -files = [ - {file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"}, - {file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"}, -] - -[package.dependencies] -alabaster = ">=0.7.14" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" -imagesize = ">=1.3" -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" -sphinxcontrib-applehelp = ">=1.0.7" -sphinxcontrib-devhelp = ">=1.0.6" -sphinxcontrib-htmlhelp = ">=2.0.6" -sphinxcontrib-jsmath = ">=1.0.1" -sphinxcontrib-qthelp = ">=1.0.6" -sphinxcontrib-serializinghtml = ">=1.1.9" -tomli = {version = ">=2", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] - -[[package]] -name = "sphinx-rtd-theme" -version = "3.0.2" -description = "Read the Docs theme for Sphinx" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, - {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, -] - -[package.dependencies] -docutils = ">0.18,<0.22" -sphinx = ">=6,<9" -sphinxcontrib-jquery = ">=4,<5" - -[package.extras] -dev = ["bump2version", "transifex-client", "twine", "wheel"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, - {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, - {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, - {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jquery" -version = "4.1" -description = "Extension to include jQuery on newer Sphinx releases" -optional = false -python-versions = ">=2.7" -files = [ - {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, - {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, -] - -[package.dependencies] -Sphinx = ">=1.8" - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -optional = false -python-versions = ">=3.5" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-napoleon" -version = "0.7" -description = "Sphinx \"napoleon\" extension." -optional = false -python-versions = "*" -files = [ - {file = "sphinxcontrib-napoleon-0.7.tar.gz", hash = "sha256:407382beed396e9f2d7f3043fad6afda95719204a1e1a231ac865f40abcbfcf8"}, - {file = "sphinxcontrib_napoleon-0.7-py2.py3-none-any.whl", hash = "sha256:711e41a3974bdf110a484aec4c1a556799eb0b3f3b897521a018ad7e2db13fef"}, -] - -[package.dependencies] -pockets = ">=0.3" -six = ">=1.5.2" - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, - {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, - {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "tomli" -version = "2.2.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, -] - -[[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 = "urllib3" -version = "2.3.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.9" -files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.29.1" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.8" -files = [ - {file = "virtualenv-20.29.1-py3-none-any.whl", hash = "sha256:4e4cb403c0b0da39e13b46b1b2476e505cb0046b25f242bee80f62bf990b2779"}, - {file = "virtualenv-20.29.1.tar.gz", hash = "sha256:b8b8970138d32fb606192cb97f6cd4bb644fa486be9308fb9b63f81091b5dc35"}, -] - -[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 = "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"}, -] - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "83c6bee0f0f6fd1dcc8920fa8ddad6236b0007c677cd62abecee7e90d8c3e911" diff --git a/code/episode_6/advanced_pydantic/pyproject.toml b/code/episode_6/advanced_pydantic/pyproject.toml index 75653258..9f817ed6 100644 --- a/code/episode_6/advanced_pydantic/pyproject.toml +++ b/code/episode_6/advanced_pydantic/pyproject.toml @@ -1,4 +1,4 @@ -[tool.poetry] +[project] name = "advanced-pydantic" version = "0.1.0" description = "Advanced Pydantic Project" @@ -6,18 +6,51 @@ authors = [] readme = "README.md" license = "MIT" keywords = ["NDIP", "NOVA", "python"] +requires-python = ">=3.10,<3.14" -packages = [ - { include = "advanced_pydantic", from = "src" } -] +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["linux-64", "osx-64"] + +[tool.pixi.environments] +default = {features = ["dev"], solve-group = "default"} +production = {features = [], solve-group = "default"} + +[tool.pixi.dependencies] + +[tool.pixi.pypi-dependencies] +advanced-pydantic = { path = ".", editable = true } +hatch = "*" +gitpython = ">=3.1.40,<4" +python-gitlab = ">=5.6.0,<6" +nova-trame = "*" +trame-datagrid = ">=0.2.2" + + +[tool.pixi.feature.dev.pypi-dependencies] +mypy = ">=1.10.0" +pre-commit = ">=2.20.0" +coverage = ">=6.4.3" +pytest = "*" +ruff = ">=0.6.2" +copier=">=9.3" +sphinx = "*" +sphinx-rtd-theme = "*" +sphinxcontrib-napoleon ="*" +tomli = "*" +[tool.pixi.tasks] +app = "python -m src.advanced_pydantic.app" +init-repo = "python -m scripts.git_utils" +deploy-production = "python -m scripts.xml_utils" +deploy-prototype = "python -m scripts.xml_utils_prototype" -[tool.poetry.dependencies] -python = "^3.10" [build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +requires = ["hatchling"] +build-backend = "hatchling.build" +[tool.hatch.build.targets.wheel] +packages = ["src/advanced_pydantic"] [tool.pytest.ini_options] testpaths = ["tests"] @@ -25,6 +58,7 @@ python_files = ["test*.py"] norecursedirs = [".git", "tmp*", "_tmp*", "__pycache__"] [tool.ruff] +extend-exclude = [".pixi"] line-length = 120 [tool.ruff.lint] @@ -49,8 +83,6 @@ ignore = [ [tool.ruff.lint.extend-per-file-ignores] '__init__.py' = ['D104'] # Missing docstring in public package - - [tool.ruff.lint.pydocstyle] convention = "numpy" @@ -70,19 +102,4 @@ omit = [ [tool.coverage.run] command_line = "-m pytest --junit-xml=reports/junit.xml" -data_file = "reports/.coverage" - -[tool.poetry.dev-dependencies] -mypy = ">=1.10.0" -pre-commit = ">=2.20.0" -coverage = ">=6.4.3" -pytest = "*" -ruff = ">=0.6.2" -copier=">=9.3" -sphinx = "*" -sphinx-rtd-theme = "*" -sphinxcontrib-napoleon ="*" -tomli = "*" - -[tool.poetry.scripts] -app = "advanced_pydantic:main" +data_file = "reports/.coverage" \ No newline at end of file diff --git a/code/episode_6/advanced_pydantic/scripts/.gitkeep b/code/episode_6/advanced_pydantic/scripts/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/code/episode_6/advanced_pydantic/src/advanced_pydantic/__init__.py b/code/episode_6/advanced_pydantic/src/advanced_pydantic/__init__.py index 80dc44e2..e69de29b 100644 --- a/code/episode_6/advanced_pydantic/src/advanced_pydantic/__init__.py +++ b/code/episode_6/advanced_pydantic/src/advanced_pydantic/__init__.py @@ -1,8 +0,0 @@ -import importlib.metadata - -from .main import main -from .main_class import MainClass - -__all__ = ["MainClass", "main"] - -__version__ = importlib.metadata.version(__package__) diff --git a/code/episode_6/advanced_pydantic/src/advanced_pydantic/__main__.py b/code/episode_6/advanced_pydantic/src/advanced_pydantic/__main__.py deleted file mode 100644 index d87b5a1f..00000000 --- a/code/episode_6/advanced_pydantic/src/advanced_pydantic/__main__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Entry point for the Package.""" - -from . import main - -main() diff --git a/code/episode_6/advanced_pydantic/src/advanced_pydantic/main.py b/code/episode_6/advanced_pydantic/src/advanced_pydantic/main.py deleted file mode 100644 index 46ba84e8..00000000 --- a/code/episode_6/advanced_pydantic/src/advanced_pydantic/main.py +++ /dev/null @@ -1,52 +0,0 @@ -"""Main Application.""" - -from typing import List, Literal - -from pydantic import BaseModel, Field, ValidationError, field_validator, model_validator -from typing_extensions import Self - - -class Address(BaseModel): - """User Address model.""" - - street: str = Field(min_length=3, max_length=50) - city: str = Field(min_length=2, max_length=30) - zip_code: str = Field(pattern=r"^\d{5}$") # US ZIP code validation - type: Literal["home", "work"] = Field() - - -class User(BaseModel): - """User model.""" - - id: int = Field(default=1, gt=0) - name: str = Field(default="someName", min_length=1) - addresses: List[Address] = Field(min_length=1) - - @field_validator("id", mode="after") - @classmethod - def is_even(cls, value: int) -> int: - if value % 2 == 1: - raise ValueError(f"{value} is not an even number") - return value - - @model_validator(mode="after") - def check_name_for_even_id(self) -> Self: - if self.id % 2 == 0 and not self.name[0].isupper(): - raise ValueError("Name must start with a capital letter when the ID is even.") - - return self - - -def main() -> None: - # Example input - user_data = { - "id": 2, - "name": "alice", - "addresses": [{"street": "123 Main St", "city": "New York", "zip_code": "10001", "type": "home"}], - } - - try: - user = User.model_validate(user_data) - print(user) - except ValidationError as e: - print(e) diff --git a/code/episode_6/advanced_pydantic/src/advanced_pydantic/main_class.py b/code/episode_6/advanced_pydantic/src/advanced_pydantic/main_class.py deleted file mode 100644 index d870b1f5..00000000 --- a/code/episode_6/advanced_pydantic/src/advanced_pydantic/main_class.py +++ /dev/null @@ -1,23 +0,0 @@ -"""Main Class.""" - - -class MainClass: - """Main Class.""" - - def name(self, value: str) -> str: - """Example function with types documented in the docstring. - - Parameters - ---------- - value :str - The first parameter. - - Returns - ------- - str - The return value. Here just returns the function argument. - """ - return value - - -__all__ = ["MainClass"] diff --git a/code/episode_6/advanced_pydantic/tests/test_main_class.py b/code/episode_6/advanced_pydantic/tests/test_main_class.py deleted file mode 100644 index 1b3d3341..00000000 --- a/code/episode_6/advanced_pydantic/tests/test_main_class.py +++ /dev/null @@ -1,8 +0,0 @@ -"""Test package.""" - -from advanced_pydantic import MainClass - - -def test_version() -> None: - app = MainClass() - assert app.name("test") == "test" diff --git a/code/episode_6/pydantic_mvvm/.copier-answers.yml b/code/episode_6/pydantic_mvvm/.copier-answers.yml deleted file mode 100644 index 04cbfb12..00000000 --- a/code/episode_6/pydantic_mvvm/.copier-answers.yml +++ /dev/null @@ -1,11 +0,0 @@ -# Please do not edit or delete this file. It is needed to be able to update project from template. -_commit: '0.13' -_src_path: https://code.ornl.gov/ndip/project-templates/nova-application-template.git -framework: Trame -gui: true -multitabs: false -project_name: Trame With Pydantic -publish_docs: false -publish_to_pypi: false -python_package: trame-with-pydantic -use_mantid: false diff --git a/code/episode_6/pydantic_mvvm/.dockerignore b/code/episode_6/pydantic_mvvm/.dockerignore deleted file mode 100644 index 75e9bfa5..00000000 --- a/code/episode_6/pydantic_mvvm/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -dockerfiles/Dockerfile diff --git a/code/episode_6/pydantic_mvvm/.gitignore b/code/episode_6/pydantic_mvvm/.gitignore deleted file mode 100644 index bb338b20..00000000 --- a/code/episode_6/pydantic_mvvm/.gitignore +++ /dev/null @@ -1,166 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# We ingore the whole .idea folder -# For more fine tuning, JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. -.idea - - -.envrc - - -junit.xml diff --git a/code/episode_6/pydantic_mvvm/.gitlab-ci.yml b/code/episode_6/pydantic_mvvm/.gitlab-ci.yml deleted file mode 100644 index 67024b69..00000000 --- a/code/episode_6/pydantic_mvvm/.gitlab-ci.yml +++ /dev/null @@ -1,125 +0,0 @@ -workflow: - rules: - - if: $CI_COMMIT_TAG - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - when: always - -stages: - - lint - - test - - tag - - publish - -variables: - GIT_STRATEGY: clone - IMAGE_NAME: ${NDIP_DOCKER_REPOSITORY}/${CI_PROJECT_PATH} - -before_script: - - curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - - source rse-bash-modules.sh - - func_rse_docker_cleanup - - docker login -u $NDIP_DOCKER_USER -p $NDIP_DOCKER_PASSWORD $NDIP_DOCKER_REPOSITORY - - export VERSION=$(cat pyproject.toml | grep "version =" | head -n 1 | awk '{ print $3 }' | tr -d '"') -after_script: - - curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - - source rse-bash-modules.sh - - func_rse_docker_cleanup - -lint-check: - stage: lint - script: - - docker build -f dockerfiles/Dockerfile --target source -t image . - - docker run -u `id -u`:`id -g` image poetry run ruff check - - docker run -u `id -u`:`id -g` image poetry run ruff format --check - - docker run -u `id -u`:`id -g` image poetry run mypy . - - docker tag image ${IMAGE_NAME}:src-${CI_COMMIT_SHA} - - docker push ${IMAGE_NAME}:src-${CI_COMMIT_SHA} - tags: - - rse-multi-builder - -unit-tests: - stage: test - script: - - mkdir reports - - docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${CI_COMMIT_SHA} poetry run coverage run - - docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${CI_COMMIT_SHA} poetry run coverage report - - docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${CI_COMMIT_SHA} poetry run coverage xml -o reports/coverage.xml - - sed -i "s:/src:${CI_BUILDS_DIR}/${CI_PROJECT_PATH}:" reports/coverage.xml - - coverage: '/TOTAL.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' - artifacts: - when: always - reports: - junit: reports/junit.xml - coverage_report: - coverage_format: cobertura - path: reports/coverage.xml - tags: - - rse-multi-builder - -docs-test: - stage: test - script: - - docker run -u `id -u`:`id -g` ${IMAGE_NAME}:src-${CI_COMMIT_SHA} bash build_docs.sh - tags: - - rse-multi-builder - - -tag-release: - stage: tag - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - when: always - - when: never - script: - - git config user.email "$GITLAB_USER_EMAIL" - - git config user.name "$GITLAB_USER_NAME" - - > - if [ -z $(git ls-remote --tags origin "$VERSION") ]; then - git remote add gitlab https://oauth2:${NDIP_GROUP_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git - git tag ${VERSION} - git push gitlab --tags - fi - tags: - - rse-multi-builder - - -build-image: - stage: publish - variables: - OVERWRITE_IMAGE: "false" - when: manual - script: - - IMAGE_TAG=${VERSION} - - docker build -f dockerfiles/Dockerfile -t image --target run --build-arg SOURCE_IMAGE=${IMAGE_NAME}:src-${CI_COMMIT_SHA} . - - docker tag image ${IMAGE_NAME}:bin-${CI_COMMIT_SHA} - - docker push ${IMAGE_NAME}:bin-${CI_COMMIT_SHA} - - docker tag image ${IMAGE_NAME}:latest - - docker push ${IMAGE_NAME}:latest - - > - if ! docker pull ${IMAGE_NAME}:${IMAGE_TAG} || [ "$OVERWRITE_IMAGE" == "true" ]; then - docker tag image ${IMAGE_NAME}:${IMAGE_TAG} - docker push ${IMAGE_NAME}:${IMAGE_TAG} - else - echo tag ${IMAGE_TAG} already exists in ${NDIP_DOCKER_REPOSITORY}. Use OVERWRITE_IMAGE="true", delete image in the repository or change the tag - exit 1 - fi - tags: - - rse-multi-builder - -package-build: - stage: publish - script: - - > - docker run - -u `id -u`:`id -g` - ${IMAGE_NAME}:src-${CI_COMMIT_SHA} - bash -c " - poetry config repositories.gitlab_repo ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi && - poetry publish -u gitlab-ci-token -p ${CI_JOB_TOKEN} -r gitlab_repo - " - when: manual - tags: - - rse-multi-builder diff --git a/code/episode_6/pydantic_mvvm/.pre-commit-config.yaml b/code/episode_6/pydantic_mvvm/.pre-commit-config.yaml deleted file mode 100644 index 302be768..00000000 --- a/code/episode_6/pydantic_mvvm/.pre-commit-config.yaml +++ /dev/null @@ -1,27 +0,0 @@ -repos: -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 - hooks: - - id: check-added-large-files - args: [--maxkb=8192] - - id: check-merge-conflict - - id: check-yaml - args: [--allow-multiple-documents] - - id: end-of-file-fixer - - id: check-toml - - id: trailing-whitespace -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.2 - hooks: - - id: ruff - args: [--fix, --exit-non-zero-on-fix] - - id: ruff-format -- repo: local - hooks: - - id: mypy - name: mypy - entry: poetry run mypy . - language: system - types: [python] - verbose: true - pass_filenames: false diff --git a/code/episode_6/pydantic_mvvm/.vscode/extensions.json b/code/episode_6/pydantic_mvvm/.vscode/extensions.json deleted file mode 100644 index 18a8fa1e..00000000 --- a/code/episode_6/pydantic_mvvm/.vscode/extensions.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "recommendations": [ - "charliermarsh.ruff", - "ms-python.mypy-type-checker" - ] -} diff --git a/code/episode_6/pydantic_mvvm/.vscode/launch.json b/code/episode_6/pydantic_mvvm/.vscode/launch.json deleted file mode 100644 index 3041f4a5..00000000 --- a/code/episode_6/pydantic_mvvm/.vscode/launch.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "configurations": [{ - "name": "Launch", - "type": "debugpy", - "request": "launch", - "cwd": "${workspaceFolder}", - "module": "trame_with_pydantic", - "args": [] - }] -} diff --git a/code/episode_6/pydantic_mvvm/.vscode/settings.json b/code/episode_6/pydantic_mvvm/.vscode/settings.json deleted file mode 100644 index 8700fea6..00000000 --- a/code/episode_6/pydantic_mvvm/.vscode/settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "[python]": { - "editor.defaultFormatter": "charliermarsh.ruff" - }, - "python.testing.pytestArgs": [ - "tests" - ], - "python.testing.unittestEnabled": false, - "python.testing.pytestEnabled": true -} diff --git a/code/episode_6/pydantic_mvvm/CODE_OF_CONDUCT.md b/code/episode_6/pydantic_mvvm/CODE_OF_CONDUCT.md deleted file mode 100644 index 4db92857..00000000 --- a/code/episode_6/pydantic_mvvm/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,128 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socioeconomic status, -nationality, personal appearance, race, religion, or sexual identity -and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the - overall community - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or - advances of any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email - address, without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -watsongr@ornl.gov. -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series -of actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or -permanent ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within -the community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.0, available at -https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. - -Community Impact Guidelines were inspired by [Mozilla's code of conduct -enforcement ladder](https://github.com/mozilla/diversity). - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. diff --git a/code/episode_6/pydantic_mvvm/CONTRIBUTING.md b/code/episode_6/pydantic_mvvm/CONTRIBUTING.md deleted file mode 100644 index 609d3a93..00000000 --- a/code/episode_6/pydantic_mvvm/CONTRIBUTING.md +++ /dev/null @@ -1,41 +0,0 @@ -# Contributing to Trame With Pydantic - -Thank you for considering contributing to Trame With Pydantic! -This document provides guidelines to help you contribute effectively and ensure a smooth process for everyone involved. - -## Getting Started - -To start contributing to this project, you will need an ORNL's GitLab account. -If you are unfamiliar with GitLab or version control, -consider reviewing GitLab's [Documentation](https://docs.gitlab.com/). - -## How to Contribute - -### Reporting Bugs - -If you find a bug in the project, please open an issue on GitLab with a clear and concise description. Make sure to include: - -- Steps to reproduce the bug. -- Expected behavior. -- Actual behavior. -- Any relevant screenshots, logs, or stack traces. - -### Suggesting Features - -We welcome feature suggestions! To propose a new feature: - -1. Open an issue on GitLab with the title "Feature Request: [Feature Name]". -2. Provide a detailed description of the proposed feature. -3. Explain why this feature would be useful for the project. -4. Include any relevant examples or mockups. - -### Submitting Changes - -If you'd like to contribute code changes, please follow the following guidelines: - -- [Working on a feature](https://calvera.ornl.gov/docs/dev/project_management/gitlab/single-repo/) -- [Style guidelines](https://calvera.ornl.gov/docs/dev/project_management/style_guidelines/) - -## Code of Conduct - -Please adhere to the project's [Code of Conduct](CODE_OF_CONDUCT.md) in all interactions. diff --git a/code/episode_6/pydantic_mvvm/LICENSE b/code/episode_6/pydantic_mvvm/LICENSE deleted file mode 100644 index f1386ccb..00000000 --- a/code/episode_6/pydantic_mvvm/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 ONRL - -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. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/code/episode_6/pydantic_mvvm/build_docs.sh b/code/episode_6/pydantic_mvvm/build_docs.sh deleted file mode 100755 index 18cf838d..00000000 --- a/code/episode_6/pydantic_mvvm/build_docs.sh +++ /dev/null @@ -1,2 +0,0 @@ -SPHINX_APIDOC_OPTIONS=members,show-inheritance poetry run sphinx-apidoc -o docs/source src -poetry run sphinx-build -M html docs docs/_build diff --git a/code/episode_6/pydantic_mvvm/dockerfiles/Dockerfile b/code/episode_6/pydantic_mvvm/dockerfiles/Dockerfile deleted file mode 100644 index 60ca2bbf..00000000 --- a/code/episode_6/pydantic_mvvm/dockerfiles/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -ARG SOURCE_IMAGE=source - -FROM --platform=amd64 regproxy.ornl.gov/hub_proxy/python:3.10-slim AS source - -# make sure image can run as non-root user -ENV POETRY_CACHE_DIR=/poetry/.cache -ENV POETRY_CONFIG_DIR=/poetry/.config -ENV POETRY_HOME=/poetry - -RUN pip install poetry -COPY . /src -WORKDIR /src - -RUN poetry install -RUN poetry build --format=wheel - -RUN chmod og+rwX -R /poetry -RUN chmod og+rwX -R /src - - -# This is a workaround that allows the COPY --from location to be defined as a build argument. -# With this, we can reference the built source image from Harbor in our pipelines, while still -# defaulting to using the previous stage for local builds. -FROM $SOURCE_IMAGE as source_image - - - -FROM --platform=amd64 regproxy.ornl.gov/hub_proxy/ubuntu:22.04 AS run - -RUN DEBIAN_FRONTEND="noninteractive" apt-get update && apt-get -y install tzdata -RUN apt-get install -y python3.10 curl -RUN curl -ksS https://bootstrap.pypa.io/get-pip.py | python3.10 - -COPY --from=source_image /src/dist /dist -RUN pip install /dist/*.whl diff --git a/code/episode_6/pydantic_mvvm/poetry.lock b/code/episode_6/pydantic_mvvm/poetry.lock deleted file mode 100644 index a6741589..00000000 --- a/code/episode_6/pydantic_mvvm/poetry.lock +++ /dev/null @@ -1,2164 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "aiohappyeyeballs" -version = "2.4.6" -description = "Happy Eyeballs for asyncio" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiohappyeyeballs-2.4.6-py3-none-any.whl", hash = "sha256:147ec992cf873d74f5062644332c539fcd42956dc69453fe5204195e560517e1"}, - {file = "aiohappyeyeballs-2.4.6.tar.gz", hash = "sha256:9b05052f9042985d32ecbe4b59a77ae19c006a78f1344d7fdad69d28ded3d0b0"}, -] - -[[package]] -name = "aiohttp" -version = "3.11.12" -description = "Async http client/server framework (asyncio)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiohttp-3.11.12-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:aa8a8caca81c0a3e765f19c6953416c58e2f4cc1b84829af01dd1c771bb2f91f"}, - {file = "aiohttp-3.11.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:84ede78acde96ca57f6cf8ccb8a13fbaf569f6011b9a52f870c662d4dc8cd854"}, - {file = "aiohttp-3.11.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:584096938a001378484aa4ee54e05dc79c7b9dd933e271c744a97b3b6f644957"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:392432a2dde22b86f70dd4a0e9671a349446c93965f261dbaecfaf28813e5c42"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:88d385b8e7f3a870146bf5ea31786ef7463e99eb59e31db56e2315535d811f55"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b10a47e5390c4b30a0d58ee12581003be52eedd506862ab7f97da7a66805befb"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b5263dcede17b6b0c41ef0c3ccce847d82a7da98709e75cf7efde3e9e3b5cae"}, - {file = "aiohttp-3.11.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50c5c7b8aa5443304c55c262c5693b108c35a3b61ef961f1e782dd52a2f559c7"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d1c031a7572f62f66f1257db37ddab4cb98bfaf9b9434a3b4840bf3560f5e788"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:7e44eba534381dd2687be50cbd5f2daded21575242ecfdaf86bbeecbc38dae8e"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:145a73850926018ec1681e734cedcf2716d6a8697d90da11284043b745c286d5"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:2c311e2f63e42c1bf86361d11e2c4a59f25d9e7aabdbdf53dc38b885c5435cdb"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:ea756b5a7bac046d202a9a3889b9a92219f885481d78cd318db85b15cc0b7bcf"}, - {file = "aiohttp-3.11.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:526c900397f3bbc2db9cb360ce9c35134c908961cdd0ac25b1ae6ffcaa2507ff"}, - {file = "aiohttp-3.11.12-cp310-cp310-win32.whl", hash = "sha256:b8d3bb96c147b39c02d3db086899679f31958c5d81c494ef0fc9ef5bb1359b3d"}, - {file = "aiohttp-3.11.12-cp310-cp310-win_amd64.whl", hash = "sha256:7fe3d65279bfbee8de0fb4f8c17fc4e893eed2dba21b2f680e930cc2b09075c5"}, - {file = "aiohttp-3.11.12-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:87a2e00bf17da098d90d4145375f1d985a81605267e7f9377ff94e55c5d769eb"}, - {file = "aiohttp-3.11.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b34508f1cd928ce915ed09682d11307ba4b37d0708d1f28e5774c07a7674cac9"}, - {file = "aiohttp-3.11.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:936d8a4f0f7081327014742cd51d320296b56aa6d324461a13724ab05f4b2933"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2de1378f72def7dfb5dbd73d86c19eda0ea7b0a6873910cc37d57e80f10d64e1"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9d45dbb3aaec05cf01525ee1a7ac72de46a8c425cb75c003acd29f76b1ffe94"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:930ffa1925393381e1e0a9b82137fa7b34c92a019b521cf9f41263976666a0d6"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8340def6737118f5429a5df4e88f440746b791f8f1c4ce4ad8a595f42c980bd5"}, - {file = "aiohttp-3.11.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4016e383f91f2814e48ed61e6bda7d24c4d7f2402c75dd28f7e1027ae44ea204"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3c0600bcc1adfaaac321422d615939ef300df81e165f6522ad096b73439c0f58"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:0450ada317a65383b7cce9576096150fdb97396dcfe559109b403c7242faffef"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:850ff6155371fd802a280f8d369d4e15d69434651b844bde566ce97ee2277420"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8fd12d0f989c6099e7b0f30dc6e0d1e05499f3337461f0b2b0dadea6c64b89df"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:76719dd521c20a58a6c256d058547b3a9595d1d885b830013366e27011ffe804"}, - {file = "aiohttp-3.11.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97fe431f2ed646a3b56142fc81d238abcbaff08548d6912acb0b19a0cadc146b"}, - {file = "aiohttp-3.11.12-cp311-cp311-win32.whl", hash = "sha256:e10c440d142fa8b32cfdb194caf60ceeceb3e49807072e0dc3a8887ea80e8c16"}, - {file = "aiohttp-3.11.12-cp311-cp311-win_amd64.whl", hash = "sha256:246067ba0cf5560cf42e775069c5d80a8989d14a7ded21af529a4e10e3e0f0e6"}, - {file = "aiohttp-3.11.12-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e392804a38353900c3fd8b7cacbea5132888f7129f8e241915e90b85f00e3250"}, - {file = "aiohttp-3.11.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8fa1510b96c08aaad49303ab11f8803787c99222288f310a62f493faf883ede1"}, - {file = "aiohttp-3.11.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dc065a4285307607df3f3686363e7f8bdd0d8ab35f12226362a847731516e42c"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddb31f8474695cd61fc9455c644fc1606c164b93bff2490390d90464b4655df"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9dec0000d2d8621d8015c293e24589d46fa218637d820894cb7356c77eca3259"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3552fe98e90fdf5918c04769f338a87fa4f00f3b28830ea9b78b1bdc6140e0d"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dfe7f984f28a8ae94ff3a7953cd9678550dbd2a1f9bda5dd9c5ae627744c78e"}, - {file = "aiohttp-3.11.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a481a574af914b6e84624412666cbfbe531a05667ca197804ecc19c97b8ab1b0"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1987770fb4887560363b0e1a9b75aa303e447433c41284d3af2840a2f226d6e0"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:a4ac6a0f0f6402854adca4e3259a623f5c82ec3f0c049374133bcb243132baf9"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c96a43822f1f9f69cc5c3706af33239489a6294be486a0447fb71380070d4d5f"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a5e69046f83c0d3cb8f0d5bd9b8838271b1bc898e01562a04398e160953e8eb9"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:68d54234c8d76d8ef74744f9f9fc6324f1508129e23da8883771cdbb5818cbef"}, - {file = "aiohttp-3.11.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c9fd9dcf9c91affe71654ef77426f5cf8489305e1c66ed4816f5a21874b094b9"}, - {file = "aiohttp-3.11.12-cp312-cp312-win32.whl", hash = "sha256:0ed49efcd0dc1611378beadbd97beb5d9ca8fe48579fc04a6ed0844072261b6a"}, - {file = "aiohttp-3.11.12-cp312-cp312-win_amd64.whl", hash = "sha256:54775858c7f2f214476773ce785a19ee81d1294a6bedc5cc17225355aab74802"}, - {file = "aiohttp-3.11.12-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:413ad794dccb19453e2b97c2375f2ca3cdf34dc50d18cc2693bd5aed7d16f4b9"}, - {file = "aiohttp-3.11.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a93d28ed4b4b39e6f46fd240896c29b686b75e39cc6992692e3922ff6982b4c"}, - {file = "aiohttp-3.11.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d589264dbba3b16e8951b6f145d1e6b883094075283dafcab4cdd564a9e353a0"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5148ca8955affdfeb864aca158ecae11030e952b25b3ae15d4e2b5ba299bad2"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:525410e0790aab036492eeea913858989c4cb070ff373ec3bc322d700bdf47c1"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bd8695be2c80b665ae3f05cb584093a1e59c35ecb7d794d1edd96e8cc9201d7"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0203433121484b32646a5f5ea93ae86f3d9559d7243f07e8c0eab5ff8e3f70e"}, - {file = "aiohttp-3.11.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40cd36749a1035c34ba8d8aaf221b91ca3d111532e5ccb5fa8c3703ab1b967ed"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7442662afebbf7b4c6d28cb7aab9e9ce3a5df055fc4116cc7228192ad6cb484"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8a2fb742ef378284a50766e985804bd6adb5adb5aa781100b09befdbfa757b65"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2cee3b117a8d13ab98b38d5b6bdcd040cfb4181068d05ce0c474ec9db5f3c5bb"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f6a19bcab7fbd8f8649d6595624856635159a6527861b9cdc3447af288a00c00"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e4cecdb52aaa9994fbed6b81d4568427b6002f0a91c322697a4bfcc2b2363f5a"}, - {file = "aiohttp-3.11.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:30f546358dfa0953db92ba620101fefc81574f87b2346556b90b5f3ef16e55ce"}, - {file = "aiohttp-3.11.12-cp313-cp313-win32.whl", hash = "sha256:ce1bb21fc7d753b5f8a5d5a4bae99566386b15e716ebdb410154c16c91494d7f"}, - {file = "aiohttp-3.11.12-cp313-cp313-win_amd64.whl", hash = "sha256:f7914ab70d2ee8ab91c13e5402122edbc77821c66d2758abb53aabe87f013287"}, - {file = "aiohttp-3.11.12-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c3623053b85b4296cd3925eeb725e386644fd5bc67250b3bb08b0f144803e7b"}, - {file = "aiohttp-3.11.12-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:67453e603cea8e85ed566b2700efa1f6916aefbc0c9fcb2e86aaffc08ec38e78"}, - {file = "aiohttp-3.11.12-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6130459189e61baac5a88c10019b21e1f0c6d00ebc770e9ce269475650ff7f73"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9060addfa4ff753b09392efe41e6af06ea5dd257829199747b9f15bfad819460"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34245498eeb9ae54c687a07ad7f160053911b5745e186afe2d0c0f2898a1ab8a"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8dc0fba9a74b471c45ca1a3cb6e6913ebfae416678d90529d188886278e7f3f6"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a478aa11b328983c4444dacb947d4513cb371cd323f3845e53caeda6be5589d5"}, - {file = "aiohttp-3.11.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c160a04283c8c6f55b5bf6d4cad59bb9c5b9c9cd08903841b25f1f7109ef1259"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:edb69b9589324bdc40961cdf0657815df674f1743a8d5ad9ab56a99e4833cfdd"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ee84c2a22a809c4f868153b178fe59e71423e1f3d6a8cd416134bb231fbf6d3"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:bf4480a5438f80e0f1539e15a7eb8b5f97a26fe087e9828e2c0ec2be119a9f72"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:e6b2732ef3bafc759f653a98881b5b9cdef0716d98f013d376ee8dfd7285abf1"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f752e80606b132140883bb262a457c475d219d7163d996dc9072434ffb0784c4"}, - {file = "aiohttp-3.11.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ab3247d58b393bda5b1c8f31c9edece7162fc13265334217785518dd770792b8"}, - {file = "aiohttp-3.11.12-cp39-cp39-win32.whl", hash = "sha256:0d5176f310a7fe6f65608213cc74f4228e4f4ce9fd10bcb2bb6da8fc66991462"}, - {file = "aiohttp-3.11.12-cp39-cp39-win_amd64.whl", hash = "sha256:74bd573dde27e58c760d9ca8615c41a57e719bff315c9adb6f2a4281a28e8798"}, - {file = "aiohttp-3.11.12.tar.gz", hash = "sha256:7603ca26d75b1b86160ce1bbe2787a0b706e592af5b2504e12caa88a217767b0"}, -] - -[package.dependencies] -aiohappyeyeballs = ">=2.3.0" -aiosignal = ">=1.1.2" -async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} -attrs = ">=17.3.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -propcache = ">=0.2.0" -yarl = ">=1.17.0,<2.0" - -[package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] - -[[package]] -name = "aiosignal" -version = "1.3.2" -description = "aiosignal: a list of registered asynchronous callbacks" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, - {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" - -[[package]] -name = "alabaster" -version = "1.0.0" -description = "A light, configurable Sphinx theme" -optional = false -python-versions = ">=3.10" -files = [ - {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, - {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, -] - -[[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 = "async-timeout" -version = "5.0.1" -description = "Timeout context manager for asyncio programs" -optional = false -python-versions = ">=3.8" -files = [ - {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, - {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, -] - -[[package]] -name = "attrs" -version = "25.1.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.8" -files = [ - {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, - {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, -] - -[package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] - -[[package]] -name = "babel" -version = "2.17.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, -] - -[package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] - -[[package]] -name = "certifi" -version = "2025.1.31" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, -] - -[[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.4.1" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7" -files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, -] - -[[package]] -name = "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 = "copier" -version = "9.4.1" -description = "A library for rendering project templates." -optional = false -python-versions = ">=3.9" -files = [ - {file = "copier-9.4.1-py3-none-any.whl", hash = "sha256:863385b7ba8a9090c832cd12ca072dba9153397dbe7c5f337bf8c3d8859efa32"}, - {file = "copier-9.4.1.tar.gz", hash = "sha256:cc81d8204cb17fbc8c4a14996a8ce764166c34c77236de38cfbeb960c887b68f"}, -] - -[package.dependencies] -colorama = ">=0.4.6" -dunamai = ">=1.7.0" -funcy = ">=1.17" -jinja2 = ">=3.1.4" -jinja2-ansible-filters = ">=1.3.1" -packaging = ">=23.0" -pathspec = ">=0.9.0" -plumbum = ">=1.6.9" -pydantic = ">=2.4.2" -pygments = ">=2.7.1" -pyyaml = ">=5.3.1" -questionary = ">=1.8.1" - -[[package]] -name = "coverage" -version = "7.6.11" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "coverage-7.6.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eafea49da254a8289bed3fab960f808b322eda5577cb17a3733014928bbfbebd"}, - {file = "coverage-7.6.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5a3f7cbbcb4ad95067a6525f83a6fc78d9cbc1e70f8abaeeaeaa72ef34f48fc3"}, - {file = "coverage-7.6.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de6b079b39246a7da9a40cfa62d5766bd52b4b7a88cf5a82ec4c45bf6e152306"}, - {file = "coverage-7.6.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:60d4ad09dfc8c36c4910685faafcb8044c84e4dae302e86c585b3e2e7778726c"}, - {file = "coverage-7.6.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e433b6e3a834a43dae2889adc125f3fa4c66668df420d8e49bc4ee817dd7a70"}, - {file = "coverage-7.6.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ac5d92e2cc121a13270697e4cb37e1eb4511ac01d23fe1b6c097facc3b46489e"}, - {file = "coverage-7.6.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5128f3ba694c0a1bde55fc480090392c336236c3e1a10dad40dc1ab17c7675ff"}, - {file = "coverage-7.6.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:397489c611b76302dfa1d9ea079e138dddc4af80fc6819d5f5119ec8ca6c0e47"}, - {file = "coverage-7.6.11-cp310-cp310-win32.whl", hash = "sha256:c7719a5e1dc93883a6b319bc0374ecd46fb6091ed659f3fbe281ab991634b9b0"}, - {file = "coverage-7.6.11-cp310-cp310-win_amd64.whl", hash = "sha256:c27df03730059118b8a923cfc8b84b7e9976742560af528242f201880879c1da"}, - {file = "coverage-7.6.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:532fe139691af134aa8b54ed60dd3c806aa81312d93693bd2883c7b61592c840"}, - {file = "coverage-7.6.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0b0f272901a5172090c0802053fbc503cdc3fa2612720d2669a98a7384a7bec"}, - {file = "coverage-7.6.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4bda710139ea646890d1c000feb533caff86904a0e0638f85e967c28cb8eec50"}, - {file = "coverage-7.6.11-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a165b09e7d5f685bf659063334a9a7b1a2d57b531753d3e04bd442b3cfe5845b"}, - {file = "coverage-7.6.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ff136607689c1c87f43d24203b6d2055b42030f352d5176f9c8b204d4235ef27"}, - {file = "coverage-7.6.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:050172741de03525290e67f0161ae5f7f387c88fca50d47fceb4724ceaa591d2"}, - {file = "coverage-7.6.11-cp311-cp311-win32.whl", hash = "sha256:27700d859be68e4fb2e7bf774cf49933dcac6f81a9bc4c13bd41735b8d26a53b"}, - {file = "coverage-7.6.11-cp311-cp311-win_amd64.whl", hash = "sha256:cd4839813b09ab1dd1be1bbc74f9a7787615f931f83952b6a9af1b2d3f708bf7"}, - {file = "coverage-7.6.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dbb1a822fd858d9853333a7c95d4e70dde9a79e65893138ce32c2ec6457d7a36"}, - {file = "coverage-7.6.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:61c834cbb80946d6ebfddd9b393a4c46bec92fcc0fa069321fcb8049117f76ea"}, - {file = "coverage-7.6.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a46d56e99a31d858d6912d31ffa4ede6a325c86af13139539beefca10a1234ce"}, - {file = "coverage-7.6.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b48db06f53d1864fea6dbd855e6d51d41c0f06c212c3004511c0bdc6847b297"}, - {file = "coverage-7.6.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6ff5be3b1853e0862da9d349fe87f869f68e63a25f7c37ce1130b321140f963"}, - {file = "coverage-7.6.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be05bde21d5e6eefbc3a6de6b9bee2b47894b8945342e8663192809c4d1f08ce"}, - {file = "coverage-7.6.11-cp312-cp312-win32.whl", hash = "sha256:e3b746fa0ffc5b6b8856529de487da8b9aeb4fb394bb58de6502ef45f3434f12"}, - {file = "coverage-7.6.11-cp312-cp312-win_amd64.whl", hash = "sha256:ac476e6d0128fb7919b3fae726de72b28b5c9644cb4b579e4a523d693187c551"}, - {file = "coverage-7.6.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c86f4c7a6d1a54a24d804d9684d96e36a62d3ef7c0d7745ae2ea39e3e0293251"}, - {file = "coverage-7.6.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7eb0504bb307401fd08bc5163a351df301438b3beb88a4fa044681295bbefc67"}, - {file = "coverage-7.6.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca95d40900cf614e07f00cee8c2fad0371df03ca4d7a80161d84be2ec132b7a4"}, - {file = "coverage-7.6.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db4b1a69976b1b02acda15937538a1d3fe10b185f9d99920b17a740a0a102e06"}, - {file = "coverage-7.6.11-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf96beb05d004e4c51cd846fcdf9eee9eb2681518524b66b2e7610507944c2f"}, - {file = "coverage-7.6.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:08e5fb93576a6b054d3d326242af5ef93daaac9bb52bc25f12ccbc3fa94227cd"}, - {file = "coverage-7.6.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:25575cd5a7d2acc46b42711e8aff826027c0e4f80fb38028a74f31ac22aae69d"}, - {file = "coverage-7.6.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8fa4fffd90ee92f62ff7404b4801b59e8ea8502e19c9bf2d3241ce745b52926c"}, - {file = "coverage-7.6.11-cp313-cp313-win32.whl", hash = "sha256:0d03c9452d9d1ccfe5d3a5df0427705022a49b356ac212d529762eaea5ef97b4"}, - {file = "coverage-7.6.11-cp313-cp313-win_amd64.whl", hash = "sha256:fd2fffc8ce8692ce540103dff26279d2af22d424516ddebe2d7e4d6dbb3816b2"}, - {file = "coverage-7.6.11-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:5e7ac966ab110bd94ee844f2643f196d78fde1cd2450399116d3efdd706e19f5"}, - {file = "coverage-7.6.11-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ba27a0375c5ef4d2a7712f829265102decd5ff78b96d342ac2fa555742c4f4f"}, - {file = "coverage-7.6.11-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2778be4f574b39ec9dcd9e5e13644f770351ee0990a0ecd27e364aba95af89b"}, - {file = "coverage-7.6.11-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5edc16712187139ab635a2e644cc41fc239bc6d245b16124045743130455c652"}, - {file = "coverage-7.6.11-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6ff122a0a10a30121d9f0cb3fbd03a6fe05861e4ec47adb9f25e9245aabc19"}, - {file = "coverage-7.6.11-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ff562952f15eff27247a4c4b03e45ce8a82e3fb197de6a7c54080f9d4ba07845"}, - {file = "coverage-7.6.11-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4f21e3617f48d683f30cf2a6c8b739c838e600cb1454fe6b2eb486ac2bce8fbd"}, - {file = "coverage-7.6.11-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6d60577673ba48d8ae8e362e61fd4ad1a640293ffe8991d11c86f195479100b7"}, - {file = "coverage-7.6.11-cp313-cp313t-win32.whl", hash = "sha256:13100f98497086b359bf56fc035a762c674de8ef526daa389ac8932cb9bff1e0"}, - {file = "coverage-7.6.11-cp313-cp313t-win_amd64.whl", hash = "sha256:2c81e53782043b323bd34c7de711ed9b4673414eb517eaf35af92185b873839c"}, - {file = "coverage-7.6.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ff52b4e2ac0080c96e506819586c4b16cdbf46724bda90d308a7330a73cc8521"}, - {file = "coverage-7.6.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f4679fcc9eb9004fdd1b00231ef1ec7167168071bebc4d66327e28c1979b4449"}, - {file = "coverage-7.6.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:90de4e9ca4489e823138bd13098af9ac8028cc029f33f60098b5c08c675c7bda"}, - {file = "coverage-7.6.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c96a142057d83ee993eaf71629ca3fb952cda8afa9a70af4132950c2bd3deb9"}, - {file = "coverage-7.6.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:476f29a258b9cd153f2be5bf5f119d670d2806363595263917bddc167d6e5cce"}, - {file = "coverage-7.6.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:09d03f48d9025b8a6a116cddcb6c7b8ce80e4fb4c31dd2e124a7c377036ad58e"}, - {file = "coverage-7.6.11-cp39-cp39-win32.whl", hash = "sha256:bb35ae9f134fbd9cf7302a9654d5a1e597c974202678082dcc569eb39a8cde03"}, - {file = "coverage-7.6.11-cp39-cp39-win_amd64.whl", hash = "sha256:f382004fa4c93c01016d9226b9d696a08c53f6818b7ad59b4e96cb67e863353a"}, - {file = "coverage-7.6.11-pp39.pp310-none-any.whl", hash = "sha256:adc2d941c0381edfcf3897f94b9f41b1e504902fab78a04b1677f2f72afead4b"}, - {file = "coverage-7.6.11-py3-none-any.whl", hash = "sha256:f0f334ae844675420164175bf32b04e18a81fe57ad8eb7e0cfd4689d681ffed7"}, - {file = "coverage-7.6.11.tar.gz", hash = "sha256:e642e6a46a04e992ebfdabed79e46f478ec60e2c528e1e1a074d63800eda4286"}, -] - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "deepdiff" -version = "8.2.0" -description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." -optional = false -python-versions = ">=3.8" -files = [ - {file = "deepdiff-8.2.0-py3-none-any.whl", hash = "sha256:5091f2cdfd372b1b9f6bfd8065ba323ae31118dc4e42594371b38c8bea3fd0a4"}, - {file = "deepdiff-8.2.0.tar.gz", hash = "sha256:6ec78f65031485735545ffbe7a61e716c3c2d12ca6416886d5e9291fc76c46c3"}, -] - -[package.dependencies] -orderly-set = ">=5.3.0,<6" - -[package.extras] -cli = ["click (==8.1.8)", "pyyaml (==6.0.2)"] -optimize = ["orjson"] - -[[package]] -name = "distlib" -version = "0.3.9" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, -] - -[[package]] -name = "docutils" -version = "0.21.2" -description = "Docutils -- Python Documentation Utilities" -optional = false -python-versions = ">=3.9" -files = [ - {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, - {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, -] - -[[package]] -name = "dunamai" -version = "1.23.0" -description = "Dynamic version generation" -optional = false -python-versions = ">=3.5" -files = [ - {file = "dunamai-1.23.0-py3-none-any.whl", hash = "sha256:a0906d876e92441793c6a423e16a4802752e723e9c9a5aabdc5535df02dbe041"}, - {file = "dunamai-1.23.0.tar.gz", hash = "sha256:a163746de7ea5acb6dacdab3a6ad621ebc612ed1e528aaa8beedb8887fccd2c4"}, -] - -[package.dependencies] -packaging = ">=20.9" - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "filelock" -version = "3.17.0" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.9" -files = [ - {file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"}, - {file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] -typing = ["typing-extensions (>=4.12.2)"] - -[[package]] -name = "frozenlist" -version = "1.5.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -optional = false -python-versions = ">=3.8" -files = [ - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, - {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, - {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, - {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, - {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, - {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, - {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, - {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, - {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, - {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, - {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, - {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, - {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, - {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, - {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, -] - -[[package]] -name = "funcy" -version = "2.0" -description = "A fancy and practical functional tools" -optional = false -python-versions = "*" -files = [ - {file = "funcy-2.0-py2.py3-none-any.whl", hash = "sha256:53df23c8bb1651b12f095df764bfb057935d49537a56de211b098f4c79614bb0"}, - {file = "funcy-2.0.tar.gz", hash = "sha256:3963315d59d41c6f30c04bc910e10ab50a3ac4a225868bfa96feed133df075cb"}, -] - -[[package]] -name = "identify" -version = "2.6.7" -description = "File identification library for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "identify-2.6.7-py2.py3-none-any.whl", hash = "sha256:155931cb617a401807b09ecec6635d6c692d180090a1cedca8ef7d58ba5b6aa0"}, - {file = "identify-2.6.7.tar.gz", hash = "sha256:3fa266b42eba321ee0b2bb0936a6a6b9e36a1351cbb69055b3082f4193035684"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.10" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.6" -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "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 = "jinja2" -version = "3.1.5" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, - {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jinja2-ansible-filters" -version = "1.3.2" -description = "A port of Ansible's jinja2 filters without requiring ansible core." -optional = false -python-versions = "*" -files = [ - {file = "jinja2-ansible-filters-1.3.2.tar.gz", hash = "sha256:07c10cf44d7073f4f01102ca12d9a2dc31b41d47e4c61ed92ef6a6d2669b356b"}, - {file = "jinja2_ansible_filters-1.3.2-py3-none-any.whl", hash = "sha256:e1082f5564917649c76fed239117820610516ec10f87735d0338688800a55b34"}, -] - -[package.dependencies] -Jinja2 = "*" -PyYAML = "*" - -[package.extras] -test = ["pytest", "pytest-cov"] - -[[package]] -name = "libsass" -version = "0.23.0" -description = "Sass for Python: A straightforward binding of libsass for Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "libsass-0.23.0-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:34cae047cbbfc4ffa832a61cbb110f3c95f5471c6170c842d3fed161e40814dc"}, - {file = "libsass-0.23.0-cp38-abi3-macosx_14_0_arm64.whl", hash = "sha256:ea97d1b45cdc2fc3590cb9d7b60f1d8915d3ce17a98c1f2d4dd47ee0d9c68ce6"}, - {file = "libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306"}, - {file = "libsass-0.23.0-cp38-abi3-win32.whl", hash = "sha256:31e86d92a5c7a551df844b72d83fc2b5e50abc6fbbb31e296f7bebd6489ed1b4"}, - {file = "libsass-0.23.0-cp38-abi3-win_amd64.whl", hash = "sha256:a2ec85d819f353cbe807432d7275d653710d12b08ec7ef61c124a580a8352f3c"}, - {file = "libsass-0.23.0.tar.gz", hash = "sha256:6f209955ede26684e76912caf329f4ccb57e4a043fd77fe0e7348dd9574f1880"}, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.9" -files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, -] - -[[package]] -name = "mergedeep" -version = "1.3.4" -description = "A deep merge function for 🐍." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "more-itertools" -version = "10.6.0" -description = "More routines for operating on iterables, beyond itertools" -optional = false -python-versions = ">=3.9" -files = [ - {file = "more-itertools-10.6.0.tar.gz", hash = "sha256:2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b"}, - {file = "more_itertools-10.6.0-py3-none-any.whl", hash = "sha256:6eb054cb4b6db1473f6e15fcc676a08e4732548acd47c708f0e179c2c7c01e89"}, -] - -[[package]] -name = "msgpack" -version = "1.1.0" -description = "MessagePack serializer" -optional = false -python-versions = ">=3.8" -files = [ - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"}, - {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"}, - {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"}, - {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"}, - {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"}, - {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"}, - {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"}, - {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"}, - {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"}, - {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"}, - {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"}, - {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"}, - {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"}, - {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, -] - -[[package]] -name = "multidict" -version = "6.1.0" -description = "multidict implementation" -optional = false -python-versions = ">=3.8" -files = [ - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, - {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, - {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, - {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, - {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, - {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, - {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, - {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, - {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, - {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, - {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, - {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, - {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, - {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, - {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} - -[[package]] -name = "mypy" -version = "1.15.0" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, - {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, - {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, - {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, - {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, - {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, - {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, - {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, - {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, - {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"}, - {file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"}, - {file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"}, - {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, - {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, -] - -[package.dependencies] -mypy_extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing_extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -faster-cache = ["orjson"] -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 = "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 = "nova-mvvm" -version = "0.9.0" -description = "A Python Package for Model-View-ViewModel pattern" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_mvvm-0.9.0-py3-none-any.whl", hash = "sha256:60c70f8579b155e7081548e8aec9e77de497fa33ac569096015cffe27ef0f796"}, -] - -[package.dependencies] -deepdiff = ">=8.0.1,<9.0.0" -pytest-asyncio = ">=0.25.0,<0.26.0" -trame = ">=3.6.3,<4.0.0" - -[package.extras] -panel = ["panel (>=1.4.4,<2.0.0)"] -pyqt5 = ["pyqt5 (>=5.15.11,<6.0.0)"] -pyqt6 = ["pyqt6 (>=6.7.0,<7.0.0)"] - -[[package]] -name = "nova-trame" -version = "0.14.2" -description = "A Python Package for injecting curated themes and custom components into Trame applications" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_trame-0.14.2-py3-none-any.whl", hash = "sha256:225c97960947e7b107c5ed425213658ab192079253ecd13451cd06af66ef1ca3"}, -] - -[package.dependencies] -libsass = "*" -mergedeep = "*" -nova-mvvm = "*" -pydantic = "*" -tomli = "*" -trame = "*" -trame-vega = "*" -trame-vuetify = "*" - -[[package]] -name = "orderly-set" -version = "5.3.0" -description = "Orderly set" -optional = false -python-versions = ">=3.8" -files = [ - {file = "orderly_set-5.3.0-py3-none-any.whl", hash = "sha256:c2c0bfe604f5d3d9b24e8262a06feb612594f37aa3845650548befd7772945d1"}, - {file = "orderly_set-5.3.0.tar.gz", hash = "sha256:80b3d8fdd3d39004d9aad389eaa0eab02c71f0a0511ba3a6d54a935a6c6a0acc"}, -] - -[[package]] -name = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "platformdirs" -version = "4.3.6" -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.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] - -[[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 = "plumbum" -version = "1.9.0" -description = "Plumbum: shell combinators library" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5"}, - {file = "plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219"}, -] - -[package.dependencies] -pywin32 = {version = "*", markers = "platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""} - -[package.extras] -dev = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] -docs = ["sphinx (>=4.0.0)", "sphinx-rtd-theme (>=1.0.0)"] -ssh = ["paramiko"] -test = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] - -[[package]] -name = "pockets" -version = "0.9.1" -description = "A collection of helpful Python tools!" -optional = false -python-versions = "*" -files = [ - {file = "pockets-0.9.1-py2.py3-none-any.whl", hash = "sha256:68597934193c08a08eb2bf6a1d85593f627c22f9b065cc727a4f03f669d96d86"}, - {file = "pockets-0.9.1.tar.gz", hash = "sha256:9320f1a3c6f7a9133fe3b571f283bcf3353cd70249025ae8d618e40e9f7e92b3"}, -] - -[package.dependencies] -six = ">=1.5.2" - -[[package]] -name = "pre-commit" -version = "4.1.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = false -python-versions = ">=3.9" -files = [ - {file = "pre_commit-4.1.0-py2.py3-none-any.whl", hash = "sha256:d29e7cb346295bcc1cc75fc3e92e343495e3ea0196c9ec6ba53f49f10ab6ae7b"}, - {file = "pre_commit-4.1.0.tar.gz", hash = "sha256:ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4"}, -] - -[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.50" -description = "Library for building powerful interactive command lines in Python" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, - {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "propcache" -version = "0.2.1" -description = "Accelerated property cache" -optional = false -python-versions = ">=3.9" -files = [ - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, - {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, - {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, - {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, - {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, - {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, - {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, - {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, - {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, - {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, - {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, - {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, - {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, -] - -[[package]] -name = "pydantic" -version = "2.10.6" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, - {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.27.2" -typing-extensions = ">=4.12.2" - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] - -[[package]] -name = "pydantic-core" -version = "2.27.2" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, - {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pygments" -version = "2.19.1" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pytest" -version = "8.3.4" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, - {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-asyncio" -version = "0.25.3" -description = "Pytest support for asyncio" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3"}, - {file = "pytest_asyncio-0.25.3.tar.gz", hash = "sha256:fc1da2cf9f125ada7e710b4ddad05518d4cee187ae9412e9ac9271003497f07a"}, -] - -[package.dependencies] -pytest = ">=8.2,<9" - -[package.extras] -docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] -testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] - -[[package]] -name = "pywin32" -version = "308" -description = "Python for Window Extensions" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, - {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, - {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, - {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, - {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, - {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, - {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, - {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, - {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, - {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, - {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, - {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, - {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, - {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, - {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, - {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, - {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, - {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "questionary" -version = "2.1.0" -description = "Python library to build pretty command line user prompts ⭐️" -optional = false -python-versions = ">=3.8" -files = [ - {file = "questionary-2.1.0-py3-none-any.whl", hash = "sha256:44174d237b68bc828e4878c763a9ad6790ee61990e0ae72927694ead57bab8ec"}, - {file = "questionary-2.1.0.tar.gz", hash = "sha256:6302cdd645b19667d8f6e6634774e9538bfcd1aad9be287e743d96cacaf95587"}, -] - -[package.dependencies] -prompt_toolkit = ">=2.0,<4.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 = "ruff" -version = "0.9.6" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.9.6-py3-none-linux_armv6l.whl", hash = "sha256:2f218f356dd2d995839f1941322ff021c72a492c470f0b26a34f844c29cdf5ba"}, - {file = "ruff-0.9.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b908ff4df65dad7b251c9968a2e4560836d8f5487c2f0cc238321ed951ea0504"}, - {file = "ruff-0.9.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b109c0ad2ececf42e75fa99dc4043ff72a357436bb171900714a9ea581ddef83"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1de4367cca3dac99bcbd15c161404e849bb0bfd543664db39232648dc00112dc"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac3ee4d7c2c92ddfdaedf0bf31b2b176fa7aa8950efc454628d477394d35638b"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5dc1edd1775270e6aa2386119aea692039781429f0be1e0949ea5884e011aa8e"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:4a091729086dffa4bd070aa5dab7e39cc6b9d62eb2bef8f3d91172d30d599666"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1bbc6808bf7b15796cef0815e1dfb796fbd383e7dbd4334709642649625e7c5"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:589d1d9f25b5754ff230dce914a174a7c951a85a4e9270613a2b74231fdac2f5"}, - {file = "ruff-0.9.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc61dd5131742e21103fbbdcad683a8813be0e3c204472d520d9a5021ca8b217"}, - {file = "ruff-0.9.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5e2d9126161d0357e5c8f30b0bd6168d2c3872372f14481136d13de9937f79b6"}, - {file = "ruff-0.9.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:68660eab1a8e65babb5229a1f97b46e3120923757a68b5413d8561f8a85d4897"}, - {file = "ruff-0.9.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c4cae6c4cc7b9b4017c71114115db0445b00a16de3bcde0946273e8392856f08"}, - {file = "ruff-0.9.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:19f505b643228b417c1111a2a536424ddde0db4ef9023b9e04a46ed8a1cb4656"}, - {file = "ruff-0.9.6-py3-none-win32.whl", hash = "sha256:194d8402bceef1b31164909540a597e0d913c0e4952015a5b40e28c146121b5d"}, - {file = "ruff-0.9.6-py3-none-win_amd64.whl", hash = "sha256:03482d5c09d90d4ee3f40d97578423698ad895c87314c4de39ed2af945633caa"}, - {file = "ruff-0.9.6-py3-none-win_arm64.whl", hash = "sha256:0e2bb706a2be7ddfea4a4af918562fdc1bcb16df255e5fa595bbd800ce322a5a"}, - {file = "ruff-0.9.6.tar.gz", hash = "sha256:81761592f72b620ec8fa1068a6fd00e98a5ebee342a3642efd84454f3031dca9"}, -] - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -optional = false -python-versions = "*" -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "sphinx" -version = "8.1.3" -description = "Python documentation generator" -optional = false -python-versions = ">=3.10" -files = [ - {file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"}, - {file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"}, -] - -[package.dependencies] -alabaster = ">=0.7.14" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" -imagesize = ">=1.3" -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" -sphinxcontrib-applehelp = ">=1.0.7" -sphinxcontrib-devhelp = ">=1.0.6" -sphinxcontrib-htmlhelp = ">=2.0.6" -sphinxcontrib-jsmath = ">=1.0.1" -sphinxcontrib-qthelp = ">=1.0.6" -sphinxcontrib-serializinghtml = ">=1.1.9" -tomli = {version = ">=2", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] - -[[package]] -name = "sphinx-rtd-theme" -version = "3.0.2" -description = "Read the Docs theme for Sphinx" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, - {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, -] - -[package.dependencies] -docutils = ">0.18,<0.22" -sphinx = ">=6,<9" -sphinxcontrib-jquery = ">=4,<5" - -[package.extras] -dev = ["bump2version", "transifex-client", "twine", "wheel"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, - {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, - {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, - {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jquery" -version = "4.1" -description = "Extension to include jQuery on newer Sphinx releases" -optional = false -python-versions = ">=2.7" -files = [ - {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, - {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, -] - -[package.dependencies] -Sphinx = ">=1.8" - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -optional = false -python-versions = ">=3.5" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-napoleon" -version = "0.7" -description = "Sphinx \"napoleon\" extension." -optional = false -python-versions = "*" -files = [ - {file = "sphinxcontrib-napoleon-0.7.tar.gz", hash = "sha256:407382beed396e9f2d7f3043fad6afda95719204a1e1a231ac865f40abcbfcf8"}, - {file = "sphinxcontrib_napoleon-0.7-py2.py3-none-any.whl", hash = "sha256:711e41a3974bdf110a484aec4c1a556799eb0b3f3b897521a018ad7e2db13fef"}, -] - -[package.dependencies] -pockets = ">=0.3" -six = ">=1.5.2" - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, - {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, - {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "tomli" -version = "2.2.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, -] - -[[package]] -name = "trame" -version = "3.8.0" -description = "Trame, a framework to build applications in plain Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame-3.8.0-py3-none-any.whl", hash = "sha256:e4c9e648938ec0759f6893ba7afd095afaf0c88b4b8202157717691e135e924f"}, - {file = "trame-3.8.0.tar.gz", hash = "sha256:d084942828ac7930e05dbb765468cffe4ef8bd5170dbd48333a930140b540ccd"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" -trame-server = ">=3.2.3,<4" -wslink = ">=2.1.3" - -[package.extras] -app = ["pywebview"] -dev = ["pre-commit", "pytest", "ruff"] -jupyter = ["jupyterlab"] - -[[package]] -name = "trame-client" -version = "3.5.2" -description = "Internal client of trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_client-3.5.2-py3-none-any.whl", hash = "sha256:8a950482a437c8245b66bfeb00ac5d7b880b9023f32199e28f15d04f29205ee1"}, - {file = "trame_client-3.5.2.tar.gz", hash = "sha256:e46ddb8e3d611bff90803bff176044083ed85095544557a499eae9c231abedc5"}, -] - -[package.extras] -dev = ["pre-commit", "ruff"] -test = ["Pillow", "pixelmatch", "pytest", "pytest-xprocess", "seleniumbase"] - -[[package]] -name = "trame-server" -version = "3.3.0" -description = "Internal server side implementation of trame" -optional = false -python-versions = ">=3.7" -files = [ - {file = "trame_server-3.3.0-py3-none-any.whl", hash = "sha256:7865053d82617c8d435d274ccf917594a2b1c0d90379f9e686cd662c7ee9cf1a"}, - {file = "trame_server-3.3.0.tar.gz", hash = "sha256:b0b1769d9a0eb816c69076188773cb93b0e2f83c27009d8e94d7208e63c33805"}, -] - -[package.dependencies] -more-itertools = "*" -wslink = ">=2.2.2,<3" - -[package.extras] -dev = ["pre-commit", "pytest", "pytest-asyncio", "ruff"] - -[[package]] -name = "trame-vega" -version = "2.1.1" -description = "Vega widget for trame" -optional = false -python-versions = "*" -files = [ - {file = "trame-vega-2.1.1.tar.gz", hash = "sha256:a3d82f7535a66a782262647001987dba3ad0ddc64ce21225a4cfccd351fed8fa"}, - {file = "trame_vega-2.1.1-py3-none-any.whl", hash = "sha256:044ea338f74fe83e7a5eca15fd1723b3b5f2847d5ca0ed2f0325e30d7676b6c9"}, -] - -[package.dependencies] -trame-client = "*" - -[[package]] -name = "trame-vuetify" -version = "2.8.1" -description = "Vuetify widgets for trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_vuetify-2.8.1-py3-none-any.whl", hash = "sha256:47d35ab4ec6d37ad1ad8e63c0a2de7c25677f62ef383f1b1e06dd74dda8a3767"}, - {file = "trame_vuetify-2.8.1.tar.gz", hash = "sha256:281606797c29b0300ec2b3524c4396ac2b78da1a300d188d603af09eea83bfe2"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" - -[package.extras] -dev = ["pre-commit", "pytest", "ruff"] - -[[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 = "urllib3" -version = "2.3.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.9" -files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.29.1" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.8" -files = [ - {file = "virtualenv-20.29.1-py3-none-any.whl", hash = "sha256:4e4cb403c0b0da39e13b46b1b2476e505cb0046b25f242bee80f62bf990b2779"}, - {file = "virtualenv-20.29.1.tar.gz", hash = "sha256:b8b8970138d32fb606192cb97f6cd4bb644fa486be9308fb9b63f81091b5dc35"}, -] - -[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 = "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 = "wslink" -version = "2.2.2" -description = "Python/JavaScript library for communicating over WebSocket" -optional = false -python-versions = "*" -files = [ - {file = "wslink-2.2.2-py3-none-any.whl", hash = "sha256:8fbab2fb89d0215b9ac3da0a20d554e6b1e05bab8b97883923e7f7ffeaef43d3"}, - {file = "wslink-2.2.2.tar.gz", hash = "sha256:f9c24c08b89d2bd9bd77951ad0c01da9c28905dda29d7397f7f72b542c496840"}, -] - -[package.dependencies] -aiohttp = "<4" -msgpack = ">=1,<2" - -[package.extras] -ssl = ["cryptography"] - -[[package]] -name = "yarl" -version = "1.18.3" -description = "Yet another URL library" -optional = false -python-versions = ">=3.9" -files = [ - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, - {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, - {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, - {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, - {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, - {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, - {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, - {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, - {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, - {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, - {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, - {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, - {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -propcache = ">=0.2.0" - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "1131a1a151f36bbe11b4fc723d87b3b6ff1d523b617c477bea8ff7b11b8c9997" diff --git a/code/episode_6/pydantic_mvvm/pyproject.toml b/code/episode_6/pydantic_mvvm/pyproject.toml index b66d4e9f..845d9f62 100644 --- a/code/episode_6/pydantic_mvvm/pyproject.toml +++ b/code/episode_6/pydantic_mvvm/pyproject.toml @@ -1,24 +1,56 @@ -[tool.poetry] +[project] name = "trame-with-pydantic" version = "0.1.0" -description = "Trame With Pydantic Project" +description = "Trame with Pydantic Project" authors = [] readme = "README.md" license = "MIT" keywords = ["NDIP", "NOVA", "python"] +requires-python = ">=3.10,<3.14" -packages = [ - { include = "trame_with_pydantic", from = "src" } -] +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["linux-64", "osx-64"] + +[tool.pixi.environments] +default = {features = ["dev"], solve-group = "default"} +production = {features = [], solve-group = "default"} +[tool.pixi.dependencies] -[tool.poetry.dependencies] -python = "^3.10" +[tool.pixi.pypi-dependencies] +trame-with-pydantic = { path = ".", editable = true } +hatch = "*" +gitpython = ">=3.1.40,<4" +python-gitlab = ">=5.6.0,<6" nova-trame = "*" +trame-datagrid = ">=0.2.2" + + +[tool.pixi.feature.dev.pypi-dependencies] +mypy = ">=1.10.0" +pre-commit = ">=2.20.0" +coverage = ">=6.4.3" +pytest = "*" +ruff = ">=0.6.2" +copier=">=9.3" +sphinx = "*" +sphinx-rtd-theme = "*" +sphinxcontrib-napoleon ="*" +tomli = "*" + +[tool.pixi.tasks] +app = "python -m src.trame_with_pydantic.app" +init-repo = "python -m scripts.git_utils" +deploy-production = "python -m scripts.xml_utils" +deploy-prototype = "python -m scripts.xml_utils_prototype" + [build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +requires = ["hatchling"] +build-backend = "hatchling.build" +[tool.hatch.build.targets.wheel] +packages = ["src/trame_with_pydantic"] [tool.pytest.ini_options] testpaths = ["tests"] @@ -26,6 +58,7 @@ python_files = ["test*.py"] norecursedirs = [".git", "tmp*", "_tmp*", "__pycache__"] [tool.ruff] +extend-exclude = [".pixi"] line-length = 120 [tool.ruff.lint] @@ -50,8 +83,6 @@ ignore = [ [tool.ruff.lint.extend-per-file-ignores] '__init__.py' = ['D104'] # Missing docstring in public package - - [tool.ruff.lint.pydocstyle] convention = "numpy" @@ -71,19 +102,4 @@ omit = [ [tool.coverage.run] command_line = "-m pytest --junit-xml=reports/junit.xml" -data_file = "reports/.coverage" - -[tool.poetry.dev-dependencies] -mypy = ">=1.10.0" -pre-commit = ">=2.20.0" -coverage = ">=6.4.3" -pytest = "*" -ruff = ">=0.6.2" -copier=">=9.3" -sphinx = "*" -sphinx-rtd-theme = "*" -sphinxcontrib-napoleon ="*" -tomli = "*" - -[tool.poetry.scripts] -app = "trame_with_pydantic.app:main" +data_file = "reports/.coverage" \ No newline at end of file diff --git a/code/episode_6/pydantic_mvvm/scripts/.gitkeep b/code/episode_6/pydantic_mvvm/scripts/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/main.py b/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/main.py index 2977dbe1..68cf8a37 100644 --- a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/main.py +++ b/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/main.py @@ -5,7 +5,7 @@ def main() -> None: kwargs = {} - from .views.main import MainApp + from .views.main_view import MainApp app = MainApp() for arg in sys.argv[2:]: diff --git a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/models/settings.py b/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/models/settings.py index 7af46e4c..7b230075 100644 --- a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/models/settings.py +++ b/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/models/settings.py @@ -1,6 +1,7 @@ from pydantic import BaseModel, Field -class SettingsModel(BaseModel): - """Settings model.""" - port: int = Field(default=8080, gt=0, lt=65536, title="Port Number", description="The port to listen on.", examples=["12345"]) +class SettingsModel(BaseModel): + port: int = Field( + default=8080, gt=0, lt=65536, title="Port Number", description="The port to listen on.", examples=["12345"] + ) diff --git a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/mvvm_factory.py b/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/mvvm_factory.py index d7cf5f4b..c11e5916 100644 --- a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/mvvm_factory.py +++ b/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/mvvm_factory.py @@ -3,7 +3,7 @@ from nova.mvvm.interface import BindingInterface from .models.main_model import MainModel -from .view_models.main import MainViewModel +from .view_models.main_view_model import MainViewModel def create_viewmodels(binding: BindingInterface) -> dict: diff --git a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/view_models/main.py b/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/view_models/main.py deleted file mode 100644 index dfcba7ae..00000000 --- a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/view_models/main.py +++ /dev/null @@ -1,24 +0,0 @@ -"""Module for the main ViewModel.""" - -from typing import Any, Dict - -from nova.mvvm.interface import BindingInterface - -from ..models.settings import SettingsModel - - -class MainViewModel: - """Viewmodel class, used to create data<->view binding and react on changes from GUI.""" - - def __init__(self, _, binding: BindingInterface): - self.settings = SettingsModel() - self.settings_bind = binding.new_bind(self.settings, callback_after_update=self.process_settings_change) - - def process_settings_change(self, results: Dict[str, Any]) -> None: - if results["error"]: - print(f"error in fields {results['errored']}, model not changed") - else: - print(f"model fields updated: {results['updated']}") - - def update_view(self) -> None: - self.settings_bind.update_in_view(self.settings) diff --git a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/views/main.py b/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/views/main.py deleted file mode 100644 index 65f5b0b2..00000000 --- a/code/episode_6/pydantic_mvvm/src/trame_with_pydantic/app/views/main.py +++ /dev/null @@ -1,43 +0,0 @@ -"""Main file.""" - -import logging - -from nova.mvvm.trame_binding import TrameBinding -from nova.trame import ThemedApp -from trame.app import get_server -from nova.trame.view.components import InputField -from trame.widgets import vuetify3 as vuetify - -from ..mvvm_factory import create_viewmodels -from ..view_models.main import MainViewModel - -logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - - -class MainApp(ThemedApp): - """Main application view class. Renders all UI elements on the mainn page.""" - - def __init__(self) -> None: - super().__init__() - self.server = get_server(None, client_type="vue3") - binding = TrameBinding(self.server.state) - self.server.state.trame__title = "Trame With Pydantic" - self.view_models = create_viewmodels(binding) - self.view_model: MainViewModel = self.view_models["main"] - self.view_model.settings_bind.connect("settings") - self.create_ui() - - def create_ui(self) -> None: - self.state.trame__title = "Trame With Pydantic" - - with super().create_ui() as layout: - layout.toolbar_title.set_text("Trame With Pydantic") - with layout.pre_content: - pass - with layout.content: - with vuetify.VRow(align="center", classes="mt-4"): - InputField(v_model="settings.port") - with layout.post_content: - pass - return layout diff --git a/code/episode_6/pydantic_mvvm/tests/test_app.py b/code/episode_6/pydantic_mvvm/tests/test_app.py deleted file mode 100644 index 78d760c2..00000000 --- a/code/episode_6/pydantic_mvvm/tests/test_app.py +++ /dev/null @@ -1,8 +0,0 @@ -"""Test package for application.""" - -from trame_with_pydantic.app.views.main import MainApp - - -def test_app() -> None: - app = MainApp() - assert app diff --git a/code/episode_6/pydantic_mvvm/tests/test_model.py b/code/episode_6/pydantic_mvvm/tests/test_model.py deleted file mode 100644 index 6a511da9..00000000 --- a/code/episode_6/pydantic_mvvm/tests/test_model.py +++ /dev/null @@ -1,9 +0,0 @@ -"""Test package for model classes.""" - -from trame_with_pydantic.app.models.main_model import MainModel - - -def test_main_model_defaults() -> None: - model = MainModel() - assert model.username == "test_name" - assert model.password == "test_password" diff --git a/code/episode_7/poetry.lock b/code/episode_7/poetry.lock deleted file mode 100755 index 1deb2d26..00000000 --- a/code/episode_7/poetry.lock +++ /dev/null @@ -1,3311 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "aiohappyeyeballs" -version = "2.6.1" -description = "Happy Eyeballs for asyncio" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"}, - {file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"}, -] - -[[package]] -name = "aiohttp" -version = "3.11.16" -description = "Async http client/server framework (asyncio)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb46bb0f24813e6cede6cc07b1961d4b04f331f7112a23b5e21f567da4ee50aa"}, - {file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:54eb3aead72a5c19fad07219acd882c1643a1027fbcdefac9b502c267242f955"}, - {file = "aiohttp-3.11.16-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:38bea84ee4fe24ebcc8edeb7b54bf20f06fd53ce4d2cc8b74344c5b9620597fd"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0666afbe984f6933fe72cd1f1c3560d8c55880a0bdd728ad774006eb4241ecd"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba92a2d9ace559a0a14b03d87f47e021e4fa7681dc6970ebbc7b447c7d4b7cd"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ad1d59fd7114e6a08c4814983bb498f391c699f3c78712770077518cae63ff7"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b88a2bf26965f2015a771381624dd4b0839034b70d406dc74fd8be4cc053e3"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:576f5ca28d1b3276026f7df3ec841ae460e0fc3aac2a47cbf72eabcfc0f102e1"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a2a450bcce4931b295fc0848f384834c3f9b00edfc2150baafb4488c27953de6"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:37dcee4906454ae377be5937ab2a66a9a88377b11dd7c072df7a7c142b63c37c"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4d0c970c0d602b1017e2067ff3b7dac41c98fef4f7472ec2ea26fd8a4e8c2149"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:004511d3413737700835e949433536a2fe95a7d0297edd911a1e9705c5b5ea43"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:c15b2271c44da77ee9d822552201180779e5e942f3a71fb74e026bf6172ff287"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad9509ffb2396483ceacb1eee9134724443ee45b92141105a4645857244aecc8"}, - {file = "aiohttp-3.11.16-cp310-cp310-win32.whl", hash = "sha256:634d96869be6c4dc232fc503e03e40c42d32cfaa51712aee181e922e61d74814"}, - {file = "aiohttp-3.11.16-cp310-cp310-win_amd64.whl", hash = "sha256:938f756c2b9374bbcc262a37eea521d8a0e6458162f2a9c26329cc87fdf06534"}, - {file = "aiohttp-3.11.16-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8cb0688a8d81c63d716e867d59a9ccc389e97ac7037ebef904c2b89334407180"}, - {file = "aiohttp-3.11.16-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0ad1fb47da60ae1ddfb316f0ff16d1f3b8e844d1a1e154641928ea0583d486ed"}, - {file = "aiohttp-3.11.16-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:df7db76400bf46ec6a0a73192b14c8295bdb9812053f4fe53f4e789f3ea66bbb"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc3a145479a76ad0ed646434d09216d33d08eef0d8c9a11f5ae5cdc37caa3540"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d007aa39a52d62373bd23428ba4a2546eed0e7643d7bf2e41ddcefd54519842c"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6ddd90d9fb4b501c97a4458f1c1720e42432c26cb76d28177c5b5ad4e332601"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a2f451849e6b39e5c226803dcacfa9c7133e9825dcefd2f4e837a2ec5a3bb98"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8df6612df74409080575dca38a5237282865408016e65636a76a2eb9348c2567"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:78e6e23b954644737e385befa0deb20233e2dfddf95dd11e9db752bdd2a294d3"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:696ef00e8a1f0cec5e30640e64eca75d8e777933d1438f4facc9c0cdf288a810"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3538bc9fe1b902bef51372462e3d7c96fce2b566642512138a480b7adc9d508"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3ab3367bb7f61ad18793fea2ef71f2d181c528c87948638366bf1de26e239183"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:56a3443aca82abda0e07be2e1ecb76a050714faf2be84256dae291182ba59049"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:61c721764e41af907c9d16b6daa05a458f066015abd35923051be8705108ed17"}, - {file = "aiohttp-3.11.16-cp311-cp311-win32.whl", hash = "sha256:3e061b09f6fa42997cf627307f220315e313ece74907d35776ec4373ed718b86"}, - {file = "aiohttp-3.11.16-cp311-cp311-win_amd64.whl", hash = "sha256:745f1ed5e2c687baefc3c5e7b4304e91bf3e2f32834d07baaee243e349624b24"}, - {file = "aiohttp-3.11.16-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:911a6e91d08bb2c72938bc17f0a2d97864c531536b7832abee6429d5296e5b27"}, - {file = "aiohttp-3.11.16-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac13b71761e49d5f9e4d05d33683bbafef753e876e8e5a7ef26e937dd766713"}, - {file = "aiohttp-3.11.16-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fd36c119c5d6551bce374fcb5c19269638f8d09862445f85a5a48596fd59f4bb"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d489d9778522fbd0f8d6a5c6e48e3514f11be81cb0a5954bdda06f7e1594b321"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69a2cbd61788d26f8f1e626e188044834f37f6ae3f937bd9f08b65fc9d7e514e"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd464ba806e27ee24a91362ba3621bfc39dbbb8b79f2e1340201615197370f7c"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ce63ae04719513dd2651202352a2beb9f67f55cb8490c40f056cea3c5c355ce"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09b00dd520d88eac9d1768439a59ab3d145065c91a8fab97f900d1b5f802895e"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7f6428fee52d2bcf96a8aa7b62095b190ee341ab0e6b1bcf50c615d7966fd45b"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:13ceac2c5cdcc3f64b9015710221ddf81c900c5febc505dbd8f810e770011540"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fadbb8f1d4140825069db3fedbbb843290fd5f5bc0a5dbd7eaf81d91bf1b003b"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6a792ce34b999fbe04a7a71a90c74f10c57ae4c51f65461a411faa70e154154e"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f4065145bf69de124accdd17ea5f4dc770da0a6a6e440c53f6e0a8c27b3e635c"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa73e8c2656a3653ae6c307b3f4e878a21f87859a9afab228280ddccd7369d71"}, - {file = "aiohttp-3.11.16-cp312-cp312-win32.whl", hash = "sha256:f244b8e541f414664889e2c87cac11a07b918cb4b540c36f7ada7bfa76571ea2"}, - {file = "aiohttp-3.11.16-cp312-cp312-win_amd64.whl", hash = "sha256:23a15727fbfccab973343b6d1b7181bfb0b4aa7ae280f36fd2f90f5476805682"}, - {file = "aiohttp-3.11.16-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a3814760a1a700f3cfd2f977249f1032301d0a12c92aba74605cfa6ce9f78489"}, - {file = "aiohttp-3.11.16-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9b751a6306f330801665ae69270a8a3993654a85569b3469662efaad6cf5cc50"}, - {file = "aiohttp-3.11.16-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ad497f38a0d6c329cb621774788583ee12321863cd4bd9feee1effd60f2ad133"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca37057625693d097543bd88076ceebeb248291df9d6ca8481349efc0b05dcd0"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5abcbba9f4b463a45c8ca8b7720891200658f6f46894f79517e6cd11f3405ca"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f420bfe862fb357a6d76f2065447ef6f484bc489292ac91e29bc65d2d7a2c84d"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58ede86453a6cf2d6ce40ef0ca15481677a66950e73b0a788917916f7e35a0bb"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fdec0213244c39973674ca2a7f5435bf74369e7d4e104d6c7473c81c9bcc8c4"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:72b1b03fb4655c1960403c131740755ec19c5898c82abd3961c364c2afd59fe7"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:780df0d837276276226a1ff803f8d0fa5f8996c479aeef52eb040179f3156cbd"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ecdb8173e6c7aa09eee342ac62e193e6904923bd232e76b4157ac0bfa670609f"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a6db7458ab89c7d80bc1f4e930cc9df6edee2200127cfa6f6e080cf619eddfbd"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2540ddc83cc724b13d1838026f6a5ad178510953302a49e6d647f6e1de82bc34"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3b4e6db8dc4879015b9955778cfb9881897339c8fab7b3676f8433f849425913"}, - {file = "aiohttp-3.11.16-cp313-cp313-win32.whl", hash = "sha256:493910ceb2764f792db4dc6e8e4b375dae1b08f72e18e8f10f18b34ca17d0979"}, - {file = "aiohttp-3.11.16-cp313-cp313-win_amd64.whl", hash = "sha256:42864e70a248f5f6a49fdaf417d9bc62d6e4d8ee9695b24c5916cb4bb666c802"}, - {file = "aiohttp-3.11.16-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bbcba75fe879ad6fd2e0d6a8d937f34a571f116a0e4db37df8079e738ea95c71"}, - {file = "aiohttp-3.11.16-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:87a6e922b2b2401e0b0cf6b976b97f11ec7f136bfed445e16384fbf6fd5e8602"}, - {file = "aiohttp-3.11.16-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccf10f16ab498d20e28bc2b5c1306e9c1512f2840f7b6a67000a517a4b37d5ee"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb3d0cc5cdb926090748ea60172fa8a213cec728bd6c54eae18b96040fcd6227"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d07502cc14ecd64f52b2a74ebbc106893d9a9717120057ea9ea1fd6568a747e7"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:776c8e959a01e5e8321f1dec77964cb6101020a69d5a94cd3d34db6d555e01f7"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0902e887b0e1d50424112f200eb9ae3dfed6c0d0a19fc60f633ae5a57c809656"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e87fd812899aa78252866ae03a048e77bd11b80fb4878ce27c23cade239b42b2"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0a950c2eb8ff17361abd8c85987fd6076d9f47d040ebffce67dce4993285e973"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:c10d85e81d0b9ef87970ecbdbfaeec14a361a7fa947118817fcea8e45335fa46"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:7951decace76a9271a1ef181b04aa77d3cc309a02a51d73826039003210bdc86"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:14461157d8426bcb40bd94deb0450a6fa16f05129f7da546090cebf8f3123b0f"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9756d9b9d4547e091f99d554fbba0d2a920aab98caa82a8fb3d3d9bee3c9ae85"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:87944bd16b7fe6160607f6a17808abd25f17f61ae1e26c47a491b970fb66d8cb"}, - {file = "aiohttp-3.11.16-cp39-cp39-win32.whl", hash = "sha256:92b7ee222e2b903e0a4b329a9943d432b3767f2d5029dbe4ca59fb75223bbe2e"}, - {file = "aiohttp-3.11.16-cp39-cp39-win_amd64.whl", hash = "sha256:17ae4664031aadfbcb34fd40ffd90976671fa0c0286e6c4113989f78bebab37a"}, - {file = "aiohttp-3.11.16.tar.gz", hash = "sha256:16f8a2c9538c14a557b4d309ed4d0a7c60f0253e8ed7b6c9a2859a7582f8b1b8"}, -] - -[package.dependencies] -aiohappyeyeballs = ">=2.3.0" -aiosignal = ">=1.1.2" -async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} -attrs = ">=17.3.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -propcache = ">=0.2.0" -yarl = ">=1.17.0,<2.0" - -[package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] - -[[package]] -name = "aiosignal" -version = "1.3.2" -description = "aiosignal: a list of registered asynchronous callbacks" -optional = false -python-versions = ">=3.9" -files = [ - {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, - {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" - -[[package]] -name = "alabaster" -version = "1.0.0" -description = "A light, configurable Sphinx theme" -optional = false -python-versions = ">=3.10" -files = [ - {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, - {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, -] - -[[package]] -name = "altair" -version = "5.5.0" -description = "Vega-Altair: A declarative statistical visualization library for Python." -optional = false -python-versions = ">=3.9" -files = [ - {file = "altair-5.5.0-py3-none-any.whl", hash = "sha256:91a310b926508d560fe0148d02a194f38b824122641ef528113d029fcd129f8c"}, - {file = "altair-5.5.0.tar.gz", hash = "sha256:d960ebe6178c56de3855a68c47b516be38640b73fb3b5111c2a9ca90546dd73d"}, -] - -[package.dependencies] -jinja2 = "*" -jsonschema = ">=3.0" -narwhals = ">=1.14.2" -packaging = "*" -typing-extensions = {version = ">=4.10.0", markers = "python_version < \"3.14\""} - -[package.extras] -all = ["altair-tiles (>=0.3.0)", "anywidget (>=0.9.0)", "numpy", "pandas (>=1.1.3)", "pyarrow (>=11)", "vega-datasets (>=0.9.0)", "vegafusion[embed] (>=1.6.6)", "vl-convert-python (>=1.7.0)"] -dev = ["duckdb (>=1.0)", "geopandas", "hatch (>=1.13.0)", "ipython[kernel]", "mistune", "mypy", "pandas (>=1.1.3)", "pandas-stubs", "polars (>=0.20.3)", "pyarrow-stubs", "pytest", "pytest-cov", "pytest-xdist[psutil] (>=3.5,<4.0)", "ruff (>=0.6.0)", "types-jsonschema", "types-setuptools"] -doc = ["docutils", "jinja2", "myst-parser", "numpydoc", "pillow (>=9,<10)", "pydata-sphinx-theme (>=0.14.1)", "scipy", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinxext-altair"] -save = ["vl-convert-python (>=1.7.0)"] - -[[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 = "async-timeout" -version = "5.0.1" -description = "Timeout context manager for asyncio programs" -optional = false -python-versions = ">=3.8" -files = [ - {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, - {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, -] - -[[package]] -name = "attrs" -version = "25.3.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.8" -files = [ - {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, - {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, -] - -[package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] - -[[package]] -name = "babel" -version = "2.17.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, -] - -[package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] - -[[package]] -name = "bioblend" -version = "1.5.0" -description = "Library for interacting with the Galaxy API" -optional = false -python-versions = ">=3.9" -files = [ - {file = "bioblend-1.5.0-py3-none-any.whl", hash = "sha256:08d228977caca3750a7d9329e90138bfb16ba0135bc4f44f01e94858a0717ad6"}, - {file = "bioblend-1.5.0.tar.gz", hash = "sha256:a31dd4dc7dbe4bf18eaf8c9bf8bc645e84b7988cb3e4b25d8f52014fc52d9151"}, -] - -[package.dependencies] -PyYAML = "*" -requests = ">=2.20.0" -requests-toolbelt = ">=0.5.1,<0.9.0 || >0.9.0" -tuspy = "*" - -[package.extras] -testing = ["pytest"] - -[[package]] -name = "certifi" -version = "2025.1.31" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, -] - -[[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.4.1" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7" -files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, -] - -[[package]] -name = "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 = "contourpy" -version = "1.3.1" -description = "Python library for calculating contours of 2D quadrilateral grids" -optional = false -python-versions = ">=3.10" -files = [ - {file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"}, - {file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"}, - {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1"}, - {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b"}, - {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453"}, - {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3"}, - {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277"}, - {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595"}, - {file = "contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697"}, - {file = "contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e"}, - {file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"}, - {file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"}, - {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"}, - {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"}, - {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"}, - {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"}, - {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"}, - {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"}, - {file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"}, - {file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"}, - {file = "contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509"}, - {file = "contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc"}, - {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454"}, - {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80"}, - {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec"}, - {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9"}, - {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b"}, - {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d"}, - {file = "contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e"}, - {file = "contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d"}, - {file = "contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2"}, - {file = "contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5"}, - {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81"}, - {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2"}, - {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7"}, - {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c"}, - {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3"}, - {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1"}, - {file = "contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82"}, - {file = "contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd"}, - {file = "contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30"}, - {file = "contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751"}, - {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342"}, - {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c"}, - {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f"}, - {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda"}, - {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242"}, - {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1"}, - {file = "contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1"}, - {file = "contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546"}, - {file = "contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6"}, - {file = "contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750"}, - {file = "contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53"}, - {file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"}, -] - -[package.dependencies] -numpy = ">=1.23" - -[package.extras] -bokeh = ["bokeh", "selenium"] -docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pillow"] -test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] - -[[package]] -name = "copier" -version = "9.6.0" -description = "A library for rendering project templates." -optional = false -python-versions = ">=3.9" -files = [ - {file = "copier-9.6.0-py3-none-any.whl", hash = "sha256:aaf992600a373fa2dda9f61725916a230c210ede14a968c60dab855d524c6cf3"}, - {file = "copier-9.6.0.tar.gz", hash = "sha256:e05a18b387b96e8d1fbd5271d37f59c9a02be5ad717f7878d0505562fd62b786"}, -] - -[package.dependencies] -colorama = ">=0.4.6" -dunamai = ">=1.7.0" -funcy = ">=1.17" -jinja2 = ">=3.1.5" -jinja2-ansible-filters = ">=1.3.1" -packaging = ">=23.0" -pathspec = ">=0.9.0" -platformdirs = ">=4.3.6" -plumbum = ">=1.6.9" -pydantic = ">=2.4.2" -pygments = ">=2.7.1" -pyyaml = ">=5.3.1" -questionary = ">=1.8.1" - -[[package]] -name = "coverage" -version = "7.8.0" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "coverage-7.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2931f66991175369859b5fd58529cd4b73582461877ecfd859b6549869287ffe"}, - {file = "coverage-7.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52a523153c568d2c0ef8826f6cc23031dc86cffb8c6aeab92c4ff776e7951b28"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c8a5c139aae4c35cbd7cadca1df02ea8cf28a911534fc1b0456acb0b14234f3"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a26c0c795c3e0b63ec7da6efded5f0bc856d7c0b24b2ac84b4d1d7bc578d676"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821f7bcbaa84318287115d54becb1915eece6918136c6f91045bb84e2f88739d"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a321c61477ff8ee705b8a5fed370b5710c56b3a52d17b983d9215861e37b642a"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ed2144b8a78f9d94d9515963ed273d620e07846acd5d4b0a642d4849e8d91a0c"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:042e7841a26498fff7a37d6fda770d17519982f5b7d8bf5278d140b67b61095f"}, - {file = "coverage-7.8.0-cp310-cp310-win32.whl", hash = "sha256:f9983d01d7705b2d1f7a95e10bbe4091fabc03a46881a256c2787637b087003f"}, - {file = "coverage-7.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a570cd9bd20b85d1a0d7b009aaf6c110b52b5755c17be6962f8ccd65d1dbd23"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9"}, - {file = "coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c"}, - {file = "coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe"}, - {file = "coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545"}, - {file = "coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3"}, - {file = "coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d"}, - {file = "coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883"}, - {file = "coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada"}, - {file = "coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257"}, - {file = "coverage-7.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fa260de59dfb143af06dcf30c2be0b200bed2a73737a8a59248fcb9fa601ef0f"}, - {file = "coverage-7.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:96121edfa4c2dfdda409877ea8608dd01de816a4dc4a0523356067b305e4e17a"}, - {file = "coverage-7.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b8af63b9afa1031c0ef05b217faa598f3069148eeee6bb24b79da9012423b82"}, - {file = "coverage-7.8.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89b1f4af0d4afe495cd4787a68e00f30f1d15939f550e869de90a86efa7e0814"}, - {file = "coverage-7.8.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94ec0be97723ae72d63d3aa41961a0b9a6f5a53ff599813c324548d18e3b9e8c"}, - {file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8a1d96e780bdb2d0cbb297325711701f7c0b6f89199a57f2049e90064c29f6bd"}, - {file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f1d8a2a57b47142b10374902777e798784abf400a004b14f1b0b9eaf1e528ba4"}, - {file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cf60dd2696b457b710dd40bf17ad269d5f5457b96442f7f85722bdb16fa6c899"}, - {file = "coverage-7.8.0-cp39-cp39-win32.whl", hash = "sha256:be945402e03de47ba1872cd5236395e0f4ad635526185a930735f66710e1bd3f"}, - {file = "coverage-7.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:90e7fbc6216ecaffa5a880cdc9c77b7418c1dcb166166b78dbc630d07f278cc3"}, - {file = "coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd"}, - {file = "coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7"}, - {file = "coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501"}, -] - -[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 = "deepdiff" -version = "8.4.2" -description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." -optional = false -python-versions = ">=3.8" -files = [ - {file = "deepdiff-8.4.2-py3-none-any.whl", hash = "sha256:7e39e5b26f3747c54f9d0e8b9b29daab670c3100166b77cc0185d5793121b099"}, - {file = "deepdiff-8.4.2.tar.gz", hash = "sha256:5c741c0867ebc7fcb83950ad5ed958369c17f424e14dee32a11c56073f4ee92a"}, -] - -[package.dependencies] -orderly-set = ">=5.3.0,<6" - -[package.extras] -cli = ["click (==8.1.8)", "pyyaml (==6.0.2)"] -optimize = ["orjson"] - -[[package]] -name = "distlib" -version = "0.3.9" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, -] - -[[package]] -name = "docutils" -version = "0.21.2" -description = "Docutils -- Python Documentation Utilities" -optional = false -python-versions = ">=3.9" -files = [ - {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, - {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, -] - -[[package]] -name = "dunamai" -version = "1.23.1" -description = "Dynamic version generation" -optional = false -python-versions = ">=3.5" -files = [ - {file = "dunamai-1.23.1-py3-none-any.whl", hash = "sha256:2611b0b9105a5797149ef82f4968a01dd912bdac857d49fc06856a4cfa58cf78"}, - {file = "dunamai-1.23.1.tar.gz", hash = "sha256:0b5712fc63bfb235263d912bfc5eb84590ba2201bb737268d25a5dbad7085489"}, -] - -[package.dependencies] -packaging = ">=20.9" - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "filelock" -version = "3.18.0" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.9" -files = [ - {file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"}, - {file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] -typing = ["typing-extensions (>=4.12.2)"] - -[[package]] -name = "fonttools" -version = "4.57.0" -description = "Tools to manipulate font files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fonttools-4.57.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:babe8d1eb059a53e560e7bf29f8e8f4accc8b6cfb9b5fd10e485bde77e71ef41"}, - {file = "fonttools-4.57.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:81aa97669cd726349eb7bd43ca540cf418b279ee3caba5e2e295fb4e8f841c02"}, - {file = "fonttools-4.57.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0e9618630edd1910ad4f07f60d77c184b2f572c8ee43305ea3265675cbbfe7e"}, - {file = "fonttools-4.57.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34687a5d21f1d688d7d8d416cb4c5b9c87fca8a1797ec0d74b9fdebfa55c09ab"}, - {file = "fonttools-4.57.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:69ab81b66ebaa8d430ba56c7a5f9abe0183afefd3a2d6e483060343398b13fb1"}, - {file = "fonttools-4.57.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d639397de852f2ccfb3134b152c741406752640a266d9c1365b0f23d7b88077f"}, - {file = "fonttools-4.57.0-cp310-cp310-win32.whl", hash = "sha256:cc066cb98b912f525ae901a24cd381a656f024f76203bc85f78fcc9e66ae5aec"}, - {file = "fonttools-4.57.0-cp310-cp310-win_amd64.whl", hash = "sha256:7a64edd3ff6a7f711a15bd70b4458611fb240176ec11ad8845ccbab4fe6745db"}, - {file = "fonttools-4.57.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3871349303bdec958360eedb619169a779956503ffb4543bb3e6211e09b647c4"}, - {file = "fonttools-4.57.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c59375e85126b15a90fcba3443eaac58f3073ba091f02410eaa286da9ad80ed8"}, - {file = "fonttools-4.57.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967b65232e104f4b0f6370a62eb33089e00024f2ce143aecbf9755649421c683"}, - {file = "fonttools-4.57.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39acf68abdfc74e19de7485f8f7396fa4d2418efea239b7061d6ed6a2510c746"}, - {file = "fonttools-4.57.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d077f909f2343daf4495ba22bb0e23b62886e8ec7c109ee8234bdbd678cf344"}, - {file = "fonttools-4.57.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:46370ac47a1e91895d40e9ad48effbe8e9d9db1a4b80888095bc00e7beaa042f"}, - {file = "fonttools-4.57.0-cp311-cp311-win32.whl", hash = "sha256:ca2aed95855506b7ae94e8f1f6217b7673c929e4f4f1217bcaa236253055cb36"}, - {file = "fonttools-4.57.0-cp311-cp311-win_amd64.whl", hash = "sha256:17168a4670bbe3775f3f3f72d23ee786bd965395381dfbb70111e25e81505b9d"}, - {file = "fonttools-4.57.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:889e45e976c74abc7256d3064aa7c1295aa283c6bb19810b9f8b604dfe5c7f31"}, - {file = "fonttools-4.57.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0425c2e052a5f1516c94e5855dbda706ae5a768631e9fcc34e57d074d1b65b92"}, - {file = "fonttools-4.57.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44c26a311be2ac130f40a96769264809d3b0cb297518669db437d1cc82974888"}, - {file = "fonttools-4.57.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c41ba992df5b8d680b89fd84c6a1f2aca2b9f1ae8a67400c8930cd4ea115f6"}, - {file = "fonttools-4.57.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ea1e9e43ca56b0c12440a7c689b1350066595bebcaa83baad05b8b2675129d98"}, - {file = "fonttools-4.57.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84fd56c78d431606332a0627c16e2a63d243d0d8b05521257d77c6529abe14d8"}, - {file = "fonttools-4.57.0-cp312-cp312-win32.whl", hash = "sha256:f4376819c1c778d59e0a31db5dc6ede854e9edf28bbfa5b756604727f7f800ac"}, - {file = "fonttools-4.57.0-cp312-cp312-win_amd64.whl", hash = "sha256:57e30241524879ea10cdf79c737037221f77cc126a8cdc8ff2c94d4a522504b9"}, - {file = "fonttools-4.57.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:408ce299696012d503b714778d89aa476f032414ae57e57b42e4b92363e0b8ef"}, - {file = "fonttools-4.57.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bbceffc80aa02d9e8b99f2a7491ed8c4a783b2fc4020119dc405ca14fb5c758c"}, - {file = "fonttools-4.57.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f022601f3ee9e1f6658ed6d184ce27fa5216cee5b82d279e0f0bde5deebece72"}, - {file = "fonttools-4.57.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dea5893b58d4637ffa925536462ba626f8a1b9ffbe2f5c272cdf2c6ebadb817"}, - {file = "fonttools-4.57.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dff02c5c8423a657c550b48231d0a48d7e2b2e131088e55983cfe74ccc2c7cc9"}, - {file = "fonttools-4.57.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:767604f244dc17c68d3e2dbf98e038d11a18abc078f2d0f84b6c24571d9c0b13"}, - {file = "fonttools-4.57.0-cp313-cp313-win32.whl", hash = "sha256:8e2e12d0d862f43d51e5afb8b9751c77e6bec7d2dc00aad80641364e9df5b199"}, - {file = "fonttools-4.57.0-cp313-cp313-win_amd64.whl", hash = "sha256:f1d6bc9c23356908db712d282acb3eebd4ae5ec6d8b696aa40342b1d84f8e9e3"}, - {file = "fonttools-4.57.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9d57b4e23ebbe985125d3f0cabbf286efa191ab60bbadb9326091050d88e8213"}, - {file = "fonttools-4.57.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:579ba873d7f2a96f78b2e11028f7472146ae181cae0e4d814a37a09e93d5c5cc"}, - {file = "fonttools-4.57.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e3e1ec10c29bae0ea826b61f265ec5c858c5ba2ce2e69a71a62f285cf8e4595"}, - {file = "fonttools-4.57.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1968f2a2003c97c4ce6308dc2498d5fd4364ad309900930aa5a503c9851aec8"}, - {file = "fonttools-4.57.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:aff40f8ac6763d05c2c8f6d240c6dac4bb92640a86d9b0c3f3fff4404f34095c"}, - {file = "fonttools-4.57.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d07f1b64008e39fceae7aa99e38df8385d7d24a474a8c9872645c4397b674481"}, - {file = "fonttools-4.57.0-cp38-cp38-win32.whl", hash = "sha256:51d8482e96b28fb28aa8e50b5706f3cee06de85cbe2dce80dbd1917ae22ec5a6"}, - {file = "fonttools-4.57.0-cp38-cp38-win_amd64.whl", hash = "sha256:03290e818782e7edb159474144fca11e36a8ed6663d1fcbd5268eb550594fd8e"}, - {file = "fonttools-4.57.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7339e6a3283e4b0ade99cade51e97cde3d54cd6d1c3744459e886b66d630c8b3"}, - {file = "fonttools-4.57.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:05efceb2cb5f6ec92a4180fcb7a64aa8d3385fd49cfbbe459350229d1974f0b1"}, - {file = "fonttools-4.57.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a97bb05eb24637714a04dee85bdf0ad1941df64fe3b802ee4ac1c284a5f97b7c"}, - {file = "fonttools-4.57.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:541cb48191a19ceb1a2a4b90c1fcebd22a1ff7491010d3cf840dd3a68aebd654"}, - {file = "fonttools-4.57.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:cdef9a056c222d0479a1fdb721430f9efd68268014c54e8166133d2643cb05d9"}, - {file = "fonttools-4.57.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3cf97236b192a50a4bf200dc5ba405aa78d4f537a2c6e4c624bb60466d5b03bd"}, - {file = "fonttools-4.57.0-cp39-cp39-win32.whl", hash = "sha256:e952c684274a7714b3160f57ec1d78309f955c6335c04433f07d36c5eb27b1f9"}, - {file = "fonttools-4.57.0-cp39-cp39-win_amd64.whl", hash = "sha256:a2a722c0e4bfd9966a11ff55c895c817158fcce1b2b6700205a376403b546ad9"}, - {file = "fonttools-4.57.0-py3-none-any.whl", hash = "sha256:3122c604a675513c68bd24c6a8f9091f1c2376d18e8f5fe5a101746c81b3e98f"}, - {file = "fonttools-4.57.0.tar.gz", hash = "sha256:727ece10e065be2f9dd239d15dd5d60a66e17eac11aea47d447f9f03fdbc42de"}, -] - -[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 = "frozenlist" -version = "1.5.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -optional = false -python-versions = ">=3.8" -files = [ - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, - {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, - {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, - {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, - {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, - {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, - {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, - {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, - {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, - {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, - {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, - {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, - {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, - {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, - {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, -] - -[[package]] -name = "funcy" -version = "2.0" -description = "A fancy and practical functional tools" -optional = false -python-versions = "*" -files = [ - {file = "funcy-2.0-py2.py3-none-any.whl", hash = "sha256:53df23c8bb1651b12f095df764bfb057935d49537a56de211b098f4c79614bb0"}, - {file = "funcy-2.0.tar.gz", hash = "sha256:3963315d59d41c6f30c04bc910e10ab50a3ac4a225868bfa96feed133df075cb"}, -] - -[[package]] -name = "identify" -version = "2.6.9" -description = "File identification library for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "identify-2.6.9-py2.py3-none-any.whl", hash = "sha256:c98b4322da415a8e5a70ff6e51fbc2d2932c015532d77e9f8537b4ba7813b150"}, - {file = "identify-2.6.9.tar.gz", hash = "sha256:d40dfe3142a1421d8518e3d3985ef5ac42890683e32306ad614a29490abeb6bf"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.10" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.6" -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "iniconfig" -version = "2.1.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.8" -files = [ - {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, - {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, -] - -[[package]] -name = "jinja2" -version = "3.1.6" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, - {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jinja2-ansible-filters" -version = "1.3.2" -description = "A port of Ansible's jinja2 filters without requiring ansible core." -optional = false -python-versions = "*" -files = [ - {file = "jinja2-ansible-filters-1.3.2.tar.gz", hash = "sha256:07c10cf44d7073f4f01102ca12d9a2dc31b41d47e4c61ed92ef6a6d2669b356b"}, - {file = "jinja2_ansible_filters-1.3.2-py3-none-any.whl", hash = "sha256:e1082f5564917649c76fed239117820610516ec10f87735d0338688800a55b34"}, -] - -[package.dependencies] -Jinja2 = "*" -PyYAML = "*" - -[package.extras] -test = ["pytest", "pytest-cov"] - -[[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 = "2024.10.1" -description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" -optional = false -python-versions = ">=3.9" -files = [ - {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, - {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, -] - -[package.dependencies] -referencing = ">=0.31.0" - -[[package]] -name = "kiwisolver" -version = "1.4.8" -description = "A fast implementation of the Cassowary constraint solver" -optional = false -python-versions = ">=3.10" -files = [ - {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88c6f252f6816a73b1f8c904f7bbe02fd67c09a69f7cb8a0eecdbf5ce78e63db"}, - {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72941acb7b67138f35b879bbe85be0f6c6a70cab78fe3ef6db9c024d9223e5b"}, - {file = "kiwisolver-1.4.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce2cf1e5688edcb727fdf7cd1bbd0b6416758996826a8be1d958f91880d0809d"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c8bf637892dc6e6aad2bc6d4d69d08764166e5e3f69d469e55427b6ac001b19d"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:034d2c891f76bd3edbdb3ea11140d8510dca675443da7304205a2eaa45d8334c"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47b28d1dfe0793d5e96bce90835e17edf9a499b53969b03c6c47ea5985844c3"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb158fe28ca0c29f2260cca8c43005329ad58452c36f0edf298204de32a9a3ed"}, - {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5536185fce131780ebd809f8e623bf4030ce1b161353166c49a3c74c287897f"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:369b75d40abedc1da2c1f4de13f3482cb99e3237b38726710f4a793432b1c5ff"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:641f2ddf9358c80faa22e22eb4c9f54bd3f0e442e038728f500e3b978d00aa7d"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d561d2d8883e0819445cfe58d7ddd673e4015c3c57261d7bdcd3710d0d14005c"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1732e065704b47c9afca7ffa272f845300a4eb959276bf6970dc07265e73b605"}, - {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bcb1ebc3547619c3b58a39e2448af089ea2ef44b37988caf432447374941574e"}, - {file = "kiwisolver-1.4.8-cp310-cp310-win_amd64.whl", hash = "sha256:89c107041f7b27844179ea9c85d6da275aa55ecf28413e87624d033cf1f6b751"}, - {file = "kiwisolver-1.4.8-cp310-cp310-win_arm64.whl", hash = "sha256:b5773efa2be9eb9fcf5415ea3ab70fc785d598729fd6057bea38d539ead28271"}, - {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a4d3601908c560bdf880f07d94f31d734afd1bb71e96585cace0e38ef44c6d84"}, - {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856b269c4d28a5c0d5e6c1955ec36ebfd1651ac00e1ce0afa3e28da95293b561"}, - {file = "kiwisolver-1.4.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c2b9a96e0f326205af81a15718a9073328df1173a2619a68553decb7097fd5d7"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5020c83e8553f770cb3b5fc13faac40f17e0b205bd237aebd21d53d733adb03"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dace81d28c787956bfbfbbfd72fdcef014f37d9b48830829e488fdb32b49d954"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11e1022b524bd48ae56c9b4f9296bce77e15a2e42a502cceba602f804b32bb79"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b9b4d2892fefc886f30301cdd80debd8bb01ecdf165a449eb6e78f79f0fabd6"}, - {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a96c0e790ee875d65e340ab383700e2b4891677b7fcd30a699146f9384a2bb0"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23454ff084b07ac54ca8be535f4174170c1094a4cff78fbae4f73a4bcc0d4dab"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:87b287251ad6488e95b4f0b4a79a6d04d3ea35fde6340eb38fbd1ca9cd35bbbc"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b21dbe165081142b1232a240fc6383fd32cdd877ca6cc89eab93e5f5883e1c25"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:768cade2c2df13db52475bd28d3a3fac8c9eff04b0e9e2fda0f3760f20b3f7fc"}, - {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d47cfb2650f0e103d4bf68b0b5804c68da97272c84bb12850d877a95c056bd67"}, - {file = "kiwisolver-1.4.8-cp311-cp311-win_amd64.whl", hash = "sha256:ed33ca2002a779a2e20eeb06aea7721b6e47f2d4b8a8ece979d8ba9e2a167e34"}, - {file = "kiwisolver-1.4.8-cp311-cp311-win_arm64.whl", hash = "sha256:16523b40aab60426ffdebe33ac374457cf62863e330a90a0383639ce14bf44b2"}, - {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6af5e8815fd02997cb6ad9bbed0ee1e60014438ee1a5c2444c96f87b8843502"}, - {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bade438f86e21d91e0cf5dd7c0ed00cda0f77c8c1616bd83f9fc157fa6760d31"}, - {file = "kiwisolver-1.4.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b83dc6769ddbc57613280118fb4ce3cd08899cc3369f7d0e0fab518a7cf37fdb"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111793b232842991be367ed828076b03d96202c19221b5ebab421ce8bcad016f"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:257af1622860e51b1a9d0ce387bf5c2c4f36a90594cb9514f55b074bcc787cfc"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b5637c3f316cab1ec1c9a12b8c5f4750a4c4b71af9157645bf32830e39c03a"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:782bb86f245ec18009890e7cb8d13a5ef54dcf2ebe18ed65f795e635a96a1c6a"}, - {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc978a80a0db3a66d25767b03688f1147a69e6237175c0f4ffffaaedf744055a"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:36dbbfd34838500a31f52c9786990d00150860e46cd5041386f217101350f0d3"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eaa973f1e05131de5ff3569bbba7f5fd07ea0595d3870ed4a526d486fe57fa1b"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a66f60f8d0c87ab7f59b6fb80e642ebb29fec354a4dfad687ca4092ae69d04f4"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858416b7fb777a53f0c59ca08190ce24e9abbd3cffa18886a5781b8e3e26f65d"}, - {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:085940635c62697391baafaaeabdf3dd7a6c3643577dde337f4d66eba021b2b8"}, - {file = "kiwisolver-1.4.8-cp312-cp312-win_amd64.whl", hash = "sha256:01c3d31902c7db5fb6182832713d3b4122ad9317c2c5877d0539227d96bb2e50"}, - {file = "kiwisolver-1.4.8-cp312-cp312-win_arm64.whl", hash = "sha256:a3c44cb68861de93f0c4a8175fbaa691f0aa22550c331fefef02b618a9dcb476"}, - {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1c8ceb754339793c24aee1c9fb2485b5b1f5bb1c2c214ff13368431e51fc9a09"}, - {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a62808ac74b5e55a04a408cda6156f986cefbcf0ada13572696b507cc92fa1"}, - {file = "kiwisolver-1.4.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68269e60ee4929893aad82666821aaacbd455284124817af45c11e50a4b42e3c"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34d142fba9c464bc3bbfeff15c96eab0e7310343d6aefb62a79d51421fcc5f1b"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc373e0eef45b59197de815b1b28ef89ae3955e7722cc9710fb91cd77b7f47"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77e6f57a20b9bd4e1e2cedda4d0b986ebd0216236f0106e55c28aea3d3d69b16"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08e77738ed7538f036cd1170cbed942ef749137b1311fa2bbe2a7fda2f6bf3cc"}, - {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5ce1e481a74b44dd5e92ff03ea0cb371ae7a0268318e202be06c8f04f4f1246"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc2ace710ba7c1dfd1a3b42530b62b9ceed115f19a1656adefce7b1782a37794"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3452046c37c7692bd52b0e752b87954ef86ee2224e624ef7ce6cb21e8c41cc1b"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e9a60b50fe8b2ec6f448fe8d81b07e40141bfced7f896309df271a0b92f80f3"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:918139571133f366e8362fa4a297aeba86c7816b7ecf0bc79168080e2bd79957"}, - {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e063ef9f89885a1d68dd8b2e18f5ead48653176d10a0e324e3b0030e3a69adeb"}, - {file = "kiwisolver-1.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:a17b7c4f5b2c51bb68ed379defd608a03954a1845dfed7cc0117f1cc8a9b7fd2"}, - {file = "kiwisolver-1.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:3cd3bc628b25f74aedc6d374d5babf0166a92ff1317f46267f12d2ed54bc1d30"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370fd2df41660ed4e26b8c9d6bbcad668fbe2560462cba151a721d49e5b6628c"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:84a2f830d42707de1d191b9490ac186bf7997a9495d4e9072210a1296345f7dc"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7a3ad337add5148cf51ce0b55642dc551c0b9d6248458a757f98796ca7348712"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7506488470f41169b86d8c9aeff587293f530a23a23a49d6bc64dab66bedc71e"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f0121b07b356a22fb0414cec4666bbe36fd6d0d759db3d37228f496ed67c880"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6d6bd87df62c27d4185de7c511c6248040afae67028a8a22012b010bc7ad062"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291331973c64bb9cce50bbe871fb2e675c4331dab4f31abe89f175ad7679a4d7"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:893f5525bb92d3d735878ec00f781b2de998333659507d29ea4466208df37bed"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b47a465040146981dc9db8647981b8cb96366fbc8d452b031e4f8fdffec3f26d"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:99cea8b9dd34ff80c521aef46a1dddb0dcc0283cf18bde6d756f1e6f31772165"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:151dffc4865e5fe6dafce5480fab84f950d14566c480c08a53c663a0020504b6"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:577facaa411c10421314598b50413aa1ebcf5126f704f1e5d72d7e4e9f020d90"}, - {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:be4816dc51c8a471749d664161b434912eee82f2ea66bd7628bd14583a833e85"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e7a019419b7b510f0f7c9dceff8c5eae2392037eae483a7f9162625233802b0a"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:286b18e86682fd2217a48fc6be6b0f20c1d0ed10958d8dc53453ad58d7be0bf8"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4191ee8dfd0be1c3666ccbac178c5a05d5f8d689bbe3fc92f3c4abec817f8fe0"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cd2785b9391f2873ad46088ed7599a6a71e762e1ea33e87514b1a441ed1da1c"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c07b29089b7ba090b6f1a669f1411f27221c3662b3a1b7010e67b59bb5a6f10b"}, - {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:65ea09a5a3faadd59c2ce96dc7bf0f364986a315949dc6374f04396b0d60e09b"}, - {file = "kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e"}, -] - -[[package]] -name = "libsass" -version = "0.23.0" -description = "Sass for Python: A straightforward binding of libsass for Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "libsass-0.23.0-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:34cae047cbbfc4ffa832a61cbb110f3c95f5471c6170c842d3fed161e40814dc"}, - {file = "libsass-0.23.0-cp38-abi3-macosx_14_0_arm64.whl", hash = "sha256:ea97d1b45cdc2fc3590cb9d7b60f1d8915d3ce17a98c1f2d4dd47ee0d9c68ce6"}, - {file = "libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306"}, - {file = "libsass-0.23.0-cp38-abi3-win32.whl", hash = "sha256:31e86d92a5c7a551df844b72d83fc2b5e50abc6fbbb31e296f7bebd6489ed1b4"}, - {file = "libsass-0.23.0-cp38-abi3-win_amd64.whl", hash = "sha256:a2ec85d819f353cbe807432d7275d653710d12b08ec7ef61c124a580a8352f3c"}, - {file = "libsass-0.23.0.tar.gz", hash = "sha256:6f209955ede26684e76912caf329f4ccb57e4a043fd77fe0e7348dd9574f1880"}, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.9" -files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, -] - -[[package]] -name = "matplotlib" -version = "3.10.1" -description = "Python plotting package" -optional = false -python-versions = ">=3.10" -files = [ - {file = "matplotlib-3.10.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ff2ae14910be903f4a24afdbb6d7d3a6c44da210fc7d42790b87aeac92238a16"}, - {file = "matplotlib-3.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0721a3fd3d5756ed593220a8b86808a36c5031fce489adb5b31ee6dbb47dd5b2"}, - {file = "matplotlib-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0673b4b8f131890eb3a1ad058d6e065fb3c6e71f160089b65f8515373394698"}, - {file = "matplotlib-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e875b95ac59a7908978fe307ecdbdd9a26af7fa0f33f474a27fcf8c99f64a19"}, - {file = "matplotlib-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2589659ea30726284c6c91037216f64a506a9822f8e50592d48ac16a2f29e044"}, - {file = "matplotlib-3.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a97ff127f295817bc34517255c9db6e71de8eddaab7f837b7d341dee9f2f587f"}, - {file = "matplotlib-3.10.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:057206ff2d6ab82ff3e94ebd94463d084760ca682ed5f150817b859372ec4401"}, - {file = "matplotlib-3.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a144867dd6bf8ba8cb5fc81a158b645037e11b3e5cf8a50bd5f9917cb863adfe"}, - {file = "matplotlib-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56c5d9fcd9879aa8040f196a235e2dcbdf7dd03ab5b07c0696f80bc6cf04bedd"}, - {file = "matplotlib-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f69dc9713e4ad2fb21a1c30e37bd445d496524257dfda40ff4a8efb3604ab5c"}, - {file = "matplotlib-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c59af3e8aca75d7744b68e8e78a669e91ccbcf1ac35d0102a7b1b46883f1dd7"}, - {file = "matplotlib-3.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:11b65088c6f3dae784bc72e8d039a2580186285f87448babb9ddb2ad0082993a"}, - {file = "matplotlib-3.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:66e907a06e68cb6cfd652c193311d61a12b54f56809cafbed9736ce5ad92f107"}, - {file = "matplotlib-3.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b4bb156abb8fa5e5b2b460196f7db7264fc6d62678c03457979e7d5254b7be"}, - {file = "matplotlib-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1985ad3d97f51307a2cbfc801a930f120def19ba22864182dacef55277102ba6"}, - {file = "matplotlib-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c96f2c2f825d1257e437a1482c5a2cf4fee15db4261bd6fc0750f81ba2b4ba3d"}, - {file = "matplotlib-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35e87384ee9e488d8dd5a2dd7baf471178d38b90618d8ea147aced4ab59c9bea"}, - {file = "matplotlib-3.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:cfd414bce89cc78a7e1d25202e979b3f1af799e416010a20ab2b5ebb3a02425c"}, - {file = "matplotlib-3.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c42eee41e1b60fd83ee3292ed83a97a5f2a8239b10c26715d8a6172226988d7b"}, - {file = "matplotlib-3.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4f0647b17b667ae745c13721602b540f7aadb2a32c5b96e924cd4fea5dcb90f1"}, - {file = "matplotlib-3.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa3854b5f9473564ef40a41bc922be978fab217776e9ae1545c9b3a5cf2092a3"}, - {file = "matplotlib-3.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e496c01441be4c7d5f96d4e40f7fca06e20dcb40e44c8daa2e740e1757ad9e6"}, - {file = "matplotlib-3.10.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d45d3f5245be5b469843450617dcad9af75ca50568acf59997bed9311131a0b"}, - {file = "matplotlib-3.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:8e8e25b1209161d20dfe93037c8a7f7ca796ec9aa326e6e4588d8c4a5dd1e473"}, - {file = "matplotlib-3.10.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:19b06241ad89c3ae9469e07d77efa87041eac65d78df4fcf9cac318028009b01"}, - {file = "matplotlib-3.10.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01e63101ebb3014e6e9f80d9cf9ee361a8599ddca2c3e166c563628b39305dbb"}, - {file = "matplotlib-3.10.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f06bad951eea6422ac4e8bdebcf3a70c59ea0a03338c5d2b109f57b64eb3972"}, - {file = "matplotlib-3.10.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3dfb036f34873b46978f55e240cff7a239f6c4409eac62d8145bad3fc6ba5a3"}, - {file = "matplotlib-3.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dc6ab14a7ab3b4d813b88ba957fc05c79493a037f54e246162033591e770de6f"}, - {file = "matplotlib-3.10.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bc411ebd5889a78dabbc457b3fa153203e22248bfa6eedc6797be5df0164dbf9"}, - {file = "matplotlib-3.10.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:648406f1899f9a818cef8c0231b44dcfc4ff36f167101c3fd1c9151f24220fdc"}, - {file = "matplotlib-3.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:02582304e352f40520727984a5a18f37e8187861f954fea9be7ef06569cf85b4"}, - {file = "matplotlib-3.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3809916157ba871bcdd33d3493acd7fe3037db5daa917ca6e77975a94cef779"}, - {file = "matplotlib-3.10.1.tar.gz", hash = "sha256:e8d2d0e3881b129268585bf4765ad3ee73a4591d77b9a18c214ac7e3a79fb2ba"}, -] - -[package.dependencies] -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,<0.17.0)", "pybind11 (>=2.13.2,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"] - -[[package]] -name = "mergedeep" -version = "1.3.4" -description = "A deep merge function for 🐍." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "more-itertools" -version = "10.6.0" -description = "More routines for operating on iterables, beyond itertools" -optional = false -python-versions = ">=3.9" -files = [ - {file = "more-itertools-10.6.0.tar.gz", hash = "sha256:2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b"}, - {file = "more_itertools-10.6.0-py3-none-any.whl", hash = "sha256:6eb054cb4b6db1473f6e15fcc676a08e4732548acd47c708f0e179c2c7c01e89"}, -] - -[[package]] -name = "mpld3" -version = "0.5.10" -description = "D3 Viewer for Matplotlib" -optional = false -python-versions = "*" -files = [ - {file = "mpld3-0.5.10-py3-none-any.whl", hash = "sha256:80877acce87ea447380fad7374668737505c8c0684aab05238e7c5dc1fab38c1"}, - {file = "mpld3-0.5.10.tar.gz", hash = "sha256:a478eb404fa5212505c59133cf272cd9a94105872e605597720e7f84de38fbc7"}, -] - -[package.dependencies] -jinja2 = "*" -matplotlib = "*" - -[[package]] -name = "msgpack" -version = "1.1.0" -description = "MessagePack serializer" -optional = false -python-versions = ">=3.8" -files = [ - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, - {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"}, - {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"}, - {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"}, - {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"}, - {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"}, - {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"}, - {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"}, - {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"}, - {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"}, - {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"}, - {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"}, - {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"}, - {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"}, - {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"}, - {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"}, - {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"}, - {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"}, - {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"}, - {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"}, - {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"}, - {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"}, - {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"}, - {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"}, - {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"}, - {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"}, - {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"}, - {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"}, - {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"}, - {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"}, - {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, -] - -[[package]] -name = "multidict" -version = "6.3.2" -description = "multidict implementation" -optional = false -python-versions = ">=3.9" -files = [ - {file = "multidict-6.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8b3dc0eec9304fa04d84a51ea13b0ec170bace5b7ddeaac748149efd316f1504"}, - {file = "multidict-6.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9534f3d84addd3b6018fa83f97c9d4247aaa94ac917d1ed7b2523306f99f5c16"}, - {file = "multidict-6.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a003ce1413ae01f0b8789c1c987991346a94620a4d22210f7a8fe753646d3209"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b43f7384e68b1b982c99f489921a459467b5584bdb963b25e0df57c9039d0ad"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d142ae84047262dc75c1f92eaf95b20680f85ce11d35571b4c97e267f96fadc4"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ec7e86fbc48aa1d6d686501a8547818ba8d645e7e40eaa98232a5d43ee4380ad"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe019fb437632b016e6cac67a7e964f1ef827ef4023f1ca0227b54be354da97e"}, - {file = "multidict-6.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b60cb81214a9da7cfd8ae2853d5e6e47225ece55fe5833142fe0af321c35299"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:32d9e8ef2e0312d4e96ca9adc88e0675b6d8e144349efce4a7c95d5ccb6d88e0"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:335d584312e3fa43633d63175dfc1a5f137dd7aa03d38d1310237d54c3032774"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:b8df917faa6b8cac3d6870fc21cb7e4d169faca68e43ffe568c156c9c6408a4d"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:cc060b9b89b701dd8fedef5b99e1f1002b8cb95072693233a63389d37e48212d"}, - {file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f2ce3be2500658f3c644494b934628bb0c82e549dde250d2119689ce791cc8b8"}, - {file = "multidict-6.3.2-cp310-cp310-win32.whl", hash = "sha256:dbcb4490d8e74b484449abd51751b8f560dd0a4812eb5dacc6a588498222a9ab"}, - {file = "multidict-6.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:06944f9ced30f8602be873563ed4df7e3f40958f60b2db39732c11d615a33687"}, - {file = "multidict-6.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45a034f41fcd16968c0470d8912d293d7b0d0822fc25739c5c2ff7835b85bc56"}, - {file = "multidict-6.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:352585cec45f5d83d886fc522955492bb436fca032b11d487b12d31c5a81b9e3"}, - {file = "multidict-6.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:da9d89d293511fd0a83a90559dc131f8b3292b6975eb80feff19e5f4663647e2"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fa716592224aa652b9347a586cfe018635229074565663894eb4eb21f8307f"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0326278a44c56e94792475268e5cd3d47fbc0bd41ee56928c3bbb103ba7f58fe"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bb1ea87f7fe45e5079f6315e95d64d4ca8b43ef656d98bed63a02e3756853a22"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cff3c5a98d037024a9065aafc621a8599fad7b423393685dc83cf7a32f8b691"}, - {file = "multidict-6.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed99834b053c655d980fb98029003cb24281e47a796052faad4543aa9e01b8e8"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7048440e505d2b4741e5d0b32bd2f427c901f38c7760fc245918be2cf69b3b85"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:27248c27b563f5889556da8a96e18e98a56ff807ac1a7d56cf4453c2c9e4cd91"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6323b4ba0e018bd266f776c35f3f0943fc4ee77e481593c9f93bd49888f24e94"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:81f7ce5ec7c27d0b45c10449c8f0fed192b93251e2e98cb0b21fec779ef1dc4d"}, - {file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03bfcf2825b3bed0ba08a9d854acd18b938cab0d2dba3372b51c78e496bac811"}, - {file = "multidict-6.3.2-cp311-cp311-win32.whl", hash = "sha256:f32c2790512cae6ca886920e58cdc8c784bdc4bb2a5ec74127c71980369d18dc"}, - {file = "multidict-6.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:0b0c15e58e038a2cd75ef7cf7e072bc39b5e0488b165902efb27978984bbad70"}, - {file = "multidict-6.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d1e0ba1ce1b8cc79117196642d95f4365e118eaf5fb85f57cdbcc5a25640b2a4"}, - {file = "multidict-6.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:029bbd7d782251a78975214b78ee632672310f9233d49531fc93e8e99154af25"}, - {file = "multidict-6.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d7db41e3b56817d9175264e5fe00192fbcb8e1265307a59f53dede86161b150e"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcab18e65cc555ac29981a581518c23311f2b1e72d8f658f9891590465383be"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d50eff89aa4d145a5486b171a2177042d08ea5105f813027eb1050abe91839f"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:643e57b403d3e240045a3681f9e6a04d35a33eddc501b4cbbbdbc9c70122e7bc"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d17b37b9715b30605b5bab1460569742d0c309e5c20079263b440f5d7746e7e"}, - {file = "multidict-6.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68acd51fa94e63312b8ddf84bfc9c3d3442fe1f9988bbe1b6c703043af8867fe"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:347eea2852ab7f697cc5ed9b1aae96b08f8529cca0c6468f747f0781b1842898"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4d3f8e57027dcda84a1aa181501c15c45eab9566eb6fcc274cbd1e7561224f8"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:9ca57a841ffcf712e47875d026aa49d6e67f9560624d54b51628603700d5d287"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7cafdafb44c4e646118410368307693e49d19167e5f119cbe3a88697d2d1a636"}, - {file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:430120c6ce3715a9c6075cabcee557daccbcca8ba25a9fedf05c7bf564532f2d"}, - {file = "multidict-6.3.2-cp312-cp312-win32.whl", hash = "sha256:13bec31375235a68457ab887ce1bbf4f59d5810d838ae5d7e5b416242e1f3ed4"}, - {file = "multidict-6.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:c3b6d7620e6e90c6d97eaf3a63bf7fbd2ba253aab89120a4a9c660bf2d675391"}, - {file = "multidict-6.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b9ca24700322816ae0d426aa33671cf68242f8cc85cee0d0e936465ddaee90b5"}, - {file = "multidict-6.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d9fbbe23667d596ff4f9f74d44b06e40ebb0ab6b262cf14a284f859a66f86457"}, - {file = "multidict-6.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9cb602c5bea0589570ad3a4a6f2649c4f13cc7a1e97b4c616e5e9ff8dc490987"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93ca81dd4d1542e20000ed90f4cc84b7713776f620d04c2b75b8efbe61106c99"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:18b6310b5454c62242577a128c87df8897f39dd913311cf2e1298e47dfc089eb"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7a6dda57de1fc9aedfdb600a8640c99385cdab59a5716cb714b52b6005797f77"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d8ec42d03cc6b29845552a68151f9e623c541f1708328353220af571e24a247"}, - {file = "multidict-6.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80681969cee2fa84dafeb53615d51d24246849984e3e87fbe4fe39956f2e23bf"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:01489b0c3592bb9d238e5690e9566db7f77a5380f054b57077d2c4deeaade0eb"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:522d9f1fd995d04dfedc0a40bca7e2591bc577d920079df50b56245a4a252c1c"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2014e9cf0b4e9c75bbad49c1758e5a9bf967a56184fc5fcc51527425baf5abba"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:78ced9fcbee79e446ff4bb3018ac7ba1670703de7873d9c1f6f9883db53c71bc"}, - {file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1faf01af972bd01216a107c195f5294f9f393531bc3e4faddc9b333581255d4d"}, - {file = "multidict-6.3.2-cp313-cp313-win32.whl", hash = "sha256:7a699ab13d8d8e1f885de1535b4f477fb93836c87168318244c2685da7b7f655"}, - {file = "multidict-6.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:8666bb0d883310c83be01676e302587834dfd185b52758caeab32ef0eb387bc6"}, - {file = "multidict-6.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d82c95aabee29612b1c4f48b98be98181686eb7d6c0152301f72715705cc787b"}, - {file = "multidict-6.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f47709173ea9e87a7fd05cd7e5cf1e5d4158924ff988a9a8e0fbd853705f0e68"}, - {file = "multidict-6.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0c7f9d0276ceaab41b8ae78534ff28ea33d5de85db551cbf80c44371f2b55d13"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6eab22df44a25acab2e738f882f5ec551282ab45b2bbda5301e6d2cfb323036"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a947cb7c657f57874021b9b70c7aac049c877fb576955a40afa8df71d01a1390"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5faa346e8e1c371187cf345ab1e02a75889f9f510c9cbc575c31b779f7df084d"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc6e08d977aebf1718540533b4ba5b351ccec2db093370958a653b1f7f9219cc"}, - {file = "multidict-6.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:98eab7acf55275b5bf09834125fa3a80b143a9f241cdcdd3f1295ffdc3c6d097"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:36863655630becc224375c0b99364978a0f95aebfb27fb6dd500f7fb5fb36e79"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d9c0979c096c0d46a963331b0e400d3a9e560e41219df4b35f0d7a2f28f39710"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0efc04f70f05e70e5945890767e8874da5953a196f5b07c552d305afae0f3bf6"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:2c519b3b82c34539fae3e22e4ea965869ac6b628794b1eb487780dde37637ab7"}, - {file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:329160e301f2afd7b43725d3dda8a7ef8ee41d4ceac2083fc0d8c1cc8a4bd56b"}, - {file = "multidict-6.3.2-cp313-cp313t-win32.whl", hash = "sha256:420e5144a5f598dad8db3128f1695cd42a38a0026c2991091dab91697832f8cc"}, - {file = "multidict-6.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:875faded2861c7af2682c67088e6313fec35ede811e071c96d36b081873cea14"}, - {file = "multidict-6.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2516c5eb5732d6c4e29fa93323bfdc55186895124bc569e2404e3820934be378"}, - {file = "multidict-6.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:be5c8622e665cc5491c13c0fcd52915cdbae991a3514251d71129691338cdfb2"}, - {file = "multidict-6.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3ef33150eea7953cfdb571d862cff894e0ad97ab80d97731eb4b9328fc32d52b"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40b357738ce46e998f1b1bad9c4b79b2a9755915f71b87a8c01ce123a22a4f99"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:27c60e059fcd3655a653ba99fec2556cd0260ec57f9cb138d3e6ffc413638a2e"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:629e7c5e75bde83e54a22c7043ce89d68691d1f103be6d09a1c82b870df3b4b8"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6c8fc97d893fdf1fff15a619fee8de2f31c9b289ef7594730e35074fa0cefb"}, - {file = "multidict-6.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52081d2f27e0652265d4637b03f09b82f6da5ce5e1474f07dc64674ff8bfc04c"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:64529dc395b5fd0a7826ffa70d2d9a7f4abd8f5333d6aaaba67fdf7bedde9f21"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2b7c3fad827770840f5399348c89635ed6d6e9bba363baad7d3c7f86a9cf1da3"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:24aa42b1651c654ae9e5273e06c3b7ccffe9f7cc76fbde40c37e9ae65f170818"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:04ceea01e9991357164b12882e120ce6b4d63a0424bb9f9cd37910aa56d30830"}, - {file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:943897a41160945416617db567d867ab34e9258adaffc56a25a4c3f99d919598"}, - {file = "multidict-6.3.2-cp39-cp39-win32.whl", hash = "sha256:76157a9a0c5380aadd3b5ff7b8deee355ff5adecc66c837b444fa633b4d409a2"}, - {file = "multidict-6.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:d091d123e44035cd5664554308477aff0b58db37e701e7598a67e907b98d1925"}, - {file = "multidict-6.3.2-py3-none-any.whl", hash = "sha256:71409d4579f716217f23be2f5e7afca5ca926aaeb398aa11b72d793bff637a1f"}, - {file = "multidict-6.3.2.tar.gz", hash = "sha256:c1035eea471f759fa853dd6e76aaa1e389f93b3e1403093fa0fd3ab4db490678"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} - -[[package]] -name = "mypy" -version = "1.15.0" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, - {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, - {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, - {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, - {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, - {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, - {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, - {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, - {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, - {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"}, - {file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"}, - {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"}, - {file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"}, - {file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"}, - {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, - {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, -] - -[package.dependencies] -mypy_extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing_extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -faster-cache = ["orjson"] -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 = "narwhals" -version = "1.33.0" -description = "Extremely lightweight compatibility layer between dataframe libraries" -optional = false -python-versions = ">=3.8" -files = [ - {file = "narwhals-1.33.0-py3-none-any.whl", hash = "sha256:f653319112fd121a1f1c18a40cf70dada773cdacfd53e62c2aa0afae43c17129"}, - {file = "narwhals-1.33.0.tar.gz", hash = "sha256:6233d2457debf4b5fe4a1da54530c6fe2d84326f4a8e3bca35bbbff580a347cb"}, -] - -[package.extras] -cudf = ["cudf (>=24.10.0)"] -dask = ["dask[dataframe] (>=2024.8)"] -duckdb = ["duckdb (>=1.0)"] -ibis = ["ibis-framework (>=6.0.0)", "packaging", "pyarrow-hotfix", "rich"] -modin = ["modin"] -pandas = ["pandas (>=0.25.3)"] -polars = ["polars (>=0.20.3)"] -pyarrow = ["pyarrow (>=11.0.0)"] -pyspark = ["pyspark (>=3.5.0)"] -sqlframe = ["sqlframe (>=3.22.0)"] - -[[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 = "nova-galaxy" -version = "0.7.2" -description = "Utilties for accessing the ORNL Galaxy instance" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_galaxy-0.7.2-py3-none-any.whl", hash = "sha256:d0bac8c0d2f84f112a7d62833be61122cce15c72f022cfa81d960df9b8d948be"}, -] - -[package.dependencies] -bioblend = ">=1.3.0,<2.0.0" -tomli = ">=2.0.2,<3.0.0" - -[[package]] -name = "nova-mvvm" -version = "0.9.0" -description = "A Python Package for Model-View-ViewModel pattern" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_mvvm-0.9.0-py3-none-any.whl", hash = "sha256:60c70f8579b155e7081548e8aec9e77de497fa33ac569096015cffe27ef0f796"}, -] - -[package.dependencies] -deepdiff = ">=8.0.1,<9.0.0" -pytest-asyncio = ">=0.25.0,<0.26.0" -trame = ">=3.6.3,<4.0.0" - -[package.extras] -panel = ["panel (>=1.4.4,<2.0.0)"] -pyqt5 = ["pyqt5 (>=5.15.11,<6.0.0)"] -pyqt6 = ["pyqt6 (>=6.7.0,<7.0.0)"] - -[[package]] -name = "nova-trame" -version = "0.16.0" -description = "A Python Package for injecting curated themes and custom components into Trame applications" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "nova_trame-0.16.0-py3-none-any.whl", hash = "sha256:1c24f68a632d775097afe06f54bf27044908d34088fd7ddd835e3744972e95d0"}, -] - -[package.dependencies] -altair = "*" -libsass = "*" -mergedeep = "*" -nova-mvvm = "*" -pydantic = "*" -tomli = "*" -tornado = "*" -trame = "*" -trame-matplotlib = "*" -trame-plotly = "*" -trame-vega = "*" -trame-vuetify = "*" - -[[package]] -name = "numpy" -version = "2.2.4" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.10" -files = [ - {file = "numpy-2.2.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8146f3550d627252269ac42ae660281d673eb6f8b32f113538e0cc2a9aed42b9"}, - {file = "numpy-2.2.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e642d86b8f956098b564a45e6f6ce68a22c2c97a04f5acd3f221f57b8cb850ae"}, - {file = "numpy-2.2.4-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:a84eda42bd12edc36eb5b53bbcc9b406820d3353f1994b6cfe453a33ff101775"}, - {file = "numpy-2.2.4-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:4ba5054787e89c59c593a4169830ab362ac2bee8a969249dc56e5d7d20ff8df9"}, - {file = "numpy-2.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7716e4a9b7af82c06a2543c53ca476fa0b57e4d760481273e09da04b74ee6ee2"}, - {file = "numpy-2.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adf8c1d66f432ce577d0197dceaac2ac00c0759f573f28516246351c58a85020"}, - {file = "numpy-2.2.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:218f061d2faa73621fa23d6359442b0fc658d5b9a70801373625d958259eaca3"}, - {file = "numpy-2.2.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:df2f57871a96bbc1b69733cd4c51dc33bea66146b8c63cacbfed73eec0883017"}, - {file = "numpy-2.2.4-cp310-cp310-win32.whl", hash = "sha256:a0258ad1f44f138b791327961caedffbf9612bfa504ab9597157806faa95194a"}, - {file = "numpy-2.2.4-cp310-cp310-win_amd64.whl", hash = "sha256:0d54974f9cf14acf49c60f0f7f4084b6579d24d439453d5fc5805d46a165b542"}, - {file = "numpy-2.2.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e9e0a277bb2eb5d8a7407e14688b85fd8ad628ee4e0c7930415687b6564207a4"}, - {file = "numpy-2.2.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eeea959168ea555e556b8188da5fa7831e21d91ce031e95ce23747b7609f8a4"}, - {file = "numpy-2.2.4-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bd3ad3b0a40e713fc68f99ecfd07124195333f1e689387c180813f0e94309d6f"}, - {file = "numpy-2.2.4-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:cf28633d64294969c019c6df4ff37f5698e8326db68cc2b66576a51fad634880"}, - {file = "numpy-2.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fa8fa7697ad1646b5c93de1719965844e004fcad23c91228aca1cf0800044a1"}, - {file = "numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4162988a360a29af158aeb4a2f4f09ffed6a969c9776f8f3bdee9b06a8ab7e5"}, - {file = "numpy-2.2.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:892c10d6a73e0f14935c31229e03325a7b3093fafd6ce0af704be7f894d95687"}, - {file = "numpy-2.2.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db1f1c22173ac1c58db249ae48aa7ead29f534b9a948bc56828337aa84a32ed6"}, - {file = "numpy-2.2.4-cp311-cp311-win32.whl", hash = "sha256:ea2bb7e2ae9e37d96835b3576a4fa4b3a97592fbea8ef7c3587078b0068b8f09"}, - {file = "numpy-2.2.4-cp311-cp311-win_amd64.whl", hash = "sha256:f7de08cbe5551911886d1ab60de58448c6df0f67d9feb7d1fb21e9875ef95e91"}, - {file = "numpy-2.2.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a7b9084668aa0f64e64bd00d27ba5146ef1c3a8835f3bd912e7a9e01326804c4"}, - {file = "numpy-2.2.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dbe512c511956b893d2dacd007d955a3f03d555ae05cfa3ff1c1ff6df8851854"}, - {file = "numpy-2.2.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:bb649f8b207ab07caebba230d851b579a3c8711a851d29efe15008e31bb4de24"}, - {file = "numpy-2.2.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:f34dc300df798742b3d06515aa2a0aee20941c13579d7a2f2e10af01ae4901ee"}, - {file = "numpy-2.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3f7ac96b16955634e223b579a3e5798df59007ca43e8d451a0e6a50f6bfdfba"}, - {file = "numpy-2.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f92084defa704deadd4e0a5ab1dc52d8ac9e8a8ef617f3fbb853e79b0ea3592"}, - {file = "numpy-2.2.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4e84a6283b36632e2a5b56e121961f6542ab886bc9e12f8f9818b3c266bfbb"}, - {file = "numpy-2.2.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:11c43995255eb4127115956495f43e9343736edb7fcdb0d973defd9de14cd84f"}, - {file = "numpy-2.2.4-cp312-cp312-win32.whl", hash = "sha256:65ef3468b53269eb5fdb3a5c09508c032b793da03251d5f8722b1194f1790c00"}, - {file = "numpy-2.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:2aad3c17ed2ff455b8eaafe06bcdae0062a1db77cb99f4b9cbb5f4ecb13c5146"}, - {file = "numpy-2.2.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cf4e5c6a278d620dee9ddeb487dc6a860f9b199eadeecc567f777daace1e9e7"}, - {file = "numpy-2.2.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1974afec0b479e50438fc3648974268f972e2d908ddb6d7fb634598cdb8260a0"}, - {file = "numpy-2.2.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:79bd5f0a02aa16808fcbc79a9a376a147cc1045f7dfe44c6e7d53fa8b8a79392"}, - {file = "numpy-2.2.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:3387dd7232804b341165cedcb90694565a6015433ee076c6754775e85d86f1fc"}, - {file = "numpy-2.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f527d8fdb0286fd2fd97a2a96c6be17ba4232da346931d967a0630050dfd298"}, - {file = "numpy-2.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bce43e386c16898b91e162e5baaad90c4b06f9dcbe36282490032cec98dc8ae7"}, - {file = "numpy-2.2.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31504f970f563d99f71a3512d0c01a645b692b12a63630d6aafa0939e52361e6"}, - {file = "numpy-2.2.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:81413336ef121a6ba746892fad881a83351ee3e1e4011f52e97fba79233611fd"}, - {file = "numpy-2.2.4-cp313-cp313-win32.whl", hash = "sha256:f486038e44caa08dbd97275a9a35a283a8f1d2f0ee60ac260a1790e76660833c"}, - {file = "numpy-2.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:207a2b8441cc8b6a2a78c9ddc64d00d20c303d79fba08c577752f080c4007ee3"}, - {file = "numpy-2.2.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8120575cb4882318c791f839a4fd66161a6fa46f3f0a5e613071aae35b5dd8f8"}, - {file = "numpy-2.2.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a761ba0fa886a7bb33c6c8f6f20213735cb19642c580a931c625ee377ee8bd39"}, - {file = "numpy-2.2.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:ac0280f1ba4a4bfff363a99a6aceed4f8e123f8a9b234c89140f5e894e452ecd"}, - {file = "numpy-2.2.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:879cf3a9a2b53a4672a168c21375166171bc3932b7e21f622201811c43cdd3b0"}, - {file = "numpy-2.2.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f05d4198c1bacc9124018109c5fba2f3201dbe7ab6e92ff100494f236209c960"}, - {file = "numpy-2.2.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f085ce2e813a50dfd0e01fbfc0c12bbe5d2063d99f8b29da30e544fb6483b8"}, - {file = "numpy-2.2.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:92bda934a791c01d6d9d8e038363c50918ef7c40601552a58ac84c9613a665bc"}, - {file = "numpy-2.2.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ee4d528022f4c5ff67332469e10efe06a267e32f4067dc76bb7e2cddf3cd25ff"}, - {file = "numpy-2.2.4-cp313-cp313t-win32.whl", hash = "sha256:05c076d531e9998e7e694c36e8b349969c56eadd2cdcd07242958489d79a7286"}, - {file = "numpy-2.2.4-cp313-cp313t-win_amd64.whl", hash = "sha256:188dcbca89834cc2e14eb2f106c96d6d46f200fe0200310fc29089657379c58d"}, - {file = "numpy-2.2.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7051ee569db5fbac144335e0f3b9c2337e0c8d5c9fee015f259a5bd70772b7e8"}, - {file = "numpy-2.2.4-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:ab2939cd5bec30a7430cbdb2287b63151b77cf9624de0532d629c9a1c59b1d5c"}, - {file = "numpy-2.2.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0f35b19894a9e08639fd60a1ec1978cb7f5f7f1eace62f38dd36be8aecdef4d"}, - {file = "numpy-2.2.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b4adfbbc64014976d2f91084915ca4e626fbf2057fb81af209c1a6d776d23e3d"}, - {file = "numpy-2.2.4.tar.gz", hash = "sha256:9ba03692a45d3eef66559efe1d1096c4b9b75c0986b5dff5530c378fb8331d4f"}, -] - -[[package]] -name = "orderly-set" -version = "5.3.0" -description = "Orderly set" -optional = false -python-versions = ">=3.8" -files = [ - {file = "orderly_set-5.3.0-py3-none-any.whl", hash = "sha256:c2c0bfe604f5d3d9b24e8262a06feb612594f37aa3845650548befd7772945d1"}, - {file = "orderly_set-5.3.0.tar.gz", hash = "sha256:80b3d8fdd3d39004d9aad389eaa0eab02c71f0a0511ba3a6d54a935a6c6a0acc"}, -] - -[[package]] -name = "packaging" -version = "24.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, -] - -[[package]] -name = "pandas" -version = "2.2.3" -description = "Powerful data structures for data analysis, time series, and statistics" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, - {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, - {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, - {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, - {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, - {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, - {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, - {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, - {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, - {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, - {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, - {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, - {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, - {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, - {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, - {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, - {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, - {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, - {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, - {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, - {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, - {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, - {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, - {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, - {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, - {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, - {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, - {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, - {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, - {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, - {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, - {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, - {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, - {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, - {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, - {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, - {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, - {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, - {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, - {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, - {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, - {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.22.4", markers = "python_version < \"3.11\""}, - {version = ">=1.23.2", markers = "python_version == \"3.11\""}, - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, -] -python-dateutil = ">=2.8.2" -pytz = ">=2020.1" -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 = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "pillow" -version = "11.1.0" -description = "Python Imaging Library (Fork)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, - {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, - {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, - {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, - {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, - {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, - {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, - {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, - {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, - {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, - {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, - {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, - {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, - {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, - {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, - {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, - {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, - {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, - {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, - {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, - {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, - {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, - {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, - {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, - {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, - {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, - {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, - {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, - {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, - {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, - {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, - {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, - {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, - {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, - {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, - {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, - {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, - {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, - {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, - {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, - {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, - {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, - {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, - {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, - {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, - {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, - {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, - {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, -] - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] -fpx = ["olefile"] -mic = ["olefile"] -tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] -typing = ["typing-extensions"] -xmp = ["defusedxml"] - -[[package]] -name = "platformdirs" -version = "4.3.7" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -optional = false -python-versions = ">=3.9" -files = [ - {file = "platformdirs-4.3.7-py3-none-any.whl", hash = "sha256:a03875334331946f13c549dbd8f4bac7a13a50a895a0eb1e8c6a8ace80d40a94"}, - {file = "platformdirs-4.3.7.tar.gz", hash = "sha256:eb437d586b6a0986388f0d6f74aa0cde27b48d0e3d66843640bfb6bdcdb6e351"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.14.1)"] - -[[package]] -name = "plotly" -version = "5.24.1" -description = "An open-source, interactive data visualization library for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plotly-5.24.1-py3-none-any.whl", hash = "sha256:f67073a1e637eb0dc3e46324d9d51e2fe76e9727c892dde64ddf1e1b51f29089"}, - {file = "plotly-5.24.1.tar.gz", hash = "sha256:dbc8ac8339d248a4bcc36e08a5659bacfe1b079390b8953533f4eb22169b4bae"}, -] - -[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 = "plumbum" -version = "1.9.0" -description = "Plumbum: shell combinators library" -optional = false -python-versions = ">=3.8" -files = [ - {file = "plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5"}, - {file = "plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219"}, -] - -[package.dependencies] -pywin32 = {version = "*", markers = "platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""} - -[package.extras] -dev = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] -docs = ["sphinx (>=4.0.0)", "sphinx-rtd-theme (>=1.0.0)"] -ssh = ["paramiko"] -test = ["coverage[toml]", "paramiko", "psutil", "pytest (>=6.0)", "pytest-cov", "pytest-mock", "pytest-timeout"] - -[[package]] -name = "pockets" -version = "0.9.1" -description = "A collection of helpful Python tools!" -optional = false -python-versions = "*" -files = [ - {file = "pockets-0.9.1-py2.py3-none-any.whl", hash = "sha256:68597934193c08a08eb2bf6a1d85593f627c22f9b065cc727a4f03f669d96d86"}, - {file = "pockets-0.9.1.tar.gz", hash = "sha256:9320f1a3c6f7a9133fe3b571f283bcf3353cd70249025ae8d618e40e9f7e92b3"}, -] - -[package.dependencies] -six = ">=1.5.2" - -[[package]] -name = "pooch" -version = "1.8.2" -description = "A friend to fetch your data files" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pooch-1.8.2-py3-none-any.whl", hash = "sha256:3529a57096f7198778a5ceefd5ac3ef0e4d06a6ddaf9fc2d609b806f25302c47"}, - {file = "pooch-1.8.2.tar.gz", hash = "sha256:76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10"}, -] - -[package.dependencies] -packaging = ">=20.0" -platformdirs = ">=2.5.0" -requests = ">=2.19.0" - -[package.extras] -progress = ["tqdm (>=4.41.0,<5.0.0)"] -sftp = ["paramiko (>=2.7.0)"] -xxhash = ["xxhash (>=1.4.3)"] - -[[package]] -name = "pre-commit" -version = "4.2.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = false -python-versions = ">=3.9" -files = [ - {file = "pre_commit-4.2.0-py2.py3-none-any.whl", hash = "sha256:a009ca7205f1eb497d10b845e52c838a98b6cdd2102a6c8e4540e94ee75c58bd"}, - {file = "pre_commit-4.2.0.tar.gz", hash = "sha256:601283b9757afd87d40c4c4a9b2b5de9637a8ea02eaff7adc2d0fb4e04841146"}, -] - -[package.dependencies] -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.50" -description = "Library for building powerful interactive command lines in Python" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, - {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "propcache" -version = "0.3.1" -description = "Accelerated property cache" -optional = false -python-versions = ">=3.9" -files = [ - {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f27785888d2fdd918bc36de8b8739f2d6c791399552333721b58193f68ea3e98"}, - {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4e89cde74154c7b5957f87a355bb9c8ec929c167b59c83d90654ea36aeb6180"}, - {file = "propcache-0.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:730178f476ef03d3d4d255f0c9fa186cb1d13fd33ffe89d39f2cda4da90ceb71"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967a8eec513dbe08330f10137eacb427b2ca52118769e82ebcfcab0fba92a649"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b9145c35cc87313b5fd480144f8078716007656093d23059e8993d3a8fa730f"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e64e948ab41411958670f1093c0a57acfdc3bee5cf5b935671bbd5313bcf229"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:319fa8765bfd6a265e5fa661547556da381e53274bc05094fc9ea50da51bfd46"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c66d8ccbc902ad548312b96ed8d5d266d0d2c6d006fd0f66323e9d8f2dd49be7"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2d219b0dbabe75e15e581fc1ae796109b07c8ba7d25b9ae8d650da582bed01b0"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:cd6a55f65241c551eb53f8cf4d2f4af33512c39da5d9777694e9d9c60872f519"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9979643ffc69b799d50d3a7b72b5164a2e97e117009d7af6dfdd2ab906cb72cd"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4cf9e93a81979f1424f1a3d155213dc928f1069d697e4353edb8a5eba67c6259"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2fce1df66915909ff6c824bbb5eb403d2d15f98f1518e583074671a30fe0c21e"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4d0dfdd9a2ebc77b869a0b04423591ea8823f791293b527dc1bb896c1d6f1136"}, - {file = "propcache-0.3.1-cp310-cp310-win32.whl", hash = "sha256:1f6cc0ad7b4560e5637eb2c994e97b4fa41ba8226069c9277eb5ea7101845b42"}, - {file = "propcache-0.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:47ef24aa6511e388e9894ec16f0fbf3313a53ee68402bc428744a367ec55b833"}, - {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7f30241577d2fef2602113b70ef7231bf4c69a97e04693bde08ddab913ba0ce5"}, - {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:43593c6772aa12abc3af7784bff4a41ffa921608dd38b77cf1dfd7f5c4e71371"}, - {file = "propcache-0.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a75801768bbe65499495660b777e018cbe90c7980f07f8aa57d6be79ea6f71da"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6f1324db48f001c2ca26a25fa25af60711e09b9aaf4b28488602776f4f9a744"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cdb0f3e1eb6dfc9965d19734d8f9c481b294b5274337a8cb5cb01b462dcb7e0"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb34d90aac9bfbced9a58b266f8946cb5935869ff01b164573a7634d39fbcb5"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35c7070eeec2cdaac6fd3fe245226ed2a6292d3ee8c938e5bb645b434c5f256"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b23c11c2c9e6d4e7300c92e022046ad09b91fd00e36e83c44483df4afa990073"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3e19ea4ea0bf46179f8a3652ac1426e6dcbaf577ce4b4f65be581e237340420d"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:bd39c92e4c8f6cbf5f08257d6360123af72af9f4da75a690bef50da77362d25f"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b0313e8b923b3814d1c4a524c93dfecea5f39fa95601f6a9b1ac96cd66f89ea0"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e861ad82892408487be144906a368ddbe2dc6297074ade2d892341b35c59844a"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:61014615c1274df8da5991a1e5da85a3ccb00c2d4701ac6f3383afd3ca47ab0a"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:71ebe3fe42656a2328ab08933d420df5f3ab121772eef78f2dc63624157f0ed9"}, - {file = "propcache-0.3.1-cp311-cp311-win32.whl", hash = "sha256:58aa11f4ca8b60113d4b8e32d37e7e78bd8af4d1a5b5cb4979ed856a45e62005"}, - {file = "propcache-0.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:9532ea0b26a401264b1365146c440a6d78269ed41f83f23818d4b79497aeabe7"}, - {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f78eb8422acc93d7b69964012ad7048764bb45a54ba7a39bb9e146c72ea29723"}, - {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:89498dd49c2f9a026ee057965cdf8192e5ae070ce7d7a7bd4b66a8e257d0c976"}, - {file = "propcache-0.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:09400e98545c998d57d10035ff623266927cb784d13dd2b31fd33b8a5316b85b"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8efd8c5adc5a2c9d3b952815ff8f7710cefdcaf5f2c36d26aff51aeca2f12f"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2fe5c910f6007e716a06d269608d307b4f36e7babee5f36533722660e8c4a70"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0ab8cf8cdd2194f8ff979a43ab43049b1df0b37aa64ab7eca04ac14429baeb7"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:563f9d8c03ad645597b8d010ef4e9eab359faeb11a0a2ac9f7b4bc8c28ebef25"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb6e0faf8cb6b4beea5d6ed7b5a578254c6d7df54c36ccd3d8b3eb00d6770277"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1c5c7ab7f2bb3f573d1cb921993006ba2d39e8621019dffb1c5bc94cdbae81e8"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:050b571b2e96ec942898f8eb46ea4bfbb19bd5502424747e83badc2d4a99a44e"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e1c4d24b804b3a87e9350f79e2371a705a188d292fd310e663483af6ee6718ee"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e4fe2a6d5ce975c117a6bb1e8ccda772d1e7029c1cca1acd209f91d30fa72815"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:feccd282de1f6322f56f6845bf1207a537227812f0a9bf5571df52bb418d79d5"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ec314cde7314d2dd0510c6787326bbffcbdc317ecee6b7401ce218b3099075a7"}, - {file = "propcache-0.3.1-cp312-cp312-win32.whl", hash = "sha256:7d2d5a0028d920738372630870e7d9644ce437142197f8c827194fca404bf03b"}, - {file = "propcache-0.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:88c423efef9d7a59dae0614eaed718449c09a5ac79a5f224a8b9664d603f04a3"}, - {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f1528ec4374617a7a753f90f20e2f551121bb558fcb35926f99e3c42367164b8"}, - {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc1915ec523b3b494933b5424980831b636fe483d7d543f7afb7b3bf00f0c10f"}, - {file = "propcache-0.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a110205022d077da24e60b3df8bcee73971be9575dec5573dd17ae5d81751111"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d249609e547c04d190e820d0d4c8ca03ed4582bcf8e4e160a6969ddfb57b62e5"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ced33d827625d0a589e831126ccb4f5c29dfdf6766cac441d23995a65825dcb"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4114c4ada8f3181af20808bedb250da6bae56660e4b8dfd9cd95d4549c0962f7"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:975af16f406ce48f1333ec5e912fe11064605d5c5b3f6746969077cc3adeb120"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a34aa3a1abc50740be6ac0ab9d594e274f59960d3ad253cd318af76b996dd654"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9cec3239c85ed15bfaded997773fdad9fb5662b0a7cbc854a43f291eb183179e"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:05543250deac8e61084234d5fc54f8ebd254e8f2b39a16b1dce48904f45b744b"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cb5918253912e088edbf023788de539219718d3b10aef334476b62d2b53de53"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f3bbecd2f34d0e6d3c543fdb3b15d6b60dd69970c2b4c822379e5ec8f6f621d5"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aca63103895c7d960a5b9b044a83f544b233c95e0dcff114389d64d762017af7"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a0a9898fdb99bf11786265468571e628ba60af80dc3f6eb89a3545540c6b0ef"}, - {file = "propcache-0.3.1-cp313-cp313-win32.whl", hash = "sha256:3a02a28095b5e63128bcae98eb59025924f121f048a62393db682f049bf4ac24"}, - {file = "propcache-0.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:813fbb8b6aea2fc9659815e585e548fe706d6f663fa73dff59a1677d4595a037"}, - {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a444192f20f5ce8a5e52761a031b90f5ea6288b1eef42ad4c7e64fef33540b8f"}, - {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fbe94666e62ebe36cd652f5fc012abfbc2342de99b523f8267a678e4dfdee3c"}, - {file = "propcache-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f011f104db880f4e2166bcdcf7f58250f7a465bc6b068dc84c824a3d4a5c94dc"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e584b6d388aeb0001d6d5c2bd86b26304adde6d9bb9bfa9c4889805021b96de"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a17583515a04358b034e241f952f1715243482fc2c2945fd99a1b03a0bd77d6"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5aed8d8308215089c0734a2af4f2e95eeb360660184ad3912686c181e500b2e7"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8e309ff9a0503ef70dc9a0ebd3e69cf7b3894c9ae2ae81fc10943c37762458"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b655032b202028a582d27aeedc2e813299f82cb232f969f87a4fde491a233f11"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f64d91b751df77931336b5ff7bafbe8845c5770b06630e27acd5dbb71e1931c"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:19a06db789a4bd896ee91ebc50d059e23b3639c25d58eb35be3ca1cbe967c3bf"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:bef100c88d8692864651b5f98e871fb090bd65c8a41a1cb0ff2322db39c96c27"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:87380fb1f3089d2a0b8b00f006ed12bd41bd858fabfa7330c954c70f50ed8757"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e474fc718e73ba5ec5180358aa07f6aded0ff5f2abe700e3115c37d75c947e18"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:17d1c688a443355234f3c031349da69444be052613483f3e4158eef751abcd8a"}, - {file = "propcache-0.3.1-cp313-cp313t-win32.whl", hash = "sha256:359e81a949a7619802eb601d66d37072b79b79c2505e6d3fd8b945538411400d"}, - {file = "propcache-0.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e7fb9a84c9abbf2b2683fa3e7b0d7da4d8ecf139a1c635732a8bda29c5214b0e"}, - {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ed5f6d2edbf349bd8d630e81f474d33d6ae5d07760c44d33cd808e2f5c8f4ae6"}, - {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:668ddddc9f3075af019f784456267eb504cb77c2c4bd46cc8402d723b4d200bf"}, - {file = "propcache-0.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0c86e7ceea56376216eba345aa1fc6a8a6b27ac236181f840d1d7e6a1ea9ba5c"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83be47aa4e35b87c106fc0c84c0fc069d3f9b9b06d3c494cd404ec6747544894"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:27c6ac6aa9fc7bc662f594ef380707494cb42c22786a558d95fcdedb9aa5d035"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64a956dff37080b352c1c40b2966b09defb014347043e740d420ca1eb7c9b908"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82de5da8c8893056603ac2d6a89eb8b4df49abf1a7c19d536984c8dd63f481d5"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3c3a203c375b08fd06a20da3cf7aac293b834b6f4f4db71190e8422750cca5"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b303b194c2e6f171cfddf8b8ba30baefccf03d36a4d9cab7fd0bb68ba476a3d7"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:916cd229b0150129d645ec51614d38129ee74c03293a9f3f17537be0029a9641"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a461959ead5b38e2581998700b26346b78cd98540b5524796c175722f18b0294"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:069e7212890b0bcf9b2be0a03afb0c2d5161d91e1bf51569a64f629acc7defbf"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ef2e4e91fb3945769e14ce82ed53007195e616a63aa43b40fb7ebaaf907c8d4c"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8638f99dca15b9dff328fb6273e09f03d1c50d9b6512f3b65a4154588a7595fe"}, - {file = "propcache-0.3.1-cp39-cp39-win32.whl", hash = "sha256:6f173bbfe976105aaa890b712d1759de339d8a7cef2fc0a1714cc1a1e1c47f64"}, - {file = "propcache-0.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:603f1fe4144420374f1a69b907494c3acbc867a581c2d49d4175b0de7cc64566"}, - {file = "propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40"}, - {file = "propcache-0.3.1.tar.gz", hash = "sha256:40d980c33765359098837527e18eddefc9a24cea5b45e078a7f3bb5b032c6ecf"}, -] - -[[package]] -name = "pydantic" -version = "2.11.2" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pydantic-2.11.2-py3-none-any.whl", hash = "sha256:7f17d25846bcdf89b670a86cdfe7b29a9f1c9ca23dee154221c9aa81845cfca7"}, - {file = "pydantic-2.11.2.tar.gz", hash = "sha256:2138628e050bd7a1e70b91d4bf4a91167f4ad76fdb83209b107c8d84b854917e"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.33.1" -typing-extensions = ">=4.12.2" -typing-inspection = ">=0.4.0" - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] - -[[package]] -name = "pydantic-core" -version = "2.33.1" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pydantic_core-2.33.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3077cfdb6125cc8dab61b155fdd714663e401f0e6883f9632118ec12cf42df26"}, - {file = "pydantic_core-2.33.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ffab8b2908d152e74862d276cf5017c81a2f3719f14e8e3e8d6b83fda863927"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5183e4f6a2d468787243ebcd70cf4098c247e60d73fb7d68d5bc1e1beaa0c4db"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:398a38d323f37714023be1e0285765f0a27243a8b1506b7b7de87b647b517e48"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d3776f0001b43acebfa86f8c64019c043b55cc5a6a2e313d728b5c95b46969"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c566dd9c5f63d22226409553531f89de0cac55397f2ab8d97d6f06cfce6d947e"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d5f3acc81452c56895e90643a625302bd6be351e7010664151cc55b7b97f89"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3a07fadec2a13274a8d861d3d37c61e97a816beae717efccaa4b36dfcaadcde"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f99aeda58dce827f76963ee87a0ebe75e648c72ff9ba1174a253f6744f518f65"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:902dbc832141aa0ec374f4310f1e4e7febeebc3256f00dc359a9ac3f264a45dc"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fe44d56aa0b00d66640aa84a3cbe80b7a3ccdc6f0b1ca71090696a6d4777c091"}, - {file = "pydantic_core-2.33.1-cp310-cp310-win32.whl", hash = "sha256:ed3eb16d51257c763539bde21e011092f127a2202692afaeaccb50db55a31383"}, - {file = "pydantic_core-2.33.1-cp310-cp310-win_amd64.whl", hash = "sha256:694ad99a7f6718c1a498dc170ca430687a39894a60327f548e02a9c7ee4b6504"}, - {file = "pydantic_core-2.33.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e966fc3caaf9f1d96b349b0341c70c8d6573bf1bac7261f7b0ba88f96c56c24"}, - {file = "pydantic_core-2.33.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bfd0adeee563d59c598ceabddf2c92eec77abcb3f4a391b19aa7366170bd9e30"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91815221101ad3c6b507804178a7bb5cb7b2ead9ecd600041669c8d805ebd595"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9fea9c1869bb4742d174a57b4700c6dadea951df8b06de40c2fedb4f02931c2e"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d20eb4861329bb2484c021b9d9a977566ab16d84000a57e28061151c62b349a"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb935c5591573ae3201640579f30128ccc10739b45663f93c06796854405505"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c964fd24e6166420d18fb53996d8c9fd6eac9bf5ae3ec3d03015be4414ce497f"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:681d65e9011f7392db5aa002b7423cc442d6a673c635668c227c6c8d0e5a4f77"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e100c52f7355a48413e2999bfb4e139d2977a904495441b374f3d4fb4a170961"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:048831bd363490be79acdd3232f74a0e9951b11b2b4cc058aeb72b22fdc3abe1"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bdc84017d28459c00db6f918a7272a5190bec3090058334e43a76afb279eac7c"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win32.whl", hash = "sha256:32cd11c5914d1179df70406427097c7dcde19fddf1418c787540f4b730289896"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win_amd64.whl", hash = "sha256:2ea62419ba8c397e7da28a9170a16219d310d2cf4970dbc65c32faf20d828c83"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win_arm64.whl", hash = "sha256:fc903512177361e868bc1f5b80ac8c8a6e05fcdd574a5fb5ffeac5a9982b9e89"}, - {file = "pydantic_core-2.33.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1293d7febb995e9d3ec3ea09caf1a26214eec45b0f29f6074abb004723fc1de8"}, - {file = "pydantic_core-2.33.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:99b56acd433386c8f20be5c4000786d1e7ca0523c8eefc995d14d79c7a081498"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35a5ec3fa8c2fe6c53e1b2ccc2454398f95d5393ab398478f53e1afbbeb4d939"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b172f7b9d2f3abc0efd12e3386f7e48b576ef309544ac3a63e5e9cdd2e24585d"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9097b9f17f91eea659b9ec58148c0747ec354a42f7389b9d50701610d86f812e"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc77ec5b7e2118b152b0d886c7514a4653bcb58c6b1d760134a9fab915f777b3"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3d15245b08fa4a84cefc6c9222e6f37c98111c8679fbd94aa145f9a0ae23d"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ef99779001d7ac2e2461d8ab55d3373fe7315caefdbecd8ced75304ae5a6fc6b"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fc6bf8869e193855e8d91d91f6bf59699a5cdfaa47a404e278e776dd7f168b39"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:b1caa0bc2741b043db7823843e1bde8aaa58a55a58fda06083b0569f8b45693a"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ec259f62538e8bf364903a7d0d0239447059f9434b284f5536e8402b7dd198db"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win32.whl", hash = "sha256:e14f369c98a7c15772b9da98987f58e2b509a93235582838bd0d1d8c08b68fda"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win_amd64.whl", hash = "sha256:1c607801d85e2e123357b3893f82c97a42856192997b95b4d8325deb1cd0c5f4"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win_arm64.whl", hash = "sha256:8d13f0276806ee722e70a1c93da19748594f19ac4299c7e41237fc791d1861ea"}, - {file = "pydantic_core-2.33.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:70af6a21237b53d1fe7b9325b20e65cbf2f0a848cf77bed492b029139701e66a"}, - {file = "pydantic_core-2.33.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:282b3fe1bbbe5ae35224a0dbd05aed9ccabccd241e8e6b60370484234b456266"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b315e596282bbb5822d0c7ee9d255595bd7506d1cb20c2911a4da0b970187d3"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1dfae24cf9921875ca0ca6a8ecb4bb2f13c855794ed0d468d6abbec6e6dcd44a"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dd8ecfde08d8bfadaea669e83c63939af76f4cf5538a72597016edfa3fad516"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f593494876eae852dc98c43c6f260f45abdbfeec9e4324e31a481d948214764"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:948b73114f47fd7016088e5186d13faf5e1b2fe83f5e320e371f035557fd264d"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e11f3864eb516af21b01e25fac915a82e9ddad3bb0fb9e95a246067398b435a4"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:549150be302428b56fdad0c23c2741dcdb5572413776826c965619a25d9c6bde"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:495bc156026efafd9ef2d82372bd38afce78ddd82bf28ef5276c469e57c0c83e"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ec79de2a8680b1a67a07490bddf9636d5c2fab609ba8c57597e855fa5fa4dacd"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win32.whl", hash = "sha256:ee12a7be1742f81b8a65b36c6921022301d466b82d80315d215c4c691724986f"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win_amd64.whl", hash = "sha256:ede9b407e39949d2afc46385ce6bd6e11588660c26f80576c11c958e6647bc40"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win_arm64.whl", hash = "sha256:aa687a23d4b7871a00e03ca96a09cad0f28f443690d300500603bd0adba4b523"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:401d7b76e1000d0dd5538e6381d28febdcacb097c8d340dde7d7fc6e13e9f95d"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7aeb055a42d734c0255c9e489ac67e75397d59c6fbe60d155851e9782f276a9c"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-win_amd64.whl", hash = "sha256:338ea9b73e6e109f15ab439e62cb3b78aa752c7fd9536794112e14bee02c8d18"}, - {file = "pydantic_core-2.33.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5ab77f45d33d264de66e1884fca158bc920cb5e27fd0764a72f72f5756ae8bdb"}, - {file = "pydantic_core-2.33.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7aaba1b4b03aaea7bb59e1b5856d734be011d3e6d98f5bcaa98cb30f375f2ad"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fb66263e9ba8fea2aa85e1e5578980d127fb37d7f2e292773e7bc3a38fb0c7b"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f2648b9262607a7fb41d782cc263b48032ff7a03a835581abbf7a3bec62bcf5"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:723c5630c4259400818b4ad096735a829074601805d07f8cafc366d95786d331"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d100e3ae783d2167782391e0c1c7a20a31f55f8015f3293647544df3f9c67824"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177d50460bc976a0369920b6c744d927b0ecb8606fb56858ff542560251b19e5"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3edde68d1a1f9af1273b2fe798997b33f90308fb6d44d8550c89fc6a3647cf6"}, - {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a62c3c3ef6a7e2c45f7853b10b5bc4ddefd6ee3cd31024754a1a5842da7d598d"}, - {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:c91dbb0ab683fa0cd64a6e81907c8ff41d6497c346890e26b23de7ee55353f96"}, - {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f466e8bf0a62dc43e068c12166281c2eca72121dd2adc1040f3aa1e21ef8599"}, - {file = "pydantic_core-2.33.1-cp39-cp39-win32.whl", hash = "sha256:ab0277cedb698749caada82e5d099dc9fed3f906a30d4c382d1a21725777a1e5"}, - {file = "pydantic_core-2.33.1-cp39-cp39-win_amd64.whl", hash = "sha256:5773da0ee2d17136b1f1c6fbde543398d452a6ad2a7b54ea1033e2daa739b8d2"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c834f54f8f4640fd7e4b193f80eb25a0602bba9e19b3cd2fc7ffe8199f5ae02"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:049e0de24cf23766f12cc5cc71d8abc07d4a9deb9061b334b62093dedc7cb068"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a28239037b3d6f16916a4c831a5a0eadf856bdd6d2e92c10a0da3a59eadcf3e"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d3da303ab5f378a268fa7d45f37d7d85c3ec19769f28d2cc0c61826a8de21fe"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25626fb37b3c543818c14821afe0fd3830bc327a43953bc88db924b68c5723f1"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3ab2d36e20fbfcce8f02d73c33a8a7362980cff717926bbae030b93ae46b56c7"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:2f9284e11c751b003fd4215ad92d325d92c9cb19ee6729ebd87e3250072cdcde"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:048c01eee07d37cbd066fc512b9d8b5ea88ceeb4e629ab94b3e56965ad655add"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5ccd429694cf26af7997595d627dd2637e7932214486f55b8a357edaac9dae8c"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3a371dc00282c4b84246509a5ddc808e61b9864aa1eae9ecc92bb1268b82db4a"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f59295ecc75a1788af8ba92f2e8c6eeaa5a94c22fc4d151e8d9638814f85c8fc"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08530b8ac922003033f399128505f513e30ca770527cc8bbacf75a84fcc2c74b"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bae370459da6a5466978c0eacf90690cb57ec9d533f8e63e564ef3822bfa04fe"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3de2777e3b9f4d603112f78006f4ae0acb936e95f06da6cb1a45fbad6bdb4b5"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3a64e81e8cba118e108d7126362ea30e021291b7805d47e4896e52c791be2761"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:52928d8c1b6bda03cc6d811e8923dffc87a2d3c8b3bfd2ce16471c7147a24850"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:1b30d92c9412beb5ac6b10a3eb7ef92ccb14e3f2a8d7732e2d739f58b3aa7544"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f995719707e0e29f0f41a8aa3bcea6e761a36c9136104d3189eafb83f5cec5e5"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7edbc454a29fc6aeae1e1eecba4f07b63b8d76e76a748532233c4c167b4cb9ea"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ad05b683963f69a1d5d2c2bdab1274a31221ca737dbbceaa32bcb67359453cdd"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df6a94bf9452c6da9b5d76ed229a5683d0306ccb91cca8e1eea883189780d568"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7965c13b3967909a09ecc91f21d09cfc4576bf78140b988904e94f130f188396"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f1fdb790440a34f6ecf7679e1863b825cb5ffde858a9197f851168ed08371e5"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5277aec8d879f8d05168fdd17ae811dd313b8ff894aeeaf7cd34ad28b4d77e33"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8ab581d3530611897d863d1a649fb0644b860286b4718db919bfd51ece41f10b"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0483847fa9ad5e3412265c1bd72aad35235512d9ce9d27d81a56d935ef489672"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:de9e06abe3cc5ec6a2d5f75bc99b0bdca4f5c719a5b34026f8c57efbdecd2ee3"}, - {file = "pydantic_core-2.33.1.tar.gz", hash = "sha256:bcc9c6fdb0ced789245b02b7d6603e17d1563064ddcfc36f046b61c0c05dd9df"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pygments" -version = "2.19.1" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pyparsing" -version = "3.2.3" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf"}, - {file = "pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be"}, -] - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] - -[[package]] -name = "pytest" -version = "8.3.5" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820"}, - {file = "pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-asyncio" -version = "0.25.3" -description = "Pytest support for asyncio" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3"}, - {file = "pytest_asyncio-0.25.3.tar.gz", hash = "sha256:fc1da2cf9f125ada7e710b4ddad05518d4cee187ae9412e9ac9271003497f07a"}, -] - -[package.dependencies] -pytest = ">=8.2,<9" - -[package.extras] -docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] -testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] - -[[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 = "pytz" -version = "2025.2" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, - {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, -] - -[[package]] -name = "pyvista" -version = "0.44.2" -description = "Easier Pythonic interface to VTK" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pyvista-0.44.2-py3-none-any.whl", hash = "sha256:8530d35f57cdaa33507ac9aec19e3292be0bc9026b28e4f12df7e8054438d028"}, - {file = "pyvista-0.44.2.tar.gz", hash = "sha256:db65943c3c1c9ba49fe16f5a25a5bc23b74bf1ea7a38aae4ef9c4dc5838ccf5e"}, -] - -[package.dependencies] -matplotlib = ">=3.0.1" -numpy = ">=1.21.0" -pillow = "*" -pooch = "*" -scooby = ">=0.5.1" -typing-extensions = "*" -vtk = "<9.4.0" - -[package.extras] -all = ["pyvista[colormaps,io,jupyter]"] -colormaps = ["cmocean", "colorcet"] -io = ["imageio", "meshio (>=5.2)"] -jupyter = ["ipywidgets", "jupyter-server-proxy", "nest_asyncio", "trame (>=2.5.2)", "trame-client (>=2.12.7)", "trame-server (>=2.11.7)", "trame-vtk (>=2.5.8)", "trame-vuetify (>=2.3.1)"] - -[[package]] -name = "pywin32" -version = "310" -description = "Python for Window Extensions" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-310-cp310-cp310-win32.whl", hash = "sha256:6dd97011efc8bf51d6793a82292419eba2c71cf8e7250cfac03bba284454abc1"}, - {file = "pywin32-310-cp310-cp310-win_amd64.whl", hash = "sha256:c3e78706e4229b915a0821941a84e7ef420bf2b77e08c9dae3c76fd03fd2ae3d"}, - {file = "pywin32-310-cp310-cp310-win_arm64.whl", hash = "sha256:33babed0cf0c92a6f94cc6cc13546ab24ee13e3e800e61ed87609ab91e4c8213"}, - {file = "pywin32-310-cp311-cp311-win32.whl", hash = "sha256:1e765f9564e83011a63321bb9d27ec456a0ed90d3732c4b2e312b855365ed8bd"}, - {file = "pywin32-310-cp311-cp311-win_amd64.whl", hash = "sha256:126298077a9d7c95c53823934f000599f66ec9296b09167810eb24875f32689c"}, - {file = "pywin32-310-cp311-cp311-win_arm64.whl", hash = "sha256:19ec5fc9b1d51c4350be7bb00760ffce46e6c95eaf2f0b2f1150657b1a43c582"}, - {file = "pywin32-310-cp312-cp312-win32.whl", hash = "sha256:8a75a5cc3893e83a108c05d82198880704c44bbaee4d06e442e471d3c9ea4f3d"}, - {file = "pywin32-310-cp312-cp312-win_amd64.whl", hash = "sha256:bf5c397c9a9a19a6f62f3fb821fbf36cac08f03770056711f765ec1503972060"}, - {file = "pywin32-310-cp312-cp312-win_arm64.whl", hash = "sha256:2349cc906eae872d0663d4d6290d13b90621eaf78964bb1578632ff20e152966"}, - {file = "pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab"}, - {file = "pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e"}, - {file = "pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33"}, - {file = "pywin32-310-cp38-cp38-win32.whl", hash = "sha256:0867beb8addefa2e3979d4084352e4ac6e991ca45373390775f7084cc0209b9c"}, - {file = "pywin32-310-cp38-cp38-win_amd64.whl", hash = "sha256:30f0a9b3138fb5e07eb4973b7077e1883f558e40c578c6925acc7a94c34eaa36"}, - {file = "pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a"}, - {file = "pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "questionary" -version = "2.1.0" -description = "Python library to build pretty command line user prompts ⭐️" -optional = false -python-versions = ">=3.8" -files = [ - {file = "questionary-2.1.0-py3-none-any.whl", hash = "sha256:44174d237b68bc828e4878c763a9ad6790ee61990e0ae72927694ead57bab8ec"}, - {file = "questionary-2.1.0.tar.gz", hash = "sha256:6302cdd645b19667d8f6e6634774e9538bfcd1aad9be287e743d96cacaf95587"}, -] - -[package.dependencies] -prompt_toolkit = ">=2.0,<4.0" - -[[package]] -name = "referencing" -version = "0.36.2" -description = "JSON Referencing + Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, - {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, -] - -[package.dependencies] -attrs = ">=22.2.0" -rpds-py = ">=0.7.0" -typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""} - -[[package]] -name = "requests" -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 = "requests-toolbelt" -version = "1.0.0" -description = "A utility belt for advanced users of python-requests" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, - {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, -] - -[package.dependencies] -requests = ">=2.0.1,<3.0.0" - -[[package]] -name = "rpds-py" -version = "0.24.0" -description = "Python bindings to Rust's persistent data structures (rpds)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "rpds_py-0.24.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:006f4342fe729a368c6df36578d7a348c7c716be1da0a1a0f86e3021f8e98724"}, - {file = "rpds_py-0.24.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2d53747da70a4e4b17f559569d5f9506420966083a31c5fbd84e764461c4444b"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8acd55bd5b071156bae57b555f5d33697998752673b9de554dd82f5b5352727"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7e80d375134ddb04231a53800503752093dbb65dad8dabacce2c84cccc78e964"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60748789e028d2a46fc1c70750454f83c6bdd0d05db50f5ae83e2db500b34da5"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e1daf5bf6c2be39654beae83ee6b9a12347cb5aced9a29eecf12a2d25fff664"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b221c2457d92a1fb3c97bee9095c874144d196f47c038462ae6e4a14436f7bc"}, - {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:66420986c9afff67ef0c5d1e4cdc2d0e5262f53ad11e4f90e5e22448df485bf0"}, - {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:43dba99f00f1d37b2a0265a259592d05fcc8e7c19d140fe51c6e6f16faabeb1f"}, - {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a88c0d17d039333a41d9bf4616bd062f0bd7aa0edeb6cafe00a2fc2a804e944f"}, - {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc31e13ce212e14a539d430428cd365e74f8b2d534f8bc22dd4c9c55b277b875"}, - {file = "rpds_py-0.24.0-cp310-cp310-win32.whl", hash = "sha256:fc2c1e1b00f88317d9de6b2c2b39b012ebbfe35fe5e7bef980fd2a91f6100a07"}, - {file = "rpds_py-0.24.0-cp310-cp310-win_amd64.whl", hash = "sha256:c0145295ca415668420ad142ee42189f78d27af806fcf1f32a18e51d47dd2052"}, - {file = "rpds_py-0.24.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2d3ee4615df36ab8eb16c2507b11e764dcc11fd350bbf4da16d09cda11fcedef"}, - {file = "rpds_py-0.24.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e13ae74a8a3a0c2f22f450f773e35f893484fcfacb00bb4344a7e0f4f48e1f97"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf86f72d705fc2ef776bb7dd9e5fbba79d7e1f3e258bf9377f8204ad0fc1c51e"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c43583ea8517ed2e780a345dd9960896afc1327e8cf3ac8239c167530397440d"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4cd031e63bc5f05bdcda120646a0d32f6d729486d0067f09d79c8db5368f4586"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:34d90ad8c045df9a4259c47d2e16a3f21fdb396665c94520dbfe8766e62187a4"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e838bf2bb0b91ee67bf2b889a1a841e5ecac06dd7a2b1ef4e6151e2ce155c7ae"}, - {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04ecf5c1ff4d589987b4d9882872f80ba13da7d42427234fce8f22efb43133bc"}, - {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:630d3d8ea77eabd6cbcd2ea712e1c5cecb5b558d39547ac988351195db433f6c"}, - {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ebcb786b9ff30b994d5969213a8430cbb984cdd7ea9fd6df06663194bd3c450c"}, - {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:174e46569968ddbbeb8a806d9922f17cd2b524aa753b468f35b97ff9c19cb718"}, - {file = "rpds_py-0.24.0-cp311-cp311-win32.whl", hash = "sha256:5ef877fa3bbfb40b388a5ae1cb00636a624690dcb9a29a65267054c9ea86d88a"}, - {file = "rpds_py-0.24.0-cp311-cp311-win_amd64.whl", hash = "sha256:e274f62cbd274359eff63e5c7e7274c913e8e09620f6a57aae66744b3df046d6"}, - {file = "rpds_py-0.24.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d8551e733626afec514b5d15befabea0dd70a343a9f23322860c4f16a9430205"}, - {file = "rpds_py-0.24.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e374c0ce0ca82e5b67cd61fb964077d40ec177dd2c4eda67dba130de09085c7"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d69d003296df4840bd445a5d15fa5b6ff6ac40496f956a221c4d1f6f7b4bc4d9"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8212ff58ac6dfde49946bea57474a386cca3f7706fc72c25b772b9ca4af6b79e"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:528927e63a70b4d5f3f5ccc1fa988a35456eb5d15f804d276709c33fc2f19bda"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a824d2c7a703ba6daaca848f9c3d5cb93af0505be505de70e7e66829affd676e"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44d51febb7a114293ffd56c6cf4736cb31cd68c0fddd6aa303ed09ea5a48e029"}, - {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3fab5f4a2c64a8fb64fc13b3d139848817a64d467dd6ed60dcdd6b479e7febc9"}, - {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9be4f99bee42ac107870c61dfdb294d912bf81c3c6d45538aad7aecab468b6b7"}, - {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:564c96b6076a98215af52f55efa90d8419cc2ef45d99e314fddefe816bc24f91"}, - {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:75a810b7664c17f24bf2ffd7f92416c00ec84b49bb68e6a0d93e542406336b56"}, - {file = "rpds_py-0.24.0-cp312-cp312-win32.whl", hash = "sha256:f6016bd950be4dcd047b7475fdf55fb1e1f59fc7403f387be0e8123e4a576d30"}, - {file = "rpds_py-0.24.0-cp312-cp312-win_amd64.whl", hash = "sha256:998c01b8e71cf051c28f5d6f1187abbdf5cf45fc0efce5da6c06447cba997034"}, - {file = "rpds_py-0.24.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:3d2d8e4508e15fc05b31285c4b00ddf2e0eb94259c2dc896771966a163122a0c"}, - {file = "rpds_py-0.24.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0f00c16e089282ad68a3820fd0c831c35d3194b7cdc31d6e469511d9bffc535c"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951cc481c0c395c4a08639a469d53b7d4afa252529a085418b82a6b43c45c240"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9ca89938dff18828a328af41ffdf3902405a19f4131c88e22e776a8e228c5a8"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed0ef550042a8dbcd657dfb284a8ee00f0ba269d3f2286b0493b15a5694f9fe8"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b2356688e5d958c4d5cb964af865bea84db29971d3e563fb78e46e20fe1848b"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78884d155fd15d9f64f5d6124b486f3d3f7fd7cd71a78e9670a0f6f6ca06fb2d"}, - {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6a4a535013aeeef13c5532f802708cecae8d66c282babb5cd916379b72110cf7"}, - {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:84e0566f15cf4d769dade9b366b7b87c959be472c92dffb70462dd0844d7cbad"}, - {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:823e74ab6fbaa028ec89615ff6acb409e90ff45580c45920d4dfdddb069f2120"}, - {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c61a2cb0085c8783906b2f8b1f16a7e65777823c7f4d0a6aaffe26dc0d358dd9"}, - {file = "rpds_py-0.24.0-cp313-cp313-win32.whl", hash = "sha256:60d9b630c8025b9458a9d114e3af579a2c54bd32df601c4581bd054e85258143"}, - {file = "rpds_py-0.24.0-cp313-cp313-win_amd64.whl", hash = "sha256:6eea559077d29486c68218178ea946263b87f1c41ae7f996b1f30a983c476a5a"}, - {file = "rpds_py-0.24.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:d09dc82af2d3c17e7dd17120b202a79b578d79f2b5424bda209d9966efeed114"}, - {file = "rpds_py-0.24.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5fc13b44de6419d1e7a7e592a4885b323fbc2f46e1f22151e3a8ed3b8b920405"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c347a20d79cedc0a7bd51c4d4b7dbc613ca4e65a756b5c3e57ec84bd43505b47"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:20f2712bd1cc26a3cc16c5a1bfee9ed1abc33d4cdf1aabd297fe0eb724df4272"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aad911555286884be1e427ef0dc0ba3929e6821cbeca2194b13dc415a462c7fd"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0aeb3329c1721c43c58cae274d7d2ca85c1690d89485d9c63a006cb79a85771a"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a0f156e9509cee987283abd2296ec816225145a13ed0391df8f71bf1d789e2d"}, - {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa6800adc8204ce898c8a424303969b7aa6a5e4ad2789c13f8648739830323b7"}, - {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a18fc371e900a21d7392517c6f60fe859e802547309e94313cd8181ad9db004d"}, - {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9168764133fd919f8dcca2ead66de0105f4ef5659cbb4fa044f7014bed9a1797"}, - {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f6e3cec44ba05ee5cbdebe92d052f69b63ae792e7d05f1020ac5e964394080c"}, - {file = "rpds_py-0.24.0-cp313-cp313t-win32.whl", hash = "sha256:8ebc7e65ca4b111d928b669713865f021b7773350eeac4a31d3e70144297baba"}, - {file = "rpds_py-0.24.0-cp313-cp313t-win_amd64.whl", hash = "sha256:675269d407a257b8c00a6b58205b72eec8231656506c56fd429d924ca00bb350"}, - {file = "rpds_py-0.24.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a36b452abbf29f68527cf52e181fced56685731c86b52e852053e38d8b60bc8d"}, - {file = "rpds_py-0.24.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b3b397eefecec8e8e39fa65c630ef70a24b09141a6f9fc17b3c3a50bed6b50e"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdabcd3beb2a6dca7027007473d8ef1c3b053347c76f685f5f060a00327b8b65"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5db385bacd0c43f24be92b60c857cf760b7f10d8234f4bd4be67b5b20a7c0b6b"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8097b3422d020ff1c44effc40ae58e67d93e60d540a65649d2cdaf9466030791"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:493fe54318bed7d124ce272fc36adbf59d46729659b2c792e87c3b95649cdee9"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8aa362811ccdc1f8dadcc916c6d47e554169ab79559319ae9fae7d7752d0d60c"}, - {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d8f9a6e7fd5434817526815f09ea27f2746c4a51ee11bb3439065f5fc754db58"}, - {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8205ee14463248d3349131bb8099efe15cd3ce83b8ef3ace63c7e976998e7124"}, - {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:921ae54f9ecba3b6325df425cf72c074cd469dea843fb5743a26ca7fb2ccb149"}, - {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:32bab0a56eac685828e00cc2f5d1200c548f8bc11f2e44abf311d6b548ce2e45"}, - {file = "rpds_py-0.24.0-cp39-cp39-win32.whl", hash = "sha256:f5c0ed12926dec1dfe7d645333ea59cf93f4d07750986a586f511c0bc61fe103"}, - {file = "rpds_py-0.24.0-cp39-cp39-win_amd64.whl", hash = "sha256:afc6e35f344490faa8276b5f2f7cbf71f88bc2cda4328e00553bd451728c571f"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:619ca56a5468f933d940e1bf431c6f4e13bef8e688698b067ae68eb4f9b30e3a"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:4b28e5122829181de1898c2c97f81c0b3246d49f585f22743a1246420bb8d399"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e5ab32cf9eb3647450bc74eb201b27c185d3857276162c101c0f8c6374e098"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:208b3a70a98cf3710e97cabdc308a51cd4f28aa6e7bb11de3d56cd8b74bab98d"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbc4362e06f950c62cad3d4abf1191021b2ffaf0b31ac230fbf0526453eee75e"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ebea2821cdb5f9fef44933617be76185b80150632736f3d76e54829ab4a3b4d1"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a4df06c35465ef4d81799999bba810c68d29972bf1c31db61bfdb81dd9d5bb"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3aa13bdf38630da298f2e0d77aca967b200b8cc1473ea05248f6c5e9c9bdb44"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:041f00419e1da7a03c46042453598479f45be3d787eb837af382bfc169c0db33"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:d8754d872a5dfc3c5bf9c0e059e8107451364a30d9fd50f1f1a85c4fb9481164"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:896c41007931217a343eff197c34513c154267636c8056fb409eafd494c3dcdc"}, - {file = "rpds_py-0.24.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:92558d37d872e808944c3c96d0423b8604879a3d1c86fdad508d7ed91ea547d5"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f9e0057a509e096e47c87f753136c9b10d7a91842d8042c2ee6866899a717c0d"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6e109a454412ab82979c5b1b3aee0604eca4bbf9a02693bb9df027af2bfa91a"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc1c892b1ec1f8cbd5da8de287577b455e388d9c328ad592eabbdcb6fc93bee5"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c39438c55983d48f4bb3487734d040e22dad200dab22c41e331cee145e7a50d"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d7e8ce990ae17dda686f7e82fd41a055c668e13ddcf058e7fb5e9da20b57793"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ea7f4174d2e4194289cb0c4e172d83e79a6404297ff95f2875cf9ac9bced8ba"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb2954155bb8f63bb19d56d80e5e5320b61d71084617ed89efedb861a684baea"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04f2b712a2206e13800a8136b07aaedc23af3facab84918e7aa89e4be0260032"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:eda5c1e2a715a4cbbca2d6d304988460942551e4e5e3b7457b50943cd741626d"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:9abc80fe8c1f87218db116016de575a7998ab1629078c90840e8d11ab423ee25"}, - {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6a727fd083009bc83eb83d6950f0c32b3c94c8b80a9b667c87f4bd1274ca30ba"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e0f3ef95795efcd3b2ec3fe0a5bcfb5dadf5e3996ea2117427e524d4fbf309c6"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2c13777ecdbbba2077670285dd1fe50828c8742f6a4119dbef6f83ea13ad10fb"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e8d804c2ccd618417e96720ad5cd076a86fa3f8cb310ea386a3e6229bae7d1"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd822f019ccccd75c832deb7aa040bb02d70a92eb15a2f16c7987b7ad4ee8d83"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0047638c3aa0dbcd0ab99ed1e549bbf0e142c9ecc173b6492868432d8989a046"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5b66d1b201cc71bc3081bc2f1fc36b0c1f268b773e03bbc39066651b9e18391"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbcbb6db5582ea33ce46a5d20a5793134b5365110d84df4e30b9d37c6fd40ad3"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63981feca3f110ed132fd217bf7768ee8ed738a55549883628ee3da75bb9cb78"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3a55fc10fdcbf1a4bd3c018eea422c52cf08700cf99c28b5cb10fe97ab77a0d3"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:c30ff468163a48535ee7e9bf21bd14c7a81147c0e58a36c1078289a8ca7af0bd"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:369d9c6d4c714e36d4a03957b4783217a3ccd1e222cdd67d464a3a479fc17796"}, - {file = "rpds_py-0.24.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:24795c099453e3721fda5d8ddd45f5dfcc8e5a547ce7b8e9da06fecc3832e26f"}, - {file = "rpds_py-0.24.0.tar.gz", hash = "sha256:772cc1b2cd963e7e17e6cc55fe0371fb9c704d63e44cacec7b9b7f523b78919e"}, -] - -[[package]] -name = "ruff" -version = "0.11.3" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.11.3-py3-none-linux_armv6l.whl", hash = "sha256:cb893a5eedff45071d52565300a20cd4ac088869e156b25e0971cb98c06f5dd7"}, - {file = "ruff-0.11.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:58edd48af0e201e2f494789de80f5b2f2b46c9a2991a12ea031254865d5f6aa3"}, - {file = "ruff-0.11.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:520f6ade25cea98b2e5cb29eb0906f6a0339c6b8e28a024583b867f48295f1ed"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ca4405a93ebbc05e924358f872efceb1498c3d52a989ddf9476712a5480b16"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4341d38775a6be605ce7cd50e951b89de65cbd40acb0399f95b8e1524d604c8"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72bf5b49e4b546f4bea6c05448ab71919b09cf75363adf5e3bf5276124afd31c"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9fa791ee6c3629ba7f9ba2c8f2e76178b03f3eaefb920e426302115259819237"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2c81d3fe718f4d303aaa4ccdcd0f43e23bb2127da3353635f718394ca9b26721"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e4c38e9b6c01caaba46b6d8e732791f4c78389a9923319991d55b298017ce02"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9686f5d1a2b4c918b5a6e9876bfe7f47498a990076624d41f57d17aadd02a4dd"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4800ddc4764d42d8961ce4cb972bcf5cc2730d11cca3f11f240d9f7360460408"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e63a2808879361aa9597d88d86380d8fb934953ef91f5ff3dafe18d9cb0b1e14"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:8f8b1c4ae62638cc220df440140c21469232d8f2cb7f5059f395f7f48dcdb59e"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3ea2026be50f6b1fbedd2d1757d004e1e58bd0f414efa2a6fa01235468d4c82a"}, - {file = "ruff-0.11.3-py3-none-win32.whl", hash = "sha256:73d8b90d12674a0c6e98cd9e235f2dcad09d1a80e559a585eac994bb536917a3"}, - {file = "ruff-0.11.3-py3-none-win_amd64.whl", hash = "sha256:faf1bfb0a51fb3a82aa1112cb03658796acef978e37c7f807d3ecc50b52ecbf6"}, - {file = "ruff-0.11.3-py3-none-win_arm64.whl", hash = "sha256:67f8b68d7ab909f08af1fb601696925a89d65083ae2bb3ab286e572b5dc456aa"}, - {file = "ruff-0.11.3.tar.gz", hash = "sha256:8d5fcdb3bb359adc12b757ed832ee743993e7474b9de714bb9ea13c4a8458bf9"}, -] - -[[package]] -name = "scooby" -version = "0.10.0" -description = "A Great Dane turned Python environment detective" -optional = false -python-versions = ">=3.8" -files = [ - {file = "scooby-0.10.0-py3-none-any.whl", hash = "sha256:0a3d7e304f8ebb16f69ff7f6360c345d7f50b45f2ddbf7c3d18a6a0dc2cb03a6"}, - {file = "scooby-0.10.0.tar.gz", hash = "sha256:7ea33c262c0cc6a33c6eeeb5648df787be4f22660e53c114e5fff1b811a8854f"}, -] - -[package.extras] -cpu = ["mkl", "psutil"] - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -optional = false -python-versions = "*" -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "sphinx" -version = "8.1.3" -description = "Python documentation generator" -optional = false -python-versions = ">=3.10" -files = [ - {file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"}, - {file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"}, -] - -[package.dependencies] -alabaster = ">=0.7.14" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" -imagesize = ">=1.3" -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" -sphinxcontrib-applehelp = ">=1.0.7" -sphinxcontrib-devhelp = ">=1.0.6" -sphinxcontrib-htmlhelp = ">=2.0.6" -sphinxcontrib-jsmath = ">=1.0.1" -sphinxcontrib-qthelp = ">=1.0.6" -sphinxcontrib-serializinghtml = ">=1.1.9" -tomli = {version = ">=2", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] - -[[package]] -name = "sphinx-rtd-theme" -version = "3.0.2" -description = "Read the Docs theme for Sphinx" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, - {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, -] - -[package.dependencies] -docutils = ">0.18,<0.22" -sphinx = ">=6,<9" -sphinxcontrib-jquery = ">=4,<5" - -[package.extras] -dev = ["bump2version", "transifex-client", "twine", "wheel"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, - {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, - {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, - {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jquery" -version = "4.1" -description = "Extension to include jQuery on newer Sphinx releases" -optional = false -python-versions = ">=2.7" -files = [ - {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, - {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, -] - -[package.dependencies] -Sphinx = ">=1.8" - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -optional = false -python-versions = ">=3.5" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-napoleon" -version = "0.7" -description = "Sphinx \"napoleon\" extension." -optional = false -python-versions = "*" -files = [ - {file = "sphinxcontrib-napoleon-0.7.tar.gz", hash = "sha256:407382beed396e9f2d7f3043fad6afda95719204a1e1a231ac865f40abcbfcf8"}, - {file = "sphinxcontrib_napoleon-0.7-py2.py3-none-any.whl", hash = "sha256:711e41a3974bdf110a484aec4c1a556799eb0b3f3b897521a018ad7e2db13fef"}, -] - -[package.dependencies] -pockets = ">=0.3" -six = ">=1.5.2" - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, - {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, - {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "tenacity" -version = "9.1.2" -description = "Retry code until it succeeds" -optional = false -python-versions = ">=3.9" -files = [ - {file = "tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138"}, - {file = "tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb"}, -] - -[package.extras] -doc = ["reno", "sphinx"] -test = ["pytest", "tornado (>=4.5)", "typeguard"] - -[[package]] -name = "tinydb" -version = "4.8.2" -description = "TinyDB is a tiny, document oriented database optimized for your happiness :)" -optional = false -python-versions = "<4.0,>=3.8" -files = [ - {file = "tinydb-4.8.2-py3-none-any.whl", hash = "sha256:f97030ee5cbc91eeadd1d7af07ab0e48ceb04aa63d4a983adbaca4cba16e86c3"}, - {file = "tinydb-4.8.2.tar.gz", hash = "sha256:f7dfc39b8d7fda7a1ca62a8dbb449ffd340a117c1206b68c50b1a481fb95181d"}, -] - -[[package]] -name = "tomli" -version = "2.2.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, -] - -[[package]] -name = "tornado" -version = "6.4.2" -description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -optional = false -python-versions = ">=3.8" -files = [ - {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, - {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, - {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, - {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, - {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, - {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, - {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, - {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, - {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, - {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, - {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, -] - -[[package]] -name = "trame" -version = "3.8.1" -description = "Trame, a framework to build applications in plain Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame-3.8.1-py3-none-any.whl", hash = "sha256:e473462878f63185f49989eba78762170473b8121a2a7d7782586eae5740e4cd"}, - {file = "trame-3.8.1.tar.gz", hash = "sha256:7c2b2d5b5aa9753d5a3483238396bac3addad66faf92ee673b025712102ac28a"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" -trame-server = ">=3.2.3,<4" -wslink = ">=2.1.3" - -[package.extras] -app = ["pywebview"] -dev = ["pre-commit", "pytest", "ruff"] -jupyter = ["jupyterlab"] - -[[package]] -name = "trame-client" -version = "3.6.1" -description = "Internal client of trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_client-3.6.1-py3-none-any.whl", hash = "sha256:30ee404d2bbcc2fdd1e1831ad10bb48e87575ce9550e731fbbd860185cba5904"}, - {file = "trame_client-3.6.1.tar.gz", hash = "sha256:25b5a08c43c852eaca67c651f4b59c1de7a1b7b34801b7cd460e3ac7aa65d215"}, -] - -[package.extras] -dev = ["pre-commit", "ruff"] -test = ["Pillow", "pixelmatch", "pytest", "pytest-xprocess", "seleniumbase"] - -[[package]] -name = "trame-matplotlib" -version = "2.0.3" -description = "Markdown widget for trame" -optional = false -python-versions = "*" -files = [ - {file = "trame-matplotlib-2.0.3.tar.gz", hash = "sha256:4cf0beb092fc2b11988480346a0cae3ce5fe0267429c7876727a8389bded5cd6"}, - {file = "trame_matplotlib-2.0.3-py3-none-any.whl", hash = "sha256:e221605f0ad8c5c3677c09f49f6881bedd0eab16a2b24824a8e0fd013267a698"}, -] - -[package.dependencies] -mpld3 = "*" -trame-client = "*" - -[[package]] -name = "trame-plotly" -version = "3.0.2" -description = "Plotly figure widget for trame" -optional = false -python-versions = "*" -files = [ - {file = "trame-plotly-3.0.2.tar.gz", hash = "sha256:bb472ace64c9c2e65bb7c535c0567a35bfc3711588759731c36b2d7f6e3434b9"}, - {file = "trame_plotly-3.0.2-py3-none-any.whl", hash = "sha256:eff0f0259c6dce035745535a6e79a4b64f0ef5c32df3d826307ed691d6838902"}, -] - -[package.dependencies] -trame-client = "*" - -[[package]] -name = "trame-server" -version = "3.4.0" -description = "Internal server side implementation of trame" -optional = false -python-versions = ">=3.7" -files = [ - {file = "trame_server-3.4.0-py3-none-any.whl", hash = "sha256:642a8c9abe0344305f46c8e1fabde5fc8b3fc83ee57bcdcc4e05b85b346a538b"}, - {file = "trame_server-3.4.0.tar.gz", hash = "sha256:3d1edd2287949c4a51d3162f21137c061a4921858303ad67d1cf1d4148e36f3c"}, -] - -[package.dependencies] -more-itertools = "*" -wslink = ">=2.2.2,<3" - -[package.extras] -dev = ["nox", "pre-commit", "pytest", "pytest-asyncio", "ruff"] - -[[package]] -name = "trame-vega" -version = "2.1.1" -description = "Vega widget for trame" -optional = false -python-versions = "*" -files = [ - {file = "trame-vega-2.1.1.tar.gz", hash = "sha256:a3d82f7535a66a782262647001987dba3ad0ddc64ce21225a4cfccd351fed8fa"}, - {file = "trame_vega-2.1.1-py3-none-any.whl", hash = "sha256:044ea338f74fe83e7a5eca15fd1723b3b5f2847d5ca0ed2f0325e30d7676b6c9"}, -] - -[package.dependencies] -trame-client = "*" - -[[package]] -name = "trame-vtk" -version = "2.8.15" -description = "VTK widgets for trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_vtk-2.8.15-py3-none-any.whl", hash = "sha256:abf7d23d267dd15b87db4b249302a0aea8572c260d205e264dba5836b3adc92b"}, - {file = "trame_vtk-2.8.15.tar.gz", hash = "sha256:584049637491a7c5ba00efec2a5c5eb96a337bab31d6f0c4bcca8bea60446646"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" - -[package.extras] -dev = ["coverage", "nox", "pre-commit", "pytest", "pytest-asyncio", "ruff"] - -[[package]] -name = "trame-vuetify" -version = "2.9.0" -description = "Vuetify widgets for trame" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trame_vuetify-2.9.0-py3-none-any.whl", hash = "sha256:3db6a6b3384c313befb9d8f0eaf39a9e6cd1d2b882babd1c85d8779ff0f4f2bc"}, - {file = "trame_vuetify-2.9.0.tar.gz", hash = "sha256:86cfa1387b97e9f18d15ce98ee238b6e6c0e0f921935aab6737ae0bed74ee70a"}, -] - -[package.dependencies] -trame-client = ">=3.4,<4" - -[package.extras] -dev = ["pre-commit", "pytest", "ruff"] - -[[package]] -name = "tuspy" -version = "1.1.0" -description = "A Python client for the tus resumable upload protocol -> http://tus.io" -optional = false -python-versions = ">=3.5.3" -files = [ - {file = "tuspy-1.1.0-py3-none-any.whl", hash = "sha256:7fc5ac8fb25de37c96c90213f83a1ffdede7f48a471cb5a15a2f57846828a79a"}, - {file = "tuspy-1.1.0.tar.gz", hash = "sha256:156734eac5c61a046cfecd70f14119f05be92cce198eb5a1a99a664482bedb89"}, -] - -[package.dependencies] -aiohttp = ">=3.6.2" -requests = ">=2.18.4" -tinydb = ">=3.5.0" - -[package.extras] -dev = ["Sphinx (==1.7.1)", "sphinx-autobuild (==2021.3.14)", "tox (>=2.3.1)"] -test = ["aioresponses (>=0.6.2)", "coverage (>=4.2)", "parametrize (>=0.1.1)", "pytest (>=3.0.3)", "pytest-cov (>=2.3.1,<2.6)", "responses (>=0.5.1)"] - -[[package]] -name = "typing-extensions" -version = "4.13.1" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.13.1-py3-none-any.whl", hash = "sha256:4b6cf02909eb5495cfbc3f6e8fd49217e6cc7944e145cdda8caa3734777f9e69"}, - {file = "typing_extensions-4.13.1.tar.gz", hash = "sha256:98795af00fb9640edec5b8e31fc647597b4691f099ad75f469a2616be1a76dff"}, -] - -[[package]] -name = "typing-inspection" -version = "0.4.0" -description = "Runtime typing introspection tools" -optional = false -python-versions = ">=3.9" -files = [ - {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, - {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, -] - -[package.dependencies] -typing-extensions = ">=4.12.0" - -[[package]] -name = "tzdata" -version = "2025.2" -description = "Provider of IANA time zone data" -optional = false -python-versions = ">=2" -files = [ - {file = "tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"}, - {file = "tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"}, -] - -[[package]] -name = "urllib3" -version = "2.3.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.9" -files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.30.0" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.8" -files = [ - {file = "virtualenv-20.30.0-py3-none-any.whl", hash = "sha256:e34302959180fca3af42d1800df014b35019490b119eba981af27f2fa486e5d6"}, - {file = "virtualenv-20.30.0.tar.gz", hash = "sha256:800863162bcaa5450a6e4d721049730e7f2dae07720e0902b0e4040bd6f9ada8"}, -] - -[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 = "vtk" -version = "9.3.1" -description = "VTK is an open-source toolkit for 3D computer graphics, image processing, and visualization" -optional = false -python-versions = "*" -files = [ - {file = "vtk-9.3.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:c41ed344b9cc90ee9dcfc5967815de272985647d0c8e0a57f0e8b4229bc1b0b9"}, - {file = "vtk-9.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84c04327becc4c4dfe1fb04248baa4b5c480f188a9d52f4b912b163d33622442"}, - {file = "vtk-9.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:890aee533fc0caca70bd1c8a4026b0d7f877518f237cc976ed4fb509d5f1dd83"}, - {file = "vtk-9.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:b8feed5029486703f4f8f81d8544a30d1788de87dc3396e16a281c343e1ac1cc"}, - {file = "vtk-9.3.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:55e2df9e6993b959b482b79a6d68b8d46397b479d69738d41b1501396fcad50c"}, - {file = "vtk-9.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c977486b0e4d87cddb3f2c7c0710d1c86243cdd01286cbd036231143d8eb4f6e"}, - {file = "vtk-9.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8edc04e0f8b6719cfc769e575a777267d667f447d1948c62fa97fb756cd75bb"}, - {file = "vtk-9.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:59cc043f611e3eca2870cc50f27e67852a182857de322415e942bdc133594acd"}, - {file = "vtk-9.3.1-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:05a4b6e387a906e8c8d6844441f9200116e937069fcf81f43e2600f26eb046de"}, - {file = "vtk-9.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bdbefb1aef9599a0a0b8222c9582f26946732a93534e6ec37d4b8e2c524c627e"}, - {file = "vtk-9.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f728bb61f43fce850d622ced3b3d51b3116f767685ca4e4e0076f624e2d2307d"}, - {file = "vtk-9.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:685988e09070e06c8605886591698fd42d8225489509b6537a5046cd034cc93e"}, - {file = "vtk-9.3.1-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:7b8b8b77b903d5515f2fe551807a6b2ee3e7e3cd112174b184a921ab57352f1e"}, - {file = "vtk-9.3.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42684f38d8718b918fe1e4fee4e698d564b6daa16215c21811540c383e47dda2"}, - {file = "vtk-9.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:4a5de9f424647bc3c02e2d2882401eac8ecd33f1a5f18261dcc69e7a05915c14"}, - {file = "vtk-9.3.1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:279da9aee0fda31ee975e97b7b23480b54ea3b12d24ad8260760a3ededc32fad"}, - {file = "vtk-9.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:102ac70e8dad0b111347f00ccef39aea1771f4f0381a4b0ff3f1ea6539e500c8"}, - {file = "vtk-9.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ee95c741a1ec3dc223c8233b1b59c5735c8249d4a15ee0b6370e7b010188397e"}, - {file = "vtk-9.3.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:6adf4b812528a4658667602de8f023400c4381b8166f11b0ea8e0ab83c066539"}, - {file = "vtk-9.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaf90d0a797b5b7ada3fd0100c072dd146e674a2ccd25411036a4aca676f9101"}, - {file = "vtk-9.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:872e964c38dc1d969aaa29d10a5e56fd0324d61392e21dc044c679797fbdf0ef"}, - {file = "vtk-9.3.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:3ae62397364be3a40f89025fa844cbf38b422633c0dff1065d90eec74ca6facb"}, - {file = "vtk-9.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab96d6923fa37a202874cb8b8b4202d537bd4702bb151638d384e1966d877e3a"}, - {file = "vtk-9.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:592b303f96b4cf907df7914bbf8c1f374df382c70c1d0b4fa4bd32ac1f4365ce"}, - {file = "vtk-9.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:6dee68abcd15603ad8ef6cef21fb13e2996d520a16880780abc41eb409dbec0c"}, -] - -[package.dependencies] -matplotlib = ">=2.0.0" - -[package.extras] -numpy = ["numpy (>=1.9)"] -web = ["wslink (>=1.0.4)"] - -[[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 = "wslink" -version = "2.3.3" -description = "Python/JavaScript library for communicating over WebSocket" -optional = false -python-versions = "*" -files = [ - {file = "wslink-2.3.3-py3-none-any.whl", hash = "sha256:594e2193821caa75fbf580c0c57ae7cd99541dd8cc95bcb55fe253d9a2b42a16"}, - {file = "wslink-2.3.3.tar.gz", hash = "sha256:2eace91ee5a739a965c316dcca4c407009fbb68cbc13be3f11e6485edbd8147f"}, -] - -[package.dependencies] -aiohttp = "<4" -msgpack = ">=1,<2" - -[package.extras] -ssl = ["cryptography"] - -[[package]] -name = "yarl" -version = "1.18.3" -description = "Yet another URL library" -optional = false -python-versions = ">=3.9" -files = [ - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, - {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, - {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, - {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, - {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, - {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, - {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, - {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, - {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, - {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, - {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, - {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, - {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -propcache = ">=0.2.0" - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "414fccff897583db607ffdf7e1d3eb1b40dbd85de5415c9307382aad5042243e" diff --git a/code/episode_7/pyproject.toml b/code/episode_7/pyproject.toml index f4e1070f..3a086e25 100755 --- a/code/episode_7/pyproject.toml +++ b/code/episode_7/pyproject.toml @@ -1,32 +1,57 @@ -[tool.poetry] -name = "nova-tutorial" +[project] +name = "viz-examples" version = "0.1.0" -description = "Template application" +description = "Viz Examples Project" authors = [] readme = "README.md" license = "MIT" keywords = ["NDIP", "NOVA", "python"] +requires-python = ">=3.10,<3.14" +dependencies = ["pandas>=2.3.3,<3", "plotly>=6.5.0,<7", "trame-plotly>=3.1.0,<4", "pyvista>=0.46.4,<0.47", "trame-vtk>=2.10.1,<3", "vtk>=9.5.2,<10"] -packages = [ - { include = "nova_tutorial", from = "src" } -] +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["linux-64", "osx-64"] + +[tool.pixi.environments] +default = {features = ["dev"], solve-group = "default"} +production = {features = [], solve-group = "default"} + +[tool.pixi.dependencies] + +[tool.pixi.pypi-dependencies] +viz-examples = { path = ".", editable = true } +hatch = "*" +gitpython = ">=3.1.40,<4" +python-gitlab = ">=5.6.0,<6" +nova-trame = "*" +trame-datagrid = ">=0.2.2" -[tool.poetry.dependencies] -python = "^3.10" -nova-galaxy = "^0.7.0" -nova-mvvm = "0.9.0" -nova-trame = "0.16.0" -pandas = "^2.2.3" -plotly = "^5.24.1" -pyvista = "^0.44.2" -trame-plotly = "^3.0.2" -trame-vtk = "^2.8.14" +[tool.pixi.feature.dev.pypi-dependencies] +mypy = ">=1.10.0" +pre-commit = ">=2.20.0" +coverage = ">=6.4.3" +pytest = "*" +ruff = ">=0.6.2" +copier=">=9.3" +sphinx = "*" +sphinx-rtd-theme = "*" +sphinxcontrib-napoleon ="*" +tomli = "*" + +[tool.pixi.tasks] +app = "python -m src.viz_examples.app" +init-repo = "python -m scripts.git_utils" +deploy-production = "python -m scripts.xml_utils" +deploy-prototype = "python -m scripts.xml_utils_prototype" [build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +requires = ["hatchling"] +build-backend = "hatchling.build" +[tool.hatch.build.targets.wheel] +packages = ["src/viz_examples"] [tool.pytest.ini_options] testpaths = ["tests"] @@ -34,6 +59,7 @@ python_files = ["test*.py"] norecursedirs = [".git", "tmp*", "_tmp*", "__pycache__"] [tool.ruff] +extend-exclude = [".pixi"] line-length = 120 [tool.ruff.lint] @@ -58,8 +84,6 @@ ignore = [ [tool.ruff.lint.extend-per-file-ignores] '__init__.py' = ['D104'] # Missing docstring in public package - - [tool.ruff.lint.pydocstyle] convention = "numpy" @@ -80,18 +104,3 @@ omit = [ [tool.coverage.run] command_line = "-m pytest --junit-xml=reports/junit.xml" data_file = "reports/.coverage" - -[tool.poetry.dev-dependencies] -mypy = ">=1.10.0" -pre-commit = ">=2.20.0" -coverage = ">=6.4.3" -pytest = "*" -ruff = ">=0.6.2" -copier=">=9.3" -sphinx = "*" -sphinx-rtd-theme = "*" -sphinxcontrib-napoleon ="*" -tomli = "*" - -[tool.poetry.scripts] -app = "nova_tutorial:main" diff --git a/code/episode_7/src/nova_tutorial/__init__.py b/code/episode_7/src/nova_tutorial/__init__.py deleted file mode 100755 index 1a91a49b..00000000 --- a/code/episode_7/src/nova_tutorial/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -import importlib.metadata - -from .main import main - -__all__ = ["main"] - -__version__ = importlib.metadata.version(__package__) diff --git a/code/episode_7/src/nova_tutorial/__main__.py b/code/episode_7/src/nova_tutorial/__main__.py deleted file mode 100755 index d87b5a1f..00000000 --- a/code/episode_7/src/nova_tutorial/__main__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Entry point for the Package.""" - -from . import main - -main() diff --git a/code/episode_7/src/nova_tutorial/main.py b/code/episode_7/src/nova_tutorial/main.py deleted file mode 100755 index f9376e77..00000000 --- a/code/episode_7/src/nova_tutorial/main.py +++ /dev/null @@ -1,12 +0,0 @@ -"""Loads the main view and starts the Trame server.""" - -from nova_tutorial.views.main import MainApp - - -def main() -> None: - app = MainApp() - app.server.start() - - -if __name__ == "__main__": - main() diff --git a/code/episode_7/src/nova_tutorial/models/main_model.py b/code/episode_7/src/nova_tutorial/models/main_model.py deleted file mode 100644 index 917d32c1..00000000 --- a/code/episode_7/src/nova_tutorial/models/main_model.py +++ /dev/null @@ -1,23 +0,0 @@ -"""Module for the main model.""" - -from pydantic import BaseModel, Field - - -class MainModel(BaseModel): - """ - A model class. - - This class uses Pydantic (https://docs.pydantic.dev/latest/), - which allows for defining data validation rules, - titles, descriptions, and examples that can be used in GUI elements or - other interfaces for improved clarity and usability. - """ - - username: str = Field( - default="test_name", - min_length=1, - title="User Name", - description="Please provide the name of the user", - examples=["user"], - ) - password: str = Field(default="test_password", title="User Password") diff --git a/code/episode_7/src/nova_tutorial/models/plotly.py b/code/episode_7/src/nova_tutorial/models/plotly.py deleted file mode 100755 index 8fe95da5..00000000 --- a/code/episode_7/src/nova_tutorial/models/plotly.py +++ /dev/null @@ -1,58 +0,0 @@ -"""Configuration for the Plotly example.""" - -from enum import Enum - -import plotly.graph_objects as go -from plotly.data import iris -from pydantic import BaseModel, Field, computed_field - -IRIS_DATA = iris() - -class AxisOptions(str, Enum): - sepal_length = "sepal_length" - sepal_width = "sepal_width" - petal_length = "petal_length" - petal_width = "petal_width" - - -class PlotTypeOptions(str, Enum): - heatmap = "Heatmap" - scatter = "Scatterplot" - - -class PlotlyConfig(BaseModel): - """Configuration class for the Plotly example.""" - - x_axis: AxisOptions = Field(default=AxisOptions.sepal_length, title="X Axis") - y_axis: AxisOptions = Field(default=AxisOptions.sepal_width, title="Y Axis") - z_axis: AxisOptions = Field(default=AxisOptions.petal_length, title="Color") - plot_type: PlotTypeOptions = Field(default=PlotTypeOptions.scatter, title="Plot Type") - - @computed_field # type: ignore - @property - def is_not_heatmap(self) -> bool: - return self.plot_type != PlotTypeOptions.heatmap - - def get_figure(self) -> go.Figure: - match self.plot_type: - case PlotTypeOptions.heatmap: - plot_data = go.Heatmap( - x=IRIS_DATA[self.x_axis].tolist(), - y=IRIS_DATA[self.y_axis].tolist(), - z=IRIS_DATA[self.z_axis].tolist(), - ) - case PlotTypeOptions.scatter: - plot_data = go.Scatter( - x=IRIS_DATA[self.x_axis].tolist(), y=IRIS_DATA[self.y_axis].tolist(), mode="markers" - ) - case _: - raise ValueError(f"Invalid plot type: {self.plot_type}") - - figure = go.Figure(plot_data) - figure.update_layout( - title={"text": f"{self.plot_type}"}, - xaxis={"title": {"text": self.x_axis}}, - yaxis={"title": {"text": self.y_axis}}, - ) - - return figure diff --git a/code/episode_7/src/nova_tutorial/models/pyvista.py b/code/episode_7/src/nova_tutorial/models/pyvista.py deleted file mode 100644 index 45365da9..00000000 --- a/code/episode_7/src/nova_tutorial/models/pyvista.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Configuration for the PyVista example.""" - -from enum import Enum - -from pydantic import BaseModel, Field -from pyvista import Plotter, examples - -KNEE_DATA = examples.download_knee_full() - -class ColormapOptions(str, Enum): - viridis = "viridis" - autumn = "autumn" - coolwarm = "coolwarm" - twilight = "twilight" - jet = "jet" - - -class OpacityOptions(str, Enum): - linear = "linear" - sigmoid = "sigmoid" - - -class PyVistaConfig(BaseModel): - """Configuration class for the PyVista example.""" - - colormap: ColormapOptions = Field(default=ColormapOptions.viridis, title="Color Transfer Function") - opacity: OpacityOptions = Field(default=OpacityOptions.linear, title="Opacity Transfer Function") - - def render(self, plotter: Plotter) -> None: - # If re-rendering the volume on changes isn't acceptable, then you may need to switch to using VTK directly due - # limitations of the PyVista volume rendering engine. - plotter.clear() - plotter.add_volume(KNEE_DATA, cmap=self.colormap, opacity=self.opacity, show_scalar_bar=False) - - plotter.render() - plotter.view_isometric() diff --git a/code/episode_7/src/nova_tutorial/models/vtk.py b/code/episode_7/src/nova_tutorial/models/vtk.py deleted file mode 100644 index c2b4bf04..00000000 --- a/code/episode_7/src/nova_tutorial/models/vtk.py +++ /dev/null @@ -1,114 +0,0 @@ -"""Configuration for the VTK example.""" - -import numpy as np -from pyvista import examples -from vtk import vtkSLCReader -from vtkmodules.vtkCommonDataModel import vtkPiecewiseFunction -from vtkmodules.vtkRenderingCore import vtkColorTransferFunction, vtkVolume, vtkVolumeProperty -from vtkmodules.vtkRenderingVolume import vtkFixedPointVolumeRayCastMapper - -KNEE_DATA = examples.download_knee_full() -KNEE_DATAFILE = examples.download_knee_full(load=False) - - -class VTKConfig: - """Configuration class for the VTK example.""" - - max: float = KNEE_DATA.get_data_range()[1] - min: float = KNEE_DATA.get_data_range()[0] - - def __init__(self) -> None: - reader = vtkSLCReader() - reader.SetFileName(KNEE_DATAFILE) - - mapper = vtkFixedPointVolumeRayCastMapper() - mapper.SetInputConnection(reader.GetOutputPort()) - - lut = self.init_lut() - pwf = self.init_pwf() - volume_props = vtkVolumeProperty() - volume_props.SetColor(lut) - volume_props.SetScalarOpacity(pwf) - volume_props.SetShade(0) - volume_props.SetInterpolationTypeToLinear() - - self.volume = vtkVolume() - self.volume.SetMapper(mapper) - self.volume.SetProperty(volume_props) - self.volume.SetVisibility(1) - - def get_volume(self) -> vtkVolume: - return self.volume - - def init_lut(self) -> vtkColorTransferFunction: - # This method defines the "Fast" colormap. - # See https://www.kitware.com/new-default-colormap-and-background-in-next-paraview-release/ - - lut = vtkColorTransferFunction() - - lut.SetColorSpaceToRGB() - lut.SetNanColor([0.0, 1.0, 0.0]) - - srgb = np.array( - [ - 0, - 0.05639999999999999, - 0.05639999999999999, - 0.47, - 0.17159223942480895, - 0.24300000000000013, - 0.4603500000000004, - 0.81, - 0.2984914818394138, - 0.3568143826543521, - 0.7450246485363142, - 0.954367702893722, - 0.4321287371255907, - 0.6882, - 0.93, - 0.9179099999999999, - 0.5, - 0.8994959551205902, - 0.944646394975174, - 0.7686567142818399, - 0.5882260353170073, - 0.957107977357604, - 0.8338185108985666, - 0.5089156299842102, - 0.7061412605695164, - 0.9275207599610714, - 0.6214389091739178, - 0.31535705838676426, - 0.8476395308725272, - 0.8, - 0.3520000000000001, - 0.15999999999999998, - 1, - 0.59, - 0.07670000000000013, - 0.11947499999999994, - ] - ) - - for arr in np.split(srgb, len(srgb) / 4): - lut.AddRGBPoint(arr[0], arr[1], arr[2], arr[3]) - - prev_min, prev_max = lut.GetRange() - prev_delta = prev_max - prev_min - node = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] - next_delta = self.max - self.min - for i in range(lut.GetSize()): - lut.GetNodeValue(i, node) - node[0] = next_delta * (node[0] - prev_min) / prev_delta + self.min - lut.SetNodeValue(i, node) - - return lut - - def init_pwf(self) -> vtkPiecewiseFunction: - pwf = vtkPiecewiseFunction() - - pwf.RemoveAllPoints() - pwf.AddPoint(self.min, 0) - pwf.AddPoint(self.max, 0.7) - - return pwf diff --git a/code/episode_7/src/nova_tutorial/mvvm_factory.py b/code/episode_7/src/nova_tutorial/mvvm_factory.py deleted file mode 100644 index d7cf5f4b..00000000 --- a/code/episode_7/src/nova_tutorial/mvvm_factory.py +++ /dev/null @@ -1,14 +0,0 @@ -"""Module for the factory that creates viewmodels used in the application.""" - -from nova.mvvm.interface import BindingInterface - -from .models.main_model import MainModel -from .view_models.main import MainViewModel - - -def create_viewmodels(binding: BindingInterface) -> dict: - model = MainModel() - vm: dict = {} - vm["main"] = MainViewModel(model, binding) - - return vm diff --git a/code/episode_7/src/nova_tutorial/view_models/main.py b/code/episode_7/src/nova_tutorial/view_models/main.py deleted file mode 100755 index f16d6ee1..00000000 --- a/code/episode_7/src/nova_tutorial/view_models/main.py +++ /dev/null @@ -1,55 +0,0 @@ -"""Module for the main ViewModel.""" - -from typing import Any, Dict - -from nova.mvvm.interface import BindingInterface -from pyvista import Plotter # just for typing -from vtkmodules.vtkRenderingCore import vtkVolume # just for typing - -from ..models.main_model import MainModel -from ..models.plotly import PlotlyConfig -from ..models.pyvista import PyVistaConfig -from ..models.vtk import VTKConfig - - -class MainViewModel: - """Viewmodel class, used to create data<->view binding and react on changes from GUI.""" - - def __init__(self, model: MainModel, binding: BindingInterface): - self.model = model - self.plotly_config = PlotlyConfig() - self.pyvista_config = PyVistaConfig() - self.vtk_config = VTKConfig() - - self.plotly_config_bind = binding.new_bind( - linked_object=self.plotly_config, callback_after_update=self.update_plotly_figure - ) - self.plotly_figure_bind = binding.new_bind() - self.pyvista_config_bind = binding.new_bind(linked_object=self.pyvista_config) - # We didn't add any controls for the VTK rendering, so there's no need to create a data binding here. - - # here we create a bind that connects ViewModel with View. It returns a communicator object, - # that allows to update View from ViewModel (by calling update_view). - # self.model will be updated automatically on changes of connected fields in View, - # but one also can provide a callback function if they want to react to those events - # and/or process errors. - self.config_bind = binding.new_bind(self.model, callback_after_update=self.change_callback) - - def change_callback(self, results: Dict[str, Any]) -> None: - if results["error"]: - print(f"error in fields {results['errored']}, model not changed") - else: - print(f"model fields updated: {results['updated']}") - - def update_view(self) -> None: - self.config_bind.update_in_view(self.model) - - def update_plotly_figure(self, _: Any = None) -> None: - self.plotly_config_bind.update_in_view(self.plotly_config) - self.plotly_figure_bind.update_in_view(self.plotly_config.get_figure()) - - def update_pyvista_volume(self, plotter: Plotter) -> None: - self.pyvista_config.render(plotter) - - def get_vtk_volume(self) -> vtkVolume: - return self.vtk_config.get_volume() diff --git a/code/episode_7/src/nova_tutorial/views/main.py b/code/episode_7/src/nova_tutorial/views/main.py deleted file mode 100755 index 1c7e1b57..00000000 --- a/code/episode_7/src/nova_tutorial/views/main.py +++ /dev/null @@ -1,44 +0,0 @@ -"""Main file.""" - -import logging - -from nova.mvvm.trame_binding import TrameBinding -from nova.trame import ThemedApp -from trame.app import get_server - -from ..mvvm_factory import create_viewmodels -from ..view_models.main import MainViewModel -from .tab_content_panel import TabContentPanel -from .tabs_panel import TabsPanel - -logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - - -class MainApp(ThemedApp): - """Main application view class. Calls rendering of nested UI elements.""" - - def __init__(self) -> None: - super().__init__() - self.server = get_server(None, client_type="vue3") - binding = TrameBinding(self.server.state) - self.server.state.trame__title = "NOVA Tutorial" - self.view_models = create_viewmodels(binding) - self.view_model: MainViewModel = self.view_models["main"] - self.create_ui() - - def create_ui(self) -> None: - self.state.trame__title = "NOVA Tutorial" - - with super().create_ui() as layout: - layout.toolbar_title.set_text("NOVA Tutorial") - with layout.pre_content: - TabsPanel(self.view_models["main"]) - with layout.content: - TabContentPanel( - self.server, - self.view_models["main"], - ) - with layout.post_content: - pass - return layout diff --git a/code/episode_7/src/nova_tutorial/views/plotly.py b/code/episode_7/src/nova_tutorial/views/plotly.py deleted file mode 100755 index 0b4e04c8..00000000 --- a/code/episode_7/src/nova_tutorial/views/plotly.py +++ /dev/null @@ -1,34 +0,0 @@ -"""View for Plotly.""" - -import plotly.graph_objects as go -from nova.trame.view.components import InputField -from nova.trame.view.layouts import GridLayout, HBoxLayout -from trame.widgets import plotly - -from ..view_models.main import MainViewModel - -class PlotlyView: - """View class for Plotly.""" - - def __init__(self, view_model: MainViewModel) -> None: - self.view_model = view_model - self.view_model.plotly_config_bind.connect("plotly_config") - self.view_model.plotly_figure_bind.connect(self.update_figure) - - self.create_ui() - - self.view_model.update_plotly_figure() - - def create_ui(self) -> None: - with GridLayout(columns=4, classes="mb-2"): - InputField(v_model="plotly_config.plot_type", type="select") - InputField(v_model="plotly_config.x_axis", type="select") - InputField(v_model="plotly_config.y_axis", type="select") - InputField(v_model="plotly_config.z_axis", disabled=("plotly_config.is_not_heatmap",), type="select") - - with HBoxLayout(halign="center", height="50vh"): - self.figure = plotly.Figure() - - def update_figure(self, figure: go.Figure) -> None: - self.figure.update(figure) - self.figure.state.flush() # This is necessary if you call update asynchronously. diff --git a/code/episode_7/src/nova_tutorial/views/pyvista.py b/code/episode_7/src/nova_tutorial/views/pyvista.py deleted file mode 100644 index 6d6a4504..00000000 --- a/code/episode_7/src/nova_tutorial/views/pyvista.py +++ /dev/null @@ -1,40 +0,0 @@ -"""View for the 3d plot using PyVista.""" - -from typing import Any, Optional - -import pyvista as pv -from nova.trame.view.components import InputField -from nova.trame.view.layouts import GridLayout, HBoxLayout -from pyvista.trame.ui import plotter_ui -from trame.widgets import vuetify3 as vuetify - -from ..view_models.main import MainViewModel - - -class PyVistaView: - """View class for the 3d plot using PyVista.""" - - def __init__(self, view_model: MainViewModel) -> None: - self.view_model = view_model - self.view_model.pyvista_config_bind.connect("pyvista_config") - - self.plotter: Optional[pv.Plotter] = None - - self.create_plotter() - self.create_ui() - - def create_plotter(self) -> None: - self.plotter = pv.Plotter(off_screen=True) - - def create_ui(self) -> None: - vuetify.VCardTitle("PyVista") - with GridLayout(columns=5, classes="mb-2", valign="center"): - InputField(v_model="pyvista_config.colormap", column_span=2, type="select") - InputField(v_model="pyvista_config.opacity", column_span=2, type="select") - vuetify.VBtn("Render", click=self.update) - with HBoxLayout(halign="center", height="50vh"): - plotter_ui(self.plotter) - - def update(self, _: Any = None) -> None: - if self.plotter: - self.view_model.update_pyvista_volume(self.plotter) diff --git a/code/episode_7/src/nova_tutorial/views/tab_content_panel.py b/code/episode_7/src/nova_tutorial/views/tab_content_panel.py deleted file mode 100644 index b3d36eaa..00000000 --- a/code/episode_7/src/nova_tutorial/views/tab_content_panel.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Module for the Tab Content panel.""" - -from trame.widgets import vuetify3 as vuetify -from trame_server import Server - -from ..view_models.main import MainViewModel -from ..views.plotly import PlotlyView -from ..views.pyvista import PyVistaView -from ..views.vtk import VTKView - - -class TabContentPanel: - """View class to render content for a selected tab.""" - - def __init__(self, server: Server, view_model: MainViewModel) -> None: - self.view_model = view_model - self.server = server - self.ctrl = server.controller - self.create_ui() - - def create_ui(self) -> None: - with vuetify.VForm(ref="form") as self.f: - with vuetify.VContainer(classes="pa-0", fluid=True): - with vuetify.VCard(): - with vuetify.VWindow(v_model="active_tab"): - with vuetify.VWindowItem(value=1): - PlotlyView(self.view_model) - with vuetify.VWindowItem(value=2): - PyVistaView(self.view_model) - with vuetify.VWindowItem(value=3): - VTKView(self.view_model) diff --git a/code/episode_7/src/nova_tutorial/views/tabs_panel.py b/code/episode_7/src/nova_tutorial/views/tabs_panel.py deleted file mode 100644 index 7ae696ef..00000000 --- a/code/episode_7/src/nova_tutorial/views/tabs_panel.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Module for the Tab panel.""" - -from trame.widgets import vuetify3 as vuetify - -from ..view_models.main import MainViewModel - - -class TabsPanel: - """View class to render tabs.""" - - def __init__(self, view_model: MainViewModel): - self.view_model = view_model - self.view_model.config_bind.connect("config") - self.create_ui() - - def create_ui(self) -> None: - with vuetify.VTabs(v_model=("active_tab", 0), classes="pl-5"): - vuetify.VTab("Plotly", value=1) - vuetify.VTab("PyVista", value=2) - vuetify.VTab("VTK", value=3) diff --git a/code/episode_7/src/nova_tutorial/views/vtk.py b/code/episode_7/src/nova_tutorial/views/vtk.py deleted file mode 100644 index 258a3561..00000000 --- a/code/episode_7/src/nova_tutorial/views/vtk.py +++ /dev/null @@ -1,47 +0,0 @@ -"""View for the 3d plot using PyVista.""" - -import vtkmodules.vtkRenderingVolumeOpenGL2 # noqa -from nova.trame.view.layouts import HBoxLayout -from trame.widgets import vtk as vtkw -from trame.widgets import vuetify3 as vuetify -from vtkmodules.vtkRenderingCore import vtkRenderer, vtkRenderWindow, vtkRenderWindowInteractor, vtkVolume - -from ..view_models.main import MainViewModel - - -class VTKView: - """View class for the 3d plot using PyVista.""" - - def __init__(self, view_model: MainViewModel) -> None: - self.view_model = view_model - - self.create_vtk() - self.create_ui() - - self.render() - - def create_vtk(self) -> None: - self.renderer = vtkRenderer() - self.renderer.SetBackground(0.7, 0.7, 0.7) - - self.render_window = vtkRenderWindow() - self.render_window.AddRenderer(self.renderer) - self.render_window.OffScreenRenderingOn() - - self.render_window_interactor = vtkRenderWindowInteractor() - self.render_window_interactor.SetRenderWindow(self.render_window) - self.render_window_interactor.GetInteractorStyle().SetCurrentStyleToTrackballCamera() - self.render_window_interactor.Initialize() # Ensure interactor is initialized - - def create_ui(self) -> None: - vuetify.VCardTitle("VTK") - - with HBoxLayout(halign="center", height="50vh"): - self.view = vtkw.VtkRemoteView(self.render_window, interactive_ratio=1) - - def render(self) -> None: - volume = self.view_model.get_vtk_volume() - - self.renderer.Clear() - self.renderer.AddVolume(volume) - self.render_window.Render() diff --git a/episodes/01-Introduction.md b/episodes/01-Introduction.md index 39eb80e4..79de5c2d 100755 --- a/episodes/01-Introduction.md +++ b/episodes/01-Introduction.md @@ -77,11 +77,11 @@ It is also possible to download a zipped copy of the repository directly from th All of the code examples used in this tutorial are available in the `code` directory of the tutorial repository. These examples are built upon the template application that you will clone in the next episode. The code is organized by episode, with each episode having its own subdirectory (e.g., `code/episode_2`, `code/episode_3`, etc.). -Each episode\'s subdirectory contains a complete, self-contained Python project that can be run independently using Poetry. This allows you to easily explore the code examples, run them, and modify them as you go through the tutorial. +Each episode\'s subdirectory contains a complete, self-contained Python project that can be run independently using Pixi. This allows you to easily explore the code examples, run them, and modify them as you go through the tutorial. ::::::::::::::::::::::::::::::::::::::::: callout -Poetry is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on, and it will manage the installation and updating of those dependencies. Poetry also helps you create reproducible builds by locking the versions of your dependencies. It also makes it easier to publish and share your Python projects. +Pixi is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on, and it will manage the installation and updating of those dependencies. Pixi also helps you create reproducible builds by locking the versions of your dependencies. It also makes it easier to publish and share your Python projects. :::::::::::::::::::::::::::::::::::::::::::::::::: @@ -89,13 +89,13 @@ To run the code for a specific episode, navigate to the episode\'s directory in ```bash cd code/episode_X # Replace X with the episode number -poetry install # Install dependencies for this episode -poetry run app # Run the application for this episode +pixi install # Install dependencies for this episode +pixi run app # Run the application for this episode ``` ::::::::::::::::::::::::::::::::::::::::: callout -If you are using the analysis cluster for the tutorial, then please note that `poetry run app` will by default attempt to bind to port 8080 and will fail if the port is already in use. This can happen if others are on the same node as you running the same commands. If this happens, you can change the port the application binds to with `poetry run app --port {myport}`. +If you are using the analysis cluster for the tutorial, then please note that `pixi run app` will by default attempt to bind to port 8080 and will fail if the port is already in use. This can happen if others are on the same node as you running the same commands. If this happens, you can change the port the application binds to with `pixi run app --port {myport}`. :::::::::::::::::::::::::::::::::::::::::::::::: @@ -103,11 +103,11 @@ This structure ensures that each code example is isolated and runnable, making i ## References -* **Nova Documentation**: https://nova-application-development.readthedocs.io/en/latest/ +* **NOVA Documentation**: https://nova-application-development.readthedocs.io/en/latest/ * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ -* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ +* **NDIP documentation**: https://ndip-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - NDIP is a workflow management system used for analsyis and interpretation of neutron scattering data. diff --git a/episodes/02-Copy-Template.md b/episodes/02-Copy-Template.md index 9bb43ac3..3595f4b8 100755 --- a/episodes/02-Copy-Template.md +++ b/episodes/02-Copy-Template.md @@ -9,7 +9,7 @@ exercises: 3 - Clone the NOVA template application using `copier`. - Understand the basic project structure created by the template. - Identify key files in the project (e.g., `pyproject.toml`). -- Install project dependencies using `poetry`. +- Install project dependencies using `pixi`. - Deploy the template application to NDIP :::::::::::::::::::::::::::::::::::::::::::::::::: @@ -18,7 +18,7 @@ exercises: 3 - How do I quickly set up a starting point for a NOVA project? - What files and directories are included in the NOVA template application? -- How does `poetry` manage project dependencies and virtual environments? +- How does `pixi` manage project dependencies and virtual environments? :::::::::::::::::::::::::::::::::::::::::::::::::: @@ -37,14 +37,15 @@ The setup section detailed the prerequisites required for the tutorial. One of t To clone the template application, run the following command: ```bash -copier copy https://code.ornl.gov/ndip/project-templates/nova-application-template.git nova_tutorial +copier copy https://github.com/nova-sdk/nova-application-template nova_tutorial ``` This command will download the template to a directory called `nova_tutorial`. Copier will prompt you with a series of questions. Please answer the questions as follows: -* **What kind of application are you creating?** - > Enter `Tutorial` - +* **What kind of application are you creating?** + + > Select `Tutorial` + * **What is your project name?** > Enter `Nova Tutorial` @@ -53,30 +54,20 @@ This command will download the template to a directory called `nova_tutorial`. C > Press enter to accept the default. -* **Do you want to install Mantid for your project?** +* **What category will your tool belong to?** - > Enter `no` + > Select `Generic` -* ** Are you developing a GUI application using MVVM pattern?** - - > Enter `yes` - -* ** Which library will you use?** +* **Which GUI library will you use?** > Select `Trame` -* **Do you want a template with multiple tabs? +* **Do you want a template with multiple tabs?** > Enter `yes` After answering these questions, `copier` will clone the template repository and create your project within the `nova_tutorial` directory. -::::::::::::::::::::::::::::::::::::::::: callout - -If your application requires Mantid, you can enter Yes and Mantid will be added to your dockerfile. However, for local development you will still need to properly set up your conda environment. - -:::::::::::::::::::::::::::::::::::::::::::::::::: - ## Install Project Dependencies 1. **Clone the Template:** Follow the instructions in the "Getting Started with a Template Application" section to clone the NOVA template using `copier`. This will create a new directory (e.g., `nova_tutorial`) containing your project files. @@ -86,10 +77,10 @@ If your application requires Mantid, you can enter Yes and Mantid will be added cd nova_tutorial ``` -3. **Install Dependencies with Poetry:** Use Poetry to install the project dependencies defined in the `pyproject.toml` file: +3. **Install Dependencies with Pixi:** Use Pixi to install the project dependencies defined in the `pyproject.toml` file: ```bash - poetry install + pixi install ``` This command will create a virtual environment for your project and install all required libraries, including the NOVA libraries and Trame. @@ -198,7 +189,8 @@ Now that we have our template application set up, we need to integrate it with t You can initialize your Git repository and push it to the correct location in the NDIP GitLab: ```bash -poetry run init-repo +pixi run init-repo +pixi run pre-commit install ``` ::::::::::::::::::::::::::::::::::::::::: callout @@ -212,6 +204,7 @@ This script will: 3. Add all project files to the repository 4. Create an initial commit (if needed) 5. Push the code to the GitLab repository +6. Set up the pre-commit hooks to lint your code before future pushes ### Continuous Integration and Container Building @@ -223,6 +216,10 @@ Once your code is pushed to GitLab, the included CI/CD pipeline will automatical The Docker image tag is derived from your project's version in `pyproject.toml`. Each time you update the version and push, a new container will be built automatically. +::::::::::::::::::::::::::::::::::::::::: callout +Note that production images are not automatically built and pushed to Harbor. When ready to push to production, you should first manually trigger the `build-prod-image` stage in the CI. +:::::::::::::::::::::::::::::::::::::::::::::::: + ### Tool XML File The template has already generated a Galaxy tool XML file for your project. You can find this file at: @@ -250,7 +247,7 @@ After the manual changes we made in the previous step, your tool XML will be cor To deploy your tool to the NDIP platform, you need to add the XML file to the galaxy-tools repository. The template includes a utility for this: ```bash -poetry run deploy-prototype +pixi run deploy-prototype ``` This script will: @@ -260,7 +257,7 @@ This script will: 3. Commit the changes 4. Push to the `prototype` branch of the galaxy-tools repository -Once your XML file is pushed to the prototype branch, an automated CI job will deploy your tool to the calvera-test instance. You can then access your tool through the NDIP web interface at https://calvera-test.ornl.gov. +Once your XML file is pushed to the prototype branch, an automated CI job will deploy your tool to the ndip-test instance. You can then access your tool through the NDIP web interface at https://ndip-test.ornl.gov. ::::::::::::::::::::::::::::::::::::::::: callout The tool XML utility has been enhanced to check for the existence of your Docker image before proceeding with the push. This helps prevent deployment errors by ensuring your container has been built first. @@ -286,21 +283,21 @@ Let's understand the key components that make your tool work in NDIP: - After XML is merged → Your tool appears in the NDIP interface ::::::::::::::::::::::::::::::::::::::::: callout -In a production environment, when your tool is ready for users, you would run the deploy-production tool. This will create a merge request to the dev branch. The NDIP team reviews these changes, merges them, and your tool will be deployed to the production instance during the next deployment. +In a production environment, when your tool is ready for users, you would run `pixi run deploy-production`. This will create a merge request to the dev branch. The NDIP team reviews these changes, merges them, and your tool will be deployed to the production instance during the next deployment. :::::::::::::::::::::::::::::::::::::::::::::::: ## References -* **Nova Documentation**: https://nova-application-development.readthedocs.io/en/latest/ +* **NOVA Documentation**: https://nova-application-development.readthedocs.io/en/latest/ * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ -* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ +* **NDIP documentation**: https://ndip-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - Nova provides a template application to help get started developing your application. - Use the copier tool to clone the template application. -- Poetry is a project management tool used to install dependencies and manage virtual environments. +- Pixi is a project management tool used to install dependencies and manage virtual environments. - The template application includes everything you need to get started such as basic CI, dockerfile, and tests. - Docker containers package your application and all its dependencies for deployment. - Galaxy tool XML files define how your tool appears and functions in NDIP. diff --git a/episodes/03-Nova-Galaxy.md b/episodes/03-Nova-Galaxy.md index 516f3772..42cadcda 100755 --- a/episodes/03-Nova-Galaxy.md +++ b/episodes/03-Nova-Galaxy.md @@ -29,7 +29,8 @@ In this episode, we will start using the `nova-galaxy` library to interact with ::::::::::::::::::::::::::::::::::::::: callout -From the command line, type `poetry add nova-galaxy@^0.7.0`. This command will add the nova-galaxy library to the pyproject.toml file as a project dependency. Then run `poetry install` to update your project dependencies. +From the command line, type `pixi add --pypi nova-galaxy`. This command will add the nova-galaxy library to the pyproject.toml file as a project dependency and install it into the environment. + :::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::: callout @@ -95,7 +96,7 @@ This section describes the output from the tool. The Fractal tool results in a s ``` -A comprehensive list of tools, and links to their XML, can be found in Calvera's documentation on the [tools](https://calvera.ornl.gov/docs/tools/) page. +A comprehensive list of tools, and links to their XML, can be found in NDIP's documentation on the [tools](https://ndip.ornl.gov/docs/tools/) page. ## Setting up the Fractal tool @@ -134,7 +135,7 @@ class Fractal: params.add_input(name="option", value=self.fractal_type) ``` -Note that we create a `Tool` object with the `id="neutrons_fractal"`. This tells `nova-galaxy` which NDIP tool we want to run. The obvious question at this point is how do we know the id of the tool and what parameters it expects? We can look at the tool\'s launch page in calvera for some hints but ultimately we have to look at the tool\'s [xml file](https://code.ornl.gov/ndip/galaxy-tools/-/blob/dev/tools/neutrons/test_tools/fractal.xml?ref_type=heads). +Note that we create a `Tool` object with the `id="neutrons_fractal"`. This tells `nova-galaxy` which NDIP tool we want to run. The obvious question at this point is how do we know the id of the tool and what parameters it expects? We can look at the tool\'s launch page in NDIP for some hints but ultimately we have to look at the tool\'s [xml file](https://code.ornl.gov/ndip/galaxy-tools/-/blob/dev/tools/neutrons/test_tools/fractal.xml?ref_type=heads). * **Connect and Run the Tool**: The `with conn.connect() as galaxy_connection:` block establishes a connection to NDIP and ensures proper handling of the connection: @@ -143,8 +144,8 @@ Note that we create a `Tool` object with the `id="neutrons_fractal"`. This tells data_store = galaxy_connection.create_data_store(name="fractal_store") data_store.persist() print("Executing fractal tool. This might take a few minutes.") - output = tool.run(data_store, params) - output.get_dataset("output").download("tmp.png") + output = tool.run(data_store, params, wait=True) + output.get_dataset("output").download("image.png") print("Fractal tool finished successfully.") ``` @@ -172,7 +173,7 @@ def main() -> None: To run the code, use the following command in the top level of your `nova_tutorial` project: ```bash -poetry run app +pixi run app ``` You should see `Fractal tool finished successfully.` printed to the console. @@ -247,7 +248,7 @@ In both cases, an error is received from the ndip-galaxy library. When changing * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ -* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ +* **NDIP documentation**: https://ndip-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - Nova-Galaxy can be used to create powerful python scripts which leverage the functionality of NDIP. diff --git a/episodes/04-MVVM-Design-Pattern.md b/episodes/04-MVVM-Design-Pattern.md index 2910f5f3..992a8d52 100755 --- a/episodes/04-MVVM-Design-Pattern.md +++ b/episodes/04-MVVM-Design-Pattern.md @@ -166,7 +166,7 @@ The template creates a well-organized project structure following best practices * `nova_tutorial/README.md`: A Markdown file providing a description of your project, instructions for setup and usage, and any other relevant information. -* `pyproject.toml`: A configuration file for Poetry, the dependency management and packaging tool used by NOVA. It specifies project dependencies, build settings, and other metadata. +* `pyproject.toml`: A configuration file for Pixi, the dependency management and packaging tool used by NOVA. It specifies project dependencies, build settings, and other metadata. ## Implementing MVVM with `nova-mvvm` and Pydantic @@ -197,7 +197,7 @@ def main() -> None: app.server.start(**kwargs) ``` -* **Adding a Placeholder Method to the ViewModel (`src/nova_tutorial/app/view_models/main.py`) (Modify):** +* **Adding a Placeholder Method to the ViewModel (`src/nova_tutorial/app/view_models/main_view_model.py`) (Modify):** Add a `run_fractal` method to the `MainViewModel`. For now, it just prints a message to the console. This confirms that the button click is connected to the ViewModel. @@ -214,7 +214,7 @@ This is the UI for our Fractal interaction. It includes a button that calls the from trame.widgets import vuetify3 as vuetify from nova.trame.view.components import InputField -from nova_tutorial.app.view_models.main import MainViewModel +from nova_tutorial.app.view_models.main_view_model import MainViewModel class FractalTab: def __init__(self, view_model: MainViewModel) -> None: @@ -233,10 +233,11 @@ class FractalTab: Add the "Fractal" tab to the tab bar. ```python - with vuetify.VTabs(v_model=("active_tab", 0), classes="pl-5"): - vuetify.VTab("Fractal", value=1) # Add Fractal Tab - vuetify.VTab("Sample Tab 1", value=2) - vuetify.VTab("Sample Tab 2", value=3) + with client.DeepReactive("view_state"): + with vuetify.VTabs(v_model="view_state.active_tab", classes="pl-5"): + vuetify.VTab("Fractal", value=0) # Add Fractal Tab + vuetify.VTab("Sample Tab 1", value=1) + vuetify.VTab("Sample Tab 2", value=2) ``` * **Modify the tab panel content (`src/nova_tutorial/app/views/tab_content_panel.py`) (Modify):** @@ -246,19 +247,18 @@ Display the `FractalTab` content when the "Fractal" tab is selected. ```python from .fractal_tab import FractalTab # Import the FractalTab - # ... (rest of the file) ... - with vuetify.VWindow(v_model="active_tab"): - with vuetify.VWindowItem(value=1): - FractalTab(self.view_model) # Add FractalTab - with vuetify.VWindowItem(value=2): - SampleTab1() - with vuetify.VWindowItem(value=3): - SampleTab2() + def create_ui(self) -> None: + with VBoxLayout(v_show="view_state.active_tab == 0", stretch=True): + FractalTab(self.view_model) # Add FractalTab + with VBoxLayout(v_show="view_state.active_tab == 1", stretch=True): + SampleTab1() + with VBoxLayout(v_show="view_state.active_tab == 2", stretch=True): + SampleTab2() ``` **Demonstration (Initial UI and ViewModel Connection):** -Run the application: `poetry run app` +Run the application: `pixi run app` You should see a new "Fractal" tab in the application. Click the "Run Fractal" button. You should see "run_fractal method called!" printed in your terminal. This demonstrates that the button click in the View is successfully triggering the `run_fractal` method in the ViewModel, even though the method doesn't do anything substantial yet. This establishes the basic MVVM wiring. @@ -282,21 +282,24 @@ from nova.galaxy import Connection, Parameters, Tool * **Update class variables:** Use Pydantic's `Field` for type hinting and validation. Add the `image_data` field. ```python -class Fractal(BaseModel): +class FractalData(BaseModel): fractal_type: Literal["mandelbrot", "julia", "random", "markus"] = Field(default="mandelbrot") - galaxy_url: str = Field(default_factory=lambda: os.getenv("GALAXY_URL"), description="NDIP Galaxy URL") - galaxy_key: str = Field(default_factory=lambda: os.getenv("GALAXY_API_KEY"), description="NDIP Galaxy API Key") + galaxy_url: str = Field(default=os.getenv("GALAXY_URL", ""), description="NDIP Galaxy URL") + galaxy_key: str = Field(default=os.getenv("GALAXY_API_KEY", ""), description="NDIP Galaxy API Key") image_data: str = Field(default="", description="Base64 encoded PNG") +class Fractal: + # ... def set_fractal_type(self, fractal_type: str): self.fractal_type = fractal_type + # ... ``` * **Decode the data:** Update how the image is decoded. ```python - output.get_dataset("output").download("tmp.png") + output.get_dataset("output").download("image.png") - with open("tmp.png", "rb") as image_file: + with open("image.png", "rb") as image_file: self.image_data = f"data:image/png;base64,{b64encode(image_file.read()).decode()}" ``` @@ -305,47 +308,68 @@ class Fractal(BaseModel): Import and include the `Fractal` model as a field in the `MainModel`. ```python +from pydantic import BaseModel, Field from .fractal import Fractal # Import Fractal -class MainModel(BaseModel): - # ... (other fields) ... +class Config(BaseModel): + # ... (previous MainModel) ... password: str = Field(default="test_password", title="User Password") - fractal: Fractal = Field(default_factory=Fractal) #Add Fractal Model -``` -* **Connect the UI elements in FractalTab (`src/nova_tutorial/app/views/fractal_tab.py`) (Modify):** - -Update the create UI section to use InputField and the image. -```python -from nova.trame.view.components import InputField - # ...(rest of file)... - def create_ui(self) -> None: - InputField(v_model="config.fractal.fractal_type") - vuetify.VBtn( - "Run Fractal", - click=self.view_model.run_fractal - ) - vuetify.VImg(src=("config.fractal.image_data",), height="400", width="400") +class MainModel: + def __init__(self) -> None: + self.config = Config() + self.fractal = Fractal() ``` -* **Add Full Functionality to the View Model (`src/nova_tutorial/app/view_models/main.py`) (Modify)** +* **Add Full Functionality to the View Model (`src/nova_tutorial/app/view_models/main_view_model.py`) (Modify)** Update the code in the run_fractal method. ```python + def __init__(self) -> None: + # ... + self.config_bind = binding.new_bind(self.model.config, callback_after_update=self.change_callback) + self.fractal_bind = binding.new_bind(self.model.fractal.data, callback_after_update=self.change_callback) + # ... + def run_fractal(self) -> None: self.model.fractal.run_fractal_tool() self.update_view() + + def update_view(self) -> None: + self.config_bind.update_in_view(self.model.config) + self.fractal_bind.update_in_view(self.model.fractal.data) +``` + +* **Connect the UI elements in FractalTab (`src/nova_tutorial/app/views/fractal_tab.py`) (Modify):** + +Update the create UI section to use InputField and the image. +```python +from nova.trame.view.components import InputField + + # ...(rest of file)... + def __init__(self) -> None: + self.view_model = view_model + self.view_model.fractal_bind.connect("fractal") + self.create_ui() + + def create_ui(self) -> None: + with VBoxLayout(): + InputField(v_model="fractal.fractal_type") + with VBoxLayout(classes="mb-2", halign="left"): + vuetify.VBtn("Run Fractal", click=self.view_model.run_fractal) + with VBoxLayout(stretch=True): + vuetify.VImg(src=("fractal.image_data",), classes="h-100 w-100") ``` **Final Demonstration (Full Application):** -Run the application: `poetry run app` +Run the application: `pixi run app` Now, when you click "Run Fractal," the Fractal tool will execute in Galaxy, and the resulting image will be displayed in the UI. You can also change the `fractal_type` using the input field. This demonstrates the complete MVVM flow, with data binding, Pydantic validation, and the interaction between the View, ViewModel, and Model. ::::::::::::::::::::::::::::::::::::::::: callout -If you don't want Trame to launch a tab by default, you can instead run ```poetry run app --server```. +If you don't want Trame to launch a tab by default, you can instead run ```pixi run app --server```. :::::::::::::::::::::::::::::::::::::::::::::::::: @@ -355,12 +379,12 @@ Now that we have updated our Fractal tool and integrated it into the NOVA applic Here are the steps to push your changes and deploy the tool: -1. **Bump the version:** Open the `pyproject.toml` file in the root of your project. Increment the `version` number to `0.2.0` in the `[tool.poetry]` section. Save the file. +1. **Bump the version:** Open the `pyproject.toml` file in the root of your project. Increment the `version` number to `0.2.0` in the `[project]` section. Save the file. 2. **Stage your changes:** Use `git add .` to stage all changes that have been made to the application. 3. **Commit your changes:** Create a commit with a descriptive message: `git commit -m "Update Fractal tool with MVVM, bump to version 0.2.0"`. 4. **Push to the repository:** Push your committed changes to the remote repository with `git push`. 5. **Wait for CI/CD:** The push will trigger a CI/CD pipeline in gitlab. Wait for the pipeline to complete which includes building the container image for your tool. You can monitor the pipeline status in the Gitlab interface. -6. **Deploy the tool:** Once the pipeline is successful, run the deployment command from your project's root directory: `poetry run deploy-prototype`. +6. **Deploy the tool:** Once the pipeline is successful, run the deployment command from your project's root directory: `pixi run deploy-prototype`. This process ensures that your updated tool is built, containerized, and made available through NDIP. @@ -378,7 +402,7 @@ This process ensures that your updated tool is built, containerized, and made av print("Current message:", self._message) # Print message ``` -* Run the application (`poetry run app`). Observe the console output. Verify that: +* Run the application (`pixi run app`). Observe the console output. Verify that: * The message "Attempted to set fractal type programmatically to: invalid-fractal-type" is printed. * The "Current fractal type (after attempt):" is still "mandelbrot" indicating the invalid update was rejected. * The "Current message:" now contains a "Validation Error" message from Pydantic. @@ -388,8 +412,8 @@ This process ensures that your updated tool is built, containerized, and made av ::::::::::::::::::::::::::::::::::::::: challenge **Inspect ViewModel State** -* In `src/nova_tutorial/app/view_models/main.py`, add `print` statements within the `MainViewModel.__init__` method to print the initial values of `self.fractal`, `self.fractal.galaxy_url`, and `self.fractal.fractal_type`. -* Run the application (`poetry run app`). Observe the output in the console. Verify that the initial values are printed as expected. +* In `src/nova_tutorial/app/view_models/main_view_model.py`, add `print` statements within the `MainViewModel.__init__` method to print the initial values of `self.fractal`, `self.fractal.galaxy_url`, and `self.fractal.fractal_type`. +* Run the application (`pixi run app`). Observe the output in the console. Verify that the initial values are printed as expected. * Now, modify the `MainViewModel.__init__` method to change the initial value of `self.fractal.fractal_type` to "julia". Run the application again and confirm that the printed message has changed. :::::::::::::::::::::::::::::::::::::::::::::::::: @@ -400,7 +424,7 @@ This process ensures that your updated tool is built, containerized, and made av * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ -* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ +* **NDIP documentation**: https://ndip-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - MVVM stands for Model, View, View-Model. diff --git a/episodes/05-Working-with-Trame.md b/episodes/05-Working-with-Trame.md index f9e46948..4fddde9c 100755 --- a/episodes/05-Working-with-Trame.md +++ b/episodes/05-Working-with-Trame.md @@ -75,14 +75,13 @@ Layouts are responsible for arraging your content in a consistent manner. In Tra `nova-trame` provides a basic layout and theme that you can access via the `ThemedApp` class. The template app will setup your main view class to inherit from `ThemedApp` already, but to see how it works let\'s try moving the button to run the fractal tool from the fractal tab into `post_content` slot in the layout. -**1. `src/nova_tutorial/app/views/main.py` (Modify):** +**1. `src/nova_tutorial/app/views/main_view.py` (Modify):** ```python import logging from nova.mvvm.trame_binding import TrameBinding from nova.trame import ThemedApp -from nova.trame.view import layouts from trame.app import get_server from trame.widgets import vuetify3 as vuetify @@ -106,6 +105,7 @@ class MainApp(ThemedApp): self.create_ui() def create_ui(self) -> None: + self.set_theme("CompactTheme") self.state.trame__title = "Fractal Tool GUI" with super().create_ui() as layout: @@ -129,8 +129,10 @@ class MainApp(ThemedApp): ```python def create_ui(self) -> None: - InputField(v_model="config.fractal.fractal_type") - vuetify.VImg(src=("config.fractal.image_data",), height="400", width="400") + with VBoxLayout(): + InputField(v_model="fractal.fractal_type") + with VBoxLayout(stretch=True): + vuetify.VImg(src=("fractal.image_data",), classes="h-100 w-100") ``` :::::::::::::::::::::::::: callout @@ -180,14 +182,14 @@ class FractalTypeOptions(str, Enum): random = "random" markus = "markus" -class Fractal(BaseModel): - fractal_type: FractalTypeOptions = Field(default=FractalTypeOptions.mandelbrot) +class FractalData(BaseModel): + fractal_type: FractalTypeOptions = Field(default=FractalTypeOptions.mandelbrot, title="Fractal Type") ``` **4. `src/nova_tutorial/app/views/fractal_tab.py` (Modify):** ```python - InputField(v_model="config.fractal.fractal_type", type="select") + InputField(v_model="fractal.fractal_type", type="select") ``` ### `RemoteFileInput` @@ -207,8 +209,9 @@ class SampleTab1: self.create_ui() def create_ui(self) -> None: - RemoteFileInput(v_model="config.file", base_paths=["/HFIR", "/SNS"]) - InputField(v_model="config.username") + with VBoxLayout(): + RemoteFileInput(v_model="config.file", base_paths=["/HFIR", "/SNS"]) + InputField(v_model="config.username") ``` **6. `src/nova_tutorial/app/models/main_model.py` (Modify):** @@ -220,7 +223,7 @@ from pydantic import BaseModel, Field from .fractal import Fractal -class MainModel(BaseModel): +class Config(BaseModel): username: str = Field( default="test_name", min_length=1, @@ -298,15 +301,15 @@ By combining these layout components, you can create complex and responsive UI l As an example, we can use the layout classes to center the "Run Fractal" button. -**7. `src/nova_tutorial/app/views/main.py` (Modify):** +**7. `src/nova_tutorial/app/views/main_view.py` (Modify):** ```python -from nova.trame.view import layouts +from nova.trame.view.layouts import HBoxLayout ... with layout.post_content: - with layouts.HBoxLayout(classes="my-2", halign="center"): + with HBoxLayout(classes="my-2", halign="center"): vuetify.VBtn( "Run Fractal", click=self.view_model.run_fractal # calls the run_fractal_tool method @@ -328,7 +331,7 @@ For a more detailed explanation of how to work with our layout and theme, please To run the code, use the following command in the top level of your `nova_tutorial` project: ```bash -poetry run app +pixi run app ``` You should now see the simple UI. When you click the "Sample Tab 1" and "Sample Tab 2" tabs, you should now see the updated content with the new UI components. @@ -342,66 +345,65 @@ Now that we understand the basics of working with Trame, let\'s make the view fo ```python def __init__(self, view_model: MainViewModel) -> None: self.view_model = view_model - self.view_model.running_bind.connect("running") + self.view_model.fractal_bind.connect("fractal") self.create_ui() def create_ui(self) -> None: - InputField(v_model="config.fractal.fractal_type", classes="mb-2", type="select") - vuetify.VProgressCircular(v_if="running", indeterminate=True) - vuetify.VImg(v_else=True, src=("config.fractal.image_data",), height="400", width="400") + with VBoxLayout(): + InputField(v_model="fractal.fractal_type", type="select") + with VBoxLayout(halign="center", valign="center", stretch=True): + vuetify.VProgressCircular(v_if="view_state.running", indeterminate=True) + vuetify.VImg(v_else=True, src=("fractal.image_data",), classes="h-100 w-100") ``` We will need to add a data binding for `running`, as well. We choose to place this directly in the view model as this is not relevant to running the fractal tool on NDIP. -**8. `src/nova_tutorial/app/view_models/main.py` (Modify):** +**8. `src/nova_tutorial/app/view_models/main_view_model.py` (Modify):** ```python -from asyncio import create_task, sleep -from threading import Thread - # ... (rest of the file) ... +class ViewState(BaseModel): + """View state for the application.""" - def __init__(self, model: MainModel, binding: BindingInterface): - self.model = model - self.running = False + active_tab: str = Field(default="0") + running: bool = Field(default=False) - # here we create a bind that connects ViewModel with View. It returns a communicator object, - # that allows to update View from ViewModel (by calling update_view). - # self.model will be updated automatically on changes of connected fields in View, - # but one also can provide a callback function if they want to react to those events - # and/or process errors. - self.config_bind = binding.new_bind(self.model, callback_after_update=self.change_callback) - self.running_bind = binding.new_bind() - def update_view(self) -> None: - self.config_bind.update_in_view(self.model) - self.running_bind.update_in_view(self.running) +class MainViewModel: + def __init__(self, model: MainModel, binding: BindingInterface): + self.model = model + self.binding = binding + # ... ``` -Finally, we manipulate our new view state based on the current status of the tool. Because the fractal tool takes a long time to complete, we offload it to a background thread. If we do not do this, then Trame will not update the view until the tool has finished running, which defeats the purpose of this change. +Next, we manipulate our new view state based on the current status of the tool. Because the fractal tool takes a long time to complete, we offload it to a background thread. If we do not do this, then Trame will not update the view until the tool has finished running, which defeats the purpose of this change. ```python + def update_view(self) -> None: + self.config_bind.update_in_view(self.model.config) + self.fractal_bind.update_in_view(self.model.fractal.data) + self.view_state_bind.update_in_view(self.view_state) + def run_fractal(self) -> None: - self.running = True + self.view_state.running = True self.update_view() - # update_view won't take effect until this method returns a value, so we must offload this long-running task to - # a background thread for our conditional rendering to work. - fractal_tool_thread = Thread(target=self.run_fractal_in_background, daemon=True) - fractal_tool_thread.start() + worker = self.binding.new_worker(self.model.fractal.run_fractal_tool) + worker.connect_finished(self.on_fractal_finished) + worker.start() - # We also need to know when the tool is done running so that we can - create_task(self.monitor_fractal()) + def on_fractal_finished(self) -> None: + self.view_state.running = False + self.update_view() +``` - def run_fractal_in_background(self) -> None: - self.model.fractal.run_fractal_tool() - self.running = False +**9. `src/nova_tutorial/app/models/fractal.py` (Modify):** - async def monitor_fractal(self) -> None: - while self.running: - await sleep(0.1) - self.update_view() +```python + def run_fractal_tool(self, progress: Callable): ``` +Finally, when we call run_fractal_tool through a worker it will be passed a method that it can call during execution to send updates back to the view. We won't use this right now, but we do need to modify the function to avoid an error when the worker is started. + ::::::::::::::::::::::::::::::::: callout With any Trame or `nova-trame` component, you can use the `v_if`, `v_else_if`, and `v_else` arguments to only show the component in the interface when a condition is true. The condition can be a reference to your model, similar to the `v_model` argument, or it can be a full JavaScript expression for complex use cases. ::::::::::::::::::::::::::::::::::::::::: @@ -432,7 +434,7 @@ Experiment with customizing the appearance of the Vuetify components using the v * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ * **Vuetify Documentation**: https://vuetifyjs.com/en/ -* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ +* **NDIP documentation**: https://NDIP-test.ornl.gov/docs/ ``` diff --git a/episodes/06-Advanced-Data-Modeling.md b/episodes/06-Advanced-Data-Modeling.md index f3cfd420..0dfb3ddb 100755 --- a/episodes/06-Advanced-Data-Modeling.md +++ b/episodes/06-Advanced-Data-Modeling.md @@ -65,7 +65,7 @@ Let\'s start by setting up a new application from the template. To clone the template application, run the following command: ```bash -copier copy https://code.ornl.gov/ndip/project-templates/nova-application-template.git advanced_pydantic +copier copy https://github.com/nova-sdk/nova-application-template advanced_pydantic ``` This command will download the template to a directory called `advanced_pydantic`. Copier will prompt you with a series of questions. Please answer the questions as follows: @@ -85,7 +85,7 @@ After that, go into the created folder and install project dependencies: ```bash cd advanced_pydantic -poetry install +pixi install ``` @@ -93,7 +93,7 @@ poetry install Pydantic uses Python type hints to define data models. When you create an instance of a Pydantic model, Pydantic automatically validates the input data against the defined types and constraints. -1. Create a User Model (`src/advanced_pydantic/main.py`) (Modify): +1. Create a User Model (`src/advanced_pydantic/app/main.py`) (Modify): ```python from pydantic import BaseModel, Field @@ -107,7 +107,7 @@ In this example, we define a `User` model with two fields: `id` and `name`. We u When you create an instance of the `User` model, Pydantic automatically validates the input data. -2. Create an instance of a User (`src/advanced_pydantic/main.py`) (Modify): +2. Create an instance of a User (`src/advanced_pydantic/app/main.py`) (Modify): ```python from pydantic import ValidationError @@ -122,7 +122,7 @@ def main() -> None: and run it with ```bash -poetry run app +pixi run app ``` @@ -133,7 +133,7 @@ If the input data is invalid, Pydantic raises a `ValidationError` exception with When working with structured data, it\'s common to have nested objects. For example, a User model from the above example might have multiple Address entries. In Pydantic, we can achieve this by creating nested models. -1. Creating the Address Model (`src/advanced_pydantic/main.py`) (Modify). +1. Creating the Address Model (`src/advanced_pydantic/app/main.py`) (Modify). The Address model represents a simple address with three fields: @@ -153,7 +153,7 @@ class Address(BaseModel): type: Literal["home", "work"] = Field() ``` -2. Using the Address Model as a Nested Field (`src/advanced_pydantic/main.py`) (Modify). +2. Using the Address Model as a Nested Field (`src/advanced_pydantic/app/main.py`) (Modify). Update the User model so that it now contains: @@ -170,7 +170,7 @@ class User(BaseModel): addresses: List[Address] = Field(min_length=1) ``` -3. Test the model (`src/advanced_pydantic/main.py`) (Modify). +3. Test the model (`src/advanced_pydantic/app/main.py`) (Modify). ```python def main() -> None: @@ -194,7 +194,7 @@ def main() -> None: and run it with ```bash -poetry run app +pixi run app ``` ::::::::::::::::::::::::::::::::::::::::: callout @@ -207,7 +207,7 @@ Sometimes, simple validation like checking the minimum length is not enough. In For example, let\'s say we have a User model where only even IDs are allowed. We can enforce this constraint using the `@field_validator decorator`. -4. Using the `@field_validator decorator` (`src/advanced_pydantic/main.py`) (Modify): +4. Using the `@field_validator decorator` (`src/advanced_pydantic/app/main.py`) (Modify): ```python from pydantic import BaseModel, Field, field_validator @@ -248,7 +248,7 @@ In some cases, you may need to validate the entire model, not just individual fi For example, let\'s say we have a User model where the name and id must meet specific conditions together. For instance, we only allow users with even IDs to have names that start with a capital letter. We can enforce this logic using a @model_validator. -5. Using the `@model_validator decorator` (`src/advanced_pydantic/main.py`) (Modify): +5. Using the `@model_validator decorator` (`src/advanced_pydantic/app/main.py`) (Modify): ```python from pydantic import BaseModel, Field, model_validator @@ -285,44 +285,28 @@ Now, let\'s create a simple Trame-based GUI application. To clone the template application, run the following command: ```bash -copier copy https://code.ornl.gov/ndip/project-templates/nova-application-template.git pydantic_mvvm +copier copy https://github.com/nova-sdk/nova-application-template pydantic_mvvm ``` This command will download the template to a directory called `pydantic_mvvm`. Copier will prompt you with a series of questions. Please answer the questions as follows: +* **What kind of application are you creating?** -* **What kind of application are you creating?** - > Enter `Nova Application` + > Select `Nova Application` * **What is your project name?** > Enter `Trame with Pydantic` -* **What is your Python package name (use Python naming conventions)?** +* **All other questions** > Press enter to accept the default. -* **Do you want to install Mantid for your project?** - - > Enter `n` - -* **Are you developing a GUI application using MVVM pattern?** - - > Enter `y` - -* **Which library will you use?** - - > Select `Trame` - -* **Do you want a template with multiple tabs?** - - > Enter `n` - After that, go into the created folder and install project dependencies: ```bash cd pydantic_mvvm -poetry install +pixi install ``` @@ -339,7 +323,7 @@ class SettingsModel(BaseModel): port: int = Field(default=8080, gt=0, lt=65536, title="Port Number", description="The port to listen on.", examples=["12345"]) ``` -2. Create a binding for the model (`src/trame_with_pydantic/app/view_models/main.py`) (Modify): +2. Create a binding for the model (`src/trame_with_pydantic/app/view_models/main_view_model.py`) (Modify): In your ViewModel, create a binding for this Model and clean up the code created by the template engine, we don't need it for this example): @@ -355,7 +339,7 @@ class MainViewModel: self.settings_bind = binding.new_bind(self.settings) ``` -3. In your view, remove all other fields and add the following InputField (`src/trame_with_pydantic/app/views/main.py`) (Modify): +3. In your view, remove all other fields and add the following InputField (`src/trame_with_pydantic/app/views/main_view.py`) (Modify): ```python @@ -366,7 +350,7 @@ class MainViewModel: ... with layout.content: - with vuetify.VRow(align="center", classes="mt-4"): + with GridLayout(columns=2, gap="0.25em"): InputField(v_model="settings.port") ``` @@ -380,20 +364,13 @@ In that fashion, the `InputField` seamlessly pulls information from your code\'s Sometimes, you may want to respond to UI validation errors beyond just marking a field as invalid (which happens automatically). In such cases, you can add a callback to the `new_bind` function. -4. Using callbacks with `new_bind` (`src/trame_with_pydantic/app/view_models/main.py`) (modify): +4. Using callbacks with `new_bind` (`src/trame_with_pydantic/app/view_models/main_view_model.py`) (modify): ```python class MainViewModel: def __init__(self, _, binding: BindingInterface): ... - self.settings_bind = binding.new_bind(self.settings, callback_after_update=self.process_settings_change) - - def process_settings_change(self, results: Dict[str, Any]) -> None: - if results["error"]: - print(f"error in fields {results['errored']}, model not changed") - else: - print(f"model fields updated: {results['updated']}") - + self.settings_bind = binding.new_bind(self.settings, callback_after_update=self.change_callback) ``` The function will receive a dictionary containing lists of updated or invalid fields. Note that if a validation error occurs, the model will not be updated, leading to a discrepancy between the values displayed in the UI and those in the model. @@ -427,4 +404,4 @@ In the GUI application, set the port to the default value if a user enters an in * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ -* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ \ No newline at end of file +* **NDIP documentation**: https://ndip-test.ornl.gov/docs/ \ No newline at end of file diff --git a/episodes/07-Advanced-Visualizations.md b/episodes/07-Advanced-Visualizations.md index f301cbd8..b39cb73b 100755 --- a/episodes/07-Advanced-Visualizations.md +++ b/episodes/07-Advanced-Visualizations.md @@ -38,11 +38,12 @@ The complete code for this episode is available in the `code/episode_7` director Let\'s start by setting up a new application from the template. When answering the `copier` questions, make sure you select "no" for installing Mantid and set up a Trame-based, multi-tab view based on MVVM. ```bash -copier copy https://code.ornl.gov/ndip/project-templates/nova-application-template.git viz_tutorial +copier copy https://github.com/nova-sdk/nova-application-template viz_tutorial ``` -* **What kind of application are you creating?** - > Enter `Nova Application` +* **What kind of application are you creating?** + + > Select `Nova Application` * **What is your project name?** @@ -55,26 +56,22 @@ copier copy https://code.ornl.gov/ndip/project-templates/nova-application-templa > Press enter to accept the default. -* **Do you want to install Mantid for your project?** - - > Enter `no` - -* ** Are you developing a GUI application using MVVM pattern?** +* **Which category will your tool belong to?** - > Enter `yes` + > Select any option -* ** Which library will you use?** +* **Which GUI library will you use?** > Select `Trame` -* **Do you want a template with multiple tabs? +* **Do you want a template with multiple tabs?** > Enter `yes` ```bash cd viz_tutorial -poetry install -poetry run app +pixi install +pixi run app ``` ## Plotly (2D) @@ -82,7 +79,7 @@ poetry run app Trame provides a library called [trame-plotly](https://github.com/Kitware/trame-plotly) for connecting Trame and [Plotly](https://plotly.com/python/). You can install it with: ```bash -poetry add pandas plotly trame-plotly +pixi add --pypi pandas plotly trame-plotly ``` The pandas install is only necessary for loading example data from Plotly, which we'll be doing in this tutorial. @@ -101,7 +98,7 @@ from nova.trame.view.components import InputField from nova.trame.view.layouts import GridLayout, HBoxLayout from trame.widgets import plotly -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel ``` * **Class Definition**: The view model connections allow us to connect the controls we will define in create_ui() to the server and update the Plotly chart after a control is changed. @@ -116,8 +113,7 @@ class PlotlyView: self.view_model.plotly_figure_bind.connect(self.update_figure) self.create_ui() - - self.view_model.update_plotly_figure() + self.update_figure() ``` * **Controls**: These controls will dynamically update the Plotly chart. @@ -138,7 +134,7 @@ class PlotlyView: * **Chart Definition**: Here, we use the imported Trame widget for Plotly to define the chart. This widget includes an `update` method that allows us to change the content after the initial rendering. ```python - with HBoxLayout(halign="center", height="50vh"): + with HBoxLayout(stretch=True): self.figure = plotly.Figure() def update_figure(self, figure: go.Figure) -> None: @@ -237,12 +233,8 @@ from ..views.plotly import PlotlyView ```python def create_ui(self) -> None: - with vuetify.VForm(ref="form") as self.f: - with vuetify.VContainer(classes="pa-0", fluid=True): - with vuetify.VCard(): - with vuetify.VWindow(v_model="active_tab"): - with vuetify.VWindowItem(value=1): - PlotlyView(self.view_model) + with VBoxLayout(v_show="view_state.active_tab == 0", stretch=True): + PlotlyView(self.view_model) ``` And add the corresponding import: @@ -253,13 +245,14 @@ We also need to update the tabs to show an option for the Plotly view. ```python def create_ui(self) -> None: - with vuetify.VTabs(v_model=("active_tab", 0), classes="pl-5"): - vuetify.VTab("Plotly", value=1) + with client.DeepReactive("view_state"): + with vuetify.VTabs(v_model="view_state.active_tab", classes="pl-5"): + vuetify.VTab("Plotly", value=0) ``` Finally, we'll need to update the view model to bind our new classes. -**5. `src/viz_examples/app/view_models/main.py` (Modify):** +**5. `src/viz_examples/app/view_models/main_view_model.py` (Modify):** * **Import `PlotlyConfig`** @@ -297,7 +290,7 @@ Now, if you run the application you should see the following in the Plotly tab: One of Trame\'s core features is that it has direct integration with VTK for building 3D visualizations. Learning VTK from scratch is non-trivial, however, so we recommend that you work with PyVista. PyVista serves as a more developer-friendly wrapper around VTK, allowing you to build your visualizations with a simpler, more intuitive API. To get started, you will need to install the Python package. ```bash -poetry add pyvista trame-vtk +pixi add --pypi pyvista trame-vtk ``` PyVista contains built-in Trame support, but we still need to install the Trame widget for VTK that PyVista will use internally. @@ -319,7 +312,7 @@ from nova.trame.view.layouts import GridLayout, HBoxLayout from pyvista.trame.ui import plotter_ui from trame.widgets import vuetify3 as vuetify -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel ``` * **Class Definition:** The `Plotter` object is PyVista\'s main entry point. It will allow you to add meshes and volumes with the properties you\'ve specified. @@ -347,14 +340,10 @@ class PyVistaView: def create_ui(self) -> None: vuetify.VCardTitle("PyVista") with GridLayout(columns=5, classes="mb-2", valign="center"): - InputField( - v_model="pyvista_config.colormap", column_span=2, type="select" - ) - InputField( - v_model="pyvista_config.opacity", column_span=2, type="select" - ) + InputField(v_model="pyvista_config.colormap", column_span=2, type="select") + InputField(v_model="pyvista_config.opacity", column_span=2, type="select") vuetify.VBtn("Render", click=self.update) - with HBoxLayout(halign="center", height="50vh"): + with HBoxLayout(stretch=True): plotter_ui(self.plotter) def update(self, _: Any = None) -> None: @@ -426,33 +415,30 @@ This is very similar to the Plotly setup. * **Import `PyVistaView`** ```python -from ..views.pyvista import PyVistaView +from .pyvista import PyVistaView ``` * **Update `create_ui`** ```python def create_ui(self) -> None: - with vuetify.VForm(ref="form") as self.f: - with vuetify.VContainer(classes="pa-0", fluid=True): - with vuetify.VCard(): - with vuetify.VWindow(v_model="active_tab"): - with vuetify.VWindowItem(value=1): - PlotlyView(self.view_model) - with vuetify.VWindowItem(value=2): - PyVistaView(self.view_model) + with VBoxLayout(v_show="view_state.active_tab == 0", stretch=True): + PlotlyView(self.view_model) + with VBoxLayout(v_show="view_state.active_tab == 1", stretch=True): + PyVistaView(self.view_model) ``` **9. `src/viz_examples/app/views/tabs_panel.py` (Modify):** ```python def create_ui(self) -> None: - with vuetify.VTabs(v_model=("active_tab", 0), classes="pl-5"): - vuetify.VTab("Plotly", value=1) - vuetify.VTab("PyVista", value=2) + with client.DeepReactive("view_state"): + with vuetify.VTabs(v_model="view_state.active_tab", classes="pl-5"): + vuetify.VTab("Plotly", value=0) + vuetify.VTab("PyVista", value=1) ``` -**10. `src/viz_examples/app/view_models/main.py` (Modify):** +**10. `src/viz_examples/app/view_models/main_view_model.py` (Modify):** * **Import `PyVistaConfig`** @@ -492,13 +478,9 @@ Now, if you run the application you should see the following in the PyVista tab: If you have prior experience with VTK then you may prefer to work with it directly. You can get started with it by installing the Python VTK bindings and the Trame widget for VTK. ```bash -poetry add trame-vtk vtk==9.3.1 +pixi add --pypi trame-vtk vtk ``` -::::::::::::::::::::::::: callout -PyVista isn't compatible with VTK 9.4, yet. If you are not using PyVista, there is no need to specify the VTK version like this. -::::::::::::::::::::::::::::::::: - Once more, let's setup a view and model. **11. `VTKView` View Class (`src/viz_examples/app/views/vtk.py`):** @@ -514,7 +496,7 @@ from trame.widgets import vtk as vtkw from trame.widgets import vuetify3 as vuetify from vtkmodules.vtkRenderingCore import vtkRenderer, vtkRenderWindow, vtkRenderWindowInteractor, vtkVolume -from ..view_models.main import MainViewModel +from ..view_models.main_view_model import MainViewModel ``` * **Initialization:** Here we define the boiler plate for the interactive VTK window. As with PyVista, setting off-screen rendering to on is necessary when working with Trame. @@ -550,8 +532,7 @@ class VTKView: ```python def create_ui(self) -> None: vuetify.VCardTitle("VTK") - - with HBoxLayout(halign="center", height="50vh"): + with HBoxLayout(stretch=True): self.view = vtkw.VtkRemoteView(self.render_window, interactive_ratio=1) def render(self) -> None: @@ -706,29 +687,26 @@ from ..views.vtk import VTKView ```python def create_ui(self) -> None: - with vuetify.VForm(ref="form") as self.f: - with vuetify.VContainer(classes="pa-0", fluid=True): - with vuetify.VCard(): - with vuetify.VWindow(v_model="active_tab"): - with vuetify.VWindowItem(value=1): - PlotlyView(self.view_model) - with vuetify.VWindowItem(value=2): - PyVistaView(self.view_model) - with vuetify.VWindowItem(value=3): - VTKView(self.view_model) + with VBoxLayout(v_show="view_state.active_tab == 0", stretch=True): + PlotlyView(self.view_model) + with VBoxLayout(v_show="view_state.active_tab == 1", stretch=True): + PyVistaView(self.view_model) + with VBoxLayout(v_show="view_state.active_tab == 2", stretch=True): + VTKView(self.view_model) ``` **14. `src/viz_examples/app/views/tabs_panel.py` (Modify):** ```python def create_ui(self) -> None: - with vuetify.VTabs(v_model=("active_tab", 0), classes="pl-5"): - vuetify.VTab("Plotly", value=1) - vuetify.VTab("PyVista", value=2) - vuetify.VTab("VTK", value=3) + with client.DeepReactive("view_state"): + with vuetify.VTabs(v_model="view_state.active_tab", classes="pl-5"): + vuetify.VTab("Plotly", value=0) + vuetify.VTab("PyVista", value=1) + vuetify.VTab("VTK", value=2) ``` -**15. `src/viz_examples/app/view_models/main.py` (Modify):** +**15. `src/viz_examples/app/view_models/main_view_model.py` (Modify):** * **Import `VTKConfig`** @@ -788,7 +766,7 @@ We didn\'t look at `VTKConfig.init_lut` or `VTKConfig.init_pwf` during the tutor * **Trame/PyVista Integration Tutorial**: https://tutorial.pyvista.org/tutorial/09_trame/index.html * **VTK Python Documentation**: https://docs.vtk.org/en/latest/api/python.html * **Trame Tutorial**: https://kitware.github.io/trame/guide/tutorial/ -* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ +* **NDIP documentation**: https://ndip-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - Trame integrates well with Plotly for building 2D charts. diff --git a/episodes/08-Next-Steps.md b/episodes/08-Next-Steps.md index d9b0e1ae..d3e65b21 100755 --- a/episodes/08-Next-Steps.md +++ b/episodes/08-Next-Steps.md @@ -55,7 +55,7 @@ These topics are beyond the scope of this introductory tutorial, but the NDIP te * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ -* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ +* **NDIP documentation**: https://ndip-test.ornl.gov/docs/ By following this tutorial, you've learned how to create and deploy a NOVA application to the NDIP platform. You can now build on this foundation to create more complex scientific applications that can be easily shared with the wider scientific community.