diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index a29aafe41..4ce2e0dbf 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -104,22 +104,6 @@ RUN if [ "$(uname -m)" = "aarch64" ]; then \
&& rm -fr sse2neon \
; fi
-# poetryを経由して開発に利用するPythonを/usr/localにビルドしてインストールする。
-# Python3.10系を使いたいがUbuntu 24.04のパッケージには存在しないので、自前でビルドする必要がある。
-RUN curl --fail --show-error --location --output Python.tar.xz https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tar.xz \
- && test "$(md5sum Python.tar.xz)" = "05148354ce821ba7369e5b7958435400 Python.tar.xz" \
- && mkdir -p python \
- && pushd python \
- && tar Jxf ../Python.tar.xz --strip-components=1 \
- && ./configure \
- && make \
- && make install \
- && popd \
- && rm -fr python \
- && ln -s /usr/local/bin/python3 /usr/local/bin/python
-
-RUN /usr/local/bin/pip3 install numpy requests zstandard
-
# Linux用のbpyはx86_64版だけしかpypiに上がっていないため、それ以外の場合は自前でビルドしてシステムにインストールする。
# https://developer.blender.org/docs/handbook/building_blender/python_module/
# ceresのビルド中にビルドが失敗することがある。失敗した場合はNPROCS=1を付与することで解決した。
@@ -131,6 +115,20 @@ RUN /usr/local/bin/pip3 install numpy requests zstandard
# make[3]: *** Deleting file 'extern/ceres/CMakeFiles/extern_ceres.dir/internal/ceres/generated/schur_eliminator_2_2_3.cc.o'
# 一般的には `make bpy || make NPROCS=1 bpy` という対応をするが、Parallels Desktop上のUbuntu Arm64 22.04だと
# GUI全体を巻き込んでクラッシュしたのでNPROCS=1で決め打ちする。
+RUN if [ "$(uname -m)" != "x86_64" ]; then \
+ curl --fail --show-error --location --output Python.tar.xz https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tar.xz \
+ && test "$(md5sum Python.tar.xz)" = "05148354ce821ba7369e5b7958435400 Python.tar.xz" \
+ && mkdir -p python \
+ && pushd python \
+ && tar Jxf ../Python.tar.xz --strip-components=1 \
+ && ./configure \
+ && make \
+ && make install \
+ && popd \
+ && rm -fr python \
+ && ln -s /usr/local/bin/python3 /usr/local/bin/python \
+ && /usr/local/bin/pip3 install numpy requests zstandard \
+ ; fi
RUN if [ "$(uname -m)" != "x86_64" ]; then \
curl --fail --show-error --location --output blender.tar.xz https://download.blender.org/source/blender-3.6.14.tar.xz \
&& test "$(md5sum blender.tar.xz)" = "e78b7af0307584551759e742dd70970f blender.tar.xz" \
@@ -157,15 +155,11 @@ WORKDIR /home/developer
# できれば "remoteEnv" で設定したいが、現在のJetBrains製品だと反映されないのでここで設定
ENV BLENDER_VRM_LOGGING_LEVEL_DEBUG=yes
ENV BLENDER_VRM_DEVCONTAINER_SPECIAL_WORKAROUNDS=yes
-ENV PATH=/home/developer/.local/bin:$PATH
-# JetBrains製品はXDGのパスが自動で変更され、Poetry関連パスも影響を受けるためvirtualenvなどが予期せず消えたりする。それを防ぐためにパスを固定。
-ENV POETRY_CONFIG_DIR=/home/developer/.config/pypoetry
-ENV POETRY_DATA_DIR=/home/developer/.local/share/pypoetry
-ENV POETRY_CACHE_DIR=/home/developer/.cache/pypoetry
+ENV PATH=/home/developer/.cargo/bin:/home/developer/.local/bin:$PATH
+ENV UV_LINK_MODE=copy
# JetBrains製品は自動で `~/.cache` フォルダを作成するが、それだとフォルダの権限がroot:rootになる。
# poetryなどがエラーになるため、あらかじめ作っておく。
RUN mkdir -p .cache
-RUN curl --fail --show-error --location https://install.python-poetry.org \
- | /usr/local/bin/python3 -
+RUN curl --fail --show-error --location https://astral.sh/uv/install.sh | sh
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 7f0122477..9b6ae9599 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -19,7 +19,7 @@
"-p",
"test_*.py"
],
- "python.defaultInterpreterPath": "./.venv-devcontainer/bin/python",
+ "python.defaultInterpreterPath": "./.venv/bin/python",
"python.testing.pytestEnabled": false,
"python.testing.unittestEnabled": true
},
diff --git a/.gitattributes b/.gitattributes
index a31928b4b..f229789e4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -18,7 +18,7 @@
/extension.patch text eol=lf
go.mod text eol=lf
go.sum text eol=lf
-poetry.lock text eol=lf
+uv.lock text eol=lf
# 昔はGitHubの "Code" -> "Download ZIP" からダウンロードしたファイルをアドオンとして扱う方式を採用していたが、現在は廃止している。
# しかし、その昔の廃止した方式でダウンロードしてしまい、結果アドオンがうまく動かないという報告が多数あがって来てしまった。
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 51ed08d34..2bee712cf 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -192,14 +192,14 @@ jobs:
run: |
git ls-files "*.glsl" | xargs clang-format -i
git diff --exit-code
- - name: Install poetry
+ - name: Install UV
run: |
- curl -sSL https://install.python-poetry.org | python3 -
- echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- - name: Install poetry dependencies
+ curl --fail --show-error --location https://astral.sh/uv/install.sh | sh
+ echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
+ - name: Install UV dependencies
run: |
for _ in $(seq 5); do
- if poetry install; then
+ if uv run python -c 'print("OK")'; then
break
fi
done
@@ -209,7 +209,7 @@ jobs:
git diff --exit-code
- name: Check property type annotations
run: |
- poetry run python tools/property_typing.py > property_typing.log
+ uv run python tools/property_typing.py > property_typing.log
./tools/format.sh
git diff --exit-code
- name: Install hadolint
@@ -223,7 +223,7 @@ jobs:
./tools/format.sh
git diff --exit-code
./tools/lint.sh
- poetry -C src run python -c "import io_scene_vrm; io_scene_vrm.register(); io_scene_vrm.unregister()"
+ uv run python -c "import io_scene_vrm; io_scene_vrm.register(); io_scene_vrm.unregister()"
git reset --hard "$GITHUB_SHA"
- name: Super-Linter
uses: github/super-linter@v6
diff --git a/.gitignore b/.gitignore
index f39793d01..0adffc925 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,7 +35,6 @@
!/src/io_scene_vrm/README.txt
!/src/io_scene_vrm/blender_manifest.toml
!/src/io_scene_vrm/editor/vroid2vrc_lipsync_recipe.json
-!/poetry.lock
!/pyproject.toml
!/tools/*.bat
!/tools/*.dockerfile
@@ -43,6 +42,7 @@
!/tools/*.wsb
!/tests/resources
!/typings/pyproject.toml
+!/uv.lock
*.blend1
*~
@@ -52,7 +52,6 @@ __pycache__/
/.idea/
/.venv/
-/.venv-devcontainer/
/.vscode/
/docs/website/.hugo_build.lock
/docs/website/public/
diff --git a/README.md b/README.md
index fa8e4fae3..9d11ca431 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
[ English / [日本語](#ja_JP) ]
-# VRM Add-on for Blender [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
+# VRM Add-on for Blender [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
VRM Add-on for Blender is an add-on to add VRM-related functions into Blender.
@@ -29,7 +29,7 @@ This add-on adds VRM-related functions to Blender, such as importing and exporti
The source code for development is in the `main` branch. Its `src/io_scene_vrm` folder is a main body of the add-on. For efficient development, you can create a link to that folder in the Blender `addons` folder.
-For more advanced development, such as running tests, please use [Poetry](https://python-poetry.org/).
+For more advanced development, such as running tests, please use [astral.sh/uv](https://docs.astral.sh/uv/).
```text
git checkout main
@@ -92,7 +92,7 @@ BlenderにVRMのインポートやエクスポート、VRM Humanoidの追加やM
開発用のソースコードは`main`ブランチにあります。ブランチ内の `src/io_scene_vrm` フォルダがアドオン本体です。
そのフォルダへのリンクをBlenderの `addons` フォルダ内に作ることで効率的に開発をすることができます。
-テストの実行など、より高度な開発をする場合は[Poetry](https://python-poetry.org/)をご利用ください。
+テストの実行など、より高度な開発をする場合は[astral.sh/uv](https://docs.astral.sh/uv/)をご利用ください。
```text
git checkout main
diff --git a/poetry.lock b/poetry.lock
deleted file mode 100644
index 0969cd82c..000000000
--- a/poetry.lock
+++ /dev/null
@@ -1,788 +0,0 @@
-# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
-
-[[package]]
-name = "bpy"
-version = "3.6.0"
-description = "Blender as a Python module"
-optional = false
-python-versions = "==3.10.*"
-files = [
- {file = "bpy-3.6.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1215d5b972fd71ae1ddcb45108e25b2b3a0d7b89645365bca01341604dcecb5f"},
- {file = "bpy-3.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4bc8bb77cc88143e78c04645351a7791d0e412c84f78a4771e68052ecac7d41c"},
- {file = "bpy-3.6.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ede2c95ace7848f4f5a075a7d8cc3a9e643c335f4596c3c15087d93c7ae5f56a"},
- {file = "bpy-3.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:3b4a9d2add44c4689435ee1e7b18cbb4c2be49149443825d9c6181dfb60b4381"},
-]
-
-[package.dependencies]
-cython = "*"
-numpy = "*"
-requests = "*"
-zstandard = "*"
-
-[[package]]
-name = "certifi"
-version = "2024.7.4"
-description = "Python package for providing Mozilla's CA Bundle."
-optional = false
-python-versions = ">=3.6"
-files = [
- {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"},
- {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"},
-]
-
-[[package]]
-name = "cffi"
-version = "1.17.0"
-description = "Foreign Function Interface for Python calling C code."
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "cffi-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb"},
- {file = "cffi-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a"},
- {file = "cffi-1.17.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42"},
- {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d"},
- {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2"},
- {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab"},
- {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b"},
- {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206"},
- {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa"},
- {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f"},
- {file = "cffi-1.17.0-cp310-cp310-win32.whl", hash = "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc"},
- {file = "cffi-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2"},
- {file = "cffi-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720"},
- {file = "cffi-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9"},
- {file = "cffi-1.17.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb"},
- {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424"},
- {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d"},
- {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8"},
- {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6"},
- {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91"},
- {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8"},
- {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb"},
- {file = "cffi-1.17.0-cp311-cp311-win32.whl", hash = "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9"},
- {file = "cffi-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0"},
- {file = "cffi-1.17.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc"},
- {file = "cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59"},
- {file = "cffi-1.17.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb"},
- {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195"},
- {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e"},
- {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828"},
- {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150"},
- {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a"},
- {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885"},
- {file = "cffi-1.17.0-cp312-cp312-win32.whl", hash = "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492"},
- {file = "cffi-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2"},
- {file = "cffi-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118"},
- {file = "cffi-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7"},
- {file = "cffi-1.17.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377"},
- {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb"},
- {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555"},
- {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204"},
- {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f"},
- {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0"},
- {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4"},
- {file = "cffi-1.17.0-cp313-cp313-win32.whl", hash = "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a"},
- {file = "cffi-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7"},
- {file = "cffi-1.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:964823b2fc77b55355999ade496c54dde161c621cb1f6eac61dc30ed1b63cd4c"},
- {file = "cffi-1.17.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:516a405f174fd3b88829eabfe4bb296ac602d6a0f68e0d64d5ac9456194a5b7e"},
- {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dec6b307ce928e8e112a6bb9921a1cb00a0e14979bf28b98e084a4b8a742bd9b"},
- {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4094c7b464cf0a858e75cd14b03509e84789abf7b79f8537e6a72152109c76e"},
- {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2404f3de742f47cb62d023f0ba7c5a916c9c653d5b368cc966382ae4e57da401"},
- {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa9d43b02a0c681f0bfbc12d476d47b2b2b6a3f9287f11ee42989a268a1833c"},
- {file = "cffi-1.17.0-cp38-cp38-win32.whl", hash = "sha256:0bb15e7acf8ab35ca8b24b90af52c8b391690ef5c4aec3d31f38f0d37d2cc499"},
- {file = "cffi-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:93a7350f6706b31f457c1457d3a3259ff9071a66f312ae64dc024f049055f72c"},
- {file = "cffi-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a2ddbac59dc3716bc79f27906c010406155031a1c801410f1bafff17ea304d2"},
- {file = "cffi-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6327b572f5770293fc062a7ec04160e89741e8552bf1c358d1a23eba68166759"},
- {file = "cffi-1.17.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbc183e7bef690c9abe5ea67b7b60fdbca81aa8da43468287dae7b5c046107d4"},
- {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bdc0f1f610d067c70aa3737ed06e2726fd9d6f7bfee4a351f4c40b6831f4e82"},
- {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d872186c1617d143969defeadac5a904e6e374183e07977eedef9c07c8953bf"},
- {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d46ee4764b88b91f16661a8befc6bfb24806d885e27436fdc292ed7e6f6d058"},
- {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f76a90c345796c01d85e6332e81cab6d70de83b829cf1d9762d0a3da59c7932"},
- {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e60821d312f99d3e1569202518dddf10ae547e799d75aef3bca3a2d9e8ee693"},
- {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:eb09b82377233b902d4c3fbeeb7ad731cdab579c6c6fda1f763cd779139e47c3"},
- {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24658baf6224d8f280e827f0a50c46ad819ec8ba380a42448e24459daf809cf4"},
- {file = "cffi-1.17.0-cp39-cp39-win32.whl", hash = "sha256:0fdacad9e0d9fc23e519efd5ea24a70348305e8d7d85ecbb1a5fa66dc834e7fb"},
- {file = "cffi-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:7cbc78dc018596315d4e7841c8c3a7ae31cc4d638c9b627f87d52e8abaaf2d29"},
- {file = "cffi-1.17.0.tar.gz", hash = "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76"},
-]
-
-[package.dependencies]
-pycparser = "*"
-
-[[package]]
-name = "charset-normalizer"
-version = "3.3.2"
-description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
-optional = false
-python-versions = ">=3.7.0"
-files = [
- {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"},
- {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
-]
-
-[[package]]
-name = "codespell"
-version = "2.3.0"
-description = "Codespell"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "codespell-2.3.0-py3-none-any.whl", hash = "sha256:a9c7cef2501c9cfede2110fd6d4e5e62296920efe9abfb84648df866e47f58d1"},
- {file = "codespell-2.3.0.tar.gz", hash = "sha256:360c7d10f75e65f67bad720af7007e1060a5d395670ec11a7ed1fed9dd17471f"},
-]
-
-[package.extras]
-dev = ["Pygments", "build", "chardet", "pre-commit", "pytest", "pytest-cov", "pytest-dependency", "ruff", "tomli", "twine"]
-hard-encoding-detection = ["chardet"]
-toml = ["tomli"]
-types = ["chardet (>=5.1.0)", "mypy", "pytest", "pytest-cov", "pytest-dependency"]
-
-[[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 = "cython"
-version = "3.0.11"
-description = "The Cython compiler for writing C extensions in the Python language."
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
-files = [
- {file = "Cython-3.0.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:44292aae17524abb4b70a25111fe7dec1a0ad718711d47e3786a211d5408fdaa"},
- {file = "Cython-3.0.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a75d45fbc20651c1b72e4111149fed3b33d270b0a4fb78328c54d965f28d55e1"},
- {file = "Cython-3.0.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d89a82937ce4037f092e9848a7bbcc65bc8e9fc9aef2bb74f5c15e7d21a73080"},
- {file = "Cython-3.0.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a8ea2e7e2d3bc0d8630dafe6c4a5a89485598ff8a61885b74f8ed882597efd5"},
- {file = "Cython-3.0.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cee29846471ce60226b18e931d8c1c66a158db94853e3e79bc2da9bd22345008"},
- {file = "Cython-3.0.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eeb6860b0f4bfa402de8929833fe5370fa34069c7ebacb2d543cb017f21fb891"},
- {file = "Cython-3.0.11-cp310-cp310-win32.whl", hash = "sha256:3699391125ab344d8d25438074d1097d9ba0fb674d0320599316cfe7cf5f002a"},
- {file = "Cython-3.0.11-cp310-cp310-win_amd64.whl", hash = "sha256:d02f4ebe15aac7cdacce1a628e556c1983f26d140fd2e0ac5e0a090e605a2d38"},
- {file = "Cython-3.0.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75ba1c70b6deeaffbac123856b8d35f253da13552207aa969078611c197377e4"},
- {file = "Cython-3.0.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af91497dc098718e634d6ec8f91b182aea6bb3690f333fc9a7777bc70abe8810"},
- {file = "Cython-3.0.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3999fb52d3328a6a5e8c63122b0a8bd110dfcdb98dda585a3def1426b991cba7"},
- {file = "Cython-3.0.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d566a4e09b8979be8ab9f843bac0dd216c81f5e5f45661a9b25cd162ed80508c"},
- {file = "Cython-3.0.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:46aec30f217bdf096175a1a639203d44ac73a36fe7fa3dd06bd012e8f39eca0f"},
- {file = "Cython-3.0.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ddd1fe25af330f4e003421636746a546474e4ccd8f239f55d2898d80983d20ed"},
- {file = "Cython-3.0.11-cp311-cp311-win32.whl", hash = "sha256:221de0b48bf387f209003508e602ce839a80463522fc6f583ad3c8d5c890d2c1"},
- {file = "Cython-3.0.11-cp311-cp311-win_amd64.whl", hash = "sha256:3ff8ac1f0ecd4f505db4ab051e58e4531f5d098b6ac03b91c3b902e8d10c67b3"},
- {file = "Cython-3.0.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:11996c40c32abf843ba652a6d53cb15944c88d91f91fc4e6f0028f5df8a8f8a1"},
- {file = "Cython-3.0.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63f2c892e9f9c1698ecfee78205541623eb31cd3a1b682668be7ac12de94aa8e"},
- {file = "Cython-3.0.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b14c24f1dc4c4c9d997cca8d1b7fb01187a218aab932328247dcf5694a10102"},
- {file = "Cython-3.0.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c8eed5c015685106db15dd103fd040948ddca9197b1dd02222711815ea782a27"},
- {file = "Cython-3.0.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780f89c95b8aec1e403005b3bf2f0a2afa060b3eba168c86830f079339adad89"},
- {file = "Cython-3.0.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a690f2ff460682ea985e8d38ec541be97e0977fa0544aadc21efc116ff8d7579"},
- {file = "Cython-3.0.11-cp312-cp312-win32.whl", hash = "sha256:2252b5aa57621848e310fe7fa6f7dce5f73aa452884a183d201a8bcebfa05a00"},
- {file = "Cython-3.0.11-cp312-cp312-win_amd64.whl", hash = "sha256:da394654c6da15c1d37f0b7ec5afd325c69a15ceafee2afba14b67a5df8a82c8"},
- {file = "Cython-3.0.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4341d6a64d47112884e0bcf31e6c075268220ee4cd02223047182d4dda94d637"},
- {file = "Cython-3.0.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:351955559b37e6c98b48aecb178894c311be9d731b297782f2b78d111f0c9015"},
- {file = "Cython-3.0.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c02361af9bfa10ff1ccf967fc75159e56b1c8093caf565739ed77a559c1f29f"},
- {file = "Cython-3.0.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6823aef13669a32caf18bbb036de56065c485d9f558551a9b55061acf9c4c27f"},
- {file = "Cython-3.0.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6fb68cef33684f8cc97987bee6ae919eee7e18ee6a3ad7ed9516b8386ef95ae6"},
- {file = "Cython-3.0.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:790263b74432cb997740d73665f4d8d00b9cd1cecbdd981d93591ddf993d4f12"},
- {file = "Cython-3.0.11-cp313-cp313-win32.whl", hash = "sha256:e6dd395d1a704e34a9fac00b25f0036dce6654c6b898be6f872ac2bb4f2eda48"},
- {file = "Cython-3.0.11-cp313-cp313-win_amd64.whl", hash = "sha256:52186101d51497519e99b60d955fd5cb3bf747c67f00d742e70ab913f1e42d31"},
- {file = "Cython-3.0.11-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c69d5cad51388522b98a99b4be1b77316de85b0c0523fa865e0ea58bbb622e0a"},
- {file = "Cython-3.0.11-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8acdc87e9009110adbceb7569765eb0980129055cc954c62f99fe9f094c9505e"},
- {file = "Cython-3.0.11-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dd47865f4c0a224da73acf83d113f93488d17624e2457dce1753acdfb1cc40c"},
- {file = "Cython-3.0.11-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:301bde949b4f312a1c70e214b0c3bc51a3f955d466010d2f68eb042df36447b0"},
- {file = "Cython-3.0.11-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:f3953d2f504176f929862e5579cfc421860c33e9707f585d70d24e1096accdf7"},
- {file = "Cython-3.0.11-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:3f2b062f6df67e8a56c75e500ca330cf62c85ac26dd7fd006f07ef0f83aebfa3"},
- {file = "Cython-3.0.11-cp36-cp36m-win32.whl", hash = "sha256:c3d68751668c66c7a140b6023dba5d5d507f72063407bb609d3a5b0f3b8dfbe4"},
- {file = "Cython-3.0.11-cp36-cp36m-win_amd64.whl", hash = "sha256:bcd29945fafd12484cf37b1d84f12f0e7a33ba3eac5836531c6bd5283a6b3a0c"},
- {file = "Cython-3.0.11-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4e9a8d92978b15a0c7ca7f98447c6c578dc8923a0941d9d172d0b077cb69c576"},
- {file = "Cython-3.0.11-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:421017466e9260aca86823974e26e158e6358622f27c0f4da9c682f3b6d2e624"},
- {file = "Cython-3.0.11-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d80a7232938d523c1a12f6b1794ab5efb1ae77ad3fde79de4bb558d8ab261619"},
- {file = "Cython-3.0.11-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfa550d9ae39e827a6e7198076df763571cb53397084974a6948af558355e028"},
- {file = "Cython-3.0.11-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:aedceb6090a60854b31bf9571dc55f642a3fa5b91f11b62bcef167c52cac93d8"},
- {file = "Cython-3.0.11-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:473d35681d9f93ce380e6a7c8feb2d65fc6333bd7117fbc62989e404e241dbb0"},
- {file = "Cython-3.0.11-cp37-cp37m-win32.whl", hash = "sha256:3379c6521e25aa6cd7703bb7d635eaca75c0f9c7f1b0fdd6dd15a03bfac5f68d"},
- {file = "Cython-3.0.11-cp37-cp37m-win_amd64.whl", hash = "sha256:14701edb3107a5d9305a82d9d646c4f28bfecbba74b26cc1ee2f4be08f602057"},
- {file = "Cython-3.0.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:598699165cfa7c6d69513ee1bffc9e1fdd63b00b624409174c388538aa217975"},
- {file = "Cython-3.0.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0583076c4152b417a3a8a5d81ec02f58c09b67d3f22d5857e64c8734ceada8c"},
- {file = "Cython-3.0.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52205347e916dd65d2400b977df4c697390c3aae0e96275a438cc4ae85dadc08"},
- {file = "Cython-3.0.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:989899a85f0d9a57cebb508bd1f194cb52f0e3f7e22ac259f33d148d6422375c"},
- {file = "Cython-3.0.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:53b6072a89049a991d07f42060f65398448365c59c9cb515c5925b9bdc9d71f8"},
- {file = "Cython-3.0.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f988f7f8164a6079c705c39e2d75dbe9967e3dacafe041420d9af7b9ee424162"},
- {file = "Cython-3.0.11-cp38-cp38-win32.whl", hash = "sha256:a1f4cbc70f6b7f0c939522118820e708e0d490edca42d852fa8004ec16780be2"},
- {file = "Cython-3.0.11-cp38-cp38-win_amd64.whl", hash = "sha256:187685e25e037320cae513b8cc4bf9dbc4465c037051aede509cbbf207524de2"},
- {file = "Cython-3.0.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0fc6fdd6fa493be7bdda22355689d5446ac944cd71286f6f44a14b0d67ee3ff5"},
- {file = "Cython-3.0.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b1d1f6f94cc5d42a4591f6d60d616786b9cd15576b112bc92a23131fcf38020"},
- {file = "Cython-3.0.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4ab2b92a3e6ed552adbe9350fd2ef3aa0cc7853cf91569f9dbed0c0699bbeab"},
- {file = "Cython-3.0.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:104d6f2f2c827ccc5e9e42c80ef6773a6aa94752fe6bc5b24a4eab4306fb7f07"},
- {file = "Cython-3.0.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:13062ce556a1e98d2821f7a0253b50569fdc98c36efd6653a65b21e3f8bbbf5f"},
- {file = "Cython-3.0.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:525d09b3405534763fa73bd78c8e51ac8264036ce4c16d37dfd1555a7da6d3a7"},
- {file = "Cython-3.0.11-cp39-cp39-win32.whl", hash = "sha256:b8c7e514075696ca0f60c337f9e416e61d7ccbc1aa879a56c39181ed90ec3059"},
- {file = "Cython-3.0.11-cp39-cp39-win_amd64.whl", hash = "sha256:8948802e1f5677a673ea5d22a1e7e273ca5f83e7a452786ca286eebf97cee67c"},
- {file = "Cython-3.0.11-py2.py3-none-any.whl", hash = "sha256:0e25f6425ad4a700d7f77cd468da9161e63658837d1bc34861a9861a4ef6346d"},
- {file = "cython-3.0.11.tar.gz", hash = "sha256:7146dd2af8682b4ca61331851e6aebce9fe5158e75300343f80c07ca80b1faff"},
-]
-
-[[package]]
-name = "dulwich"
-version = "0.22.1"
-description = "Python Git Library"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "dulwich-0.22.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:892914dc2e80403d16e59a3b440044f6092fde5ffd4ec1fdf36d6ff20a8e624d"},
- {file = "dulwich-0.22.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b03092399f0f5d3e112405b890128afdb9e1f203eafb812f5d9105b0f5fac9d4"},
- {file = "dulwich-0.22.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a2c790517ed884bc1b1590806222ab44989eeb7e7f14dfa915561c7ee3b9ac73"},
- {file = "dulwich-0.22.1-cp310-cp310-win32.whl", hash = "sha256:524d3497a86f79959c9c1d729715d60d8171ed3f71621d45afb4faee5a47e8a1"},
- {file = "dulwich-0.22.1-cp310-cp310-win_amd64.whl", hash = "sha256:d3146843b972f744aed551e8ac9fac5714baa864393e480586d467b7b4488426"},
- {file = "dulwich-0.22.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:82f26e592e9a36ab33bcdb419c7d53320e26c85dfc254cdb84f5f561a2fcaabf"},
- {file = "dulwich-0.22.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e90b8a2f24149c5803b733a24f1a016a2943b1f5a9ab2360db545e4638354c35"},
- {file = "dulwich-0.22.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b069639757b2f287f9cd0daf6765b536558c5e28263bbbb28e3d1925bce75400"},
- {file = "dulwich-0.22.1-cp311-cp311-win32.whl", hash = "sha256:3ae006498fea11515027a417e6e68b82e1c195d3516188ba2cc08210e3022d14"},
- {file = "dulwich-0.22.1-cp311-cp311-win_amd64.whl", hash = "sha256:a18d1392eabd02f337dcba23d723a4dcca87274ce8693cf88e6320f38bc3fdcd"},
- {file = "dulwich-0.22.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:12482e318895da9acabea7c0cc70b35d36833e7cb2def511ab3a63617f5c1af3"},
- {file = "dulwich-0.22.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dc42afedc8cda4f2fd15a06d2e9e41281074a02cdf31bb2e0dde4d80766a408"},
- {file = "dulwich-0.22.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3c7774232a2c9b195bde4fb72ad71455e877a9e4e9c0b17a57b1d9bd478838c"},
- {file = "dulwich-0.22.1-cp312-cp312-win32.whl", hash = "sha256:41dfc52db29a06fe23a5029abc3bc13503e28233b1c3a9614bc1e5c4d6adc1ce"},
- {file = "dulwich-0.22.1-cp312-cp312-win_amd64.whl", hash = "sha256:9d19f04ecd4628a0e4587b4c4e98e040b87924c1362ae5aa27420435f05d5dd8"},
- {file = "dulwich-0.22.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0d72a88c7af8fafa14c8743e8923c8d46bd0b850a0b7f5e34eb49201f1ead88e"},
- {file = "dulwich-0.22.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e36c8a3bb09db5730b3d5014d087bce977e878825cdd7ba8285abcd81c43bc0"},
- {file = "dulwich-0.22.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd51e77ff1b4ca08bc9b09b85646a3e77f275827b7b30180d76d769ce608e64d"},
- {file = "dulwich-0.22.1-cp37-cp37m-win32.whl", hash = "sha256:739ef91aeb13fa2aa187d0efd46d0ac168301f54a6ef748565c42876b4b3ce71"},
- {file = "dulwich-0.22.1-cp37-cp37m-win_amd64.whl", hash = "sha256:91966b7b48ec939e5083b03c9154fc450508056f01650ecb58724095307427f5"},
- {file = "dulwich-0.22.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:86be1e283d78cc3f7daee1dcd0254122160cde71ca8c5348315156045f8ac2bb"},
- {file = "dulwich-0.22.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926d671654a2f8cfa0b2fcb6b0c46833af95b5265d27a5c56c49c5a10f3ff3ba"},
- {file = "dulwich-0.22.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:467ff87fc4c61a23424b32acd952476ba17e7f7eeb8090e5957f68129784a35f"},
- {file = "dulwich-0.22.1-cp38-cp38-win32.whl", hash = "sha256:f9e10678fe0692c5167553981d97cbe342ed055c49016aef10da336e2962b1f2"},
- {file = "dulwich-0.22.1-cp38-cp38-win_amd64.whl", hash = "sha256:6386165c64ba5f61c416301f7f32bb899f8200ca575d76888697a42fda8a92d2"},
- {file = "dulwich-0.22.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:84db8aef08df6431b017cc3abe57b3d6885fd7436eec8d715603c309353b233c"},
- {file = "dulwich-0.22.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:155124219e6ce4b116d30ed1b9cc63c88021966b29ce761d3ce3caba064f9a13"},
- {file = "dulwich-0.22.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7579429e89deac6659b4ea70eb3de9063bb40508fd4a8a020fa67b02e0b59f4f"},
- {file = "dulwich-0.22.1-cp39-cp39-win32.whl", hash = "sha256:454d073e628043dde4f9bd34517736c1889dbe6417099bbae2119873b8d4d5da"},
- {file = "dulwich-0.22.1-cp39-cp39-win_amd64.whl", hash = "sha256:e1b51d26108a832f151da8856a93676cc1a5cd8dd0bc20f06f4aee5774a7f0f9"},
- {file = "dulwich-0.22.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4c509e8172b9438536946097768413f297229b03eff064e4e06749cf5c28df78"},
- {file = "dulwich-0.22.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64eebe1d709539d6e80440fa1185f1eeb260d53bcb6435b1f753b4ce90a65e82"},
- {file = "dulwich-0.22.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52a8ddd1d9b5681de216a7af718720f5202d3c093ecc10dd4dfac6d25da605a6"},
- {file = "dulwich-0.22.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7244b796dd7e191753b822ac0ca871a4b9139b0b850770ac5bd347d5f8c76768"},
- {file = "dulwich-0.22.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e7798e842ec506d25f21e825259b70109325ac1c9b43c2e287aad7559455951b"},
- {file = "dulwich-0.22.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9fcf7c5cf1e9d0bcc643672f81bf43ec81f6495b99809649f5bfcdff633ab0"},
- {file = "dulwich-0.22.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e346c1b86c5e5f175ca8f87f3873eea8b2e0eeb5d52033b475cf85641cb200c2"},
- {file = "dulwich-0.22.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:b2054e1f2c7041857ce129443bde23298ca37592ce82f0fb5ed5704d5f3708dd"},
- {file = "dulwich-0.22.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3ad3462d070b678fe61d3bdd7c6ac3fdbd25cca66f32b6edf589dd88fff251d2"},
- {file = "dulwich-0.22.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc6575476539c0b4924abab3896fc76be2f413d5baa6b083c4dfc4abc59329e"},
- {file = "dulwich-0.22.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3de7a2eba26ff13a79670f78f73fc86fb8c87100508119f3b6bd61451bfdd4bf"},
- {file = "dulwich-0.22.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b2c3186cf76d598a9d42b35e09ef35d499118b4197624ba5bba1b3a39ac6a75f"},
- {file = "dulwich-0.22.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3a366cdba24b8df31ad70b82bae55baa696c453678c1346da8390396a1d5cce4"},
- {file = "dulwich-0.22.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fb61891b2675664dc89d486eb5199e3659179ae04fc0a863ffc7e16b782b624"},
- {file = "dulwich-0.22.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ea4c5feedd35e8bde175a9ab91ef6705c3cef5ee209eeb2f67dd0b59ff1825f"},
- {file = "dulwich-0.22.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:20f61f6dc0b075ca6459acbfb9527ee0e1ee02dccbed126dc492600bb7310d86"},
- {file = "dulwich-0.22.1.tar.gz", hash = "sha256:e36d85967cfbf25da1c7bc3d6921adc5baa976969d926aaf1582bd5fd7e94758"},
-]
-
-[package.dependencies]
-urllib3 = ">=1.25"
-
-[package.extras]
-fastimport = ["fastimport"]
-https = ["urllib3 (>=1.24.1)"]
-paramiko = ["paramiko"]
-pgp = ["gpg"]
-
-[[package]]
-name = "idna"
-version = "3.7"
-description = "Internationalized Domain Names in Applications (IDNA)"
-optional = false
-python-versions = ">=3.5"
-files = [
- {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"},
- {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"},
-]
-
-[[package]]
-name = "mypy"
-version = "1.11.1"
-description = "Optional static typing for Python"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "mypy-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a32fc80b63de4b5b3e65f4be82b4cfa362a46702672aa6a0f443b4689af7008c"},
- {file = "mypy-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c1952f5ea8a5a959b05ed5f16452fddadbaae48b5d39235ab4c3fc444d5fd411"},
- {file = "mypy-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1e30dc3bfa4e157e53c1d17a0dad20f89dc433393e7702b813c10e200843b03"},
- {file = "mypy-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c63350af88f43a66d3dfeeeb8d77af34a4f07d760b9eb3a8697f0386c7590b4"},
- {file = "mypy-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:a831671bad47186603872a3abc19634f3011d7f83b083762c942442d51c58d58"},
- {file = "mypy-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7b6343d338390bb946d449677726edf60102a1c96079b4f002dedff375953fc5"},
- {file = "mypy-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4fe9f4e5e521b458d8feb52547f4bade7ef8c93238dfb5bbc790d9ff2d770ca"},
- {file = "mypy-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:886c9dbecc87b9516eff294541bf7f3655722bf22bb898ee06985cd7269898de"},
- {file = "mypy-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fca4a60e1dd9fd0193ae0067eaeeb962f2d79e0d9f0f66223a0682f26ffcc809"},
- {file = "mypy-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0bd53faf56de9643336aeea1c925012837432b5faf1701ccca7fde70166ccf72"},
- {file = "mypy-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f39918a50f74dc5969807dcfaecafa804fa7f90c9d60506835036cc1bc891dc8"},
- {file = "mypy-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bc71d1fb27a428139dd78621953effe0d208aed9857cb08d002280b0422003a"},
- {file = "mypy-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b868d3bcff720dd7217c383474008ddabaf048fad8d78ed948bb4b624870a417"},
- {file = "mypy-1.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a707ec1527ffcdd1c784d0924bf5cb15cd7f22683b919668a04d2b9c34549d2e"},
- {file = "mypy-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:64f4a90e3ea07f590c5bcf9029035cf0efeae5ba8be511a8caada1a4893f5525"},
- {file = "mypy-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:749fd3213916f1751fff995fccf20c6195cae941dc968f3aaadf9bb4e430e5a2"},
- {file = "mypy-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b639dce63a0b19085213ec5fdd8cffd1d81988f47a2dec7100e93564f3e8fb3b"},
- {file = "mypy-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c956b49c5d865394d62941b109728c5c596a415e9c5b2be663dd26a1ff07bc0"},
- {file = "mypy-1.11.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45df906e8b6804ef4b666af29a87ad9f5921aad091c79cc38e12198e220beabd"},
- {file = "mypy-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:d44be7551689d9d47b7abc27c71257adfdb53f03880841a5db15ddb22dc63edb"},
- {file = "mypy-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2684d3f693073ab89d76da8e3921883019ea8a3ec20fa5d8ecca6a2db4c54bbe"},
- {file = "mypy-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:79c07eb282cb457473add5052b63925e5cc97dfab9812ee65a7c7ab5e3cb551c"},
- {file = "mypy-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11965c2f571ded6239977b14deebd3f4c3abd9a92398712d6da3a772974fad69"},
- {file = "mypy-1.11.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a2b43895a0f8154df6519706d9bca8280cda52d3d9d1514b2d9c3e26792a0b74"},
- {file = "mypy-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:1a81cf05975fd61aec5ae16501a091cfb9f605dc3e3c878c0da32f250b74760b"},
- {file = "mypy-1.11.1-py3-none-any.whl", hash = "sha256:0624bdb940255d2dd24e829d99a13cfeb72e4e9031f9492148f410ed30bcab54"},
- {file = "mypy-1.11.1.tar.gz", hash = "sha256:f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08"},
-]
-
-[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)"]
-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 = "numpy"
-version = "2.0.1"
-description = "Fundamental package for array computing in Python"
-optional = false
-python-versions = ">=3.9"
-files = [
- {file = "numpy-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fbb536eac80e27a2793ffd787895242b7f18ef792563d742c2d673bfcb75134"},
- {file = "numpy-2.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:69ff563d43c69b1baba77af455dd0a839df8d25e8590e79c90fcbe1499ebde42"},
- {file = "numpy-2.0.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:1b902ce0e0a5bb7704556a217c4f63a7974f8f43e090aff03fcf262e0b135e02"},
- {file = "numpy-2.0.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:f1659887361a7151f89e79b276ed8dff3d75877df906328f14d8bb40bb4f5101"},
- {file = "numpy-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4658c398d65d1b25e1760de3157011a80375da861709abd7cef3bad65d6543f9"},
- {file = "numpy-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4127d4303b9ac9f94ca0441138acead39928938660ca58329fe156f84b9f3015"},
- {file = "numpy-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e5eeca8067ad04bc8a2a8731183d51d7cbaac66d86085d5f4766ee6bf19c7f87"},
- {file = "numpy-2.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9adbd9bb520c866e1bfd7e10e1880a1f7749f1f6e5017686a5fbb9b72cf69f82"},
- {file = "numpy-2.0.1-cp310-cp310-win32.whl", hash = "sha256:7b9853803278db3bdcc6cd5beca37815b133e9e77ff3d4733c247414e78eb8d1"},
- {file = "numpy-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:81b0893a39bc5b865b8bf89e9ad7807e16717f19868e9d234bdaf9b1f1393868"},
- {file = "numpy-2.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75b4e316c5902d8163ef9d423b1c3f2f6252226d1aa5cd8a0a03a7d01ffc6268"},
- {file = "numpy-2.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6e4eeb6eb2fced786e32e6d8df9e755ce5be920d17f7ce00bc38fcde8ccdbf9e"},
- {file = "numpy-2.0.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a1e01dcaab205fbece13c1410253a9eea1b1c9b61d237b6fa59bcc46e8e89343"},
- {file = "numpy-2.0.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:a8fc2de81ad835d999113ddf87d1ea2b0f4704cbd947c948d2f5513deafe5a7b"},
- {file = "numpy-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a3d94942c331dd4e0e1147f7a8699a4aa47dffc11bf8a1523c12af8b2e91bbe"},
- {file = "numpy-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15eb4eca47d36ec3f78cde0a3a2ee24cf05ca7396ef808dda2c0ddad7c2bde67"},
- {file = "numpy-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b83e16a5511d1b1f8a88cbabb1a6f6a499f82c062a4251892d9ad5d609863fb7"},
- {file = "numpy-2.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f87fec1f9bc1efd23f4227becff04bd0e979e23ca50cc92ec88b38489db3b55"},
- {file = "numpy-2.0.1-cp311-cp311-win32.whl", hash = "sha256:36d3a9405fd7c511804dc56fc32974fa5533bdeb3cd1604d6b8ff1d292b819c4"},
- {file = "numpy-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:08458fbf403bff5e2b45f08eda195d4b0c9b35682311da5a5a0a0925b11b9bd8"},
- {file = "numpy-2.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6bf4e6f4a2a2e26655717a1983ef6324f2664d7011f6ef7482e8c0b3d51e82ac"},
- {file = "numpy-2.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6fddc5fe258d3328cd8e3d7d3e02234c5d70e01ebe377a6ab92adb14039cb4"},
- {file = "numpy-2.0.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5daab361be6ddeb299a918a7c0864fa8618af66019138263247af405018b04e1"},
- {file = "numpy-2.0.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:ea2326a4dca88e4a274ba3a4405eb6c6467d3ffbd8c7d38632502eaae3820587"},
- {file = "numpy-2.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:529af13c5f4b7a932fb0e1911d3a75da204eff023ee5e0e79c1751564221a5c8"},
- {file = "numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6790654cb13eab303d8402354fabd47472b24635700f631f041bd0b65e37298a"},
- {file = "numpy-2.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cbab9fc9c391700e3e1287666dfd82d8666d10e69a6c4a09ab97574c0b7ee0a7"},
- {file = "numpy-2.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:99d0d92a5e3613c33a5f01db206a33f8fdf3d71f2912b0de1739894668b7a93b"},
- {file = "numpy-2.0.1-cp312-cp312-win32.whl", hash = "sha256:173a00b9995f73b79eb0191129f2455f1e34c203f559dd118636858cc452a1bf"},
- {file = "numpy-2.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:bb2124fdc6e62baae159ebcfa368708867eb56806804d005860b6007388df171"},
- {file = "numpy-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bfc085b28d62ff4009364e7ca34b80a9a080cbd97c2c0630bb5f7f770dae9414"},
- {file = "numpy-2.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8fae4ebbf95a179c1156fab0b142b74e4ba4204c87bde8d3d8b6f9c34c5825ef"},
- {file = "numpy-2.0.1-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:72dc22e9ec8f6eaa206deb1b1355eb2e253899d7347f5e2fae5f0af613741d06"},
- {file = "numpy-2.0.1-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:ec87f5f8aca726117a1c9b7083e7656a9d0d606eec7299cc067bb83d26f16e0c"},
- {file = "numpy-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f682ea61a88479d9498bf2091fdcd722b090724b08b31d63e022adc063bad59"},
- {file = "numpy-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8efc84f01c1cd7e34b3fb310183e72fcdf55293ee736d679b6d35b35d80bba26"},
- {file = "numpy-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3fdabe3e2a52bc4eff8dc7a5044342f8bd9f11ef0934fcd3289a788c0eb10018"},
- {file = "numpy-2.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:24a0e1befbfa14615b49ba9659d3d8818a0f4d8a1c5822af8696706fbda7310c"},
- {file = "numpy-2.0.1-cp39-cp39-win32.whl", hash = "sha256:f9cf5ea551aec449206954b075db819f52adc1638d46a6738253a712d553c7b4"},
- {file = "numpy-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:e9e81fa9017eaa416c056e5d9e71be93d05e2c3c2ab308d23307a8bc4443c368"},
- {file = "numpy-2.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:61728fba1e464f789b11deb78a57805c70b2ed02343560456190d0501ba37b0f"},
- {file = "numpy-2.0.1-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:12f5d865d60fb9734e60a60f1d5afa6d962d8d4467c120a1c0cda6eb2964437d"},
- {file = "numpy-2.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eacf3291e263d5a67d8c1a581a8ebbcfd6447204ef58828caf69a5e3e8c75990"},
- {file = "numpy-2.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2c3a346ae20cfd80b6cfd3e60dc179963ef2ea58da5ec074fd3d9e7a1e7ba97f"},
- {file = "numpy-2.0.1.tar.gz", hash = "sha256:485b87235796410c3519a699cfe1faab097e509e90ebb05dcd098db2ae87e7b3"},
-]
-
-[[package]]
-name = "pycparser"
-version = "2.22"
-description = "C parser in Python"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
- {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
-]
-
-[[package]]
-name = "pyright"
-version = "1.1.377"
-description = "Command line wrapper for pyright"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "pyright-1.1.377-py3-none-any.whl", hash = "sha256:af0dd2b6b636c383a6569a083f8c5a8748ae4dcde5df7914b3f3f267e14dd162"},
- {file = "pyright-1.1.377.tar.gz", hash = "sha256:aabc30fedce0ded34baa0c49b24f10e68f4bfc8f68ae7f3d175c4b0f256b4fcf"},
-]
-
-[package.dependencies]
-nodeenv = ">=1.6.0"
-
-[package.extras]
-all = ["twine (>=3.4.1)"]
-dev = ["twine (>=3.4.1)"]
-
-[[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.6.1"
-description = "An extremely fast Python linter and code formatter, written in Rust."
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "ruff-0.6.1-py3-none-linux_armv6l.whl", hash = "sha256:b4bb7de6a24169dc023f992718a9417380301b0c2da0fe85919f47264fb8add9"},
- {file = "ruff-0.6.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:45efaae53b360c81043e311cdec8a7696420b3d3e8935202c2846e7a97d4edae"},
- {file = "ruff-0.6.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:bc60c7d71b732c8fa73cf995efc0c836a2fd8b9810e115be8babb24ae87e0850"},
- {file = "ruff-0.6.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c7477c3b9da822e2db0b4e0b59e61b8a23e87886e727b327e7dcaf06213c5cf"},
- {file = "ruff-0.6.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a0af7ab3f86e3dc9f157a928e08e26c4b40707d0612b01cd577cc84b8905cc9"},
- {file = "ruff-0.6.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:392688dbb50fecf1bf7126731c90c11a9df1c3a4cdc3f481b53e851da5634fa5"},
- {file = "ruff-0.6.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5278d3e095ccc8c30430bcc9bc550f778790acc211865520f3041910a28d0024"},
- {file = "ruff-0.6.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fe6d5f65d6f276ee7a0fc50a0cecaccb362d30ef98a110f99cac1c7872df2f18"},
- {file = "ruff-0.6.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2e0dd11e2ae553ee5c92a81731d88a9883af8db7408db47fc81887c1f8b672e"},
- {file = "ruff-0.6.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d812615525a34ecfc07fd93f906ef5b93656be01dfae9a819e31caa6cfe758a1"},
- {file = "ruff-0.6.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:faaa4060f4064c3b7aaaa27328080c932fa142786f8142aff095b42b6a2eb631"},
- {file = "ruff-0.6.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:99d7ae0df47c62729d58765c593ea54c2546d5de213f2af2a19442d50a10cec9"},
- {file = "ruff-0.6.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9eb18dfd7b613eec000e3738b3f0e4398bf0153cb80bfa3e351b3c1c2f6d7b15"},
- {file = "ruff-0.6.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:c62bc04c6723a81e25e71715aa59489f15034d69bf641df88cb38bdc32fd1dbb"},
- {file = "ruff-0.6.1-py3-none-win32.whl", hash = "sha256:9fb4c4e8b83f19c9477a8745e56d2eeef07a7ff50b68a6998f7d9e2e3887bdc4"},
- {file = "ruff-0.6.1-py3-none-win_amd64.whl", hash = "sha256:c2ebfc8f51ef4aca05dad4552bbcf6fe8d1f75b2f6af546cc47cc1c1ca916b5b"},
- {file = "ruff-0.6.1-py3-none-win_arm64.whl", hash = "sha256:3bc81074971b0ffad1bd0c52284b22411f02a11a012082a76ac6da153536e014"},
- {file = "ruff-0.6.1.tar.gz", hash = "sha256:af3ffd8c6563acb8848d33cd19a69b9bfe943667f0419ca083f8ebe4224a3436"},
-]
-
-[[package]]
-name = "starry-bpy-type-stubs"
-version = "1.0.0"
-description = ""
-optional = false
-python-versions = "*"
-files = []
-develop = false
-
-[package.source]
-type = "directory"
-url = "typings"
-
-[[package]]
-name = "tomli"
-version = "2.0.1"
-description = "A lil' TOML parser"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
- {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
-]
-
-[[package]]
-name = "tqdm"
-version = "4.66.5"
-description = "Fast, Extensible Progress Meter"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "tqdm-4.66.5-py3-none-any.whl", hash = "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd"},
- {file = "tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad"},
-]
-
-[package.dependencies]
-colorama = {version = "*", markers = "platform_system == \"Windows\""}
-
-[package.extras]
-dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"]
-notebook = ["ipywidgets (>=6)"]
-slack = ["slack-sdk"]
-telegram = ["requests"]
-
-[[package]]
-name = "types-tqdm"
-version = "4.66.0.20240417"
-description = "Typing stubs for tqdm"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "types-tqdm-4.66.0.20240417.tar.gz", hash = "sha256:16dce9ef522ea8d40e4f5b8d84dd8a1166eefc13ceee7a7e158bf0f1a1421a31"},
- {file = "types_tqdm-4.66.0.20240417-py3-none-any.whl", hash = "sha256:248aef1f9986b7b8c2c12b3cb4399fc17dba0a29e7e3f3f9cd704babb879383d"},
-]
-
-[[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.2.2"
-description = "HTTP library with thread-safe connection pooling, file post, and more."
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"},
- {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"},
-]
-
-[package.extras]
-brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
-h2 = ["h2 (>=4,<5)"]
-socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
-zstd = ["zstandard (>=0.18.0)"]
-
-[[package]]
-name = "zstandard"
-version = "0.23.0"
-description = "Zstandard bindings for Python"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "zstandard-0.23.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bf0a05b6059c0528477fba9054d09179beb63744355cab9f38059548fedd46a9"},
- {file = "zstandard-0.23.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fc9ca1c9718cb3b06634c7c8dec57d24e9438b2aa9a0f02b8bb36bf478538880"},
- {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77da4c6bfa20dd5ea25cbf12c76f181a8e8cd7ea231c673828d0386b1740b8dc"},
- {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2170c7e0367dde86a2647ed5b6f57394ea7f53545746104c6b09fc1f4223573"},
- {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c16842b846a8d2a145223f520b7e18b57c8f476924bda92aeee3a88d11cfc391"},
- {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:157e89ceb4054029a289fb504c98c6a9fe8010f1680de0201b3eb5dc20aa6d9e"},
- {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:203d236f4c94cd8379d1ea61db2fce20730b4c38d7f1c34506a31b34edc87bdd"},
- {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dc5d1a49d3f8262be192589a4b72f0d03b72dcf46c51ad5852a4fdc67be7b9e4"},
- {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:752bf8a74412b9892f4e5b58f2f890a039f57037f52c89a740757ebd807f33ea"},
- {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80080816b4f52a9d886e67f1f96912891074903238fe54f2de8b786f86baded2"},
- {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:84433dddea68571a6d6bd4fbf8ff398236031149116a7fff6f777ff95cad3df9"},
- {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ab19a2d91963ed9e42b4e8d77cd847ae8381576585bad79dbd0a8837a9f6620a"},
- {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:59556bf80a7094d0cfb9f5e50bb2db27fefb75d5138bb16fb052b61b0e0eeeb0"},
- {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:27d3ef2252d2e62476389ca8f9b0cf2bbafb082a3b6bfe9d90cbcbb5529ecf7c"},
- {file = "zstandard-0.23.0-cp310-cp310-win32.whl", hash = "sha256:5d41d5e025f1e0bccae4928981e71b2334c60f580bdc8345f824e7c0a4c2a813"},
- {file = "zstandard-0.23.0-cp310-cp310-win_amd64.whl", hash = "sha256:519fbf169dfac1222a76ba8861ef4ac7f0530c35dd79ba5727014613f91613d4"},
- {file = "zstandard-0.23.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:34895a41273ad33347b2fc70e1bff4240556de3c46c6ea430a7ed91f9042aa4e"},
- {file = "zstandard-0.23.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:77ea385f7dd5b5676d7fd943292ffa18fbf5c72ba98f7d09fc1fb9e819b34c23"},
- {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:983b6efd649723474f29ed42e1467f90a35a74793437d0bc64a5bf482bedfa0a"},
- {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80a539906390591dd39ebb8d773771dc4db82ace6372c4d41e2d293f8e32b8db"},
- {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:445e4cb5048b04e90ce96a79b4b63140e3f4ab5f662321975679b5f6360b90e2"},
- {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd30d9c67d13d891f2360b2a120186729c111238ac63b43dbd37a5a40670b8ca"},
- {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d20fd853fbb5807c8e84c136c278827b6167ded66c72ec6f9a14b863d809211c"},
- {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed1708dbf4d2e3a1c5c69110ba2b4eb6678262028afd6c6fbcc5a8dac9cda68e"},
- {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:be9b5b8659dff1f913039c2feee1aca499cfbc19e98fa12bc85e037c17ec6ca5"},
- {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:65308f4b4890aa12d9b6ad9f2844b7ee42c7f7a4fd3390425b242ffc57498f48"},
- {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98da17ce9cbf3bfe4617e836d561e433f871129e3a7ac16d6ef4c680f13a839c"},
- {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8ed7d27cb56b3e058d3cf684d7200703bcae623e1dcc06ed1e18ecda39fee003"},
- {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:b69bb4f51daf461b15e7b3db033160937d3ff88303a7bc808c67bbc1eaf98c78"},
- {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:034b88913ecc1b097f528e42b539453fa82c3557e414b3de9d5632c80439a473"},
- {file = "zstandard-0.23.0-cp311-cp311-win32.whl", hash = "sha256:f2d4380bf5f62daabd7b751ea2339c1a21d1c9463f1feb7fc2bdcea2c29c3160"},
- {file = "zstandard-0.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:62136da96a973bd2557f06ddd4e8e807f9e13cbb0bfb9cc06cfe6d98ea90dfe0"},
- {file = "zstandard-0.23.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b4567955a6bc1b20e9c31612e615af6b53733491aeaa19a6b3b37f3b65477094"},
- {file = "zstandard-0.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e172f57cd78c20f13a3415cc8dfe24bf388614324d25539146594c16d78fcc8"},
- {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0e166f698c5a3e914947388c162be2583e0c638a4703fc6a543e23a88dea3c1"},
- {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a289832e520c6bd4dcaad68e944b86da3bad0d339ef7989fb7e88f92e96072"},
- {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d50d31bfedd53a928fed6707b15a8dbeef011bb6366297cc435accc888b27c20"},
- {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72c68dda124a1a138340fb62fa21b9bf4848437d9ca60bd35db36f2d3345f373"},
- {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53dd9d5e3d29f95acd5de6802e909ada8d8d8cfa37a3ac64836f3bc4bc5512db"},
- {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:6a41c120c3dbc0d81a8e8adc73312d668cd34acd7725f036992b1b72d22c1772"},
- {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:40b33d93c6eddf02d2c19f5773196068d875c41ca25730e8288e9b672897c105"},
- {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9206649ec587e6b02bd124fb7799b86cddec350f6f6c14bc82a2b70183e708ba"},
- {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76e79bc28a65f467e0409098fa2c4376931fd3207fbeb6b956c7c476d53746dd"},
- {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:66b689c107857eceabf2cf3d3fc699c3c0fe8ccd18df2219d978c0283e4c508a"},
- {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9c236e635582742fee16603042553d276cca506e824fa2e6489db04039521e90"},
- {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8fffdbd9d1408006baaf02f1068d7dd1f016c6bcb7538682622c556e7b68e35"},
- {file = "zstandard-0.23.0-cp312-cp312-win32.whl", hash = "sha256:dc1d33abb8a0d754ea4763bad944fd965d3d95b5baef6b121c0c9013eaf1907d"},
- {file = "zstandard-0.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:64585e1dba664dc67c7cdabd56c1e5685233fbb1fc1966cfba2a340ec0dfff7b"},
- {file = "zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9"},
- {file = "zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a"},
- {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2"},
- {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5"},
- {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f"},
- {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed"},
- {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea"},
- {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847"},
- {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171"},
- {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840"},
- {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690"},
- {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b"},
- {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057"},
- {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33"},
- {file = "zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd"},
- {file = "zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b"},
- {file = "zstandard-0.23.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2ef3775758346d9ac6214123887d25c7061c92afe1f2b354f9388e9e4d48acfc"},
- {file = "zstandard-0.23.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4051e406288b8cdbb993798b9a45c59a4896b6ecee2f875424ec10276a895740"},
- {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2d1a054f8f0a191004675755448d12be47fa9bebbcffa3cdf01db19f2d30a54"},
- {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f83fa6cae3fff8e98691248c9320356971b59678a17f20656a9e59cd32cee6d8"},
- {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32ba3b5ccde2d581b1e6aa952c836a6291e8435d788f656fe5976445865ae045"},
- {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f146f50723defec2975fb7e388ae3a024eb7151542d1599527ec2aa9cacb152"},
- {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1bfe8de1da6d104f15a60d4a8a768288f66aa953bbe00d027398b93fb9680b26"},
- {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:29a2bc7c1b09b0af938b7a8343174b987ae021705acabcbae560166567f5a8db"},
- {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:61f89436cbfede4bc4e91b4397eaa3e2108ebe96d05e93d6ccc95ab5714be512"},
- {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:53ea7cdc96c6eb56e76bb06894bcfb5dfa93b7adcf59d61c6b92674e24e2dd5e"},
- {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:a4ae99c57668ca1e78597d8b06d5af837f377f340f4cce993b551b2d7731778d"},
- {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:379b378ae694ba78cef921581ebd420c938936a153ded602c4fea612b7eaa90d"},
- {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:50a80baba0285386f97ea36239855f6020ce452456605f262b2d33ac35c7770b"},
- {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:61062387ad820c654b6a6b5f0b94484fa19515e0c5116faf29f41a6bc91ded6e"},
- {file = "zstandard-0.23.0-cp38-cp38-win32.whl", hash = "sha256:b8c0bd73aeac689beacd4e7667d48c299f61b959475cdbb91e7d3d88d27c56b9"},
- {file = "zstandard-0.23.0-cp38-cp38-win_amd64.whl", hash = "sha256:a05e6d6218461eb1b4771d973728f0133b2a4613a6779995df557f70794fd60f"},
- {file = "zstandard-0.23.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa014d55c3af933c1315eb4bb06dd0459661cc0b15cd61077afa6489bec63bb"},
- {file = "zstandard-0.23.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7f0804bb3799414af278e9ad51be25edf67f78f916e08afdb983e74161b916"},
- {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb2b1ecfef1e67897d336de3a0e3f52478182d6a47eda86cbd42504c5cbd009a"},
- {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:837bb6764be6919963ef41235fd56a6486b132ea64afe5fafb4cb279ac44f259"},
- {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1516c8c37d3a053b01c1c15b182f3b5f5eef19ced9b930b684a73bad121addf4"},
- {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48ef6a43b1846f6025dde6ed9fee0c24e1149c1c25f7fb0a0585572b2f3adc58"},
- {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11e3bf3c924853a2d5835b24f03eeba7fc9b07d8ca499e247e06ff5676461a15"},
- {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2fb4535137de7e244c230e24f9d1ec194f61721c86ebea04e1581d9d06ea1269"},
- {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8c24f21fa2af4bb9f2c492a86fe0c34e6d2c63812a839590edaf177b7398f700"},
- {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a8c86881813a78a6f4508ef9daf9d4995b8ac2d147dcb1a450448941398091c9"},
- {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:fe3b385d996ee0822fd46528d9f0443b880d4d05528fd26a9119a54ec3f91c69"},
- {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:82d17e94d735c99621bf8ebf9995f870a6b3e6d14543b99e201ae046dfe7de70"},
- {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c7c517d74bea1a6afd39aa612fa025e6b8011982a0897768a2f7c8ab4ebb78a2"},
- {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fd7e0f1cfb70eb2f95a19b472ee7ad6d9a0a992ec0ae53286870c104ca939e5"},
- {file = "zstandard-0.23.0-cp39-cp39-win32.whl", hash = "sha256:43da0f0092281bf501f9c5f6f3b4c975a8a0ea82de49ba3f7100e64d422a1274"},
- {file = "zstandard-0.23.0-cp39-cp39-win_amd64.whl", hash = "sha256:f8346bfa098532bc1fb6c7ef06783e969d87a99dd1d2a5a18a892c1d7a643c58"},
- {file = "zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09"},
-]
-
-[package.dependencies]
-cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\""}
-
-[package.extras]
-cffi = ["cffi (>=1.11)"]
-
-[metadata]
-lock-version = "2.0"
-python-versions = "3.10.*"
-content-hash = "90f6111405b1ab8c781a2f8f1e7df65558bb723c3d82ec2d0483caa241b46eaf"
diff --git a/pyproject.toml b/pyproject.toml
index 920102aae..f5954a121 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,35 +1,38 @@
[project]
-requires-python = ">=3.9"
-
-[tool.poetry]
name = "io_scene_vrm"
+requires-python = "==3.10.*" # I actually want to use 3.9, but bpy 3.6.* doesn't allow it.
version = "1.0.0" # Dummy version. See __init__.bl_info["version"] instead.
-description = ""
-authors = ["Isamu Mogi ", "iCyP"]
-license = "MIT"
-
-[tool.poetry.dependencies]
-python = "3.10.*" # I actually want to use 3.9, but bpy 3.6.* doesn't allow it.
-
-# https://github.com/saturday06/VRM-Addon-for-Blender/blob/2_20_35/poetry.lock#L10-L13
-bpy = [
- {version = "3.6.*", markers = "platform_system == 'Darwin' and platform_machine == 'x86_64'"},
- {version = "3.6.*", markers = "platform_system == 'Darwin' and platform_machine == 'arm64'"},
- {version = "3.6.*", markers = "platform_system == 'Linux' and platform_machine == 'x86_64'"},
- {version = "3.6.*", markers = "platform_system == 'Windows' and platform_machine == 'AMD64'"},
+authors = [
+ {name = "Isamu Mogi"},
+ {name = "iCyP"},
+]
+license = {file = "LICENSE"}
+
+dependencies = [
+ # https://github.com/saturday06/VRM-Addon-for-Blender/blob/2_20_35/poetry.lock#L10-L13
+ "bpy ==3.6.*; platform_system == 'Darwin' and platform_machine == 'x86_64'",
+ "bpy ==3.6.*; platform_system == 'Darwin' and platform_machine == 'arm64'",
+ "bpy ==3.6.*; platform_system == 'Linux' and platform_machine == 'x86_64'",
+ "bpy ==3.6.*; platform_system == 'Windows' and platform_machine == 'AMD64'",
+]
+
+[tool.uv]
+dev-dependencies = [
+ "codespell >=0",
+ "dulwich >=0",
+ "mypy >=0",
+ "pyright >=0",
+ "ruff >=0",
+ "starry-bpy-typings",
+ "tqdm >=0",
+ "types-tqdm >=0",
]
-[tool.poetry.group.dev.dependencies]
-codespell = "*"
-dulwich = "*"
-mypy = "*"
-pyright = "*"
-ruff = "*"
-starry-bpy-type-stubs = { path = "typings" }
-tqdm = "*"
-types-tqdm = "*"
+[tool.uv.sources]
+starry-bpy-typings = {path = "typings"}
[tool.ruff]
+target-version = "py39" # It overrides 'project.requires-python = "==3.10.*"'
src = ["typings", "src"]
[tool.ruff.lint]
@@ -145,5 +148,5 @@ reportCallInDefaultInitializer = true
reportShadowedImports = true
[build-system]
-requires = ["poetry-core>=1.0.0"]
-build-backend = "poetry.core.masonry.api"
+requires = ["hatchling"]
+build-backend = "hatchling.build"
diff --git a/src/io_scene_vrm/common/ops/export_scene.py b/src/io_scene_vrm/common/ops/export_scene.py
index 91f98f2f1..f4d80cf72 100644
--- a/src/io_scene_vrm/common/ops/export_scene.py
+++ b/src/io_scene_vrm/common/ops/export_scene.py
@@ -1,5 +1,5 @@
# This code is auto generated.
-# `poetry run python tools/property_typing.py`
+# `uv run tools/property_typing.py`
from collections.abc import Mapping, Sequence
from typing import Optional, Union
diff --git a/src/io_scene_vrm/common/ops/icyp.py b/src/io_scene_vrm/common/ops/icyp.py
index 612c99c00..ada6ae43d 100644
--- a/src/io_scene_vrm/common/ops/icyp.py
+++ b/src/io_scene_vrm/common/ops/icyp.py
@@ -1,5 +1,5 @@
# This code is auto generated.
-# `poetry run python tools/property_typing.py`
+# `uv run tools/property_typing.py`
import bpy
diff --git a/src/io_scene_vrm/common/ops/import_scene.py b/src/io_scene_vrm/common/ops/import_scene.py
index d4b8c6597..e628f4545 100644
--- a/src/io_scene_vrm/common/ops/import_scene.py
+++ b/src/io_scene_vrm/common/ops/import_scene.py
@@ -1,5 +1,5 @@
# This code is auto generated.
-# `poetry run python tools/property_typing.py`
+# `uv run tools/property_typing.py`
import bpy
diff --git a/src/io_scene_vrm/common/ops/vrm.py b/src/io_scene_vrm/common/ops/vrm.py
index d82d8bb4d..414884618 100644
--- a/src/io_scene_vrm/common/ops/vrm.py
+++ b/src/io_scene_vrm/common/ops/vrm.py
@@ -1,5 +1,5 @@
# This code is auto generated.
-# `poetry run python tools/property_typing.py`
+# `uv run tools/property_typing.py`
from collections.abc import Mapping, Sequence
from typing import Optional, Union
diff --git a/src/io_scene_vrm/common/ops/wm.py b/src/io_scene_vrm/common/ops/wm.py
index 68ac9189e..7cd57899f 100644
--- a/src/io_scene_vrm/common/ops/wm.py
+++ b/src/io_scene_vrm/common/ops/wm.py
@@ -1,5 +1,5 @@
# This code is auto generated.
-# `poetry run python tools/property_typing.py`
+# `uv run tools/property_typing.py`
from collections.abc import Mapping, Sequence
from typing import Optional, Union
diff --git a/src/io_scene_vrm/common/preferences.py b/src/io_scene_vrm/common/preferences.py
index 734b6dc1f..3fc7ce4b0 100644
--- a/src/io_scene_vrm/common/preferences.py
+++ b/src/io_scene_vrm/common/preferences.py
@@ -222,7 +222,7 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
addon_version: Sequence[int] # type: ignore[no-redef]
extract_textures_into_folder: bool # type: ignore[no-redef]
make_new_texture_folder: bool # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/detail_mesh_maker.py b/src/io_scene_vrm/editor/detail_mesh_maker.py
index 076074e11..81d27a898 100644
--- a/src/io_scene_vrm/editor/detail_mesh_maker.py
+++ b/src/io_scene_vrm/editor/detail_mesh_maker.py
@@ -645,7 +645,7 @@ def make_face(self, _context: Context, mesh: Mesh) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
face_center_ratio: float # type: ignore[no-redef]
eye_width_ratio: float # type: ignore[no-redef]
nose_head_height: float # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/extension.py b/src/io_scene_vrm/editor/extension.py
index 0812334d0..693202b03 100644
--- a/src/io_scene_vrm/editor/extension.py
+++ b/src/io_scene_vrm/editor/extension.py
@@ -143,7 +143,7 @@ def update_vrm0_material_property_names(context: Context, scene_name: str) -> No
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
vrm0_material_gltf_property_names: CollectionPropertyProtocol[ # type: ignore[no-redef]
StringPropertyGroup
]
@@ -312,7 +312,7 @@ def translate_axis(cls, matrix: Matrix, axis_translation: str) -> Matrix:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
uuid: str # type: ignore[no-redef]
axis_translation: str # type: ignore[no-redef]
@@ -325,7 +325,7 @@ class VrmAddonObjectExtensionPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
axis_translation: str # type: ignore[no-redef]
@@ -406,7 +406,7 @@ def is_vrm1(self) -> bool:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
addon_version: Sequence[int] # type: ignore[no-redef]
vrm0: Vrm0PropertyGroup # type: ignore[no-redef]
vrm1: Vrm1PropertyGroup # type: ignore[no-redef]
@@ -433,7 +433,7 @@ class VrmAddonMaterialExtensionPropertyGroup(PropertyGroup):
)
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
mtoon1: Mtoon1MaterialPropertyGroup # type: ignore[no-redef]
@@ -446,7 +446,7 @@ class VrmAddonNodeTreeExtensionPropertyGroup(PropertyGroup):
)
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
addon_version: Sequence[int] # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/make_armature.py b/src/io_scene_vrm/editor/make_armature.py
index 44e057547..26f9630fb 100644
--- a/src/io_scene_vrm/editor/make_armature.py
+++ b/src/io_scene_vrm/editor/make_armature.py
@@ -629,7 +629,7 @@ def make_extension_setting_and_metas(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
skip_heavy_armature_setup: bool # type: ignore[no-redef]
wip_with_template_mesh: bool # type: ignore[no-redef]
tall: float # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/make_mesh_from_bone_envelopes.py b/src/io_scene_vrm/editor/make_mesh_from_bone_envelopes.py
index 6d962441f..fd3e2a680 100644
--- a/src/io_scene_vrm/editor/make_mesh_from_bone_envelopes.py
+++ b/src/io_scene_vrm/editor/make_mesh_from_bone_envelopes.py
@@ -180,7 +180,7 @@ def build_mesh(self, context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
resolution: int # type: ignore[no-redef]
max_distance_between_mataballs: float # type: ignore[no-redef]
use_selected_bones: bool # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/mtoon1/ops.py b/src/io_scene_vrm/editor/mtoon1/ops.py
index ca801244d..b7f094014 100644
--- a/src/io_scene_vrm/editor/mtoon1/ops.py
+++ b/src/io_scene_vrm/editor/mtoon1/ops.py
@@ -489,7 +489,7 @@ def convert_mtoon_unversioned_to_mtoon1(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
material_name: str # type: ignore[no-redef]
@@ -553,7 +553,7 @@ def convert_mtoon1_to_bsdf_principled(self, material: Material) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
material_name: str # type: ignore[no-redef]
@@ -578,7 +578,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
material_name: str # type: ignore[no-redef]
@@ -690,7 +690,7 @@ def invoke(self, context: Context, event: Event) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
filepath: str # type: ignore[no-redef]
filter_glob: str # type: ignore[no-redef]
material_name: str # type: ignore[no-redef]
@@ -1065,7 +1065,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
material_name: str # type: ignore[no-redef]
create_modifier: bool # type: ignore[no-redef]
@@ -1123,5 +1123,5 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
material_name_lines: str # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/mtoon1/property_group.py b/src/io_scene_vrm/editor/mtoon1/property_group.py
index 25abca1ef..3e90549c6 100644
--- a/src/io_scene_vrm/editor/mtoon1/property_group.py
+++ b/src/io_scene_vrm/editor/mtoon1/property_group.py
@@ -932,7 +932,7 @@ def set_texture_scale(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
offset: Sequence[float] # type: ignore[no-redef]
scale: Sequence[float] # type: ignore[no-redef]
@@ -1071,7 +1071,7 @@ def set_texture_scale_and_outline(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
offset: Sequence[float] # type: ignore[no-redef]
scale: Sequence[float] # type: ignore[no-redef]
@@ -1095,7 +1095,7 @@ class Mtoon1TextureInfoExtensionsPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1KhrTextureTransformPropertyGroup
)
@@ -1110,7 +1110,7 @@ class Mtoon1BaseColorTextureInfoExtensionsPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1BaseColorKhrTextureTransformPropertyGroup
)
@@ -1125,7 +1125,7 @@ class Mtoon1ShadeMultiplyTextureInfoExtensionsPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1ShadeMultiplyKhrTextureTransformPropertyGroup
)
@@ -1140,7 +1140,7 @@ class Mtoon1NormalTextureInfoExtensionsPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1NormalKhrTextureTransformPropertyGroup
)
@@ -1155,7 +1155,7 @@ class Mtoon1ShadingShiftTextureInfoExtensionsPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1ShadingShiftKhrTextureTransformPropertyGroup
)
@@ -1170,7 +1170,7 @@ class Mtoon1EmissiveTextureInfoExtensionsPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1EmissiveKhrTextureTransformPropertyGroup
)
@@ -1185,7 +1185,7 @@ class Mtoon1RimMultiplyTextureInfoExtensionsPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1RimMultiplyKhrTextureTransformPropertyGroup
)
@@ -1200,7 +1200,7 @@ class Mtoon1MatcapTextureInfoExtensionsPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1MatcapKhrTextureTransformPropertyGroup
)
@@ -1215,7 +1215,7 @@ class Mtoon1OutlineWidthMultiplyTextureInfoExtensionsPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1OutlineWidthMultiplyKhrTextureTransformPropertyGroup
)
@@ -1230,7 +1230,7 @@ class Mtoon1UvAnimationMaskTextureInfoExtensionsPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
khr_texture_transform: ( # type: ignore[no-redef]
Mtoon1UvAnimationMaskKhrTextureTransformPropertyGroup
)
@@ -1470,7 +1470,7 @@ def set_wrap_t(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
mag_filter: str # type: ignore[no-redef]
min_filter: str # type: ignore[no-redef]
wrap_s: str # type: ignore[no-redef]
@@ -1601,7 +1601,7 @@ def update_source_not_sync_with_node_tree(self, context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
source: Optional[Image] # type: ignore[no-redef]
source_not_sync_with_node_tree: Optional[Image] # type: ignore[no-redef]
sampler: Mtoon1SamplerPropertyGroup # type: ignore[no-redef]
@@ -1633,7 +1633,7 @@ def update_image(self, image: Optional[Image]) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sampler: Mtoon1BaseColorSamplerPropertyGroup # type: ignore[no-redef]
@@ -1655,7 +1655,7 @@ class Mtoon1ShadeMultiplyTexturePropertyGroup(Mtoon1TexturePropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sampler: Mtoon1ShadeMultiplySamplerPropertyGroup # type: ignore[no-redef]
@@ -1675,7 +1675,7 @@ class Mtoon1NormalTexturePropertyGroup(Mtoon1TexturePropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sampler: Mtoon1NormalSamplerPropertyGroup # type: ignore[no-redef]
@@ -1697,7 +1697,7 @@ class Mtoon1ShadingShiftTexturePropertyGroup(Mtoon1TexturePropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sampler: Mtoon1ShadingShiftSamplerPropertyGroup # type: ignore[no-redef]
@@ -1717,7 +1717,7 @@ class Mtoon1EmissiveTexturePropertyGroup(Mtoon1TexturePropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sampler: Mtoon1EmissiveSamplerPropertyGroup # type: ignore[no-redef]
@@ -1739,7 +1739,7 @@ class Mtoon1RimMultiplyTexturePropertyGroup(Mtoon1TexturePropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sampler: Mtoon1RimMultiplySamplerPropertyGroup # type: ignore[no-redef]
@@ -1761,7 +1761,7 @@ class Mtoon1MatcapTexturePropertyGroup(Mtoon1TexturePropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sampler: Mtoon1MatcapSamplerPropertyGroup # type: ignore[no-redef]
@@ -1788,7 +1788,7 @@ def update_source(self, context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sampler: ( # type: ignore[no-redef]
Mtoon1OutlineWidthMultiplySamplerPropertyGroup
)
@@ -1812,7 +1812,7 @@ class Mtoon1UvAnimationMaskTexturePropertyGroup(Mtoon1TexturePropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sampler: Mtoon1UvAnimationMaskSamplerPropertyGroup # type: ignore[no-redef]
@@ -2007,7 +2007,7 @@ def setup_drivers(self, material: Material) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1TexturePropertyGroup # type: ignore[no-redef]
extensions: Mtoon1TextureInfoExtensionsPropertyGroup # type: ignore[no-redef]
show_expanded: bool # type: ignore[no-redef]
@@ -2047,7 +2047,7 @@ class Mtoon1BaseColorTextureInfoPropertyGroup(Mtoon1TextureInfoPropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1BaseColorTexturePropertyGroup # type: ignore[no-redef]
extensions: ( # type: ignore[no-redef]
Mtoon1BaseColorTextureInfoExtensionsPropertyGroup
@@ -2079,7 +2079,7 @@ class Mtoon1ShadeMultiplyTextureInfoPropertyGroup(Mtoon1TextureInfoPropertyGroup
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1ShadeMultiplyTexturePropertyGroup # type: ignore[no-redef]
extensions: ( # type: ignore[no-redef]
Mtoon1ShadeMultiplyTextureInfoExtensionsPropertyGroup
@@ -2145,7 +2145,7 @@ def set_scale(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1NormalTexturePropertyGroup # type: ignore[no-redef]
scale: float # type: ignore[no-redef]
extensions: ( # type: ignore[no-redef]
@@ -2201,7 +2201,7 @@ def set_scale(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1ShadingShiftTexturePropertyGroup # type: ignore[no-redef]
scale: float # type: ignore[no-redef]
extensions: ( # type: ignore[no-redef]
@@ -2235,7 +2235,7 @@ class Mtoon1EmissiveTextureInfoPropertyGroup(Mtoon1TextureInfoPropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1EmissiveTexturePropertyGroup # type: ignore[no-redef]
extensions: ( # type: ignore[no-redef]
Mtoon1EmissiveTextureInfoExtensionsPropertyGroup
@@ -2267,7 +2267,7 @@ class Mtoon1RimMultiplyTextureInfoPropertyGroup(Mtoon1TextureInfoPropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1RimMultiplyTexturePropertyGroup # type: ignore[no-redef]
extensions: ( # type: ignore[no-redef]
Mtoon1RimMultiplyTextureInfoExtensionsPropertyGroup
@@ -2299,7 +2299,7 @@ class Mtoon1MatcapTextureInfoPropertyGroup(Mtoon1TextureInfoPropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1MatcapTexturePropertyGroup # type: ignore[no-redef]
extensions: ( # type: ignore[no-redef]
Mtoon1MatcapTextureInfoExtensionsPropertyGroup
@@ -2333,7 +2333,7 @@ class Mtoon1OutlineWidthMultiplyTextureInfoPropertyGroup(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1OutlineWidthMultiplyTexturePropertyGroup # type: ignore[no-redef]
extensions: ( # type: ignore[no-redef]
Mtoon1OutlineWidthMultiplyTextureInfoExtensionsPropertyGroup
@@ -2365,7 +2365,7 @@ class Mtoon1UvAnimationMaskTextureInfoPropertyGroup(Mtoon1TextureInfoPropertyGro
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
index: Mtoon1UvAnimationMaskTexturePropertyGroup # type: ignore[no-redef]
extensions: ( # type: ignore[no-redef]
Mtoon1UvAnimationMaskTextureInfoExtensionsPropertyGroup
@@ -2397,7 +2397,7 @@ class Mtoon0SamplerPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
mag_filter: str # type: ignore[no-redef]
min_filter: str # type: ignore[no-redef]
wrap_s: str # type: ignore[no-redef]
@@ -2422,7 +2422,7 @@ def get_connected_node_image(self) -> Optional[Image]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
source: Optional[Image] # type: ignore[no-redef]
sampler: Mtoon0SamplerPropertyGroup # type: ignore[no-redef]
show_expanded: bool # type: ignore[no-redef]
@@ -2509,7 +2509,7 @@ def set_base_color_factor(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
base_color_factor: Sequence[float] # type: ignore[no-redef]
base_color_texture: ( # type: ignore[no-redef]
Mtoon1BaseColorTextureInfoPropertyGroup
@@ -3014,7 +3014,7 @@ def set_uv_animation_rotation_speed_factor(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
transparent_with_z_write: bool # type: ignore[no-redef]
render_queue_offset_number: int # type: ignore[no-redef]
shade_multiply_texture: ( # type: ignore[no-redef]
@@ -3111,7 +3111,7 @@ def set_emissive_strength(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
emissive_strength: float # type: ignore[no-redef]
@@ -3125,7 +3125,7 @@ class Mtoon1MaterialExtensionsPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
vrmc_materials_mtoon: ( # type: ignore[no-redef]
Mtoon1VrmcMaterialsMtoonPropertyGroup
)
@@ -3727,7 +3727,7 @@ def setup_drivers(self) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
addon_version: Sequence[int] # type: ignore[no-redef]
pbr_metallic_roughness: ( # type: ignore[no-redef]
Mtoon1PbrMetallicRoughnessPropertyGroup
diff --git a/src/io_scene_vrm/editor/node_constraint1/property_group.py b/src/io_scene_vrm/editor/node_constraint1/property_group.py
index 2b1e4f303..8da6ea157 100644
--- a/src/io_scene_vrm/editor/node_constraint1/property_group.py
+++ b/src/io_scene_vrm/editor/node_constraint1/property_group.py
@@ -18,7 +18,7 @@ class NodeConstraint1NodeConstraintPropertyGroup(PropertyGroup):
)
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
show_expanded_roll_constraints: bool # type: ignore[no-redef]
show_expanded_aim_constraints: bool # type: ignore[no-redef]
show_expanded_rotation_constraints: bool # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/ops.py b/src/io_scene_vrm/editor/ops.py
index 83b075300..00222a7d2 100644
--- a/src/io_scene_vrm/editor/ops.py
+++ b/src/io_scene_vrm/editor/ops.py
@@ -87,7 +87,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -126,7 +126,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_name: str # type: ignore[no-redef]
@@ -217,7 +217,7 @@ def invoke(self, context: Context, event: Event) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
filter_glob: str # type: ignore[no-redef]
@@ -279,7 +279,7 @@ def invoke(self, context: Context, event: Event) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
filter_glob: str # type: ignore[no-redef]
@@ -364,7 +364,7 @@ def execute(self, _context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
url: str # type: ignore[no-redef]
@@ -410,7 +410,7 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
file_version: str # type: ignore[no-redef]
app_version: str # type: ignore[no-redef]
@@ -452,7 +452,7 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
file_addon_version: str # type: ignore[no-redef]
installed_addon_version: str # type: ignore[no-redef]
@@ -963,5 +963,5 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/property_group.py b/src/io_scene_vrm/editor/property_group.py
index a7e4b9322..c0c3cfb20 100644
--- a/src/io_scene_vrm/editor/property_group.py
+++ b/src/io_scene_vrm/editor/property_group.py
@@ -112,7 +112,7 @@ def set_value(self, value: str) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
value: str # type: ignore[no-redef]
@@ -135,7 +135,7 @@ def set_value(self, value: float) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
value: float # type: ignore[no-redef]
@@ -195,7 +195,7 @@ def poll_bpy_object(self, obj: object) -> bool:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
mesh_object_name: str # type: ignore[no-redef]
value: str # type: ignore[no-redef]
bpy_object: Optional[Object] # type: ignore[no-redef]
@@ -451,7 +451,7 @@ def set_value(self, value: str) -> None:
search_one_time_uuid: StringProperty() # type: ignore[valid-type]
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
bone_name: str # type: ignore[no-redef]
value: str # type: ignore[no-redef]
bone_uuid: str # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/spring_bone1/ops.py b/src/io_scene_vrm/editor/spring_bone1/ops.py
index c14f4362b..4eb0304d5 100644
--- a/src/io_scene_vrm/editor/spring_bone1/ops.py
+++ b/src/io_scene_vrm/editor/spring_bone1/ops.py
@@ -37,7 +37,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -101,7 +101,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_index: int # type: ignore[no-redef]
@@ -139,7 +139,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -177,7 +177,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -207,7 +207,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -244,7 +244,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
@@ -281,7 +281,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
@@ -318,7 +318,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
@@ -349,7 +349,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -403,7 +403,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -440,7 +440,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_index: int # type: ignore[no-redef]
@@ -477,7 +477,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_index: int # type: ignore[no-redef]
@@ -515,7 +515,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -562,7 +562,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
collider_index: int # type: ignore[no-redef]
@@ -606,7 +606,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
collider_index: int # type: ignore[no-redef]
@@ -650,7 +650,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
collider_index: int # type: ignore[no-redef]
@@ -687,7 +687,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
@@ -731,7 +731,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -778,7 +778,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -825,7 +825,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -879,7 +879,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
guess_properties: bool # type: ignore[no-redef]
@@ -924,7 +924,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
joint_index: int # type: ignore[no-redef]
@@ -969,7 +969,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
joint_index: int # type: ignore[no-redef]
@@ -1014,7 +1014,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
spring_index: int # type: ignore[no-redef]
joint_index: int # type: ignore[no-redef]
@@ -1045,7 +1045,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -1068,5 +1068,5 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
delta_time: float # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/spring_bone1/property_group.py b/src/io_scene_vrm/editor/spring_bone1/property_group.py
index 707a368e4..15254f725 100644
--- a/src/io_scene_vrm/editor/spring_bone1/property_group.py
+++ b/src/io_scene_vrm/editor/spring_bone1/property_group.py
@@ -169,7 +169,7 @@ def update_radius(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
offset: Sequence[float] # type: ignore[no-redef]
radius: float # type: ignore[no-redef]
fallback_offset: Sequence[float] # type: ignore[no-redef]
@@ -377,7 +377,7 @@ def update_radius(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
offset: Sequence[float] # type: ignore[no-redef]
radius: float # type: ignore[no-redef]
tail: Sequence[float] # type: ignore[no-redef]
@@ -406,7 +406,7 @@ def find_armature_and_collider(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
inside: bool # type: ignore[no-redef]
@@ -430,7 +430,7 @@ def find_armature_and_collider(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
inside: bool # type: ignore[no-redef]
@@ -547,7 +547,7 @@ def set_normal(self, normal: Sequence[float]) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
offset: Sequence[float] # type: ignore[no-redef]
normal: Sequence[float] # type: ignore[no-redef]
@@ -563,7 +563,7 @@ class SpringBone1ColliderShapePropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sphere: SpringBone1ColliderShapeSpherePropertyGroup # type: ignore[no-redef]
capsule: SpringBone1ColliderShapeCapsulePropertyGroup # type: ignore[no-redef]
@@ -582,7 +582,7 @@ class SpringBone1ExtendedColliderShapePropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
sphere: ( # type: ignore[no-redef]
SpringBone1ExtendedColliderShapeSpherePropertyGroup
)
@@ -640,7 +640,7 @@ def update_shape_type(self, context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
enabled: bool # type: ignore[no-redef]
automatic_fallback_generation: bool # type: ignore[no-redef]
shape: SpringBone1ExtendedColliderShapePropertyGroup # type: ignore[no-redef]
@@ -654,7 +654,7 @@ class SpringBone1ColliderExtensionsPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
vrmc_spring_bone_extended_collider: ( # type: ignore[no-redef]
SpringBone1VrmcSpringBoneExtendedColliderPropertyGroup
)
@@ -900,7 +900,7 @@ def reset_bpy_object(self, context: Context, armature: Object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
node: BonePropertyGroup # type: ignore[no-redef]
shape: SpringBone1ColliderShapePropertyGroup # type: ignore[no-redef]
extensions: SpringBone1ColliderExtensionsPropertyGroup # type: ignore[no-redef]
@@ -951,7 +951,7 @@ def set_collider_name(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
collider_name: str # type: ignore[no-redef]
collider_uuid: str # type: ignore[no-redef]
search_one_time_uuid: str # type: ignore[no-redef]
@@ -1013,7 +1013,7 @@ def fix_index(self, context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
vrm_name: str # type: ignore[no-redef]
colliders: CollectionPropertyProtocol[ # type: ignore[no-redef]
SpringBone1ColliderReferencePropertyGroup
@@ -1033,7 +1033,7 @@ class SpringBone1JointAnimationStatePropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
initialized_as_tail: bool # type: ignore[no-redef]
previous_world_translation: Sequence[float] # type: ignore[no-redef]
current_world_translation: Sequence[float] # type: ignore[no-redef]
@@ -1098,7 +1098,7 @@ def update_gravity_dir(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
node: BonePropertyGroup # type: ignore[no-redef]
hit_radius: float # type: ignore[no-redef]
stiffness: float # type: ignore[no-redef]
@@ -1151,7 +1151,7 @@ def set_collider_group_name(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
collider_group_name: str # type: ignore[no-redef]
collider_group_uuid: str # type: ignore[no-redef]
search_one_time_uuid: str # type: ignore[no-redef]
@@ -1164,7 +1164,7 @@ class SpringBone1SpringAnimationStatePropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
use_center_space: bool # type: ignore[no-redef]
previous_center_world_translation: Sequence[float] # type: ignore[no-redef]
@@ -1202,7 +1202,7 @@ class SpringBone1SpringPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
vrm_name: str # type: ignore[no-redef]
joints: CollectionPropertyProtocol[ # type: ignore[no-redef]
SpringBone1JointPropertyGroup
@@ -1260,7 +1260,7 @@ def update_enable_animation(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
colliders: CollectionPropertyProtocol[ # type: ignore[no-redef]
SpringBone1ColliderPropertyGroup
]
diff --git a/src/io_scene_vrm/editor/validation.py b/src/io_scene_vrm/editor/validation.py
index f4de26de3..6961e48c3 100644
--- a/src/io_scene_vrm/editor/validation.py
+++ b/src/io_scene_vrm/editor/validation.py
@@ -42,7 +42,7 @@ class VrmValidationError(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
message: str # type: ignore[no-redef]
severity: int # type: ignore[no-redef]
@@ -956,7 +956,7 @@ def draw_errors(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
show_successful_message: bool # type: ignore[no-redef]
errors: CollectionPropertyProtocol[ # type: ignore[no-redef]
VrmValidationError
diff --git a/src/io_scene_vrm/editor/vrm0/ops.py b/src/io_scene_vrm/editor/vrm0/ops.py
index 4f5d5f58d..39f05912c 100644
--- a/src/io_scene_vrm/editor/vrm0/ops.py
+++ b/src/io_scene_vrm/editor/vrm0/ops.py
@@ -36,7 +36,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -73,7 +73,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
mesh_annotation_index: int # type: ignore[no-redef]
@@ -113,7 +113,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
mesh_annotation_index: int # type: ignore[no-redef]
@@ -151,7 +151,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
mesh_annotation_index: int # type: ignore[no-redef]
@@ -191,7 +191,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
@@ -238,7 +238,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
material_value_index: int # type: ignore[no-redef]
@@ -286,7 +286,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
material_value_index: int # type: ignore[no-redef]
@@ -334,7 +334,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
material_value_index: int # type: ignore[no-redef]
@@ -380,7 +380,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
material_value_index: int # type: ignore[no-redef]
@@ -433,7 +433,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
material_value_index: int # type: ignore[no-redef]
@@ -473,7 +473,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
@@ -520,7 +520,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -566,7 +566,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -612,7 +612,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -674,7 +674,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
bone_name: str # type: ignore[no-redef]
@@ -726,7 +726,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
collider_index: int # type: ignore[no-redef]
@@ -772,7 +772,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
collider_index: int # type: ignore[no-redef]
@@ -818,7 +818,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
collider_index: int # type: ignore[no-redef]
@@ -858,7 +858,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
@@ -904,7 +904,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
bone_index: int # type: ignore[no-redef]
@@ -950,7 +950,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
bone_index: int # type: ignore[no-redef]
@@ -996,7 +996,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
bone_index: int # type: ignore[no-redef]
@@ -1036,7 +1036,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
@@ -1083,7 +1083,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -1129,7 +1129,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -1175,7 +1175,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -1213,7 +1213,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
name: str # type: ignore[no-redef]
@@ -1253,7 +1253,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
@@ -1295,7 +1295,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
@@ -1337,7 +1337,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
@@ -1376,7 +1376,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
blend_shape_group_index: int # type: ignore[no-redef]
@@ -1416,7 +1416,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
@@ -1454,7 +1454,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
@@ -1492,7 +1492,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
bone_group_index: int # type: ignore[no-redef]
@@ -1526,7 +1526,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -1571,7 +1571,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -1611,7 +1611,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -1651,7 +1651,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
collider_group_index: int # type: ignore[no-redef]
@@ -1703,5 +1703,5 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/vrm0/property_group.py b/src/io_scene_vrm/editor/vrm0/property_group.py
index 762f2bc30..05a33b899 100644
--- a/src/io_scene_vrm/editor/vrm0/property_group.py
+++ b/src/io_scene_vrm/editor/vrm0/property_group.py
@@ -117,7 +117,7 @@ def specification(self) -> HumanBoneSpecification:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
bone: str # type: ignore[no-redef]
node: BonePropertyGroup # type: ignore[no-redef]
use_default_values: bool # type: ignore[no-redef]
@@ -349,7 +349,7 @@ def fixup_human_bones(obj: Object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
human_bones: CollectionPropertyProtocol[ # type: ignore[no-redef]
Vrm0HumanoidBonePropertyGroup
]
@@ -388,7 +388,7 @@ class Vrm0DegreeMapPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
curve: Sequence[float] # type: ignore[no-redef]
x_range: float # type: ignore[no-redef]
y_range: float # type: ignore[no-redef]
@@ -429,7 +429,7 @@ class Vrm0MeshAnnotationPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
mesh: MeshObjectPropertyGroup # type: ignore[no-redef]
first_person_flag: str # type: ignore[no-redef]
@@ -492,7 +492,7 @@ class Vrm0FirstPersonPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
first_person_bone: BonePropertyGroup # type: ignore[no-redef]
first_person_bone_offset: Sequence[float] # type: ignore[no-redef]
mesh_annotations: CollectionPropertyProtocol[ # type: ignore[no-redef]
@@ -525,7 +525,7 @@ class Vrm0BlendShapeBindPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
mesh: MeshObjectPropertyGroup # type: ignore[no-redef]
index: str # type: ignore[no-redef]
weight: float # type: ignore[no-redef]
@@ -551,7 +551,7 @@ class Vrm0MaterialValueBindPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
material: Optional[Material] # type: ignore[no-redef]
property_name: str # type: ignore[no-redef]
target_value: CollectionPropertyProtocol[ # type: ignore[no-redef]
@@ -673,7 +673,7 @@ def set_preview(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
name: str # type: ignore[no-redef]
preset_name: str # type: ignore[no-redef]
binds: CollectionPropertyProtocol[ # type: ignore[no-redef]
@@ -713,7 +713,7 @@ def refresh(self, armature: Object, bone_name: str) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
bpy_object: Optional[Object] # type: ignore[no-redef]
@@ -762,7 +762,7 @@ def refresh(self, armature: Object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
node: BonePropertyGroup # type: ignore[no-redef]
colliders: CollectionPropertyProtocol[ # type: ignore[no-redef]
Vrm0SecondaryAnimationColliderPropertyGroup
@@ -881,7 +881,7 @@ def refresh(self, armature: Object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
comment: str # type: ignore[no-redef]
stiffiness: float # type: ignore[no-redef]
gravity_power: float # type: ignore[no-redef]
@@ -1011,7 +1011,7 @@ class Vrm0MetaPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
title: str # type: ignore[no-redef]
version: str # type: ignore[no-redef]
author: str # type: ignore[no-redef]
@@ -1039,7 +1039,7 @@ class Vrm0BlendShapeMasterPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
blend_shape_groups: CollectionPropertyProtocol[ # type: ignore[no-redef]
Vrm0BlendShapeGroupPropertyGroup
]
@@ -1070,7 +1070,7 @@ class Vrm0SecondaryAnimationPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
bone_groups: CollectionPropertyProtocol[ # type: ignore[no-redef]
Vrm0SecondaryAnimationGroupPropertyGroup
]
@@ -1107,7 +1107,7 @@ class Vrm0PropertyGroup(PropertyGroup):
)
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
meta: Vrm0MetaPropertyGroup # type: ignore[no-redef]
humanoid: Vrm0HumanoidPropertyGroup # type: ignore[no-redef]
first_person: Vrm0FirstPersonPropertyGroup # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/vrm1/ops.py b/src/io_scene_vrm/editor/vrm1/ops.py
index c46c82d29..f51517fd1 100644
--- a/src/io_scene_vrm/editor/vrm1/ops.py
+++ b/src/io_scene_vrm/editor/vrm1/ops.py
@@ -41,7 +41,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -78,7 +78,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
author_index: int # type: ignore[no-redef]
@@ -114,7 +114,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
author_index: int # type: ignore[no-redef]
@@ -150,7 +150,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
author_index: int # type: ignore[no-redef]
@@ -180,7 +180,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -217,7 +217,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
reference_index: int # type: ignore[no-redef]
@@ -253,7 +253,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
reference_index: int # type: ignore[no-redef]
@@ -289,7 +289,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
reference_index: int # type: ignore[no-redef]
@@ -325,7 +325,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
custom_expression_name: str # type: ignore[no-redef]
@@ -365,7 +365,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
custom_expression_name: str # type: ignore[no-redef]
@@ -410,7 +410,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
custom_expression_name: str # type: ignore[no-redef]
@@ -455,7 +455,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
custom_expression_name: str # type: ignore[no-redef]
@@ -486,7 +486,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
@@ -523,7 +523,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
mesh_annotation_index: int # type: ignore[no-redef]
@@ -561,7 +561,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
mesh_annotation_index: int # type: ignore[no-redef]
@@ -599,7 +599,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
mesh_annotation_index: int # type: ignore[no-redef]
@@ -636,7 +636,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
@@ -680,7 +680,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -723,7 +723,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -766,7 +766,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -806,7 +806,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
@@ -850,7 +850,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -893,7 +893,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -936,7 +936,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -974,7 +974,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
@@ -1018,7 +1018,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -1061,7 +1061,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -1104,7 +1104,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
expression_name: str # type: ignore[no-redef]
bind_index: int # type: ignore[no-redef]
@@ -1193,7 +1193,7 @@ def execute(self, context: Context) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_name: str # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/editor/vrm1/property_group.py b/src/io_scene_vrm/editor/vrm1/property_group.py
index 397fc1e2c..6459170e4 100644
--- a/src/io_scene_vrm/editor/vrm1/property_group.py
+++ b/src/io_scene_vrm/editor/vrm1/property_group.py
@@ -86,7 +86,7 @@ def update_node_candidates(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
node: BonePropertyGroup # type: ignore[no-redef]
node_candidates: CollectionPropertyProtocol[ # type: ignore[no-redef]
StringPropertyGroup
@@ -477,7 +477,7 @@ def update_all_node_candidates(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
hips: Vrm1HumanBonePropertyGroup # type: ignore[no-redef]
spine: Vrm1HumanBonePropertyGroup # type: ignore[no-redef]
chest: Vrm1HumanBonePropertyGroup # type: ignore[no-redef]
@@ -602,7 +602,7 @@ def update_pose_library(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
human_bones: Vrm1HumanBonesPropertyGroup # type: ignore[no-redef]
pose: str # type: ignore[no-redef]
pose_library: Optional[Action] # type: ignore[no-redef]
@@ -624,7 +624,7 @@ class Vrm1LookAtRangeMapPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
input_max_value: float # type: ignore[no-redef]
output_scale: float # type: ignore[no-redef]
@@ -935,7 +935,7 @@ def apply_expression_preview(
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
offset_from_head_bone: Sequence[float] # type: ignore[no-redef]
type: str # type: ignore[no-redef]
range_map_horizontal_inner: ( # type: ignore[no-redef]
@@ -973,7 +973,7 @@ class Vrm1MeshAnnotationPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
node: MeshObjectPropertyGroup # type: ignore[no-redef]
type: str # type: ignore[no-redef]
@@ -990,7 +990,7 @@ class Vrm1FirstPersonPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
mesh_annotations: CollectionPropertyProtocol[ # type: ignore[no-redef]
Vrm1MeshAnnotationPropertyGroup
]
@@ -1012,7 +1012,7 @@ class Vrm1MorphTargetBindPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
node: MeshObjectPropertyGroup # type: ignore[no-redef]
index: str # type: ignore[no-redef]
weight: float # type: ignore[no-redef]
@@ -1072,7 +1072,7 @@ def set_target_value_as_rgb(self, value: Sequence[float]) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
material: Optional[Material] # type: ignore[no-redef]
type: str # type: ignore[no-redef]
target_value: Sequence[float] # type: ignore[no-redef]
@@ -1096,7 +1096,7 @@ class Vrm1TextureTransformBindPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
material: Optional[Material] # type: ignore[no-redef]
scale: Sequence[float] # type: ignore[no-redef]
offset: Sequence[float] # type: ignore[no-redef]
@@ -1332,7 +1332,7 @@ def set_preview(self, value: object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
morph_target_binds: CollectionPropertyProtocol[ # type: ignore[no-redef]
Vrm1MorphTargetBindPropertyGroup
]
@@ -1399,7 +1399,7 @@ def set_custom_name(self, value: str) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
custom_name: str # type: ignore[no-redef]
@@ -1595,7 +1595,7 @@ def is_look_at_expression(self, expression_name: str) -> bool:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
happy: Vrm1ExpressionPropertyGroup # type: ignore[no-redef]
angry: Vrm1ExpressionPropertyGroup # type: ignore[no-redef]
sad: Vrm1ExpressionPropertyGroup # type: ignore[no-redef]
@@ -1642,7 +1642,7 @@ def all_name_to_expression_dict(self) -> Mapping[str, Vrm1ExpressionPropertyGrou
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
preset: Vrm1ExpressionsPresetPropertyGroup # type: ignore[no-redef]
custom: CollectionPropertyProtocol[ # type: ignore[no-redef]
Vrm1CustomExpressionPropertyGroup
@@ -1759,7 +1759,7 @@ class Vrm1MetaPropertyGroup(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
vrm_name: str # type: ignore[no-redef]
version: str # type: ignore[no-redef]
authors: CollectionPropertyProtocol[ # type: ignore[no-redef]
@@ -1805,7 +1805,7 @@ class Vrm1PropertyGroup(PropertyGroup):
)
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
meta: Vrm1MetaPropertyGroup # type: ignore[no-redef]
humanoid: Vrm1HumanoidPropertyGroup # type: ignore[no-redef]
first_person: Vrm1FirstPersonPropertyGroup # type: ignore[no-redef]
diff --git a/src/io_scene_vrm/exporter/export_scene.py b/src/io_scene_vrm/exporter/export_scene.py
index 0d194ef9a..1a41b593f 100644
--- a/src/io_scene_vrm/exporter/export_scene.py
+++ b/src/io_scene_vrm/exporter/export_scene.py
@@ -267,7 +267,7 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
filter_glob: str # type: ignore[no-redef]
use_addon_preferences: bool # type: ignore[no-redef]
export_invisibles: bool # type: ignore[no-redef]
@@ -409,7 +409,7 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
filter_glob: str # type: ignore[no-redef]
armature_object_name: str # type: ignore[no-redef]
@@ -560,7 +560,7 @@ def draw_vrm1(layout: UILayout, armature: Object) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_object_name: str # type: ignore[no-redef]
@@ -619,7 +619,7 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
errors: CollectionPropertyProtocol[ # type: ignore[no-redef]
VrmValidationError
]
@@ -685,7 +685,7 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_object_name: str # type: ignore[no-redef]
armature_object_name_candidates: CollectionPropertyProtocol[ # type: ignore[no-redef]
StringPropertyGroup
@@ -796,7 +796,7 @@ def draw(self, context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_object_name: str # type: ignore[no-redef]
armature_object_name_candidates: CollectionPropertyProtocol[ # type: ignore[no-redef]
StringPropertyGroup
diff --git a/src/io_scene_vrm/importer/import_scene.py b/src/io_scene_vrm/importer/import_scene.py
index 3b6930ebb..2c96a8b73 100644
--- a/src/io_scene_vrm/importer/import_scene.py
+++ b/src/io_scene_vrm/importer/import_scene.py
@@ -47,7 +47,7 @@ class LicenseConfirmation(PropertyGroup):
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
message: str # type: ignore[no-redef]
url: str # type: ignore[no-redef]
json_key: str # type: ignore[no-redef]
@@ -161,7 +161,7 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
filter_glob: str # type: ignore[no-redef]
use_addon_preferences: bool # type: ignore[no-redef]
extract_textures_into_folder: bool # type: ignore[no-redef]
@@ -302,7 +302,7 @@ def draw(self, _context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
filepath: str # type: ignore[no-redef]
license_confirmations: CollectionPropertyProtocol[ # type: ignore[no-redef]
LicenseConfirmation
@@ -407,7 +407,7 @@ def invoke(self, context: Context, event: Event) -> set[str]:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
filter_glob: str # type: ignore[no-redef]
armature_object_name: str # type: ignore[no-redef]
@@ -507,7 +507,7 @@ def draw(self, context: Context) -> None:
if TYPE_CHECKING:
# This code is auto generated.
- # `poetry run python tools/property_typing.py`
+ # `uv run tools/property_typing.py`
armature_object_name: str # type: ignore[no-redef]
armature_object_name_candidates: CollectionPropertyProtocol[ # type: ignore[no-redef]
StringPropertyGroup
diff --git a/tools/devcontainer_create_venv.sh b/tools/devcontainer_create_venv.sh
index d8f0d0ae5..8eb7cef62 100755
--- a/tools/devcontainer_create_venv.sh
+++ b/tools/devcontainer_create_venv.sh
@@ -2,55 +2,19 @@
set -eu -o pipefail
-# .venvがdevcontainer外のものと混ざるのを防ぐため、
-# .devcontainer内に固有の.venvを作り
-# あとで標準のものと別名でリンクを貼る
-poetry config virtualenvs.in-project false
-
-# x86_64以外の場合はbpyパッケージが存在しないので、システムのものを使う
-[ "$(uname -m)" = "x86_64" ] || poetry config virtualenvs.options.system-site-packages true
-
-# .venv-devcontainerをvenvとした使う
-if [ -L .venv-devcontainer ] ||
- [ ! -e .venv-devcontainer ] ||
- [ ! -e "$(poetry env info --path)" ] ||
- [ "$(readlink --canonicalize-existing .venv-devcontainer)" != "$(readlink --canonicalize-existing "$(poetry env info --path)")" ] \
- ; then
-
- if ! sudo rm -fr .venv-devcontainer; then
- # Docker for Windowsバックエンド切り替え時などに消せないファイルが残ることがある
- echo >&2 # ログ表示成形のため改行出力
- echo >&2 "#################################################################"
- echo >&2 "Failed to remove '.venv-devcontainer'. Please remove it manually."
- echo >&2 "#################################################################"
- exit 1
- fi
-
- # poetry 1.8.2が自動で作るvenvのスクリプトをVSCodeのターミナルが正しく解釈できないので手動で作る。
- # 例えばvenvの名前が "venv" で、シェルのデフォルトのプロンプトが "$" の場合、シェルのプロンプトは
- # 正しくは "(venv) $" となるべきだが、現状のpoetryとVSCodeの組み合わせでは "venv$" になっている。
+if [ ! -e .venv ]; then
if [ "$(uname -m)" = "x86_64" ]; then
- /usr/local/bin/python3 -m venv .venv-devcontainer --prompt venv
+ uv venv --prompt venv
else
# x86_64以外の場合はbpyパッケージが存在しないので、システムのものを使う
- /usr/local/bin/python3 -m venv .venv-devcontainer --prompt venv --system-site-packages
+ uv venv --prompt venv --python /usr/local/bin/python3 --system-site-packages
fi
+fi
- # poetry内部のvenvのパスを得るため、仮のvenvが無い場合は空のpythonコマンドを実行して作る
- poetry run python -c ""
- # 内部のvenvから.venv-devcontainerにリンクを貼る
- poetry_venv_path=$(poetry env info --path)
- mkdir -p .venv-devcontainer "$(dirname "$poetry_venv_path")"
- if [ "$(readlink -f "$poetry_venv_path")" != "$(readlink -f "$PWD/.venv-devcontainer")" ]; then
- sudo rm -fr "$poetry_venv_path"
- ln -fsv "$PWD/.venv-devcontainer" "$poetry_venv_path"
+# 環境によってはパッケージのインストールは5%くらいの頻度で失敗するのでリトライする
+for _ in $(seq 5); do
+ if uv run python -c ''; then # パッケージのインストールを実行
+ break
fi
-
- # 環境によってはpoetry installは5%くらいの頻度で失敗するのでリトライする
- for _ in $(seq 5); do
- if poetry install; then
- break
- fi
- sleep 10
- done
-fi
+ sleep 10
+done
diff --git a/tools/devcontainer_fixup_workspace.sh b/tools/devcontainer_fixup_workspace.sh
index f346ac969..6f15f0051 100755
--- a/tools/devcontainer_fixup_workspace.sh
+++ b/tools/devcontainer_fixup_workspace.sh
@@ -3,9 +3,7 @@
set -eu -o pipefail
# 作業フォルダの所有者やパーミッションを設定する。
-# sudoが強力すぎるため、poetryは経由せずOSのパッケージのみを用いて実行する。
+# sudoが強力すぎるため、uvは経由せずOSのパッケージのみを用いて実行する。
sudo env PYTHONDONTWRITEBYTECODE=1 ./tools/devcontainer_fixup_workspace_files.py
-poetry completions bash >>~/.bash_completion
-
./tools/devcontainer_create_venv.sh
diff --git a/tools/devcontainer_fixup_workspace_files.py b/tools/devcontainer_fixup_workspace_files.py
index c215fc948..376382825 100755
--- a/tools/devcontainer_fixup_workspace_files.py
+++ b/tools/devcontainer_fixup_workspace_files.py
@@ -2,7 +2,7 @@
"""devcontainerの作業フォルダの所有者とパーミッションを正しい値に戻す.
このスクリプトはrootで実行する。rootの権限は強力すぎるため、
-poetryは経由せずOSのパッケージのみを用いて実行する。
+uvは経由せずOSのパッケージのみを用いて実行する。
"""
import functools
diff --git a/tools/devcontainer_update_content_command.sh b/tools/devcontainer_update_content_command.sh
index 8513f3ab4..82892d689 100755
--- a/tools/devcontainer_update_content_command.sh
+++ b/tools/devcontainer_update_content_command.sh
@@ -6,6 +6,8 @@ set -eu -o pipefail
sudo apt-get update
sudo apt-get dist-upgrade --yes
+uv self update
+
./tools/install_hugo.sh
./tools/install_hadolint.sh
./tools/devcontainer_fixup_workspace.sh
diff --git a/tools/format.bat b/tools/format.bat
index 84d42228c..e56cc365e 100644
--- a/tools/format.bat
+++ b/tools/format.bat
@@ -4,8 +4,8 @@ pushd "%~dp0.."
set PYTHONUTF8=1
for /f "tokens=* usebackq" %%f in (`git ls-files "*.py"`) do ( set py_files=!py_files! %%f )
for /f "tokens=* usebackq" %%f in (`git ls-files "*.pyi"`) do ( set pyi_files=!pyi_files! %%f )
-call poetry run ruff format %py_files% %pyi_files%
-call poetry run ruff check --fix %py_files% %pyi_files%
+call uv run ruff format %py_files% %pyi_files%
+call uv run ruff check --fix %py_files% %pyi_files%
echo on
popd
endlocal
diff --git a/tools/format.sh b/tools/format.sh
index db8eb7558..acc21304a 100755
--- a/tools/format.sh
+++ b/tools/format.sh
@@ -4,6 +4,6 @@ set -eux
cd "$(dirname "$0")/.."
-git ls-files "*.py" "*.pyi" | xargs poetry run ruff format
-git ls-files "*.py" "*.pyi" | xargs poetry run ruff check --fix
+git ls-files "*.py" "*.pyi" | xargs uv run ruff format
+git ls-files "*.py" "*.pyi" | xargs uv run ruff check --fix
git ls-files "*.sh" | xargs shfmt -w -s
diff --git a/tools/generate_dynamic_tests.py b/tools/generate_dynamic_tests.py
index 27efbe513..27fb8bb36 100755
--- a/tools/generate_dynamic_tests.py
+++ b/tools/generate_dynamic_tests.py
@@ -9,7 +9,7 @@
from os import environ
from pathlib import Path
-# This is not necessary if executed from poetry
+# This is not necessary if executed from uv
sys.path.append(str(Path(__file__).parent.parent / "src"))
diff --git a/tools/github_code_archive.py b/tools/github_code_archive.py
index 7cc7fa3e4..82e25afb6 100755
--- a/tools/github_code_archive.py
+++ b/tools/github_code_archive.py
@@ -8,7 +8,7 @@
import bpy
-# This is not necessary if executed from poetry
+# This is not necessary if executed from uv
sys.path.append(str(Path(__file__).parent.parent / "src"))
from io_scene_vrm.common import ops
diff --git a/tools/lint.bat b/tools/lint.bat
index a2c83cbf6..367d391fc 100644
--- a/tools/lint.bat
+++ b/tools/lint.bat
@@ -3,18 +3,16 @@ setlocal
setlocal enabledelayedexpansion
pushd "%~dp0.."
set PYTHONUTF8=1
-echo ### poetry check ###
-poetry check
for /f "tokens=* usebackq" %%f in (`git ls-files "*.py"`) do ( set py_files=!py_files! %%f )
for /f "tokens=* usebackq" %%f in (`git ls-files "*.pyi"`) do ( set pyi_files=!pyi_files! %%f )
echo ### ruff ###
-call poetry run ruff check %py_files% %pyi_files%
+call uv run ruff check %py_files% %pyi_files%
echo ### codespell ###
-call poetry run codespell %py_files%
+call uv run codespell %py_files%
echo ### mypy ###
-call poetry run mypy --show-error-codes %py_files% %pyi_files%
+call uv run mypy --show-error-codes %py_files% %pyi_files%
echo ### pyright ###
-call poetry run pyright %py_files% %pyi_files%
+call uv run pyright %py_files% %pyi_files%
popd
endlocal
endlocal
diff --git a/tools/lint.sh b/tools/lint.sh
index c3b39021c..9bfdf613a 100755
--- a/tools/lint.sh
+++ b/tools/lint.sh
@@ -4,11 +4,10 @@ set -eux
cd "$(dirname "$0")/.."
-poetry check
git ls-files "*.sh" | xargs shellcheck
-git ls-files "*.py" "*.pyi" | xargs poetry run ruff check
-git ls-files "*.py" "*.pyi" | xargs poetry run codespell
-git ls-files "*.py" "*.pyi" | xargs poetry run mypy --show-error-codes
-git ls-files "*.py" "*.pyi" | xargs poetry run pyright
+git ls-files "*.py" "*.pyi" | xargs uv run ruff check
+git ls-files "*.py" "*.pyi" | xargs uv run codespell
+git ls-files "*.py" "*.pyi" | xargs uv run mypy --show-error-codes
+git ls-files "*.py" "*.pyi" | xargs uv run pyright
git ls-files "*.sh" | xargs shfmt -d -s
git ls-files "*/Dockerfile" "*.dockerfile" | xargs hadolint
diff --git a/tools/optimize_custom_dictionary.sh b/tools/optimize_custom_dictionary.sh
index 8a3981c15..820aabffa 100755
--- a/tools/optimize_custom_dictionary.sh
+++ b/tools/optimize_custom_dictionary.sh
@@ -9,7 +9,7 @@ seq "$(wc -l dictionary.txt | awk '{print $1}')" | while read -r n; do
if diff -u dictionary.txt removed.tmp; then
break
fi
- if ! (git ls-files "*.py" | xargs poetry run flake8 --enable-extensions flake8-spellcheck --whitelist removed.tmp); then
+ if ! (git ls-files "*.py" | xargs uv run flake8 --enable-extensions flake8-spellcheck --whitelist removed.tmp); then
break
fi
cp removed.tmp dictionary.txt
diff --git a/tools/property_typing.py b/tools/property_typing.py
index f61fc4542..35f1573bd 100755
--- a/tools/property_typing.py
+++ b/tools/property_typing.py
@@ -194,7 +194,7 @@ def update_property_typing(
another_def_start_index - 1,
" if TYPE_CHECKING:\n"
+ " # This code is auto generated.\n"
- + " # `poetry run python tools/property_typing.py`\n"
+ + " # `uv run tools/property_typing.py`\n"
+ typing_code,
)
@@ -317,7 +317,7 @@ def main() -> int:
if not ops_path.exists():
ops_path.write_text(
"# This code is auto generated.\n"
- + "# `poetry run python tools/property_typing.py`\n\n"
+ + "# `uv run tools/property_typing.py`\n\n"
+ "from collections.abc import Mapping, Sequence\n"
+ "from typing import Optional, Union\n\n"
+ "import bpy\n\n\n"
diff --git a/tools/test.bat b/tools/test.bat
index ed6457add..b6fe40652 100644
--- a/tools/test.bat
+++ b/tools/test.bat
@@ -1,6 +1,6 @@
setlocal
pushd "%~dp0.."
-call poetry run python -m unittest discover
+call uv run python -m unittest discover
echo on
popd
endlocal
diff --git a/tools/test.sh b/tools/test.sh
index 3ca125c8b..7016129ba 100755
--- a/tools/test.sh
+++ b/tools/test.sh
@@ -4,4 +4,4 @@ set -eux
cd "$(dirname "$0")/.."
-poetry run python -m unittest discover
+uv run python -m unittest discover
diff --git a/tools/unittest_discover.py b/tools/unittest_discover.py
index 09ae1026b..793a0eb61 100755
--- a/tools/unittest_discover.py
+++ b/tools/unittest_discover.py
@@ -7,7 +7,7 @@
from pathlib import Path
from typing import TextIO
-# This is not necessary if executed from poetry
+# This is not necessary if executed from uv
sys.path.append(str(Path(__file__).parent.parent / "src"))
diff --git a/typings/pyproject.toml b/typings/pyproject.toml
index f74ec1c07..65729bae7 100644
--- a/typings/pyproject.toml
+++ b/typings/pyproject.toml
@@ -1,22 +1,19 @@
[project]
-requires-python = ">=3.9"
-
-[tool.poetry]
-name = "starry-bpy-type-stubs"
+name = "starry-bpy-typings"
version = "1.0.0"
-description = ""
-authors = ["Isamu Mogi "]
readme = "README.md"
+
+[tool.hatch.build.targets.wheel]
packages = [
- { include = "addon_utils-stubs" },
- { include = "bgl-stubs" },
- { include = "bmesh-stubs" },
- { include = "bpy-stubs" },
- { include = "bpy_extras-stubs" },
- { include = "gpu-stubs" },
- { include = "gpu_extras-stubs" },
- { include = "idprop-stubs" },
- { include = "mathutils-stubs" },
+ "addon_utils-stubs",
+ "bgl-stubs",
+ "bmesh-stubs",
+ "bpy-stubs",
+ "bpy_extras-stubs",
+ "gpu-stubs",
+ "gpu_extras-stubs",
+ "idprop-stubs",
+ "mathutils-stubs",
]
[tool.ruff]
@@ -39,5 +36,5 @@ extend-ignore = [
max-args = 75
[build-system]
-requires = ["poetry-core"]
-build-backend = "poetry.core.masonry.api"
+requires = ["hatchling"]
+build-backend = "hatchling.build"
diff --git a/uv.lock b/uv.lock
new file mode 100644
index 000000000..64d237f4c
--- /dev/null
+++ b/uv.lock
@@ -0,0 +1,589 @@
+version = 1
+requires-python = "==3.10.*"
+resolution-markers = [
+ "platform_machine == 'x86_64' and platform_system == 'Darwin'",
+ "platform_machine == 'arm64' and platform_system == 'Darwin'",
+ "platform_machine == 'x86_64' and platform_system == 'Linux'",
+ "platform_machine == 'AMD64' and platform_system == 'Windows'",
+ "(platform_machine != 'AMD64' and platform_machine != 'arm64' and platform_machine != 'x86_64') or (platform_machine == 'AMD64' and platform_system != 'Windows') or (platform_machine == 'arm64' and platform_system != 'Darwin') or (platform_machine == 'x86_64' and platform_system != 'Darwin' and platform_system != 'Linux')",
+]
+
+[[package]]
+name = "bpy"
+version = "3.6.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cython", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+ { name = "numpy", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+ { name = "requests", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+ { name = "zstandard", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+]
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/22/bf/32f0723c5debedec561c2b127bc108065717a244ad28ed2311207d8f3812/bpy-3.6.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1215d5b972fd71ae1ddcb45108e25b2b3a0d7b89645365bca01341604dcecb5f", size = 183288309 },
+ { url = "https://files.pythonhosted.org/packages/da/0a/9812143e513da42d6c174f818737dbbd73231cf23754aa02a5328ee41dd4/bpy-3.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4bc8bb77cc88143e78c04645351a7791d0e412c84f78a4771e68052ecac7d41c", size = 167979413 },
+ { url = "https://files.pythonhosted.org/packages/9c/cf/536e231d0fff186e46668ae701f6788cdd740ff48545dadfad234bb0255b/bpy-3.6.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ede2c95ace7848f4f5a075a7d8cc3a9e643c335f4596c3c15087d93c7ae5f56a", size = 371432584 },
+ { url = "https://files.pythonhosted.org/packages/c6/1a/95b2f5d6e58ae6fe9e0651bfc1fa20d31b5e74b9a090f174a252f99297a1/bpy-3.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:3b4a9d2add44c4689435ee1e7b18cbb4c2be49149443825d9c6181dfb60b4381", size = 319296846 },
+]
+
+[[package]]
+name = "certifi"
+version = "2024.7.4"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/c2/02/a95f2b11e207f68bc64d7aae9666fed2e2b3f307748d5123dffb72a1bbea/certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b", size = 164065 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/1c/d5/c84e1a17bf61d4df64ca866a1c9a913874b4e9bdc131ec689a0ad013fb36/certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90", size = 162960 },
+]
+
+[[package]]
+name = "cffi"
+version = "1.17.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "pycparser", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/1e/bf/82c351342972702867359cfeba5693927efe0a8dd568165490144f554b18/cffi-1.17.0.tar.gz", hash = "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76", size = 516073 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/00/2a/9071bf1e20bf9f695643b6c3e0f838f340b95ee29de0d1bb7968772409be/cffi-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb", size = 181841 },
+ { url = "https://files.pythonhosted.org/packages/4b/42/60116f10466d692b64aef32ac40fd79b11344ab6ef889ff8e3d047f2fcb2/cffi-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a", size = 178242 },
+ { url = "https://files.pythonhosted.org/packages/26/8e/a53f844454595c6e9215e56cda123db3427f8592f2c7b5ef1be782f620d6/cffi-1.17.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42", size = 425676 },
+ { url = "https://files.pythonhosted.org/packages/60/ac/6402563fb40b64c7ccbea87836d9c9498b374629af3449f3d8ff34df187d/cffi-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d", size = 447842 },
+ { url = "https://files.pythonhosted.org/packages/b2/e7/e2ffdb8de59f48f17b196813e9c717fbed2364e39b10bdb3836504e89486/cffi-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2", size = 455224 },
+ { url = "https://files.pythonhosted.org/packages/59/55/3e8968e92fe35c1c368959a070a1276c10cae29cdad0fd0daa36c69e237e/cffi-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab", size = 436341 },
+ { url = "https://files.pythonhosted.org/packages/7f/df/700aaf009dfbfa04acb1ed487586c03c788c6a312f0361ad5f298c5f5a7d/cffi-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b", size = 445861 },
+ { url = "https://files.pythonhosted.org/packages/5a/70/637f070aae533ea11ab77708a820f3935c0edb4fbcef9393b788e6f426a5/cffi-1.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206", size = 460982 },
+ { url = "https://files.pythonhosted.org/packages/f7/1a/7d4740fa1ccc4fcc888963fc3165d69ef1a2c8d42c8911c946703ff5d4a5/cffi-1.17.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa", size = 438434 },
+ { url = "https://files.pythonhosted.org/packages/d0/d9/c48cc38aaf6f53a8b5d2dbf6fe788410fcbab33b15a69c56c01d2b08f6a2/cffi-1.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f", size = 461219 },
+ { url = "https://files.pythonhosted.org/packages/26/ec/b6a7f660a7f27bd2bb53fe99a2ccafa279088395ec8639b25b8950985b2d/cffi-1.17.0-cp310-cp310-win32.whl", hash = "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc", size = 171406 },
+ { url = "https://files.pythonhosted.org/packages/08/42/8c00824787e6f5ec55194f5cd30c4ba4b9d9d5bb0d4d0007b1bb948d4ad4/cffi-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2", size = 180809 },
+ { url = "https://files.pythonhosted.org/packages/53/cc/9298fb6235522e00e47d78d6aa7f395332ef4e5f6fe124f9a03aa60600f7/cffi-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720", size = 181912 },
+ { url = "https://files.pythonhosted.org/packages/e7/79/dc5334fbe60635d0846c56597a8d2af078a543ff22bc48d36551a0de62c2/cffi-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9", size = 178297 },
+ { url = "https://files.pythonhosted.org/packages/39/d7/ef1b6b16b51ccbabaced90ff0d821c6c23567fc4b2e4a445aea25d3ceb92/cffi-1.17.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb", size = 444909 },
+ { url = "https://files.pythonhosted.org/packages/29/b8/6e3c61885537d985c78ef7dd779b68109ba256263d74a2f615c40f44548d/cffi-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424", size = 468854 },
+ { url = "https://files.pythonhosted.org/packages/0b/49/adad1228e19b931e523c2731e6984717d5f9e33a2f9971794ab42815b29b/cffi-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d", size = 476890 },
+ { url = "https://files.pythonhosted.org/packages/76/54/c00f075c3e7fd14d9011713bcdb5b4f105ad044c5ad948db7b1a0a7e4e78/cffi-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8", size = 459374 },
+ { url = "https://files.pythonhosted.org/packages/f3/b9/f163bb3fa4fbc636ee1f2a6a4598c096cdef279823ddfaa5734e556dd206/cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6", size = 466891 },
+ { url = "https://files.pythonhosted.org/packages/31/52/72bbc95f6d06ff2e88a6fa13786be4043e542cb24748e1351aba864cb0a7/cffi-1.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91", size = 477658 },
+ { url = "https://files.pythonhosted.org/packages/67/20/d694811457eeae0c7663fa1a7ca201ce495533b646c1180d4ac25684c69c/cffi-1.17.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8", size = 453890 },
+ { url = "https://files.pythonhosted.org/packages/dc/79/40cbf5739eb4f694833db5a27ce7f63e30a9b25b4a836c4f25fb7272aacc/cffi-1.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb", size = 478254 },
+ { url = "https://files.pythonhosted.org/packages/e9/eb/2c384c385cca5cae67ca10ac4ef685277680b8c552b99aedecf4ea23ff7e/cffi-1.17.0-cp311-cp311-win32.whl", hash = "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9", size = 171285 },
+ { url = "https://files.pythonhosted.org/packages/ca/42/74cb1e0f1b79cb64672f3cb46245b506239c1297a20c0d9c3aeb3929cb0c/cffi-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0", size = 180842 },
+ { url = "https://files.pythonhosted.org/packages/1a/1f/7862231350cc959a3138889d2c8d33da7042b22e923457dfd4cd487d772a/cffi-1.17.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc", size = 182826 },
+ { url = "https://files.pythonhosted.org/packages/8b/8c/26119bf8b79e05a1c39812064e1ee7981e1f8a5372205ba5698ea4dd958d/cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59", size = 178494 },
+ { url = "https://files.pythonhosted.org/packages/61/94/4882c47d3ad396d91f0eda6ef16d45be3d752a332663b7361933039ed66a/cffi-1.17.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb", size = 454459 },
+ { url = "https://files.pythonhosted.org/packages/0f/7c/a6beb119ad515058c5ee1829742d96b25b2b9204ff920746f6e13bf574eb/cffi-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195", size = 478502 },
+ { url = "https://files.pythonhosted.org/packages/61/8a/2575cd01a90e1eca96a30aec4b1ac101a6fae06c49d490ac2704fa9bc8ba/cffi-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e", size = 485381 },
+ { url = "https://files.pythonhosted.org/packages/cd/66/85899f5a9f152db49646e0c77427173e1b77a1046de0191ab3b0b9a5e6e3/cffi-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828", size = 470907 },
+ { url = "https://files.pythonhosted.org/packages/00/13/150924609bf377140abe6e934ce0a57f3fc48f1fd956ec1f578ce97a4624/cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150", size = 479074 },
+ { url = "https://files.pythonhosted.org/packages/17/fd/7d73d7110155c036303b0a6462c56250e9bc2f4119d7591d27417329b4d1/cffi-1.17.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a", size = 484225 },
+ { url = "https://files.pythonhosted.org/packages/fc/83/8353e5c9b01bb46332dac3dfb18e6c597a04ceb085c19c814c2f78a8c0d0/cffi-1.17.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885", size = 488388 },
+ { url = "https://files.pythonhosted.org/packages/73/0c/f9d5ca9a095b1fc88ef77d1f8b85d11151c374144e4606da33874e17b65b/cffi-1.17.0-cp312-cp312-win32.whl", hash = "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492", size = 172096 },
+ { url = "https://files.pythonhosted.org/packages/72/21/8c5d285fe20a6e31d29325f1287bb0e55f7d93630a5a44cafdafb5922495/cffi-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2", size = 181478 },
+ { url = "https://files.pythonhosted.org/packages/17/8f/581f2f3c3464d5f7cf87c2f7a5ba9acc6976253e02d73804240964243ec2/cffi-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118", size = 182638 },
+ { url = "https://files.pythonhosted.org/packages/8d/1c/c9afa66684b7039f48018eb11b229b659dfb32b7a16b88251bac106dd1ff/cffi-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7", size = 178453 },
+ { url = "https://files.pythonhosted.org/packages/cc/b6/1a134d479d3a5a1ff2fabbee551d1d3f1dd70f453e081b5f70d604aae4c0/cffi-1.17.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377", size = 454441 },
+ { url = "https://files.pythonhosted.org/packages/b1/b4/e1569475d63aad8042b0935dbf62ae2a54d1e9142424e2b0e924d2d4a529/cffi-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb", size = 478543 },
+ { url = "https://files.pythonhosted.org/packages/d2/40/a9ad03fbd64309dec5bb70bc803a9a6772602de0ee164d7b9a6ca5a89249/cffi-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555", size = 485463 },
+ { url = "https://files.pythonhosted.org/packages/a6/1a/f10be60e006dd9242a24bcc2b1cd55c34c578380100f742d8c610f7a5d26/cffi-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204", size = 470854 },
+ { url = "https://files.pythonhosted.org/packages/cc/b3/c035ed21aa3d39432bd749fe331ee90e4bc83ea2dbed1f71c4bc26c41084/cffi-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f", size = 479096 },
+ { url = "https://files.pythonhosted.org/packages/00/cb/6f7edde01131de9382c89430b8e253b8c8754d66b63a62059663ceafeab2/cffi-1.17.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0", size = 484013 },
+ { url = "https://files.pythonhosted.org/packages/b9/83/8e4e8c211ea940210d293e951bf06b1bfb90f2eeee590e9778e99b4a8676/cffi-1.17.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4", size = 488119 },
+ { url = "https://files.pythonhosted.org/packages/5e/52/3f7cfbc4f444cb4f73ff17b28690d12436dde665f67d68f1e1687908ab6c/cffi-1.17.0-cp313-cp313-win32.whl", hash = "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a", size = 172122 },
+ { url = "https://files.pythonhosted.org/packages/94/19/cf5baa07ee0f0e55eab7382459fbddaba0fdb0ba45973dd92556ae0d02db/cffi-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7", size = 181504 },
+]
+
+[[package]]
+name = "charset-normalizer"
+version = "3.3.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", size = 104809 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/2b/61/095a0aa1a84d1481998b534177c8566fdc50bb1233ea9a0478cd3cc075bd/charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", size = 194219 },
+ { url = "https://files.pythonhosted.org/packages/cc/94/f7cf5e5134175de79ad2059edf2adce18e0685ebdb9227ff0139975d0e93/charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", size = 122521 },
+ { url = "https://files.pythonhosted.org/packages/46/6a/d5c26c41c49b546860cc1acabdddf48b0b3fb2685f4f5617ac59261b44ae/charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", size = 120383 },
+ { url = "https://files.pythonhosted.org/packages/b8/60/e2f67915a51be59d4539ed189eb0a2b0d292bf79270410746becb32bc2c3/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", size = 138223 },
+ { url = "https://files.pythonhosted.org/packages/05/8c/eb854996d5fef5e4f33ad56927ad053d04dc820e4a3d39023f35cad72617/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", size = 148101 },
+ { url = "https://files.pythonhosted.org/packages/f6/93/bb6cbeec3bf9da9b2eba458c15966658d1daa8b982c642f81c93ad9b40e1/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", size = 140699 },
+ { url = "https://files.pythonhosted.org/packages/da/f1/3702ba2a7470666a62fd81c58a4c40be00670e5006a67f4d626e57f013ae/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", size = 142065 },
+ { url = "https://files.pythonhosted.org/packages/3f/ba/3f5e7be00b215fa10e13d64b1f6237eb6ebea66676a41b2bcdd09fe74323/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", size = 144505 },
+ { url = "https://files.pythonhosted.org/packages/33/c3/3b96a435c5109dd5b6adc8a59ba1d678b302a97938f032e3770cc84cd354/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", size = 139425 },
+ { url = "https://files.pythonhosted.org/packages/43/05/3bf613e719efe68fb3a77f9c536a389f35b95d75424b96b426a47a45ef1d/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", size = 145287 },
+ { url = "https://files.pythonhosted.org/packages/58/78/a0bc646900994df12e07b4ae5c713f2b3e5998f58b9d3720cce2aa45652f/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", size = 149929 },
+ { url = "https://files.pythonhosted.org/packages/eb/5c/97d97248af4920bc68687d9c3b3c0f47c910e21a8ff80af4565a576bd2f0/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", size = 141605 },
+ { url = "https://files.pythonhosted.org/packages/a8/31/47d018ef89f95b8aded95c589a77c072c55e94b50a41aa99c0a2008a45a4/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", size = 142646 },
+ { url = "https://files.pythonhosted.org/packages/ae/d5/4fecf1d58bedb1340a50f165ba1c7ddc0400252d6832ff619c4568b36cc0/charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", size = 92846 },
+ { url = "https://files.pythonhosted.org/packages/a2/a0/4af29e22cb5942488cf45630cbdd7cefd908768e69bdd90280842e4e8529/charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", size = 100343 },
+ { url = "https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", size = 191647 },
+ { url = "https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", size = 121434 },
+ { url = "https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", size = 118979 },
+ { url = "https://files.pythonhosted.org/packages/e4/a6/7ee57823d46331ddc37dd00749c95b0edec2c79b15fc0d6e6efb532e89ac/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", size = 136582 },
+ { url = "https://files.pythonhosted.org/packages/74/f1/0d9fe69ac441467b737ba7f48c68241487df2f4522dd7246d9426e7c690e/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", size = 146645 },
+ { url = "https://files.pythonhosted.org/packages/05/31/e1f51c76db7be1d4aef220d29fbfa5dbb4a99165d9833dcbf166753b6dc0/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", size = 139398 },
+ { url = "https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", size = 140273 },
+ { url = "https://files.pythonhosted.org/packages/07/07/7e554f2bbce3295e191f7e653ff15d55309a9ca40d0362fcdab36f01063c/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", size = 142577 },
+ { url = "https://files.pythonhosted.org/packages/d8/b5/eb705c313100defa57da79277d9207dc8d8e45931035862fa64b625bfead/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", size = 137747 },
+ { url = "https://files.pythonhosted.org/packages/19/28/573147271fd041d351b438a5665be8223f1dd92f273713cb882ddafe214c/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", size = 143375 },
+ { url = "https://files.pythonhosted.org/packages/cf/7c/f3b682fa053cc21373c9a839e6beba7705857075686a05c72e0f8c4980ca/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", size = 148474 },
+ { url = "https://files.pythonhosted.org/packages/1e/49/7ab74d4ac537ece3bc3334ee08645e231f39f7d6df6347b29a74b0537103/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", size = 140232 },
+ { url = "https://files.pythonhosted.org/packages/2d/dc/9dacba68c9ac0ae781d40e1a0c0058e26302ea0660e574ddf6797a0347f7/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", size = 140859 },
+ { url = "https://files.pythonhosted.org/packages/6c/c2/4a583f800c0708dd22096298e49f887b49d9746d0e78bfc1d7e29816614c/charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", size = 92509 },
+ { url = "https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", size = 99870 },
+ { url = "https://files.pythonhosted.org/packages/d1/b2/fcedc8255ec42afee97f9e6f0145c734bbe104aac28300214593eb326f1d/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", size = 192892 },
+ { url = "https://files.pythonhosted.org/packages/2e/7d/2259318c202f3d17f3fe6438149b3b9e706d1070fe3fcbb28049730bb25c/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", size = 122213 },
+ { url = "https://files.pythonhosted.org/packages/3a/52/9f9d17c3b54dc238de384c4cb5a2ef0e27985b42a0e5cc8e8a31d918d48d/charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", size = 119404 },
+ { url = "https://files.pythonhosted.org/packages/99/b0/9c365f6d79a9f0f3c379ddb40a256a67aa69c59609608fe7feb6235896e1/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", size = 137275 },
+ { url = "https://files.pythonhosted.org/packages/91/33/749df346e93d7a30cdcb90cbfdd41a06026317bfbfb62cd68307c1a3c543/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", size = 147518 },
+ { url = "https://files.pythonhosted.org/packages/72/1a/641d5c9f59e6af4c7b53da463d07600a695b9824e20849cb6eea8a627761/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", size = 140182 },
+ { url = "https://files.pythonhosted.org/packages/ee/fb/14d30eb4956408ee3ae09ad34299131fb383c47df355ddb428a7331cfa1e/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", size = 141869 },
+ { url = "https://files.pythonhosted.org/packages/df/3e/a06b18788ca2eb6695c9b22325b6fde7dde0f1d1838b1792a0076f58fe9d/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", size = 144042 },
+ { url = "https://files.pythonhosted.org/packages/45/59/3d27019d3b447a88fe7e7d004a1e04be220227760264cc41b405e863891b/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", size = 138275 },
+ { url = "https://files.pythonhosted.org/packages/7b/ef/5eb105530b4da8ae37d506ccfa25057961b7b63d581def6f99165ea89c7e/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", size = 144819 },
+ { url = "https://files.pythonhosted.org/packages/a2/51/e5023f937d7f307c948ed3e5c29c4b7a3e42ed2ee0b8cdf8f3a706089bf0/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", size = 149415 },
+ { url = "https://files.pythonhosted.org/packages/24/9d/2e3ef673dfd5be0154b20363c5cdcc5606f35666544381bee15af3778239/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", size = 141212 },
+ { url = "https://files.pythonhosted.org/packages/5b/ae/ce2c12fcac59cb3860b2e2d76dc405253a4475436b1861d95fe75bdea520/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", size = 142167 },
+ { url = "https://files.pythonhosted.org/packages/ed/3a/a448bf035dce5da359daf9ae8a16b8a39623cc395a2ffb1620aa1bce62b0/charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", size = 93041 },
+ { url = "https://files.pythonhosted.org/packages/b6/7c/8debebb4f90174074b827c63242c23851bdf00a532489fba57fef3416e40/charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", size = 100397 },
+ { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543 },
+]
+
+[[package]]
+name = "codespell"
+version = "2.3.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/a0/a9/98353dfc7afcdf18cffd2dd3e959a25eaaf2728cf450caa59af89648a8e4/codespell-2.3.0.tar.gz", hash = "sha256:360c7d10f75e65f67bad720af7007e1060a5d395670ec11a7ed1fed9dd17471f", size = 329791 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/0e/20/b6019add11e84f821184234cea0ad91442373489ef7ccfa3d73a71b908fa/codespell-2.3.0-py3-none-any.whl", hash = "sha256:a9c7cef2501c9cfede2110fd6d4e5e62296920efe9abfb84648df866e47f58d1", size = 329167 },
+]
+
+[[package]]
+name = "colorama"
+version = "0.4.6"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
+]
+
+[[package]]
+name = "cython"
+version = "3.0.11"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/84/4d/b720d6000f4ca77f030bd70f12550820f0766b568e43f11af7f7ad9061aa/cython-3.0.11.tar.gz", hash = "sha256:7146dd2af8682b4ca61331851e6aebce9fe5158e75300343f80c07ca80b1faff", size = 2755544 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/13/7f/ab5796a0951328d7818b771c36fe7e1a2077cffa28c917d9fa4a642728c3/Cython-3.0.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:44292aae17524abb4b70a25111fe7dec1a0ad718711d47e3786a211d5408fdaa", size = 3100879 },
+ { url = "https://files.pythonhosted.org/packages/d8/3b/67480e609537e9fc899864847910ded481b82d033fea1b7fcf85893a2fc4/Cython-3.0.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a75d45fbc20651c1b72e4111149fed3b33d270b0a4fb78328c54d965f28d55e1", size = 3461957 },
+ { url = "https://files.pythonhosted.org/packages/f0/89/b1ae45689abecca777f95462781a76e67ff46b55495a481ec5a73a739994/Cython-3.0.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d89a82937ce4037f092e9848a7bbcc65bc8e9fc9aef2bb74f5c15e7d21a73080", size = 3627062 },
+ { url = "https://files.pythonhosted.org/packages/44/77/a651da74d5d41c6045bbe0b6990b1515bf4850cd7a8d8580333c90dfce2e/Cython-3.0.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a8ea2e7e2d3bc0d8630dafe6c4a5a89485598ff8a61885b74f8ed882597efd5", size = 3680431 },
+ { url = "https://files.pythonhosted.org/packages/59/45/60e7e8db93c3eb8b2af8c64020c1fa502e355f4b762886a24d46e433f395/Cython-3.0.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cee29846471ce60226b18e931d8c1c66a158db94853e3e79bc2da9bd22345008", size = 3497314 },
+ { url = "https://files.pythonhosted.org/packages/f8/0b/6919025958926625319f83523ee7f45e7e7ae516b8054dcff6eb710daf32/Cython-3.0.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eeb6860b0f4bfa402de8929833fe5370fa34069c7ebacb2d543cb017f21fb891", size = 3709091 },
+ { url = "https://files.pythonhosted.org/packages/52/3c/c21b9b9271dfaa46fa2938de730f62fc94b9c2ec25ec400585e372f35dcd/Cython-3.0.11-cp310-cp310-win32.whl", hash = "sha256:3699391125ab344d8d25438074d1097d9ba0fb674d0320599316cfe7cf5f002a", size = 2576110 },
+ { url = "https://files.pythonhosted.org/packages/f9/de/19fdd1c7a52e0534bf5f544e0346c15d71d20338dbd013117f763b94613f/Cython-3.0.11-cp310-cp310-win_amd64.whl", hash = "sha256:d02f4ebe15aac7cdacce1a628e556c1983f26d140fd2e0ac5e0a090e605a2d38", size = 2776386 },
+ { url = "https://files.pythonhosted.org/packages/f8/73/e55be864199cd674cb3426a052726c205589b1ac66fb0090e7fe793b60b3/Cython-3.0.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75ba1c70b6deeaffbac123856b8d35f253da13552207aa969078611c197377e4", size = 3113599 },
+ { url = "https://files.pythonhosted.org/packages/09/c9/537108d0980beffff55336baaf8b34162ad0f3f33ededcb5db07069bc8ef/Cython-3.0.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af91497dc098718e634d6ec8f91b182aea6bb3690f333fc9a7777bc70abe8810", size = 3441131 },
+ { url = "https://files.pythonhosted.org/packages/93/03/e330b241ad8aa12bb9d98b58fb76d4eb7dcbe747479aab5c29fce937b9e7/Cython-3.0.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3999fb52d3328a6a5e8c63122b0a8bd110dfcdb98dda585a3def1426b991cba7", size = 3595065 },
+ { url = "https://files.pythonhosted.org/packages/4a/84/a3c40f2c0439d425daa5aa4e3a6fdbbb41341a14a6fd97f94906f528d9a4/Cython-3.0.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d566a4e09b8979be8ab9f843bac0dd216c81f5e5f45661a9b25cd162ed80508c", size = 3641667 },
+ { url = "https://files.pythonhosted.org/packages/6d/93/bdb61e0254ed8f1d21a14088a473584ecb1963d68dba5682158aa45c70ef/Cython-3.0.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:46aec30f217bdf096175a1a639203d44ac73a36fe7fa3dd06bd012e8f39eca0f", size = 3503650 },
+ { url = "https://files.pythonhosted.org/packages/f8/62/0da548144c71176155ff5355c4cc40fb28b9effe22e830b55cec8072bdf2/Cython-3.0.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ddd1fe25af330f4e003421636746a546474e4ccd8f239f55d2898d80983d20ed", size = 3709662 },
+ { url = "https://files.pythonhosted.org/packages/56/d3/d9c9eaf3611a9fe5256266d07b6a5f9069aa84d20d9f6aa5824289513315/Cython-3.0.11-cp311-cp311-win32.whl", hash = "sha256:221de0b48bf387f209003508e602ce839a80463522fc6f583ad3c8d5c890d2c1", size = 2577870 },
+ { url = "https://files.pythonhosted.org/packages/fd/10/236fcc0306f85a2db1b8bc147aea714b66a2f27bac4d9e09e5b2c5d5dcca/Cython-3.0.11-cp311-cp311-win_amd64.whl", hash = "sha256:3ff8ac1f0ecd4f505db4ab051e58e4531f5d098b6ac03b91c3b902e8d10c67b3", size = 2785053 },
+ { url = "https://files.pythonhosted.org/packages/58/50/fbb23239efe2183e4eaf76689270d6f5b3bbcf9be9ad1eb97cc34349e6fc/Cython-3.0.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:11996c40c32abf843ba652a6d53cb15944c88d91f91fc4e6f0028f5df8a8f8a1", size = 3141274 },
+ { url = "https://files.pythonhosted.org/packages/87/e5/76379edb21fd5bb9e2aaa1d305492bc35bba96dfb51f5d96867d9863b6df/Cython-3.0.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63f2c892e9f9c1698ecfee78205541623eb31cd3a1b682668be7ac12de94aa8e", size = 3340904 },
+ { url = "https://files.pythonhosted.org/packages/9a/ef/44af6aded89444dc45f4466ff207a05d3376c641cf1146c03fd14c55ae64/Cython-3.0.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b14c24f1dc4c4c9d997cca8d1b7fb01187a218aab932328247dcf5694a10102", size = 3514052 },
+ { url = "https://files.pythonhosted.org/packages/e0/d5/ef8c7b6aa7a83c508f5c3bf0dfb9eb0a2a9be910c0b1f205f842128269c3/Cython-3.0.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c8eed5c015685106db15dd103fd040948ddca9197b1dd02222711815ea782a27", size = 3573721 },
+ { url = "https://files.pythonhosted.org/packages/e5/4a/58d6c208563504a35febff94904bb291b368a8b0f28a5e0593c770967caa/Cython-3.0.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780f89c95b8aec1e403005b3bf2f0a2afa060b3eba168c86830f079339adad89", size = 3393594 },
+ { url = "https://files.pythonhosted.org/packages/a0/92/a60a400be286dc661609da9db903680bba1423362000b689cf8ef0aec811/Cython-3.0.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a690f2ff460682ea985e8d38ec541be97e0977fa0544aadc21efc116ff8d7579", size = 3601319 },
+ { url = "https://files.pythonhosted.org/packages/ac/11/f02fc24d1a071b93e1d07497b0a528687b1f93bb4945c635119480fab3c0/Cython-3.0.11-cp312-cp312-win32.whl", hash = "sha256:2252b5aa57621848e310fe7fa6f7dce5f73aa452884a183d201a8bcebfa05a00", size = 2608335 },
+ { url = "https://files.pythonhosted.org/packages/35/00/78ffea3a0ab176267a25ff049518b2582db7ac265bbf27944243d1a81ce2/Cython-3.0.11-cp312-cp312-win_amd64.whl", hash = "sha256:da394654c6da15c1d37f0b7ec5afd325c69a15ceafee2afba14b67a5df8a82c8", size = 2792586 },
+ { url = "https://files.pythonhosted.org/packages/eb/19/1d7164b724f62b67c59aa3531a2be8ed1a0c7e4e80afcc6502d8409c4ee3/Cython-3.0.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4341d6a64d47112884e0bcf31e6c075268220ee4cd02223047182d4dda94d637", size = 3134881 },
+ { url = "https://files.pythonhosted.org/packages/0a/d7/8d834d7ec4b6e55db857f44e328246d40cb527917040fabf3c48d27609b3/Cython-3.0.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:351955559b37e6c98b48aecb178894c311be9d731b297782f2b78d111f0c9015", size = 3330582 },
+ { url = "https://files.pythonhosted.org/packages/1c/ae/d520f3cd94a8926bc47275a968e51bbc669a28f27a058cdfc5c3081fbbf7/Cython-3.0.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c02361af9bfa10ff1ccf967fc75159e56b1c8093caf565739ed77a559c1f29f", size = 3503750 },
+ { url = "https://files.pythonhosted.org/packages/6e/e4/45c556f4a6d40b6938368d420d3c985bbef9088b7d4a8d8c6648d50e4a94/Cython-3.0.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6823aef13669a32caf18bbb036de56065c485d9f558551a9b55061acf9c4c27f", size = 3566498 },
+ { url = "https://files.pythonhosted.org/packages/ce/2d/544f6aa3cab31b99ddb07e7eaaaca6a43db52fe0dc59090195c48fc0b033/Cython-3.0.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6fb68cef33684f8cc97987bee6ae919eee7e18ee6a3ad7ed9516b8386ef95ae6", size = 3389063 },
+ { url = "https://files.pythonhosted.org/packages/55/1a/9d871cc1514df273cd2ccfe3efe5ff1df509ce11768c02a834052709f152/Cython-3.0.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:790263b74432cb997740d73665f4d8d00b9cd1cecbdd981d93591ddf993d4f12", size = 3596353 },
+ { url = "https://files.pythonhosted.org/packages/47/4e/4db412f595de4b2224a81ea5332ce107ce3e93bf87275c78648f2e3e37b8/Cython-3.0.11-cp313-cp313-win32.whl", hash = "sha256:e6dd395d1a704e34a9fac00b25f0036dce6654c6b898be6f872ac2bb4f2eda48", size = 2602768 },
+ { url = "https://files.pythonhosted.org/packages/e7/91/8a29e1bce2f8a893a4c24874943b64e8ede14fac9990bd4a3f13a46c2720/Cython-3.0.11-cp313-cp313-win_amd64.whl", hash = "sha256:52186101d51497519e99b60d955fd5cb3bf747c67f00d742e70ab913f1e42d31", size = 2784414 },
+ { url = "https://files.pythonhosted.org/packages/43/39/bdbec9142bc46605b54d674bf158a78b191c2b75be527c6dcf3e6dfe90b8/Cython-3.0.11-py2.py3-none-any.whl", hash = "sha256:0e25f6425ad4a700d7f77cd468da9161e63658837d1bc34861a9861a4ef6346d", size = 1171267 },
+]
+
+[[package]]
+name = "dulwich"
+version = "0.22.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "setuptools", marker = "python_full_version >= '3.12'" },
+ { name = "urllib3" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/cf/ac/cf6420b90832c4ffbc88b92962dd0167c58632c2b8d508d5baf4ecb0c61d/dulwich-0.22.1.tar.gz", hash = "sha256:e36d85967cfbf25da1c7bc3d6921adc5baa976969d926aaf1582bd5fd7e94758", size = 395260 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/00/26/73b93a822e5b80392f9957718fb48d2e3ae68fc03622515d1f640ea05070/dulwich-0.22.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:892914dc2e80403d16e59a3b440044f6092fde5ffd4ec1fdf36d6ff20a8e624d", size = 881774 },
+ { url = "https://files.pythonhosted.org/packages/62/45/c663da77e3799057e561432b74967f3348cc985a2bdab433a7b01106611c/dulwich-0.22.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b03092399f0f5d3e112405b890128afdb9e1f203eafb812f5d9105b0f5fac9d4", size = 979129 },
+ { url = "https://files.pythonhosted.org/packages/3e/51/fe800a6effe2195b67119497979d45a68d38d0ae18705b107e5cfc231788/dulwich-0.22.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a2c790517ed884bc1b1590806222ab44989eeb7e7f14dfa915561c7ee3b9ac73", size = 1031606 },
+ { url = "https://files.pythonhosted.org/packages/97/e2/13496538bf3c3cb2b468233d59322fc0644d69f0201ff07ee1577d1c185a/dulwich-0.22.1-cp310-cp310-win32.whl", hash = "sha256:524d3497a86f79959c9c1d729715d60d8171ed3f71621d45afb4faee5a47e8a1", size = 591267 },
+ { url = "https://files.pythonhosted.org/packages/3d/6b/f8aa44ec32016f20bb4f203ce686a8591fd51fcf1ccbdad9227ba0b054b2/dulwich-0.22.1-cp310-cp310-win_amd64.whl", hash = "sha256:d3146843b972f744aed551e8ac9fac5714baa864393e480586d467b7b4488426", size = 600638 },
+ { url = "https://files.pythonhosted.org/packages/c7/ec/615127a8b85c6f10f12f61b443743c280dca101aad77158162846c473621/dulwich-0.22.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:82f26e592e9a36ab33bcdb419c7d53320e26c85dfc254cdb84f5f561a2fcaabf", size = 881948 },
+ { url = "https://files.pythonhosted.org/packages/f2/8b/ece8483dcd93f868b2bd0dfb81881f20d022f0314a0502a33b52e11b8e95/dulwich-0.22.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e90b8a2f24149c5803b733a24f1a016a2943b1f5a9ab2360db545e4638354c35", size = 978614 },
+ { url = "https://files.pythonhosted.org/packages/f7/9a/3a2c58f9b3385744ea77a59bfe5faf9353c5f3be787b04ff3d39037e6898/dulwich-0.22.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b069639757b2f287f9cd0daf6765b536558c5e28263bbbb28e3d1925bce75400", size = 1031214 },
+ { url = "https://files.pythonhosted.org/packages/da/2e/34432b669a5b67f2aebdbd3cfe7b166b2c30999fe1e9b427ea7cfd02e94b/dulwich-0.22.1-cp311-cp311-win32.whl", hash = "sha256:3ae006498fea11515027a417e6e68b82e1c195d3516188ba2cc08210e3022d14", size = 591359 },
+ { url = "https://files.pythonhosted.org/packages/b4/70/f76bacf8c4752239addb7cc35259b5e7e9f5554840f89fbccd3d82dd8154/dulwich-0.22.1-cp311-cp311-win_amd64.whl", hash = "sha256:a18d1392eabd02f337dcba23d723a4dcca87274ce8693cf88e6320f38bc3fdcd", size = 600495 },
+ { url = "https://files.pythonhosted.org/packages/4b/66/5e57f580d507215911735c4e0df7a702bbc359a004831b1c8fd765d4b8ba/dulwich-0.22.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:12482e318895da9acabea7c0cc70b35d36833e7cb2def511ab3a63617f5c1af3", size = 881399 },
+ { url = "https://files.pythonhosted.org/packages/b8/fb/e22d7219d1ac368744f6d8185e47bd560aea6c3f8348801b09d0d8a4f481/dulwich-0.22.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dc42afedc8cda4f2fd15a06d2e9e41281074a02cdf31bb2e0dde4d80766a408", size = 978351 },
+ { url = "https://files.pythonhosted.org/packages/72/58/11f071a56931215850ce6faed1bb5d89b3cc4c9fd410f7acb4d5b4c58a24/dulwich-0.22.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3c7774232a2c9b195bde4fb72ad71455e877a9e4e9c0b17a57b1d9bd478838c", size = 1032402 },
+ { url = "https://files.pythonhosted.org/packages/12/d7/12eca79b7a1a0aaf3ef73ec27f46fbf4f8fd130735a169dc2df47cceb38b/dulwich-0.22.1-cp312-cp312-win32.whl", hash = "sha256:41dfc52db29a06fe23a5029abc3bc13503e28233b1c3a9614bc1e5c4d6adc1ce", size = 591989 },
+ { url = "https://files.pythonhosted.org/packages/fb/c8/29aa1957e9b1b2eb6606604f70033fa5f192add97063199da32cfeca67ba/dulwich-0.22.1-cp312-cp312-win_amd64.whl", hash = "sha256:9d19f04ecd4628a0e4587b4c4e98e040b87924c1362ae5aa27420435f05d5dd8", size = 601498 },
+ { url = "https://files.pythonhosted.org/packages/47/c5/75178198afa2efc3067e11b5bc6882924153c0fe68d53c00ef9d367fd27b/dulwich-0.22.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4c509e8172b9438536946097768413f297229b03eff064e4e06749cf5c28df78", size = 884916 },
+ { url = "https://files.pythonhosted.org/packages/07/70/bc219e8b67fd403cd2252c365f489caa83f311f9511f13c3d3ee116ad9be/dulwich-0.22.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64eebe1d709539d6e80440fa1185f1eeb260d53bcb6435b1f753b4ce90a65e82", size = 981896 },
+ { url = "https://files.pythonhosted.org/packages/9d/ec/e9723ba935e1b19576d4cac91db13098763cc257e8ab41d529a6ad8ff48a/dulwich-0.22.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52a8ddd1d9b5681de216a7af718720f5202d3c093ecc10dd4dfac6d25da605a6", size = 1035884 },
+ { url = "https://files.pythonhosted.org/packages/3c/81/845928fb5afe6513ccab72b9fcb7a14c1493821288e34be71be5edd3ce8d/dulwich-0.22.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7244b796dd7e191753b822ac0ca871a4b9139b0b850770ac5bd347d5f8c76768", size = 603444 },
+]
+
+[[package]]
+name = "idna"
+version = "3.7"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/21/ed/f86a79a07470cb07819390452f178b3bef1d375f2ec021ecfc709fc7cf07/idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", size = 189575 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0", size = 66836 },
+]
+
+[[package]]
+name = "io-scene-vrm"
+version = "1.0.0"
+source = { editable = "." }
+dependencies = [
+ { name = "bpy", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+]
+
+[package.dev-dependencies]
+dev = [
+ { name = "codespell" },
+ { name = "dulwich" },
+ { name = "mypy" },
+ { name = "pyright" },
+ { name = "ruff" },
+ { name = "starry-bpy-typings" },
+ { name = "tqdm" },
+ { name = "types-tqdm" },
+]
+
+[package.metadata]
+requires-dist = [
+ { name = "bpy", marker = "platform_machine == 'AMD64' and platform_system == 'Windows'", specifier = "==3.6.*" },
+ { name = "bpy", marker = "platform_machine == 'arm64' and platform_system == 'Darwin'", specifier = "==3.6.*" },
+ { name = "bpy", marker = "platform_machine == 'x86_64' and platform_system == 'Darwin'", specifier = "==3.6.*" },
+ { name = "bpy", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'", specifier = "==3.6.*" },
+]
+
+[package.metadata.requires-dev]
+dev = [
+ { name = "codespell", specifier = ">=0" },
+ { name = "dulwich", specifier = ">=0" },
+ { name = "mypy", specifier = ">=0" },
+ { name = "pyright", specifier = ">=0" },
+ { name = "ruff", specifier = ">=0" },
+ { name = "starry-bpy-typings", directory = "typings" },
+ { name = "tqdm", specifier = ">=0" },
+ { name = "types-tqdm", specifier = ">=0" },
+]
+
+[[package]]
+name = "mypy"
+version = "1.11.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "mypy-extensions" },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/b6/9c/a4b3bda53823439cf395db8ecdda6229a83f9bf201714a68a15190bb2919/mypy-1.11.1.tar.gz", hash = "sha256:f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08", size = 3078369 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/33/ba/858cc9631c24a349c1c63814edc16448da7d6b8716b2c83a10aa20f5ee89/mypy-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a32fc80b63de4b5b3e65f4be82b4cfa362a46702672aa6a0f443b4689af7008c", size = 10937885 },
+ { url = "https://files.pythonhosted.org/packages/2d/88/2ae81f7489da8313d0f2043dd657ba847650b00a0fb8e07f40e716ed8c58/mypy-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c1952f5ea8a5a959b05ed5f16452fddadbaae48b5d39235ab4c3fc444d5fd411", size = 10111978 },
+ { url = "https://files.pythonhosted.org/packages/df/4b/d211d6036366f9ea5ee9fb949e80d133b4b8496cdde78c7119f518c49734/mypy-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1e30dc3bfa4e157e53c1d17a0dad20f89dc433393e7702b813c10e200843b03", size = 12498441 },
+ { url = "https://files.pythonhosted.org/packages/94/d2/973278d03ad11e006d71d4c858bfe45cf571ae061f3997911925c70a59f0/mypy-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c63350af88f43a66d3dfeeeb8d77af34a4f07d760b9eb3a8697f0386c7590b4", size = 13020595 },
+ { url = "https://files.pythonhosted.org/packages/0b/c2/7f4285eda528883c5c34cb4b8d88080792967f7f7f24256ad8090d303702/mypy-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:a831671bad47186603872a3abc19634f3011d7f83b083762c942442d51c58d58", size = 9568307 },
+ { url = "https://files.pythonhosted.org/packages/0b/b1/62d8ce619493a5364dda4f410912aa12c27126926e8fb8393edca0664640/mypy-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7b6343d338390bb946d449677726edf60102a1c96079b4f002dedff375953fc5", size = 10858723 },
+ { url = "https://files.pythonhosted.org/packages/fe/aa/2ad15a318bc6a17b7f23e1641a624603949904f6131e09681f40340fb875/mypy-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4fe9f4e5e521b458d8feb52547f4bade7ef8c93238dfb5bbc790d9ff2d770ca", size = 10038078 },
+ { url = "https://files.pythonhosted.org/packages/4d/7f/77feb389d91603f55b3c4e3e16ccf8752bce007ed73ca921e42c9a5dff12/mypy-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:886c9dbecc87b9516eff294541bf7f3655722bf22bb898ee06985cd7269898de", size = 12420213 },
+ { url = "https://files.pythonhosted.org/packages/bc/5b/907b4681f68e7ee2e2e88eed65c514cf6406b8f2f83b243ea79bd4eddb97/mypy-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fca4a60e1dd9fd0193ae0067eaeeb962f2d79e0d9f0f66223a0682f26ffcc809", size = 12898278 },
+ { url = "https://files.pythonhosted.org/packages/5b/b3/2a83be637825d7432b8e6a51e45d02de4f463b6c7ec7164a45009a7cf477/mypy-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0bd53faf56de9643336aeea1c925012837432b5faf1701ccca7fde70166ccf72", size = 9564438 },
+ { url = "https://files.pythonhosted.org/packages/3a/34/69638cee2e87303f19a0c35e80d42757e14d9aba328f272fdcdc0bf3c9b8/mypy-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f39918a50f74dc5969807dcfaecafa804fa7f90c9d60506835036cc1bc891dc8", size = 10995789 },
+ { url = "https://files.pythonhosted.org/packages/c4/3c/3e0611348fc53a4a7c80485959478b4f6eae706baf3b7c03cafa22639216/mypy-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bc71d1fb27a428139dd78621953effe0d208aed9857cb08d002280b0422003a", size = 10002696 },
+ { url = "https://files.pythonhosted.org/packages/1c/21/a6b46c91b4c9d1918ee59c305f46850cde7cbea748635a352e7c3c8ed204/mypy-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b868d3bcff720dd7217c383474008ddabaf048fad8d78ed948bb4b624870a417", size = 12505772 },
+ { url = "https://files.pythonhosted.org/packages/c4/55/07904d4c8f408e70308015edcbff067eaa77514475938a9dd81b063de2a8/mypy-1.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a707ec1527ffcdd1c784d0924bf5cb15cd7f22683b919668a04d2b9c34549d2e", size = 12954190 },
+ { url = "https://files.pythonhosted.org/packages/1e/b7/3a50f318979c8c541428c2f1ee973cda813bcc89614de982dafdd0df2b3e/mypy-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:64f4a90e3ea07f590c5bcf9029035cf0efeae5ba8be511a8caada1a4893f5525", size = 9663138 },
+ { url = "https://files.pythonhosted.org/packages/f8/d4/4960d0df55f30a7625d9c3c9414dfd42f779caabae137ef73ffaed0c97b9/mypy-1.11.1-py3-none-any.whl", hash = "sha256:0624bdb940255d2dd24e829d99a13cfeb72e4e9031f9492148f410ed30bcab54", size = 2619257 },
+]
+
+[[package]]
+name = "mypy-extensions"
+version = "1.0.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f/mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782", size = 4433 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", size = 4695 },
+]
+
+[[package]]
+name = "nodeenv"
+version = "1.9.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314 },
+]
+
+[[package]]
+name = "numpy"
+version = "2.1.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/54/a4/f8188c4f3e07f7737683588210c073478abcb542048cf4ab6fedad0b458a/numpy-2.1.0.tar.gz", hash = "sha256:7dc90da0081f7e1da49ec4e398ede6a8e9cc4f5ebe5f9e06b443ed889ee9aaa2", size = 18868922 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e4/6c/87c885569ebe002f9c5f5de8eda8a3622360143d61e6174610f67c695ad3/numpy-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6326ab99b52fafdcdeccf602d6286191a79fe2fda0ae90573c5814cd2b0bc1b8", size = 21149295 },
+ { url = "https://files.pythonhosted.org/packages/0a/d6/8d9c9a94c44ae456dbfc5f2ef719aebab6cce38064b815e98efd4e4a4141/numpy-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0937e54c09f7a9a68da6889362ddd2ff584c02d015ec92672c099b61555f8911", size = 13756742 },
+ { url = "https://files.pythonhosted.org/packages/ec/f5/1c7d0baa22edd3e51301c2fb74b61295c737ca254345f45d9211b2f3cb6b/numpy-2.1.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:30014b234f07b5fec20f4146f69e13cfb1e33ee9a18a1879a0142fbb00d47673", size = 5352245 },
+ { url = "https://files.pythonhosted.org/packages/de/ea/3e277e9971af78479c5ef318cc477718f5b541b6d1529ae494700a90347b/numpy-2.1.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:899da829b362ade41e1e7eccad2cf274035e1cb36ba73034946fccd4afd8606b", size = 6885239 },
+ { url = "https://files.pythonhosted.org/packages/5d/f4/30f3b75be994a390a366bb5284ac29217edd27a6e6749196ad08d366290d/numpy-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08801848a40aea24ce16c2ecde3b756f9ad756586fb2d13210939eb69b023f5b", size = 13975963 },
+ { url = "https://files.pythonhosted.org/packages/f3/55/2921109f337368848375d8d987e267ba8d1a00d51d5915dc3bcca740d381/numpy-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:398049e237d1aae53d82a416dade04defed1a47f87d18d5bd615b6e7d7e41d1f", size = 16325024 },
+ { url = "https://files.pythonhosted.org/packages/fc/d1/d2fe0a6edb2a19a0da37f10cfe63ee50eb22f0874986ffb44936081e6f3b/numpy-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0abb3916a35d9090088a748636b2c06dc9a6542f99cd476979fb156a18192b84", size = 16701102 },
+ { url = "https://files.pythonhosted.org/packages/28/4a/018e83dd0fa5f32730b67ff0ac35207f13bee8b870f96aa33c496545b9e6/numpy-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:10e2350aea18d04832319aac0f887d5fcec1b36abd485d14f173e3e900b83e33", size = 14474060 },
+ { url = "https://files.pythonhosted.org/packages/33/94/e1c65ebb0caa410afdeb83ed44778f22b92bd70855285bb168df37022d8c/numpy-2.1.0-cp310-cp310-win32.whl", hash = "sha256:f6b26e6c3b98adb648243670fddc8cab6ae17473f9dc58c51574af3e64d61211", size = 6533851 },
+ { url = "https://files.pythonhosted.org/packages/97/fc/961ce4fe1b3295b30ff85a0bc6da13302b870643ed9a79c034fb8469e333/numpy-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:f505264735ee074250a9c78247ee8618292091d9d1fcc023290e9ac67e8f1afa", size = 12863722 },
+ { url = "https://files.pythonhosted.org/packages/3e/98/466ac2a77706699ca0141ea197e4f221d2b232051052f8f794a628a489ec/numpy-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:76368c788ccb4f4782cf9c842b316140142b4cbf22ff8db82724e82fe1205dce", size = 21153408 },
+ { url = "https://files.pythonhosted.org/packages/d5/43/4ff735420b31cd454e4b3acdd0ba7570b453aede6fa16cf7a11cc8780d1b/numpy-2.1.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:f8e93a01a35be08d31ae33021e5268f157a2d60ebd643cfc15de6ab8e4722eb1", size = 5350253 },
+ { url = "https://files.pythonhosted.org/packages/ec/a0/1c1b9d935d7196c4a847b76c8a8d012c986ddbc78ef159cc4c0393148062/numpy-2.1.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9523f8b46485db6939bd069b28b642fec86c30909cea90ef550373787f79530e", size = 6889274 },
+ { url = "https://files.pythonhosted.org/packages/d0/d2/4838d8c3b7ac69947ffd686ba3376cb603ea3618305ae3b8547b821df218/numpy-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54139e0eb219f52f60656d163cbe67c31ede51d13236c950145473504fa208cb", size = 13982862 },
+ { url = "https://files.pythonhosted.org/packages/7b/93/831b4c5b4355210827b3de34f539297e1833c39a68c26a8b454d8cf9f5ed/numpy-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5ebbf9fbdabed208d4ecd2e1dfd2c0741af2f876e7ae522c2537d404ca895c3", size = 16336222 },
+ { url = "https://files.pythonhosted.org/packages/db/44/7d2f454309a620f1afdde44dffa469fece331b84e7a5bd2dba3f0f465489/numpy-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:378cb4f24c7d93066ee4103204f73ed046eb88f9ad5bb2275bb9fa0f6a02bd36", size = 16708990 },
+ { url = "https://files.pythonhosted.org/packages/65/6b/46f69972a25e3b682b7a65cb525efa3650cd62e237180c2ecff7a6177173/numpy-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8f699a709120b220dfe173f79c73cb2a2cab2c0b88dd59d7b49407d032b8ebd", size = 14487554 },
+ { url = "https://files.pythonhosted.org/packages/3f/bc/4b128b3ac152e64e3d117931167bc2289dab47204762ad65011b681d75e7/numpy-2.1.0-cp311-cp311-win32.whl", hash = "sha256:ffbd6faeb190aaf2b5e9024bac9622d2ee549b7ec89ef3a9373fa35313d44e0e", size = 6531834 },
+ { url = "https://files.pythonhosted.org/packages/7b/5e/093592740805fe401ce49a627cc8a3f034dac62b34d68ab69db3c56bd662/numpy-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0af3a5987f59d9c529c022c8c2a64805b339b7ef506509fba7d0556649b9714b", size = 12869011 },
+ { url = "https://files.pythonhosted.org/packages/eb/f5/a06a231cbeea4aff841ff744a12e4bf4d4407f2c753d13ce4563aa126c90/numpy-2.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fe76d75b345dc045acdbc006adcb197cc680754afd6c259de60d358d60c93736", size = 20882951 },
+ { url = "https://files.pythonhosted.org/packages/70/1d/4ad38e3a1840f72c29595c06b103ecd9119f260e897ff7e88a74adb0ca14/numpy-2.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f358ea9e47eb3c2d6eba121ab512dfff38a88db719c38d1e67349af210bc7529", size = 13491878 },
+ { url = "https://files.pythonhosted.org/packages/b4/3b/569055d01ed80634d6be6ceef8fb28eb0866e4f98c2d97667dcf9fae3e22/numpy-2.1.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:dd94ce596bda40a9618324547cfaaf6650b1a24f5390350142499aa4e34e53d1", size = 5087346 },
+ { url = "https://files.pythonhosted.org/packages/24/37/212dd6fbd298c467b80d4d6217b2bc902b520e96a967b59f72603bf1142f/numpy-2.1.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b47c551c6724960479cefd7353656498b86e7232429e3a41ab83be4da1b109e8", size = 6618269 },
+ { url = "https://files.pythonhosted.org/packages/33/4d/435c143c06e16c8bfccbfd9af252b0a8ac7897e0c0e36e539d75a75e91b4/numpy-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0756a179afa766ad7cb6f036de622e8a8f16ffdd55aa31f296c870b5679d745", size = 13695244 },
+ { url = "https://files.pythonhosted.org/packages/48/3e/bf807eb050abc23adc556f34fcf931ca2d67ad8dfc9c17fcd9332c01347f/numpy-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24003ba8ff22ea29a8c306e61d316ac74111cebf942afbf692df65509a05f111", size = 16040181 },
+ { url = "https://files.pythonhosted.org/packages/cd/a9/40dc96b5d43076836d82d1e84a3a4a6a4c2925a53ec0b7f31271434ff02c/numpy-2.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b34fa5e3b5d6dc7e0a4243fa0f81367027cb6f4a7215a17852979634b5544ee0", size = 16407920 },
+ { url = "https://files.pythonhosted.org/packages/cc/77/39e44cf0a6eb0f93b18ffb00f1964b2c471b1df5605aee486c221b06a8e4/numpy-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c4f982715e65036c34897eb598d64aef15150c447be2cfc6643ec7a11af06574", size = 14170943 },
+ { url = "https://files.pythonhosted.org/packages/54/02/f0a3c2ec1622dc4346bd126e2578948c7192b3838c893a3d215738fb367b/numpy-2.1.0-cp312-cp312-win32.whl", hash = "sha256:c4cd94dfefbefec3f8b544f61286584292d740e6e9d4677769bc76b8f41deb02", size = 6235947 },
+ { url = "https://files.pythonhosted.org/packages/8c/bf/d9d214a9dff020ad1663f1536f45d34e052e4c7f630c46cd363e785e3231/numpy-2.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0cdef204199278f5c461a0bed6ed2e052998276e6d8ab2963d5b5c39a0500bc", size = 12566546 },
+ { url = "https://files.pythonhosted.org/packages/c3/16/6b536e1b67624178e3631a3fa60c9c1b5ee7cda2fa9492c4f2de01bfcb06/numpy-2.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8ab81ccd753859ab89e67199b9da62c543850f819993761c1e94a75a814ed667", size = 20833354 },
+ { url = "https://files.pythonhosted.org/packages/52/87/130e95aa8a6383fc3de4fdaf7adc629289b79b88548fb6e35e9d924697d7/numpy-2.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:442596f01913656d579309edcd179a2a2f9977d9a14ff41d042475280fc7f34e", size = 13506169 },
+ { url = "https://files.pythonhosted.org/packages/d9/c2/0fcf68c67681f9ad9d76156b4606f60b48748ead76d4ba19b90aecd4b626/numpy-2.1.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:848c6b5cad9898e4b9ef251b6f934fa34630371f2e916261070a4eb9092ffd33", size = 5072908 },
+ { url = "https://files.pythonhosted.org/packages/72/40/e21bbbfae665ef5fa1dfd7eae1c5dc93ba9d3b36e39d2d38789dd8c22d56/numpy-2.1.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:54c6a63e9d81efe64bfb7bcb0ec64332a87d0b87575f6009c8ba67ea6374770b", size = 6604906 },
+ { url = "https://files.pythonhosted.org/packages/0e/ce/848967516bf8dd4f769886a883a4852dbc62e9b63b1137d2b9900f595222/numpy-2.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:652e92fc409e278abdd61e9505649e3938f6d04ce7ef1953f2ec598a50e7c195", size = 13690864 },
+ { url = "https://files.pythonhosted.org/packages/15/72/2cebe04758e1123f625ed3221cb3c48602175ad619dd9b47de69689b4656/numpy-2.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ab32eb9170bf8ffcbb14f11613f4a0b108d3ffee0832457c5d4808233ba8977", size = 16036272 },
+ { url = "https://files.pythonhosted.org/packages/a7/b7/ae34ced7864b551e0ea01ce4e7acbe7ddf5946afb623dea39760b19bc8b0/numpy-2.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:8fb49a0ba4d8f41198ae2d52118b050fd34dace4b8f3fb0ee34e23eb4ae775b1", size = 16408978 },
+ { url = "https://files.pythonhosted.org/packages/4d/22/c9d696b87c5ce25e857d7745fe4f090373a2daf8c26f5e15b32b5db7bff7/numpy-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44e44973262dc3ae79e9063a1284a73e09d01b894b534a769732ccd46c28cc62", size = 14168398 },
+ { url = "https://files.pythonhosted.org/packages/9e/8b/63f74dccf86d4832d593bdbe06544f4a0a1b7e18e86e0db1e8231bf47c49/numpy-2.1.0-cp313-cp313-win32.whl", hash = "sha256:ab83adc099ec62e044b1fbb3a05499fa1e99f6d53a1dde102b2d85eff66ed324", size = 6232743 },
+ { url = "https://files.pythonhosted.org/packages/23/4b/e30a3132478c69df3e3e587fa87dcbf2660455daec92d8d52e7028a92554/numpy-2.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:de844aaa4815b78f6023832590d77da0e3b6805c644c33ce94a1e449f16d6ab5", size = 12560212 },
+ { url = "https://files.pythonhosted.org/packages/5a/1b/40e881a3a272c4861de1e43a3e7ee1559988dd12187463726d3b395a8874/numpy-2.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:343e3e152bf5a087511cd325e3b7ecfd5b92d369e80e74c12cd87826e263ec06", size = 20840821 },
+ { url = "https://files.pythonhosted.org/packages/d0/8e/5b7c08f9238f6cc18037f6fd92f83feaa8c19e9decb6bd075cad81f71fae/numpy-2.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f07fa2f15dabe91259828ce7d71b5ca9e2eb7c8c26baa822c825ce43552f4883", size = 13500478 },
+ { url = "https://files.pythonhosted.org/packages/65/32/bf9df25ef50761fcb3e089c745d2e195b35cc6506d032f12bb5cc28f6c43/numpy-2.1.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5474dad8c86ee9ba9bb776f4b99ef2d41b3b8f4e0d199d4f7304728ed34d0300", size = 5095825 },
+ { url = "https://files.pythonhosted.org/packages/50/34/d18c95bc5981ea3bb8e6f896aad12159a37dcc67b22cd9464fe3899612f7/numpy-2.1.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:1f817c71683fd1bb5cff1529a1d085a57f02ccd2ebc5cd2c566f9a01118e3b7d", size = 6611470 },
+ { url = "https://files.pythonhosted.org/packages/b4/4f/27d56e9f6222419951bfeef54bc0a71dc40c0ebeb248e1aa85655da6fa11/numpy-2.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a3336fbfa0d38d3deacd3fe7f3d07e13597f29c13abf4d15c3b6dc2291cbbdd", size = 13647061 },
+ { url = "https://files.pythonhosted.org/packages/f9/e0/ae6e12a157c4ab415b380d0f3596cb9090a0c4acf48cd8cd7bc6d6b93d24/numpy-2.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a894c51fd8c4e834f00ac742abad73fc485df1062f1b875661a3c1e1fb1c2f6", size = 16006479 },
+ { url = "https://files.pythonhosted.org/packages/ab/da/b746668c7303bd73af262208abbfa8b1c86be12e9eccb0d3021ed8a58873/numpy-2.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:9156ca1f79fc4acc226696e95bfcc2b486f165a6a59ebe22b2c1f82ab190384a", size = 16383064 },
+ { url = "https://files.pythonhosted.org/packages/f4/51/c0dcadea0c281be5db32b29f7b977b17bdb53b7dbfcbc3b4f49288de8696/numpy-2.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:624884b572dff8ca8f60fab591413f077471de64e376b17d291b19f56504b2bb", size = 14135556 },
+ { url = "https://files.pythonhosted.org/packages/c2/5b/de7ef3b3700ff1da66828f782e0c69732fb42aedbcf7f4a1a19ef6fc7e74/numpy-2.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:15ef8b2177eeb7e37dd5ef4016f30b7659c57c2c0b57a779f1d537ff33a72c7b", size = 20980535 },
+ { url = "https://files.pythonhosted.org/packages/92/ed/88a08b5b66bd37234a901f68b4df2beb1dc01d8a955e071991fd0ee9b4fe/numpy-2.1.0-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:e5f0642cdf4636198a4990de7a71b693d824c56a757862230454629cf62e323d", size = 6748666 },
+ { url = "https://files.pythonhosted.org/packages/61/bb/ba8edcb7f6478b656b1cb94331adb700c8bc06d51c3519fc647fd37dad24/numpy-2.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15976718c004466406342789f31b6673776360f3b1e3c575f25302d7e789575", size = 16139681 },
+ { url = "https://files.pythonhosted.org/packages/92/19/0a05f78c3557ad3ecb0da85e3eb63cb1527a7ea31a521d11a4f08f753f59/numpy-2.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6c1de77ded79fef664d5098a66810d4d27ca0224e9051906e634b3f7ead134c2", size = 12788122 },
+]
+
+[[package]]
+name = "pycparser"
+version = "2.22"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 },
+]
+
+[[package]]
+name = "pyright"
+version = "1.1.377"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "nodeenv" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/49/f0/25b0db363d6888164adb7c828b877bbf2c30936955fb9513922ae03e70e4/pyright-1.1.377.tar.gz", hash = "sha256:aabc30fedce0ded34baa0c49b24f10e68f4bfc8f68ae7f3d175c4b0f256b4fcf", size = 17484 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/34/c9/89c40c4de44fe9463e77dddd0c4e2d2dd7a93e8ddc6858dfe7d5f75d263d/pyright-1.1.377-py3-none-any.whl", hash = "sha256:af0dd2b6b636c383a6569a083f8c5a8748ae4dcde5df7914b3f3f267e14dd162", size = 18223 },
+]
+
+[[package]]
+name = "requests"
+version = "2.32.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "certifi", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+ { name = "charset-normalizer", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+ { name = "idna", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+ { name = "urllib3", marker = "(platform_machine == 'AMD64' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_system == 'Linux')" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
+]
+
+[[package]]
+name = "ruff"
+version = "0.6.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/ce/7e/82271b5ecbb72f24178eac28979380c4ba234f90be5cf92cb513605efb1a/ruff-0.6.1.tar.gz", hash = "sha256:af3ffd8c6563acb8848d33cd19a69b9bfe943667f0419ca083f8ebe4224a3436", size = 2457325 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e2/d1/ac5091efcc8e2cdc55733ac07f17f961465318a3fa8916e44360e32e6c73/ruff-0.6.1-py3-none-linux_armv6l.whl", hash = "sha256:b4bb7de6a24169dc023f992718a9417380301b0c2da0fe85919f47264fb8add9", size = 9610279 },
+ { url = "https://files.pythonhosted.org/packages/2b/ed/c3e1c20e46f5619f133e1ddafbb1a957407ea36d42a477d0d88e9897bed9/ruff-0.6.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:45efaae53b360c81043e311cdec8a7696420b3d3e8935202c2846e7a97d4edae", size = 8719541 },
+ { url = "https://files.pythonhosted.org/packages/13/49/3ee1c8dca59a8bd87ca833871d86304bce4348b2e019287e45ca0ad5b3dd/ruff-0.6.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:bc60c7d71b732c8fa73cf995efc0c836a2fd8b9810e115be8babb24ae87e0850", size = 8320291 },
+ { url = "https://files.pythonhosted.org/packages/2a/44/1fec4c3eac790a445f3b9e0759665439c1d88517851f3fca90e32e897d48/ruff-0.6.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c7477c3b9da822e2db0b4e0b59e61b8a23e87886e727b327e7dcaf06213c5cf", size = 10040885 },
+ { url = "https://files.pythonhosted.org/packages/86/98/c0b96dda4f751accecd3c0638d8c617a3b3e6de11b4e68aa77cae72912fb/ruff-0.6.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a0af7ab3f86e3dc9f157a928e08e26c4b40707d0612b01cd577cc84b8905cc9", size = 9414183 },
+ { url = "https://files.pythonhosted.org/packages/a0/e3/59ac3b2fb4e80f53a96f2c22951589357e22ef3bc2c2b04b2a73772663f8/ruff-0.6.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:392688dbb50fecf1bf7126731c90c11a9df1c3a4cdc3f481b53e851da5634fa5", size = 10203467 },
+ { url = "https://files.pythonhosted.org/packages/8d/02/3dc1c33877d68341b9764b30e2dcc9209b6adb8a0a41ca04d503dc39006e/ruff-0.6.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5278d3e095ccc8c30430bcc9bc550f778790acc211865520f3041910a28d0024", size = 10962198 },
+ { url = "https://files.pythonhosted.org/packages/c5/1f/a36bb06c8b724e3a8ee59124657414182227a353a98408cb5321aa87bd13/ruff-0.6.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fe6d5f65d6f276ee7a0fc50a0cecaccb362d30ef98a110f99cac1c7872df2f18", size = 10537682 },
+ { url = "https://files.pythonhosted.org/packages/a2/bd/479fbfab1634f2527a3f5ddb44973977f75ffbdf3d9bb16748c558a263ad/ruff-0.6.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2e0dd11e2ae553ee5c92a81731d88a9883af8db7408db47fc81887c1f8b672e", size = 11505616 },
+ { url = "https://files.pythonhosted.org/packages/e0/94/92bc24e7e58d2f90fa2a370f763d25d9e06ccccfab839b88e389d79fb4e3/ruff-0.6.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d812615525a34ecfc07fd93f906ef5b93656be01dfae9a819e31caa6cfe758a1", size = 10221898 },
+ { url = "https://files.pythonhosted.org/packages/f7/47/1aca18f02abd4a3ba739991b719a3aa5d8e39e0bee1a91090c8bfacdcd13/ruff-0.6.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:faaa4060f4064c3b7aaaa27328080c932fa142786f8142aff095b42b6a2eb631", size = 10033784 },
+ { url = "https://files.pythonhosted.org/packages/e6/48/df16d9b00af42034ee85915914783bc0529a2ff709d6d3ef39c7c15d826d/ruff-0.6.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:99d7ae0df47c62729d58765c593ea54c2546d5de213f2af2a19442d50a10cec9", size = 9477381 },
+ { url = "https://files.pythonhosted.org/packages/46/d6/d6eadedcc9f9c4927665eee26f4449c15f4c501e7ba9c34c37753748dc11/ruff-0.6.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9eb18dfd7b613eec000e3738b3f0e4398bf0153cb80bfa3e351b3c1c2f6d7b15", size = 9862269 },
+ { url = "https://files.pythonhosted.org/packages/4e/30/e2f5b06ac048898a1cac190e1c9c0d88f984596b27f1069341217e42d119/ruff-0.6.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:c62bc04c6723a81e25e71715aa59489f15034d69bf641df88cb38bdc32fd1dbb", size = 10287591 },
+ { url = "https://files.pythonhosted.org/packages/a0/2c/6a17be1b3c69c03167e5b3d69317ae9b8b2a06091189161751e7a36afef5/ruff-0.6.1-py3-none-win32.whl", hash = "sha256:9fb4c4e8b83f19c9477a8745e56d2eeef07a7ff50b68a6998f7d9e2e3887bdc4", size = 7918031 },
+ { url = "https://files.pythonhosted.org/packages/2e/ba/66a6c87f6532e0390ebc67d5ae9bc1064f4e14d1b0e224bdedc999ae2b15/ruff-0.6.1-py3-none-win_amd64.whl", hash = "sha256:c2ebfc8f51ef4aca05dad4552bbcf6fe8d1f75b2f6af546cc47cc1c1ca916b5b", size = 8736178 },
+ { url = "https://files.pythonhosted.org/packages/14/da/418c5d40058ad56bd0fa060efa4580ccf446f916167aa6540d31f6844e16/ruff-0.6.1-py3-none-win_arm64.whl", hash = "sha256:3bc81074971b0ffad1bd0c52284b22411f02a11a012082a76ac6da153536e014", size = 8142791 },
+]
+
+[[package]]
+name = "setuptools"
+version = "73.0.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/8d/37/f4d4ce9bc15e61edba3179f9b0f763fc6d439474d28511b11f0d95bab7a2/setuptools-73.0.1.tar.gz", hash = "sha256:d59a3e788ab7e012ab2c4baed1b376da6366883ee20d7a5fc426816e3d7b1193", size = 2526506 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/07/6a/0270e295bf30c37567736b7fca10167640898214ff911273af37ddb95770/setuptools-73.0.1-py3-none-any.whl", hash = "sha256:b208925fcb9f7af924ed2dc04708ea89791e24bde0d3020b27df0e116088b34e", size = 2346588 },
+]
+
+[[package]]
+name = "starry-bpy-typings"
+version = "1.0.0"
+source = { directory = "typings" }
+
+[[package]]
+name = "tomli"
+version = "2.0.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f", size = 15164 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", size = 12757 },
+]
+
+[[package]]
+name = "tqdm"
+version = "4.66.5"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "colorama", marker = "platform_system == 'Windows'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/58/83/6ba9844a41128c62e810fddddd72473201f3eacde02046066142a2d96cc5/tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad", size = 169504 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/48/5d/acf5905c36149bbaec41ccf7f2b68814647347b72075ac0b1fe3022fdc73/tqdm-4.66.5-py3-none-any.whl", hash = "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd", size = 78351 },
+]
+
+[[package]]
+name = "types-tqdm"
+version = "4.66.0.20240417"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/2c/65/f14716c07d40f51be63cb46d89a71c4c5314bcf501506930b7fa5201ece0/types-tqdm-4.66.0.20240417.tar.gz", hash = "sha256:16dce9ef522ea8d40e4f5b8d84dd8a1166eefc13ceee7a7e158bf0f1a1421a31", size = 11916 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d7/dd/39a411628bfdeeac54587aa013a83a446a2ecf8e7e324744b9ba3bf076f3/types_tqdm-4.66.0.20240417-py3-none-any.whl", hash = "sha256:248aef1f9986b7b8c2c12b3cb4399fc17dba0a29e7e3f3f9cd704babb879383d", size = 19163 },
+]
+
+[[package]]
+name = "typing-extensions"
+version = "4.12.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 },
+]
+
+[[package]]
+name = "urllib3"
+version = "2.2.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/43/6d/fa469ae21497ddc8bc93e5877702dca7cb8f911e337aca7452b5724f1bb6/urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168", size = 292266 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ca/1c/89ffc63a9605b583d5df2be791a27bc1a42b7c32bab68d3c8f2f73a98cd4/urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472", size = 121444 },
+]
+
+[[package]]
+name = "zstandard"
+version = "0.23.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cffi", marker = "(platform_machine == 'AMD64' and platform_python_implementation == 'PyPy' and platform_system == 'Windows') or (platform_machine == 'arm64' and platform_python_implementation == 'PyPy' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_python_implementation == 'PyPy' and platform_system == 'Darwin') or (platform_machine == 'x86_64' and platform_python_implementation == 'PyPy' and platform_system == 'Linux')" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/2a/55/bd0487e86679db1823fc9ee0d8c9c78ae2413d34c0b461193b5f4c31d22f/zstandard-0.23.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bf0a05b6059c0528477fba9054d09179beb63744355cab9f38059548fedd46a9", size = 788701 },
+ { url = "https://files.pythonhosted.org/packages/e1/8a/ccb516b684f3ad987dfee27570d635822e3038645b1a950c5e8022df1145/zstandard-0.23.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fc9ca1c9718cb3b06634c7c8dec57d24e9438b2aa9a0f02b8bb36bf478538880", size = 633678 },
+ { url = "https://files.pythonhosted.org/packages/12/89/75e633d0611c028e0d9af6df199423bf43f54bea5007e6718ab7132e234c/zstandard-0.23.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77da4c6bfa20dd5ea25cbf12c76f181a8e8cd7ea231c673828d0386b1740b8dc", size = 4941098 },
+ { url = "https://files.pythonhosted.org/packages/4a/7a/bd7f6a21802de358b63f1ee636ab823711c25ce043a3e9f043b4fcb5ba32/zstandard-0.23.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2170c7e0367dde86a2647ed5b6f57394ea7f53545746104c6b09fc1f4223573", size = 5308798 },
+ { url = "https://files.pythonhosted.org/packages/79/3b/775f851a4a65013e88ca559c8ae42ac1352db6fcd96b028d0df4d7d1d7b4/zstandard-0.23.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c16842b846a8d2a145223f520b7e18b57c8f476924bda92aeee3a88d11cfc391", size = 5341840 },
+ { url = "https://files.pythonhosted.org/packages/09/4f/0cc49570141dd72d4d95dd6fcf09328d1b702c47a6ec12fbed3b8aed18a5/zstandard-0.23.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:157e89ceb4054029a289fb504c98c6a9fe8010f1680de0201b3eb5dc20aa6d9e", size = 5440337 },
+ { url = "https://files.pythonhosted.org/packages/e7/7c/aaa7cd27148bae2dc095191529c0570d16058c54c4597a7d118de4b21676/zstandard-0.23.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:203d236f4c94cd8379d1ea61db2fce20730b4c38d7f1c34506a31b34edc87bdd", size = 4861182 },
+ { url = "https://files.pythonhosted.org/packages/ac/eb/4b58b5c071d177f7dc027129d20bd2a44161faca6592a67f8fcb0b88b3ae/zstandard-0.23.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dc5d1a49d3f8262be192589a4b72f0d03b72dcf46c51ad5852a4fdc67be7b9e4", size = 4932936 },
+ { url = "https://files.pythonhosted.org/packages/44/f9/21a5fb9bb7c9a274b05ad700a82ad22ce82f7ef0f485980a1e98ed6e8c5f/zstandard-0.23.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:752bf8a74412b9892f4e5b58f2f890a039f57037f52c89a740757ebd807f33ea", size = 5464705 },
+ { url = "https://files.pythonhosted.org/packages/49/74/b7b3e61db3f88632776b78b1db597af3f44c91ce17d533e14a25ce6a2816/zstandard-0.23.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80080816b4f52a9d886e67f1f96912891074903238fe54f2de8b786f86baded2", size = 4857882 },
+ { url = "https://files.pythonhosted.org/packages/4a/7f/d8eb1cb123d8e4c541d4465167080bec88481ab54cd0b31eb4013ba04b95/zstandard-0.23.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:84433dddea68571a6d6bd4fbf8ff398236031149116a7fff6f777ff95cad3df9", size = 4697672 },
+ { url = "https://files.pythonhosted.org/packages/5e/05/f7dccdf3d121309b60342da454d3e706453a31073e2c4dac8e1581861e44/zstandard-0.23.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ab19a2d91963ed9e42b4e8d77cd847ae8381576585bad79dbd0a8837a9f6620a", size = 5206043 },
+ { url = "https://files.pythonhosted.org/packages/86/9d/3677a02e172dccd8dd3a941307621c0cbd7691d77cb435ac3c75ab6a3105/zstandard-0.23.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:59556bf80a7094d0cfb9f5e50bb2db27fefb75d5138bb16fb052b61b0e0eeeb0", size = 5667390 },
+ { url = "https://files.pythonhosted.org/packages/41/7e/0012a02458e74a7ba122cd9cafe491facc602c9a17f590367da369929498/zstandard-0.23.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:27d3ef2252d2e62476389ca8f9b0cf2bbafb082a3b6bfe9d90cbcbb5529ecf7c", size = 5198901 },
+ { url = "https://files.pythonhosted.org/packages/65/3a/8f715b97bd7bcfc7342d8adcd99a026cb2fb550e44866a3b6c348e1b0f02/zstandard-0.23.0-cp310-cp310-win32.whl", hash = "sha256:5d41d5e025f1e0bccae4928981e71b2334c60f580bdc8345f824e7c0a4c2a813", size = 430596 },
+ { url = "https://files.pythonhosted.org/packages/19/b7/b2b9eca5e5a01111e4fe8a8ffb56bdcdf56b12448a24effe6cfe4a252034/zstandard-0.23.0-cp310-cp310-win_amd64.whl", hash = "sha256:519fbf169dfac1222a76ba8861ef4ac7f0530c35dd79ba5727014613f91613d4", size = 495498 },
+ { url = "https://files.pythonhosted.org/packages/9e/40/f67e7d2c25a0e2dc1744dd781110b0b60306657f8696cafb7ad7579469bd/zstandard-0.23.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:34895a41273ad33347b2fc70e1bff4240556de3c46c6ea430a7ed91f9042aa4e", size = 788699 },
+ { url = "https://files.pythonhosted.org/packages/e8/46/66d5b55f4d737dd6ab75851b224abf0afe5774976fe511a54d2eb9063a41/zstandard-0.23.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:77ea385f7dd5b5676d7fd943292ffa18fbf5c72ba98f7d09fc1fb9e819b34c23", size = 633681 },
+ { url = "https://files.pythonhosted.org/packages/63/b6/677e65c095d8e12b66b8f862b069bcf1f1d781b9c9c6f12eb55000d57583/zstandard-0.23.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:983b6efd649723474f29ed42e1467f90a35a74793437d0bc64a5bf482bedfa0a", size = 4944328 },
+ { url = "https://files.pythonhosted.org/packages/59/cc/e76acb4c42afa05a9d20827116d1f9287e9c32b7ad58cc3af0721ce2b481/zstandard-0.23.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80a539906390591dd39ebb8d773771dc4db82ace6372c4d41e2d293f8e32b8db", size = 5311955 },
+ { url = "https://files.pythonhosted.org/packages/78/e4/644b8075f18fc7f632130c32e8f36f6dc1b93065bf2dd87f03223b187f26/zstandard-0.23.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:445e4cb5048b04e90ce96a79b4b63140e3f4ab5f662321975679b5f6360b90e2", size = 5344944 },
+ { url = "https://files.pythonhosted.org/packages/76/3f/dbafccf19cfeca25bbabf6f2dd81796b7218f768ec400f043edc767015a6/zstandard-0.23.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd30d9c67d13d891f2360b2a120186729c111238ac63b43dbd37a5a40670b8ca", size = 5442927 },
+ { url = "https://files.pythonhosted.org/packages/0c/c3/d24a01a19b6733b9f218e94d1a87c477d523237e07f94899e1c10f6fd06c/zstandard-0.23.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d20fd853fbb5807c8e84c136c278827b6167ded66c72ec6f9a14b863d809211c", size = 4864910 },
+ { url = "https://files.pythonhosted.org/packages/1c/a9/cf8f78ead4597264f7618d0875be01f9bc23c9d1d11afb6d225b867cb423/zstandard-0.23.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed1708dbf4d2e3a1c5c69110ba2b4eb6678262028afd6c6fbcc5a8dac9cda68e", size = 4935544 },
+ { url = "https://files.pythonhosted.org/packages/2c/96/8af1e3731b67965fb995a940c04a2c20997a7b3b14826b9d1301cf160879/zstandard-0.23.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:be9b5b8659dff1f913039c2feee1aca499cfbc19e98fa12bc85e037c17ec6ca5", size = 5467094 },
+ { url = "https://files.pythonhosted.org/packages/ff/57/43ea9df642c636cb79f88a13ab07d92d88d3bfe3e550b55a25a07a26d878/zstandard-0.23.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:65308f4b4890aa12d9b6ad9f2844b7ee42c7f7a4fd3390425b242ffc57498f48", size = 4860440 },
+ { url = "https://files.pythonhosted.org/packages/46/37/edb78f33c7f44f806525f27baa300341918fd4c4af9472fbc2c3094be2e8/zstandard-0.23.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98da17ce9cbf3bfe4617e836d561e433f871129e3a7ac16d6ef4c680f13a839c", size = 4700091 },
+ { url = "https://files.pythonhosted.org/packages/c1/f1/454ac3962671a754f3cb49242472df5c2cced4eb959ae203a377b45b1a3c/zstandard-0.23.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8ed7d27cb56b3e058d3cf684d7200703bcae623e1dcc06ed1e18ecda39fee003", size = 5208682 },
+ { url = "https://files.pythonhosted.org/packages/85/b2/1734b0fff1634390b1b887202d557d2dd542de84a4c155c258cf75da4773/zstandard-0.23.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:b69bb4f51daf461b15e7b3db033160937d3ff88303a7bc808c67bbc1eaf98c78", size = 5669707 },
+ { url = "https://files.pythonhosted.org/packages/52/5a/87d6971f0997c4b9b09c495bf92189fb63de86a83cadc4977dc19735f652/zstandard-0.23.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:034b88913ecc1b097f528e42b539453fa82c3557e414b3de9d5632c80439a473", size = 5201792 },
+ { url = "https://files.pythonhosted.org/packages/79/02/6f6a42cc84459d399bd1a4e1adfc78d4dfe45e56d05b072008d10040e13b/zstandard-0.23.0-cp311-cp311-win32.whl", hash = "sha256:f2d4380bf5f62daabd7b751ea2339c1a21d1c9463f1feb7fc2bdcea2c29c3160", size = 430586 },
+ { url = "https://files.pythonhosted.org/packages/be/a2/4272175d47c623ff78196f3c10e9dc7045c1b9caf3735bf041e65271eca4/zstandard-0.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:62136da96a973bd2557f06ddd4e8e807f9e13cbb0bfb9cc06cfe6d98ea90dfe0", size = 495420 },
+ { url = "https://files.pythonhosted.org/packages/7b/83/f23338c963bd9de687d47bf32efe9fd30164e722ba27fb59df33e6b1719b/zstandard-0.23.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b4567955a6bc1b20e9c31612e615af6b53733491aeaa19a6b3b37f3b65477094", size = 788713 },
+ { url = "https://files.pythonhosted.org/packages/5b/b3/1a028f6750fd9227ee0b937a278a434ab7f7fdc3066c3173f64366fe2466/zstandard-0.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e172f57cd78c20f13a3415cc8dfe24bf388614324d25539146594c16d78fcc8", size = 633459 },
+ { url = "https://files.pythonhosted.org/packages/26/af/36d89aae0c1f95a0a98e50711bc5d92c144939efc1f81a2fcd3e78d7f4c1/zstandard-0.23.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0e166f698c5a3e914947388c162be2583e0c638a4703fc6a543e23a88dea3c1", size = 4945707 },
+ { url = "https://files.pythonhosted.org/packages/cd/2e/2051f5c772f4dfc0aae3741d5fc72c3dcfe3aaeb461cc231668a4db1ce14/zstandard-0.23.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a289832e520c6bd4dcaad68e944b86da3bad0d339ef7989fb7e88f92e96072", size = 5306545 },
+ { url = "https://files.pythonhosted.org/packages/0a/9e/a11c97b087f89cab030fa71206963090d2fecd8eb83e67bb8f3ffb84c024/zstandard-0.23.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d50d31bfedd53a928fed6707b15a8dbeef011bb6366297cc435accc888b27c20", size = 5337533 },
+ { url = "https://files.pythonhosted.org/packages/fc/79/edeb217c57fe1bf16d890aa91a1c2c96b28c07b46afed54a5dcf310c3f6f/zstandard-0.23.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72c68dda124a1a138340fb62fa21b9bf4848437d9ca60bd35db36f2d3345f373", size = 5436510 },
+ { url = "https://files.pythonhosted.org/packages/81/4f/c21383d97cb7a422ddf1ae824b53ce4b51063d0eeb2afa757eb40804a8ef/zstandard-0.23.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53dd9d5e3d29f95acd5de6802e909ada8d8d8cfa37a3ac64836f3bc4bc5512db", size = 4859973 },
+ { url = "https://files.pythonhosted.org/packages/ab/15/08d22e87753304405ccac8be2493a495f529edd81d39a0870621462276ef/zstandard-0.23.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:6a41c120c3dbc0d81a8e8adc73312d668cd34acd7725f036992b1b72d22c1772", size = 4936968 },
+ { url = "https://files.pythonhosted.org/packages/eb/fa/f3670a597949fe7dcf38119a39f7da49a8a84a6f0b1a2e46b2f71a0ab83f/zstandard-0.23.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:40b33d93c6eddf02d2c19f5773196068d875c41ca25730e8288e9b672897c105", size = 5467179 },
+ { url = "https://files.pythonhosted.org/packages/4e/a9/dad2ab22020211e380adc477a1dbf9f109b1f8d94c614944843e20dc2a99/zstandard-0.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9206649ec587e6b02bd124fb7799b86cddec350f6f6c14bc82a2b70183e708ba", size = 4848577 },
+ { url = "https://files.pythonhosted.org/packages/08/03/dd28b4484b0770f1e23478413e01bee476ae8227bbc81561f9c329e12564/zstandard-0.23.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76e79bc28a65f467e0409098fa2c4376931fd3207fbeb6b956c7c476d53746dd", size = 4693899 },
+ { url = "https://files.pythonhosted.org/packages/2b/64/3da7497eb635d025841e958bcd66a86117ae320c3b14b0ae86e9e8627518/zstandard-0.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:66b689c107857eceabf2cf3d3fc699c3c0fe8ccd18df2219d978c0283e4c508a", size = 5199964 },
+ { url = "https://files.pythonhosted.org/packages/43/a4/d82decbab158a0e8a6ebb7fc98bc4d903266bce85b6e9aaedea1d288338c/zstandard-0.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9c236e635582742fee16603042553d276cca506e824fa2e6489db04039521e90", size = 5655398 },
+ { url = "https://files.pythonhosted.org/packages/f2/61/ac78a1263bc83a5cf29e7458b77a568eda5a8f81980691bbc6eb6a0d45cc/zstandard-0.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8fffdbd9d1408006baaf02f1068d7dd1f016c6bcb7538682622c556e7b68e35", size = 5191313 },
+ { url = "https://files.pythonhosted.org/packages/e7/54/967c478314e16af5baf849b6ee9d6ea724ae5b100eb506011f045d3d4e16/zstandard-0.23.0-cp312-cp312-win32.whl", hash = "sha256:dc1d33abb8a0d754ea4763bad944fd965d3d95b5baef6b121c0c9013eaf1907d", size = 430877 },
+ { url = "https://files.pythonhosted.org/packages/75/37/872d74bd7739639c4553bf94c84af7d54d8211b626b352bc57f0fd8d1e3f/zstandard-0.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:64585e1dba664dc67c7cdabd56c1e5685233fbb1fc1966cfba2a340ec0dfff7b", size = 495595 },
+ { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975 },
+ { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448 },
+ { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269 },
+ { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228 },
+ { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891 },
+ { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310 },
+ { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912 },
+ { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946 },
+ { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994 },
+ { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681 },
+ { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239 },
+ { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149 },
+ { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392 },
+ { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299 },
+ { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862 },
+ { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578 },
+]