From 63c21cb91ef28d4fb2e9e2db7a3479c39e22a0bc Mon Sep 17 00:00:00 2001 From: millioner Date: Fri, 28 Nov 2025 20:30:35 +0100 Subject: [PATCH 01/28] New dependencies --- .devcontainer/devcontainer.json | 2 +- pyproject.toml | 6 +- uv.lock | 1901 ++++++++++++++++--------------- 3 files changed, 958 insertions(+), 951 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a2db77de..e143fbd5 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -33,7 +33,7 @@ } }, // Install ezkl cli, done here instead of the Dockerfile to test new versions without rebuilding the image. - "onCreateCommand": "curl https://raw.githubusercontent.com/zkonduit/ezkl/main/install_ezkl_cli.sh | bash -s v19.0.7", + "onCreateCommand": "curl https://raw.githubusercontent.com/zkonduit/ezkl/main/install_ezkl_cli.sh | bash -s v22.2.1", "postCreateCommand": "uv tool install bittensor-cli", "remoteEnv": { "PATH": "${containerEnv:PATH}:/home/vscode/.ezkl" diff --git a/pyproject.toml b/pyproject.toml index a12152e7..1f2d192b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,13 +15,14 @@ dependencies = [ "bittensor==9.9.0", "boto3>=1.36.13", "botocore>=1.37.19", - "ezkl==22.0.1", + "dsperse", + "ezkl==22.2.1", "fastapi==0.110.3", "gitpython>=3.1.44", "httpx>=0.28.1", "jsonrpcserver>=5.0.9", "matplotlib>=3.10.1", - "numpy==2.0.2", + "numpy~=2.2.3", "onnxruntime>=1.21.0", "opencv-contrib-python-headless>=4.11.0.86", "opencv-python>=4.11.0.86", @@ -74,6 +75,7 @@ pythonpath = [".", "neurons"] [tool.uv.sources] torch = { index = "pytorch" } +dsperse = { git = "https://github.com/inference-labs-inc/dsperse.git", rev = "dsperse-integration" } [[tool.uv.index]] name = "pytorch" diff --git a/uv.lock b/uv.lock index 7bf9fc78..bc4f7f67 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 1 requires-python = "==3.12.*" resolution-markers = [ "sys_platform == 'linux'", @@ -11,9 +11,9 @@ resolution-markers = [ name = "aiohappyeyeballs" version = "2.6.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" }, + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265 }, ] [[package]] @@ -29,25 +29,25 @@ dependencies = [ { name = "propcache" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716, upload-time = "2025-07-29T05:52:32.215Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716 } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/97/77cb2450d9b35f517d6cf506256bf4f5bda3f93a66b4ad64ba7fc917899c/aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7", size = 702333, upload-time = "2025-07-29T05:50:46.507Z" }, - { url = "https://files.pythonhosted.org/packages/83/6d/0544e6b08b748682c30b9f65640d006e51f90763b41d7c546693bc22900d/aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444", size = 476948, upload-time = "2025-07-29T05:50:48.067Z" }, - { url = "https://files.pythonhosted.org/packages/3a/1d/c8c40e611e5094330284b1aea8a4b02ca0858f8458614fa35754cab42b9c/aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d", size = 469787, upload-time = "2025-07-29T05:50:49.669Z" }, - { url = "https://files.pythonhosted.org/packages/38/7d/b76438e70319796bfff717f325d97ce2e9310f752a267bfdf5192ac6082b/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c", size = 1716590, upload-time = "2025-07-29T05:50:51.368Z" }, - { url = "https://files.pythonhosted.org/packages/79/b1/60370d70cdf8b269ee1444b390cbd72ce514f0d1cd1a715821c784d272c9/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0", size = 1699241, upload-time = "2025-07-29T05:50:53.628Z" }, - { url = "https://files.pythonhosted.org/packages/a3/2b/4968a7b8792437ebc12186db31523f541943e99bda8f30335c482bea6879/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab", size = 1754335, upload-time = "2025-07-29T05:50:55.394Z" }, - { url = "https://files.pythonhosted.org/packages/fb/c1/49524ed553f9a0bec1a11fac09e790f49ff669bcd14164f9fab608831c4d/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb", size = 1800491, upload-time = "2025-07-29T05:50:57.202Z" }, - { url = "https://files.pythonhosted.org/packages/de/5e/3bf5acea47a96a28c121b167f5ef659cf71208b19e52a88cdfa5c37f1fcc/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545", size = 1719929, upload-time = "2025-07-29T05:50:59.192Z" }, - { url = "https://files.pythonhosted.org/packages/39/94/8ae30b806835bcd1cba799ba35347dee6961a11bd507db634516210e91d8/aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c", size = 1635733, upload-time = "2025-07-29T05:51:01.394Z" }, - { url = "https://files.pythonhosted.org/packages/7a/46/06cdef71dd03acd9da7f51ab3a9107318aee12ad38d273f654e4f981583a/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd", size = 1696790, upload-time = "2025-07-29T05:51:03.657Z" }, - { url = "https://files.pythonhosted.org/packages/02/90/6b4cfaaf92ed98d0ec4d173e78b99b4b1a7551250be8937d9d67ecb356b4/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f", size = 1718245, upload-time = "2025-07-29T05:51:05.911Z" }, - { url = "https://files.pythonhosted.org/packages/2e/e6/2593751670fa06f080a846f37f112cbe6f873ba510d070136a6ed46117c6/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d", size = 1658899, upload-time = "2025-07-29T05:51:07.753Z" }, - { url = "https://files.pythonhosted.org/packages/8f/28/c15bacbdb8b8eb5bf39b10680d129ea7410b859e379b03190f02fa104ffd/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519", size = 1738459, upload-time = "2025-07-29T05:51:09.56Z" }, - { url = "https://files.pythonhosted.org/packages/00/de/c269cbc4faa01fb10f143b1670633a8ddd5b2e1ffd0548f7aa49cb5c70e2/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea", size = 1766434, upload-time = "2025-07-29T05:51:11.423Z" }, - { url = "https://files.pythonhosted.org/packages/52/b0/4ff3abd81aa7d929b27d2e1403722a65fc87b763e3a97b3a2a494bfc63bc/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3", size = 1726045, upload-time = "2025-07-29T05:51:13.689Z" }, - { url = "https://files.pythonhosted.org/packages/71/16/949225a6a2dd6efcbd855fbd90cf476052e648fb011aa538e3b15b89a57a/aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1", size = 423591, upload-time = "2025-07-29T05:51:15.452Z" }, - { url = "https://files.pythonhosted.org/packages/2b/d8/fa65d2a349fe938b76d309db1a56a75c4fb8cc7b17a398b698488a939903/aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34", size = 450266, upload-time = "2025-07-29T05:51:17.239Z" }, + { url = "https://files.pythonhosted.org/packages/63/97/77cb2450d9b35f517d6cf506256bf4f5bda3f93a66b4ad64ba7fc917899c/aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7", size = 702333 }, + { url = "https://files.pythonhosted.org/packages/83/6d/0544e6b08b748682c30b9f65640d006e51f90763b41d7c546693bc22900d/aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444", size = 476948 }, + { url = "https://files.pythonhosted.org/packages/3a/1d/c8c40e611e5094330284b1aea8a4b02ca0858f8458614fa35754cab42b9c/aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d", size = 469787 }, + { url = "https://files.pythonhosted.org/packages/38/7d/b76438e70319796bfff717f325d97ce2e9310f752a267bfdf5192ac6082b/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c", size = 1716590 }, + { url = "https://files.pythonhosted.org/packages/79/b1/60370d70cdf8b269ee1444b390cbd72ce514f0d1cd1a715821c784d272c9/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0", size = 1699241 }, + { url = "https://files.pythonhosted.org/packages/a3/2b/4968a7b8792437ebc12186db31523f541943e99bda8f30335c482bea6879/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab", size = 1754335 }, + { url = "https://files.pythonhosted.org/packages/fb/c1/49524ed553f9a0bec1a11fac09e790f49ff669bcd14164f9fab608831c4d/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb", size = 1800491 }, + { url = "https://files.pythonhosted.org/packages/de/5e/3bf5acea47a96a28c121b167f5ef659cf71208b19e52a88cdfa5c37f1fcc/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545", size = 1719929 }, + { url = "https://files.pythonhosted.org/packages/39/94/8ae30b806835bcd1cba799ba35347dee6961a11bd507db634516210e91d8/aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c", size = 1635733 }, + { url = "https://files.pythonhosted.org/packages/7a/46/06cdef71dd03acd9da7f51ab3a9107318aee12ad38d273f654e4f981583a/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd", size = 1696790 }, + { url = "https://files.pythonhosted.org/packages/02/90/6b4cfaaf92ed98d0ec4d173e78b99b4b1a7551250be8937d9d67ecb356b4/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f", size = 1718245 }, + { url = "https://files.pythonhosted.org/packages/2e/e6/2593751670fa06f080a846f37f112cbe6f873ba510d070136a6ed46117c6/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d", size = 1658899 }, + { url = "https://files.pythonhosted.org/packages/8f/28/c15bacbdb8b8eb5bf39b10680d129ea7410b859e379b03190f02fa104ffd/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519", size = 1738459 }, + { url = "https://files.pythonhosted.org/packages/00/de/c269cbc4faa01fb10f143b1670633a8ddd5b2e1ffd0548f7aa49cb5c70e2/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea", size = 1766434 }, + { url = "https://files.pythonhosted.org/packages/52/b0/4ff3abd81aa7d929b27d2e1403722a65fc87b763e3a97b3a2a494bfc63bc/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3", size = 1726045 }, + { url = "https://files.pythonhosted.org/packages/71/16/949225a6a2dd6efcbd855fbd90cf476052e648fb011aa538e3b15b89a57a/aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1", size = 423591 }, + { url = "https://files.pythonhosted.org/packages/2b/d8/fa65d2a349fe938b76d309db1a56a75c4fb8cc7b17a398b698488a939903/aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34", size = 450266 }, ] [[package]] @@ -58,9 +58,9 @@ dependencies = [ { name = "frozenlist" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490 }, ] [[package]] @@ -70,27 +70,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/13/7d/8bca2bf9a247c2c5dfeec1d7a5f40db6518f88d314b8bca9da29670d2671/aiosqlite-0.21.0.tar.gz", hash = "sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3", size = 13454, upload-time = "2025-02-03T07:30:16.235Z" } +sdist = { url = "https://files.pythonhosted.org/packages/13/7d/8bca2bf9a247c2c5dfeec1d7a5f40db6518f88d314b8bca9da29670d2671/aiosqlite-0.21.0.tar.gz", hash = "sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3", size = 13454 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/10/6c25ed6de94c49f88a91fa5018cb4c0f3625f31d5be9f771ebe5cc7cd506/aiosqlite-0.21.0-py3-none-any.whl", hash = "sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0", size = 15792, upload-time = "2025-02-03T07:30:13.6Z" }, + { url = "https://files.pythonhosted.org/packages/f5/10/6c25ed6de94c49f88a91fa5018cb4c0f3625f31d5be9f771ebe5cc7cd506/aiosqlite-0.21.0-py3-none-any.whl", hash = "sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0", size = 15792 }, ] [[package]] name = "annotated-types" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, ] [[package]] name = "ansicon" version = "1.89.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b6/e2/1c866404ddbd280efedff4a9f15abfe943cb83cde6e895022370f3a61f85/ansicon-1.89.0.tar.gz", hash = "sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1", size = 67312, upload-time = "2019-04-29T20:23:57.314Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b6/e2/1c866404ddbd280efedff4a9f15abfe943cb83cde6e895022370f3a61f85/ansicon-1.89.0.tar.gz", hash = "sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1", size = 67312 } wheels = [ - { url = "https://files.pythonhosted.org/packages/75/f9/f1c10e223c7b56a38109a3f2eb4e7fe9a757ea3ed3a166754fb30f65e466/ansicon-1.89.0-py2.py3-none-any.whl", hash = "sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec", size = 63675, upload-time = "2019-04-29T20:23:53.83Z" }, + { url = "https://files.pythonhosted.org/packages/75/f9/f1c10e223c7b56a38109a3f2eb4e7fe9a757ea3ed3a166754fb30f65e466/ansicon-1.89.0-py2.py3-none-any.whl", hash = "sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec", size = 63675 }, ] [[package]] @@ -102,27 +102,27 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252, upload-time = "2025-08-04T08:54:26.451Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213, upload-time = "2025-08-04T08:54:24.882Z" }, + { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213 }, ] [[package]] name = "appnope" version = "0.1.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170 } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321 }, ] [[package]] name = "asttokens" version = "3.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978, upload-time = "2024-11-30T04:30:14.439Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978 } wheels = [ - { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918, upload-time = "2024-11-30T04:30:10.946Z" }, + { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918 }, ] [[package]] @@ -133,9 +133,9 @@ dependencies = [ { name = "six" }, { name = "wheel" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290, upload-time = "2019-12-22T18:12:13.129Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8", size = 12732, upload-time = "2019-12-22T18:12:11.297Z" }, + { url = "https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8", size = 12732 }, ] [[package]] @@ -150,36 +150,36 @@ dependencies = [ { name = "wheel" }, { name = "xxhash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/93/f9/29a26c144b5c2f02b9e27899980e7370602e4f7820c71c2d9418fd17cfd9/async_substrate_interface-1.5.2.tar.gz", hash = "sha256:8d763550f691eed99f351daebba25001201171965a358f47efb3ea122228bf68", size = 81595, upload-time = "2025-09-08T17:18:41.591Z" } +sdist = { url = "https://files.pythonhosted.org/packages/93/f9/29a26c144b5c2f02b9e27899980e7370602e4f7820c71c2d9418fd17cfd9/async_substrate_interface-1.5.2.tar.gz", hash = "sha256:8d763550f691eed99f351daebba25001201171965a358f47efb3ea122228bf68", size = 81595 } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/76/73a98ec3c42a3177bfb1a5af43a06b89d94886f507897282ad5cd5ef309a/async_substrate_interface-1.5.2-py3-none-any.whl", hash = "sha256:8b84bca2fc045338a0d9b327138807cae3872ffc6c38e5bb8032463897132d44", size = 84925, upload-time = "2025-09-08T17:18:40.02Z" }, + { url = "https://files.pythonhosted.org/packages/51/76/73a98ec3c42a3177bfb1a5af43a06b89d94886f507897282ad5cd5ef309a/async_substrate_interface-1.5.2-py3-none-any.whl", hash = "sha256:8b84bca2fc045338a0d9b327138807cae3872ffc6c38e5bb8032463897132d44", size = 84925 }, ] [[package]] name = "asyncstdlib" version = "3.13.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/50/e1/72e388631c85233a2fd890d024fc20a8a9961dbba8614d78266636218f1f/asyncstdlib-3.13.1.tar.gz", hash = "sha256:f47564b9a3566f8f9172631d88c75fe074b0ce2127963b7265d310df9aeed03a", size = 49752, upload-time = "2025-03-09T07:52:51.587Z" } +sdist = { url = "https://files.pythonhosted.org/packages/50/e1/72e388631c85233a2fd890d024fc20a8a9961dbba8614d78266636218f1f/asyncstdlib-3.13.1.tar.gz", hash = "sha256:f47564b9a3566f8f9172631d88c75fe074b0ce2127963b7265d310df9aeed03a", size = 49752 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/4a/c86c045bc7bb0244044935ba80c83998f1fdee4f4cef64c6b078e043b0e6/asyncstdlib-3.13.1-py3-none-any.whl", hash = "sha256:a64da68176af1da8c699026cad98f70b184f82b4cb39739e0b9701a2a7541cf9", size = 43993, upload-time = "2025-03-09T07:52:50.108Z" }, + { url = "https://files.pythonhosted.org/packages/b9/4a/c86c045bc7bb0244044935ba80c83998f1fdee4f4cef64c6b078e043b0e6/asyncstdlib-3.13.1-py3-none-any.whl", hash = "sha256:a64da68176af1da8c699026cad98f70b184f82b4cb39739e0b9701a2a7541cf9", size = 43993 }, ] [[package]] name = "attrs" version = "24.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/48/c8/6260f8ccc11f0917360fc0da435c5c9c7504e3db174d5a12a1494887b045/attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff", size = 805984, upload-time = "2024-12-16T06:59:29.899Z" } +sdist = { url = "https://files.pythonhosted.org/packages/48/c8/6260f8ccc11f0917360fc0da435c5c9c7504e3db174d5a12a1494887b045/attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff", size = 805984 } wheels = [ - { url = "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", size = 63397, upload-time = "2024-12-16T06:59:26.977Z" }, + { url = "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", size = 63397 }, ] [[package]] name = "base58" version = "2.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7f/45/8ae61209bb9015f516102fa559a2914178da1d5868428bd86a1b4421141d/base58-2.1.1.tar.gz", hash = "sha256:c5d0cb3f5b6e81e8e35da5754388ddcc6d0d14b6c6a132cb93d69ed580a7278c", size = 6528, upload-time = "2021-10-30T22:12:17.858Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/45/8ae61209bb9015f516102fa559a2914178da1d5868428bd86a1b4421141d/base58-2.1.1.tar.gz", hash = "sha256:c5d0cb3f5b6e81e8e35da5754388ddcc6d0d14b6c6a132cb93d69ed580a7278c", size = 6528 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/45/ec96b29162a402fc4c1c5512d114d7b3787b9d1c2ec241d9568b4816ee23/base58-2.1.1-py3-none-any.whl", hash = "sha256:11a36f4d3ce51dfc1043f3218591ac4eb1ceb172919cebe05b52a5bcc8d245c2", size = 5621, upload-time = "2021-10-30T22:12:16.658Z" }, + { url = "https://files.pythonhosted.org/packages/4a/45/ec96b29162a402fc4c1c5512d114d7b3787b9d1c2ec241d9568b4816ee23/base58-2.1.1-py3-none-any.whl", hash = "sha256:11a36f4d3ce51dfc1043f3218591ac4eb1ceb172919cebe05b52a5bcc8d245c2", size = 5621 }, ] [[package]] @@ -211,35 +211,35 @@ dependencies = [ { name = "uvicorn" }, { name = "wheel" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/32/a89e25e973ff5c4a42011d22453a26a86a90a4d0e93d6d56a356f7015338/bittensor-9.9.0.tar.gz", hash = "sha256:4bff5ac33ba77ddb414d34d4c717210a648380afb2a4ad32edb65e212b3fc561", size = 273691, upload-time = "2025-08-12T17:09:21.513Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/32/a89e25e973ff5c4a42011d22453a26a86a90a4d0e93d6d56a356f7015338/bittensor-9.9.0.tar.gz", hash = "sha256:4bff5ac33ba77ddb414d34d4c717210a648380afb2a4ad32edb65e212b3fc561", size = 273691 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b5/18/cd3c4317866c4a3fcac64389ef6a395095413c9737e4299b3005a480a719/bittensor-9.9.0-py3-none-any.whl", hash = "sha256:79b54026f4e464611c862ad85031c44bc2576221c16ca759279908dcda9f5e35", size = 325232, upload-time = "2025-08-12T17:09:19.934Z" }, + { url = "https://files.pythonhosted.org/packages/b5/18/cd3c4317866c4a3fcac64389ef6a395095413c9737e4299b3005a480a719/bittensor-9.9.0-py3-none-any.whl", hash = "sha256:79b54026f4e464611c862ad85031c44bc2576221c16ca759279908dcda9f5e35", size = 325232 }, ] [[package]] name = "bittensor-drand" version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/2e/7994f0d84945837fd9cd027ad93aba00e1936021d79a862133f0e1c25555/bittensor_drand-1.0.0.tar.gz", hash = "sha256:d309a19981d69e2bfc0ac27770c63531173fc4bb2a41483c9c60b6677c44a501", size = 44924, upload-time = "2025-08-11T17:06:55.042Z" } +sdist = { url = "https://files.pythonhosted.org/packages/59/2e/7994f0d84945837fd9cd027ad93aba00e1936021d79a862133f0e1c25555/bittensor_drand-1.0.0.tar.gz", hash = "sha256:d309a19981d69e2bfc0ac27770c63531173fc4bb2a41483c9c60b6677c44a501", size = 44924 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/60/7f67116ff0479e4800853aa0ac4a2114442be65f98c6531e131ce23df090/bittensor_drand-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:2f3a7f878689f4c996db33ba3a8a336dd4c4f797fb4cd69176f75da13e770794", size = 1930096, upload-time = "2025-08-11T17:06:50.716Z" }, - { url = "https://files.pythonhosted.org/packages/6a/db/58ac7d01e26a787247e5dbde26903f6ae3755304bf1429c2d4a8b6ed0bb2/bittensor_drand-1.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:eddf11a9e352e06558435f5938b3f859ff38a41ef947547d461d07221e2c0ba7", size = 1834271, upload-time = "2025-08-11T17:06:44.808Z" }, - { url = "https://files.pythonhosted.org/packages/45/5a/5050328a65c8ea0af44eb508a3a9d1e31587ed6814a62b18de979a7e384b/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3c1a78034ea4a9eb3c5b607ed4746c85051107fc742c782d3291574a249a83d", size = 2065877, upload-time = "2025-08-11T17:06:20.546Z" }, - { url = "https://files.pythonhosted.org/packages/7d/0a/b3284b9acdd377b065233296b8fcd8703bfcef2a5f64b52dc67b7b869e9e/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56436a880567f83c12f7fbd4ea4806b73487fa3c723c376694f966ab1311bfc9", size = 2169956, upload-time = "2025-08-11T17:06:27.295Z" }, - { url = "https://files.pythonhosted.org/packages/97/1c/ee1602728fffeafcc6b22a5f6d3da7c51d11777a6a28773ba4dcc485f1b8/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d9f4960acabcb494de74790bf94c8b0d36efed4f21f5388690a25ecb48b1b8a", size = 2106980, upload-time = "2025-08-11T17:06:37.767Z" }, + { url = "https://files.pythonhosted.org/packages/6e/60/7f67116ff0479e4800853aa0ac4a2114442be65f98c6531e131ce23df090/bittensor_drand-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:2f3a7f878689f4c996db33ba3a8a336dd4c4f797fb4cd69176f75da13e770794", size = 1930096 }, + { url = "https://files.pythonhosted.org/packages/6a/db/58ac7d01e26a787247e5dbde26903f6ae3755304bf1429c2d4a8b6ed0bb2/bittensor_drand-1.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:eddf11a9e352e06558435f5938b3f859ff38a41ef947547d461d07221e2c0ba7", size = 1834271 }, + { url = "https://files.pythonhosted.org/packages/45/5a/5050328a65c8ea0af44eb508a3a9d1e31587ed6814a62b18de979a7e384b/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3c1a78034ea4a9eb3c5b607ed4746c85051107fc742c782d3291574a249a83d", size = 2065877 }, + { url = "https://files.pythonhosted.org/packages/7d/0a/b3284b9acdd377b065233296b8fcd8703bfcef2a5f64b52dc67b7b869e9e/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56436a880567f83c12f7fbd4ea4806b73487fa3c723c376694f966ab1311bfc9", size = 2169956 }, + { url = "https://files.pythonhosted.org/packages/97/1c/ee1602728fffeafcc6b22a5f6d3da7c51d11777a6a28773ba4dcc485f1b8/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d9f4960acabcb494de74790bf94c8b0d36efed4f21f5388690a25ecb48b1b8a", size = 2106980 }, ] [[package]] name = "bittensor-wallet" version = "4.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/02/94/d1473ad79490b16ccb3cd9f13c48f4db72907d0287636a40c038683f7afc/bittensor_wallet-4.0.0.tar.gz", hash = "sha256:9f990eac74b08897f9fc9a8af460d566b5cfb6e542f0313e4896a809449beb47", size = 82800, upload-time = "2025-08-06T20:11:07.446Z" } +sdist = { url = "https://files.pythonhosted.org/packages/02/94/d1473ad79490b16ccb3cd9f13c48f4db72907d0287636a40c038683f7afc/bittensor_wallet-4.0.0.tar.gz", hash = "sha256:9f990eac74b08897f9fc9a8af460d566b5cfb6e542f0313e4896a809449beb47", size = 82800 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/e3/3bff8a61a00fb567521296dd5e138238622d0e07bb9ab6c777132e0d9381/bittensor_wallet-4.0.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:5ff0b15c41604b1adb035cbe8fcdfd8b840f60355817a1c4dd8ec257f9b63b33", size = 827433, upload-time = "2025-08-06T20:11:02.565Z" }, - { url = "https://files.pythonhosted.org/packages/50/f1/5496aba00b3322d76f4e8b71d9cbafcf704d01f3f82a3c8f53a164446b3a/bittensor_wallet-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ba1953a05b4ae220f84ddaf885b4dc8c800db33d7ac70b77d3b60b951009a08", size = 775007, upload-time = "2025-08-06T20:10:53.929Z" }, - { url = "https://files.pythonhosted.org/packages/77/19/c575bf7d541d581f2761294e2f48cd96096ce2a22f81f7d70f7985a4086d/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ead2bc9423f908d94dda6deb7f9d8f18c9be057f999952274b7158214ff0790", size = 2758947, upload-time = "2025-08-06T20:10:20.643Z" }, - { url = "https://files.pythonhosted.org/packages/cd/4e/841553284d19e9f9456d8339b78f11132cd91c656c0d07506722ade1ef8c/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1f53313b653eb0b67bf606a4f9e24ece503ba32025628b568da89ba7d7c4e82", size = 3171671, upload-time = "2025-08-06T20:10:41.239Z" }, - { url = "https://files.pythonhosted.org/packages/79/73/e88207b7ad2f619d1888a529ba53ac3edf48313c8ac9f62706336630ce62/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3c6b8d58f3b3c8c0b01ff8fd6260fad6acfa74506e4a38ce2df8f7ecd33f4d73", size = 2973485, upload-time = "2025-08-06T20:10:30.723Z" }, + { url = "https://files.pythonhosted.org/packages/a5/e3/3bff8a61a00fb567521296dd5e138238622d0e07bb9ab6c777132e0d9381/bittensor_wallet-4.0.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:5ff0b15c41604b1adb035cbe8fcdfd8b840f60355817a1c4dd8ec257f9b63b33", size = 827433 }, + { url = "https://files.pythonhosted.org/packages/50/f1/5496aba00b3322d76f4e8b71d9cbafcf704d01f3f82a3c8f53a164446b3a/bittensor_wallet-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ba1953a05b4ae220f84ddaf885b4dc8c800db33d7ac70b77d3b60b951009a08", size = 775007 }, + { url = "https://files.pythonhosted.org/packages/77/19/c575bf7d541d581f2761294e2f48cd96096ce2a22f81f7d70f7985a4086d/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ead2bc9423f908d94dda6deb7f9d8f18c9be057f999952274b7158214ff0790", size = 2758947 }, + { url = "https://files.pythonhosted.org/packages/cd/4e/841553284d19e9f9456d8339b78f11132cd91c656c0d07506722ade1ef8c/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1f53313b653eb0b67bf606a4f9e24ece503ba32025628b568da89ba7d7c4e82", size = 3171671 }, + { url = "https://files.pythonhosted.org/packages/79/73/e88207b7ad2f619d1888a529ba53ac3edf48313c8ac9f62706336630ce62/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3c6b8d58f3b3c8c0b01ff8fd6260fad6acfa74506e4a38ce2df8f7ecd33f4d73", size = 2973485 }, ] [[package]] @@ -253,13 +253,13 @@ dependencies = [ { name = "pathspec" }, { name = "platformdirs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449, upload-time = "2025-01-29T04:15:40.373Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449 } wheels = [ - { url = "https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b", size = 1650988, upload-time = "2025-01-29T05:37:16.707Z" }, - { url = "https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc", size = 1453985, upload-time = "2025-01-29T05:37:18.273Z" }, - { url = "https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f", size = 1783816, upload-time = "2025-01-29T04:18:33.823Z" }, - { url = "https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba", size = 1440860, upload-time = "2025-01-29T04:19:12.944Z" }, - { url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646, upload-time = "2025-01-29T04:15:38.082Z" }, + { url = "https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b", size = 1650988 }, + { url = "https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc", size = 1453985 }, + { url = "https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f", size = 1783816 }, + { url = "https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba", size = 1440860 }, + { url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646 }, ] [[package]] @@ -270,9 +270,9 @@ dependencies = [ { name = "jinxed", marker = "sys_platform == 'win32'" }, { name = "wcwidth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0c/5e/3cada2f7514ee2a76bb8168c71f9b65d056840ebb711962e1ec08eeaa7b0/blessed-1.21.0.tar.gz", hash = "sha256:ece8bbc4758ab9176452f4e3a719d70088eb5739798cd5582c9e05f2a28337ec", size = 6660011, upload-time = "2025-04-26T21:56:58.199Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0c/5e/3cada2f7514ee2a76bb8168c71f9b65d056840ebb711962e1ec08eeaa7b0/blessed-1.21.0.tar.gz", hash = "sha256:ece8bbc4758ab9176452f4e3a719d70088eb5739798cd5582c9e05f2a28337ec", size = 6660011 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/8e/0a37e44878fd76fac9eff5355a1bf760701f53cb5c38cdcd59a8fd9ab2a2/blessed-1.21.0-py2.py3-none-any.whl", hash = "sha256:f831e847396f5a2eac6c106f4dfadedf46c4f804733574b15fe86d2ed45a9588", size = 84727, upload-time = "2025-04-26T16:58:29.919Z" }, + { url = "https://files.pythonhosted.org/packages/ea/8e/0a37e44878fd76fac9eff5355a1bf760701f53cb5c38cdcd59a8fd9ab2a2/blessed-1.21.0-py2.py3-none-any.whl", hash = "sha256:f831e847396f5a2eac6c106f4dfadedf46c4f804733574b15fe86d2ed45a9588", size = 84727 }, ] [[package]] @@ -284,9 +284,9 @@ dependencies = [ { name = "jmespath" }, { name = "s3transfer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/77/a7/3fde131d2431d1801e3f16f1b428cf9b8c6677996716c5286a72eb43ecb7/boto3-1.40.30.tar.gz", hash = "sha256:e95db539c938710917f4cb4fc5915f71b27f2c836d949a1a95df7895d2e9ec8b", size = 111636, upload-time = "2025-09-12T19:23:22.625Z" } +sdist = { url = "https://files.pythonhosted.org/packages/77/a7/3fde131d2431d1801e3f16f1b428cf9b8c6677996716c5286a72eb43ecb7/boto3-1.40.30.tar.gz", hash = "sha256:e95db539c938710917f4cb4fc5915f71b27f2c836d949a1a95df7895d2e9ec8b", size = 111636 } wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/43/f1865e3e2aa91c1aa54db90a82ed17b8c0dc60c354045adf1c2134e5cbd8/boto3-1.40.30-py3-none-any.whl", hash = "sha256:04e89abf61240857bf7dec160e22f097eec68c502509b2bb3c5010a22cb91052", size = 139343, upload-time = "2025-09-12T19:23:20.728Z" }, + { url = "https://files.pythonhosted.org/packages/3f/43/f1865e3e2aa91c1aa54db90a82ed17b8c0dc60c354045adf1c2134e5cbd8/boto3-1.40.30-py3-none-any.whl", hash = "sha256:04e89abf61240857bf7dec160e22f097eec68c502509b2bb3c5010a22cb91052", size = 139343 }, ] [[package]] @@ -298,9 +298,9 @@ dependencies = [ { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c5/be/086ff6f031c407540e8226b3a4921dd18a05688224324c2df60457f9bcc0/botocore-1.40.30.tar.gz", hash = "sha256:8a74f77cfe5c519826d22f7613f89544cbb8491a1a49d965031bd997f89a8e3f", size = 14349135, upload-time = "2025-09-12T19:23:12.57Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c5/be/086ff6f031c407540e8226b3a4921dd18a05688224324c2df60457f9bcc0/botocore-1.40.30.tar.gz", hash = "sha256:8a74f77cfe5c519826d22f7613f89544cbb8491a1a49d965031bd997f89a8e3f", size = 14349135 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/a8/3644f482b7b319f3fda87d4583f7b073c0cdf4a6d1b58e5a92555fe3e2e3/botocore-1.40.30-py3-none-any.whl", hash = "sha256:1d87874ad81234bec3e83f9de13618f67ccdfefd08d6b8babc041cd45007447e", size = 14022003, upload-time = "2025-09-12T19:23:09.163Z" }, + { url = "https://files.pythonhosted.org/packages/ad/a8/3644f482b7b319f3fda87d4583f7b073c0cdf4a6d1b58e5a92555fe3e2e3/botocore-1.40.30-py3-none-any.whl", hash = "sha256:1d87874ad81234bec3e83f9de13618f67ccdfefd08d6b8babc041cd45007447e", size = 14022003 }, ] [[package]] @@ -315,9 +315,9 @@ dependencies = [ { name = "pyxdg" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ba/dd/cc02bf66f342a4673867fdf6c1f9fce90ec1e91e651b21bc4af4890101da/bpython-0.25.tar.gz", hash = "sha256:c246fc909ef6dcc26e9d8cb4615b0e6b1613f3543d12269b19ffd0782166c65b", size = 207610, upload-time = "2025-01-17T09:35:22.382Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/dd/cc02bf66f342a4673867fdf6c1f9fce90ec1e91e651b21bc4af4890101da/bpython-0.25.tar.gz", hash = "sha256:c246fc909ef6dcc26e9d8cb4615b0e6b1613f3543d12269b19ffd0782166c65b", size = 207610 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/74/5470df025854d5e213793b62cbea032fd66919562662955789fcc5dc17d6/bpython-0.25-py3-none-any.whl", hash = "sha256:28fd86008ca5ef6100ead407c9743aa60c51293a18ba5b18fcacea7f5b7f2257", size = 176131, upload-time = "2025-01-17T09:35:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/ba/74/5470df025854d5e213793b62cbea032fd66919562662955789fcc5dc17d6/bpython-0.25-py3-none-any.whl", hash = "sha256:28fd86008ca5ef6100ead407c9743aa60c51293a18ba5b18fcacea7f5b7f2257", size = 176131 }, ] [[package]] @@ -327,14 +327,14 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "toml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/76/d4/cbbe3201561b1467e53bb5a111d968d3364d58633c58009343db9a5c2915/bt_decode-0.6.0.tar.gz", hash = "sha256:05e67b5ab018af7a31651bb9c0fb838c3a1733806823019d14c287922869f84e", size = 1199355, upload-time = "2025-04-03T19:37:21.064Z" } +sdist = { url = "https://files.pythonhosted.org/packages/76/d4/cbbe3201561b1467e53bb5a111d968d3364d58633c58009343db9a5c2915/bt_decode-0.6.0.tar.gz", hash = "sha256:05e67b5ab018af7a31651bb9c0fb838c3a1733806823019d14c287922869f84e", size = 1199355 } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/00/f5100765c4da5bdca0aff952497eba9eaa98505fae6ba8d60d7e67919e1a/bt_decode-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b61e4237b58977f6bd4500a0ca52b1ffc405f47498a5d89c70f6a37087e8cabc", size = 595757, upload-time = "2025-04-03T19:37:16.956Z" }, - { url = "https://files.pythonhosted.org/packages/e6/5f/0a973a374bb51bb05e8e665641dd7f65ac600f3904a74a71f7e4251ae2c2/bt_decode-0.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78534a941d136715a33bdbbbf9d5f7d72ca3d75abe888f449b39e56396cea823", size = 580301, upload-time = "2025-04-03T19:37:10.439Z" }, - { url = "https://files.pythonhosted.org/packages/fb/4a/6333713c66b801f1b15a9548a3444d15de38a1e69f17722bb931a35dfc0b/bt_decode-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e8a90524af52be75778daa91a3bbfeb2da8c7a2791e5adfb5dedbceb5be8889", size = 650787, upload-time = "2025-04-03T19:36:57.761Z" }, - { url = "https://files.pythonhosted.org/packages/57/6d/32e3799dfaf6f57ce61ed2fcf52e97e5883b2bd86ac90cbc8dc53b7c60bd/bt_decode-0.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:636e8a2c5074f43f1a68b75f225ad5434cbffed66d7e289c7efec5f0dde4bb54", size = 711889, upload-time = "2025-04-03T19:36:42.871Z" }, - { url = "https://files.pythonhosted.org/packages/59/a8/3b8ede0181be5dc5e7656ef1575c06dd9616ba35dac90f20baff66cec0d2/bt_decode-0.6.0-cp312-cp312-win32.whl", hash = "sha256:ecbf71fb8786727b7c7835441419c74104473d984505d2bfd5aaa2a78402d47a", size = 416317, upload-time = "2025-04-03T19:37:38.243Z" }, - { url = "https://files.pythonhosted.org/packages/71/d2/ab0f965be493051235d37f3577bad1d4970205d0d942db59b58870231525/bt_decode-0.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:70568c723b2cc900952a5349dddf158f85284b7da37aa0ad398392a34e09e468", size = 443973, upload-time = "2025-04-03T19:37:26.544Z" }, + { url = "https://files.pythonhosted.org/packages/dc/00/f5100765c4da5bdca0aff952497eba9eaa98505fae6ba8d60d7e67919e1a/bt_decode-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b61e4237b58977f6bd4500a0ca52b1ffc405f47498a5d89c70f6a37087e8cabc", size = 595757 }, + { url = "https://files.pythonhosted.org/packages/e6/5f/0a973a374bb51bb05e8e665641dd7f65ac600f3904a74a71f7e4251ae2c2/bt_decode-0.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78534a941d136715a33bdbbbf9d5f7d72ca3d75abe888f449b39e56396cea823", size = 580301 }, + { url = "https://files.pythonhosted.org/packages/fb/4a/6333713c66b801f1b15a9548a3444d15de38a1e69f17722bb931a35dfc0b/bt_decode-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e8a90524af52be75778daa91a3bbfeb2da8c7a2791e5adfb5dedbceb5be8889", size = 650787 }, + { url = "https://files.pythonhosted.org/packages/57/6d/32e3799dfaf6f57ce61ed2fcf52e97e5883b2bd86ac90cbc8dc53b7c60bd/bt_decode-0.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:636e8a2c5074f43f1a68b75f225ad5434cbffed66d7e289c7efec5f0dde4bb54", size = 711889 }, + { url = "https://files.pythonhosted.org/packages/59/a8/3b8ede0181be5dc5e7656ef1575c06dd9616ba35dac90f20baff66cec0d2/bt_decode-0.6.0-cp312-cp312-win32.whl", hash = "sha256:ecbf71fb8786727b7c7835441419c74104473d984505d2bfd5aaa2a78402d47a", size = 416317 }, + { url = "https://files.pythonhosted.org/packages/71/d2/ab0f965be493051235d37f3577bad1d4970205d0d942db59b58870231525/bt_decode-0.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:70568c723b2cc900952a5349dddf158f85284b7da37aa0ad398392a34e09e468", size = 443973 }, ] [[package]] @@ -346,18 +346,18 @@ dependencies = [ { name = "packaging" }, { name = "pyproject-hooks" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz", hash = "sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397", size = 48544, upload-time = "2025-08-01T21:27:09.268Z" } +sdist = { url = "https://files.pythonhosted.org/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz", hash = "sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397", size = 48544 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/8c/2b30c12155ad8de0cf641d76a8b396a16d2c36bc6d50b621a62b7c4567c1/build-1.3.0-py3-none-any.whl", hash = "sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4", size = 23382, upload-time = "2025-08-01T21:27:07.844Z" }, + { url = "https://files.pythonhosted.org/packages/cb/8c/2b30c12155ad8de0cf641d76a8b396a16d2c36bc6d50b621a62b7c4567c1/build-1.3.0-py3-none-any.whl", hash = "sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4", size = 23382 }, ] [[package]] name = "certifi" version = "2025.8.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload-time = "2025-08-03T03:07:47.08Z" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" }, + { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216 }, ] [[package]] @@ -367,49 +367,49 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pycparser", marker = "implementation_name != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, - { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, - { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, - { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, - { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, - { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, - { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, - { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, - { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, - { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, - { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, - { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271 }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048 }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529 }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097 }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983 }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519 }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572 }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963 }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361 }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932 }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557 }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762 }, ] [[package]] name = "charset-normalizer" version = "3.4.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload-time = "2025-08-09T07:57:28.46Z" } +sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655, upload-time = "2025-08-09T07:56:08.475Z" }, - { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223, upload-time = "2025-08-09T07:56:09.708Z" }, - { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366, upload-time = "2025-08-09T07:56:11.326Z" }, - { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104, upload-time = "2025-08-09T07:56:13.014Z" }, - { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830, upload-time = "2025-08-09T07:56:14.428Z" }, - { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854, upload-time = "2025-08-09T07:56:16.051Z" }, - { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670, upload-time = "2025-08-09T07:56:17.314Z" }, - { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501, upload-time = "2025-08-09T07:56:18.641Z" }, - { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173, upload-time = "2025-08-09T07:56:20.289Z" }, - { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822, upload-time = "2025-08-09T07:56:21.551Z" }, - { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543, upload-time = "2025-08-09T07:56:23.115Z" }, - { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload-time = "2025-08-09T07:57:26.864Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655 }, + { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223 }, + { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366 }, + { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104 }, + { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830 }, + { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854 }, + { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670 }, + { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501 }, + { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173 }, + { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822 }, + { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543 }, + { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175 }, ] [[package]] name = "cheap-repr" version = "0.5.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b1/30/f0e9d5bfe80b8287ea8a9263eb3c71c5fdf44b6f7a781a7c96f83172ccad/cheap_repr-0.5.2.tar.gz", hash = "sha256:001a5cf8adb0305c7ad3152c5f776040ac2a559d97f85770cebcb28c6ca5a30f", size = 20232, upload-time = "2024-08-10T14:08:07.314Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b1/30/f0e9d5bfe80b8287ea8a9263eb3c71c5fdf44b6f7a781a7c96f83172ccad/cheap_repr-0.5.2.tar.gz", hash = "sha256:001a5cf8adb0305c7ad3152c5f776040ac2a559d97f85770cebcb28c6ca5a30f", size = 20232 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/52/fec0262af470a157a557e46be1d52ecdaf1695cefd80bb62bb6a07cc4ea9/cheap_repr-0.5.2-py2.py3-none-any.whl", hash = "sha256:537ec1991bfee885c13c6d473afd110a408e039cde26882e95bf92761556ab6e", size = 12228, upload-time = "2024-08-10T14:08:05.965Z" }, + { url = "https://files.pythonhosted.org/packages/ec/52/fec0262af470a157a557e46be1d52ecdaf1695cefd80bb62bb6a07cc4ea9/cheap_repr-0.5.2-py2.py3-none-any.whl", hash = "sha256:537ec1991bfee885c13c6d473afd110a408e039cde26882e95bf92761556ab6e", size = 12228 }, ] [[package]] @@ -419,18 +419,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" } +sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342 } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215, upload-time = "2025-05-20T23:19:47.796Z" }, + { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215 }, ] [[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, upload-time = "2022-10-25T02:36:22.414Z" } +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, upload-time = "2022-10-25T02:36:20.889Z" }, + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, ] [[package]] @@ -440,18 +440,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "humanfriendly" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0", size = 278520, upload-time = "2021-06-11T10:22:45.202Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0", size = 278520 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018, upload-time = "2021-06-11T10:22:42.561Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018 }, ] [[package]] name = "comm" version = "0.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319 } wheels = [ - { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294 }, ] [[package]] @@ -461,19 +461,19 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174 } wheels = [ - { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, - { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, - { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, - { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, - { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, - { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, - { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, - { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, - { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, - { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, - { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419 }, + { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979 }, + { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653 }, + { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536 }, + { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397 }, + { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601 }, + { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288 }, + { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386 }, + { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018 }, + { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567 }, + { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655 }, ] [[package]] @@ -483,32 +483,32 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/35/c495bffc2056f2dadb32434f1feedd79abde2a7f8363e1974afa9c33c7e2/cryptography-45.0.7.tar.gz", hash = "sha256:4b1654dfc64ea479c242508eb8c724044f1e964a47d1d1cacc5132292d851971", size = 744980, upload-time = "2025-09-01T11:15:03.146Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/91/925c0ac74362172ae4516000fe877912e33b5983df735ff290c653de4913/cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:3be4f21c6245930688bd9e162829480de027f8bf962ede33d4f8ba7d67a00cee", size = 7041105, upload-time = "2025-09-01T11:13:59.684Z" }, - { url = "https://files.pythonhosted.org/packages/fc/63/43641c5acce3a6105cf8bd5baeceeb1846bb63067d26dae3e5db59f1513a/cryptography-45.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:67285f8a611b0ebc0857ced2081e30302909f571a46bfa7a3cc0ad303fe015c6", size = 4205799, upload-time = "2025-09-01T11:14:02.517Z" }, - { url = "https://files.pythonhosted.org/packages/bc/29/c238dd9107f10bfde09a4d1c52fd38828b1aa353ced11f358b5dd2507d24/cryptography-45.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:577470e39e60a6cd7780793202e63536026d9b8641de011ed9d8174da9ca5339", size = 4430504, upload-time = "2025-09-01T11:14:04.522Z" }, - { url = "https://files.pythonhosted.org/packages/62/62/24203e7cbcc9bd7c94739428cd30680b18ae6b18377ae66075c8e4771b1b/cryptography-45.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:4bd3e5c4b9682bc112d634f2c6ccc6736ed3635fc3319ac2bb11d768cc5a00d8", size = 4209542, upload-time = "2025-09-01T11:14:06.309Z" }, - { url = "https://files.pythonhosted.org/packages/cd/e3/e7de4771a08620eef2389b86cd87a2c50326827dea5528feb70595439ce4/cryptography-45.0.7-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:465ccac9d70115cd4de7186e60cfe989de73f7bb23e8a7aa45af18f7412e75bf", size = 3889244, upload-time = "2025-09-01T11:14:08.152Z" }, - { url = "https://files.pythonhosted.org/packages/96/b8/bca71059e79a0bb2f8e4ec61d9c205fbe97876318566cde3b5092529faa9/cryptography-45.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:16ede8a4f7929b4b7ff3642eba2bf79aa1d71f24ab6ee443935c0d269b6bc513", size = 4461975, upload-time = "2025-09-01T11:14:09.755Z" }, - { url = "https://files.pythonhosted.org/packages/58/67/3f5b26937fe1218c40e95ef4ff8d23c8dc05aa950d54200cc7ea5fb58d28/cryptography-45.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8978132287a9d3ad6b54fcd1e08548033cc09dc6aacacb6c004c73c3eb5d3ac3", size = 4209082, upload-time = "2025-09-01T11:14:11.229Z" }, - { url = "https://files.pythonhosted.org/packages/0e/e4/b3e68a4ac363406a56cf7b741eeb80d05284d8c60ee1a55cdc7587e2a553/cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b6a0e535baec27b528cb07a119f321ac024592388c5681a5ced167ae98e9fff3", size = 4460397, upload-time = "2025-09-01T11:14:12.924Z" }, - { url = "https://files.pythonhosted.org/packages/22/49/2c93f3cd4e3efc8cb22b02678c1fad691cff9dd71bb889e030d100acbfe0/cryptography-45.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a24ee598d10befaec178efdff6054bc4d7e883f615bfbcd08126a0f4931c83a6", size = 4337244, upload-time = "2025-09-01T11:14:14.431Z" }, - { url = "https://files.pythonhosted.org/packages/04/19/030f400de0bccccc09aa262706d90f2ec23d56bc4eb4f4e8268d0ddf3fb8/cryptography-45.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa26fa54c0a9384c27fcdc905a2fb7d60ac6e47d14bc2692145f2b3b1e2cfdbd", size = 4568862, upload-time = "2025-09-01T11:14:16.185Z" }, - { url = "https://files.pythonhosted.org/packages/29/56/3034a3a353efa65116fa20eb3c990a8c9f0d3db4085429040a7eef9ada5f/cryptography-45.0.7-cp311-abi3-win32.whl", hash = "sha256:bef32a5e327bd8e5af915d3416ffefdbe65ed975b646b3805be81b23580b57b8", size = 2936578, upload-time = "2025-09-01T11:14:17.638Z" }, - { url = "https://files.pythonhosted.org/packages/b3/61/0ab90f421c6194705a99d0fa9f6ee2045d916e4455fdbb095a9c2c9a520f/cryptography-45.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:3808e6b2e5f0b46d981c24d79648e5c25c35e59902ea4391a0dcb3e667bf7443", size = 3405400, upload-time = "2025-09-01T11:14:18.958Z" }, - { url = "https://files.pythonhosted.org/packages/63/e8/c436233ddf19c5f15b25ace33979a9dd2e7aa1a59209a0ee8554179f1cc0/cryptography-45.0.7-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bfb4c801f65dd61cedfc61a83732327fafbac55a47282e6f26f073ca7a41c3b2", size = 7021824, upload-time = "2025-09-01T11:14:20.954Z" }, - { url = "https://files.pythonhosted.org/packages/bc/4c/8f57f2500d0ccd2675c5d0cc462095adf3faa8c52294ba085c036befb901/cryptography-45.0.7-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:81823935e2f8d476707e85a78a405953a03ef7b7b4f55f93f7c2d9680e5e0691", size = 4202233, upload-time = "2025-09-01T11:14:22.454Z" }, - { url = "https://files.pythonhosted.org/packages/eb/ac/59b7790b4ccaed739fc44775ce4645c9b8ce54cbec53edf16c74fd80cb2b/cryptography-45.0.7-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3994c809c17fc570c2af12c9b840d7cea85a9fd3e5c0e0491f4fa3c029216d59", size = 4423075, upload-time = "2025-09-01T11:14:24.287Z" }, - { url = "https://files.pythonhosted.org/packages/b8/56/d4f07ea21434bf891faa088a6ac15d6d98093a66e75e30ad08e88aa2b9ba/cryptography-45.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dad43797959a74103cb59c5dac71409f9c27d34c8a05921341fb64ea8ccb1dd4", size = 4204517, upload-time = "2025-09-01T11:14:25.679Z" }, - { url = "https://files.pythonhosted.org/packages/e8/ac/924a723299848b4c741c1059752c7cfe09473b6fd77d2920398fc26bfb53/cryptography-45.0.7-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ce7a453385e4c4693985b4a4a3533e041558851eae061a58a5405363b098fcd3", size = 3882893, upload-time = "2025-09-01T11:14:27.1Z" }, - { url = "https://files.pythonhosted.org/packages/83/dc/4dab2ff0a871cc2d81d3ae6d780991c0192b259c35e4d83fe1de18b20c70/cryptography-45.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b04f85ac3a90c227b6e5890acb0edbaf3140938dbecf07bff618bf3638578cf1", size = 4450132, upload-time = "2025-09-01T11:14:28.58Z" }, - { url = "https://files.pythonhosted.org/packages/12/dd/b2882b65db8fc944585d7fb00d67cf84a9cef4e77d9ba8f69082e911d0de/cryptography-45.0.7-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:48c41a44ef8b8c2e80ca4527ee81daa4c527df3ecbc9423c41a420a9559d0e27", size = 4204086, upload-time = "2025-09-01T11:14:30.572Z" }, - { url = "https://files.pythonhosted.org/packages/5d/fa/1d5745d878048699b8eb87c984d4ccc5da4f5008dfd3ad7a94040caca23a/cryptography-45.0.7-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f3df7b3d0f91b88b2106031fd995802a2e9ae13e02c36c1fc075b43f420f3a17", size = 4449383, upload-time = "2025-09-01T11:14:32.046Z" }, - { url = "https://files.pythonhosted.org/packages/36/8b/fc61f87931bc030598e1876c45b936867bb72777eac693e905ab89832670/cryptography-45.0.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dd342f085542f6eb894ca00ef70236ea46070c8a13824c6bde0dfdcd36065b9b", size = 4332186, upload-time = "2025-09-01T11:14:33.95Z" }, - { url = "https://files.pythonhosted.org/packages/0b/11/09700ddad7443ccb11d674efdbe9a832b4455dc1f16566d9bd3834922ce5/cryptography-45.0.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1993a1bb7e4eccfb922b6cd414f072e08ff5816702a0bdb8941c247a6b1b287c", size = 4561639, upload-time = "2025-09-01T11:14:35.343Z" }, - { url = "https://files.pythonhosted.org/packages/71/ed/8f4c1337e9d3b94d8e50ae0b08ad0304a5709d483bfcadfcc77a23dbcb52/cryptography-45.0.7-cp37-abi3-win32.whl", hash = "sha256:18fcf70f243fe07252dcb1b268a687f2358025ce32f9f88028ca5c364b123ef5", size = 2926552, upload-time = "2025-09-01T11:14:36.929Z" }, - { url = "https://files.pythonhosted.org/packages/bc/ff/026513ecad58dacd45d1d24ebe52b852165a26e287177de1d545325c0c25/cryptography-45.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:7285a89df4900ed3bfaad5679b1e668cb4b38a8de1ccbfc84b05f34512da0a90", size = 3392742, upload-time = "2025-09-01T11:14:38.368Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/a7/35/c495bffc2056f2dadb32434f1feedd79abde2a7f8363e1974afa9c33c7e2/cryptography-45.0.7.tar.gz", hash = "sha256:4b1654dfc64ea479c242508eb8c724044f1e964a47d1d1cacc5132292d851971", size = 744980 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/91/925c0ac74362172ae4516000fe877912e33b5983df735ff290c653de4913/cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:3be4f21c6245930688bd9e162829480de027f8bf962ede33d4f8ba7d67a00cee", size = 7041105 }, + { url = "https://files.pythonhosted.org/packages/fc/63/43641c5acce3a6105cf8bd5baeceeb1846bb63067d26dae3e5db59f1513a/cryptography-45.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:67285f8a611b0ebc0857ced2081e30302909f571a46bfa7a3cc0ad303fe015c6", size = 4205799 }, + { url = "https://files.pythonhosted.org/packages/bc/29/c238dd9107f10bfde09a4d1c52fd38828b1aa353ced11f358b5dd2507d24/cryptography-45.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:577470e39e60a6cd7780793202e63536026d9b8641de011ed9d8174da9ca5339", size = 4430504 }, + { url = "https://files.pythonhosted.org/packages/62/62/24203e7cbcc9bd7c94739428cd30680b18ae6b18377ae66075c8e4771b1b/cryptography-45.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:4bd3e5c4b9682bc112d634f2c6ccc6736ed3635fc3319ac2bb11d768cc5a00d8", size = 4209542 }, + { url = "https://files.pythonhosted.org/packages/cd/e3/e7de4771a08620eef2389b86cd87a2c50326827dea5528feb70595439ce4/cryptography-45.0.7-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:465ccac9d70115cd4de7186e60cfe989de73f7bb23e8a7aa45af18f7412e75bf", size = 3889244 }, + { url = "https://files.pythonhosted.org/packages/96/b8/bca71059e79a0bb2f8e4ec61d9c205fbe97876318566cde3b5092529faa9/cryptography-45.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:16ede8a4f7929b4b7ff3642eba2bf79aa1d71f24ab6ee443935c0d269b6bc513", size = 4461975 }, + { url = "https://files.pythonhosted.org/packages/58/67/3f5b26937fe1218c40e95ef4ff8d23c8dc05aa950d54200cc7ea5fb58d28/cryptography-45.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8978132287a9d3ad6b54fcd1e08548033cc09dc6aacacb6c004c73c3eb5d3ac3", size = 4209082 }, + { url = "https://files.pythonhosted.org/packages/0e/e4/b3e68a4ac363406a56cf7b741eeb80d05284d8c60ee1a55cdc7587e2a553/cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b6a0e535baec27b528cb07a119f321ac024592388c5681a5ced167ae98e9fff3", size = 4460397 }, + { url = "https://files.pythonhosted.org/packages/22/49/2c93f3cd4e3efc8cb22b02678c1fad691cff9dd71bb889e030d100acbfe0/cryptography-45.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a24ee598d10befaec178efdff6054bc4d7e883f615bfbcd08126a0f4931c83a6", size = 4337244 }, + { url = "https://files.pythonhosted.org/packages/04/19/030f400de0bccccc09aa262706d90f2ec23d56bc4eb4f4e8268d0ddf3fb8/cryptography-45.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa26fa54c0a9384c27fcdc905a2fb7d60ac6e47d14bc2692145f2b3b1e2cfdbd", size = 4568862 }, + { url = "https://files.pythonhosted.org/packages/29/56/3034a3a353efa65116fa20eb3c990a8c9f0d3db4085429040a7eef9ada5f/cryptography-45.0.7-cp311-abi3-win32.whl", hash = "sha256:bef32a5e327bd8e5af915d3416ffefdbe65ed975b646b3805be81b23580b57b8", size = 2936578 }, + { url = "https://files.pythonhosted.org/packages/b3/61/0ab90f421c6194705a99d0fa9f6ee2045d916e4455fdbb095a9c2c9a520f/cryptography-45.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:3808e6b2e5f0b46d981c24d79648e5c25c35e59902ea4391a0dcb3e667bf7443", size = 3405400 }, + { url = "https://files.pythonhosted.org/packages/63/e8/c436233ddf19c5f15b25ace33979a9dd2e7aa1a59209a0ee8554179f1cc0/cryptography-45.0.7-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bfb4c801f65dd61cedfc61a83732327fafbac55a47282e6f26f073ca7a41c3b2", size = 7021824 }, + { url = "https://files.pythonhosted.org/packages/bc/4c/8f57f2500d0ccd2675c5d0cc462095adf3faa8c52294ba085c036befb901/cryptography-45.0.7-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:81823935e2f8d476707e85a78a405953a03ef7b7b4f55f93f7c2d9680e5e0691", size = 4202233 }, + { url = "https://files.pythonhosted.org/packages/eb/ac/59b7790b4ccaed739fc44775ce4645c9b8ce54cbec53edf16c74fd80cb2b/cryptography-45.0.7-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3994c809c17fc570c2af12c9b840d7cea85a9fd3e5c0e0491f4fa3c029216d59", size = 4423075 }, + { url = "https://files.pythonhosted.org/packages/b8/56/d4f07ea21434bf891faa088a6ac15d6d98093a66e75e30ad08e88aa2b9ba/cryptography-45.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dad43797959a74103cb59c5dac71409f9c27d34c8a05921341fb64ea8ccb1dd4", size = 4204517 }, + { url = "https://files.pythonhosted.org/packages/e8/ac/924a723299848b4c741c1059752c7cfe09473b6fd77d2920398fc26bfb53/cryptography-45.0.7-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ce7a453385e4c4693985b4a4a3533e041558851eae061a58a5405363b098fcd3", size = 3882893 }, + { url = "https://files.pythonhosted.org/packages/83/dc/4dab2ff0a871cc2d81d3ae6d780991c0192b259c35e4d83fe1de18b20c70/cryptography-45.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b04f85ac3a90c227b6e5890acb0edbaf3140938dbecf07bff618bf3638578cf1", size = 4450132 }, + { url = "https://files.pythonhosted.org/packages/12/dd/b2882b65db8fc944585d7fb00d67cf84a9cef4e77d9ba8f69082e911d0de/cryptography-45.0.7-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:48c41a44ef8b8c2e80ca4527ee81daa4c527df3ecbc9423c41a420a9559d0e27", size = 4204086 }, + { url = "https://files.pythonhosted.org/packages/5d/fa/1d5745d878048699b8eb87c984d4ccc5da4f5008dfd3ad7a94040caca23a/cryptography-45.0.7-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f3df7b3d0f91b88b2106031fd995802a2e9ae13e02c36c1fc075b43f420f3a17", size = 4449383 }, + { url = "https://files.pythonhosted.org/packages/36/8b/fc61f87931bc030598e1876c45b936867bb72777eac693e905ab89832670/cryptography-45.0.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dd342f085542f6eb894ca00ef70236ea46070c8a13824c6bde0dfdcd36065b9b", size = 4332186 }, + { url = "https://files.pythonhosted.org/packages/0b/11/09700ddad7443ccb11d674efdbe9a832b4455dc1f16566d9bd3834922ce5/cryptography-45.0.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1993a1bb7e4eccfb922b6cd414f072e08ff5816702a0bdb8941c247a6b1b287c", size = 4561639 }, + { url = "https://files.pythonhosted.org/packages/71/ed/8f4c1337e9d3b94d8e50ae0b08ad0304a5709d483bfcadfcc77a23dbcb52/cryptography-45.0.7-cp37-abi3-win32.whl", hash = "sha256:18fcf70f243fe07252dcb1b268a687f2358025ce32f9f88028ca5c364b123ef5", size = 2926552 }, + { url = "https://files.pythonhosted.org/packages/bc/ff/026513ecad58dacd45d1d24ebe52b852165a26e287177de1d545325c0c25/cryptography-45.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:7285a89df4900ed3bfaad5679b1e668cb4b38a8de1ccbfc84b05f34512da0a90", size = 3392742 }, ] [[package]] @@ -519,33 +519,33 @@ dependencies = [ { name = "blessed" }, { name = "cwcwidth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d1/18/5741cb42624089a815520d5b65c39c3e59673a77fd1fab6ad65bdebf2f91/curtsies-0.4.3.tar.gz", hash = "sha256:102a0ffbf952124f1be222fd6989da4ec7cce04e49f613009e5f54ad37618825", size = 53401, upload-time = "2025-06-05T06:33:20.099Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d1/18/5741cb42624089a815520d5b65c39c3e59673a77fd1fab6ad65bdebf2f91/curtsies-0.4.3.tar.gz", hash = "sha256:102a0ffbf952124f1be222fd6989da4ec7cce04e49f613009e5f54ad37618825", size = 53401 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/9b/b8ee3720d056309f4ab667bfc85995c4351f67b22e8c2008612b70350c3a/curtsies-0.4.3-py3-none-any.whl", hash = "sha256:65a1b4d6ff887bd9b0f0836cc6dc68c3a2c65c57f51a62f0ee5df408edee1a99", size = 35482, upload-time = "2025-06-05T06:33:19.122Z" }, + { url = "https://files.pythonhosted.org/packages/ab/9b/b8ee3720d056309f4ab667bfc85995c4351f67b22e8c2008612b70350c3a/curtsies-0.4.3-py3-none-any.whl", hash = "sha256:65a1b4d6ff887bd9b0f0836cc6dc68c3a2c65c57f51a62f0ee5df408edee1a99", size = 35482 }, ] [[package]] name = "cwcwidth" version = "0.1.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/23/76/03fc9fb3441a13e9208bb6103ebb7200eba7647d040008b8303a1c03e152/cwcwidth-0.1.10.tar.gz", hash = "sha256:7468760f72c1f4107be1b2b2854bc000401ea36a69daed36fb966a1e19a7a124", size = 60265, upload-time = "2025-02-09T21:15:28.452Z" } +sdist = { url = "https://files.pythonhosted.org/packages/23/76/03fc9fb3441a13e9208bb6103ebb7200eba7647d040008b8303a1c03e152/cwcwidth-0.1.10.tar.gz", hash = "sha256:7468760f72c1f4107be1b2b2854bc000401ea36a69daed36fb966a1e19a7a124", size = 60265 } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/28/8e2ab81f0116bfcec22069e4c92fda9d05b0512605ccef00b62d93719ded/cwcwidth-0.1.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d2b21ff2eb60c6793349b7fb161c40a8583a57ec32e61f47aab7938177bfdec", size = 23031, upload-time = "2025-02-09T21:14:59.01Z" }, - { url = "https://files.pythonhosted.org/packages/3a/a4/5adc535e2a714ecc926ea701e821a9abbe14f65cae4d615d20059b9b52a5/cwcwidth-0.1.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0316488349c3e5ca4b20de7daa1cb8e96a05d1d14d040d46e87a495da655f4a", size = 101219, upload-time = "2025-02-09T21:15:00.079Z" }, - { url = "https://files.pythonhosted.org/packages/78/4c/18a5a06aa8db3cc28712ab957671e7718aedfc73403d84b0c2cb5cfcbc27/cwcwidth-0.1.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:848b6ffca1e32e28d2ccbb2cd395ccd3c38a7c4ec110728cd9d828eaf609b09e", size = 106565, upload-time = "2025-02-09T21:15:02.081Z" }, - { url = "https://files.pythonhosted.org/packages/06/40/801cba5ccb9551c862ad210eba22031e4655cd74711e32756b7ce24fc751/cwcwidth-0.1.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c3a7bfe1da478c0c27c549f68c6e28a583413da3ee451854ec2d983497bd18b8", size = 102244, upload-time = "2025-02-09T21:15:04.003Z" }, - { url = "https://files.pythonhosted.org/packages/e4/ed/60f61274fcfd0621a45e9403502e8f46968d562810a4424e5ff8d6bd50b0/cwcwidth-0.1.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cff03100f49170bc50fc399d05a31b8fcb7b0cef26df1a8068fa943387107f6c", size = 105634, upload-time = "2025-02-09T21:15:06.005Z" }, - { url = "https://files.pythonhosted.org/packages/b1/27/8179cecd688fef894dda601455d35066adfa3d58af4e97c5ab112893b5f6/cwcwidth-0.1.10-cp312-cp312-win32.whl", hash = "sha256:2dd9a92fdfbc53fc79f0953f39708dcf743fd27450c374985f419e3d47eb89d4", size = 23507, upload-time = "2025-02-09T21:15:07.968Z" }, - { url = "https://files.pythonhosted.org/packages/b2/b4/b7fe652a4d96f03ef051fff8313dfe827bc31578f7e67f1c98d5a5813f66/cwcwidth-0.1.10-cp312-cp312-win_amd64.whl", hash = "sha256:734d764281e3d87c40d0265543f00a653409145fa9f48a93bc0fbf9a8e7932ca", size = 26100, upload-time = "2025-02-09T21:15:09.186Z" }, + { url = "https://files.pythonhosted.org/packages/87/28/8e2ab81f0116bfcec22069e4c92fda9d05b0512605ccef00b62d93719ded/cwcwidth-0.1.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d2b21ff2eb60c6793349b7fb161c40a8583a57ec32e61f47aab7938177bfdec", size = 23031 }, + { url = "https://files.pythonhosted.org/packages/3a/a4/5adc535e2a714ecc926ea701e821a9abbe14f65cae4d615d20059b9b52a5/cwcwidth-0.1.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0316488349c3e5ca4b20de7daa1cb8e96a05d1d14d040d46e87a495da655f4a", size = 101219 }, + { url = "https://files.pythonhosted.org/packages/78/4c/18a5a06aa8db3cc28712ab957671e7718aedfc73403d84b0c2cb5cfcbc27/cwcwidth-0.1.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:848b6ffca1e32e28d2ccbb2cd395ccd3c38a7c4ec110728cd9d828eaf609b09e", size = 106565 }, + { url = "https://files.pythonhosted.org/packages/06/40/801cba5ccb9551c862ad210eba22031e4655cd74711e32756b7ce24fc751/cwcwidth-0.1.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c3a7bfe1da478c0c27c549f68c6e28a583413da3ee451854ec2d983497bd18b8", size = 102244 }, + { url = "https://files.pythonhosted.org/packages/e4/ed/60f61274fcfd0621a45e9403502e8f46968d562810a4424e5ff8d6bd50b0/cwcwidth-0.1.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cff03100f49170bc50fc399d05a31b8fcb7b0cef26df1a8068fa943387107f6c", size = 105634 }, + { url = "https://files.pythonhosted.org/packages/b1/27/8179cecd688fef894dda601455d35066adfa3d58af4e97c5ab112893b5f6/cwcwidth-0.1.10-cp312-cp312-win32.whl", hash = "sha256:2dd9a92fdfbc53fc79f0953f39708dcf743fd27450c374985f419e3d47eb89d4", size = 23507 }, + { url = "https://files.pythonhosted.org/packages/b2/b4/b7fe652a4d96f03ef051fff8313dfe827bc31578f7e67f1c98d5a5813f66/cwcwidth-0.1.10-cp312-cp312-win_amd64.whl", hash = "sha256:734d764281e3d87c40d0265543f00a653409145fa9f48a93bc0fbf9a8e7932ca", size = 26100 }, ] [[package]] name = "cycler" version = "0.12.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 }, ] [[package]] @@ -555,44 +555,62 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "toolz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/f9/3243eed3a6545c2a33a21f74f655e3fcb5d2192613cd3db81a93369eb339/cytoolz-1.0.1.tar.gz", hash = "sha256:89cc3161b89e1bb3ed7636f74ed2e55984fd35516904fc878cae216e42b2c7d6", size = 626652, upload-time = "2024-12-13T05:47:36.672Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/f9/3243eed3a6545c2a33a21f74f655e3fcb5d2192613cd3db81a93369eb339/cytoolz-1.0.1.tar.gz", hash = "sha256:89cc3161b89e1bb3ed7636f74ed2e55984fd35516904fc878cae216e42b2c7d6", size = 626652 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/e8/218098344ed2cb5f8441fade9b2428e435e7073962374a9c71e59ac141a7/cytoolz-1.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fcb8f7d0d65db1269022e7e0428471edee8c937bc288ebdcb72f13eaa67c2fe4", size = 414121, upload-time = "2024-12-13T05:45:26.588Z" }, - { url = "https://files.pythonhosted.org/packages/de/27/4d729a5653718109262b758fec1a959aa9facb74c15460d9074dc76d6635/cytoolz-1.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:207d4e4b445e087e65556196ff472ff134370d9a275d591724142e255f384662", size = 390904, upload-time = "2024-12-13T05:45:27.718Z" }, - { url = "https://files.pythonhosted.org/packages/72/c0/cbabfa788bab9c6038953bf9478adaec06e88903a726946ea7c88092f5c4/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21cdf6bac6fd843f3b20280a66fd8df20dea4c58eb7214a2cd8957ec176f0bb3", size = 2090734, upload-time = "2024-12-13T05:45:30.515Z" }, - { url = "https://files.pythonhosted.org/packages/c3/66/369262c60f9423c2da82a60864a259c852f1aa122aced4acd2c679af58c0/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a55ec098036c0dea9f3bdc021f8acd9d105a945227d0811589f0573f21c9ce1", size = 2155933, upload-time = "2024-12-13T05:45:32.721Z" }, - { url = "https://files.pythonhosted.org/packages/aa/4e/ee55186802f8d24b5fbf9a11405ccd1203b30eded07cc17750618219b94e/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a13ab79ff4ce202e03ab646a2134696988b554b6dc4b71451e948403db1331d8", size = 2171903, upload-time = "2024-12-13T05:45:34.205Z" }, - { url = "https://files.pythonhosted.org/packages/a1/96/bd1a9f3396e9b7f618db8cd08d15630769ce3c8b7d0534f92cd639c977ae/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e2d944799026e1ff08a83241f1027a2d9276c41f7a74224cd98b7df6e03957d", size = 2125270, upload-time = "2024-12-13T05:45:36.982Z" }, - { url = "https://files.pythonhosted.org/packages/28/48/2a3762873091c88a69e161111cfbc6c222ff145d57ff011a642b169f04f1/cytoolz-1.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88ba85834cd523b91fdf10325e1e6d71c798de36ea9bdc187ca7bd146420de6f", size = 1973967, upload-time = "2024-12-13T05:45:39.505Z" }, - { url = "https://files.pythonhosted.org/packages/e4/50/500bd69774bdc49a4d78ec8779eb6ac7c1a9d706bfd91cf2a1dba604373a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a750b1af7e8bf6727f588940b690d69e25dc47cce5ce467925a76561317eaf7", size = 2021695, upload-time = "2024-12-13T05:45:40.911Z" }, - { url = "https://files.pythonhosted.org/packages/e4/4e/ba5a0ce34869495eb50653de8d676847490cf13a2cac1760fc4d313e78de/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:44a71870f7eae31d263d08b87da7c2bf1176f78892ed8bdade2c2850478cb126", size = 2010177, upload-time = "2024-12-13T05:45:42.48Z" }, - { url = "https://files.pythonhosted.org/packages/87/57/615c630b3089a13adb15351d958d227430cf624f03b1dd39eb52c34c1f59/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c8231b9abbd8e368e036f4cc2e16902c9482d4cf9e02a6147ed0e9a3cd4a9ab0", size = 2154321, upload-time = "2024-12-13T05:45:43.979Z" }, - { url = "https://files.pythonhosted.org/packages/7f/0f/fe1aa2d931e3b35ecc05215bd75da945ea7346095b3b6f6027164e602d5a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:aa87599ccc755de5a096a4d6c34984de6cd9dc928a0c5eaa7607457317aeaf9b", size = 2188374, upload-time = "2024-12-13T05:45:46.783Z" }, - { url = "https://files.pythonhosted.org/packages/de/fa/fd363d97a641b6d0e2fd1d5c35b8fd41d9ccaeb4df56302f53bf23a58e3a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67cd16537df51baabde3baa770ab7b8d16839c4d21219d5b96ac59fb012ebd2d", size = 2077911, upload-time = "2024-12-13T05:45:48.219Z" }, - { url = "https://files.pythonhosted.org/packages/d9/68/0a22946b98ae5201b54ccb4e651295285c0fb79406022b6ee8b2f791940c/cytoolz-1.0.1-cp312-cp312-win32.whl", hash = "sha256:fb988c333f05ee30ad4693fe4da55d95ec0bb05775d2b60191236493ea2e01f9", size = 321903, upload-time = "2024-12-13T05:45:50.3Z" }, - { url = "https://files.pythonhosted.org/packages/62/1a/f3903197956055032f8cb297342e2dff07e50f83991aebfe5b4c4fcb55e4/cytoolz-1.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:8f89c48d8e5aec55ffd566a8ec858706d70ed0c6a50228eca30986bfa5b4da8b", size = 364490, upload-time = "2024-12-13T05:45:51.494Z" }, + { url = "https://files.pythonhosted.org/packages/d8/e8/218098344ed2cb5f8441fade9b2428e435e7073962374a9c71e59ac141a7/cytoolz-1.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fcb8f7d0d65db1269022e7e0428471edee8c937bc288ebdcb72f13eaa67c2fe4", size = 414121 }, + { url = "https://files.pythonhosted.org/packages/de/27/4d729a5653718109262b758fec1a959aa9facb74c15460d9074dc76d6635/cytoolz-1.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:207d4e4b445e087e65556196ff472ff134370d9a275d591724142e255f384662", size = 390904 }, + { url = "https://files.pythonhosted.org/packages/72/c0/cbabfa788bab9c6038953bf9478adaec06e88903a726946ea7c88092f5c4/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21cdf6bac6fd843f3b20280a66fd8df20dea4c58eb7214a2cd8957ec176f0bb3", size = 2090734 }, + { url = "https://files.pythonhosted.org/packages/c3/66/369262c60f9423c2da82a60864a259c852f1aa122aced4acd2c679af58c0/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a55ec098036c0dea9f3bdc021f8acd9d105a945227d0811589f0573f21c9ce1", size = 2155933 }, + { url = "https://files.pythonhosted.org/packages/aa/4e/ee55186802f8d24b5fbf9a11405ccd1203b30eded07cc17750618219b94e/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a13ab79ff4ce202e03ab646a2134696988b554b6dc4b71451e948403db1331d8", size = 2171903 }, + { url = "https://files.pythonhosted.org/packages/a1/96/bd1a9f3396e9b7f618db8cd08d15630769ce3c8b7d0534f92cd639c977ae/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e2d944799026e1ff08a83241f1027a2d9276c41f7a74224cd98b7df6e03957d", size = 2125270 }, + { url = "https://files.pythonhosted.org/packages/28/48/2a3762873091c88a69e161111cfbc6c222ff145d57ff011a642b169f04f1/cytoolz-1.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88ba85834cd523b91fdf10325e1e6d71c798de36ea9bdc187ca7bd146420de6f", size = 1973967 }, + { url = "https://files.pythonhosted.org/packages/e4/50/500bd69774bdc49a4d78ec8779eb6ac7c1a9d706bfd91cf2a1dba604373a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a750b1af7e8bf6727f588940b690d69e25dc47cce5ce467925a76561317eaf7", size = 2021695 }, + { url = "https://files.pythonhosted.org/packages/e4/4e/ba5a0ce34869495eb50653de8d676847490cf13a2cac1760fc4d313e78de/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:44a71870f7eae31d263d08b87da7c2bf1176f78892ed8bdade2c2850478cb126", size = 2010177 }, + { url = "https://files.pythonhosted.org/packages/87/57/615c630b3089a13adb15351d958d227430cf624f03b1dd39eb52c34c1f59/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c8231b9abbd8e368e036f4cc2e16902c9482d4cf9e02a6147ed0e9a3cd4a9ab0", size = 2154321 }, + { url = "https://files.pythonhosted.org/packages/7f/0f/fe1aa2d931e3b35ecc05215bd75da945ea7346095b3b6f6027164e602d5a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:aa87599ccc755de5a096a4d6c34984de6cd9dc928a0c5eaa7607457317aeaf9b", size = 2188374 }, + { url = "https://files.pythonhosted.org/packages/de/fa/fd363d97a641b6d0e2fd1d5c35b8fd41d9ccaeb4df56302f53bf23a58e3a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67cd16537df51baabde3baa770ab7b8d16839c4d21219d5b96ac59fb012ebd2d", size = 2077911 }, + { url = "https://files.pythonhosted.org/packages/d9/68/0a22946b98ae5201b54ccb4e651295285c0fb79406022b6ee8b2f791940c/cytoolz-1.0.1-cp312-cp312-win32.whl", hash = "sha256:fb988c333f05ee30ad4693fe4da55d95ec0bb05775d2b60191236493ea2e01f9", size = 321903 }, + { url = "https://files.pythonhosted.org/packages/62/1a/f3903197956055032f8cb297342e2dff07e50f83991aebfe5b4c4fcb55e4/cytoolz-1.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:8f89c48d8e5aec55ffd566a8ec858706d70ed0c6a50228eca30986bfa5b4da8b", size = 364490 }, ] [[package]] name = "debugpy" version = "1.8.16" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/d4/722d0bcc7986172ac2ef3c979ad56a1030e3afd44ced136d45f8142b1f4a/debugpy-1.8.16.tar.gz", hash = "sha256:31e69a1feb1cf6b51efbed3f6c9b0ef03bc46ff050679c4be7ea6d2e23540870", size = 1643809, upload-time = "2025-08-06T18:00:02.647Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/d4/722d0bcc7986172ac2ef3c979ad56a1030e3afd44ced136d45f8142b1f4a/debugpy-1.8.16.tar.gz", hash = "sha256:31e69a1feb1cf6b51efbed3f6c9b0ef03bc46ff050679c4be7ea6d2e23540870", size = 1643809 } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/fb/0387c0e108d842c902801bc65ccc53e5b91d8c169702a9bbf4f7efcedf0c/debugpy-1.8.16-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:b202e2843e32e80b3b584bcebfe0e65e0392920dc70df11b2bfe1afcb7a085e4", size = 2511822, upload-time = "2025-08-06T18:00:18.526Z" }, - { url = "https://files.pythonhosted.org/packages/37/44/19e02745cae22bf96440141f94e15a69a1afaa3a64ddfc38004668fcdebf/debugpy-1.8.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64473c4a306ba11a99fe0bb14622ba4fbd943eb004847d9b69b107bde45aa9ea", size = 4230135, upload-time = "2025-08-06T18:00:19.997Z" }, - { url = "https://files.pythonhosted.org/packages/f3/0b/19b1ba5ee4412f303475a2c7ad5858efb99c90eae5ec627aa6275c439957/debugpy-1.8.16-cp312-cp312-win32.whl", hash = "sha256:833a61ed446426e38b0dd8be3e9d45ae285d424f5bf6cd5b2b559c8f12305508", size = 5281271, upload-time = "2025-08-06T18:00:21.281Z" }, - { url = "https://files.pythonhosted.org/packages/b1/e0/bc62e2dc141de53bd03e2c7cb9d7011de2e65e8bdcdaa26703e4d28656ba/debugpy-1.8.16-cp312-cp312-win_amd64.whl", hash = "sha256:75f204684581e9ef3dc2f67687c3c8c183fde2d6675ab131d94084baf8084121", size = 5323149, upload-time = "2025-08-06T18:00:23.033Z" }, - { url = "https://files.pythonhosted.org/packages/52/57/ecc9ae29fa5b2d90107cd1d9bf8ed19aacb74b2264d986ae9d44fe9bdf87/debugpy-1.8.16-py2.py3-none-any.whl", hash = "sha256:19c9521962475b87da6f673514f7fd610328757ec993bf7ec0d8c96f9a325f9e", size = 5287700, upload-time = "2025-08-06T18:00:42.333Z" }, + { url = "https://files.pythonhosted.org/packages/61/fb/0387c0e108d842c902801bc65ccc53e5b91d8c169702a9bbf4f7efcedf0c/debugpy-1.8.16-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:b202e2843e32e80b3b584bcebfe0e65e0392920dc70df11b2bfe1afcb7a085e4", size = 2511822 }, + { url = "https://files.pythonhosted.org/packages/37/44/19e02745cae22bf96440141f94e15a69a1afaa3a64ddfc38004668fcdebf/debugpy-1.8.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64473c4a306ba11a99fe0bb14622ba4fbd943eb004847d9b69b107bde45aa9ea", size = 4230135 }, + { url = "https://files.pythonhosted.org/packages/f3/0b/19b1ba5ee4412f303475a2c7ad5858efb99c90eae5ec627aa6275c439957/debugpy-1.8.16-cp312-cp312-win32.whl", hash = "sha256:833a61ed446426e38b0dd8be3e9d45ae285d424f5bf6cd5b2b559c8f12305508", size = 5281271 }, + { url = "https://files.pythonhosted.org/packages/b1/e0/bc62e2dc141de53bd03e2c7cb9d7011de2e65e8bdcdaa26703e4d28656ba/debugpy-1.8.16-cp312-cp312-win_amd64.whl", hash = "sha256:75f204684581e9ef3dc2f67687c3c8c183fde2d6675ab131d94084baf8084121", size = 5323149 }, + { url = "https://files.pythonhosted.org/packages/52/57/ecc9ae29fa5b2d90107cd1d9bf8ed19aacb74b2264d986ae9d44fe9bdf87/debugpy-1.8.16-py2.py3-none-any.whl", hash = "sha256:19c9521962475b87da6f673514f7fd610328757ec993bf7ec0d8c96f9a325f9e", size = 5287700 }, ] [[package]] name = "decorator" version = "5.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190 }, +] + +[[package]] +name = "dsperse" +version = "1.0.1" +source = { git = "https://github.com/inference-labs-inc/dsperse.git?rev=dsperse-integration#150a835580d9d32066dfb34cce38c49331691b60" } +dependencies = [ + { name = "colorama" }, + { name = "ezkl" }, + { name = "matplotlib" }, + { name = "networkx" }, + { name = "numpy" }, + { name = "onnx" }, + { name = "onnxruntime" }, + { name = "pytest" }, + { name = "torch", version = "2.7.1", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" }, + { name = "torch", version = "2.7.1+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" }, + { name = "tqdm" }, ] [[package]] @@ -602,18 +620,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c0/1f/924e3caae75f471eae4b26bd13b698f6af2c44279f67af317439c2f4c46a/ecdsa-0.19.1.tar.gz", hash = "sha256:478cba7b62555866fcb3bb3fe985e06decbdb68ef55713c4e5ab98c57d508e61", size = 201793, upload-time = "2025-03-13T11:52:43.25Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/1f/924e3caae75f471eae4b26bd13b698f6af2c44279f67af317439c2f4c46a/ecdsa-0.19.1.tar.gz", hash = "sha256:478cba7b62555866fcb3bb3fe985e06decbdb68ef55713c4e5ab98c57d508e61", size = 201793 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/a3/460c57f094a4a165c84a1341c373b0a4f5ec6ac244b998d5021aade89b77/ecdsa-0.19.1-py2.py3-none-any.whl", hash = "sha256:30638e27cf77b7e15c4c4cc1973720149e1033827cfd00661ca5c8cc0cdb24c3", size = 150607, upload-time = "2025-03-13T11:52:41.757Z" }, + { url = "https://files.pythonhosted.org/packages/cb/a3/460c57f094a4a165c84a1341c373b0a4f5ec6ac244b998d5021aade89b77/ecdsa-0.19.1-py2.py3-none-any.whl", hash = "sha256:30638e27cf77b7e15c4c4cc1973720149e1033827cfd00661ca5c8cc0cdb24c3", size = 150607 }, ] [[package]] name = "eth-hash" version = "0.7.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/38/577b7bc9380ef9dff0f1dffefe0c9a1ded2385e7a06c306fd95afb6f9451/eth_hash-0.7.1.tar.gz", hash = "sha256:d2411a403a0b0a62e8247b4117932d900ffb4c8c64b15f92620547ca5ce46be5", size = 12227, upload-time = "2025-01-13T21:29:21.765Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/38/577b7bc9380ef9dff0f1dffefe0c9a1ded2385e7a06c306fd95afb6f9451/eth_hash-0.7.1.tar.gz", hash = "sha256:d2411a403a0b0a62e8247b4117932d900ffb4c8c64b15f92620547ca5ce46be5", size = 12227 } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/db/f8775490669d28aca24871c67dd56b3e72105cb3bcae9a4ec65dd70859b3/eth_hash-0.7.1-py3-none-any.whl", hash = "sha256:0fb1add2adf99ef28883fd6228eb447ef519ea72933535ad1a0b28c6f65f868a", size = 8028, upload-time = "2025-01-13T21:29:19.365Z" }, + { url = "https://files.pythonhosted.org/packages/eb/db/f8775490669d28aca24871c67dd56b3e72105cb3bcae9a4ec65dd70859b3/eth_hash-0.7.1-py3-none-any.whl", hash = "sha256:0fb1add2adf99ef28883fd6228eb447ef519ea72933535ad1a0b28c6f65f868a", size = 8028 }, ] [[package]] @@ -624,9 +642,9 @@ dependencies = [ { name = "eth-typing" }, { name = "eth-utils" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/11/1ed831c50bd74f57829aa06e58bd82a809c37e070ee501c953b9ac1f1552/eth_keys-0.7.0.tar.gz", hash = "sha256:79d24fd876201df67741de3e3fefb3f4dbcbb6ace66e47e6fe662851a4547814", size = 30166, upload-time = "2025-04-07T17:40:21.697Z" } +sdist = { url = "https://files.pythonhosted.org/packages/58/11/1ed831c50bd74f57829aa06e58bd82a809c37e070ee501c953b9ac1f1552/eth_keys-0.7.0.tar.gz", hash = "sha256:79d24fd876201df67741de3e3fefb3f4dbcbb6ace66e47e6fe662851a4547814", size = 30166 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/25/0ae00f2b0095e559d61ad3dc32171bd5a29dfd95ab04b4edd641f7c75f72/eth_keys-0.7.0-py3-none-any.whl", hash = "sha256:b0cdda8ffe8e5ba69c7c5ca33f153828edcace844f67aabd4542d7de38b159cf", size = 20656, upload-time = "2025-04-07T17:40:20.441Z" }, + { url = "https://files.pythonhosted.org/packages/4d/25/0ae00f2b0095e559d61ad3dc32171bd5a29dfd95ab04b4edd641f7c75f72/eth_keys-0.7.0-py3-none-any.whl", hash = "sha256:b0cdda8ffe8e5ba69c7c5ca33f153828edcace844f67aabd4542d7de38b159cf", size = 20656 }, ] [[package]] @@ -636,9 +654,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/54/62aa24b9cc708f06316167ee71c362779c8ed21fc8234a5cd94a8f53b623/eth_typing-5.2.1.tar.gz", hash = "sha256:7557300dbf02a93c70fa44af352b5c4a58f94e997a0fd6797fb7d1c29d9538ee", size = 21806, upload-time = "2025-04-14T20:39:28.217Z" } +sdist = { url = "https://files.pythonhosted.org/packages/60/54/62aa24b9cc708f06316167ee71c362779c8ed21fc8234a5cd94a8f53b623/eth_typing-5.2.1.tar.gz", hash = "sha256:7557300dbf02a93c70fa44af352b5c4a58f94e997a0fd6797fb7d1c29d9538ee", size = 21806 } wheels = [ - { url = "https://files.pythonhosted.org/packages/30/72/c370bbe4c53da7bf998d3523f5a0f38867654923a82192df88d0705013d3/eth_typing-5.2.1-py3-none-any.whl", hash = "sha256:b0c2812ff978267563b80e9d701f487dd926f1d376d674f3b535cfe28b665d3d", size = 19163, upload-time = "2025-04-14T20:39:26.571Z" }, + { url = "https://files.pythonhosted.org/packages/30/72/c370bbe4c53da7bf998d3523f5a0f38867654923a82192df88d0705013d3/eth_typing-5.2.1-py3-none-any.whl", hash = "sha256:b0c2812ff978267563b80e9d701f487dd926f1d376d674f3b535cfe28b665d3d", size = 19163 }, ] [[package]] @@ -652,9 +670,9 @@ dependencies = [ { name = "pydantic" }, { name = "toolz", marker = "implementation_name == 'pypy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e6/e1/ee3a8728227c3558853e63ff35bd4c449abdf5022a19601369400deacd39/eth_utils-5.3.1.tar.gz", hash = "sha256:c94e2d2abd024a9a42023b4ddc1c645814ff3d6a737b33d5cfd890ebf159c2d1", size = 123506, upload-time = "2025-08-27T16:37:17.378Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/e1/ee3a8728227c3558853e63ff35bd4c449abdf5022a19601369400deacd39/eth_utils-5.3.1.tar.gz", hash = "sha256:c94e2d2abd024a9a42023b4ddc1c645814ff3d6a737b33d5cfd890ebf159c2d1", size = 123506 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/4d/257cdc01ada430b8e84b9f2385c2553f33218f5b47da9adf0a616308d4b7/eth_utils-5.3.1-py3-none-any.whl", hash = "sha256:1f5476d8f29588d25b8ae4987e1ffdfae6d4c09026e476c4aad13b32dda3ead0", size = 102529, upload-time = "2025-08-27T16:37:15.449Z" }, + { url = "https://files.pythonhosted.org/packages/bf/4d/257cdc01ada430b8e84b9f2385c2553f33218f5b47da9adf0a616308d4b7/eth_utils-5.3.1-py3-none-any.whl", hash = "sha256:1f5476d8f29588d25b8ae4987e1ffdfae6d4c09026e476c4aad13b32dda3ead0", size = 102529 }, ] [[package]] @@ -665,32 +683,32 @@ dependencies = [ { name = "fastcore" }, { name = "ipython" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a5/1f/56c875f092a7ec1e7715d352369944a7d80bc8744cd054e9ce3d25740f7d/execnb-0.1.14.tar.gz", hash = "sha256:ba87e955809bd33318aa13314ff4df90b424bb4556741c2dcc90c7a28bc87ddd", size = 15289, upload-time = "2025-04-05T23:49:39.347Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/1f/56c875f092a7ec1e7715d352369944a7d80bc8744cd054e9ce3d25740f7d/execnb-0.1.14.tar.gz", hash = "sha256:ba87e955809bd33318aa13314ff4df90b424bb4556741c2dcc90c7a28bc87ddd", size = 15289 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/04/cb12795bb98c806b165e494c25671329d8dc35ee6c1bb361acf26d47a553/execnb-0.1.14-py3-none-any.whl", hash = "sha256:486065e0fa8a15c9668e1710f43aed3f73fd4fe1de15fd45e027aeea588c2936", size = 13790, upload-time = "2025-04-05T23:49:37.527Z" }, + { url = "https://files.pythonhosted.org/packages/b0/04/cb12795bb98c806b165e494c25671329d8dc35ee6c1bb361acf26d47a553/execnb-0.1.14-py3-none-any.whl", hash = "sha256:486065e0fa8a15c9668e1710f43aed3f73fd4fe1de15fd45e027aeea588c2936", size = 13790 }, ] [[package]] name = "executing" version = "2.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317 }, ] [[package]] name = "ezkl" -version = "22.0.1" +version = "22.2.1" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/b7/3bdc6c08656a10cd860270014fe945d06bd195451d583ba55f62ce2d7509/ezkl-22.0.1-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:3d84b010ae23f183f2543c78684fd9772774954ef070d14ccdcbc36ef34cd305", size = 22908384, upload-time = "2025-04-23T08:53:43.285Z" }, - { url = "https://files.pythonhosted.org/packages/1c/18/5b4c89971beb09d58d77a23066baeebca7dce7db68af4f8d22ebec191095/ezkl-22.0.1-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:69b52aa055ecc8a47707660e00ddbf72c8647cdaddb7e44c8c0b8247e257ca74", size = 12160037, upload-time = "2025-04-23T08:53:46.427Z" }, - { url = "https://files.pythonhosted.org/packages/bd/d1/42a7bb7c05381994fdc5362704e95470801854c9179a2acb7d43c499f580/ezkl-22.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b51baa1bfcb4dd2e209aa6d67e8fdce9dcd658b9868001a54c6c152fd9d439ec", size = 14342112, upload-time = "2025-04-23T08:53:48.945Z" }, - { url = "https://files.pythonhosted.org/packages/a2/5c/8f377d1166b67995ca4d6bc4370dab8fe9392c2639a9d89dd94cdf8f4a99/ezkl-22.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:38064ba748cdd03c71508766082b7774441c65879a4b4db27a326e55848c4793", size = 13659674, upload-time = "2025-04-23T08:53:51.171Z" }, - { url = "https://files.pythonhosted.org/packages/72/62/b0f518136a3a87a02f8c66b9b32413bf3cc199feeb7869afcb524a702a4d/ezkl-22.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2fcfb55370dbf3202b92c389fa4d2a2b3b57ddc2535c2cc479e43b00eaa41b1d", size = 14547975, upload-time = "2025-04-23T08:53:53.74Z" }, - { url = "https://files.pythonhosted.org/packages/50/2c/a6e8d3324359f2032628c0f377afc4e6ab907255db12d2754710ad91d056/ezkl-22.0.1-cp37-abi3-win32.whl", hash = "sha256:f4a0d074415d344bd4b1b86f27cbe3d3d7c2ee60e7eb1b196eda803557996676", size = 10697810, upload-time = "2025-04-23T08:53:56.468Z" }, - { url = "https://files.pythonhosted.org/packages/2e/22/0f098f99e6b2512c130227eb8045ce2636cb747e2aff4d784cb5b1123b5f/ezkl-22.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:deb1e540560ee8f98567da986f56daa82935abf92f8ba061cc8effa11687cbf4", size = 12119543, upload-time = "2025-04-23T08:53:59.128Z" }, + { url = "https://files.pythonhosted.org/packages/63/30/c83bb67dce260839a0cf4f9e5b4c97302b163c808ceda76e0fb9dbff6497/ezkl-22.2.1-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0a939581175fdef2fab356927d9c4395c22e99c8b00fa80c08edb86ccd6fa9c0", size = 23537536 }, + { url = "https://files.pythonhosted.org/packages/8c/92/3f69d7163333cd5da1680774fe0aff899045f8dad3a13a6989ec70efda52/ezkl-22.2.1-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c3b9fea855c11165b74f3f97bf01510ecc3249dc6e2eba02674c9f5967924df1", size = 12480722 }, + { url = "https://files.pythonhosted.org/packages/59/e3/594ddc887dd108a320d815c44c746e559c41d7999caa2e6967736bb088e6/ezkl-22.2.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8eac3f42cd3aa3a6879925a07469f8fef7aba0279efdaabd6cb31b706b22e5b", size = 14843162 }, + { url = "https://files.pythonhosted.org/packages/66/c1/190949dee335186230747002aa23906952fde733ad33bcf6924e8e5049cd/ezkl-22.2.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6c2353fede3155b9b588e61824e7505b33d0f9b8716cf2b99fe1aaa022840220", size = 14096986 }, + { url = "https://files.pythonhosted.org/packages/1a/f5/24504205c6536a178ef768a0e33a715b8abbe44da02d18e17d01179ba6a0/ezkl-22.2.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a5db874cbb59747118a90d050eb382dea6392775ccb85cdb8b954efe5bc2201e", size = 15072219 }, + { url = "https://files.pythonhosted.org/packages/17/b7/29bdd6129e4b41e619948a000cef13ef16e50c82541a55328f079359de65/ezkl-22.2.1-cp37-abi3-win32.whl", hash = "sha256:7b0a7aac78858934821d3cb3ec620684d28f7b679f485dd03108932f51032ca5", size = 10848669 }, + { url = "https://files.pythonhosted.org/packages/fa/ad/6334f2cec5d510c3789449c22a0f855684aa2f05cc7b000a48fbc8f36770/ezkl-22.2.1-cp37-abi3-win_amd64.whl", hash = "sha256:b2f6d0fb2bc037355e6f3ec3a73714f10e6a68aaf43a0f15c15d13f308b2f69c", size = 12430767 }, ] [[package]] @@ -702,9 +720,9 @@ dependencies = [ { name = "starlette" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/22/7b9ee50b0a8c48f076a111d6e4071a9d4c25623dc67689c5f3aa375f779b/fastapi-0.110.3.tar.gz", hash = "sha256:555700b0159379e94fdbfc6bb66a0f1c43f4cf7060f25239af3d84b63a656626", size = 287508, upload-time = "2024-04-30T00:38:02.576Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/22/7b9ee50b0a8c48f076a111d6e4071a9d4c25623dc67689c5f3aa375f779b/fastapi-0.110.3.tar.gz", hash = "sha256:555700b0159379e94fdbfc6bb66a0f1c43f4cf7060f25239af3d84b63a656626", size = 287508 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/d1/5958526c3bdbed74f88bf69b86506db5b25a600207f0f688473667690de6/fastapi-0.110.3-py3-none-any.whl", hash = "sha256:fd7600612f755e4050beb74001310b5a7e1796d149c2ee363124abdfa0289d32", size = 91834, upload-time = "2024-04-30T00:37:58.935Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d1/5958526c3bdbed74f88bf69b86506db5b25a600207f0f688473667690de6/fastapi-0.110.3-py3-none-any.whl", hash = "sha256:fd7600612f755e4050beb74001310b5a7e1796d149c2ee363124abdfa0289d32", size = 91834 }, ] [[package]] @@ -714,79 +732,79 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bf/15/2303dcaea2d11a6997a47a6aa9b0e8dcae5b4c8941c7694e1f9e97990cae/fastcore-1.8.8.tar.gz", hash = "sha256:939f7b79c5510b059ba9fc512dfe8aab30f5a752130a640070f8a1b494493b56", size = 76675, upload-time = "2025-08-23T22:35:56.378Z" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/15/2303dcaea2d11a6997a47a6aa9b0e8dcae5b4c8941c7694e1f9e97990cae/fastcore-1.8.8.tar.gz", hash = "sha256:939f7b79c5510b059ba9fc512dfe8aab30f5a752130a640070f8a1b494493b56", size = 76675 } wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/ec/bedc0f8b644deb023fcbc8e2879a8f84935f9109ebc61c6614b0bb78f90c/fastcore-1.8.8-py3-none-any.whl", hash = "sha256:f38853245e5ae5abb16275daac92fca00edeced020871b1d2416fb22cde70df8", size = 79436, upload-time = "2025-08-23T22:35:54.433Z" }, + { url = "https://files.pythonhosted.org/packages/7b/ec/bedc0f8b644deb023fcbc8e2879a8f84935f9109ebc61c6614b0bb78f90c/fastcore-1.8.8-py3-none-any.whl", hash = "sha256:f38853245e5ae5abb16275daac92fca00edeced020871b1d2416fb22cde70df8", size = 79436 }, ] [[package]] name = "filelock" version = "3.19.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/40/bb/0ab3e58d22305b6f5440629d20683af28959bf793d98d11950e305c1c326/filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58", size = 17687, upload-time = "2025-08-14T16:56:03.016Z" } +sdist = { url = "https://files.pythonhosted.org/packages/40/bb/0ab3e58d22305b6f5440629d20683af28959bf793d98d11950e305c1c326/filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58", size = 17687 } wheels = [ - { url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988, upload-time = "2025-08-14T16:56:01.633Z" }, + { url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988 }, ] [[package]] name = "flatbuffers" version = "25.2.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/30/eb5dce7994fc71a2f685d98ec33cc660c0a5887db5610137e60d8cbc4489/flatbuffers-25.2.10.tar.gz", hash = "sha256:97e451377a41262f8d9bd4295cc836133415cc03d8cb966410a4af92eb00d26e", size = 22170, upload-time = "2025-02-11T04:26:46.257Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/30/eb5dce7994fc71a2f685d98ec33cc660c0a5887db5610137e60d8cbc4489/flatbuffers-25.2.10.tar.gz", hash = "sha256:97e451377a41262f8d9bd4295cc836133415cc03d8cb966410a4af92eb00d26e", size = 22170 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b8/25/155f9f080d5e4bc0082edfda032ea2bc2b8fab3f4d25d46c1e9dd22a1a89/flatbuffers-25.2.10-py2.py3-none-any.whl", hash = "sha256:ebba5f4d5ea615af3f7fd70fc310636fbb2bbd1f566ac0a23d98dd412de50051", size = 30953, upload-time = "2025-02-11T04:26:44.484Z" }, + { url = "https://files.pythonhosted.org/packages/b8/25/155f9f080d5e4bc0082edfda032ea2bc2b8fab3f4d25d46c1e9dd22a1a89/flatbuffers-25.2.10-py2.py3-none-any.whl", hash = "sha256:ebba5f4d5ea615af3f7fd70fc310636fbb2bbd1f566ac0a23d98dd412de50051", size = 30953 }, ] [[package]] name = "fonttools" version = "4.59.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0d/a5/fba25f9fbdab96e26dedcaeeba125e5f05a09043bf888e0305326e55685b/fonttools-4.59.2.tar.gz", hash = "sha256:e72c0749b06113f50bcb80332364c6be83a9582d6e3db3fe0b280f996dc2ef22", size = 3540889, upload-time = "2025-08-27T16:40:30.97Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0d/a5/fba25f9fbdab96e26dedcaeeba125e5f05a09043bf888e0305326e55685b/fonttools-4.59.2.tar.gz", hash = "sha256:e72c0749b06113f50bcb80332364c6be83a9582d6e3db3fe0b280f996dc2ef22", size = 3540889 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/3d/1f45db2df51e7bfa55492e8f23f383d372200be3a0ded4bf56a92753dd1f/fonttools-4.59.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82906d002c349cad647a7634b004825a7335f8159d0d035ae89253b4abf6f3ea", size = 2769711, upload-time = "2025-08-27T16:39:04.423Z" }, - { url = "https://files.pythonhosted.org/packages/29/df/cd236ab32a8abfd11558f296e064424258db5edefd1279ffdbcfd4fd8b76/fonttools-4.59.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a10c1bd7644dc58f8862d8ba0cf9fb7fef0af01ea184ba6ce3f50ab7dfe74d5a", size = 2340225, upload-time = "2025-08-27T16:39:06.143Z" }, - { url = "https://files.pythonhosted.org/packages/98/12/b6f9f964fe6d4b4dd4406bcbd3328821c3de1f909ffc3ffa558fe72af48c/fonttools-4.59.2-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:738f31f23e0339785fd67652a94bc69ea49e413dfdb14dcb8c8ff383d249464e", size = 4912766, upload-time = "2025-08-27T16:39:08.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/78/82bde2f2d2c306ef3909b927363170b83df96171f74e0ccb47ad344563cd/fonttools-4.59.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ec99f9bdfee9cdb4a9172f9e8fd578cce5feb231f598909e0aecf5418da4f25", size = 4955178, upload-time = "2025-08-27T16:39:10.094Z" }, - { url = "https://files.pythonhosted.org/packages/92/77/7de766afe2d31dda8ee46d7e479f35c7d48747e558961489a2d6e3a02bd4/fonttools-4.59.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0476ea74161322e08c7a982f83558a2b81b491509984523a1a540baf8611cc31", size = 4897898, upload-time = "2025-08-27T16:39:12.087Z" }, - { url = "https://files.pythonhosted.org/packages/c5/77/ce0e0b905d62a06415fda9f2b2e109a24a5db54a59502b769e9e297d2242/fonttools-4.59.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:95922a922daa1f77cc72611747c156cfb38030ead72436a2c551d30ecef519b9", size = 5049144, upload-time = "2025-08-27T16:39:13.84Z" }, - { url = "https://files.pythonhosted.org/packages/d9/ea/870d93aefd23fff2e07cbeebdc332527868422a433c64062c09d4d5e7fe6/fonttools-4.59.2-cp312-cp312-win32.whl", hash = "sha256:39ad9612c6a622726a6a130e8ab15794558591f999673f1ee7d2f3d30f6a3e1c", size = 2206473, upload-time = "2025-08-27T16:39:15.854Z" }, - { url = "https://files.pythonhosted.org/packages/61/c4/e44bad000c4a4bb2e9ca11491d266e857df98ab6d7428441b173f0fe2517/fonttools-4.59.2-cp312-cp312-win_amd64.whl", hash = "sha256:980fd7388e461b19a881d35013fec32c713ffea1fc37aef2f77d11f332dfd7da", size = 2254706, upload-time = "2025-08-27T16:39:17.893Z" }, - { url = "https://files.pythonhosted.org/packages/65/a4/d2f7be3c86708912c02571db0b550121caab8cd88a3c0aacb9cfa15ea66e/fonttools-4.59.2-py3-none-any.whl", hash = "sha256:8bd0f759020e87bb5d323e6283914d9bf4ae35a7307dafb2cbd1e379e720ad37", size = 1132315, upload-time = "2025-08-27T16:40:28.984Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3d/1f45db2df51e7bfa55492e8f23f383d372200be3a0ded4bf56a92753dd1f/fonttools-4.59.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82906d002c349cad647a7634b004825a7335f8159d0d035ae89253b4abf6f3ea", size = 2769711 }, + { url = "https://files.pythonhosted.org/packages/29/df/cd236ab32a8abfd11558f296e064424258db5edefd1279ffdbcfd4fd8b76/fonttools-4.59.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a10c1bd7644dc58f8862d8ba0cf9fb7fef0af01ea184ba6ce3f50ab7dfe74d5a", size = 2340225 }, + { url = "https://files.pythonhosted.org/packages/98/12/b6f9f964fe6d4b4dd4406bcbd3328821c3de1f909ffc3ffa558fe72af48c/fonttools-4.59.2-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:738f31f23e0339785fd67652a94bc69ea49e413dfdb14dcb8c8ff383d249464e", size = 4912766 }, + { url = "https://files.pythonhosted.org/packages/73/78/82bde2f2d2c306ef3909b927363170b83df96171f74e0ccb47ad344563cd/fonttools-4.59.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ec99f9bdfee9cdb4a9172f9e8fd578cce5feb231f598909e0aecf5418da4f25", size = 4955178 }, + { url = "https://files.pythonhosted.org/packages/92/77/7de766afe2d31dda8ee46d7e479f35c7d48747e558961489a2d6e3a02bd4/fonttools-4.59.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0476ea74161322e08c7a982f83558a2b81b491509984523a1a540baf8611cc31", size = 4897898 }, + { url = "https://files.pythonhosted.org/packages/c5/77/ce0e0b905d62a06415fda9f2b2e109a24a5db54a59502b769e9e297d2242/fonttools-4.59.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:95922a922daa1f77cc72611747c156cfb38030ead72436a2c551d30ecef519b9", size = 5049144 }, + { url = "https://files.pythonhosted.org/packages/d9/ea/870d93aefd23fff2e07cbeebdc332527868422a433c64062c09d4d5e7fe6/fonttools-4.59.2-cp312-cp312-win32.whl", hash = "sha256:39ad9612c6a622726a6a130e8ab15794558591f999673f1ee7d2f3d30f6a3e1c", size = 2206473 }, + { url = "https://files.pythonhosted.org/packages/61/c4/e44bad000c4a4bb2e9ca11491d266e857df98ab6d7428441b173f0fe2517/fonttools-4.59.2-cp312-cp312-win_amd64.whl", hash = "sha256:980fd7388e461b19a881d35013fec32c713ffea1fc37aef2f77d11f332dfd7da", size = 2254706 }, + { url = "https://files.pythonhosted.org/packages/65/a4/d2f7be3c86708912c02571db0b550121caab8cd88a3c0aacb9cfa15ea66e/fonttools-4.59.2-py3-none-any.whl", hash = "sha256:8bd0f759020e87bb5d323e6283914d9bf4ae35a7307dafb2cbd1e379e720ad37", size = 1132315 }, ] [[package]] name = "frozenlist" version = "1.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078, upload-time = "2025-06-09T23:02:35.538Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424, upload-time = "2025-06-09T23:00:42.24Z" }, - { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952, upload-time = "2025-06-09T23:00:43.481Z" }, - { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688, upload-time = "2025-06-09T23:00:44.793Z" }, - { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084, upload-time = "2025-06-09T23:00:46.125Z" }, - { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524, upload-time = "2025-06-09T23:00:47.73Z" }, - { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493, upload-time = "2025-06-09T23:00:49.742Z" }, - { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116, upload-time = "2025-06-09T23:00:51.352Z" }, - { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557, upload-time = "2025-06-09T23:00:52.855Z" }, - { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820, upload-time = "2025-06-09T23:00:54.43Z" }, - { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542, upload-time = "2025-06-09T23:00:56.409Z" }, - { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350, upload-time = "2025-06-09T23:00:58.468Z" }, - { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093, upload-time = "2025-06-09T23:01:00.015Z" }, - { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482, upload-time = "2025-06-09T23:01:01.474Z" }, - { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590, upload-time = "2025-06-09T23:01:02.961Z" }, - { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785, upload-time = "2025-06-09T23:01:05.095Z" }, - { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487, upload-time = "2025-06-09T23:01:06.54Z" }, - { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874, upload-time = "2025-06-09T23:01:07.752Z" }, - { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106, upload-time = "2025-06-09T23:02:34.204Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424 }, + { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952 }, + { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688 }, + { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084 }, + { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524 }, + { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493 }, + { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116 }, + { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557 }, + { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820 }, + { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542 }, + { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350 }, + { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093 }, + { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482 }, + { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590 }, + { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785 }, + { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487 }, + { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874 }, + { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106 }, ] [[package]] name = "fsspec" version = "2025.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/de/e0/bab50af11c2d75c9c4a2a26a5254573c0bd97cea152254401510950486fa/fsspec-2025.9.0.tar.gz", hash = "sha256:19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19", size = 304847, upload-time = "2025-09-02T19:10:49.215Z" } +sdist = { url = "https://files.pythonhosted.org/packages/de/e0/bab50af11c2d75c9c4a2a26a5254573c0bd97cea152254401510950486fa/fsspec-2025.9.0.tar.gz", hash = "sha256:19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19", size = 304847 } wheels = [ - { url = "https://files.pythonhosted.org/packages/47/71/70db47e4f6ce3e5c37a607355f80da8860a33226be640226ac52cb05ef2e/fsspec-2025.9.0-py3-none-any.whl", hash = "sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7", size = 199289, upload-time = "2025-09-02T19:10:47.708Z" }, + { url = "https://files.pythonhosted.org/packages/47/71/70db47e4f6ce3e5c37a607355f80da8860a33226be640226ac52cb05ef2e/fsspec-2025.9.0-py3-none-any.whl", hash = "sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7", size = 199289 }, ] [[package]] @@ -797,9 +815,9 @@ dependencies = [ { name = "fastcore" }, { name = "packaging" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f8/88/97e6b0c94885db3530d04ccab7016c606dcaf08bf0581ced1193b9668d06/ghapi-1.0.6.tar.gz", hash = "sha256:64fdd9f06d8e3373065c42c2a03e067e2bbb9ca18b583cd6e38a28aaad0224f6", size = 65518, upload-time = "2024-08-31T22:38:21.264Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/88/97e6b0c94885db3530d04ccab7016c606dcaf08bf0581ced1193b9668d06/ghapi-1.0.6.tar.gz", hash = "sha256:64fdd9f06d8e3373065c42c2a03e067e2bbb9ca18b583cd6e38a28aaad0224f6", size = 65518 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4c/ad/f7204c0c38175f300621af7880737ca6379dd633e9b7d1c0a8fc2748f0dc/ghapi-1.0.6-py3-none-any.whl", hash = "sha256:b3d96bf18fcaa2cb7131bad9de2948e2a1c2bb226377a25826f6c80950c57854", size = 62391, upload-time = "2024-08-31T22:38:19.34Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ad/f7204c0c38175f300621af7880737ca6379dd633e9b7d1c0a8fc2748f0dc/ghapi-1.0.6-py3-none-any.whl", hash = "sha256:b3d96bf18fcaa2cb7131bad9de2948e2a1c2bb226377a25826f6c80950c57854", size = 62391 }, ] [[package]] @@ -809,9 +827,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "smmap" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794 }, ] [[package]] @@ -821,35 +839,37 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "gitdb" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076, upload-time = "2025-07-24T03:45:54.871Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076 } wheels = [ - { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168, upload-time = "2025-07-24T03:45:52.517Z" }, + { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168 }, ] [[package]] name = "greenlet" version = "3.2.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260, upload-time = "2025-08-07T13:24:33.51Z" } +sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260 } wheels = [ - { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079, upload-time = "2025-08-07T13:15:45.033Z" }, - { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997, upload-time = "2025-08-07T13:42:56.234Z" }, - { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185, upload-time = "2025-08-07T13:45:27.624Z" }, - { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926, upload-time = "2025-08-07T13:53:15.251Z" }, - { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839, upload-time = "2025-08-07T13:18:30.281Z" }, - { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586, upload-time = "2025-08-07T13:18:28.544Z" }, - { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281, upload-time = "2025-08-07T13:42:39.858Z" }, - { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142, upload-time = "2025-08-07T13:18:22.981Z" }, - { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899, upload-time = "2025-08-07T13:38:53.448Z" }, + { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079 }, + { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997 }, + { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185 }, + { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926 }, + { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839 }, + { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586 }, + { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281 }, + { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142 }, + { url = "https://files.pythonhosted.org/packages/27/45/80935968b53cfd3f33cf99ea5f08227f2646e044568c9b1555b58ffd61c2/greenlet-3.2.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ee7a6ec486883397d70eec05059353b8e83eca9168b9f3f9a361971e77e0bcd0", size = 1564846 }, + { url = "https://files.pythonhosted.org/packages/69/02/b7c30e5e04752cb4db6202a3858b149c0710e5453b71a3b2aec5d78a1aab/greenlet-3.2.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:326d234cbf337c9c3def0676412eb7040a35a768efc92504b947b3e9cfc7543d", size = 1633814 }, + { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899 }, ] [[package]] name = "h11" version = "0.16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250 } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, ] [[package]] @@ -860,9 +880,9 @@ dependencies = [ { name = "certifi" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484 } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784 }, ] [[package]] @@ -875,9 +895,9 @@ dependencies = [ { name = "httpcore" }, { name = "idna" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 }, ] [[package]] @@ -887,27 +907,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyreadline3", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc", size = 360702, upload-time = "2021-09-17T21:40:43.31Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc", size = 360702 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477", size = 86794, upload-time = "2021-09-17T21:40:39.897Z" }, + { url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477", size = 86794 }, ] [[package]] name = "idna" version = "3.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, ] [[package]] name = "iniconfig" version = "2.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050 }, ] [[package]] @@ -929,9 +949,9 @@ dependencies = [ { name = "tornado" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bb/76/11082e338e0daadc89c8ff866185de11daf67d181901038f9e139d109761/ipykernel-6.30.1.tar.gz", hash = "sha256:6abb270161896402e76b91394fcdce5d1be5d45f456671e5080572f8505be39b", size = 166260, upload-time = "2025-08-04T15:47:35.018Z" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/76/11082e338e0daadc89c8ff866185de11daf67d181901038f9e139d109761/ipykernel-6.30.1.tar.gz", hash = "sha256:6abb270161896402e76b91394fcdce5d1be5d45f456671e5080572f8505be39b", size = 166260 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/c7/b445faca8deb954fe536abebff4ece5b097b923de482b26e78448c89d1dd/ipykernel-6.30.1-py3-none-any.whl", hash = "sha256:aa6b9fb93dca949069d8b85b6c79b2518e32ac583ae9c7d37c51d119e18b3fb4", size = 117484, upload-time = "2025-08-04T15:47:32.622Z" }, + { url = "https://files.pythonhosted.org/packages/fc/c7/b445faca8deb954fe536abebff4ece5b097b923de482b26e78448c89d1dd/ipykernel-6.30.1-py3-none-any.whl", hash = "sha256:aa6b9fb93dca949069d8b85b6c79b2518e32ac583ae9c7d37c51d119e18b3fb4", size = 117484 }, ] [[package]] @@ -950,9 +970,9 @@ dependencies = [ { name = "stack-data" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6e/71/a86262bf5a68bf211bcc71fe302af7e05f18a2852fdc610a854d20d085e6/ipython-9.5.0.tar.gz", hash = "sha256:129c44b941fe6d9b82d36fc7a7c18127ddb1d6f02f78f867f402e2e3adde3113", size = 4389137, upload-time = "2025-08-29T12:15:21.519Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6e/71/a86262bf5a68bf211bcc71fe302af7e05f18a2852fdc610a854d20d085e6/ipython-9.5.0.tar.gz", hash = "sha256:129c44b941fe6d9b82d36fc7a7c18127ddb1d6f02f78f867f402e2e3adde3113", size = 4389137 } wheels = [ - { url = "https://files.pythonhosted.org/packages/08/2a/5628a99d04acb2d2f2e749cdf4ea571d2575e898df0528a090948018b726/ipython-9.5.0-py3-none-any.whl", hash = "sha256:88369ffa1d5817d609120daa523a6da06d02518e582347c29f8451732a9c5e72", size = 612426, upload-time = "2025-08-29T12:15:18.866Z" }, + { url = "https://files.pythonhosted.org/packages/08/2a/5628a99d04acb2d2f2e749cdf4ea571d2575e898df0528a090948018b726/ipython-9.5.0-py3-none-any.whl", hash = "sha256:88369ffa1d5817d609120daa523a6da06d02518e582347c29f8451732a9c5e72", size = 612426 }, ] [[package]] @@ -962,9 +982,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074 }, ] [[package]] @@ -974,9 +994,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "parso" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278 }, ] [[package]] @@ -986,9 +1006,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115 } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, ] [[package]] @@ -998,18 +1018,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "ansicon", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/20/d0/59b2b80e7a52d255f9e0ad040d2e826342d05580c4b1d7d7747cfb8db731/jinxed-1.3.0.tar.gz", hash = "sha256:1593124b18a41b7a3da3b078471442e51dbad3d77b4d4f2b0c26ab6f7d660dbf", size = 80981, upload-time = "2024-07-31T22:39:18.854Z" } +sdist = { url = "https://files.pythonhosted.org/packages/20/d0/59b2b80e7a52d255f9e0ad040d2e826342d05580c4b1d7d7747cfb8db731/jinxed-1.3.0.tar.gz", hash = "sha256:1593124b18a41b7a3da3b078471442e51dbad3d77b4d4f2b0c26ab6f7d660dbf", size = 80981 } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/e3/0e0014d6ab159d48189e92044ace13b1e1fe9aa3024ba9f4e8cf172aa7c2/jinxed-1.3.0-py2.py3-none-any.whl", hash = "sha256:b993189f39dc2d7504d802152671535b06d380b26d78070559551cbf92df4fc5", size = 33085, upload-time = "2024-07-31T22:39:17.426Z" }, + { url = "https://files.pythonhosted.org/packages/27/e3/0e0014d6ab159d48189e92044ace13b1e1fe9aa3024ba9f4e8cf172aa7c2/jinxed-1.3.0-py2.py3-none-any.whl", hash = "sha256:b993189f39dc2d7504d802152671535b06d380b26d78070559551cbf92df4fc5", size = 33085 }, ] [[package]] name = "jmespath" version = "1.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843, upload-time = "2022-06-17T18:00:12.224Z" } +sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843 } wheels = [ - { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256, upload-time = "2022-06-17T18:00:10.251Z" }, + { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256 }, ] [[package]] @@ -1020,7 +1040,7 @@ dependencies = [ { name = "jsonschema" }, { name = "oslash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e3/3b/8d4d4fe8c59a1a4d1e6edd6126ec118b989510fadf262950a5c4f4bca664/jsonrpcserver-5.0.9.tar.gz", hash = "sha256:a71fb2cfa18541c80935f60987f92755d94d74141248c7438847b96eee5c4482", size = 14506, upload-time = "2022-09-15T02:28:24.004Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/3b/8d4d4fe8c59a1a4d1e6edd6126ec118b989510fadf262950a5c4f4bca664/jsonrpcserver-5.0.9.tar.gz", hash = "sha256:a71fb2cfa18541c80935f60987f92755d94d74141248c7438847b96eee5c4482", size = 14506 } [[package]] name = "jsonschema" @@ -1032,9 +1052,9 @@ dependencies = [ { name = "referencing" }, { name = "rpds-py" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload-time = "2025-08-18T17:03:50.038Z" } +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload-time = "2025-08-18T17:03:48.373Z" }, + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040 }, ] [[package]] @@ -1044,9 +1064,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "referencing" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855 } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437 }, ] [[package]] @@ -1060,9 +1080,9 @@ dependencies = [ { name = "tornado" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/71/22/bf9f12fdaeae18019a468b68952a60fe6dbab5d67cd2a103cac7659b41ca/jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", size = 342019, upload-time = "2024-09-17T10:44:17.613Z" } +sdist = { url = "https://files.pythonhosted.org/packages/71/22/bf9f12fdaeae18019a468b68952a60fe6dbab5d67cd2a103cac7659b41ca/jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", size = 342019 } wheels = [ - { url = "https://files.pythonhosted.org/packages/11/85/b0394e0b6fcccd2c1eeefc230978a6f8cb0c5df1e4cd3e7625735a0d7d1e/jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f", size = 106105, upload-time = "2024-09-17T10:44:15.218Z" }, + { url = "https://files.pythonhosted.org/packages/11/85/b0394e0b6fcccd2c1eeefc230978a6f8cb0c5df1e4cd3e7625735a0d7d1e/jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f", size = 106105 }, ] [[package]] @@ -1074,30 +1094,30 @@ dependencies = [ { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/99/1b/72906d554acfeb588332eaaa6f61577705e9ec752ddb486f302dafa292d9/jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941", size = 88923, upload-time = "2025-05-27T07:38:16.655Z" } +sdist = { url = "https://files.pythonhosted.org/packages/99/1b/72906d554acfeb588332eaaa6f61577705e9ec752ddb486f302dafa292d9/jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941", size = 88923 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/57/6bffd4b20b88da3800c5d691e0337761576ee688eb01299eae865689d2df/jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0", size = 28880, upload-time = "2025-05-27T07:38:15.137Z" }, + { url = "https://files.pythonhosted.org/packages/2f/57/6bffd4b20b88da3800c5d691e0337761576ee688eb01299eae865689d2df/jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0", size = 28880 }, ] [[package]] name = "kiwisolver" version = "1.4.9" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5c/3c/85844f1b0feb11ee581ac23fe5fce65cd049a200c1446708cc1b7f922875/kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d", size = 97564, upload-time = "2025-08-10T21:27:49.279Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/3c/85844f1b0feb11ee581ac23fe5fce65cd049a200c1446708cc1b7f922875/kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d", size = 97564 } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/c9/13573a747838aeb1c76e3267620daa054f4152444d1f3d1a2324b78255b5/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ac5a486ac389dddcc5bef4f365b6ae3ffff2c433324fb38dd35e3fab7c957999", size = 123686, upload-time = "2025-08-10T21:26:10.034Z" }, - { url = "https://files.pythonhosted.org/packages/51/ea/2ecf727927f103ffd1739271ca19c424d0e65ea473fbaeea1c014aea93f6/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2ba92255faa7309d06fe44c3a4a97efe1c8d640c2a79a5ef728b685762a6fd2", size = 66460, upload-time = "2025-08-10T21:26:11.083Z" }, - { url = "https://files.pythonhosted.org/packages/5b/5a/51f5464373ce2aeb5194508298a508b6f21d3867f499556263c64c621914/kiwisolver-1.4.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a2899935e724dd1074cb568ce7ac0dce28b2cd6ab539c8e001a8578eb106d14", size = 64952, upload-time = "2025-08-10T21:26:12.058Z" }, - { url = "https://files.pythonhosted.org/packages/70/90/6d240beb0f24b74371762873e9b7f499f1e02166a2d9c5801f4dbf8fa12e/kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f6008a4919fdbc0b0097089f67a1eb55d950ed7e90ce2cc3e640abadd2757a04", size = 1474756, upload-time = "2025-08-10T21:26:13.096Z" }, - { url = "https://files.pythonhosted.org/packages/12/42/f36816eaf465220f683fb711efdd1bbf7a7005a2473d0e4ed421389bd26c/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67bb8b474b4181770f926f7b7d2f8c0248cbcb78b660fdd41a47054b28d2a752", size = 1276404, upload-time = "2025-08-10T21:26:14.457Z" }, - { url = "https://files.pythonhosted.org/packages/2e/64/bc2de94800adc830c476dce44e9b40fd0809cddeef1fde9fcf0f73da301f/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2327a4a30d3ee07d2fbe2e7933e8a37c591663b96ce42a00bc67461a87d7df77", size = 1294410, upload-time = "2025-08-10T21:26:15.73Z" }, - { url = "https://files.pythonhosted.org/packages/5f/42/2dc82330a70aa8e55b6d395b11018045e58d0bb00834502bf11509f79091/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a08b491ec91b1d5053ac177afe5290adacf1f0f6307d771ccac5de30592d198", size = 1343631, upload-time = "2025-08-10T21:26:17.045Z" }, - { url = "https://files.pythonhosted.org/packages/22/fd/f4c67a6ed1aab149ec5a8a401c323cee7a1cbe364381bb6c9c0d564e0e20/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8fc5c867c22b828001b6a38d2eaeb88160bf5783c6cb4a5e440efc981ce286d", size = 2224963, upload-time = "2025-08-10T21:26:18.737Z" }, - { url = "https://files.pythonhosted.org/packages/45/aa/76720bd4cb3713314677d9ec94dcc21ced3f1baf4830adde5bb9b2430a5f/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3b3115b2581ea35bb6d1f24a4c90af37e5d9b49dcff267eeed14c3893c5b86ab", size = 2321295, upload-time = "2025-08-10T21:26:20.11Z" }, - { url = "https://files.pythonhosted.org/packages/80/19/d3ec0d9ab711242f56ae0dc2fc5d70e298bb4a1f9dfab44c027668c673a1/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858e4c22fb075920b96a291928cb7dea5644e94c0ee4fcd5af7e865655e4ccf2", size = 2487987, upload-time = "2025-08-10T21:26:21.49Z" }, - { url = "https://files.pythonhosted.org/packages/39/e9/61e4813b2c97e86b6fdbd4dd824bf72d28bcd8d4849b8084a357bc0dd64d/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed0fecd28cc62c54b262e3736f8bb2512d8dcfdc2bcf08be5f47f96bf405b145", size = 2291817, upload-time = "2025-08-10T21:26:22.812Z" }, - { url = "https://files.pythonhosted.org/packages/a0/41/85d82b0291db7504da3c2defe35c9a8a5c9803a730f297bd823d11d5fb77/kiwisolver-1.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:f68208a520c3d86ea51acf688a3e3002615a7f0238002cccc17affecc86a8a54", size = 73895, upload-time = "2025-08-10T21:26:24.37Z" }, - { url = "https://files.pythonhosted.org/packages/e2/92/5f3068cf15ee5cb624a0c7596e67e2a0bb2adee33f71c379054a491d07da/kiwisolver-1.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:2c1a4f57df73965f3f14df20b80ee29e6a7930a57d2d9e8491a25f676e197c60", size = 64992, upload-time = "2025-08-10T21:26:25.732Z" }, + { url = "https://files.pythonhosted.org/packages/86/c9/13573a747838aeb1c76e3267620daa054f4152444d1f3d1a2324b78255b5/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ac5a486ac389dddcc5bef4f365b6ae3ffff2c433324fb38dd35e3fab7c957999", size = 123686 }, + { url = "https://files.pythonhosted.org/packages/51/ea/2ecf727927f103ffd1739271ca19c424d0e65ea473fbaeea1c014aea93f6/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2ba92255faa7309d06fe44c3a4a97efe1c8d640c2a79a5ef728b685762a6fd2", size = 66460 }, + { url = "https://files.pythonhosted.org/packages/5b/5a/51f5464373ce2aeb5194508298a508b6f21d3867f499556263c64c621914/kiwisolver-1.4.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a2899935e724dd1074cb568ce7ac0dce28b2cd6ab539c8e001a8578eb106d14", size = 64952 }, + { url = "https://files.pythonhosted.org/packages/70/90/6d240beb0f24b74371762873e9b7f499f1e02166a2d9c5801f4dbf8fa12e/kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f6008a4919fdbc0b0097089f67a1eb55d950ed7e90ce2cc3e640abadd2757a04", size = 1474756 }, + { url = "https://files.pythonhosted.org/packages/12/42/f36816eaf465220f683fb711efdd1bbf7a7005a2473d0e4ed421389bd26c/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67bb8b474b4181770f926f7b7d2f8c0248cbcb78b660fdd41a47054b28d2a752", size = 1276404 }, + { url = "https://files.pythonhosted.org/packages/2e/64/bc2de94800adc830c476dce44e9b40fd0809cddeef1fde9fcf0f73da301f/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2327a4a30d3ee07d2fbe2e7933e8a37c591663b96ce42a00bc67461a87d7df77", size = 1294410 }, + { url = "https://files.pythonhosted.org/packages/5f/42/2dc82330a70aa8e55b6d395b11018045e58d0bb00834502bf11509f79091/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a08b491ec91b1d5053ac177afe5290adacf1f0f6307d771ccac5de30592d198", size = 1343631 }, + { url = "https://files.pythonhosted.org/packages/22/fd/f4c67a6ed1aab149ec5a8a401c323cee7a1cbe364381bb6c9c0d564e0e20/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8fc5c867c22b828001b6a38d2eaeb88160bf5783c6cb4a5e440efc981ce286d", size = 2224963 }, + { url = "https://files.pythonhosted.org/packages/45/aa/76720bd4cb3713314677d9ec94dcc21ced3f1baf4830adde5bb9b2430a5f/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3b3115b2581ea35bb6d1f24a4c90af37e5d9b49dcff267eeed14c3893c5b86ab", size = 2321295 }, + { url = "https://files.pythonhosted.org/packages/80/19/d3ec0d9ab711242f56ae0dc2fc5d70e298bb4a1f9dfab44c027668c673a1/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858e4c22fb075920b96a291928cb7dea5644e94c0ee4fcd5af7e865655e4ccf2", size = 2487987 }, + { url = "https://files.pythonhosted.org/packages/39/e9/61e4813b2c97e86b6fdbd4dd824bf72d28bcd8d4849b8084a357bc0dd64d/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed0fecd28cc62c54b262e3736f8bb2512d8dcfdc2bcf08be5f47f96bf405b145", size = 2291817 }, + { url = "https://files.pythonhosted.org/packages/a0/41/85d82b0291db7504da3c2defe35c9a8a5c9803a730f297bd823d11d5fb77/kiwisolver-1.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:f68208a520c3d86ea51acf688a3e3002615a7f0238002cccc17affecc86a8a54", size = 73895 }, + { url = "https://files.pythonhosted.org/packages/e2/92/5f3068cf15ee5cb624a0c7596e67e2a0bb2adee33f71c379054a491d07da/kiwisolver-1.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:2c1a4f57df73965f3f14df20b80ee29e6a7930a57d2d9e8491a25f676e197c60", size = 64992 }, ] [[package]] @@ -1107,27 +1127,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mdurl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070 } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321 }, ] [[package]] name = "markupsafe" version = "3.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload-time = "2024-10-18T15:21:54.129Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } wheels = [ - { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274, upload-time = "2024-10-18T15:21:13.777Z" }, - { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348, upload-time = "2024-10-18T15:21:14.822Z" }, - { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149, upload-time = "2024-10-18T15:21:15.642Z" }, - { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118, upload-time = "2024-10-18T15:21:17.133Z" }, - { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993, upload-time = "2024-10-18T15:21:18.064Z" }, - { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178, upload-time = "2024-10-18T15:21:18.859Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319, upload-time = "2024-10-18T15:21:19.671Z" }, - { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352, upload-time = "2024-10-18T15:21:20.971Z" }, - { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097, upload-time = "2024-10-18T15:21:22.646Z" }, - { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601, upload-time = "2024-10-18T15:21:23.499Z" }, + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, ] [[package]] @@ -1145,15 +1165,15 @@ dependencies = [ { name = "pyparsing" }, { name = "python-dateutil" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a0/59/c3e6453a9676ffba145309a73c462bb407f4400de7de3f2b41af70720a3c/matplotlib-3.10.6.tar.gz", hash = "sha256:ec01b645840dd1996df21ee37f208cd8ba57644779fa20464010638013d3203c", size = 34804264, upload-time = "2025-08-30T00:14:25.137Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/59/c3e6453a9676ffba145309a73c462bb407f4400de7de3f2b41af70720a3c/matplotlib-3.10.6.tar.gz", hash = "sha256:ec01b645840dd1996df21ee37f208cd8ba57644779fa20464010638013d3203c", size = 34804264 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/1a/7042f7430055d567cc3257ac409fcf608599ab27459457f13772c2d9778b/matplotlib-3.10.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:31ca662df6a80bd426f871105fdd69db7543e28e73a9f2afe80de7e531eb2347", size = 8272404, upload-time = "2025-08-30T00:12:59.112Z" }, - { url = "https://files.pythonhosted.org/packages/a9/5d/1d5f33f5b43f4f9e69e6a5fe1fb9090936ae7bc8e2ff6158e7a76542633b/matplotlib-3.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1678bb61d897bb4ac4757b5ecfb02bfb3fddf7f808000fb81e09c510712fda75", size = 8128262, upload-time = "2025-08-30T00:13:01.141Z" }, - { url = "https://files.pythonhosted.org/packages/67/c3/135fdbbbf84e0979712df58e5e22b4f257b3f5e52a3c4aacf1b8abec0d09/matplotlib-3.10.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:56cd2d20842f58c03d2d6e6c1f1cf5548ad6f66b91e1e48f814e4fb5abd1cb95", size = 8697008, upload-time = "2025-08-30T00:13:03.24Z" }, - { url = "https://files.pythonhosted.org/packages/9c/be/c443ea428fb2488a3ea7608714b1bd85a82738c45da21b447dc49e2f8e5d/matplotlib-3.10.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:662df55604a2f9a45435566d6e2660e41efe83cd94f4288dfbf1e6d1eae4b0bb", size = 9530166, upload-time = "2025-08-30T00:13:05.951Z" }, - { url = "https://files.pythonhosted.org/packages/a9/35/48441422b044d74034aea2a3e0d1a49023f12150ebc58f16600132b9bbaf/matplotlib-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:08f141d55148cd1fc870c3387d70ca4df16dee10e909b3b038782bd4bda6ea07", size = 9593105, upload-time = "2025-08-30T00:13:08.356Z" }, - { url = "https://files.pythonhosted.org/packages/45/c3/994ef20eb4154ab84cc08d033834555319e4af970165e6c8894050af0b3c/matplotlib-3.10.6-cp312-cp312-win_amd64.whl", hash = "sha256:590f5925c2d650b5c9d813c5b3b5fc53f2929c3f8ef463e4ecfa7e052044fb2b", size = 8122784, upload-time = "2025-08-30T00:13:10.367Z" }, - { url = "https://files.pythonhosted.org/packages/57/b8/5c85d9ae0e40f04e71bedb053aada5d6bab1f9b5399a0937afb5d6b02d98/matplotlib-3.10.6-cp312-cp312-win_arm64.whl", hash = "sha256:f44c8d264a71609c79a78d50349e724f5d5fc3684ead7c2a473665ee63d868aa", size = 7992823, upload-time = "2025-08-30T00:13:12.24Z" }, + { url = "https://files.pythonhosted.org/packages/ea/1a/7042f7430055d567cc3257ac409fcf608599ab27459457f13772c2d9778b/matplotlib-3.10.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:31ca662df6a80bd426f871105fdd69db7543e28e73a9f2afe80de7e531eb2347", size = 8272404 }, + { url = "https://files.pythonhosted.org/packages/a9/5d/1d5f33f5b43f4f9e69e6a5fe1fb9090936ae7bc8e2ff6158e7a76542633b/matplotlib-3.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1678bb61d897bb4ac4757b5ecfb02bfb3fddf7f808000fb81e09c510712fda75", size = 8128262 }, + { url = "https://files.pythonhosted.org/packages/67/c3/135fdbbbf84e0979712df58e5e22b4f257b3f5e52a3c4aacf1b8abec0d09/matplotlib-3.10.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:56cd2d20842f58c03d2d6e6c1f1cf5548ad6f66b91e1e48f814e4fb5abd1cb95", size = 8697008 }, + { url = "https://files.pythonhosted.org/packages/9c/be/c443ea428fb2488a3ea7608714b1bd85a82738c45da21b447dc49e2f8e5d/matplotlib-3.10.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:662df55604a2f9a45435566d6e2660e41efe83cd94f4288dfbf1e6d1eae4b0bb", size = 9530166 }, + { url = "https://files.pythonhosted.org/packages/a9/35/48441422b044d74034aea2a3e0d1a49023f12150ebc58f16600132b9bbaf/matplotlib-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:08f141d55148cd1fc870c3387d70ca4df16dee10e909b3b038782bd4bda6ea07", size = 9593105 }, + { url = "https://files.pythonhosted.org/packages/45/c3/994ef20eb4154ab84cc08d033834555319e4af970165e6c8894050af0b3c/matplotlib-3.10.6-cp312-cp312-win_amd64.whl", hash = "sha256:590f5925c2d650b5c9d813c5b3b5fc53f2929c3f8ef463e4ecfa7e052044fb2b", size = 8122784 }, + { url = "https://files.pythonhosted.org/packages/57/b8/5c85d9ae0e40f04e71bedb053aada5d6bab1f9b5399a0937afb5d6b02d98/matplotlib-3.10.6-cp312-cp312-win_arm64.whl", hash = "sha256:f44c8d264a71609c79a78d50349e724f5d5fc3684ead7c2a473665ee63d868aa", size = 7992823 }, ] [[package]] @@ -1163,70 +1183,54 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159, upload-time = "2024-04-15T13:44:44.803Z" } +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899, upload-time = "2024-04-15T13:44:43.265Z" }, + { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 }, ] [[package]] name = "mdurl" version = "0.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, -] - -[[package]] -name = "ml-dtypes" -version = "0.5.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numpy" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/78/a7/aad060393123cfb383956dca68402aff3db1e1caffd5764887ed5153f41b/ml_dtypes-0.5.3.tar.gz", hash = "sha256:95ce33057ba4d05df50b1f3cfefab22e351868a843b3b15a46c65836283670c9", size = 692316, upload-time = "2025-07-29T18:39:19.454Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/eb/bc07c88a6ab002b4635e44585d80fa0b350603f11a2097c9d1bfacc03357/ml_dtypes-0.5.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:156418abeeda48ea4797db6776db3c5bdab9ac7be197c1233771e0880c304057", size = 663864, upload-time = "2025-07-29T18:38:33.777Z" }, - { url = "https://files.pythonhosted.org/packages/cf/89/11af9b0f21b99e6386b6581ab40fb38d03225f9de5f55cf52097047e2826/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1db60c154989af253f6c4a34e8a540c2c9dce4d770784d426945e09908fbb177", size = 4951313, upload-time = "2025-07-29T18:38:36.45Z" }, - { url = "https://files.pythonhosted.org/packages/d8/a9/b98b86426c24900b0c754aad006dce2863df7ce0bb2bcc2c02f9cc7e8489/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1b255acada256d1fa8c35ed07b5f6d18bc21d1556f842fbc2d5718aea2cd9e55", size = 4928805, upload-time = "2025-07-29T18:38:38.29Z" }, - { url = "https://files.pythonhosted.org/packages/50/c1/85e6be4fc09c6175f36fb05a45917837f30af9a5146a5151cb3a3f0f9e09/ml_dtypes-0.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:da65e5fd3eea434ccb8984c3624bc234ddcc0d9f4c81864af611aaebcc08a50e", size = 208182, upload-time = "2025-07-29T18:38:39.72Z" }, - { url = "https://files.pythonhosted.org/packages/9e/17/cf5326d6867be057f232d0610de1458f70a8ce7b6290e4b4a277ea62b4cd/ml_dtypes-0.5.3-cp312-cp312-win_arm64.whl", hash = "sha256:8bb9cd1ce63096567f5f42851f5843b5a0ea11511e50039a7649619abfb4ba6d", size = 161560, upload-time = "2025-07-29T18:38:41.072Z" }, + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, ] [[package]] name = "more-itertools" version = "10.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload-time = "2025-09-02T15:23:11.018Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" }, + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667 }, ] [[package]] name = "mpmath" version = "1.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106 } wheels = [ - { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198 }, ] [[package]] name = "msgpack" version = "1.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555, upload-time = "2025-06-13T06:52:51.324Z" } +sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/26/389b9c593eda2b8551b2e7126ad3a06af6f9b44274eb3a4f054d48ff7e47/msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238", size = 82359, upload-time = "2025-06-13T06:52:03.909Z" }, - { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157", size = 79172, upload-time = "2025-06-13T06:52:05.246Z" }, - { url = "https://files.pythonhosted.org/packages/0f/bd/cacf208b64d9577a62c74b677e1ada005caa9b69a05a599889d6fc2ab20a/msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce", size = 425013, upload-time = "2025-06-13T06:52:06.341Z" }, - { url = "https://files.pythonhosted.org/packages/4d/ec/fd869e2567cc9c01278a736cfd1697941ba0d4b81a43e0aa2e8d71dab208/msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a", size = 426905, upload-time = "2025-06-13T06:52:07.501Z" }, - { url = "https://files.pythonhosted.org/packages/55/2a/35860f33229075bce803a5593d046d8b489d7ba2fc85701e714fc1aaf898/msgpack-1.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c", size = 407336, upload-time = "2025-06-13T06:52:09.047Z" }, - { url = "https://files.pythonhosted.org/packages/8c/16/69ed8f3ada150bf92745fb4921bd621fd2cdf5a42e25eb50bcc57a5328f0/msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b", size = 409485, upload-time = "2025-06-13T06:52:10.382Z" }, - { url = "https://files.pythonhosted.org/packages/c6/b6/0c398039e4c6d0b2e37c61d7e0e9d13439f91f780686deb8ee64ecf1ae71/msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef", size = 412182, upload-time = "2025-06-13T06:52:11.644Z" }, - { url = "https://files.pythonhosted.org/packages/b8/d0/0cf4a6ecb9bc960d624c93effaeaae75cbf00b3bc4a54f35c8507273cda1/msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a", size = 419883, upload-time = "2025-06-13T06:52:12.806Z" }, - { url = "https://files.pythonhosted.org/packages/62/83/9697c211720fa71a2dfb632cad6196a8af3abea56eece220fde4674dc44b/msgpack-1.1.1-cp312-cp312-win32.whl", hash = "sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c", size = 65406, upload-time = "2025-06-13T06:52:14.271Z" }, - { url = "https://files.pythonhosted.org/packages/c0/23/0abb886e80eab08f5e8c485d6f13924028602829f63b8f5fa25a06636628/msgpack-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4", size = 72558, upload-time = "2025-06-13T06:52:15.252Z" }, + { url = "https://files.pythonhosted.org/packages/e3/26/389b9c593eda2b8551b2e7126ad3a06af6f9b44274eb3a4f054d48ff7e47/msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238", size = 82359 }, + { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157", size = 79172 }, + { url = "https://files.pythonhosted.org/packages/0f/bd/cacf208b64d9577a62c74b677e1ada005caa9b69a05a599889d6fc2ab20a/msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce", size = 425013 }, + { url = "https://files.pythonhosted.org/packages/4d/ec/fd869e2567cc9c01278a736cfd1697941ba0d4b81a43e0aa2e8d71dab208/msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a", size = 426905 }, + { url = "https://files.pythonhosted.org/packages/55/2a/35860f33229075bce803a5593d046d8b489d7ba2fc85701e714fc1aaf898/msgpack-1.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c", size = 407336 }, + { url = "https://files.pythonhosted.org/packages/8c/16/69ed8f3ada150bf92745fb4921bd621fd2cdf5a42e25eb50bcc57a5328f0/msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b", size = 409485 }, + { url = "https://files.pythonhosted.org/packages/c6/b6/0c398039e4c6d0b2e37c61d7e0e9d13439f91f780686deb8ee64ecf1ae71/msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef", size = 412182 }, + { url = "https://files.pythonhosted.org/packages/b8/d0/0cf4a6ecb9bc960d624c93effaeaae75cbf00b3bc4a54f35c8507273cda1/msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a", size = 419883 }, + { url = "https://files.pythonhosted.org/packages/62/83/9697c211720fa71a2dfb632cad6196a8af3abea56eece220fde4674dc44b/msgpack-1.1.1-cp312-cp312-win32.whl", hash = "sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c", size = 65406 }, + { url = "https://files.pythonhosted.org/packages/c0/23/0abb886e80eab08f5e8c485d6f13924028602829f63b8f5fa25a06636628/msgpack-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4", size = 72558 }, ] [[package]] @@ -1237,36 +1241,36 @@ dependencies = [ { name = "msgpack" }, { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b2/69/2a6af13c3be6934a9ba149120a78bf63cf1455ddb1d11ec2cc5e5d6f8186/msgpack-numpy-opentensor-0.5.0.tar.gz", hash = "sha256:213232c20e2efd528ec8a9882b605e8ad87cfc35b57dfcfefe05d33aaaabe574", size = 9661, upload-time = "2023-10-02T19:01:38.831Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/69/2a6af13c3be6934a9ba149120a78bf63cf1455ddb1d11ec2cc5e5d6f8186/msgpack-numpy-opentensor-0.5.0.tar.gz", hash = "sha256:213232c20e2efd528ec8a9882b605e8ad87cfc35b57dfcfefe05d33aaaabe574", size = 9661 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/22/590508afb85d5c27ebcb2837410413f4613eebdda6e4e02997fe08ba78e4/msgpack_numpy_opentensor-0.5.0-py2.py3-none-any.whl", hash = "sha256:8a61c597a976425a87094d8e89846aa9528eb1f037e97ff1428fe3cd61a238e7", size = 7209, upload-time = "2023-10-02T19:01:37.417Z" }, + { url = "https://files.pythonhosted.org/packages/cd/22/590508afb85d5c27ebcb2837410413f4613eebdda6e4e02997fe08ba78e4/msgpack_numpy_opentensor-0.5.0-py2.py3-none-any.whl", hash = "sha256:8a61c597a976425a87094d8e89846aa9528eb1f037e97ff1428fe3cd61a238e7", size = 7209 }, ] [[package]] name = "multidict" version = "6.6.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/69/7f/0652e6ed47ab288e3756ea9c0df8b14950781184d4bd7883f4d87dd41245/multidict-6.6.4.tar.gz", hash = "sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd", size = 101843, upload-time = "2025-08-11T12:08:48.217Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/05/f6/512ffd8fd8b37fb2680e5ac35d788f1d71bbaf37789d21a820bdc441e565/multidict-6.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8", size = 76516, upload-time = "2025-08-11T12:06:53.393Z" }, - { url = "https://files.pythonhosted.org/packages/99/58/45c3e75deb8855c36bd66cc1658007589662ba584dbf423d01df478dd1c5/multidict-6.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3", size = 45394, upload-time = "2025-08-11T12:06:54.555Z" }, - { url = "https://files.pythonhosted.org/packages/fd/ca/e8c4472a93a26e4507c0b8e1f0762c0d8a32de1328ef72fd704ef9cc5447/multidict-6.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b", size = 43591, upload-time = "2025-08-11T12:06:55.672Z" }, - { url = "https://files.pythonhosted.org/packages/05/51/edf414f4df058574a7265034d04c935aa84a89e79ce90fcf4df211f47b16/multidict-6.6.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287", size = 237215, upload-time = "2025-08-11T12:06:57.213Z" }, - { url = "https://files.pythonhosted.org/packages/c8/45/8b3d6dbad8cf3252553cc41abea09ad527b33ce47a5e199072620b296902/multidict-6.6.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138", size = 258299, upload-time = "2025-08-11T12:06:58.946Z" }, - { url = "https://files.pythonhosted.org/packages/3c/e8/8ca2e9a9f5a435fc6db40438a55730a4bf4956b554e487fa1b9ae920f825/multidict-6.6.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6", size = 242357, upload-time = "2025-08-11T12:07:00.301Z" }, - { url = "https://files.pythonhosted.org/packages/0f/84/80c77c99df05a75c28490b2af8f7cba2a12621186e0a8b0865d8e745c104/multidict-6.6.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9", size = 268369, upload-time = "2025-08-11T12:07:01.638Z" }, - { url = "https://files.pythonhosted.org/packages/0d/e9/920bfa46c27b05fb3e1ad85121fd49f441492dca2449c5bcfe42e4565d8a/multidict-6.6.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c", size = 269341, upload-time = "2025-08-11T12:07:02.943Z" }, - { url = "https://files.pythonhosted.org/packages/af/65/753a2d8b05daf496f4a9c367fe844e90a1b2cac78e2be2c844200d10cc4c/multidict-6.6.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402", size = 256100, upload-time = "2025-08-11T12:07:04.564Z" }, - { url = "https://files.pythonhosted.org/packages/09/54/655be13ae324212bf0bc15d665a4e34844f34c206f78801be42f7a0a8aaa/multidict-6.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7", size = 253584, upload-time = "2025-08-11T12:07:05.914Z" }, - { url = "https://files.pythonhosted.org/packages/5c/74/ab2039ecc05264b5cec73eb018ce417af3ebb384ae9c0e9ed42cb33f8151/multidict-6.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f", size = 251018, upload-time = "2025-08-11T12:07:08.301Z" }, - { url = "https://files.pythonhosted.org/packages/af/0a/ccbb244ac848e56c6427f2392741c06302bbfba49c0042f1eb3c5b606497/multidict-6.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d", size = 251477, upload-time = "2025-08-11T12:07:10.248Z" }, - { url = "https://files.pythonhosted.org/packages/0e/b0/0ed49bba775b135937f52fe13922bc64a7eaf0a3ead84a36e8e4e446e096/multidict-6.6.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7", size = 263575, upload-time = "2025-08-11T12:07:11.928Z" }, - { url = "https://files.pythonhosted.org/packages/3e/d9/7fb85a85e14de2e44dfb6a24f03c41e2af8697a6df83daddb0e9b7569f73/multidict-6.6.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802", size = 259649, upload-time = "2025-08-11T12:07:13.244Z" }, - { url = "https://files.pythonhosted.org/packages/03/9e/b3a459bcf9b6e74fa461a5222a10ff9b544cb1cd52fd482fb1b75ecda2a2/multidict-6.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24", size = 251505, upload-time = "2025-08-11T12:07:14.57Z" }, - { url = "https://files.pythonhosted.org/packages/86/a2/8022f78f041dfe6d71e364001a5cf987c30edfc83c8a5fb7a3f0974cff39/multidict-6.6.4-cp312-cp312-win32.whl", hash = "sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793", size = 41888, upload-time = "2025-08-11T12:07:15.904Z" }, - { url = "https://files.pythonhosted.org/packages/c7/eb/d88b1780d43a56db2cba24289fa744a9d216c1a8546a0dc3956563fd53ea/multidict-6.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e", size = 46072, upload-time = "2025-08-11T12:07:17.045Z" }, - { url = "https://files.pythonhosted.org/packages/9f/16/b929320bf5750e2d9d4931835a4c638a19d2494a5b519caaaa7492ebe105/multidict-6.6.4-cp312-cp312-win_arm64.whl", hash = "sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364", size = 43222, upload-time = "2025-08-11T12:07:18.328Z" }, - { url = "https://files.pythonhosted.org/packages/fd/69/b547032297c7e63ba2af494edba695d781af8a0c6e89e4d06cf848b21d80/multidict-6.6.4-py3-none-any.whl", hash = "sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c", size = 12313, upload-time = "2025-08-11T12:08:46.891Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/69/7f/0652e6ed47ab288e3756ea9c0df8b14950781184d4bd7883f4d87dd41245/multidict-6.6.4.tar.gz", hash = "sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd", size = 101843 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/f6/512ffd8fd8b37fb2680e5ac35d788f1d71bbaf37789d21a820bdc441e565/multidict-6.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8", size = 76516 }, + { url = "https://files.pythonhosted.org/packages/99/58/45c3e75deb8855c36bd66cc1658007589662ba584dbf423d01df478dd1c5/multidict-6.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3", size = 45394 }, + { url = "https://files.pythonhosted.org/packages/fd/ca/e8c4472a93a26e4507c0b8e1f0762c0d8a32de1328ef72fd704ef9cc5447/multidict-6.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b", size = 43591 }, + { url = "https://files.pythonhosted.org/packages/05/51/edf414f4df058574a7265034d04c935aa84a89e79ce90fcf4df211f47b16/multidict-6.6.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287", size = 237215 }, + { url = "https://files.pythonhosted.org/packages/c8/45/8b3d6dbad8cf3252553cc41abea09ad527b33ce47a5e199072620b296902/multidict-6.6.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138", size = 258299 }, + { url = "https://files.pythonhosted.org/packages/3c/e8/8ca2e9a9f5a435fc6db40438a55730a4bf4956b554e487fa1b9ae920f825/multidict-6.6.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6", size = 242357 }, + { url = "https://files.pythonhosted.org/packages/0f/84/80c77c99df05a75c28490b2af8f7cba2a12621186e0a8b0865d8e745c104/multidict-6.6.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9", size = 268369 }, + { url = "https://files.pythonhosted.org/packages/0d/e9/920bfa46c27b05fb3e1ad85121fd49f441492dca2449c5bcfe42e4565d8a/multidict-6.6.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c", size = 269341 }, + { url = "https://files.pythonhosted.org/packages/af/65/753a2d8b05daf496f4a9c367fe844e90a1b2cac78e2be2c844200d10cc4c/multidict-6.6.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402", size = 256100 }, + { url = "https://files.pythonhosted.org/packages/09/54/655be13ae324212bf0bc15d665a4e34844f34c206f78801be42f7a0a8aaa/multidict-6.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7", size = 253584 }, + { url = "https://files.pythonhosted.org/packages/5c/74/ab2039ecc05264b5cec73eb018ce417af3ebb384ae9c0e9ed42cb33f8151/multidict-6.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f", size = 251018 }, + { url = "https://files.pythonhosted.org/packages/af/0a/ccbb244ac848e56c6427f2392741c06302bbfba49c0042f1eb3c5b606497/multidict-6.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d", size = 251477 }, + { url = "https://files.pythonhosted.org/packages/0e/b0/0ed49bba775b135937f52fe13922bc64a7eaf0a3ead84a36e8e4e446e096/multidict-6.6.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7", size = 263575 }, + { url = "https://files.pythonhosted.org/packages/3e/d9/7fb85a85e14de2e44dfb6a24f03c41e2af8697a6df83daddb0e9b7569f73/multidict-6.6.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802", size = 259649 }, + { url = "https://files.pythonhosted.org/packages/03/9e/b3a459bcf9b6e74fa461a5222a10ff9b544cb1cd52fd482fb1b75ecda2a2/multidict-6.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24", size = 251505 }, + { url = "https://files.pythonhosted.org/packages/86/a2/8022f78f041dfe6d71e364001a5cf987c30edfc83c8a5fb7a3f0974cff39/multidict-6.6.4-cp312-cp312-win32.whl", hash = "sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793", size = 41888 }, + { url = "https://files.pythonhosted.org/packages/c7/eb/d88b1780d43a56db2cba24289fa744a9d216c1a8546a0dc3956563fd53ea/multidict-6.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e", size = 46072 }, + { url = "https://files.pythonhosted.org/packages/9f/16/b929320bf5750e2d9d4931835a4c638a19d2494a5b519caaaa7492ebe105/multidict-6.6.4-cp312-cp312-win_arm64.whl", hash = "sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364", size = 43222 }, + { url = "https://files.pythonhosted.org/packages/fd/69/b547032297c7e63ba2af494edba695d781af8a0c6e89e4d06cf848b21d80/multidict-6.6.4-py3-none-any.whl", hash = "sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c", size = 12313 }, ] [[package]] @@ -1276,18 +1280,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/43/a1/ec48010724eedfe2add68eb7592a0d238590e14e08b95a4ffb3c7b2f0808/munch-2.5.0.tar.gz", hash = "sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2", size = 17015, upload-time = "2019-10-30T09:56:08.621Z" } +sdist = { url = "https://files.pythonhosted.org/packages/43/a1/ec48010724eedfe2add68eb7592a0d238590e14e08b95a4ffb3c7b2f0808/munch-2.5.0.tar.gz", hash = "sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2", size = 17015 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/ab/85d8da5c9a45e072301beb37ad7f833cd344e04c817d97e0cc75681d248f/munch-2.5.0-py2.py3-none-any.whl", hash = "sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd", size = 10347, upload-time = "2019-10-30T09:56:06.835Z" }, + { url = "https://files.pythonhosted.org/packages/cc/ab/85d8da5c9a45e072301beb37ad7f833cd344e04c817d97e0cc75681d248f/munch-2.5.0-py2.py3-none-any.whl", hash = "sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd", size = 10347 }, ] [[package]] name = "mypy-extensions" version = "1.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343 } wheels = [ - { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963 }, ] [[package]] @@ -1306,182 +1310,78 @@ dependencies = [ { name = "setuptools" }, { name = "watchdog" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d6/5f/f3f1b6954fe5d03675b7becdf071046ad4a59d5aca4aea482c943e162fab/nbdev-2.4.5.tar.gz", hash = "sha256:12fa7aedec70515bbb0efdf3f39000793541e0209c047cd115761cabe284a63d", size = 67311, upload-time = "2025-07-19T05:10:52.142Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/5f/f3f1b6954fe5d03675b7becdf071046ad4a59d5aca4aea482c943e162fab/nbdev-2.4.5.tar.gz", hash = "sha256:12fa7aedec70515bbb0efdf3f39000793541e0209c047cd115761cabe284a63d", size = 67311 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/75/922d61a2e22d8f41e943b281516b3eb890fd833f9ebf8d80874a114cc127/nbdev-2.4.5-py3-none-any.whl", hash = "sha256:4ed72a3fb48ec6cbd1ff69e4ea3b31c1e3fe7cdacbafef4579914d5c15ab8994", size = 70252, upload-time = "2025-07-19T05:10:50.094Z" }, + { url = "https://files.pythonhosted.org/packages/a2/75/922d61a2e22d8f41e943b281516b3eb890fd833f9ebf8d80874a114cc127/nbdev-2.4.5-py3-none-any.whl", hash = "sha256:4ed72a3fb48ec6cbd1ff69e4ea3b31c1e3fe7cdacbafef4579914d5c15ab8994", size = 70252 }, ] [[package]] name = "nest-asyncio" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195 }, ] [[package]] name = "netaddr" version = "1.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/90/188b2a69654f27b221fba92fda7217778208532c962509e959a9cee5229d/netaddr-1.3.0.tar.gz", hash = "sha256:5c3c3d9895b551b763779ba7db7a03487dc1f8e3b385af819af341ae9ef6e48a", size = 2260504, upload-time = "2024-05-28T21:30:37.743Z" } +sdist = { url = "https://files.pythonhosted.org/packages/54/90/188b2a69654f27b221fba92fda7217778208532c962509e959a9cee5229d/netaddr-1.3.0.tar.gz", hash = "sha256:5c3c3d9895b551b763779ba7db7a03487dc1f8e3b385af819af341ae9ef6e48a", size = 2260504 } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/cc/f4fe2c7ce68b92cbf5b2d379ca366e1edae38cccaad00f69f529b460c3ef/netaddr-1.3.0-py3-none-any.whl", hash = "sha256:c2c6a8ebe5554ce33b7d5b3a306b71bbb373e000bbbf2350dd5213cc56e3dbbe", size = 2262023, upload-time = "2024-05-28T21:30:34.191Z" }, + { url = "https://files.pythonhosted.org/packages/12/cc/f4fe2c7ce68b92cbf5b2d379ca366e1edae38cccaad00f69f529b460c3ef/netaddr-1.3.0-py3-none-any.whl", hash = "sha256:c2c6a8ebe5554ce33b7d5b3a306b71bbb373e000bbbf2350dd5213cc56e3dbbe", size = 2262023 }, ] [[package]] name = "networkx" -version = "3.5" +version = "3.4.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6c/4f/ccdb8ad3a38e583f214547fd2f7ff1fc160c43a75af88e6aec213404b96a/networkx-3.5.tar.gz", hash = "sha256:d4c6f9cf81f52d69230866796b82afbccdec3db7ae4fbd1b65ea750feed50037", size = 2471065, upload-time = "2025-05-29T11:35:07.804Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368 } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl", hash = "sha256:0030d386a9a06dee3565298b4a734b68589749a544acbb6c412dc9e2489ec6ec", size = 2034406, upload-time = "2025-05-29T11:35:04.961Z" }, + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263 }, ] [[package]] name = "numpy" -version = "2.0.2" +version = "2.2.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015, upload-time = "2024-08-26T20:19:40.945Z" } +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440 } wheels = [ - { url = "https://files.pythonhosted.org/packages/45/40/2e117be60ec50d98fa08c2f8c48e09b3edea93cfcabd5a9ff6925d54b1c2/numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", size = 20895803, upload-time = "2024-08-26T20:11:13.916Z" }, - { url = "https://files.pythonhosted.org/packages/46/92/1b8b8dee833f53cef3e0a3f69b2374467789e0bb7399689582314df02651/numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", size = 13471835, upload-time = "2024-08-26T20:11:34.779Z" }, - { url = "https://files.pythonhosted.org/packages/7f/19/e2793bde475f1edaea6945be141aef6c8b4c669b90c90a300a8954d08f0a/numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", size = 5038499, upload-time = "2024-08-26T20:11:43.902Z" }, - { url = "https://files.pythonhosted.org/packages/e3/ff/ddf6dac2ff0dd50a7327bcdba45cb0264d0e96bb44d33324853f781a8f3c/numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", size = 6633497, upload-time = "2024-08-26T20:11:55.09Z" }, - { url = "https://files.pythonhosted.org/packages/72/21/67f36eac8e2d2cd652a2e69595a54128297cdcb1ff3931cfc87838874bd4/numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", size = 13621158, upload-time = "2024-08-26T20:12:14.95Z" }, - { url = "https://files.pythonhosted.org/packages/39/68/e9f1126d757653496dbc096cb429014347a36b228f5a991dae2c6b6cfd40/numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", size = 19236173, upload-time = "2024-08-26T20:12:44.049Z" }, - { url = "https://files.pythonhosted.org/packages/d1/e9/1f5333281e4ebf483ba1c888b1d61ba7e78d7e910fdd8e6499667041cc35/numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", size = 19634174, upload-time = "2024-08-26T20:13:13.634Z" }, - { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701, upload-time = "2024-08-26T20:13:34.851Z" }, - { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313, upload-time = "2024-08-26T20:13:45.653Z" }, - { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179, upload-time = "2024-08-26T20:14:08.786Z" }, -] - -[[package]] -name = "subnet-2" -source = { editable = "." } -dependencies = [ - { name = "aiohttp" }, - { name = "async-substrate-interface" }, - { name = "attrs" }, - { name = "bittensor" }, - { name = "boto3" }, - { name = "botocore" }, - { name = "ezkl" }, - { name = "fastapi" }, - { name = "gitpython" }, - { name = "httpx" }, - { name = "jsonrpcserver" }, - { name = "matplotlib" }, - { name = "numpy" }, - { name = "onnxruntime" }, - { name = "opencv-contrib-python-headless" }, - { name = "opencv-python" }, - { name = "packaging" }, - { name = "pillow" }, - { name = "prometheus-client" }, - { name = "proof-of-portfolio" }, - { name = "protobuf" }, - { name = "psutil" }, - { name = "pydantic" }, - { name = "pyopenssl" }, - { name = "requests" }, - { name = "rich" }, - { name = "substrate-interface" }, - { name = "torch", version = "2.7.1", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" }, - { name = "torch", version = "2.7.1+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" }, - { name = "tqdm" }, - { name = "urllib3" }, - { name = "uvicorn" }, - { name = "wandb" }, - { name = "websocket-client" }, -] - -[package.dev-dependencies] -dev = [ - { name = "black" }, - { name = "bpython" }, - { name = "debugpy" }, - { name = "ipykernel" }, - { name = "nbdev" }, - { name = "onnx" }, - { name = "pytest" }, - { name = "snoop" }, - { name = "tach" }, -] - -[package.metadata] -requires-dist = [ - { name = "aiohttp", specifier = ">=3.10.11" }, - { name = "async-substrate-interface", specifier = ">=1.0.8" }, - { name = "attrs", specifier = "==24.3.0" }, - { name = "bittensor", specifier = "==9.9.0" }, - { name = "boto3", specifier = ">=1.36.13" }, - { name = "botocore", specifier = ">=1.37.19" }, - { name = "ezkl", specifier = "==22.0.1" }, - { name = "fastapi", specifier = "==0.110.3" }, - { name = "gitpython", specifier = ">=3.1.44" }, - { name = "httpx", specifier = ">=0.28.1" }, - { name = "jsonrpcserver", specifier = ">=5.0.9" }, - { name = "matplotlib", specifier = ">=3.10.1" }, - { name = "numpy", specifier = "==2.0.2" }, - { name = "onnxruntime", specifier = ">=1.21.0" }, - { name = "opencv-contrib-python-headless", specifier = ">=4.11.0.86" }, - { name = "opencv-python", specifier = ">=4.11.0.86" }, - { name = "packaging", specifier = "==24.2" }, - { name = "pillow", specifier = ">=11.3.0" }, - { name = "prometheus-client", specifier = "==0.21.1" }, - { name = "proof-of-portfolio", specifier = ">=0.0.127" }, - { name = "protobuf", specifier = ">=5.29.5" }, - { name = "psutil", specifier = "==6.1.1" }, - { name = "pydantic", specifier = "==2.10.6" }, - { name = "pyopenssl", specifier = ">=25.0.0" }, - { name = "requests", specifier = "==2.32.4" }, - { name = "rich", specifier = "==13.8.1" }, - { name = "substrate-interface", specifier = ">=1.7.11" }, - { name = "torch", specifier = "==2.7.1", index = "https://download.pytorch.org/whl/cpu" }, - { name = "tqdm", specifier = ">=4.67.1" }, - { name = "urllib3", specifier = ">=2.3.0" }, - { name = "uvicorn", specifier = "==0.34.0" }, - { name = "wandb", specifier = "==0.21.0" }, - { name = "websocket-client", specifier = ">=1.8.0" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "black", specifier = ">=24.10.0" }, - { name = "bpython", specifier = ">=0.25" }, - { name = "debugpy", specifier = ">=1.8.13" }, - { name = "ipykernel", specifier = ">=6.29.5" }, - { name = "nbdev", specifier = ">=2.3.34" }, - { name = "onnx", specifier = ">=1.17.0" }, - { name = "pytest", specifier = ">=8.4.1" }, - { name = "snoop", specifier = ">=0.6.0" }, - { name = "tach", specifier = ">=0.27.2" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348 }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362 }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103 }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382 }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462 }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618 }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511 }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783 }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506 }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190 }, ] [[package]] name = "onnx" -version = "1.19.0" +version = "1.18.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ml-dtypes" }, { name = "numpy" }, { name = "protobuf" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/bf/b0a63ee9f3759dcd177b28c6f2cb22f2aecc6d9b3efecaabc298883caa5f/onnx-1.19.0.tar.gz", hash = "sha256:aa3f70b60f54a29015e41639298ace06adf1dd6b023b9b30f1bca91bb0db9473", size = 11949859, upload-time = "2025-08-27T02:34:27.107Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3d/60/e56e8ec44ed34006e6d4a73c92a04d9eea6163cc12440e35045aec069175/onnx-1.18.0.tar.gz", hash = "sha256:3d8dbf9e996629131ba3aa1afd1d8239b660d1f830c6688dd7e03157cccd6b9c", size = 12563009 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/94/f56f6ca5e2f921b28c0f0476705eab56486b279f04e1d568ed64c14e7764/onnx-1.19.0-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:61d94e6498ca636756f8f4ee2135708434601b2892b7c09536befb19bc8ca007", size = 18322331, upload-time = "2025-08-27T02:33:20.373Z" }, - { url = "https://files.pythonhosted.org/packages/c8/00/8cc3f3c40b54b28f96923380f57c9176872e475face726f7d7a78bd74098/onnx-1.19.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:224473354462f005bae985c72028aaa5c85ab11de1b71d55b06fdadd64a667dd", size = 18027513, upload-time = "2025-08-27T02:33:23.44Z" }, - { url = "https://files.pythonhosted.org/packages/61/90/17c4d2566fd0117a5e412688c9525f8950d467f477fbd574e6b32bc9cb8d/onnx-1.19.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ae475c85c89bc4d1f16571006fd21a3e7c0e258dd2c091f6e8aafb083d1ed9b", size = 18202278, upload-time = "2025-08-27T02:33:26.103Z" }, - { url = "https://files.pythonhosted.org/packages/bc/6e/a9383d9cf6db4ac761a129b081e9fa5d0cd89aad43cf1e3fc6285b915c7d/onnx-1.19.0-cp312-cp312-win32.whl", hash = "sha256:323f6a96383a9cdb3960396cffea0a922593d221f3929b17312781e9f9b7fb9f", size = 16333080, upload-time = "2025-08-27T02:33:28.559Z" }, - { url = "https://files.pythonhosted.org/packages/a7/2e/3ff480a8c1fa7939662bdc973e41914add2d4a1f2b8572a3c39c2e4982e5/onnx-1.19.0-cp312-cp312-win_amd64.whl", hash = "sha256:50220f3499a499b1a15e19451a678a58e22ad21b34edf2c844c6ef1d9febddc2", size = 16453927, upload-time = "2025-08-27T02:33:31.177Z" }, - { url = "https://files.pythonhosted.org/packages/57/37/ad500945b1b5c154fe9d7b826b30816ebd629d10211ea82071b5bcc30aa4/onnx-1.19.0-cp312-cp312-win_arm64.whl", hash = "sha256:efb768299580b786e21abe504e1652ae6189f0beed02ab087cd841cb4bb37e43", size = 16426022, upload-time = "2025-08-27T02:33:33.515Z" }, + { url = "https://files.pythonhosted.org/packages/a7/fe/16228aca685392a7114625b89aae98b2dc4058a47f0f467a376745efe8d0/onnx-1.18.0-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:521bac578448667cbb37c50bf05b53c301243ede8233029555239930996a625b", size = 18285770 }, + { url = "https://files.pythonhosted.org/packages/1e/77/ba50a903a9b5e6f9be0fa50f59eb2fca4a26ee653375408fbc72c3acbf9f/onnx-1.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4da451bf1c5ae381f32d430004a89f0405bc57a8471b0bddb6325a5b334aa40", size = 17421291 }, + { url = "https://files.pythonhosted.org/packages/11/23/25ec2ba723ac62b99e8fed6d7b59094dadb15e38d4c007331cc9ae3dfa5f/onnx-1.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99afac90b4cdb1471432203c3c1f74e16549c526df27056d39f41a9a47cfb4af", size = 17584084 }, + { url = "https://files.pythonhosted.org/packages/6a/4d/2c253a36070fb43f340ff1d2c450df6a9ef50b938adcd105693fee43c4ee/onnx-1.18.0-cp312-cp312-win32.whl", hash = "sha256:ee159b41a3ae58d9c7341cf432fc74b96aaf50bd7bb1160029f657b40dc69715", size = 15734892 }, + { url = "https://files.pythonhosted.org/packages/e8/92/048ba8fafe6b2b9a268ec2fb80def7e66c0b32ab2cae74de886981f05a27/onnx-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:102c04edc76b16e9dfeda5a64c1fccd7d3d2913b1544750c01d38f1ac3c04e05", size = 15850336 }, + { url = "https://files.pythonhosted.org/packages/a1/66/bbc4ffedd44165dcc407a51ea4c592802a5391ce3dc94aa5045350f64635/onnx-1.18.0-cp312-cp312-win_arm64.whl", hash = "sha256:911b37d724a5d97396f3c2ef9ea25361c55cbc9aa18d75b12a52b620b67145af", size = 15823802 }, ] [[package]] name = "onnxruntime" -version = "1.22.1" +version = "1.21.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "coloredlogs" }, @@ -1492,10 +1392,10 @@ dependencies = [ { name = "sympy" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/48/70/ca2a4d38a5deccd98caa145581becb20c53684f451e89eb3a39915620066/onnxruntime-1.22.1-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:a938d11c0dc811badf78e435daa3899d9af38abee950d87f3ab7430eb5b3cf5a", size = 34342883, upload-time = "2025-07-10T19:15:38.223Z" }, - { url = "https://files.pythonhosted.org/packages/29/e5/00b099b4d4f6223b610421080d0eed9327ef9986785c9141819bbba0d396/onnxruntime-1.22.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:984cea2a02fcc5dfea44ade9aca9fe0f7a8a2cd6f77c258fc4388238618f3928", size = 14473861, upload-time = "2025-07-10T19:15:42.911Z" }, - { url = "https://files.pythonhosted.org/packages/0a/50/519828a5292a6ccd8d5cd6d2f72c6b36ea528a2ef68eca69647732539ffa/onnxruntime-1.22.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2d39a530aff1ec8d02e365f35e503193991417788641b184f5b1e8c9a6d5ce8d", size = 16475713, upload-time = "2025-07-10T19:15:45.452Z" }, - { url = "https://files.pythonhosted.org/packages/5d/54/7139d463bb0a312890c9a5db87d7815d4a8cce9e6f5f28d04f0b55fcb160/onnxruntime-1.22.1-cp312-cp312-win_amd64.whl", hash = "sha256:6a64291d57ea966a245f749eb970f4fa05a64d26672e05a83fdb5db6b7d62f87", size = 12690910, upload-time = "2025-07-10T19:15:47.478Z" }, + { url = "https://files.pythonhosted.org/packages/ff/21/593c9bc56002a6d1ea7c2236f4a648e081ec37c8d51db2383a9e83a63325/onnxruntime-1.21.0-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:893d67c68ca9e7a58202fa8d96061ed86a5815b0925b5a97aef27b8ba246a20b", size = 33658780 }, + { url = "https://files.pythonhosted.org/packages/4a/b4/33ec675a8ac150478091262824413e5d4acc359e029af87f9152e7c1c092/onnxruntime-1.21.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:37b7445c920a96271a8dfa16855e258dc5599235b41c7bbde0d262d55bcc105f", size = 14159975 }, + { url = "https://files.pythonhosted.org/packages/8b/08/eead6895ed83b56711ca6c0d31d82f109401b9937558b425509e497d6fb4/onnxruntime-1.21.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9a04aafb802c1e5573ba4552f8babcb5021b041eb4cfa802c9b7644ca3510eca", size = 16019285 }, + { url = "https://files.pythonhosted.org/packages/77/39/e83d56e3c215713b5263cb4d4f0c69e3964bba11634233d8ae04fc7e6bf3/onnxruntime-1.21.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f801318476cd7003d636a5b392f7a37c08b6c8d2f829773f3c3887029e03f32", size = 11760975 }, ] [[package]] @@ -1505,14 +1405,14 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d2/2d/6ff35fa696afe2c4e3616d9560848b131353f24d9110d51baa93dd947212/opencv-contrib-python-headless-4.12.0.88.tar.gz", hash = "sha256:3d8a7b23a5faba4ad34e13f51668c56be791e57ab02d68d9016200fed3c12c77", size = 150801337, upload-time = "2025-07-07T09:20:37.432Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d2/2d/6ff35fa696afe2c4e3616d9560848b131353f24d9110d51baa93dd947212/opencv-contrib-python-headless-4.12.0.88.tar.gz", hash = "sha256:3d8a7b23a5faba4ad34e13f51668c56be791e57ab02d68d9016200fed3c12c77", size = 150801337 } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/3a/edf7380db58557cc29bdcff71862b8100c64adf489517ec7250509df4b72/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:a17ebb914f309afe72447c33b9187ff02f23f1483faa5c0ffde7aadc88711e2a", size = 46854919, upload-time = "2025-07-07T09:17:29.386Z" }, - { url = "https://files.pythonhosted.org/packages/ca/0b/abacf0a9d3161cf15ee9783fab7081f1349e825844b03178bfe6fb484e96/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:85b520e527052a85a682f09cdc12e5f156f56d8c277261b4b65b48431abae96f", size = 67163853, upload-time = "2025-07-07T09:17:40.97Z" }, - { url = "https://files.pythonhosted.org/packages/93/b4/13f1370c2b8e566f9c9f3658982ecd331c666215e7f379e8b1d7ab52a63d/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d60a12b915c55a50468c013fcd839e941b49ccc1f37b914b62543382c36bf81d", size = 38548620, upload-time = "2025-07-07T09:17:49.086Z" }, - { url = "https://files.pythonhosted.org/packages/b3/17/bfe5ccbaa3b15b8af3371137732e69a4563ee1b05a17e6578521c09d2a56/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b183e2322468c9d3bd9cac4ba44b272d828ec22842395bcfa51df31765224c0a", size = 60138674, upload-time = "2025-07-07T09:17:59.07Z" }, - { url = "https://files.pythonhosted.org/packages/9b/2c/328488cba04909ab6f1f00ad98758cb6c4806db4904adf2d12ee988508fd/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:902888b4e1b4826c721840d9107e91d32f146a2c3bc8cb728f0088bf44204e4b", size = 36114174, upload-time = "2025-07-07T09:18:06.818Z" }, - { url = "https://files.pythonhosted.org/packages/44/d0/75057aac72cb7134b430a7c4c715af8a0cc68fe17c69889d64f33a5e311a/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:c57e32812fea2a542bb220088fb3ce8a210fe114c9454d1c9e8cd162e1a1fde8", size = 45190148, upload-time = "2025-07-07T09:18:15.15Z" }, + { url = "https://files.pythonhosted.org/packages/33/3a/edf7380db58557cc29bdcff71862b8100c64adf489517ec7250509df4b72/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:a17ebb914f309afe72447c33b9187ff02f23f1483faa5c0ffde7aadc88711e2a", size = 46854919 }, + { url = "https://files.pythonhosted.org/packages/ca/0b/abacf0a9d3161cf15ee9783fab7081f1349e825844b03178bfe6fb484e96/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:85b520e527052a85a682f09cdc12e5f156f56d8c277261b4b65b48431abae96f", size = 67163853 }, + { url = "https://files.pythonhosted.org/packages/93/b4/13f1370c2b8e566f9c9f3658982ecd331c666215e7f379e8b1d7ab52a63d/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d60a12b915c55a50468c013fcd839e941b49ccc1f37b914b62543382c36bf81d", size = 38548620 }, + { url = "https://files.pythonhosted.org/packages/b3/17/bfe5ccbaa3b15b8af3371137732e69a4563ee1b05a17e6578521c09d2a56/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b183e2322468c9d3bd9cac4ba44b272d828ec22842395bcfa51df31765224c0a", size = 60138674 }, + { url = "https://files.pythonhosted.org/packages/9b/2c/328488cba04909ab6f1f00ad98758cb6c4806db4904adf2d12ee988508fd/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:902888b4e1b4826c721840d9107e91d32f146a2c3bc8cb728f0088bf44204e4b", size = 36114174 }, + { url = "https://files.pythonhosted.org/packages/44/d0/75057aac72cb7134b430a7c4c715af8a0cc68fe17c69889d64f33a5e311a/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:c57e32812fea2a542bb220088fb3ce8a210fe114c9454d1c9e8cd162e1a1fde8", size = 45190148 }, ] [[package]] @@ -1522,14 +1422,14 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ac/71/25c98e634b6bdeca4727c7f6d6927b056080668c5008ad3c8fc9e7f8f6ec/opencv-python-4.12.0.88.tar.gz", hash = "sha256:8b738389cede219405f6f3880b851efa3415ccd674752219377353f017d2994d", size = 95373294, upload-time = "2025-07-07T09:20:52.389Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ac/71/25c98e634b6bdeca4727c7f6d6927b056080668c5008ad3c8fc9e7f8f6ec/opencv-python-4.12.0.88.tar.gz", hash = "sha256:8b738389cede219405f6f3880b851efa3415ccd674752219377353f017d2994d", size = 95373294 } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/68/3da40142e7c21e9b1d4e7ddd6c58738feb013203e6e4b803d62cdd9eb96b/opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:f9a1f08883257b95a5764bf517a32d75aec325319c8ed0f89739a57fae9e92a5", size = 37877727, upload-time = "2025-07-07T09:13:31.47Z" }, - { url = "https://files.pythonhosted.org/packages/33/7c/042abe49f58d6ee7e1028eefc3334d98ca69b030e3b567fe245a2b28ea6f/opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:812eb116ad2b4de43ee116fcd8991c3a687f099ada0b04e68f64899c09448e81", size = 57326471, upload-time = "2025-07-07T09:13:41.26Z" }, - { url = "https://files.pythonhosted.org/packages/62/3a/440bd64736cf8116f01f3b7f9f2e111afb2e02beb2ccc08a6458114a6b5d/opencv_python-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:51fd981c7df6af3e8f70b1556696b05224c4e6b6777bdd2a46b3d4fb09de1a92", size = 45887139, upload-time = "2025-07-07T09:13:50.761Z" }, - { url = "https://files.pythonhosted.org/packages/68/1f/795e7f4aa2eacc59afa4fb61a2e35e510d06414dd5a802b51a012d691b37/opencv_python-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:092c16da4c5a163a818f120c22c5e4a2f96e0db4f24e659c701f1fe629a690f9", size = 67041680, upload-time = "2025-07-07T09:14:01.995Z" }, - { url = "https://files.pythonhosted.org/packages/02/96/213fea371d3cb2f1d537612a105792aa0a6659fb2665b22cad709a75bd94/opencv_python-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:ff554d3f725b39878ac6a2e1fa232ec509c36130927afc18a1719ebf4fbf4357", size = 30284131, upload-time = "2025-07-07T09:14:08.819Z" }, - { url = "https://files.pythonhosted.org/packages/fa/80/eb88edc2e2b11cd2dd2e56f1c80b5784d11d6e6b7f04a1145df64df40065/opencv_python-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:d98edb20aa932fd8ebd276a72627dad9dc097695b3d435a4257557bbb49a79d2", size = 39000307, upload-time = "2025-07-07T09:14:16.641Z" }, + { url = "https://files.pythonhosted.org/packages/85/68/3da40142e7c21e9b1d4e7ddd6c58738feb013203e6e4b803d62cdd9eb96b/opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:f9a1f08883257b95a5764bf517a32d75aec325319c8ed0f89739a57fae9e92a5", size = 37877727 }, + { url = "https://files.pythonhosted.org/packages/33/7c/042abe49f58d6ee7e1028eefc3334d98ca69b030e3b567fe245a2b28ea6f/opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:812eb116ad2b4de43ee116fcd8991c3a687f099ada0b04e68f64899c09448e81", size = 57326471 }, + { url = "https://files.pythonhosted.org/packages/62/3a/440bd64736cf8116f01f3b7f9f2e111afb2e02beb2ccc08a6458114a6b5d/opencv_python-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:51fd981c7df6af3e8f70b1556696b05224c4e6b6777bdd2a46b3d4fb09de1a92", size = 45887139 }, + { url = "https://files.pythonhosted.org/packages/68/1f/795e7f4aa2eacc59afa4fb61a2e35e510d06414dd5a802b51a012d691b37/opencv_python-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:092c16da4c5a163a818f120c22c5e4a2f96e0db4f24e659c701f1fe629a690f9", size = 67041680 }, + { url = "https://files.pythonhosted.org/packages/02/96/213fea371d3cb2f1d537612a105792aa0a6659fb2665b22cad709a75bd94/opencv_python-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:ff554d3f725b39878ac6a2e1fa232ec509c36130927afc18a1719ebf4fbf4357", size = 30284131 }, + { url = "https://files.pythonhosted.org/packages/fa/80/eb88edc2e2b11cd2dd2e56f1c80b5784d11d6e6b7f04a1145df64df40065/opencv_python-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:d98edb20aa932fd8ebd276a72627dad9dc097695b3d435a4257557bbb49a79d2", size = 39000307 }, ] [[package]] @@ -1539,36 +1439,36 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/b2/54ea4a7c6f768469a4c6a2f27f5c7cf572d63e9fd7f7618fca89c30966b3/OSlash-0.6.3.tar.gz", hash = "sha256:868aeb58a656f2ed3b73d9dd6abe387b20b74fc9413d3e8653b615b15bf728f3", size = 35228, upload-time = "2020-10-12T20:50:14.165Z" } +sdist = { url = "https://files.pythonhosted.org/packages/60/b2/54ea4a7c6f768469a4c6a2f27f5c7cf572d63e9fd7f7618fca89c30966b3/OSlash-0.6.3.tar.gz", hash = "sha256:868aeb58a656f2ed3b73d9dd6abe387b20b74fc9413d3e8653b615b15bf728f3", size = 35228 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/c3/77d40a6e20fdfbf92b086d2c47e3cc82731e179e3f44bdc8e60b7306bcc3/OSlash-0.6.3-py3-none-any.whl", hash = "sha256:89b978443b7db3ac2666106bdc3680add3c886a6d8fcdd02fd062af86d29494f", size = 26943, upload-time = "2020-10-12T20:50:13.06Z" }, + { url = "https://files.pythonhosted.org/packages/2d/c3/77d40a6e20fdfbf92b086d2c47e3cc82731e179e3f44bdc8e60b7306bcc3/OSlash-0.6.3-py3-none-any.whl", hash = "sha256:89b978443b7db3ac2666106bdc3680add3c886a6d8fcdd02fd062af86d29494f", size = 26943 }, ] [[package]] name = "packaging" version = "24.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950, upload-time = "2024-11-08T09:47:47.202Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451, upload-time = "2024-11-08T09:47:44.722Z" }, + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, ] [[package]] name = "parso" version = "0.8.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d4/de/53e0bcf53d13e005bd8c92e7855142494f41171b34c2536b86187474184d/parso-0.8.5.tar.gz", hash = "sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a", size = 401205, upload-time = "2025-08-23T15:15:28.028Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/de/53e0bcf53d13e005bd8c92e7855142494f41171b34c2536b86187474184d/parso-0.8.5.tar.gz", hash = "sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a", size = 401205 } wheels = [ - { url = "https://files.pythonhosted.org/packages/16/32/f8e3c85d1d5250232a5d3477a2a28cc291968ff175caeadaf3cc19ce0e4a/parso-0.8.5-py2.py3-none-any.whl", hash = "sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887", size = 106668, upload-time = "2025-08-23T15:15:25.663Z" }, + { url = "https://files.pythonhosted.org/packages/16/32/f8e3c85d1d5250232a5d3477a2a28cc291968ff175caeadaf3cc19ce0e4a/parso-0.8.5-py2.py3-none-any.whl", hash = "sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887", size = 106668 }, ] [[package]] name = "pathspec" version = "0.12.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191 }, ] [[package]] @@ -1578,55 +1478,55 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "ptyprocess" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 }, ] [[package]] name = "pillow" version = "11.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069 } wheels = [ - { url = "https://files.pythonhosted.org/packages/40/fe/1bc9b3ee13f68487a99ac9529968035cca2f0a51ec36892060edcc51d06a/pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4", size = 5278800, upload-time = "2025-07-01T09:14:17.648Z" }, - { url = "https://files.pythonhosted.org/packages/2c/32/7e2ac19b5713657384cec55f89065fb306b06af008cfd87e572035b27119/pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69", size = 4686296, upload-time = "2025-07-01T09:14:19.828Z" }, - { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726, upload-time = "2025-07-03T13:10:04.448Z" }, - { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652, upload-time = "2025-07-03T13:10:10.391Z" }, - { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787, upload-time = "2025-07-01T09:14:21.63Z" }, - { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236, upload-time = "2025-07-01T09:14:23.321Z" }, - { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950, upload-time = "2025-07-01T09:14:25.237Z" }, - { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358, upload-time = "2025-07-01T09:14:27.053Z" }, - { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079, upload-time = "2025-07-01T09:14:30.104Z" }, - { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324, upload-time = "2025-07-01T09:14:31.899Z" }, - { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067, upload-time = "2025-07-01T09:14:33.709Z" }, + { url = "https://files.pythonhosted.org/packages/40/fe/1bc9b3ee13f68487a99ac9529968035cca2f0a51ec36892060edcc51d06a/pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4", size = 5278800 }, + { url = "https://files.pythonhosted.org/packages/2c/32/7e2ac19b5713657384cec55f89065fb306b06af008cfd87e572035b27119/pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69", size = 4686296 }, + { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726 }, + { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652 }, + { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787 }, + { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236 }, + { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950 }, + { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358 }, + { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079 }, + { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324 }, + { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067 }, ] [[package]] name = "platformdirs" version = "4.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634, upload-time = "2025-08-26T14:32:04.268Z" } +sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634 } wheels = [ - { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload-time = "2025-08-26T14:32:02.735Z" }, + { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654 }, ] [[package]] name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, ] [[package]] name = "prometheus-client" version = "0.21.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/62/14/7d0f567991f3a9af8d1cd4f619040c93b68f09a02b6d0b6ab1b2d1ded5fe/prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb", size = 78551, upload-time = "2024-12-03T14:59:12.164Z" } +sdist = { url = "https://files.pythonhosted.org/packages/62/14/7d0f567991f3a9af8d1cd4f619040c93b68f09a02b6d0b6ab1b2d1ded5fe/prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb", size = 78551 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/c2/ab7d37426c179ceb9aeb109a85cda8948bb269b7561a0be870cc656eefe4/prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301", size = 54682, upload-time = "2024-12-03T14:59:10.935Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c2/ab7d37426c179ceb9aeb109a85cda8948bb269b7561a0be870cc656eefe4/prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301", size = 54682 }, ] [[package]] @@ -1636,9 +1536,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "wcwidth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198 } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431 }, ] [[package]] @@ -1653,181 +1553,181 @@ dependencies = [ { name = "scipy" }, { name = "toml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2d/38/34e3e4a6318c03ef31392178e326649483a3939dba67cf8ed1b5067b3ae1/proof_of_portfolio-0.0.134.tar.gz", hash = "sha256:72ab80c99dafad3db410244738c0cbddd957a5e26a701885b0324c45a2e68a33", size = 40276372, upload-time = "2025-09-13T04:08:28.641Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/38/34e3e4a6318c03ef31392178e326649483a3939dba67cf8ed1b5067b3ae1/proof_of_portfolio-0.0.134.tar.gz", hash = "sha256:72ab80c99dafad3db410244738c0cbddd957a5e26a701885b0324c45a2e68a33", size = 40276372 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/76/64bb5e01e12f86494ba4179eefd398e556fc8653b7944199f725f0a9790b/proof_of_portfolio-0.0.134-py3-none-any.whl", hash = "sha256:5accfe9d112ad850e41bc2a1cfd6677343cb9fe30a86113d59025adfac437d05", size = 40308152, upload-time = "2025-09-13T04:08:22.294Z" }, + { url = "https://files.pythonhosted.org/packages/6d/76/64bb5e01e12f86494ba4179eefd398e556fc8653b7944199f725f0a9790b/proof_of_portfolio-0.0.134-py3-none-any.whl", hash = "sha256:5accfe9d112ad850e41bc2a1cfd6677343cb9fe30a86113d59025adfac437d05", size = 40308152 }, ] [[package]] name = "propcache" version = "0.3.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139, upload-time = "2025-06-09T22:56:06.081Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674, upload-time = "2025-06-09T22:54:30.551Z" }, - { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570, upload-time = "2025-06-09T22:54:32.296Z" }, - { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094, upload-time = "2025-06-09T22:54:33.929Z" }, - { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958, upload-time = "2025-06-09T22:54:35.186Z" }, - { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894, upload-time = "2025-06-09T22:54:36.708Z" }, - { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672, upload-time = "2025-06-09T22:54:38.062Z" }, - { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395, upload-time = "2025-06-09T22:54:39.634Z" }, - { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510, upload-time = "2025-06-09T22:54:41.565Z" }, - { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949, upload-time = "2025-06-09T22:54:43.038Z" }, - { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258, upload-time = "2025-06-09T22:54:44.376Z" }, - { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036, upload-time = "2025-06-09T22:54:46.243Z" }, - { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684, upload-time = "2025-06-09T22:54:47.63Z" }, - { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562, upload-time = "2025-06-09T22:54:48.982Z" }, - { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142, upload-time = "2025-06-09T22:54:50.424Z" }, - { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711, upload-time = "2025-06-09T22:54:52.072Z" }, - { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479, upload-time = "2025-06-09T22:54:53.234Z" }, - { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663, upload-time = "2025-06-09T22:56:04.484Z" }, + { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674 }, + { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570 }, + { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094 }, + { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958 }, + { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894 }, + { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672 }, + { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395 }, + { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510 }, + { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949 }, + { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258 }, + { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036 }, + { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684 }, + { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562 }, + { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142 }, + { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711 }, + { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479 }, + { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663 }, ] [[package]] name = "protobuf" version = "6.32.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fa/a4/cc17347aa2897568beece2e674674359f911d6fe21b0b8d6268cd42727ac/protobuf-6.32.1.tar.gz", hash = "sha256:ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d", size = 440635, upload-time = "2025-09-11T21:38:42.935Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/a4/cc17347aa2897568beece2e674674359f911d6fe21b0b8d6268cd42727ac/protobuf-6.32.1.tar.gz", hash = "sha256:ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d", size = 440635 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/98/645183ea03ab3995d29086b8bf4f7562ebd3d10c9a4b14ee3f20d47cfe50/protobuf-6.32.1-cp310-abi3-win32.whl", hash = "sha256:a8a32a84bc9f2aad712041b8b366190f71dde248926da517bde9e832e4412085", size = 424411, upload-time = "2025-09-11T21:38:27.427Z" }, - { url = "https://files.pythonhosted.org/packages/8c/f3/6f58f841f6ebafe076cebeae33fc336e900619d34b1c93e4b5c97a81fdfa/protobuf-6.32.1-cp310-abi3-win_amd64.whl", hash = "sha256:b00a7d8c25fa471f16bc8153d0e53d6c9e827f0953f3c09aaa4331c718cae5e1", size = 435738, upload-time = "2025-09-11T21:38:30.959Z" }, - { url = "https://files.pythonhosted.org/packages/10/56/a8a3f4e7190837139e68c7002ec749190a163af3e330f65d90309145a210/protobuf-6.32.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d8c7e6eb619ffdf105ee4ab76af5a68b60a9d0f66da3ea12d1640e6d8dab7281", size = 426454, upload-time = "2025-09-11T21:38:34.076Z" }, - { url = "https://files.pythonhosted.org/packages/3f/be/8dd0a927c559b37d7a6c8ab79034fd167dcc1f851595f2e641ad62be8643/protobuf-6.32.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:2f5b80a49e1eb7b86d85fcd23fe92df154b9730a725c3b38c4e43b9d77018bf4", size = 322874, upload-time = "2025-09-11T21:38:35.509Z" }, - { url = "https://files.pythonhosted.org/packages/5c/f6/88d77011b605ef979aace37b7703e4eefad066f7e84d935e5a696515c2dd/protobuf-6.32.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:b1864818300c297265c83a4982fd3169f97122c299f56a56e2445c3698d34710", size = 322013, upload-time = "2025-09-11T21:38:37.017Z" }, - { url = "https://files.pythonhosted.org/packages/97/b7/15cc7d93443d6c6a84626ae3258a91f4c6ac8c0edd5df35ea7658f71b79c/protobuf-6.32.1-py3-none-any.whl", hash = "sha256:2601b779fc7d32a866c6b4404f9d42a3f67c5b9f3f15b4db3cccabe06b95c346", size = 169289, upload-time = "2025-09-11T21:38:41.234Z" }, + { url = "https://files.pythonhosted.org/packages/c0/98/645183ea03ab3995d29086b8bf4f7562ebd3d10c9a4b14ee3f20d47cfe50/protobuf-6.32.1-cp310-abi3-win32.whl", hash = "sha256:a8a32a84bc9f2aad712041b8b366190f71dde248926da517bde9e832e4412085", size = 424411 }, + { url = "https://files.pythonhosted.org/packages/8c/f3/6f58f841f6ebafe076cebeae33fc336e900619d34b1c93e4b5c97a81fdfa/protobuf-6.32.1-cp310-abi3-win_amd64.whl", hash = "sha256:b00a7d8c25fa471f16bc8153d0e53d6c9e827f0953f3c09aaa4331c718cae5e1", size = 435738 }, + { url = "https://files.pythonhosted.org/packages/10/56/a8a3f4e7190837139e68c7002ec749190a163af3e330f65d90309145a210/protobuf-6.32.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d8c7e6eb619ffdf105ee4ab76af5a68b60a9d0f66da3ea12d1640e6d8dab7281", size = 426454 }, + { url = "https://files.pythonhosted.org/packages/3f/be/8dd0a927c559b37d7a6c8ab79034fd167dcc1f851595f2e641ad62be8643/protobuf-6.32.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:2f5b80a49e1eb7b86d85fcd23fe92df154b9730a725c3b38c4e43b9d77018bf4", size = 322874 }, + { url = "https://files.pythonhosted.org/packages/5c/f6/88d77011b605ef979aace37b7703e4eefad066f7e84d935e5a696515c2dd/protobuf-6.32.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:b1864818300c297265c83a4982fd3169f97122c299f56a56e2445c3698d34710", size = 322013 }, + { url = "https://files.pythonhosted.org/packages/97/b7/15cc7d93443d6c6a84626ae3258a91f4c6ac8c0edd5df35ea7658f71b79c/protobuf-6.32.1-py3-none-any.whl", hash = "sha256:2601b779fc7d32a866c6b4404f9d42a3f67c5b9f3f15b4db3cccabe06b95c346", size = 169289 }, ] [[package]] name = "psutil" version = "6.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/5a/07871137bb752428aa4b659f910b399ba6f291156bdea939be3e96cae7cb/psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5", size = 508502, upload-time = "2024-12-19T18:21:20.568Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1f/5a/07871137bb752428aa4b659f910b399ba6f291156bdea939be3e96cae7cb/psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5", size = 508502 } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/99/ca79d302be46f7bdd8321089762dd4476ee725fce16fc2b2e1dbba8cac17/psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8", size = 247511, upload-time = "2024-12-19T18:21:45.163Z" }, - { url = "https://files.pythonhosted.org/packages/0b/6b/73dbde0dd38f3782905d4587049b9be64d76671042fdcaf60e2430c6796d/psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377", size = 248985, upload-time = "2024-12-19T18:21:49.254Z" }, - { url = "https://files.pythonhosted.org/packages/17/38/c319d31a1d3f88c5b79c68b3116c129e5133f1822157dd6da34043e32ed6/psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003", size = 284488, upload-time = "2024-12-19T18:21:51.638Z" }, - { url = "https://files.pythonhosted.org/packages/9c/39/0f88a830a1c8a3aba27fededc642da37613c57cbff143412e3536f89784f/psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160", size = 287477, upload-time = "2024-12-19T18:21:55.306Z" }, - { url = "https://files.pythonhosted.org/packages/47/da/99f4345d4ddf2845cb5b5bd0d93d554e84542d116934fde07a0c50bd4e9f/psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3", size = 289017, upload-time = "2024-12-19T18:21:57.875Z" }, - { url = "https://files.pythonhosted.org/packages/38/53/bd755c2896f4461fd4f36fa6a6dcb66a88a9e4b9fd4e5b66a77cf9d4a584/psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53", size = 250602, upload-time = "2024-12-19T18:22:08.808Z" }, - { url = "https://files.pythonhosted.org/packages/7b/d7/7831438e6c3ebbfa6e01a927127a6cb42ad3ab844247f3c5b96bea25d73d/psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649", size = 254444, upload-time = "2024-12-19T18:22:11.335Z" }, + { url = "https://files.pythonhosted.org/packages/61/99/ca79d302be46f7bdd8321089762dd4476ee725fce16fc2b2e1dbba8cac17/psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8", size = 247511 }, + { url = "https://files.pythonhosted.org/packages/0b/6b/73dbde0dd38f3782905d4587049b9be64d76671042fdcaf60e2430c6796d/psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377", size = 248985 }, + { url = "https://files.pythonhosted.org/packages/17/38/c319d31a1d3f88c5b79c68b3116c129e5133f1822157dd6da34043e32ed6/psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003", size = 284488 }, + { url = "https://files.pythonhosted.org/packages/9c/39/0f88a830a1c8a3aba27fededc642da37613c57cbff143412e3536f89784f/psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160", size = 287477 }, + { url = "https://files.pythonhosted.org/packages/47/da/99f4345d4ddf2845cb5b5bd0d93d554e84542d116934fde07a0c50bd4e9f/psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3", size = 289017 }, + { url = "https://files.pythonhosted.org/packages/38/53/bd755c2896f4461fd4f36fa6a6dcb66a88a9e4b9fd4e5b66a77cf9d4a584/psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53", size = 250602 }, + { url = "https://files.pythonhosted.org/packages/7b/d7/7831438e6c3ebbfa6e01a927127a6cb42ad3ab844247f3c5b96bea25d73d/psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649", size = 254444 }, ] [[package]] name = "ptyprocess" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762 } wheels = [ - { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993 }, ] [[package]] name = "pure-eval" version = "0.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842 }, ] [[package]] name = "py" version = "1.11.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", size = 207796, upload-time = "2021-11-04T17:17:01.377Z" } +sdist = { url = "https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", size = 207796 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378", size = 98708, upload-time = "2021-11-04T17:17:00.152Z" }, + { url = "https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378", size = 98708 }, ] [[package]] name = "py-bip39-bindings" version = "0.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5a/1a/f41ae3dacae40a80d00111c2bb775b3e89b7175a576b7b48a2378f0e47b5/py_bip39_bindings-0.3.0.tar.gz", hash = "sha256:ccf1f277358c635c28469d6cfd33f40c8cde902dcfdc23f395ac2932d19564bf", size = 14362, upload-time = "2025-09-03T11:35:27.926Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/1a/f41ae3dacae40a80d00111c2bb775b3e89b7175a576b7b48a2378f0e47b5/py_bip39_bindings-0.3.0.tar.gz", hash = "sha256:ccf1f277358c635c28469d6cfd33f40c8cde902dcfdc23f395ac2932d19564bf", size = 14362 } wheels = [ - { url = "https://files.pythonhosted.org/packages/39/9b/ffacd8e438727cf5d2a91853a7b1a6b3ae39dbc17c2096ef4aaab02e85ad/py_bip39_bindings-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8ef28358fda3c69776b2fd505d4ba2e24980ebcdc5d3abf04d5aecf86e6d155b", size = 374346, upload-time = "2025-09-03T11:34:27.263Z" }, - { url = "https://files.pythonhosted.org/packages/72/5c/7f7a456ad5377a9cca53c2720167c1ef8e7b5c6855849cbeed196c1dd84c/py_bip39_bindings-0.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9d9f5b5e95b8abf012ff85f4369aef707a129fc8011d551ae606e2ace6c49fe9", size = 363624, upload-time = "2025-09-03T11:34:22.877Z" }, - { url = "https://files.pythonhosted.org/packages/e6/9c/4e823ece7129cdda9bf4b6e255289ae4291062d48b10e42e035bc9acdda9/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4febd3d90cf6950b194c9a6f6df565cb86ff0e10c89156e6025092b7c272e5ff", size = 421650, upload-time = "2025-09-03T11:33:18.472Z" }, - { url = "https://files.pythonhosted.org/packages/4e/38/57445cdeadc4c7fffb9cca73ec2a994c3c5b6e720a6ec2eb1b2ce9857794/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3916b60b83f6c4a79176c485df3b61f437b6c674e39cecb6e8ec5d9e3a28861e", size = 422342, upload-time = "2025-09-03T11:33:34.914Z" }, - { url = "https://files.pythonhosted.org/packages/e2/fe/1d5cd9e2f386ada2a0fc97c47b3696191b756bfcfb224843d9655d79b71b/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90f19cbfba4834439e49099ca55ef0340fab4fa9abaf6cde9751fd0a05a60e10", size = 585131, upload-time = "2025-09-03T11:33:47.971Z" }, - { url = "https://files.pythonhosted.org/packages/5a/37/c6c520b3f3037b292a11dc071c73345252bb3f449065b241088f3f5632ff/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9af016b24b290937a6b233388fb53ce416b8b4e0b3181c62197d30f1550d4cc6", size = 432384, upload-time = "2025-09-03T11:34:12.415Z" }, - { url = "https://files.pythonhosted.org/packages/ac/5a/53921b79d91e07e66ee4e2a46df78141f0d597be44cdcb5efdf0677c9d38/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0397a8c6744e906e13b7b4129fa676ff943569fea968cc310f2c9248b9f88e6", size = 438808, upload-time = "2025-09-03T11:34:00.966Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7a/9b730edae87a5714fe06cca7aa8d6f328b588e305d1040299cf7c2b97bec/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3b71b9b9cad54678c8ea4ff855db1e31adf027eab5a1cd2ec0d255178d1d60ea", size = 601932, upload-time = "2025-09-03T11:34:34.311Z" }, - { url = "https://files.pythonhosted.org/packages/2f/ec/e676d7305b0b12e218ff8ad51e4115781a36081db7d51f381d391cf7c5fb/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:2b5f3f6dda9a68040c1fb74b9ca721788e3cec3d6e4d1e7ff91659bbc72c2bec", size = 685349, upload-time = "2025-09-03T11:34:47.721Z" }, - { url = "https://files.pythonhosted.org/packages/9c/3b/cf983f9a777de6128244f533495d7787d1f311ab49eb67c71314e18e3695/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:086c8e73208f423c3edd051a79334710b5253fb7be5e6a8d0b53da8538c0cc48", size = 614816, upload-time = "2025-09-03T11:35:04.031Z" }, - { url = "https://files.pythonhosted.org/packages/90/a9/81a97ae0850ec2b0b0d4df6757d1dcd478e3b205148d87ca561b95a0d102/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b16eb31bbedc6148a739a6fc8a79053306dcb7585972405f3728802cd844bfa7", size = 602022, upload-time = "2025-09-03T11:35:17.435Z" }, - { url = "https://files.pythonhosted.org/packages/27/ee/d0819e4ae1b2725a215e46182122a8286740d196e1c12cce8fc14f5d4bcf/py_bip39_bindings-0.3.0-cp312-cp312-win32.whl", hash = "sha256:34ac0484b24004d8e29243d345ce98285869f48be8d24a307fd188f76a284e27", size = 262833, upload-time = "2025-09-03T11:35:38.784Z" }, - { url = "https://files.pythonhosted.org/packages/c2/32/1473a512d90162e8d134f76dd4035deb2db0b8b227fad5fbae88a76da329/py_bip39_bindings-0.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a1506de7cc77827b6ec1eac874f5714be6afdc13b3b3132db71dfde14ee7a4f0", size = 270105, upload-time = "2025-09-03T11:35:31.735Z" }, + { url = "https://files.pythonhosted.org/packages/39/9b/ffacd8e438727cf5d2a91853a7b1a6b3ae39dbc17c2096ef4aaab02e85ad/py_bip39_bindings-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8ef28358fda3c69776b2fd505d4ba2e24980ebcdc5d3abf04d5aecf86e6d155b", size = 374346 }, + { url = "https://files.pythonhosted.org/packages/72/5c/7f7a456ad5377a9cca53c2720167c1ef8e7b5c6855849cbeed196c1dd84c/py_bip39_bindings-0.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9d9f5b5e95b8abf012ff85f4369aef707a129fc8011d551ae606e2ace6c49fe9", size = 363624 }, + { url = "https://files.pythonhosted.org/packages/e6/9c/4e823ece7129cdda9bf4b6e255289ae4291062d48b10e42e035bc9acdda9/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4febd3d90cf6950b194c9a6f6df565cb86ff0e10c89156e6025092b7c272e5ff", size = 421650 }, + { url = "https://files.pythonhosted.org/packages/4e/38/57445cdeadc4c7fffb9cca73ec2a994c3c5b6e720a6ec2eb1b2ce9857794/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3916b60b83f6c4a79176c485df3b61f437b6c674e39cecb6e8ec5d9e3a28861e", size = 422342 }, + { url = "https://files.pythonhosted.org/packages/e2/fe/1d5cd9e2f386ada2a0fc97c47b3696191b756bfcfb224843d9655d79b71b/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90f19cbfba4834439e49099ca55ef0340fab4fa9abaf6cde9751fd0a05a60e10", size = 585131 }, + { url = "https://files.pythonhosted.org/packages/5a/37/c6c520b3f3037b292a11dc071c73345252bb3f449065b241088f3f5632ff/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9af016b24b290937a6b233388fb53ce416b8b4e0b3181c62197d30f1550d4cc6", size = 432384 }, + { url = "https://files.pythonhosted.org/packages/ac/5a/53921b79d91e07e66ee4e2a46df78141f0d597be44cdcb5efdf0677c9d38/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0397a8c6744e906e13b7b4129fa676ff943569fea968cc310f2c9248b9f88e6", size = 438808 }, + { url = "https://files.pythonhosted.org/packages/dc/7a/9b730edae87a5714fe06cca7aa8d6f328b588e305d1040299cf7c2b97bec/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3b71b9b9cad54678c8ea4ff855db1e31adf027eab5a1cd2ec0d255178d1d60ea", size = 601932 }, + { url = "https://files.pythonhosted.org/packages/2f/ec/e676d7305b0b12e218ff8ad51e4115781a36081db7d51f381d391cf7c5fb/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:2b5f3f6dda9a68040c1fb74b9ca721788e3cec3d6e4d1e7ff91659bbc72c2bec", size = 685349 }, + { url = "https://files.pythonhosted.org/packages/9c/3b/cf983f9a777de6128244f533495d7787d1f311ab49eb67c71314e18e3695/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:086c8e73208f423c3edd051a79334710b5253fb7be5e6a8d0b53da8538c0cc48", size = 614816 }, + { url = "https://files.pythonhosted.org/packages/90/a9/81a97ae0850ec2b0b0d4df6757d1dcd478e3b205148d87ca561b95a0d102/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b16eb31bbedc6148a739a6fc8a79053306dcb7585972405f3728802cd844bfa7", size = 602022 }, + { url = "https://files.pythonhosted.org/packages/27/ee/d0819e4ae1b2725a215e46182122a8286740d196e1c12cce8fc14f5d4bcf/py_bip39_bindings-0.3.0-cp312-cp312-win32.whl", hash = "sha256:34ac0484b24004d8e29243d345ce98285869f48be8d24a307fd188f76a284e27", size = 262833 }, + { url = "https://files.pythonhosted.org/packages/c2/32/1473a512d90162e8d134f76dd4035deb2db0b8b227fad5fbae88a76da329/py_bip39_bindings-0.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a1506de7cc77827b6ec1eac874f5714be6afdc13b3b3132db71dfde14ee7a4f0", size = 270105 }, ] [[package]] name = "py-ed25519-zebra-bindings" version = "1.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c1/0f/18ba2ae4eb2bc84fd05ebd3689d6d33609198707a602cf332e854944735f/py_ed25519_zebra_bindings-1.3.0.tar.gz", hash = "sha256:c0c4478ab57d65671b310524978122a81b9921847dba07f005d0d2d218f610b5", size = 11809, upload-time = "2025-09-03T11:31:49.185Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c1/0f/18ba2ae4eb2bc84fd05ebd3689d6d33609198707a602cf332e854944735f/py_ed25519_zebra_bindings-1.3.0.tar.gz", hash = "sha256:c0c4478ab57d65671b310524978122a81b9921847dba07f005d0d2d218f610b5", size = 11809 } wheels = [ - { url = "https://files.pythonhosted.org/packages/dd/8e/2ad270ce1e4d7e3c5a1ddce2933370f4e60510d4f64cfc243d27ee250caa/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:dd548a85aae8354e781db7ce2310cd74e11478c95caf30dcb0e61481de9b1ccd", size = 297769, upload-time = "2025-09-03T11:31:03.794Z" }, - { url = "https://files.pythonhosted.org/packages/e7/b8/539cf42a0815d8c6f2d8aaaf8e0c7b8dff7c5e05bb74c440cbf3a2b320dc/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:160d09d42c3a71b27b31c6cfe33c495816603407a8dca65848e3daf5264ce650", size = 269824, upload-time = "2025-09-03T11:31:00.836Z" }, - { url = "https://files.pythonhosted.org/packages/31/db/5f9dc670fbd10ac7e8ef6d87bbe003ef0adc6816eb4b7227f45b9666bc53/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6955a1689da524991b8940c9fad4c71351508faa9c338d3a59c1979881cb6d13", size = 300831, upload-time = "2025-09-03T11:30:08.864Z" }, - { url = "https://files.pythonhosted.org/packages/1a/24/eca79f4d48896fdd56818751a652c930c81af7a27faa4186f3938d9ede23/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:44524a78ac106a32cfb468df5bf13b74379df022088751802db5d591db4fbaff", size = 328349, upload-time = "2025-09-03T11:30:21.984Z" }, - { url = "https://files.pythonhosted.org/packages/9f/6c/dcec9acbcec854ffd8e273c20fea07ca5427c823690b7b7ecefac2a41993/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc58becb6f3336e73249916bb0ebb5ca01304f7229066681fa1a54b437c73650", size = 443681, upload-time = "2025-09-03T11:30:32.284Z" }, - { url = "https://files.pythonhosted.org/packages/43/9e/505352973fd7eb2411ec15f2e5795cc16bfa6b970426a155493e6de37f5f/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75bb597651de7ae71e22d49284ea153cb4c5f9c085e3745634713d57348b9c4f", size = 322842, upload-time = "2025-09-03T11:30:52.732Z" }, - { url = "https://files.pythonhosted.org/packages/de/f7/3f623955953b4557cfc20fbca3337fe0bb3480ae1c0122b2b70000bcbdbc/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e3ca8fca02404f859d2a2d93e2d54e6a2ca49f39caf29a5497995d2566926d4", size = 340445, upload-time = "2025-09-03T11:30:43.179Z" }, - { url = "https://files.pythonhosted.org/packages/3c/dd/95be4b702eab24844a006472ea0d3f6d4e79e7bac181d1f3f1b5478f28be/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:506675a6097e771da2177859218ce8cf6a0b96239f38593cbfb38e376530a8e6", size = 479582, upload-time = "2025-09-03T11:31:08.636Z" }, - { url = "https://files.pythonhosted.org/packages/2b/e5/2a6af8ed67538212c4d7de49905ff1d1baa1f109255e8e4006b722fb9c89/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:9225efde253397aaf9ac8509036314d1390621cf7fc4e43616e741d48af91c56", size = 592553, upload-time = "2025-09-03T11:31:19.283Z" }, - { url = "https://files.pythonhosted.org/packages/3f/3b/c93b3ff723747206478deaa7a8c7448fec7faefd011385f1d717a94181e7/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8483690dfebd89d9e2a9b4407c902d42187444bd4c6c2e5a161f39da11c0b25a", size = 517855, upload-time = "2025-09-03T11:31:29.603Z" }, - { url = "https://files.pythonhosted.org/packages/cb/1a/0752ea61481348038e8d66fd95453aae99c606d5c872c9d06dde7b6912d7/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:872ee9da1f93d252c13d246cb3d79b50abd834f45b73b3ce9733091a1b31e470", size = 493050, upload-time = "2025-09-03T11:31:40.442Z" }, - { url = "https://files.pythonhosted.org/packages/32/c7/e7f1193b3edd58e8662c6b8dbeecc3c5a77c1df25fa9f45daee62f5af9c0/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-win32.whl", hash = "sha256:6b28b572db32188af60878b11a20cace42a86f0b8630fa09739d871e67d317b2", size = 183140, upload-time = "2025-09-03T11:31:56.576Z" }, - { url = "https://files.pythonhosted.org/packages/6b/3a/44f1aa1e24693abed85478f5fd84a60a8164162ea9d8eac1d2dab48bc180/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:015c2ce6b934a6b36d50a21c6213636c18edf9a4c14b847f70089ba1897e119e", size = 188353, upload-time = "2025-09-03T11:31:51.707Z" }, + { url = "https://files.pythonhosted.org/packages/dd/8e/2ad270ce1e4d7e3c5a1ddce2933370f4e60510d4f64cfc243d27ee250caa/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:dd548a85aae8354e781db7ce2310cd74e11478c95caf30dcb0e61481de9b1ccd", size = 297769 }, + { url = "https://files.pythonhosted.org/packages/e7/b8/539cf42a0815d8c6f2d8aaaf8e0c7b8dff7c5e05bb74c440cbf3a2b320dc/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:160d09d42c3a71b27b31c6cfe33c495816603407a8dca65848e3daf5264ce650", size = 269824 }, + { url = "https://files.pythonhosted.org/packages/31/db/5f9dc670fbd10ac7e8ef6d87bbe003ef0adc6816eb4b7227f45b9666bc53/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6955a1689da524991b8940c9fad4c71351508faa9c338d3a59c1979881cb6d13", size = 300831 }, + { url = "https://files.pythonhosted.org/packages/1a/24/eca79f4d48896fdd56818751a652c930c81af7a27faa4186f3938d9ede23/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:44524a78ac106a32cfb468df5bf13b74379df022088751802db5d591db4fbaff", size = 328349 }, + { url = "https://files.pythonhosted.org/packages/9f/6c/dcec9acbcec854ffd8e273c20fea07ca5427c823690b7b7ecefac2a41993/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc58becb6f3336e73249916bb0ebb5ca01304f7229066681fa1a54b437c73650", size = 443681 }, + { url = "https://files.pythonhosted.org/packages/43/9e/505352973fd7eb2411ec15f2e5795cc16bfa6b970426a155493e6de37f5f/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75bb597651de7ae71e22d49284ea153cb4c5f9c085e3745634713d57348b9c4f", size = 322842 }, + { url = "https://files.pythonhosted.org/packages/de/f7/3f623955953b4557cfc20fbca3337fe0bb3480ae1c0122b2b70000bcbdbc/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e3ca8fca02404f859d2a2d93e2d54e6a2ca49f39caf29a5497995d2566926d4", size = 340445 }, + { url = "https://files.pythonhosted.org/packages/3c/dd/95be4b702eab24844a006472ea0d3f6d4e79e7bac181d1f3f1b5478f28be/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:506675a6097e771da2177859218ce8cf6a0b96239f38593cbfb38e376530a8e6", size = 479582 }, + { url = "https://files.pythonhosted.org/packages/2b/e5/2a6af8ed67538212c4d7de49905ff1d1baa1f109255e8e4006b722fb9c89/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:9225efde253397aaf9ac8509036314d1390621cf7fc4e43616e741d48af91c56", size = 592553 }, + { url = "https://files.pythonhosted.org/packages/3f/3b/c93b3ff723747206478deaa7a8c7448fec7faefd011385f1d717a94181e7/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8483690dfebd89d9e2a9b4407c902d42187444bd4c6c2e5a161f39da11c0b25a", size = 517855 }, + { url = "https://files.pythonhosted.org/packages/cb/1a/0752ea61481348038e8d66fd95453aae99c606d5c872c9d06dde7b6912d7/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:872ee9da1f93d252c13d246cb3d79b50abd834f45b73b3ce9733091a1b31e470", size = 493050 }, + { url = "https://files.pythonhosted.org/packages/32/c7/e7f1193b3edd58e8662c6b8dbeecc3c5a77c1df25fa9f45daee62f5af9c0/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-win32.whl", hash = "sha256:6b28b572db32188af60878b11a20cace42a86f0b8630fa09739d871e67d317b2", size = 183140 }, + { url = "https://files.pythonhosted.org/packages/6b/3a/44f1aa1e24693abed85478f5fd84a60a8164162ea9d8eac1d2dab48bc180/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:015c2ce6b934a6b36d50a21c6213636c18edf9a4c14b847f70089ba1897e119e", size = 188353 }, ] [[package]] name = "py-sr25519-bindings" version = "0.2.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/21/64/24d7fd10bbf96686cd3a868d79b27c84d36a92a1b7b9ade52b754b5c1d65/py_sr25519_bindings-0.2.2.tar.gz", hash = "sha256:192d65d3bc43c6f4121a0732e1f6eb6ad869897ca26368ba032e96a82b3b7606", size = 18565, upload-time = "2025-03-12T20:35:51.176Z" } +sdist = { url = "https://files.pythonhosted.org/packages/21/64/24d7fd10bbf96686cd3a868d79b27c84d36a92a1b7b9ade52b754b5c1d65/py_sr25519_bindings-0.2.2.tar.gz", hash = "sha256:192d65d3bc43c6f4121a0732e1f6eb6ad869897ca26368ba032e96a82b3b7606", size = 18565 } wheels = [ - { url = "https://files.pythonhosted.org/packages/24/1b/77ac1f989fe2b42354a912db2245087a230cdd5585a1f5c721d733d997c7/py_sr25519_bindings-0.2.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f22542738ed98fac0d3da2479dd3f26c695594800877a4d8bb116c47e4fd4b7c", size = 337110, upload-time = "2025-03-12T20:34:54.175Z" }, - { url = "https://files.pythonhosted.org/packages/2d/d9/95eff0244e9d60a1153f59e2dd86c17eda38030d5764ad594daccd45664d/py_sr25519_bindings-0.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b312b8ac7c8354d5cf1b9aad993bbafbd99cc97b6d246f246e76814f576ed809", size = 312294, upload-time = "2025-03-12T20:34:51Z" }, - { url = "https://files.pythonhosted.org/packages/60/fa/82ee651cc236f818c9426cf2e69bd310e1ad365da8c28c1e80229c6749ae/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c70ff898fa46f380a535c843e3a1a9824d1849216067bbf28eb9ad225b92f0bb", size = 341715, upload-time = "2025-03-12T20:33:53.813Z" }, - { url = "https://files.pythonhosted.org/packages/63/4c/7fe74f6a285e2f5b816d0ac40d1a4fb8dece0aaa2e5658711659a138143d/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:292be23ad53d9f9dbf1703a2a341005629a8f93c57cfad254c8c1230ec7d3fe3", size = 371546, upload-time = "2025-03-12T20:34:06.649Z" }, - { url = "https://files.pythonhosted.org/packages/96/2c/0200b032f106c3f45fac26fc4a7b4a8709e76ceee2c955506b101876a104/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:673b31e8f59bc1478814b011921073f8ad4e2c78a1d6580b3ddb1a9d7edc4392", size = 401746, upload-time = "2025-03-12T20:34:19.982Z" }, - { url = "https://files.pythonhosted.org/packages/e8/1b/4bb3d11214e67d43db6da4b30ed3f0607692911b15d2451d52303bfd9eac/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:849f77ab12210e8549e58d444e9199d9aba83a988e99ca8bef04dd53e81f9561", size = 370218, upload-time = "2025-03-12T20:34:42.545Z" }, - { url = "https://files.pythonhosted.org/packages/07/c7/4b2c1f8fa7f877bc87a7464a09155184872a42ad77b3dc46623cd2b6d765/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cf8c1d329275c41836aee5f8789ab14100dbdc2b6f3a0210fac2abb0f7507c24", size = 391266, upload-time = "2025-03-12T20:34:32.491Z" }, - { url = "https://files.pythonhosted.org/packages/fd/89/9dbce7ea9250a6da39b4cea0005406b435dfcc6d7acf96fffd225068f1e5/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:48f053c5e8cb66125057b25223ef5ff57bb4383a82871d47089397317c5fd792", size = 520570, upload-time = "2025-03-12T20:34:59.045Z" }, - { url = "https://files.pythonhosted.org/packages/cf/49/8687d5a25f78ae33d2ec485b7d845e15c48b4ef5de14e88725d658dfa295/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fea3ce0ac6a26a52735bb48f8daafb82d17147f776bb6d9d3c330bd2ccffe20d", size = 634419, upload-time = "2025-03-12T20:35:12.833Z" }, - { url = "https://files.pythonhosted.org/packages/6d/4b/0eda1da34e9eb6c9925d887d593ec74ce87e3a4d27dd92feea4a2f73a07c/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f44a0a9cb155af6408e3f73833a935abc98934ce097b2ad07dd13e3a88f82cb8", size = 565771, upload-time = "2025-03-12T20:35:25.751Z" }, - { url = "https://files.pythonhosted.org/packages/b9/0d/888547b1ba1f0b28345158a6bf7e7c6b85d856639b61b612e4d7c9f721d6/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cc531500823ece8d6889082642e9ea06f2eaffd0ed43d65871cb4727429027c", size = 538963, upload-time = "2025-03-12T20:35:39.244Z" }, - { url = "https://files.pythonhosted.org/packages/dc/6b/3e682442be504c506cc5159a8dd5520f18100ad52fcbf2f8dd33f55c4d09/py_sr25519_bindings-0.2.2-cp312-cp312-win32.whl", hash = "sha256:840c3ec1fc8dde12421369afa9761943efe377a7bd55a97524587e8b5a6546c2", size = 219273, upload-time = "2025-03-12T20:36:01.434Z" }, - { url = "https://files.pythonhosted.org/packages/73/01/df0af3505e69f8d1334fa493fb82c0e944bb554f6e4739e613a9eaafe59b/py_sr25519_bindings-0.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:c3ee5fd07b2974ce147ac7546b18729d2eb4efebe8eaad178690aaca656487f3", size = 225723, upload-time = "2025-03-12T20:35:54.361Z" }, + { url = "https://files.pythonhosted.org/packages/24/1b/77ac1f989fe2b42354a912db2245087a230cdd5585a1f5c721d733d997c7/py_sr25519_bindings-0.2.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f22542738ed98fac0d3da2479dd3f26c695594800877a4d8bb116c47e4fd4b7c", size = 337110 }, + { url = "https://files.pythonhosted.org/packages/2d/d9/95eff0244e9d60a1153f59e2dd86c17eda38030d5764ad594daccd45664d/py_sr25519_bindings-0.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b312b8ac7c8354d5cf1b9aad993bbafbd99cc97b6d246f246e76814f576ed809", size = 312294 }, + { url = "https://files.pythonhosted.org/packages/60/fa/82ee651cc236f818c9426cf2e69bd310e1ad365da8c28c1e80229c6749ae/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c70ff898fa46f380a535c843e3a1a9824d1849216067bbf28eb9ad225b92f0bb", size = 341715 }, + { url = "https://files.pythonhosted.org/packages/63/4c/7fe74f6a285e2f5b816d0ac40d1a4fb8dece0aaa2e5658711659a138143d/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:292be23ad53d9f9dbf1703a2a341005629a8f93c57cfad254c8c1230ec7d3fe3", size = 371546 }, + { url = "https://files.pythonhosted.org/packages/96/2c/0200b032f106c3f45fac26fc4a7b4a8709e76ceee2c955506b101876a104/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:673b31e8f59bc1478814b011921073f8ad4e2c78a1d6580b3ddb1a9d7edc4392", size = 401746 }, + { url = "https://files.pythonhosted.org/packages/e8/1b/4bb3d11214e67d43db6da4b30ed3f0607692911b15d2451d52303bfd9eac/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:849f77ab12210e8549e58d444e9199d9aba83a988e99ca8bef04dd53e81f9561", size = 370218 }, + { url = "https://files.pythonhosted.org/packages/07/c7/4b2c1f8fa7f877bc87a7464a09155184872a42ad77b3dc46623cd2b6d765/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cf8c1d329275c41836aee5f8789ab14100dbdc2b6f3a0210fac2abb0f7507c24", size = 391266 }, + { url = "https://files.pythonhosted.org/packages/fd/89/9dbce7ea9250a6da39b4cea0005406b435dfcc6d7acf96fffd225068f1e5/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:48f053c5e8cb66125057b25223ef5ff57bb4383a82871d47089397317c5fd792", size = 520570 }, + { url = "https://files.pythonhosted.org/packages/cf/49/8687d5a25f78ae33d2ec485b7d845e15c48b4ef5de14e88725d658dfa295/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fea3ce0ac6a26a52735bb48f8daafb82d17147f776bb6d9d3c330bd2ccffe20d", size = 634419 }, + { url = "https://files.pythonhosted.org/packages/6d/4b/0eda1da34e9eb6c9925d887d593ec74ce87e3a4d27dd92feea4a2f73a07c/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f44a0a9cb155af6408e3f73833a935abc98934ce097b2ad07dd13e3a88f82cb8", size = 565771 }, + { url = "https://files.pythonhosted.org/packages/b9/0d/888547b1ba1f0b28345158a6bf7e7c6b85d856639b61b612e4d7c9f721d6/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cc531500823ece8d6889082642e9ea06f2eaffd0ed43d65871cb4727429027c", size = 538963 }, + { url = "https://files.pythonhosted.org/packages/dc/6b/3e682442be504c506cc5159a8dd5520f18100ad52fcbf2f8dd33f55c4d09/py_sr25519_bindings-0.2.2-cp312-cp312-win32.whl", hash = "sha256:840c3ec1fc8dde12421369afa9761943efe377a7bd55a97524587e8b5a6546c2", size = 219273 }, + { url = "https://files.pythonhosted.org/packages/73/01/df0af3505e69f8d1334fa493fb82c0e944bb554f6e4739e613a9eaafe59b/py_sr25519_bindings-0.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:c3ee5fd07b2974ce147ac7546b18729d2eb4efebe8eaad178690aaca656487f3", size = 225723 }, ] [[package]] name = "pycparser" version = "2.23" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140 }, ] [[package]] name = "pycryptodome" version = "3.23.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/a6/8452177684d5e906854776276ddd34eca30d1b1e15aa1ee9cefc289a33f5/pycryptodome-3.23.0.tar.gz", hash = "sha256:447700a657182d60338bab09fdb27518f8856aecd80ae4c6bdddb67ff5da44ef", size = 4921276, upload-time = "2025-05-17T17:21:45.242Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/a6/8452177684d5e906854776276ddd34eca30d1b1e15aa1ee9cefc289a33f5/pycryptodome-3.23.0.tar.gz", hash = "sha256:447700a657182d60338bab09fdb27518f8856aecd80ae4c6bdddb67ff5da44ef", size = 4921276 } wheels = [ - { url = "https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:187058ab80b3281b1de11c2e6842a357a1f71b42cb1e15bce373f3d238135c27", size = 2495627, upload-time = "2025-05-17T17:20:47.139Z" }, - { url = "https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cfb5cd445280c5b0a4e6187a7ce8de5a07b5f3f897f235caa11f1f435f182843", size = 1640362, upload-time = "2025-05-17T17:20:50.392Z" }, - { url = "https://files.pythonhosted.org/packages/50/52/adaf4c8c100a8c49d2bd058e5b551f73dfd8cb89eb4911e25a0c469b6b4e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67bd81fcbe34f43ad9422ee8fd4843c8e7198dd88dd3d40e6de42ee65fbe1490", size = 2182625, upload-time = "2025-05-17T17:20:52.866Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575", size = 2268954, upload-time = "2025-05-17T17:20:55.027Z" }, - { url = "https://files.pythonhosted.org/packages/f9/c5/ffe6474e0c551d54cab931918127c46d70cab8f114e0c2b5a3c071c2f484/pycryptodome-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa0698f65e5b570426fc31b8162ed4603b0c2841cbb9088e2b01641e3065915b", size = 2308534, upload-time = "2025-05-17T17:20:57.279Z" }, - { url = "https://files.pythonhosted.org/packages/18/28/e199677fc15ecf43010f2463fde4c1a53015d1fe95fb03bca2890836603a/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:53ecbafc2b55353edcebd64bf5da94a2a2cdf5090a6915bcca6eca6cc452585a", size = 2181853, upload-time = "2025-05-17T17:20:59.322Z" }, - { url = "https://files.pythonhosted.org/packages/ce/ea/4fdb09f2165ce1365c9eaefef36625583371ee514db58dc9b65d3a255c4c/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:156df9667ad9f2ad26255926524e1c136d6664b741547deb0a86a9acf5ea631f", size = 2342465, upload-time = "2025-05-17T17:21:03.83Z" }, - { url = "https://files.pythonhosted.org/packages/22/82/6edc3fc42fe9284aead511394bac167693fb2b0e0395b28b8bedaa07ef04/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:dea827b4d55ee390dc89b2afe5927d4308a8b538ae91d9c6f7a5090f397af1aa", size = 2267414, upload-time = "2025-05-17T17:21:06.72Z" }, - { url = "https://files.pythonhosted.org/packages/59/fe/aae679b64363eb78326c7fdc9d06ec3de18bac68be4b612fc1fe8902693c/pycryptodome-3.23.0-cp37-abi3-win32.whl", hash = "sha256:507dbead45474b62b2bbe318eb1c4c8ee641077532067fec9c1aa82c31f84886", size = 1768484, upload-time = "2025-05-17T17:21:08.535Z" }, - { url = "https://files.pythonhosted.org/packages/54/2f/e97a1b8294db0daaa87012c24a7bb714147c7ade7656973fd6c736b484ff/pycryptodome-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:c75b52aacc6c0c260f204cbdd834f76edc9fb0d8e0da9fbf8352ef58202564e2", size = 1799636, upload-time = "2025-05-17T17:21:10.393Z" }, - { url = "https://files.pythonhosted.org/packages/18/3d/f9441a0d798bf2b1e645adc3265e55706aead1255ccdad3856dbdcffec14/pycryptodome-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:11eeeb6917903876f134b56ba11abe95c0b0fd5e3330def218083c7d98bbcb3c", size = 1703675, upload-time = "2025-05-17T17:21:13.146Z" }, + { url = "https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:187058ab80b3281b1de11c2e6842a357a1f71b42cb1e15bce373f3d238135c27", size = 2495627 }, + { url = "https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cfb5cd445280c5b0a4e6187a7ce8de5a07b5f3f897f235caa11f1f435f182843", size = 1640362 }, + { url = "https://files.pythonhosted.org/packages/50/52/adaf4c8c100a8c49d2bd058e5b551f73dfd8cb89eb4911e25a0c469b6b4e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67bd81fcbe34f43ad9422ee8fd4843c8e7198dd88dd3d40e6de42ee65fbe1490", size = 2182625 }, + { url = "https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575", size = 2268954 }, + { url = "https://files.pythonhosted.org/packages/f9/c5/ffe6474e0c551d54cab931918127c46d70cab8f114e0c2b5a3c071c2f484/pycryptodome-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa0698f65e5b570426fc31b8162ed4603b0c2841cbb9088e2b01641e3065915b", size = 2308534 }, + { url = "https://files.pythonhosted.org/packages/18/28/e199677fc15ecf43010f2463fde4c1a53015d1fe95fb03bca2890836603a/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:53ecbafc2b55353edcebd64bf5da94a2a2cdf5090a6915bcca6eca6cc452585a", size = 2181853 }, + { url = "https://files.pythonhosted.org/packages/ce/ea/4fdb09f2165ce1365c9eaefef36625583371ee514db58dc9b65d3a255c4c/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:156df9667ad9f2ad26255926524e1c136d6664b741547deb0a86a9acf5ea631f", size = 2342465 }, + { url = "https://files.pythonhosted.org/packages/22/82/6edc3fc42fe9284aead511394bac167693fb2b0e0395b28b8bedaa07ef04/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:dea827b4d55ee390dc89b2afe5927d4308a8b538ae91d9c6f7a5090f397af1aa", size = 2267414 }, + { url = "https://files.pythonhosted.org/packages/59/fe/aae679b64363eb78326c7fdc9d06ec3de18bac68be4b612fc1fe8902693c/pycryptodome-3.23.0-cp37-abi3-win32.whl", hash = "sha256:507dbead45474b62b2bbe318eb1c4c8ee641077532067fec9c1aa82c31f84886", size = 1768484 }, + { url = "https://files.pythonhosted.org/packages/54/2f/e97a1b8294db0daaa87012c24a7bb714147c7ade7656973fd6c736b484ff/pycryptodome-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:c75b52aacc6c0c260f204cbdd834f76edc9fb0d8e0da9fbf8352ef58202564e2", size = 1799636 }, + { url = "https://files.pythonhosted.org/packages/18/3d/f9441a0d798bf2b1e645adc3265e55706aead1255ccdad3856dbdcffec14/pycryptodome-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:11eeeb6917903876f134b56ba11abe95c0b0fd5e3330def218083c7d98bbcb3c", size = 1703675 }, ] [[package]] @@ -1839,9 +1739,9 @@ dependencies = [ { name = "pydantic-core" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b7/ae/d5220c5c52b158b1de7ca89fc5edb72f304a70a4c540c84c8844bf4008de/pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236", size = 761681, upload-time = "2025-01-24T01:42:12.693Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/ae/d5220c5c52b158b1de7ca89fc5edb72f304a70a4c540c84c8844bf4008de/pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236", size = 761681 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/3c/8cc1cc84deffa6e25d2d0c688ebb80635dfdbf1dbea3e30c541c8cf4d860/pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584", size = 431696, upload-time = "2025-01-24T01:42:10.371Z" }, + { url = "https://files.pythonhosted.org/packages/f4/3c/8cc1cc84deffa6e25d2d0c688ebb80635dfdbf1dbea3e30c541c8cf4d860/pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584", size = 431696 }, ] [[package]] @@ -1851,22 +1751,22 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443, upload-time = "2024-12-18T11:31:54.917Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127, upload-time = "2024-12-18T11:28:30.346Z" }, - { url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340, upload-time = "2024-12-18T11:28:32.521Z" }, - { url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900, upload-time = "2024-12-18T11:28:34.507Z" }, - { url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177, upload-time = "2024-12-18T11:28:36.488Z" }, - { url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046, upload-time = "2024-12-18T11:28:39.409Z" }, - { url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386, upload-time = "2024-12-18T11:28:41.221Z" }, - { url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060, upload-time = "2024-12-18T11:28:44.709Z" }, - { url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870, upload-time = "2024-12-18T11:28:46.839Z" }, - { url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822, upload-time = "2024-12-18T11:28:48.896Z" }, - { url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364, upload-time = "2024-12-18T11:28:50.755Z" }, - { url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303, upload-time = "2024-12-18T11:28:54.122Z" }, - { url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064, upload-time = "2024-12-18T11:28:56.074Z" }, - { url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046, upload-time = "2024-12-18T11:28:58.107Z" }, - { url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092, upload-time = "2024-12-18T11:29:01.335Z" }, + { url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127 }, + { url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340 }, + { url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900 }, + { url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177 }, + { url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046 }, + { url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386 }, + { url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060 }, + { url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870 }, + { url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822 }, + { url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364 }, + { url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303 }, + { url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064 }, + { url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046 }, + { url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092 }, ] [[package]] @@ -1876,18 +1776,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyparsing" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/66/dd/e0e6a4fb84c22050f6a9701ad9fd6a67ef82faa7ba97b97eb6fdc6b49b34/pydot-3.0.4.tar.gz", hash = "sha256:3ce88b2558f3808b0376f22bfa6c263909e1c3981e2a7b629b65b451eee4a25d", size = 168167, upload-time = "2025-01-05T16:18:45.763Z" } +sdist = { url = "https://files.pythonhosted.org/packages/66/dd/e0e6a4fb84c22050f6a9701ad9fd6a67ef82faa7ba97b97eb6fdc6b49b34/pydot-3.0.4.tar.gz", hash = "sha256:3ce88b2558f3808b0376f22bfa6c263909e1c3981e2a7b629b65b451eee4a25d", size = 168167 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/5f/1ebfd430df05c4f9e438dd3313c4456eab937d976f6ab8ce81a98f9fb381/pydot-3.0.4-py3-none-any.whl", hash = "sha256:bfa9c3fc0c44ba1d132adce131802d7df00429d1a79cc0346b0a5cd374dbe9c6", size = 35776, upload-time = "2025-01-05T16:18:42.836Z" }, + { url = "https://files.pythonhosted.org/packages/b0/5f/1ebfd430df05c4f9e438dd3313c4456eab937d976f6ab8ce81a98f9fb381/pydot-3.0.4-py3-none-any.whl", hash = "sha256:bfa9c3fc0c44ba1d132adce131802d7df00429d1a79cc0346b0a5cd374dbe9c6", size = 35776 }, ] [[package]] name = "pygments" version = "2.19.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217 }, ] [[package]] @@ -1897,22 +1797,22 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/c6/a3124dee667a423f2c637cfd262a54d67d8ccf3e160f3c50f622a85b7723/pynacl-1.6.0.tar.gz", hash = "sha256:cb36deafe6e2bce3b286e5d1f3e1c246e0ccdb8808ddb4550bb2792f2df298f2", size = 3505641, upload-time = "2025-09-10T23:39:22.308Z" } +sdist = { url = "https://files.pythonhosted.org/packages/06/c6/a3124dee667a423f2c637cfd262a54d67d8ccf3e160f3c50f622a85b7723/pynacl-1.6.0.tar.gz", hash = "sha256:cb36deafe6e2bce3b286e5d1f3e1c246e0ccdb8808ddb4550bb2792f2df298f2", size = 3505641 } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/37/87c72df19857c5b3b47ace6f211a26eb862ada495cc96daa372d96048fca/pynacl-1.6.0-cp38-abi3-macosx_10_10_universal2.whl", hash = "sha256:f4b3824920e206b4f52abd7de621ea7a44fd3cb5c8daceb7c3612345dfc54f2e", size = 382610, upload-time = "2025-09-10T23:38:49.459Z" }, - { url = "https://files.pythonhosted.org/packages/0c/64/3ce958a5817fd3cc6df4ec14441c43fd9854405668d73babccf77f9597a3/pynacl-1.6.0-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:16dd347cdc8ae0b0f6187a2608c0af1c8b7ecbbe6b4a06bff8253c192f696990", size = 798744, upload-time = "2025-09-10T23:38:58.531Z" }, - { url = "https://files.pythonhosted.org/packages/e4/8a/3f0dd297a0a33fa3739c255feebd0206bb1df0b44c52fbe2caf8e8bc4425/pynacl-1.6.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:16c60daceee88d04f8d41d0a4004a7ed8d9a5126b997efd2933e08e93a3bd850", size = 1397879, upload-time = "2025-09-10T23:39:00.44Z" }, - { url = "https://files.pythonhosted.org/packages/41/94/028ff0434a69448f61348d50d2c147dda51aabdd4fbc93ec61343332174d/pynacl-1.6.0-cp38-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:25720bad35dfac34a2bcdd61d9e08d6bfc6041bebc7751d9c9f2446cf1e77d64", size = 833907, upload-time = "2025-09-10T23:38:50.936Z" }, - { url = "https://files.pythonhosted.org/packages/52/bc/a5cff7f8c30d5f4c26a07dfb0bcda1176ab8b2de86dda3106c00a02ad787/pynacl-1.6.0-cp38-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8bfaa0a28a1ab718bad6239979a5a57a8d1506d0caf2fba17e524dbb409441cf", size = 1436649, upload-time = "2025-09-10T23:38:52.783Z" }, - { url = "https://files.pythonhosted.org/packages/7a/20/c397be374fd5d84295046e398de4ba5f0722dc14450f65db76a43c121471/pynacl-1.6.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ef214b90556bb46a485b7da8258e59204c244b1b5b576fb71848819b468c44a7", size = 817142, upload-time = "2025-09-10T23:38:54.4Z" }, - { url = "https://files.pythonhosted.org/packages/12/30/5efcef3406940cda75296c6d884090b8a9aad2dcc0c304daebb5ae99fb4a/pynacl-1.6.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:49c336dd80ea54780bcff6a03ee1a476be1612423010472e60af83452aa0f442", size = 1401794, upload-time = "2025-09-10T23:38:56.614Z" }, - { url = "https://files.pythonhosted.org/packages/be/e1/a8fe1248cc17ccb03b676d80fa90763760a6d1247da434844ea388d0816c/pynacl-1.6.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:f3482abf0f9815e7246d461fab597aa179b7524628a4bc36f86a7dc418d2608d", size = 772161, upload-time = "2025-09-10T23:39:01.93Z" }, - { url = "https://files.pythonhosted.org/packages/a3/76/8a62702fb657d6d9104ce13449db221a345665d05e6a3fdefb5a7cafd2ad/pynacl-1.6.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:140373378e34a1f6977e573033d1dd1de88d2a5d90ec6958c9485b2fd9f3eb90", size = 1370720, upload-time = "2025-09-10T23:39:03.531Z" }, - { url = "https://files.pythonhosted.org/packages/6d/38/9e9e9b777a1c4c8204053733e1a0269672c0bd40852908c9ad6b6eaba82c/pynacl-1.6.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6b393bc5e5a0eb86bb85b533deb2d2c815666665f840a09e0aa3362bb6088736", size = 791252, upload-time = "2025-09-10T23:39:05.058Z" }, - { url = "https://files.pythonhosted.org/packages/63/ef/d972ce3d92ae05c9091363cf185e8646933f91c376e97b8be79ea6e96c22/pynacl-1.6.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a25cfede801f01e54179b8ff9514bd7b5944da560b7040939732d1804d25419", size = 1362910, upload-time = "2025-09-10T23:39:06.924Z" }, - { url = "https://files.pythonhosted.org/packages/35/2c/ee0b373a1861f66a7ca8bdb999331525615061320dd628527a50ba8e8a60/pynacl-1.6.0-cp38-abi3-win32.whl", hash = "sha256:dcdeb41c22ff3c66eef5e63049abf7639e0db4edee57ba70531fc1b6b133185d", size = 226461, upload-time = "2025-09-10T23:39:11.894Z" }, - { url = "https://files.pythonhosted.org/packages/75/f7/41b6c0b9dd9970173b6acc026bab7b4c187e4e5beef2756d419ad65482da/pynacl-1.6.0-cp38-abi3-win_amd64.whl", hash = "sha256:cf831615cc16ba324240de79d925eacae8265b7691412ac6b24221db157f6bd1", size = 238802, upload-time = "2025-09-10T23:39:08.966Z" }, - { url = "https://files.pythonhosted.org/packages/8e/0f/462326910c6172fa2c6ed07922b22ffc8e77432b3affffd9e18f444dbfbb/pynacl-1.6.0-cp38-abi3-win_arm64.whl", hash = "sha256:84709cea8f888e618c21ed9a0efdb1a59cc63141c403db8bf56c469b71ad56f2", size = 183846, upload-time = "2025-09-10T23:39:10.552Z" }, + { url = "https://files.pythonhosted.org/packages/63/37/87c72df19857c5b3b47ace6f211a26eb862ada495cc96daa372d96048fca/pynacl-1.6.0-cp38-abi3-macosx_10_10_universal2.whl", hash = "sha256:f4b3824920e206b4f52abd7de621ea7a44fd3cb5c8daceb7c3612345dfc54f2e", size = 382610 }, + { url = "https://files.pythonhosted.org/packages/0c/64/3ce958a5817fd3cc6df4ec14441c43fd9854405668d73babccf77f9597a3/pynacl-1.6.0-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:16dd347cdc8ae0b0f6187a2608c0af1c8b7ecbbe6b4a06bff8253c192f696990", size = 798744 }, + { url = "https://files.pythonhosted.org/packages/e4/8a/3f0dd297a0a33fa3739c255feebd0206bb1df0b44c52fbe2caf8e8bc4425/pynacl-1.6.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:16c60daceee88d04f8d41d0a4004a7ed8d9a5126b997efd2933e08e93a3bd850", size = 1397879 }, + { url = "https://files.pythonhosted.org/packages/41/94/028ff0434a69448f61348d50d2c147dda51aabdd4fbc93ec61343332174d/pynacl-1.6.0-cp38-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:25720bad35dfac34a2bcdd61d9e08d6bfc6041bebc7751d9c9f2446cf1e77d64", size = 833907 }, + { url = "https://files.pythonhosted.org/packages/52/bc/a5cff7f8c30d5f4c26a07dfb0bcda1176ab8b2de86dda3106c00a02ad787/pynacl-1.6.0-cp38-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8bfaa0a28a1ab718bad6239979a5a57a8d1506d0caf2fba17e524dbb409441cf", size = 1436649 }, + { url = "https://files.pythonhosted.org/packages/7a/20/c397be374fd5d84295046e398de4ba5f0722dc14450f65db76a43c121471/pynacl-1.6.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ef214b90556bb46a485b7da8258e59204c244b1b5b576fb71848819b468c44a7", size = 817142 }, + { url = "https://files.pythonhosted.org/packages/12/30/5efcef3406940cda75296c6d884090b8a9aad2dcc0c304daebb5ae99fb4a/pynacl-1.6.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:49c336dd80ea54780bcff6a03ee1a476be1612423010472e60af83452aa0f442", size = 1401794 }, + { url = "https://files.pythonhosted.org/packages/be/e1/a8fe1248cc17ccb03b676d80fa90763760a6d1247da434844ea388d0816c/pynacl-1.6.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:f3482abf0f9815e7246d461fab597aa179b7524628a4bc36f86a7dc418d2608d", size = 772161 }, + { url = "https://files.pythonhosted.org/packages/a3/76/8a62702fb657d6d9104ce13449db221a345665d05e6a3fdefb5a7cafd2ad/pynacl-1.6.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:140373378e34a1f6977e573033d1dd1de88d2a5d90ec6958c9485b2fd9f3eb90", size = 1370720 }, + { url = "https://files.pythonhosted.org/packages/6d/38/9e9e9b777a1c4c8204053733e1a0269672c0bd40852908c9ad6b6eaba82c/pynacl-1.6.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6b393bc5e5a0eb86bb85b533deb2d2c815666665f840a09e0aa3362bb6088736", size = 791252 }, + { url = "https://files.pythonhosted.org/packages/63/ef/d972ce3d92ae05c9091363cf185e8646933f91c376e97b8be79ea6e96c22/pynacl-1.6.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a25cfede801f01e54179b8ff9514bd7b5944da560b7040939732d1804d25419", size = 1362910 }, + { url = "https://files.pythonhosted.org/packages/35/2c/ee0b373a1861f66a7ca8bdb999331525615061320dd628527a50ba8e8a60/pynacl-1.6.0-cp38-abi3-win32.whl", hash = "sha256:dcdeb41c22ff3c66eef5e63049abf7639e0db4edee57ba70531fc1b6b133185d", size = 226461 }, + { url = "https://files.pythonhosted.org/packages/75/f7/41b6c0b9dd9970173b6acc026bab7b4c187e4e5beef2756d419ad65482da/pynacl-1.6.0-cp38-abi3-win_amd64.whl", hash = "sha256:cf831615cc16ba324240de79d925eacae8265b7691412ac6b24221db157f6bd1", size = 238802 }, + { url = "https://files.pythonhosted.org/packages/8e/0f/462326910c6172fa2c6ed07922b22ffc8e77432b3affffd9e18f444dbfbb/pynacl-1.6.0-cp38-abi3-win_arm64.whl", hash = "sha256:84709cea8f888e618c21ed9a0efdb1a59cc63141c403db8bf56c469b71ad56f2", size = 183846 }, ] [[package]] @@ -1923,36 +1823,36 @@ dependencies = [ { name = "cryptography" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/8c/cd89ad05804f8e3c17dea8f178c3f40eeab5694c30e0c9f5bcd49f576fc3/pyopenssl-25.1.0.tar.gz", hash = "sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b", size = 179937, upload-time = "2025-05-17T16:28:31.31Z" } +sdist = { url = "https://files.pythonhosted.org/packages/04/8c/cd89ad05804f8e3c17dea8f178c3f40eeab5694c30e0c9f5bcd49f576fc3/pyopenssl-25.1.0.tar.gz", hash = "sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b", size = 179937 } wheels = [ - { url = "https://files.pythonhosted.org/packages/80/28/2659c02301b9500751f8d42f9a6632e1508aa5120de5e43042b8b30f8d5d/pyopenssl-25.1.0-py3-none-any.whl", hash = "sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab", size = 56771, upload-time = "2025-05-17T16:28:29.197Z" }, + { url = "https://files.pythonhosted.org/packages/80/28/2659c02301b9500751f8d42f9a6632e1508aa5120de5e43042b8b30f8d5d/pyopenssl-25.1.0-py3-none-any.whl", hash = "sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab", size = 56771 }, ] [[package]] name = "pyparsing" version = "3.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be", size = 1088608, upload-time = "2025-03-25T05:01:28.114Z" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be", size = 1088608 } wheels = [ - { url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120, upload-time = "2025-03-25T05:01:24.908Z" }, + { url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120 }, ] [[package]] name = "pyproject-hooks" version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228, upload-time = "2024-09-29T09:24:13.293Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216, upload-time = "2024-09-29T09:24:11.978Z" }, + { url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216 }, ] [[package]] name = "pyreadline3" version = "3.5.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz", hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7", size = 99839, upload-time = "2024-09-19T02:40:10.062Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz", hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7", size = 99839 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178, upload-time = "2024-09-19T02:40:08.598Z" }, + { url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178 }, ] [[package]] @@ -1966,9 +1866,9 @@ dependencies = [ { name = "pluggy" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750, upload-time = "2025-09-04T14:34:20.226Z" }, + { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750 }, ] [[package]] @@ -1978,18 +1878,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, ] [[package]] name = "python-statemachine" version = "2.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/45/91/4f05f3931d1e9b1df71b17dc08c43feddf2bed7dbf13f95323df2cc8e340/python_statemachine-2.5.0.tar.gz", hash = "sha256:ae88cd22e47930b92b983a2176e61d811e571b69897be2568ec812c2885fb93a", size = 403718, upload-time = "2024-12-03T17:58:49.833Z" } +sdist = { url = "https://files.pythonhosted.org/packages/45/91/4f05f3931d1e9b1df71b17dc08c43feddf2bed7dbf13f95323df2cc8e340/python_statemachine-2.5.0.tar.gz", hash = "sha256:ae88cd22e47930b92b983a2176e61d811e571b69897be2568ec812c2885fb93a", size = 403718 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2d/1c95ebe84df60d630f8e855d1df2c66368805444ac167e9b50f29eabe917/python_statemachine-2.5.0-py3-none-any.whl", hash = "sha256:0ed53846802c17037fcb2a92323f4bc0c833290fa9d17a3587c50886c1541e62", size = 50415, upload-time = "2024-12-03T17:58:47.375Z" }, + { url = "https://files.pythonhosted.org/packages/bf/2d/1c95ebe84df60d630f8e855d1df2c66368805444ac167e9b50f29eabe917/python_statemachine-2.5.0-py3-none-any.whl", hash = "sha256:0ed53846802c17037fcb2a92323f4bc0c833290fa9d17a3587c50886c1541e62", size = 50415 }, ] [[package]] @@ -1997,35 +1897,35 @@ name = "pywin32" version = "311" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, - { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, - { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543 }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040 }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102 }, ] [[package]] name = "pyxdg" version = "0.28" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/25/7998cd2dec731acbd438fbf91bc619603fc5188de0a9a17699a781840452/pyxdg-0.28.tar.gz", hash = "sha256:3267bb3074e934df202af2ee0868575484108581e6f3cb006af1da35395e88b4", size = 77776, upload-time = "2022-06-05T11:35:01Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/25/7998cd2dec731acbd438fbf91bc619603fc5188de0a9a17699a781840452/pyxdg-0.28.tar.gz", hash = "sha256:3267bb3074e934df202af2ee0868575484108581e6f3cb006af1da35395e88b4", size = 77776 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/8d/cf41b66a8110670e3ad03dab9b759704eeed07fa96e90fdc0357b2ba70e2/pyxdg-0.28-py2.py3-none-any.whl", hash = "sha256:bdaf595999a0178ecea4052b7f4195569c1ff4d344567bccdc12dfdf02d545ab", size = 49520, upload-time = "2022-06-05T11:34:58.832Z" }, + { url = "https://files.pythonhosted.org/packages/e5/8d/cf41b66a8110670e3ad03dab9b759704eeed07fa96e90fdc0357b2ba70e2/pyxdg-0.28-py2.py3-none-any.whl", hash = "sha256:bdaf595999a0178ecea4052b7f4195569c1ff4d344567bccdc12dfdf02d545ab", size = 49520 }, ] [[package]] name = "pyyaml" version = "6.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873, upload-time = "2024-08-06T20:32:25.131Z" }, - { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302, upload-time = "2024-08-06T20:32:26.511Z" }, - { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154, upload-time = "2024-08-06T20:32:28.363Z" }, - { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223, upload-time = "2024-08-06T20:32:30.058Z" }, - { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542, upload-time = "2024-08-06T20:32:31.881Z" }, - { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164, upload-time = "2024-08-06T20:32:37.083Z" }, - { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611, upload-time = "2024-08-06T20:32:38.898Z" }, - { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591, upload-time = "2024-08-06T20:32:40.241Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338, upload-time = "2024-08-06T20:32:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, ] [[package]] @@ -2035,18 +1935,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "implementation_name == 'pypy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750 } wheels = [ - { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, - { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, - { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, - { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, - { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, - { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, - { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, - { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, - { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, - { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279 }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645 }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574 }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995 }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070 }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121 }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550 }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184 }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480 }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993 }, ] [[package]] @@ -2058,9 +1958,9 @@ dependencies = [ { name = "rpds-py" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload-time = "2025-01-25T08:48:16.138Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload-time = "2025-01-25T08:48:14.241Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775 }, ] [[package]] @@ -2073,9 +1973,9 @@ dependencies = [ { name = "idna" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258, upload-time = "2025-06-09T16:43:07.34Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258 } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" }, + { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847 }, ] [[package]] @@ -2086,9 +1986,9 @@ dependencies = [ { name = "decorator" }, { name = "py" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/72/75d0b85443fbc8d9f38d08d2b1b67cc184ce35280e4a3813cda2f445f3a4/retry-0.9.2.tar.gz", hash = "sha256:f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4", size = 6448, upload-time = "2016-05-11T13:58:51.541Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/72/75d0b85443fbc8d9f38d08d2b1b67cc184ce35280e4a3813cda2f445f3a4/retry-0.9.2.tar.gz", hash = "sha256:f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4", size = 6448 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4b/0d/53aea75710af4528a25ed6837d71d117602b01946b307a3912cb3cfcbcba/retry-0.9.2-py2.py3-none-any.whl", hash = "sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606", size = 7986, upload-time = "2016-05-11T13:58:39.925Z" }, + { url = "https://files.pythonhosted.org/packages/4b/0d/53aea75710af4528a25ed6837d71d117602b01946b307a3912cb3cfcbcba/retry-0.9.2-py2.py3-none-any.whl", hash = "sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606", size = 7986 }, ] [[package]] @@ -2099,32 +1999,32 @@ dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/92/76/40f084cb7db51c9d1fa29a7120717892aeda9a7711f6225692c957a93535/rich-13.8.1.tar.gz", hash = "sha256:8260cda28e3db6bf04d2d1ef4dbc03ba80a824c88b0e7668a0f23126a424844a", size = 222080, upload-time = "2024-09-10T12:52:44.779Z" } +sdist = { url = "https://files.pythonhosted.org/packages/92/76/40f084cb7db51c9d1fa29a7120717892aeda9a7711f6225692c957a93535/rich-13.8.1.tar.gz", hash = "sha256:8260cda28e3db6bf04d2d1ef4dbc03ba80a824c88b0e7668a0f23126a424844a", size = 222080 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/11/dadb85e2bd6b1f1ae56669c3e1f0410797f9605d752d68fb47b77f525b31/rich-13.8.1-py3-none-any.whl", hash = "sha256:1760a3c0848469b97b558fc61c85233e3dafb69c7a071b4d60c38099d3cd4c06", size = 241608, upload-time = "2024-09-10T12:52:42.714Z" }, + { url = "https://files.pythonhosted.org/packages/b0/11/dadb85e2bd6b1f1ae56669c3e1f0410797f9605d752d68fb47b77f525b31/rich-13.8.1-py3-none-any.whl", hash = "sha256:1760a3c0848469b97b558fc61c85233e3dafb69c7a071b4d60c38099d3cd4c06", size = 241608 }, ] [[package]] name = "rpds-py" version = "0.27.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e9/dd/2c0cbe774744272b0ae725f44032c77bdcab6e8bcf544bffa3b6e70c8dba/rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8", size = 27479, upload-time = "2025-08-27T12:16:36.024Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e9/dd/2c0cbe774744272b0ae725f44032c77bdcab6e8bcf544bffa3b6e70c8dba/rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8", size = 27479 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/fe/38de28dee5df58b8198c743fe2bea0c785c6d40941b9950bac4cdb71a014/rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90", size = 361887, upload-time = "2025-08-27T12:13:10.233Z" }, - { url = "https://files.pythonhosted.org/packages/7c/9a/4b6c7eedc7dd90986bf0fab6ea2a091ec11c01b15f8ba0a14d3f80450468/rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5", size = 345795, upload-time = "2025-08-27T12:13:11.65Z" }, - { url = "https://files.pythonhosted.org/packages/6f/0e/e650e1b81922847a09cca820237b0edee69416a01268b7754d506ade11ad/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e", size = 385121, upload-time = "2025-08-27T12:13:13.008Z" }, - { url = "https://files.pythonhosted.org/packages/1b/ea/b306067a712988e2bff00dcc7c8f31d26c29b6d5931b461aa4b60a013e33/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881", size = 398976, upload-time = "2025-08-27T12:13:14.368Z" }, - { url = "https://files.pythonhosted.org/packages/2c/0a/26dc43c8840cb8fe239fe12dbc8d8de40f2365e838f3d395835dde72f0e5/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec", size = 525953, upload-time = "2025-08-27T12:13:15.774Z" }, - { url = "https://files.pythonhosted.org/packages/22/14/c85e8127b573aaf3a0cbd7fbb8c9c99e735a4a02180c84da2a463b766e9e/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb", size = 407915, upload-time = "2025-08-27T12:13:17.379Z" }, - { url = "https://files.pythonhosted.org/packages/ed/7b/8f4fee9ba1fb5ec856eb22d725a4efa3deb47f769597c809e03578b0f9d9/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5", size = 386883, upload-time = "2025-08-27T12:13:18.704Z" }, - { url = "https://files.pythonhosted.org/packages/86/47/28fa6d60f8b74fcdceba81b272f8d9836ac0340570f68f5df6b41838547b/rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a", size = 405699, upload-time = "2025-08-27T12:13:20.089Z" }, - { url = "https://files.pythonhosted.org/packages/d0/fd/c5987b5e054548df56953a21fe2ebed51fc1ec7c8f24fd41c067b68c4a0a/rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444", size = 423713, upload-time = "2025-08-27T12:13:21.436Z" }, - { url = "https://files.pythonhosted.org/packages/ac/ba/3c4978b54a73ed19a7d74531be37a8bcc542d917c770e14d372b8daea186/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a", size = 562324, upload-time = "2025-08-27T12:13:22.789Z" }, - { url = "https://files.pythonhosted.org/packages/b5/6c/6943a91768fec16db09a42b08644b960cff540c66aab89b74be6d4a144ba/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1", size = 593646, upload-time = "2025-08-27T12:13:24.122Z" }, - { url = "https://files.pythonhosted.org/packages/11/73/9d7a8f4be5f4396f011a6bb7a19fe26303a0dac9064462f5651ced2f572f/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998", size = 558137, upload-time = "2025-08-27T12:13:25.557Z" }, - { url = "https://files.pythonhosted.org/packages/6e/96/6772cbfa0e2485bcceef8071de7821f81aeac8bb45fbfd5542a3e8108165/rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39", size = 221343, upload-time = "2025-08-27T12:13:26.967Z" }, - { url = "https://files.pythonhosted.org/packages/67/b6/c82f0faa9af1c6a64669f73a17ee0eeef25aff30bb9a1c318509efe45d84/rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594", size = 232497, upload-time = "2025-08-27T12:13:28.326Z" }, - { url = "https://files.pythonhosted.org/packages/e1/96/2817b44bd2ed11aebacc9251da03689d56109b9aba5e311297b6902136e2/rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502", size = 222790, upload-time = "2025-08-27T12:13:29.71Z" }, + { url = "https://files.pythonhosted.org/packages/bd/fe/38de28dee5df58b8198c743fe2bea0c785c6d40941b9950bac4cdb71a014/rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90", size = 361887 }, + { url = "https://files.pythonhosted.org/packages/7c/9a/4b6c7eedc7dd90986bf0fab6ea2a091ec11c01b15f8ba0a14d3f80450468/rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5", size = 345795 }, + { url = "https://files.pythonhosted.org/packages/6f/0e/e650e1b81922847a09cca820237b0edee69416a01268b7754d506ade11ad/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e", size = 385121 }, + { url = "https://files.pythonhosted.org/packages/1b/ea/b306067a712988e2bff00dcc7c8f31d26c29b6d5931b461aa4b60a013e33/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881", size = 398976 }, + { url = "https://files.pythonhosted.org/packages/2c/0a/26dc43c8840cb8fe239fe12dbc8d8de40f2365e838f3d395835dde72f0e5/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec", size = 525953 }, + { url = "https://files.pythonhosted.org/packages/22/14/c85e8127b573aaf3a0cbd7fbb8c9c99e735a4a02180c84da2a463b766e9e/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb", size = 407915 }, + { url = "https://files.pythonhosted.org/packages/ed/7b/8f4fee9ba1fb5ec856eb22d725a4efa3deb47f769597c809e03578b0f9d9/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5", size = 386883 }, + { url = "https://files.pythonhosted.org/packages/86/47/28fa6d60f8b74fcdceba81b272f8d9836ac0340570f68f5df6b41838547b/rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a", size = 405699 }, + { url = "https://files.pythonhosted.org/packages/d0/fd/c5987b5e054548df56953a21fe2ebed51fc1ec7c8f24fd41c067b68c4a0a/rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444", size = 423713 }, + { url = "https://files.pythonhosted.org/packages/ac/ba/3c4978b54a73ed19a7d74531be37a8bcc542d917c770e14d372b8daea186/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a", size = 562324 }, + { url = "https://files.pythonhosted.org/packages/b5/6c/6943a91768fec16db09a42b08644b960cff540c66aab89b74be6d4a144ba/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1", size = 593646 }, + { url = "https://files.pythonhosted.org/packages/11/73/9d7a8f4be5f4396f011a6bb7a19fe26303a0dac9064462f5651ced2f572f/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998", size = 558137 }, + { url = "https://files.pythonhosted.org/packages/6e/96/6772cbfa0e2485bcceef8071de7821f81aeac8bb45fbfd5542a3e8108165/rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39", size = 221343 }, + { url = "https://files.pythonhosted.org/packages/67/b6/c82f0faa9af1c6a64669f73a17ee0eeef25aff30bb9a1c318509efe45d84/rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594", size = 232497 }, + { url = "https://files.pythonhosted.org/packages/e1/96/2817b44bd2ed11aebacc9251da03689d56109b9aba5e311297b6902136e2/rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502", size = 222790 }, ] [[package]] @@ -2134,9 +2034,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/62/74/8d69dcb7a9efe8baa2046891735e5dfe433ad558ae23d9e3c14c633d1d58/s3transfer-0.14.0.tar.gz", hash = "sha256:eff12264e7c8b4985074ccce27a3b38a485bb7f7422cc8046fee9be4983e4125", size = 151547, upload-time = "2025-09-09T19:23:31.089Z" } +sdist = { url = "https://files.pythonhosted.org/packages/62/74/8d69dcb7a9efe8baa2046891735e5dfe433ad558ae23d9e3c14c633d1d58/s3transfer-0.14.0.tar.gz", hash = "sha256:eff12264e7c8b4985074ccce27a3b38a485bb7f7422cc8046fee9be4983e4125", size = 151547 } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/f0/ae7ca09223a81a1d890b2557186ea015f6e0502e9b8cb8e1813f1d8cfa4e/s3transfer-0.14.0-py3-none-any.whl", hash = "sha256:ea3b790c7077558ed1f02a3072fb3cb992bbbd253392f4b6e9e8976941c7d456", size = 85712, upload-time = "2025-09-09T19:23:30.041Z" }, + { url = "https://files.pythonhosted.org/packages/48/f0/ae7ca09223a81a1d890b2557186ea015f6e0502e9b8cb8e1813f1d8cfa4e/s3transfer-0.14.0-py3-none-any.whl", hash = "sha256:ea3b790c7077558ed1f02a3072fb3cb992bbbd253392f4b6e9e8976941c7d456", size = 85712 }, ] [[package]] @@ -2148,9 +2048,9 @@ dependencies = [ { name = "more-itertools" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bc/7c/703893e7a8751318517a3dd8c0c060b2c30ffa33f4ab5dd6a4ed483f7967/scalecodec-1.2.11.tar.gz", hash = "sha256:99a2cdbfccdcaf22bd86b86da55a730a2855514ad2309faef4a4a93ac6cbeb8d", size = 150260, upload-time = "2024-07-05T11:48:46.146Z" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/7c/703893e7a8751318517a3dd8c0c060b2c30ffa33f4ab5dd6a4ed483f7967/scalecodec-1.2.11.tar.gz", hash = "sha256:99a2cdbfccdcaf22bd86b86da55a730a2855514ad2309faef4a4a93ac6cbeb8d", size = 150260 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/60/2a903fa9ed3dfc842240da22969a25b16ea213ed3ee25b7ba8ae1cba20c7/scalecodec-1.2.11-py3-none-any.whl", hash = "sha256:d15c94965f617caa25096f83a45f5f73031d05e6ee08d6039969f0a64fc35de1", size = 99164, upload-time = "2024-07-05T11:48:42.777Z" }, + { url = "https://files.pythonhosted.org/packages/bb/60/2a903fa9ed3dfc842240da22969a25b16ea213ed3ee25b7ba8ae1cba20c7/scalecodec-1.2.11-py3-none-any.whl", hash = "sha256:d15c94965f617caa25096f83a45f5f73031d05e6ee08d6039969f0a64fc35de1", size = 99164 }, ] [[package]] @@ -2160,18 +2060,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4c/3b/546a6f0bfe791bbb7f8d591613454d15097e53f906308ec6f7c1ce588e8e/scipy-1.16.2.tar.gz", hash = "sha256:af029b153d243a80afb6eabe40b0a07f8e35c9adc269c019f364ad747f826a6b", size = 30580599, upload-time = "2025-09-11T17:48:08.271Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/3b/546a6f0bfe791bbb7f8d591613454d15097e53f906308ec6f7c1ce588e8e/scipy-1.16.2.tar.gz", hash = "sha256:af029b153d243a80afb6eabe40b0a07f8e35c9adc269c019f364ad747f826a6b", size = 30580599 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/8d/6396e00db1282279a4ddd507c5f5e11f606812b608ee58517ce8abbf883f/scipy-1.16.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:89d6c100fa5c48472047632e06f0876b3c4931aac1f4291afc81a3644316bb0d", size = 36646259, upload-time = "2025-09-11T17:40:39.329Z" }, - { url = "https://files.pythonhosted.org/packages/3b/93/ea9edd7e193fceb8eef149804491890bde73fb169c896b61aa3e2d1e4e77/scipy-1.16.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ca748936cd579d3f01928b30a17dc474550b01272d8046e3e1ee593f23620371", size = 28888976, upload-time = "2025-09-11T17:40:46.82Z" }, - { url = "https://files.pythonhosted.org/packages/91/4d/281fddc3d80fd738ba86fd3aed9202331180b01e2c78eaae0642f22f7e83/scipy-1.16.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:fac4f8ce2ddb40e2e3d0f7ec36d2a1e7f92559a2471e59aec37bd8d9de01fec0", size = 20879905, upload-time = "2025-09-11T17:40:52.545Z" }, - { url = "https://files.pythonhosted.org/packages/69/40/b33b74c84606fd301b2915f0062e45733c6ff5708d121dd0deaa8871e2d0/scipy-1.16.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:033570f1dcefd79547a88e18bccacff025c8c647a330381064f561d43b821232", size = 23553066, upload-time = "2025-09-11T17:40:59.014Z" }, - { url = "https://files.pythonhosted.org/packages/55/a7/22c739e2f21a42cc8f16bc76b47cff4ed54fbe0962832c589591c2abec34/scipy-1.16.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ea3421209bf00c8a5ef2227de496601087d8f638a2363ee09af059bd70976dc1", size = 33336407, upload-time = "2025-09-11T17:41:06.796Z" }, - { url = "https://files.pythonhosted.org/packages/53/11/a0160990b82999b45874dc60c0c183d3a3a969a563fffc476d5a9995c407/scipy-1.16.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f66bd07ba6f84cd4a380b41d1bf3c59ea488b590a2ff96744845163309ee8e2f", size = 35673281, upload-time = "2025-09-11T17:41:15.055Z" }, - { url = "https://files.pythonhosted.org/packages/96/53/7ef48a4cfcf243c3d0f1643f5887c81f29fdf76911c4e49331828e19fc0a/scipy-1.16.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e9feab931bd2aea4a23388c962df6468af3d808ddf2d40f94a81c5dc38f32ef", size = 36004222, upload-time = "2025-09-11T17:41:23.868Z" }, - { url = "https://files.pythonhosted.org/packages/49/7f/71a69e0afd460049d41c65c630c919c537815277dfea214031005f474d78/scipy-1.16.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03dfc75e52f72cf23ec2ced468645321407faad8f0fe7b1f5b49264adbc29cb1", size = 38664586, upload-time = "2025-09-11T17:41:31.021Z" }, - { url = "https://files.pythonhosted.org/packages/34/95/20e02ca66fb495a95fba0642fd48e0c390d0ece9b9b14c6e931a60a12dea/scipy-1.16.2-cp312-cp312-win_amd64.whl", hash = "sha256:0ce54e07bbb394b417457409a64fd015be623f36e330ac49306433ffe04bc97e", size = 38550641, upload-time = "2025-09-11T17:41:36.61Z" }, - { url = "https://files.pythonhosted.org/packages/92/ad/13646b9beb0a95528ca46d52b7babafbe115017814a611f2065ee4e61d20/scipy-1.16.2-cp312-cp312-win_arm64.whl", hash = "sha256:2a8ffaa4ac0df81a0b94577b18ee079f13fecdb924df3328fc44a7dc5ac46851", size = 25456070, upload-time = "2025-09-11T17:41:41.3Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8d/6396e00db1282279a4ddd507c5f5e11f606812b608ee58517ce8abbf883f/scipy-1.16.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:89d6c100fa5c48472047632e06f0876b3c4931aac1f4291afc81a3644316bb0d", size = 36646259 }, + { url = "https://files.pythonhosted.org/packages/3b/93/ea9edd7e193fceb8eef149804491890bde73fb169c896b61aa3e2d1e4e77/scipy-1.16.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ca748936cd579d3f01928b30a17dc474550b01272d8046e3e1ee593f23620371", size = 28888976 }, + { url = "https://files.pythonhosted.org/packages/91/4d/281fddc3d80fd738ba86fd3aed9202331180b01e2c78eaae0642f22f7e83/scipy-1.16.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:fac4f8ce2ddb40e2e3d0f7ec36d2a1e7f92559a2471e59aec37bd8d9de01fec0", size = 20879905 }, + { url = "https://files.pythonhosted.org/packages/69/40/b33b74c84606fd301b2915f0062e45733c6ff5708d121dd0deaa8871e2d0/scipy-1.16.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:033570f1dcefd79547a88e18bccacff025c8c647a330381064f561d43b821232", size = 23553066 }, + { url = "https://files.pythonhosted.org/packages/55/a7/22c739e2f21a42cc8f16bc76b47cff4ed54fbe0962832c589591c2abec34/scipy-1.16.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ea3421209bf00c8a5ef2227de496601087d8f638a2363ee09af059bd70976dc1", size = 33336407 }, + { url = "https://files.pythonhosted.org/packages/53/11/a0160990b82999b45874dc60c0c183d3a3a969a563fffc476d5a9995c407/scipy-1.16.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f66bd07ba6f84cd4a380b41d1bf3c59ea488b590a2ff96744845163309ee8e2f", size = 35673281 }, + { url = "https://files.pythonhosted.org/packages/96/53/7ef48a4cfcf243c3d0f1643f5887c81f29fdf76911c4e49331828e19fc0a/scipy-1.16.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e9feab931bd2aea4a23388c962df6468af3d808ddf2d40f94a81c5dc38f32ef", size = 36004222 }, + { url = "https://files.pythonhosted.org/packages/49/7f/71a69e0afd460049d41c65c630c919c537815277dfea214031005f474d78/scipy-1.16.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03dfc75e52f72cf23ec2ced468645321407faad8f0fe7b1f5b49264adbc29cb1", size = 38664586 }, + { url = "https://files.pythonhosted.org/packages/34/95/20e02ca66fb495a95fba0642fd48e0c390d0ece9b9b14c6e931a60a12dea/scipy-1.16.2-cp312-cp312-win_amd64.whl", hash = "sha256:0ce54e07bbb394b417457409a64fd015be623f36e330ac49306433ffe04bc97e", size = 38550641 }, + { url = "https://files.pythonhosted.org/packages/92/ad/13646b9beb0a95528ca46d52b7babafbe115017814a611f2065ee4e61d20/scipy-1.16.2-cp312-cp312-win_arm64.whl", hash = "sha256:2a8ffaa4ac0df81a0b94577b18ee079f13fecdb924df3328fc44a7dc5ac46851", size = 25456070 }, ] [[package]] @@ -2182,45 +2082,45 @@ dependencies = [ { name = "certifi" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/78/be/ffc232c32d0be18f8e4eff7a22dffc1f1fef2894703d64cc281a80e75da6/sentry_sdk-2.37.1.tar.gz", hash = "sha256:531751da91aa62a909b42a7be155b41f6bb0de9df6ae98441d23b95de2f98475", size = 346235, upload-time = "2025-09-09T13:48:27.137Z" } +sdist = { url = "https://files.pythonhosted.org/packages/78/be/ffc232c32d0be18f8e4eff7a22dffc1f1fef2894703d64cc281a80e75da6/sentry_sdk-2.37.1.tar.gz", hash = "sha256:531751da91aa62a909b42a7be155b41f6bb0de9df6ae98441d23b95de2f98475", size = 346235 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/c3/cba447ab531331d165d9003c04473be944a308ad916ca2345b5ef1969ed9/sentry_sdk-2.37.1-py2.py3-none-any.whl", hash = "sha256:baaaea6608ed3a639766a69ded06b254b106d32ad9d180bdbe58f3db9364592b", size = 368307, upload-time = "2025-09-09T13:48:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c3/cba447ab531331d165d9003c04473be944a308ad916ca2345b5ef1969ed9/sentry_sdk-2.37.1-py2.py3-none-any.whl", hash = "sha256:baaaea6608ed3a639766a69ded06b254b106d32ad9d180bdbe58f3db9364592b", size = 368307 }, ] [[package]] name = "setuptools" version = "70.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/60/5db2249526c9b453c5bb8b9f6965fcab0ddb7f40ad734420b3b421f7da44/setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0", size = 2265182, upload-time = "2024-05-21T10:28:18.891Z" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/60/5db2249526c9b453c5bb8b9f6965fcab0ddb7f40ad734420b3b421f7da44/setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0", size = 2265182 } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/88/70c5767a0e43eb4451c2200f07d042a4bcd7639276003a9c54a68cfcc1f8/setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4", size = 863432, upload-time = "2024-05-21T10:28:12.781Z" }, + { url = "https://files.pythonhosted.org/packages/de/88/70c5767a0e43eb4451c2200f07d042a4bcd7639276003a9c54a68cfcc1f8/setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4", size = 863432 }, ] [[package]] name = "six" version = "1.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, ] [[package]] name = "smmap" version = "5.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329 } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, + { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303 }, ] [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, ] [[package]] @@ -2233,9 +2133,9 @@ dependencies = [ { name = "executing" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/67/70/8479d19ec0441279e773521928ad7cad91901c1a3eaf1fc3a0eb92e3cf6e/snoop-0.6.0.tar.gz", hash = "sha256:c615eddf84d8907f893dec7fde38768aa4b1d88d92d63055b6cfc07e5cde37ec", size = 95968, upload-time = "2024-10-06T20:31:03.935Z" } +sdist = { url = "https://files.pythonhosted.org/packages/67/70/8479d19ec0441279e773521928ad7cad91901c1a3eaf1fc3a0eb92e3cf6e/snoop-0.6.0.tar.gz", hash = "sha256:c615eddf84d8907f893dec7fde38768aa4b1d88d92d63055b6cfc07e5cde37ec", size = 95968 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/93/84a16940c44f6ec62cf334f25aed3128a514dffc361397eee09421a1c7f2/snoop-0.6.0-py3-none-any.whl", hash = "sha256:f5ea9060e65594bf404e6841086b4a964cc27bc30569109c91a470f948b0f729", size = 27461, upload-time = "2024-10-06T20:31:02.199Z" }, + { url = "https://files.pythonhosted.org/packages/a5/93/84a16940c44f6ec62cf334f25aed3128a514dffc361397eee09421a1c7f2/snoop-0.6.0-py3-none-any.whl", hash = "sha256:f5ea9060e65594bf404e6841086b4a964cc27bc30569109c91a470f948b0f729", size = 27461 }, ] [[package]] @@ -2247,9 +2147,9 @@ dependencies = [ { name = "executing" }, { name = "pure-eval" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521 }, ] [[package]] @@ -2259,9 +2159,114 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/61/b5/6bceb93ff20bd7ca36e6f7c540581abb18f53130fabb30ba526e26fd819b/starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823", size = 2843736, upload-time = "2024-03-05T16:16:54.267Z" } +sdist = { url = "https://files.pythonhosted.org/packages/61/b5/6bceb93ff20bd7ca36e6f7c540581abb18f53130fabb30ba526e26fd819b/starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823", size = 2843736 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/18/31fa32ed6c68ba66220204ef0be798c349d0a20c1901f9d4a794e08c76d8/starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee", size = 71908, upload-time = "2024-03-05T16:16:50.957Z" }, + { url = "https://files.pythonhosted.org/packages/fd/18/31fa32ed6c68ba66220204ef0be798c349d0a20c1901f9d4a794e08c76d8/starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee", size = 71908 }, +] + +[[package]] +name = "subnet-2" +source = { editable = "." } +dependencies = [ + { name = "aiohttp" }, + { name = "async-substrate-interface" }, + { name = "attrs" }, + { name = "bittensor" }, + { name = "boto3" }, + { name = "botocore" }, + { name = "dsperse" }, + { name = "ezkl" }, + { name = "fastapi" }, + { name = "gitpython" }, + { name = "httpx" }, + { name = "jsonrpcserver" }, + { name = "matplotlib" }, + { name = "numpy" }, + { name = "onnxruntime" }, + { name = "opencv-contrib-python-headless" }, + { name = "opencv-python" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "prometheus-client" }, + { name = "proof-of-portfolio" }, + { name = "protobuf" }, + { name = "psutil" }, + { name = "pydantic" }, + { name = "pyopenssl" }, + { name = "requests" }, + { name = "rich" }, + { name = "substrate-interface" }, + { name = "torch", version = "2.7.1", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" }, + { name = "torch", version = "2.7.1+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" }, + { name = "tqdm" }, + { name = "urllib3" }, + { name = "uvicorn" }, + { name = "wandb" }, + { name = "websocket-client" }, +] + +[package.dev-dependencies] +dev = [ + { name = "black" }, + { name = "bpython" }, + { name = "debugpy" }, + { name = "ipykernel" }, + { name = "nbdev" }, + { name = "onnx" }, + { name = "pytest" }, + { name = "snoop" }, + { name = "tach" }, +] + +[package.metadata] +requires-dist = [ + { name = "aiohttp", specifier = ">=3.10.11" }, + { name = "async-substrate-interface", specifier = ">=1.0.8" }, + { name = "attrs", specifier = "==24.3.0" }, + { name = "bittensor", specifier = "==9.9.0" }, + { name = "boto3", specifier = ">=1.36.13" }, + { name = "botocore", specifier = ">=1.37.19" }, + { name = "dsperse", git = "https://github.com/inference-labs-inc/dsperse.git?rev=dsperse-integration" }, + { name = "ezkl", specifier = "==22.2.1" }, + { name = "fastapi", specifier = "==0.110.3" }, + { name = "gitpython", specifier = ">=3.1.44" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "jsonrpcserver", specifier = ">=5.0.9" }, + { name = "matplotlib", specifier = ">=3.10.1" }, + { name = "numpy", specifier = "~=2.2.3" }, + { name = "onnxruntime", specifier = ">=1.21.0" }, + { name = "opencv-contrib-python-headless", specifier = ">=4.11.0.86" }, + { name = "opencv-python", specifier = ">=4.11.0.86" }, + { name = "packaging", specifier = "==24.2" }, + { name = "pillow", specifier = ">=11.3.0" }, + { name = "prometheus-client", specifier = "==0.21.1" }, + { name = "proof-of-portfolio", specifier = ">=0.0.127" }, + { name = "protobuf", specifier = ">=5.29.5" }, + { name = "psutil", specifier = "==6.1.1" }, + { name = "pydantic", specifier = "==2.10.6" }, + { name = "pyopenssl", specifier = ">=25.0.0" }, + { name = "requests", specifier = "==2.32.4" }, + { name = "rich", specifier = "==13.8.1" }, + { name = "substrate-interface", specifier = ">=1.7.11" }, + { name = "torch", specifier = "==2.7.1", index = "https://download.pytorch.org/whl/cpu" }, + { name = "tqdm", specifier = ">=4.67.1" }, + { name = "urllib3", specifier = ">=2.3.0" }, + { name = "uvicorn", specifier = "==0.34.0" }, + { name = "wandb", specifier = "==0.21.0" }, + { name = "websocket-client", specifier = ">=1.8.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "black", specifier = ">=24.10.0" }, + { name = "bpython", specifier = ">=0.25" }, + { name = "debugpy", specifier = ">=1.8.13" }, + { name = "ipykernel", specifier = ">=6.29.5" }, + { name = "nbdev", specifier = ">=2.3.34" }, + { name = "onnx", specifier = ">=1.17.0" }, + { name = "pytest", specifier = ">=8.4.1" }, + { name = "snoop", specifier = ">=0.6.0" }, + { name = "tach", specifier = ">=0.27.2" }, ] [[package]] @@ -2285,9 +2290,9 @@ dependencies = [ { name = "websocket-client" }, { name = "xxhash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7a/44/825433c906bdb69ab66fd3967c11fcfbcd953241e9d6257fd6a21c4cdc76/substrate-interface-1.7.11.tar.gz", hash = "sha256:4caa5eacb9996edbe76ad12249521b3542bbd8d9d69b96734087201db1fef8f6", size = 79221, upload-time = "2024-10-07T20:37:11.986Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7a/44/825433c906bdb69ab66fd3967c11fcfbcd953241e9d6257fd6a21c4cdc76/substrate-interface-1.7.11.tar.gz", hash = "sha256:4caa5eacb9996edbe76ad12249521b3542bbd8d9d69b96734087201db1fef8f6", size = 79221 } wheels = [ - { url = "https://files.pythonhosted.org/packages/56/e1/37344b7acd260cbfed13563dcbab391c7c4b0c9eca5ec59aba138c5dca9e/substrate_interface-1.7.11-py3-none-any.whl", hash = "sha256:ce19bc97481769238ed23c752db985a3058637918693f2db6aeed2fab3756075", size = 60273, upload-time = "2024-10-07T20:37:10.123Z" }, + { url = "https://files.pythonhosted.org/packages/56/e1/37344b7acd260cbfed13563dcbab391c7c4b0c9eca5ec59aba138c5dca9e/substrate_interface-1.7.11-py3-none-any.whl", hash = "sha256:ce19bc97481769238ed23c752db985a3058637918693f2db6aeed2fab3756075", size = 60273 }, ] [[package]] @@ -2297,9 +2302,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mpmath" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353 }, ] [[package]] @@ -2316,64 +2321,64 @@ dependencies = [ { name = "tomli" }, { name = "tomli-w" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c0/03/71dc08afb67a98f75f338cbe06cafa4d4266a80b5f3192fae73289a38412/tach-0.29.0.tar.gz", hash = "sha256:0b27b9265eee34f396515a2e918fa783d3d02e69edfb6ea1dfd1843d49021429", size = 519881, upload-time = "2025-04-18T23:36:03.836Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/03/71dc08afb67a98f75f338cbe06cafa4d4266a80b5f3192fae73289a38412/tach-0.29.0.tar.gz", hash = "sha256:0b27b9265eee34f396515a2e918fa783d3d02e69edfb6ea1dfd1843d49021429", size = 519881 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/76/1dab7edd475c5a4992caa5c5f62db573c4ba8b8f66908f180063177236e4/tach-0.29.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:517f33d18d381326a775d101650e576c6922db53b2c336192db7db88b9a3521d", size = 3718526, upload-time = "2025-04-18T23:36:01.982Z" }, - { url = "https://files.pythonhosted.org/packages/75/3c/163f18f282dd4d17db3b21f9098f30d94a8bab889e81894b5deeb4648456/tach-0.29.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:d984f54bebba0e4c981d2a08c3e4cdf76c3b5f3126e2f593a0faaed9d218552a", size = 3573882, upload-time = "2025-04-18T23:36:00.142Z" }, - { url = "https://files.pythonhosted.org/packages/1d/f9/30d821984b85ba8a1f60bd00f9025d61e3a69ecbc496fd938df119ce994b/tach-0.29.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42e0bbecf5e8ea23791b62e54e7c8065376e8a7f642a232dcef8bcae0149944e", size = 3882839, upload-time = "2025-04-18T23:35:49.097Z" }, - { url = "https://files.pythonhosted.org/packages/ef/56/859a9911674e052c2aa3d4369a177ab5eb5eb28d5429244b6cbfe0333df1/tach-0.29.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3b40c59e9a1d0b28fc6176736876c4cfa2d01114870d539e9989dfb7c6638139", size = 3821381, upload-time = "2025-04-18T23:35:50.908Z" }, - { url = "https://files.pythonhosted.org/packages/64/67/60b50347aca9ef17f934eb72fe51691062d2acc9142742decc9427a6527a/tach-0.29.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52903e54683b0aa26bd4ef0c9ed68b34480a3fbf83fb7b32e9d6a9908e2761e1", size = 4223977, upload-time = "2025-04-18T23:35:56.519Z" }, - { url = "https://files.pythonhosted.org/packages/4e/f9/99dcef880d9bcd4e707dc92a6ed3058eb61fd6e091aa55623c4699cbf04a/tach-0.29.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:810e5aaa2e936c8417bb91672708886aadaf8ab116763ae418c6b1b961422bba", size = 4153158, upload-time = "2025-04-18T23:35:53.225Z" }, - { url = "https://files.pythonhosted.org/packages/04/33/714a981282178f93443c66e6f225f49981c4275cb9dd522c6d842c4931fb/tach-0.29.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7b8c82943f4ed72612282ff35c155fcca7222b9e9cd2864763b67497729f0c3", size = 4489657, upload-time = "2025-04-18T23:35:54.685Z" }, - { url = "https://files.pythonhosted.org/packages/61/11/58b54ba5a1ec9d7bddcf60016b2bddb9676cf2c201b65c4cfe29876681ce/tach-0.29.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58443cbd3f5d19d6b98cd3508593eae186c91f0e059c8bcf1348e3849095b622", size = 4015722, upload-time = "2025-04-18T23:35:58.314Z" }, - { url = "https://files.pythonhosted.org/packages/68/73/328d8c6b3a84e91a3295eb173df1c702f992af1963f069549c15db07ef37/tach-0.29.0-cp37-abi3-win32.whl", hash = "sha256:d65408ec003ec16bdab4ef61990d7cfc0551672d145a78f80a4aef71e8714b9b", size = 3139905, upload-time = "2025-04-18T23:36:07.24Z" }, - { url = "https://files.pythonhosted.org/packages/6e/cf/6ddbcd4d32204698868e20afd8dcbd88dac1160d5fdf45df921852d27d29/tach-0.29.0-cp37-abi3-win_amd64.whl", hash = "sha256:2e15ceb80fc25435d18e01d10029fec15a54fb53bf6b430d53c4ecb53859a0ff", size = 3378188, upload-time = "2025-04-18T23:36:05.388Z" }, + { url = "https://files.pythonhosted.org/packages/c2/76/1dab7edd475c5a4992caa5c5f62db573c4ba8b8f66908f180063177236e4/tach-0.29.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:517f33d18d381326a775d101650e576c6922db53b2c336192db7db88b9a3521d", size = 3718526 }, + { url = "https://files.pythonhosted.org/packages/75/3c/163f18f282dd4d17db3b21f9098f30d94a8bab889e81894b5deeb4648456/tach-0.29.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:d984f54bebba0e4c981d2a08c3e4cdf76c3b5f3126e2f593a0faaed9d218552a", size = 3573882 }, + { url = "https://files.pythonhosted.org/packages/1d/f9/30d821984b85ba8a1f60bd00f9025d61e3a69ecbc496fd938df119ce994b/tach-0.29.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42e0bbecf5e8ea23791b62e54e7c8065376e8a7f642a232dcef8bcae0149944e", size = 3882839 }, + { url = "https://files.pythonhosted.org/packages/ef/56/859a9911674e052c2aa3d4369a177ab5eb5eb28d5429244b6cbfe0333df1/tach-0.29.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3b40c59e9a1d0b28fc6176736876c4cfa2d01114870d539e9989dfb7c6638139", size = 3821381 }, + { url = "https://files.pythonhosted.org/packages/64/67/60b50347aca9ef17f934eb72fe51691062d2acc9142742decc9427a6527a/tach-0.29.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52903e54683b0aa26bd4ef0c9ed68b34480a3fbf83fb7b32e9d6a9908e2761e1", size = 4223977 }, + { url = "https://files.pythonhosted.org/packages/4e/f9/99dcef880d9bcd4e707dc92a6ed3058eb61fd6e091aa55623c4699cbf04a/tach-0.29.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:810e5aaa2e936c8417bb91672708886aadaf8ab116763ae418c6b1b961422bba", size = 4153158 }, + { url = "https://files.pythonhosted.org/packages/04/33/714a981282178f93443c66e6f225f49981c4275cb9dd522c6d842c4931fb/tach-0.29.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7b8c82943f4ed72612282ff35c155fcca7222b9e9cd2864763b67497729f0c3", size = 4489657 }, + { url = "https://files.pythonhosted.org/packages/61/11/58b54ba5a1ec9d7bddcf60016b2bddb9676cf2c201b65c4cfe29876681ce/tach-0.29.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58443cbd3f5d19d6b98cd3508593eae186c91f0e059c8bcf1348e3849095b622", size = 4015722 }, + { url = "https://files.pythonhosted.org/packages/68/73/328d8c6b3a84e91a3295eb173df1c702f992af1963f069549c15db07ef37/tach-0.29.0-cp37-abi3-win32.whl", hash = "sha256:d65408ec003ec16bdab4ef61990d7cfc0551672d145a78f80a4aef71e8714b9b", size = 3139905 }, + { url = "https://files.pythonhosted.org/packages/6e/cf/6ddbcd4d32204698868e20afd8dcbd88dac1160d5fdf45df921852d27d29/tach-0.29.0-cp37-abi3-win_amd64.whl", hash = "sha256:2e15ceb80fc25435d18e01d10029fec15a54fb53bf6b430d53c4ecb53859a0ff", size = 3378188 }, ] [[package]] name = "toml" version = "0.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b9/19/5cbd78eac8b1783671c40e34bb0fa83133a06d340a38b55c645076d40094/toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c", size = 16719, upload-time = "2018-10-04T02:36:43.524Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b9/19/5cbd78eac8b1783671c40e34bb0fa83133a06d340a38b55c645076d40094/toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c", size = 16719 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/12/ced7105d2de62fa7c8fb5fce92cc4ce66b57c95fb875e9318dba7f8c5db0/toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e", size = 25796, upload-time = "2018-10-04T02:36:40.681Z" }, + { url = "https://files.pythonhosted.org/packages/a2/12/ced7105d2de62fa7c8fb5fce92cc4ce66b57c95fb875e9318dba7f8c5db0/toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e", size = 25796 }, ] [[package]] name = "tomli" version = "2.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175, upload-time = "2024-11-27T22:38:36.873Z" } +sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175 } wheels = [ - { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762, upload-time = "2024-11-27T22:38:07.731Z" }, - { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453, upload-time = "2024-11-27T22:38:09.384Z" }, - { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486, upload-time = "2024-11-27T22:38:10.329Z" }, - { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349, upload-time = "2024-11-27T22:38:11.443Z" }, - { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159, upload-time = "2024-11-27T22:38:13.099Z" }, - { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243, upload-time = "2024-11-27T22:38:14.766Z" }, - { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645, upload-time = "2024-11-27T22:38:15.843Z" }, - { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584, upload-time = "2024-11-27T22:38:17.645Z" }, - { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875, upload-time = "2024-11-27T22:38:19.159Z" }, - { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418, upload-time = "2024-11-27T22:38:20.064Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257, upload-time = "2024-11-27T22:38:35.385Z" }, + { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 }, + { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 }, + { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 }, + { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349 }, + { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159 }, + { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 }, + { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 }, + { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 }, + { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875 }, + { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418 }, + { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, ] [[package]] name = "tomli-w" version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/19/75/241269d1da26b624c0d5e110e8149093c759b7a286138f4efd61a60e75fe/tomli_w-1.2.0.tar.gz", hash = "sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021", size = 7184, upload-time = "2025-01-15T12:07:24.262Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/75/241269d1da26b624c0d5e110e8149093c759b7a286138f4efd61a60e75fe/tomli_w-1.2.0.tar.gz", hash = "sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021", size = 7184 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl", hash = "sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90", size = 6675, upload-time = "2025-01-15T12:07:22.074Z" }, + { url = "https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl", hash = "sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90", size = 6675 }, ] [[package]] name = "toolz" version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/0b/d80dfa675bf592f636d1ea0b835eab4ec8df6e9415d8cfd766df54456123/toolz-1.0.0.tar.gz", hash = "sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02", size = 66790, upload-time = "2024-10-04T16:17:04.001Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/0b/d80dfa675bf592f636d1ea0b835eab4ec8df6e9415d8cfd766df54456123/toolz-1.0.0.tar.gz", hash = "sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02", size = 66790 } wheels = [ - { url = "https://files.pythonhosted.org/packages/03/98/eb27cc78ad3af8e302c9d8ff4977f5026676e130d28dd7578132a457170c/toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236", size = 56383, upload-time = "2024-10-04T16:17:01.533Z" }, + { url = "https://files.pythonhosted.org/packages/03/98/eb27cc78ad3af8e302c9d8ff4977f5026676e130d28dd7578132a457170c/toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236", size = 56383 }, ] [[package]] @@ -2424,19 +2429,19 @@ wheels = [ name = "tornado" version = "6.5.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/09/ce/1eb500eae19f4648281bb2186927bb062d2438c2e5093d1360391afd2f90/tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0", size = 510821, upload-time = "2025-08-08T18:27:00.78Z" } +sdist = { url = "https://files.pythonhosted.org/packages/09/ce/1eb500eae19f4648281bb2186927bb062d2438c2e5093d1360391afd2f90/tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0", size = 510821 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/48/6a7529df2c9cc12efd2e8f5dd219516184d703b34c06786809670df5b3bd/tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6", size = 442563, upload-time = "2025-08-08T18:26:42.945Z" }, - { url = "https://files.pythonhosted.org/packages/f2/b5/9b575a0ed3e50b00c40b08cbce82eb618229091d09f6d14bce80fc01cb0b/tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef", size = 440729, upload-time = "2025-08-08T18:26:44.473Z" }, - { url = "https://files.pythonhosted.org/packages/1b/4e/619174f52b120efcf23633c817fd3fed867c30bff785e2cd5a53a70e483c/tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e", size = 444295, upload-time = "2025-08-08T18:26:46.021Z" }, - { url = "https://files.pythonhosted.org/packages/95/fa/87b41709552bbd393c85dd18e4e3499dcd8983f66e7972926db8d96aa065/tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882", size = 443644, upload-time = "2025-08-08T18:26:47.625Z" }, - { url = "https://files.pythonhosted.org/packages/f9/41/fb15f06e33d7430ca89420283a8762a4e6b8025b800ea51796ab5e6d9559/tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108", size = 443878, upload-time = "2025-08-08T18:26:50.599Z" }, - { url = "https://files.pythonhosted.org/packages/11/92/fe6d57da897776ad2e01e279170ea8ae726755b045fe5ac73b75357a5a3f/tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c", size = 444549, upload-time = "2025-08-08T18:26:51.864Z" }, - { url = "https://files.pythonhosted.org/packages/9b/02/c8f4f6c9204526daf3d760f4aa555a7a33ad0e60843eac025ccfd6ff4a93/tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4", size = 443973, upload-time = "2025-08-08T18:26:53.625Z" }, - { url = "https://files.pythonhosted.org/packages/ae/2d/f5f5707b655ce2317190183868cd0f6822a1121b4baeae509ceb9590d0bd/tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04", size = 443954, upload-time = "2025-08-08T18:26:55.072Z" }, - { url = "https://files.pythonhosted.org/packages/e8/59/593bd0f40f7355806bf6573b47b8c22f8e1374c9b6fd03114bd6b7a3dcfd/tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0", size = 445023, upload-time = "2025-08-08T18:26:56.677Z" }, - { url = "https://files.pythonhosted.org/packages/c7/2a/f609b420c2f564a748a2d80ebfb2ee02a73ca80223af712fca591386cafb/tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f", size = 445427, upload-time = "2025-08-08T18:26:57.91Z" }, - { url = "https://files.pythonhosted.org/packages/5e/4f/e1f65e8f8c76d73658b33d33b81eed4322fb5085350e4328d5c956f0c8f9/tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af", size = 444456, upload-time = "2025-08-08T18:26:59.207Z" }, + { url = "https://files.pythonhosted.org/packages/f6/48/6a7529df2c9cc12efd2e8f5dd219516184d703b34c06786809670df5b3bd/tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6", size = 442563 }, + { url = "https://files.pythonhosted.org/packages/f2/b5/9b575a0ed3e50b00c40b08cbce82eb618229091d09f6d14bce80fc01cb0b/tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef", size = 440729 }, + { url = "https://files.pythonhosted.org/packages/1b/4e/619174f52b120efcf23633c817fd3fed867c30bff785e2cd5a53a70e483c/tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e", size = 444295 }, + { url = "https://files.pythonhosted.org/packages/95/fa/87b41709552bbd393c85dd18e4e3499dcd8983f66e7972926db8d96aa065/tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882", size = 443644 }, + { url = "https://files.pythonhosted.org/packages/f9/41/fb15f06e33d7430ca89420283a8762a4e6b8025b800ea51796ab5e6d9559/tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108", size = 443878 }, + { url = "https://files.pythonhosted.org/packages/11/92/fe6d57da897776ad2e01e279170ea8ae726755b045fe5ac73b75357a5a3f/tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c", size = 444549 }, + { url = "https://files.pythonhosted.org/packages/9b/02/c8f4f6c9204526daf3d760f4aa555a7a33ad0e60843eac025ccfd6ff4a93/tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4", size = 443973 }, + { url = "https://files.pythonhosted.org/packages/ae/2d/f5f5707b655ce2317190183868cd0f6822a1121b4baeae509ceb9590d0bd/tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04", size = 443954 }, + { url = "https://files.pythonhosted.org/packages/e8/59/593bd0f40f7355806bf6573b47b8c22f8e1374c9b6fd03114bd6b7a3dcfd/tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0", size = 445023 }, + { url = "https://files.pythonhosted.org/packages/c7/2a/f609b420c2f564a748a2d80ebfb2ee02a73ca80223af712fca591386cafb/tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f", size = 445427 }, + { url = "https://files.pythonhosted.org/packages/5e/4f/e1f65e8f8c76d73658b33d33b81eed4322fb5085350e4328d5c956f0c8f9/tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af", size = 444456 }, ] [[package]] @@ -2446,36 +2451,36 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, ] [[package]] name = "traitlets" version = "5.14.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621 } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359 }, ] [[package]] name = "typing-extensions" version = "4.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391 } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614 }, ] [[package]] name = "urllib3" version = "2.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795 }, ] [[package]] @@ -2486,9 +2491,9 @@ dependencies = [ { name = "click" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4b/4d/938bd85e5bf2edeec766267a5015ad969730bb91e31b44021dfe8b22df6c/uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9", size = 76568, upload-time = "2024-12-15T13:33:30.42Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4b/4d/938bd85e5bf2edeec766267a5015ad969730bb91e31b44021dfe8b22df6c/uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9", size = 76568 } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4", size = 62315, upload-time = "2024-12-15T13:33:27.467Z" }, + { url = "https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4", size = 62315 }, ] [[package]] @@ -2507,109 +2512,109 @@ dependencies = [ { name = "sentry-sdk" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/73/09/c84264a219e20efd615e4d5d150cc7d359d57d51328d3fa94ee02d70ed9c/wandb-0.21.0.tar.gz", hash = "sha256:473e01ef200b59d780416062991effa7349a34e51425d4be5ff482af2dc39e02", size = 40085784, upload-time = "2025-07-02T00:24:15.516Z" } +sdist = { url = "https://files.pythonhosted.org/packages/73/09/c84264a219e20efd615e4d5d150cc7d359d57d51328d3fa94ee02d70ed9c/wandb-0.21.0.tar.gz", hash = "sha256:473e01ef200b59d780416062991effa7349a34e51425d4be5ff482af2dc39e02", size = 40085784 } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/dd/65eac086e1bc337bb5f0eed65ba1fe4a6dbc62c97f094e8e9df1ef83ffed/wandb-0.21.0-py3-none-any.whl", hash = "sha256:316e8cd4329738f7562f7369e6eabeeb28ef9d473203f7ead0d03e5dba01c90d", size = 6504284, upload-time = "2025-07-02T00:23:46.671Z" }, - { url = "https://files.pythonhosted.org/packages/17/a7/80556ce9097f59e10807aa68f4a9b29d736a90dca60852a9e2af1641baf8/wandb-0.21.0-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:701d9cbdfcc8550a330c1b54a26f1585519180e0f19247867446593d34ace46b", size = 21717388, upload-time = "2025-07-02T00:23:49.348Z" }, - { url = "https://files.pythonhosted.org/packages/23/ae/660bc75aa37bd23409822ea5ed616177d94873172d34271693c80405c820/wandb-0.21.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:01689faa6b691df23ba2367e0a1ecf6e4d0be44474905840098eedd1fbcb8bdf", size = 21141465, upload-time = "2025-07-02T00:23:52.602Z" }, - { url = "https://files.pythonhosted.org/packages/23/ab/9861929530be56557c74002868c85d0d8ac57050cc21863afe909ae3d46f/wandb-0.21.0-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:55d3f42ddb7971d1699752dff2b85bcb5906ad098d18ab62846c82e9ce5a238d", size = 21793511, upload-time = "2025-07-02T00:23:55.447Z" }, - { url = "https://files.pythonhosted.org/packages/de/52/e5cad2eff6fbed1ac06f4a5b718457fa2fd437f84f5c8f0d31995a2ef046/wandb-0.21.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:893508f0c7da48917448daa5cd622c27ce7ce15119adaa861185034c2bd7b14c", size = 20704643, upload-time = "2025-07-02T00:23:58.255Z" }, - { url = "https://files.pythonhosted.org/packages/83/8f/6bed9358cc33767c877b221d4f565e1ddf00caf4bbbe54d2e3bbc932c6a7/wandb-0.21.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4e8245a8912247ddf7654f7b5330f583a6c56ab88fee65589158490d583c57d", size = 22243012, upload-time = "2025-07-02T00:24:01.423Z" }, - { url = "https://files.pythonhosted.org/packages/be/61/9048015412ea5ca916844af55add4fed7c21fe1ad70bb137951e70b550c5/wandb-0.21.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2e4c4f951e0d02755e315679bfdcb5bc38c1b02e2e5abc5432b91a91bb0cf246", size = 20716440, upload-time = "2025-07-02T00:24:04.198Z" }, - { url = "https://files.pythonhosted.org/packages/02/d9/fcd2273d8ec3f79323e40a031aba5d32d6fa9065702010eb428b5ffbab62/wandb-0.21.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:873749966eeac0069e0e742e6210641b6227d454fb1dae2cf5c437c6ed42d3ca", size = 22320652, upload-time = "2025-07-02T00:24:07.175Z" }, - { url = "https://files.pythonhosted.org/packages/80/68/b8308db6b9c3c96dcd03be17c019aee105e1d7dc1e74d70756cdfb9241c6/wandb-0.21.0-py3-none-win32.whl", hash = "sha256:9d3cccfba658fa011d6cab9045fa4f070a444885e8902ae863802549106a5dab", size = 21484296, upload-time = "2025-07-02T00:24:10.147Z" }, - { url = "https://files.pythonhosted.org/packages/cf/96/71cc033e8abd00e54465e68764709ed945e2da2d66d764f72f4660262b22/wandb-0.21.0-py3-none-win_amd64.whl", hash = "sha256:28a0b2dad09d7c7344ac62b0276be18a2492a5578e4d7c84937a3e1991edaac7", size = 21484301, upload-time = "2025-07-02T00:24:12.658Z" }, + { url = "https://files.pythonhosted.org/packages/38/dd/65eac086e1bc337bb5f0eed65ba1fe4a6dbc62c97f094e8e9df1ef83ffed/wandb-0.21.0-py3-none-any.whl", hash = "sha256:316e8cd4329738f7562f7369e6eabeeb28ef9d473203f7ead0d03e5dba01c90d", size = 6504284 }, + { url = "https://files.pythonhosted.org/packages/17/a7/80556ce9097f59e10807aa68f4a9b29d736a90dca60852a9e2af1641baf8/wandb-0.21.0-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:701d9cbdfcc8550a330c1b54a26f1585519180e0f19247867446593d34ace46b", size = 21717388 }, + { url = "https://files.pythonhosted.org/packages/23/ae/660bc75aa37bd23409822ea5ed616177d94873172d34271693c80405c820/wandb-0.21.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:01689faa6b691df23ba2367e0a1ecf6e4d0be44474905840098eedd1fbcb8bdf", size = 21141465 }, + { url = "https://files.pythonhosted.org/packages/23/ab/9861929530be56557c74002868c85d0d8ac57050cc21863afe909ae3d46f/wandb-0.21.0-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:55d3f42ddb7971d1699752dff2b85bcb5906ad098d18ab62846c82e9ce5a238d", size = 21793511 }, + { url = "https://files.pythonhosted.org/packages/de/52/e5cad2eff6fbed1ac06f4a5b718457fa2fd437f84f5c8f0d31995a2ef046/wandb-0.21.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:893508f0c7da48917448daa5cd622c27ce7ce15119adaa861185034c2bd7b14c", size = 20704643 }, + { url = "https://files.pythonhosted.org/packages/83/8f/6bed9358cc33767c877b221d4f565e1ddf00caf4bbbe54d2e3bbc932c6a7/wandb-0.21.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4e8245a8912247ddf7654f7b5330f583a6c56ab88fee65589158490d583c57d", size = 22243012 }, + { url = "https://files.pythonhosted.org/packages/be/61/9048015412ea5ca916844af55add4fed7c21fe1ad70bb137951e70b550c5/wandb-0.21.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2e4c4f951e0d02755e315679bfdcb5bc38c1b02e2e5abc5432b91a91bb0cf246", size = 20716440 }, + { url = "https://files.pythonhosted.org/packages/02/d9/fcd2273d8ec3f79323e40a031aba5d32d6fa9065702010eb428b5ffbab62/wandb-0.21.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:873749966eeac0069e0e742e6210641b6227d454fb1dae2cf5c437c6ed42d3ca", size = 22320652 }, + { url = "https://files.pythonhosted.org/packages/80/68/b8308db6b9c3c96dcd03be17c019aee105e1d7dc1e74d70756cdfb9241c6/wandb-0.21.0-py3-none-win32.whl", hash = "sha256:9d3cccfba658fa011d6cab9045fa4f070a444885e8902ae863802549106a5dab", size = 21484296 }, + { url = "https://files.pythonhosted.org/packages/cf/96/71cc033e8abd00e54465e68764709ed945e2da2d66d764f72f4660262b22/wandb-0.21.0-py3-none-win_amd64.whl", hash = "sha256:28a0b2dad09d7c7344ac62b0276be18a2492a5578e4d7c84937a3e1991edaac7", size = 21484301 }, ] [[package]] name = "watchdog" version = "6.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220 } wheels = [ - { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471, upload-time = "2024-11-01T14:06:37.745Z" }, - { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449, upload-time = "2024-11-01T14:06:39.748Z" }, - { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054, upload-time = "2024-11-01T14:06:41.009Z" }, - { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, - { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, - { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, - { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, - { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, - { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, - { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, - { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, - { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, - { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, + { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471 }, + { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449 }, + { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054 }, + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079 }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078 }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076 }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077 }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078 }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077 }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078 }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065 }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070 }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067 }, ] [[package]] name = "wcwidth" version = "0.2.13" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301, upload-time = "2024-01-06T02:10:57.829Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" }, + { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 }, ] [[package]] name = "websocket-client" version = "1.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e6/30/fba0d96b4b5fbf5948ed3f4681f7da2f9f64512e1d303f94b4cc174c24a5/websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da", size = 54648, upload-time = "2024-04-23T22:16:16.976Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/30/fba0d96b4b5fbf5948ed3f4681f7da2f9f64512e1d303f94b4cc174c24a5/websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da", size = 54648 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", size = 58826, upload-time = "2024-04-23T22:16:14.422Z" }, + { url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", size = 58826 }, ] [[package]] name = "websockets" version = "15.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016 } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437, upload-time = "2025-03-05T20:02:16.706Z" }, - { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096, upload-time = "2025-03-05T20:02:18.832Z" }, - { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332, upload-time = "2025-03-05T20:02:20.187Z" }, - { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152, upload-time = "2025-03-05T20:02:22.286Z" }, - { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096, upload-time = "2025-03-05T20:02:24.368Z" }, - { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523, upload-time = "2025-03-05T20:02:25.669Z" }, - { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790, upload-time = "2025-03-05T20:02:26.99Z" }, - { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165, upload-time = "2025-03-05T20:02:30.291Z" }, - { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160, upload-time = "2025-03-05T20:02:31.634Z" }, - { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395, upload-time = "2025-03-05T20:02:33.017Z" }, - { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841, upload-time = "2025-03-05T20:02:34.498Z" }, - { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, + { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437 }, + { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096 }, + { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332 }, + { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152 }, + { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096 }, + { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523 }, + { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790 }, + { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165 }, + { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160 }, + { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395 }, + { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841 }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 }, ] [[package]] name = "wheel" version = "0.45.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729", size = 107545, upload-time = "2024-11-23T00:18:23.513Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729", size = 107545 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", size = 72494, upload-time = "2024-11-23T00:18:21.207Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", size = 72494 }, ] [[package]] name = "xxhash" version = "3.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/00/5e/d6e5258d69df8b4ed8c83b6664f2b47d30d2dec551a29ad72a6c69eafd31/xxhash-3.5.0.tar.gz", hash = "sha256:84f2caddf951c9cbf8dc2e22a89d4ccf5d86391ac6418fe81e3c67d0cf60b45f", size = 84241, upload-time = "2024-08-17T09:20:38.972Z" } +sdist = { url = "https://files.pythonhosted.org/packages/00/5e/d6e5258d69df8b4ed8c83b6664f2b47d30d2dec551a29ad72a6c69eafd31/xxhash-3.5.0.tar.gz", hash = "sha256:84f2caddf951c9cbf8dc2e22a89d4ccf5d86391ac6418fe81e3c67d0cf60b45f", size = 84241 } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/0e/1bfce2502c57d7e2e787600b31c83535af83746885aa1a5f153d8c8059d6/xxhash-3.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:14470ace8bd3b5d51318782cd94e6f94431974f16cb3b8dc15d52f3b69df8e00", size = 31969, upload-time = "2024-08-17T09:18:24.025Z" }, - { url = "https://files.pythonhosted.org/packages/3f/d6/8ca450d6fe5b71ce521b4e5db69622383d039e2b253e9b2f24f93265b52c/xxhash-3.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:59aa1203de1cb96dbeab595ded0ad0c0056bb2245ae11fac11c0ceea861382b9", size = 30787, upload-time = "2024-08-17T09:18:25.318Z" }, - { url = "https://files.pythonhosted.org/packages/5b/84/de7c89bc6ef63d750159086a6ada6416cc4349eab23f76ab870407178b93/xxhash-3.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08424f6648526076e28fae6ea2806c0a7d504b9ef05ae61d196d571e5c879c84", size = 220959, upload-time = "2024-08-17T09:18:26.518Z" }, - { url = "https://files.pythonhosted.org/packages/fe/86/51258d3e8a8545ff26468c977101964c14d56a8a37f5835bc0082426c672/xxhash-3.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61a1ff00674879725b194695e17f23d3248998b843eb5e933007ca743310f793", size = 200006, upload-time = "2024-08-17T09:18:27.905Z" }, - { url = "https://files.pythonhosted.org/packages/02/0a/96973bd325412feccf23cf3680fd2246aebf4b789122f938d5557c54a6b2/xxhash-3.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2f2c61bee5844d41c3eb015ac652a0229e901074951ae48581d58bfb2ba01be", size = 428326, upload-time = "2024-08-17T09:18:29.335Z" }, - { url = "https://files.pythonhosted.org/packages/11/a7/81dba5010f7e733de88af9555725146fc133be97ce36533867f4c7e75066/xxhash-3.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d32a592cac88d18cc09a89172e1c32d7f2a6e516c3dfde1b9adb90ab5df54a6", size = 194380, upload-time = "2024-08-17T09:18:30.706Z" }, - { url = "https://files.pythonhosted.org/packages/fb/7d/f29006ab398a173f4501c0e4977ba288f1c621d878ec217b4ff516810c04/xxhash-3.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70dabf941dede727cca579e8c205e61121afc9b28516752fd65724be1355cc90", size = 207934, upload-time = "2024-08-17T09:18:32.133Z" }, - { url = "https://files.pythonhosted.org/packages/8a/6e/6e88b8f24612510e73d4d70d9b0c7dff62a2e78451b9f0d042a5462c8d03/xxhash-3.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e5d0ddaca65ecca9c10dcf01730165fd858533d0be84c75c327487c37a906a27", size = 216301, upload-time = "2024-08-17T09:18:33.474Z" }, - { url = "https://files.pythonhosted.org/packages/af/51/7862f4fa4b75a25c3b4163c8a873f070532fe5f2d3f9b3fc869c8337a398/xxhash-3.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e5b5e16c5a480fe5f59f56c30abdeba09ffd75da8d13f6b9b6fd224d0b4d0a2", size = 203351, upload-time = "2024-08-17T09:18:34.889Z" }, - { url = "https://files.pythonhosted.org/packages/22/61/8d6a40f288f791cf79ed5bb113159abf0c81d6efb86e734334f698eb4c59/xxhash-3.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149b7914451eb154b3dfaa721315117ea1dac2cc55a01bfbd4df7c68c5dd683d", size = 210294, upload-time = "2024-08-17T09:18:36.355Z" }, - { url = "https://files.pythonhosted.org/packages/17/02/215c4698955762d45a8158117190261b2dbefe9ae7e5b906768c09d8bc74/xxhash-3.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:eade977f5c96c677035ff39c56ac74d851b1cca7d607ab3d8f23c6b859379cab", size = 414674, upload-time = "2024-08-17T09:18:38.536Z" }, - { url = "https://files.pythonhosted.org/packages/31/5c/b7a8db8a3237cff3d535261325d95de509f6a8ae439a5a7a4ffcff478189/xxhash-3.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa9f547bd98f5553d03160967866a71056a60960be00356a15ecc44efb40ba8e", size = 192022, upload-time = "2024-08-17T09:18:40.138Z" }, - { url = "https://files.pythonhosted.org/packages/78/e3/dd76659b2811b3fd06892a8beb850e1996b63e9235af5a86ea348f053e9e/xxhash-3.5.0-cp312-cp312-win32.whl", hash = "sha256:f7b58d1fd3551b8c80a971199543379be1cee3d0d409e1f6d8b01c1a2eebf1f8", size = 30170, upload-time = "2024-08-17T09:18:42.163Z" }, - { url = "https://files.pythonhosted.org/packages/d9/6b/1c443fe6cfeb4ad1dcf231cdec96eb94fb43d6498b4469ed8b51f8b59a37/xxhash-3.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:fa0cafd3a2af231b4e113fba24a65d7922af91aeb23774a8b78228e6cd785e3e", size = 30040, upload-time = "2024-08-17T09:18:43.699Z" }, - { url = "https://files.pythonhosted.org/packages/0f/eb/04405305f290173acc0350eba6d2f1a794b57925df0398861a20fbafa415/xxhash-3.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:586886c7e89cb9828bcd8a5686b12e161368e0064d040e225e72607b43858ba2", size = 26796, upload-time = "2024-08-17T09:18:45.29Z" }, + { url = "https://files.pythonhosted.org/packages/07/0e/1bfce2502c57d7e2e787600b31c83535af83746885aa1a5f153d8c8059d6/xxhash-3.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:14470ace8bd3b5d51318782cd94e6f94431974f16cb3b8dc15d52f3b69df8e00", size = 31969 }, + { url = "https://files.pythonhosted.org/packages/3f/d6/8ca450d6fe5b71ce521b4e5db69622383d039e2b253e9b2f24f93265b52c/xxhash-3.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:59aa1203de1cb96dbeab595ded0ad0c0056bb2245ae11fac11c0ceea861382b9", size = 30787 }, + { url = "https://files.pythonhosted.org/packages/5b/84/de7c89bc6ef63d750159086a6ada6416cc4349eab23f76ab870407178b93/xxhash-3.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08424f6648526076e28fae6ea2806c0a7d504b9ef05ae61d196d571e5c879c84", size = 220959 }, + { url = "https://files.pythonhosted.org/packages/fe/86/51258d3e8a8545ff26468c977101964c14d56a8a37f5835bc0082426c672/xxhash-3.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61a1ff00674879725b194695e17f23d3248998b843eb5e933007ca743310f793", size = 200006 }, + { url = "https://files.pythonhosted.org/packages/02/0a/96973bd325412feccf23cf3680fd2246aebf4b789122f938d5557c54a6b2/xxhash-3.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2f2c61bee5844d41c3eb015ac652a0229e901074951ae48581d58bfb2ba01be", size = 428326 }, + { url = "https://files.pythonhosted.org/packages/11/a7/81dba5010f7e733de88af9555725146fc133be97ce36533867f4c7e75066/xxhash-3.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d32a592cac88d18cc09a89172e1c32d7f2a6e516c3dfde1b9adb90ab5df54a6", size = 194380 }, + { url = "https://files.pythonhosted.org/packages/fb/7d/f29006ab398a173f4501c0e4977ba288f1c621d878ec217b4ff516810c04/xxhash-3.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70dabf941dede727cca579e8c205e61121afc9b28516752fd65724be1355cc90", size = 207934 }, + { url = "https://files.pythonhosted.org/packages/8a/6e/6e88b8f24612510e73d4d70d9b0c7dff62a2e78451b9f0d042a5462c8d03/xxhash-3.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e5d0ddaca65ecca9c10dcf01730165fd858533d0be84c75c327487c37a906a27", size = 216301 }, + { url = "https://files.pythonhosted.org/packages/af/51/7862f4fa4b75a25c3b4163c8a873f070532fe5f2d3f9b3fc869c8337a398/xxhash-3.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e5b5e16c5a480fe5f59f56c30abdeba09ffd75da8d13f6b9b6fd224d0b4d0a2", size = 203351 }, + { url = "https://files.pythonhosted.org/packages/22/61/8d6a40f288f791cf79ed5bb113159abf0c81d6efb86e734334f698eb4c59/xxhash-3.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149b7914451eb154b3dfaa721315117ea1dac2cc55a01bfbd4df7c68c5dd683d", size = 210294 }, + { url = "https://files.pythonhosted.org/packages/17/02/215c4698955762d45a8158117190261b2dbefe9ae7e5b906768c09d8bc74/xxhash-3.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:eade977f5c96c677035ff39c56ac74d851b1cca7d607ab3d8f23c6b859379cab", size = 414674 }, + { url = "https://files.pythonhosted.org/packages/31/5c/b7a8db8a3237cff3d535261325d95de509f6a8ae439a5a7a4ffcff478189/xxhash-3.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa9f547bd98f5553d03160967866a71056a60960be00356a15ecc44efb40ba8e", size = 192022 }, + { url = "https://files.pythonhosted.org/packages/78/e3/dd76659b2811b3fd06892a8beb850e1996b63e9235af5a86ea348f053e9e/xxhash-3.5.0-cp312-cp312-win32.whl", hash = "sha256:f7b58d1fd3551b8c80a971199543379be1cee3d0d409e1f6d8b01c1a2eebf1f8", size = 30170 }, + { url = "https://files.pythonhosted.org/packages/d9/6b/1c443fe6cfeb4ad1dcf231cdec96eb94fb43d6498b4469ed8b51f8b59a37/xxhash-3.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:fa0cafd3a2af231b4e113fba24a65d7922af91aeb23774a8b78228e6cd785e3e", size = 30040 }, + { url = "https://files.pythonhosted.org/packages/0f/eb/04405305f290173acc0350eba6d2f1a794b57925df0398861a20fbafa415/xxhash-3.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:586886c7e89cb9828bcd8a5686b12e161368e0064d040e225e72607b43858ba2", size = 26796 }, ] [[package]] @@ -2621,24 +2626,24 @@ dependencies = [ { name = "multidict" }, { name = "propcache" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428, upload-time = "2025-06-10T00:46:09.923Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667, upload-time = "2025-06-10T00:43:44.369Z" }, - { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025, upload-time = "2025-06-10T00:43:46.295Z" }, - { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709, upload-time = "2025-06-10T00:43:48.22Z" }, - { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287, upload-time = "2025-06-10T00:43:49.924Z" }, - { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429, upload-time = "2025-06-10T00:43:51.7Z" }, - { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429, upload-time = "2025-06-10T00:43:53.494Z" }, - { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862, upload-time = "2025-06-10T00:43:55.766Z" }, - { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616, upload-time = "2025-06-10T00:43:58.056Z" }, - { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954, upload-time = "2025-06-10T00:43:59.773Z" }, - { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575, upload-time = "2025-06-10T00:44:02.051Z" }, - { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061, upload-time = "2025-06-10T00:44:04.196Z" }, - { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142, upload-time = "2025-06-10T00:44:06.527Z" }, - { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894, upload-time = "2025-06-10T00:44:08.379Z" }, - { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378, upload-time = "2025-06-10T00:44:10.51Z" }, - { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069, upload-time = "2025-06-10T00:44:12.834Z" }, - { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249, upload-time = "2025-06-10T00:44:14.731Z" }, - { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710, upload-time = "2025-06-10T00:44:16.716Z" }, - { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542, upload-time = "2025-06-10T00:46:07.521Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667 }, + { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025 }, + { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709 }, + { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287 }, + { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429 }, + { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429 }, + { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862 }, + { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616 }, + { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954 }, + { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575 }, + { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061 }, + { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142 }, + { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894 }, + { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378 }, + { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069 }, + { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249 }, + { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710 }, + { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542 }, ] From b2e3ee93d626285892b3f686567073c91a78e167 Mon Sep 17 00:00:00 2001 From: millioner Date: Tue, 2 Dec 2025 02:29:33 +0100 Subject: [PATCH 02/28] First steps for DSperse integration. Doesn't work yet even close. Still building :building_construction: --- neurons/_validator/api/__init__.py | 12 +- neurons/_validator/core/dsperse_manager.py | 85 + neurons/_validator/core/request_pipeline.py | 27 +- neurons/_validator/core/validator_loop.py | 5 + neurons/_validator/models/base_rpc_request.py | 7 +- neurons/_validator/models/dslice_request.py | 12 + neurons/_validator/models/poc_rpc_request.py | 4 +- neurons/_validator/models/pow_rpc_request.py | 4 +- neurons/_validator/models/request_type.py | 17 + neurons/constants.py | 2 + .../model_testdsperse/input.json | 3078 +++++++++++++++++ .../model_testdsperse/input.py | 41 + .../model_testdsperse/metadata.json | 13 + neurons/execution_layer/circuit.py | 5 +- neurons/protocol.py | 18 + neurons/utils/pre_flight.py | 52 +- 16 files changed, 3335 insertions(+), 47 deletions(-) create mode 100644 neurons/_validator/core/dsperse_manager.py create mode 100644 neurons/_validator/models/dslice_request.py create mode 100644 neurons/deployment_layer/model_testdsperse/input.json create mode 100644 neurons/deployment_layer/model_testdsperse/input.py create mode 100644 neurons/deployment_layer/model_testdsperse/metadata.json diff --git a/neurons/_validator/api/__init__.py b/neurons/_validator/api/__init__.py index fe0bc430..d69f19df 100644 --- a/neurons/_validator/api/__init__.py +++ b/neurons/_validator/api/__init__.py @@ -23,6 +23,7 @@ import bittensor as bt from _validator.models.poc_rpc_request import ProofOfComputationRPCRequest from _validator.models.pow_rpc_request import ProofOfWeightsRPCRequest +from _validator.models.base_rpc_request import QueuedRequestDataModel import hashlib from constants import ( MAX_SIGNATURE_LIFESPAN, @@ -70,9 +71,10 @@ def _should_rate_limit(ip: str): class ValidatorAPI: def __init__(self, config: ValidatorConfig): self.config = config - self.external_requests_queue: list[ - ProofOfWeightsRPCRequest | ProofOfComputationRPCRequest - ] = [] + # a Queue of requests to be sent to miners + # consists of "real world requests" ProofOfWeightsRPCRequest and ProofOfComputationRPCRequest + # and a Request with one slice of a DSperse model (DSlice) + self.stacked_requests_queue: list[QueuedRequestDataModel] = [] self.ws_manager = WebSocketManager() self.recent_requests: dict[str, int] = {} self.validator_keys_cache = ValidatorKeysCache(config) @@ -282,7 +284,7 @@ async def handle_proof_of_weights( return InvalidParams(str(e)) self.pending_requests[external_request.hash] = asyncio.Event() - self.external_requests_queue.insert(0, external_request) + self.stacked_requests_queue.insert(0, external_request) bt.logging.success( f"External request with hash {external_request.hash} added to queue" ) @@ -341,7 +343,7 @@ async def handle_proof_of_computation( return InvalidParams(str(e)) self.pending_requests[external_request.hash] = asyncio.Event() - self.external_requests_queue.insert(0, external_request) + self.stacked_requests_queue.insert(0, external_request) bt.logging.success( f"External request with hash {external_request.hash} added to queue" ) diff --git a/neurons/_validator/core/dsperse_manager.py b/neurons/_validator/core/dsperse_manager.py new file mode 100644 index 00000000..b212231e --- /dev/null +++ b/neurons/_validator/core/dsperse_manager.py @@ -0,0 +1,85 @@ +import random +import os +import uuid +import tempfile +import json +from pathlib import Path + +from bittensor import logging +from dsperse.src.slice.utils.converter import Converter +from dsperse.src.run.runner import Runner + +from constants import DSPERSE_SLICES_FILE_NAME +from deployment_layer.circuit_store import circuit_store +from execution_layer.circuit import CircuitType, Circuit +from _validator.models.dslice_request import DSliceQueuedProofRequest +from _validator.models.request_type import RequestType +from _validator.api import ValidatorAPI + + +class DSperseManager: + def __init__(self, api: ValidatorAPI): + self.api = api + self.circuits: list[Circuit] = [ + circuit + for circuit in circuit_store.circuits + if circuit.metadata.type == CircuitType.DSPERSE_PROOF_GENERATION + ] + self.runs = {} + + def generate_dslice_requests(self) -> list: + """ + Generate DSlice requests for DSperse models. + Each DSlice request corresponds to one slice of a DSperse model. + """ + if self.api.stacked_requests_queue or not self.circuits: + # there are already requests stacked, do not generate new DSlice requests + return [] + + circuit = random.choice(self.circuits) + run_uid = str(uuid.uuid4()) + logging.info( + f"Generating DSlice requests for circuit {circuit.metadata.name}... Run UID: {run_uid}" + ) + + # TODO: ... + self.run_dsperse(circuit, run_uid) + dslice_requests = [] + # Logic to create DSlice requests goes here + return dslice_requests + + def extract_slices(self, circuit: Circuit) -> Path: + """ + Extract slices from a DSperse circuit file. + Returns the path to the folder containing the extracted slices. + """ + dsperse_file_path = ( + Path(circuit.paths.external_base_path) / DSPERSE_SLICES_FILE_NAME + ) + dsperse_slices_folder = dsperse_file_path.with_suffix("") + # TODO: Check is already converted + Converter.convert( + path=dsperse_file_path, + output_type="dirs", + output_path=dsperse_slices_folder, + ) + return dsperse_slices_folder + + def run_dsperse(self, circuit: Circuit, run_uid: str) -> None: + slices_path = self.extract_slices(circuit) + + # Create temporary folder for run metadata + run_metadata_path = Path(tempfile.mkdtemp(prefix=f"dsperse_run_{run_uid}_")) + save_metadata_path = run_metadata_path / "metadata.json" + logging.info(f"Running DSperse model. Run metadata path: {run_metadata_path}") + + # Generate benchmarking input JSON + input_json_path = run_metadata_path / "input.json" + with open(input_json_path, "w") as f: + json.dump(circuit.input_handler(RequestType.BENCHMARK).generate(), f) + + # init runner and run the sliced model + runner = Runner( + run_metadata_path=run_metadata_path, save_metadata_path=save_metadata_path + ) + results = runner.run(input_json_path=input_json_path, slice_path=slices_path) diff --git a/neurons/_validator/core/request_pipeline.py b/neurons/_validator/core/request_pipeline.py index 23bc35ff..4c0cc77f 100644 --- a/neurons/_validator/core/request_pipeline.py +++ b/neurons/_validator/core/request_pipeline.py @@ -34,25 +34,6 @@ def __init__( self.api = api self.hash_guard = HashGuard() - def prepare_requests(self, filtered_uids) -> list[Request]: - """ - Prepare requests for the current validation step. - This includes both regular benchmark requests and any external requests. - - Args: - filtered_uids (list): List of UIDs to send requests to. - - Returns: - list[Request]: List of prepared requests. - """ - if len(filtered_uids) == 0: - bt.logging.error("No UIDs to query") - return [] - - if self.api.external_requests_queue: - return self._prepare_real_world_requests(filtered_uids) - return self._prepare_benchmark_requests(filtered_uids) - def _check_and_create_request( self, uid: int, @@ -91,13 +72,14 @@ def _check_and_create_request( circuit=circuit, request_type=request_type, # 'inputs' are used for verification later on validator side: + # I suppose `RWR` passed here to prevent new data generation inputs=GenericInput(RequestType.RWR, input_data), request_hash=request_hash, save=save, ) def _prepare_real_world_requests(self, filtered_uids: list[int]) -> list[Request]: - external_request = self.api.external_requests_queue.pop() + external_request = self.api.stacked_requests_queue.pop() requests = [] for uid in filtered_uids: @@ -207,6 +189,9 @@ def get_request_data( QueryZkProof(query_input=inputs, model_id=circuit.id, query_output=""), False, ) + elif circuit.metadata.type == CircuitType.DSPERSE_PROOF_GENERATION: + # TODO: Handle DSPERSE_PROOF_GENERATION request data preparation + pass return ( ProofOfWeightsDataModel( @@ -230,7 +215,7 @@ def prepare_single_request(self, uid: int) -> Request | None: Returns: Request | None: The prepared request, or None if preparation failed. """ - if self.api.external_requests_queue: + if self.api.stacked_requests_queue: requests = self._prepare_real_world_requests([uid]) else: requests = self._prepare_benchmark_requests([uid]) diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index 426d0770..0afe0079 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -19,6 +19,7 @@ from _validator.competitions.competition import Competition from _validator.config import ValidatorConfig from _validator.core.capacity_manager import CapacityManager +from _validator.core.dsperse_manager import DSperseManager from _validator.core.prometheus import ( log_error, log_queue_metrics, @@ -120,6 +121,7 @@ def __init__(self, config: ValidatorConfig): self.request_pipeline = RequestPipeline( self.config, self.score_manager, self.api ) + self.dsperse_manager = DSperseManager(self.api) self.request_queue = asyncio.Queue() self.active_tasks: dict[int, asyncio.Task] = {} @@ -342,6 +344,9 @@ async def maintain_request_pool(self): slots_available = self.current_concurrency - len(self.active_tasks) if slots_available > 0: + # TODO: some conditions to trigger dsperse requests generation? + self.dsperse_manager.generate_dslice_requests() + available_uids = [ uid for uid in self.queryable_uids diff --git a/neurons/_validator/models/base_rpc_request.py b/neurons/_validator/models/base_rpc_request.py index 4ecd9c39..49fafa75 100644 --- a/neurons/_validator/models/base_rpc_request.py +++ b/neurons/_validator/models/base_rpc_request.py @@ -3,7 +3,12 @@ from _validator.utils.api import hash_inputs -class RealWorldRequest(BaseModel): +class QueuedRequestDataModel(BaseModel): + """ + Base model for requests that are stacked in the validator's queue and waiting to be sent to miners. + At the moment, that's a Real World Request (RWR) or a Request with one slice of a DSperse model (DSlice). + """ + circuit: Circuit inputs: dict diff --git a/neurons/_validator/models/dslice_request.py b/neurons/_validator/models/dslice_request.py new file mode 100644 index 00000000..38817950 --- /dev/null +++ b/neurons/_validator/models/dslice_request.py @@ -0,0 +1,12 @@ +from _validator.models.base_rpc_request import QueuedRequestDataModel +from pydantic import Field + + +class DSliceQueuedProofRequest(QueuedRequestDataModel): + """ + Request for a DSperse slice. + """ + + slice_num: str = Field(..., description="Num of the DSperse slice") + run_uid: str = Field(..., description="UID of the DSperse run") + outputs: dict = Field(..., description="Outputs of the DSperse slice") diff --git a/neurons/_validator/models/poc_rpc_request.py b/neurons/_validator/models/poc_rpc_request.py index 5c7fd50b..a4729bb8 100644 --- a/neurons/_validator/models/poc_rpc_request.py +++ b/neurons/_validator/models/poc_rpc_request.py @@ -1,10 +1,10 @@ -from _validator.models.base_rpc_request import RealWorldRequest +from _validator.models.base_rpc_request import QueuedRequestDataModel from pydantic import Field from deployment_layer.circuit_store import circuit_store from execution_layer.circuit import CircuitType -class ProofOfComputationRPCRequest(RealWorldRequest): +class ProofOfComputationRPCRequest(QueuedRequestDataModel): """ Request for the Proof of Computation RPC method. """ diff --git a/neurons/_validator/models/pow_rpc_request.py b/neurons/_validator/models/pow_rpc_request.py index 14a65995..4257d06b 100644 --- a/neurons/_validator/models/pow_rpc_request.py +++ b/neurons/_validator/models/pow_rpc_request.py @@ -1,10 +1,10 @@ from __future__ import annotations -from _validator.models.base_rpc_request import RealWorldRequest +from _validator.models.base_rpc_request import QueuedRequestDataModel from pydantic import Field from deployment_layer.circuit_store import circuit_store -class ProofOfWeightsRPCRequest(RealWorldRequest): +class ProofOfWeightsRPCRequest(QueuedRequestDataModel): """ Request for the Proof of Weights RPC method. """ diff --git a/neurons/_validator/models/request_type.py b/neurons/_validator/models/request_type.py index e6202c21..005347c6 100644 --- a/neurons/_validator/models/request_type.py +++ b/neurons/_validator/models/request_type.py @@ -2,14 +2,31 @@ class RequestType(Enum): + """ + Enumeration of different types of requests that the validator can send to miner. + - BENCHMARK: Requests with generated input data for benchmarking purposes. + In case of empty RWR queue the validator generates some input data to keep miners busy. + - RWR: Real World Requests with actual input data for real-world inference. + Validator collects such requests from external users and stacks them in a queue to be sent to miners. + - DSLICE: That's a tricky one. We use DSperse app for slicing large models into smaller parts. + And some requests involve sliced model and each slice is sent as a separate request to the miner. + That each slice request is of type DSLICE. + At the moment we just stack DSlices to the same RWR queue, and behave as normal RWR requests. + That means DSLICE request is a part of RWR or BENCHMARK request. + XXX: Yeah, not very elegant, but we'll improve it later, I promise. + """ + BENCHMARK = "benchmark_request" RWR = "real_world_request" + DSLICE = "dslice_request" def __str__(self) -> str: if self == RequestType.BENCHMARK: return "Benchmark" elif self == RequestType.RWR: return "Real World Request" + elif self == RequestType.DSPERSE: + return "DSperse Request (one slice)" else: raise ValueError(f"Unknown request type: {self}") diff --git a/neurons/constants.py b/neurons/constants.py index 11e9ef79..be8bc1ea 100644 --- a/neurons/constants.py +++ b/neurons/constants.py @@ -173,6 +173,8 @@ class Roles: ONE_YEAR = ONE_DAY * 365 # Temporary folder for storing proof files TEMP_FOLDER = "/tmp/subnet-2" +# DSperse slices file name +DSPERSE_SLICES_FILE_NAME = "slices.dsperse" # Queue size limits MAX_POW_QUEUE_SIZE = 1024 diff --git a/neurons/deployment_layer/model_testdsperse/input.json b/neurons/deployment_layer/model_testdsperse/input.json new file mode 100644 index 00000000..4837d209 --- /dev/null +++ b/neurons/deployment_layer/model_testdsperse/input.json @@ -0,0 +1,3078 @@ +{ + "input_data": [ + [ + -0.9764705896377563, + -0.9764705896377563, + -0.9607843160629272, + -0.9686274528503418, + -0.9843137264251709, + -0.9921568632125854, + -0.9843137264251709, + -0.9843137264251709, + -0.9764705896377563, + -0.9607843160629272, + -0.9686274528503418, + -0.6705882549285889, + 0.22352945804595947, + 0.48235297203063965, + -0.26274508237838745, + -0.7568627595901489, + -0.8588235378265381, + -0.8588235378265381, + -0.8274509906768799, + -0.8509804010391235, + -0.8823529481887817, + -0.8901960849761963, + -0.8823529481887817, + -0.6549019813537598, + -0.29411762952804565, + -0.5372549295425415, + -0.9058823585510254, + -0.9215686321258545, + -0.9450980424880981, + -0.9686274528503418, + -0.9607843160629272, + -0.9607843160629272, + -0.9607843160629272, + -0.9529411792755127, + -0.9529411792755127, + -0.9764705896377563, + -0.9921568632125854, + -0.9843137264251709, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9529411792755127, + -0.9607843160629272, + -0.3960784077644348, + 0.5529412031173706, + 0.7176470756530762, + 0.301960825920105, + -0.2549019455909729, + -0.6549019813537598, + -0.843137264251709, + -0.8274509906768799, + -0.8274509906768799, + -0.8196078538894653, + -0.6705882549285889, + -0.4117646813392639, + -0.08235293626785278, + 0.19215691089630127, + -0.04313725233078003, + -0.5058823823928833, + -0.8901960849761963, + -0.9450980424880981, + -0.9607843160629272, + -0.9607843160629272, + -0.9686274528503418, + -0.9686274528503418, + -0.9686274528503418, + -0.9607843160629272, + -0.9921568632125854, + -0.9843137264251709, + -0.9843137264251709, + -0.9764705896377563, + -0.9764705896377563, + -0.9686274528503418, + -0.9450980424880981, + -0.9686274528503418, + -0.41960781812667847, + 0.545098066329956, + 0.6235294342041016, + 0.529411792755127, + 0.3960784673690796, + -0.12156862020492554, + -0.40392154455184937, + -0.2078431248664856, + -0.10588234663009644, + -0.09803920984268188, + 0.20000004768371582, + 0.5686274766921997, + 0.5686274766921997, + 0.3960784673690796, + 0.20784318447113037, + 0.23137259483337402, + -0.5607843399047852, + -0.9372549057006836, + -0.9450980424880981, + -0.9686274528503418, + -0.9686274528503418, + -0.9843137264251709, + -0.9843137264251709, + -0.9843137264251709, + -0.9843137264251709, + -0.9843137264251709, + -0.9764705896377563, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9372549057006836, + -0.9607843160629272, + -0.6235294342041016, + 0.4117647409439087, + 0.6392157077789307, + 0.6000000238418579, + 0.41960787773132324, + 0.21568632125854492, + 0.43529415130615234, + 0.6784313917160034, + 0.7882353067398071, + 0.7411764860153198, + 0.843137264251709, + 0.8980392217636108, + 0.7019608020782471, + 0.6313725709915161, + 0.27843141555786133, + 0.35686278343200684, + -0.09019607305526733, + -0.8901960849761963, + -0.9450980424880981, + -0.9686274528503418, + -0.9529411792755127, + -0.9529411792755127, + -0.9764705896377563, + -0.9843137264251709, + -0.9843137264251709, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.929411768913269, + -0.9450980424880981, + -0.843137264251709, + 0.12156867980957031, + 0.7254902124404907, + 0.5686274766921997, + 0.37254905700683594, + 0.3960784673690796, + 0.7176470756530762, + 0.8588235378265381, + 0.9215686321258545, + 0.9058823585510254, + 0.9372549057006836, + 0.8745098114013672, + 0.49803924560546875, + 0.22352945804595947, + 0.23921573162078857, + 0.20784318447113037, + 0.10588240623474121, + -0.7490196228027344, + -0.9686274528503418, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9607843160629272, + -0.9843137264251709, + -0.9921568632125854, + -0.9843137264251709, + -0.9764705896377563, + -0.9607843160629272, + -0.9450980424880981, + -0.9529411792755127, + -0.929411768913269, + -0.9215686321258545, + -0.9529411792755127, + -0.26274508237838745, + 0.6235294342041016, + 0.5058823823928833, + 0.34117650985717773, + 0.5686274766921997, + 0.6941176652908325, + 0.6313725709915161, + 0.8039215803146362, + 0.8745098114013672, + 0.9215686321258545, + 0.9137254953384399, + 0.2862745523452759, + -0.4823529124259949, + -0.16862744092941284, + -0.019607841968536377, + -0.027450978755950928, + -0.5843137502670288, + -0.9529411792755127, + -0.8901960849761963, + -0.8980392217636108, + -0.9215686321258545, + -0.929411768913269, + -0.9686274528503418, + -0.9843137264251709, + -0.9843137264251709, + -0.9764705896377563, + -0.9607843160629272, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9137254953384399, + -0.9686274528503418, + -0.5686274766921997, + 0.458823561668396, + 0.5921568870544434, + 0.34117650985717773, + 0.4431372880935669, + 0.011764764785766602, + -0.011764705181121826, + 0.5529412031173706, + 0.8980392217636108, + 0.8745098114013672, + 0.929411768913269, + 0.45098042488098145, + -0.4431372284889221, + -0.3176470398902893, + 0.058823585510253906, + -0.29411762952804565, + -0.7568627595901489, + -0.9137254953384399, + -0.8745098114013672, + -0.8901960849761963, + -0.9372549057006836, + -0.9529411792755127, + -0.9607843160629272, + -0.9764705896377563, + -0.9764705896377563, + -0.9607843160629272, + -0.9529411792755127, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9372549057006836, + -0.772549033164978, + 0.29411768913269043, + 0.45098042488098145, + 0.12941181659698486, + 0.16862750053405762, + -0.4431372284889221, + -0.1764705777168274, + 0.5607843399047852, + 0.8745098114013672, + 0.7019608020782471, + 0.7098039388656616, + 0.7333333492279053, + 0.20000004768371582, + 0.050980448722839355, + 0.4431372880935669, + -0.40392154455184937, + -1.0, + -0.9215686321258545, + -0.9137254953384399, + -0.9215686321258545, + -0.9137254953384399, + -0.9450980424880981, + -0.9686274528503418, + -0.9764705896377563, + -0.9764705896377563, + -0.9529411792755127, + -0.9529411792755127, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9137254953384399, + -0.9058823585510254, + -0.38823527097702026, + 0.003921627998352051, + 0.18431377410888672, + 0.48235297203063965, + -0.1764705777168274, + -0.07450979948043823, + 0.7333333492279053, + 0.8352941274642944, + 0.5215686559677124, + 0.37254905700683594, + 0.6235294342041016, + 0.6705882549285889, + 0.529411792755127, + 0.6078431606292725, + -0.15294116735458374, + -0.9686274528503418, + -0.9529411792755127, + -0.9137254953384399, + -0.9058823585510254, + -0.9607843160629272, + -0.9686274528503418, + -0.9764705896377563, + -0.9764705896377563, + -0.9764705896377563, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.9058823585510254, + -0.6784313917160034, + 0.21568632125854492, + 0.8117647171020508, + 0.5686274766921997, + 0.6705882549285889, + 0.8039215803146362, + 0.7882353067398071, + 0.5058823823928833, + 0.13725495338439941, + 0.38823533058166504, + 0.686274528503418, + 0.6000000238418579, + 0.545098066329956, + -0.13725489377975464, + -0.9058823585510254, + -0.929411768913269, + -0.9058823585510254, + -0.9137254953384399, + -0.9921568632125854, + -0.9764705896377563, + -0.9764705896377563, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8980392217636108, + -0.7411764860153198, + 0.14509809017181396, + 0.8352941274642944, + 0.8666666746139526, + 0.8588235378265381, + 0.6784313917160034, + 0.6235294342041016, + 0.20784318447113037, + -0.10588234663009644, + -0.03529411554336548, + 0.49803924560546875, + 0.49803924560546875, + 0.4745098352432251, + -0.1607843041419983, + -0.9215686321258545, + -0.9058823585510254, + -0.8901960849761963, + -0.8980392217636108, + -0.9843137264251709, + -0.9764705896377563, + -0.9764705896377563, + -0.9686274528503418, + -0.9686274528503418, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.9215686321258545, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8823529481887817, + -0.6392157077789307, + 0.15294122695922852, + 0.7411764860153198, + 0.8823529481887817, + 0.8352941274642944, + 0.7019608020782471, + 0.4431372880935669, + -0.26274508237838745, + -0.2549019455909729, + -0.32549017667770386, + 0.17647063732147217, + 0.5058823823928833, + 0.3333333730697632, + -0.19999998807907104, + -0.9215686321258545, + -0.9058823585510254, + -0.8901960849761963, + -0.8901960849761963, + -0.9843137264251709, + -0.9764705896377563, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.6392157077789307, + 0.16862750053405762, + 0.7254902124404907, + 0.6392157077789307, + 0.6470588445663452, + 0.8196078538894653, + 0.4901961088180542, + -0.24705880880355835, + -0.30980390310287476, + -0.3176470398902893, + 0.29411768913269043, + 0.6078431606292725, + 0.09019613265991211, + -0.498039186000824, + -0.929411768913269, + -0.8980392217636108, + -0.8823529481887817, + -0.8980392217636108, + -0.9843137264251709, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8823529481887817, + -0.8823529481887817, + -0.6705882549285889, + 0.08235299587249756, + 0.5529412031173706, + 0.4117647409439087, + 0.3647059202194214, + 0.8117647171020508, + 0.8117647171020508, + 0.09803926944732666, + -0.29411762952804565, + -0.26274508237838745, + 0.43529415130615234, + 0.4901961088180542, + -0.1450980305671692, + -0.6627451181411743, + -0.9529411792755127, + -0.8901960849761963, + -0.8823529481887817, + -0.8901960849761963, + -0.9921568632125854, + -0.9764705896377563, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9215686321258545, + -0.9215686321258545, + -0.9058823585510254, + -0.8823529481887817, + -0.8666666746139526, + -0.8745098114013672, + -0.686274528503418, + -0.08235293626785278, + 0.27843141555786133, + 0.3647059202194214, + 0.29411768913269043, + 0.6078431606292725, + 0.8588235378265381, + 0.301960825920105, + -0.24705880880355835, + -0.18431371450424194, + 0.29411768913269043, + 0.035294175148010254, + -0.5137255191802979, + -0.7803921699523926, + -0.9372549057006836, + -0.8745098114013672, + -0.8666666746139526, + -0.8823529481887817, + -0.9764705896377563, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.8666666746139526, + -0.8823529481887817, + -0.7019608020782471, + -0.1764705777168274, + 0.035294175148010254, + 0.15294122695922852, + 0.34117650985717773, + 0.17647063732147217, + 0.27843141555786133, + 0.12156867980957031, + -0.027450978755950928, + 0.30980396270751953, + 0.3333333730697632, + -0.2862744927406311, + -0.6313725709915161, + -0.8666666746139526, + -0.8901960849761963, + -0.8588235378265381, + -0.8666666746139526, + -0.8745098114013672, + -0.9529411792755127, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8980392217636108, + -0.8666666746139526, + -0.8823529481887817, + -0.6784313917160034, + -0.2078431248664856, + -0.05882352590560913, + 0.011764764785766602, + 0.5529412031173706, + 0.23137259483337402, + -0.16862744092941284, + 0.23921573162078857, + 0.37254905700683594, + 0.45098042488098145, + -0.1921568512916565, + -0.6000000238418579, + -0.7176470756530762, + -0.8980392217636108, + -0.9058823585510254, + -0.8509804010391235, + -0.8666666746139526, + -0.8823529481887817, + -0.9529411792755127, + -0.9607843160629272, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.8666666746139526, + -0.8745098114013672, + -0.5764706134796143, + -0.11372548341751099, + 0.06666672229766846, + -0.04313725233078003, + 0.37254905700683594, + 0.5215686559677124, + -0.1764705777168274, + 0.09019613265991211, + 0.07450985908508301, + 0.043137311935424805, + -0.27843135595321655, + -0.6627451181411743, + -0.8039215803146362, + -0.8666666746139526, + -0.8823529481887817, + -0.8509804010391235, + -0.8509804010391235, + -0.8509804010391235, + -0.9764705896377563, + -0.9607843160629272, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.9137254953384399, + -0.9137254953384399, + -0.8901960849761963, + -0.8666666746139526, + -0.8666666746139526, + -0.5372549295425415, + -0.07450979948043823, + 0.16862750053405762, + 0.17647063732147217, + 0.18431377410888672, + 0.49803924560546875, + 0.12156867980957031, + 0.23137259483337402, + -0.03529411554336548, + 0.12156867980957031, + -0.13725489377975464, + -0.46666663885116577, + -0.40392154455184937, + -0.6235294342041016, + -0.8196078538894653, + -0.8509804010391235, + -0.8588235378265381, + -0.8745098114013672, + -0.9843137264251709, + -0.9843137264251709, + -0.9764705896377563, + -0.9764705896377563, + -0.9607843160629272, + -0.9529411792755127, + -0.9372549057006836, + -0.9215686321258545, + -0.9215686321258545, + -0.9215686321258545, + -0.9058823585510254, + -0.8901960849761963, + -0.8588235378265381, + -0.8745098114013672, + -0.5764706134796143, + -0.027450978755950928, + 0.24705886840820312, + 0.5607843399047852, + 0.29411768913269043, + 0.2862745523452759, + 0.20000004768371582, + 0.003921627998352051, + 0.09019613265991211, + 0.08235299587249756, + -0.29411762952804565, + -0.24705880880355835, + -0.019607841968536377, + -0.32549017667770386, + -0.7490196228027344, + -0.8588235378265381, + -0.8509804010391235, + -0.8666666746139526, + -0.9843137264251709, + -0.9843137264251709, + -0.9843137264251709, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.929411768913269, + -0.9215686321258545, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8666666746139526, + -0.8901960849761963, + -0.615686297416687, + -0.05098038911819458, + 0.22352945804595947, + 0.6392157077789307, + 0.6078431606292725, + 0.19215691089630127, + 0.17647063732147217, + -0.05098038911819458, + -0.08235293626785278, + -0.1450980305671692, + -0.4117646813392639, + -0.1294117569923401, + 0.23921573162078857, + -0.09803920984268188, + -0.5215686559677124, + -0.7254902124404907, + -0.843137264251709, + -0.8588235378265381, + -0.9921568632125854, + -0.9843137264251709, + -0.9843137264251709, + -0.9686274528503418, + -0.9607843160629272, + -0.9450980424880981, + -0.9372549057006836, + -0.9215686321258545, + -0.9215686321258545, + -0.9137254953384399, + -0.8823529481887817, + -0.8745098114013672, + -0.8588235378265381, + -0.8901960849761963, + -0.6392157077789307, + -0.003921568393707275, + 0.2627451419830322, + 0.5058823823928833, + 0.7019608020782471, + 0.4901961088180542, + 0.35686278343200684, + -0.011764705181121826, + -0.15294116735458374, + -0.270588219165802, + -0.40392154455184937, + 0.06666672229766846, + 0.35686278343200684, + -0.13725489377975464, + -0.4431372284889221, + -0.4431372284889221, + -0.7882353067398071, + -0.8745098114013672, + -0.9921568632125854, + -0.9921568632125854, + -0.9764705896377563, + -0.9686274528503418, + -0.9686274528503418, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8901960849761963, + -0.8745098114013672, + -0.8588235378265381, + -0.8823529481887817, + -0.6627451181411743, + 0.035294175148010254, + 0.3333333730697632, + 0.4274510145187378, + 0.6000000238418579, + 0.6235294342041016, + 0.40392160415649414, + 0.30980396270751953, + 0.12156867980957031, + -0.05882352590560913, + 0.13725495338439941, + 0.45098042488098145, + 0.40392160415649414, + -0.1607843041419983, + -0.7019608020782471, + -0.5137255191802979, + -0.7647058963775635, + -0.8823529481887817, + -0.9921568632125854, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9607843160629272, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8901960849761963, + -0.8823529481887817, + -0.8509804010391235, + -0.8745098114013672, + -0.7333333492279053, + -0.06666666269302368, + 0.3647059202194214, + 0.5058823823928833, + 0.5921568870544434, + 0.6078431606292725, + 0.5921568870544434, + 0.7411764860153198, + 0.41960787773132324, + 0.458823561668396, + 0.7333333492279053, + 0.7254902124404907, + 0.4901961088180542, + -0.10588234663009644, + -0.8352941274642944, + -0.843137264251709, + -0.8509804010391235, + -0.8666666746139526, + -0.9921568632125854, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9686274528503418, + -0.9607843160629272, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8666666746139526, + -0.8588235378265381, + -0.8352941274642944, + -0.2549019455909729, + 0.3803921937942505, + 0.6784313917160034, + 0.8352941274642944, + 0.7960784435272217, + 0.7254902124404907, + 0.7019608020782471, + 0.45098042488098145, + 0.6705882549285889, + 0.8509804010391235, + 0.7176470756530762, + 0.46666669845581055, + -0.10588234663009644, + -0.8196078538894653, + -0.8823529481887817, + -0.8745098114013672, + -0.8588235378265381, + -0.9921568632125854, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9686274528503418, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.8745098114013672, + -0.8509804010391235, + -0.8588235378265381, + -0.40392154455184937, + 0.34117650985717773, + 0.6392157077789307, + 0.8039215803146362, + 0.7019608020782471, + 0.6627451181411743, + 0.7019608020782471, + 0.5215686559677124, + 0.43529415130615234, + 0.38823533058166504, + 0.49803924560546875, + 0.5215686559677124, + 0.019607901573181152, + -0.6549019813537598, + -0.8666666746139526, + -0.8666666746139526, + -0.8666666746139526, + -0.9921568632125854, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9686274528503418, + -0.9529411792755127, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8745098114013672, + -0.8509804010391235, + -0.8509804010391235, + -0.5686274766921997, + 0.12941181659698486, + 0.4901961088180542, + 0.5529412031173706, + 0.3960784673690796, + 0.34117650985717773, + 0.45098042488098145, + 0.27843141555786133, + 0.08235299587249756, + -0.019607841968536377, + 0.27843141555786133, + 0.458823561668396, + 0.24705886840820312, + -0.30980390310287476, + -0.8352941274642944, + -0.8352941274642944, + -0.8666666746139526, + -0.9921568632125854, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9215686321258545, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8823529481887817, + -0.8823529481887817, + -0.8588235378265381, + -0.8509804010391235, + -0.7411764860153198, + -0.1294117569923401, + 0.35686278343200684, + 0.32549023628234863, + 0.050980448722839355, + 0.043137311935424805, + 0.14509809017181396, + 0.043137311935424805, + -0.270588219165802, + -0.4431372284889221, + -0.15294116735458374, + 0.22352945804595947, + 0.41960787773132324, + 0.003921627998352051, + -0.7568627595901489, + -0.8509804010391235, + -0.8588235378265381, + -0.9921568632125854, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8588235378265381, + -0.8509804010391235, + -0.8352941274642944, + -0.35686272382736206, + 0.2549020051956177, + 0.3176470994949341, + -0.16862744092941284, + -0.5058823823928833, + -0.3803921341896057, + -0.26274508237838745, + -0.6784313917160034, + -0.8196078538894653, + -0.6313725709915161, + -0.027450978755950928, + 0.45098042488098145, + 0.19215691089630127, + -0.6313725709915161, + -0.8901960849761963, + -0.8588235378265381, + -0.9921568632125854, + -0.9843137264251709, + -0.9764705896377563, + -0.9686274528503418, + -0.9686274528503418, + -0.9529411792755127, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8745098114013672, + -0.8666666746139526, + -0.8509804010391235, + -0.8745098114013672, + -0.5686274766921997, + 0.21568632125854492, + 0.46666669845581055, + -0.03529411554336548, + -0.8352941274642944, + -0.8509804010391235, + -0.7176470756530762, + -0.843137264251709, + -0.8823529481887817, + -0.8117647171020508, + -0.32549017667770386, + 0.3647059202194214, + 0.2705882787704468, + -0.529411792755127, + -0.9058823585510254, + -0.8745098114013672, + -1.0, + -0.9843137264251709, + -0.9764705896377563, + -0.9764705896377563, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.9372549057006836, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8666666746139526, + -0.8588235378265381, + -0.8588235378265381, + -0.7411764860153198, + -0.03529411554336548, + 0.49803924560546875, + 0.301960825920105, + -0.6313725709915161, + -0.8745098114013672, + -0.8352941274642944, + -0.8588235378265381, + -0.8509804010391235, + -0.8666666746139526, + -0.6313725709915161, + 0.21568632125854492, + 0.301960825920105, + -0.498039186000824, + -0.929411768913269, + -0.8901960849761963, + -1.0, + -0.9921568632125854, + -0.9843137264251709, + -0.9764705896377563, + -0.9764705896377563, + -0.9686274528503418, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.8980392217636108, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8588235378265381, + -0.843137264251709, + -0.8352941274642944, + -0.4901960492134094, + 0.23921573162078857, + 0.4117647409439087, + -0.3803921341896057, + -0.8823529481887817, + -0.8274509906768799, + -0.8509804010391235, + -0.8509804010391235, + -0.8666666746139526, + -0.8274509906768799, + -0.05882352590560913, + 0.34117650985717773, + -0.4431372284889221, + -0.9372549057006836, + -0.8901960849761963, + -0.9686274528503418, + -0.9686274528503418, + -0.9529411792755127, + -0.9529411792755127, + -0.9607843160629272, + -0.9607843160629272, + -0.9529411792755127, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9450980424880981, + -0.6941176652908325, + 0.16862750053405762, + 0.4431372880935669, + -0.34117645025253296, + -0.772549033164978, + -0.843137264251709, + -0.8352941274642944, + -0.8274509906768799, + -0.8352941274642944, + -0.843137264251709, + -0.8509804010391235, + -0.8509804010391235, + -0.615686297416687, + -0.2392156720161438, + -0.4901960492134094, + -0.8588235378265381, + -0.8901960849761963, + -0.9058823585510254, + -0.9215686321258545, + -0.929411768913269, + -0.9372549057006836, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9607843160629272, + -0.9607843160629272, + -0.9529411792755127, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9215686321258545, + -0.9372549057006836, + -0.427450954914093, + 0.5137255191802979, + 0.7254902124404907, + 0.20000004768371582, + -0.3960784077644348, + -0.7019608020782471, + -0.8352941274642944, + -0.8196078538894653, + -0.8117647171020508, + -0.7960784435272217, + -0.686274528503418, + -0.46666663885116577, + -0.1294117569923401, + 0.17647063732147217, + -0.04313725233078003, + -0.529411792755127, + -0.8509804010391235, + -0.8980392217636108, + -0.9137254953384399, + -0.9215686321258545, + -0.9372549057006836, + -0.9607843160629272, + -0.9607843160629272, + -0.9607843160629272, + -0.9764705896377563, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.9137254953384399, + -0.929411768913269, + -0.45098036527633667, + 0.4901961088180542, + 0.5529412031173706, + 0.40392160415649414, + 0.19215691089630127, + -0.27843135595321655, + -0.4745097756385803, + -0.3176470398902893, + -0.24705880880355835, + -0.2862744927406311, + 0.003921627998352051, + 0.45098042488098145, + 0.4745098352432251, + 0.27843141555786133, + 0.12156867980957031, + 0.09019613265991211, + -0.5843137502670288, + -0.8823529481887817, + -0.8980392217636108, + -0.9215686321258545, + -0.929411768913269, + -0.9764705896377563, + -0.9764705896377563, + -0.9764705896377563, + -0.9686274528503418, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9058823585510254, + -0.929411768913269, + -0.6235294342041016, + 0.3176470994949341, + 0.4745098352432251, + 0.40392160415649414, + 0.2862745523452759, + 0.011764764785766602, + 0.20000004768371582, + 0.529411792755127, + 0.615686297416687, + 0.45098042488098145, + 0.6313725709915161, + 0.8823529481887817, + 0.7098039388656616, + 0.529411792755127, + 0.17647063732147217, + 0.23921573162078857, + -0.1607843041419983, + -0.843137264251709, + -0.9058823585510254, + -0.9137254953384399, + -0.9058823585510254, + -0.9372549057006836, + -0.9607843160629272, + -0.9686274528503418, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.8980392217636108, + -0.9058823585510254, + -0.8274509906768799, + 0.043137311935424805, + 0.5137255191802979, + 0.30980396270751953, + 0.24705886840820312, + 0.20784318447113037, + 0.5058823823928833, + 0.843137264251709, + 0.8588235378265381, + 0.6549019813537598, + 0.7176470756530762, + 0.8274509906768799, + 0.4431372880935669, + 0.09803926944732666, + 0.09019613265991211, + 0.09019613265991211, + 0.035294175148010254, + -0.7333333492279053, + -0.9215686321258545, + -0.8980392217636108, + -0.8980392217636108, + -0.9137254953384399, + -0.9450980424880981, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.929411768913269, + -0.9137254953384399, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.929411768913269, + -0.3019607663154602, + 0.4431372880935669, + 0.2627451419830322, + 0.23137259483337402, + 0.4117647409439087, + 0.5764706134796143, + 0.6235294342041016, + 0.7333333492279053, + 0.6000000238418579, + 0.615686297416687, + 0.7490196228027344, + 0.20784318447113037, + -0.38823527097702026, + -0.26274508237838745, + -0.12156862020492554, + -0.11372548341751099, + -0.6235294342041016, + -0.9137254953384399, + -0.8745098114013672, + -0.8823529481887817, + -0.8980392217636108, + -0.9137254953384399, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9450980424880981, + -0.929411768913269, + -0.9137254953384399, + -0.9058823585510254, + -0.9058823585510254, + -0.8823529481887817, + -0.929411768913269, + -0.6000000238418579, + 0.30980396270751953, + 0.37254905700683594, + 0.19215691089630127, + 0.2705882787704468, + -0.06666666269302368, + -0.05098038911819458, + 0.4117647409439087, + 0.6549019813537598, + 0.529411792755127, + 0.6549019813537598, + 0.3333333730697632, + -0.26274508237838745, + -0.35686272382736206, + -0.04313725233078003, + -0.3647058606147766, + -0.7960784435272217, + -0.8980392217636108, + -0.8666666746139526, + -0.8745098114013672, + -0.929411768913269, + -0.9450980424880981, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8980392217636108, + -0.8980392217636108, + -0.7803921699523926, + 0.12156867980957031, + 0.2862745523452759, + -0.019607841968536377, + -0.011764705181121826, + -0.37254899740219116, + -0.05098038911819458, + 0.3803921937942505, + 0.5764706134796143, + 0.3333333730697632, + 0.3647059202194214, + 0.5058823823928833, + 0.08235299587249756, + -0.11372548341751099, + 0.2705882787704468, + -0.427450954914093, + -0.9764705896377563, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.9137254953384399, + -0.9450980424880981, + -0.9450980424880981, + -0.9450980424880981, + -0.9450980424880981, + -0.9215686321258545, + -0.9215686321258545, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8980392217636108, + -0.8823529481887817, + -0.8823529481887817, + -0.4745097756385803, + -0.15294116735458374, + 0.06666672229766846, + 0.3176470994949341, + -0.270588219165802, + -0.1450980305671692, + 0.5058823823928833, + 0.49803924560546875, + 0.14509809017181396, + 0.035294175148010254, + 0.3647059202194214, + 0.5137255191802979, + 0.30980396270751953, + 0.38823533058166504, + -0.2078431248664856, + -0.9529411792755127, + -0.9215686321258545, + -0.8745098114013672, + -0.8666666746139526, + -0.9529411792755127, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.7098039388656616, + 0.10588240623474121, + 0.6000000238418579, + 0.34117650985717773, + 0.49803924560546875, + 0.5764706134796143, + 0.4745098352432251, + 0.24705886840820312, + -0.04313725233078003, + 0.19215691089630127, + 0.529411792755127, + 0.45098042488098145, + 0.4117647409439087, + -0.18431371450424194, + -0.8980392217636108, + -0.8901960849761963, + -0.8666666746139526, + -0.8823529481887817, + -0.9764705896377563, + -0.9607843160629272, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.8509804010391235, + -0.7254902124404907, + 0.09019613265991211, + 0.6627451181411743, + 0.6705882549285889, + 0.772549033164978, + 0.529411792755127, + 0.43529415130615234, + 0.09019613265991211, + -0.16862744092941284, + -0.09803920984268188, + 0.3960784673690796, + 0.43529415130615234, + 0.4745098352432251, + -0.15294116735458374, + -0.8980392217636108, + -0.8666666746139526, + -0.8666666746139526, + -0.8666666746139526, + -0.9764705896377563, + -0.9607843160629272, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9137254953384399, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.843137264251709, + -0.6392157077789307, + 0.14509809017181396, + 0.686274528503418, + 0.8274509906768799, + 0.8117647171020508, + 0.6235294342041016, + 0.3490196466445923, + -0.3176470398902893, + -0.26274508237838745, + -0.32549017667770386, + 0.18431377410888672, + 0.48235297203063965, + 0.3960784673690796, + -0.16862744092941284, + -0.8980392217636108, + -0.8745098114013672, + -0.8588235378265381, + -0.8588235378265381, + -0.9764705896377563, + -0.9686274528503418, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8823529481887817, + -0.8666666746139526, + -0.8509804010391235, + -0.6235294342041016, + 0.18431377410888672, + 0.7411764860153198, + 0.6784313917160034, + 0.6627451181411743, + 0.8274509906768799, + 0.458823561668396, + -0.27843135595321655, + -0.30980390310287476, + -0.3176470398902893, + 0.32549023628234863, + 0.615686297416687, + 0.12941181659698486, + -0.4745097756385803, + -0.9058823585510254, + -0.8666666746139526, + -0.8509804010391235, + -0.8666666746139526, + -0.9843137264251709, + -0.9686274528503418, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8588235378265381, + -0.6627451181411743, + 0.08235299587249756, + 0.6000000238418579, + 0.4745098352432251, + 0.40392160415649414, + 0.8588235378265381, + 0.8117647171020508, + 0.09019613265991211, + -0.2862744927406311, + -0.23137253522872925, + 0.5058823823928833, + 0.5372549295425415, + -0.12156862020492554, + -0.6470588445663452, + -0.929411768913269, + -0.8666666746139526, + -0.8509804010391235, + -0.8588235378265381, + -0.9764705896377563, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.8823529481887817, + -0.8745098114013672, + -0.8588235378265381, + -0.8666666746139526, + -0.7019608020782471, + -0.13725489377975464, + 0.24705886840820312, + 0.4117647409439087, + 0.3490196466445923, + 0.6627451181411743, + 0.9058823585510254, + 0.301960825920105, + -0.2549019455909729, + -0.2235293984413147, + 0.18431377410888672, + 0.011764764785766602, + -0.5058823823928833, + -0.7803921699523926, + -0.929411768913269, + -0.8588235378265381, + -0.8509804010391235, + -0.8509804010391235, + -0.9529411792755127, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.9058823585510254, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8745098114013672, + -0.8588235378265381, + -0.8509804010391235, + -0.7176470756530762, + -0.2392156720161438, + -0.05098038911819458, + 0.12156867980957031, + 0.37254905700683594, + 0.19215691089630127, + 0.29411768913269043, + -0.03529411554336548, + -0.3647058606147766, + -0.27843135595321655, + -0.3333333134651184, + -0.5686274766921997, + -0.6470588445663452, + -0.8666666746139526, + -0.8745098114013672, + -0.8509804010391235, + -0.843137264251709, + -0.8509804010391235, + -0.9215686321258545, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8745098114013672, + -0.8588235378265381, + -0.8588235378265381, + -0.7254902124404907, + -0.29411762952804565, + -0.12156862020492554, + -0.03529411554336548, + 0.5686274766921997, + 0.21568632125854492, + -0.27843135595321655, + -0.1764705777168274, + -0.2549019455909729, + -0.21568626165390015, + -0.5686274766921997, + -0.7176470756530762, + -0.7176470756530762, + -0.8745098114013672, + -0.8823529481887817, + -0.843137264251709, + -0.8509804010391235, + -0.8509804010391235, + -0.929411768913269, + -0.929411768913269, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8588235378265381, + -0.8745098114013672, + -0.6470588445663452, + -0.2392156720161438, + -0.03529411554336548, + -0.11372548341751099, + 0.37254905700683594, + 0.545098066329956, + -0.26274508237838745, + -0.09803920984268188, + -0.21568626165390015, + -0.23137253522872925, + -0.30980390310287476, + -0.6627451181411743, + -0.8352941274642944, + -0.8666666746139526, + -0.8588235378265381, + -0.843137264251709, + -0.843137264251709, + -0.8352941274642944, + -0.9529411792755127, + -0.929411768913269, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8823529481887817, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8588235378265381, + -0.8588235378265381, + -0.6000000238418579, + -0.2392156720161438, + 0.035294175148010254, + 0.08235299587249756, + 0.16078436374664307, + 0.5372549295425415, + 0.08235299587249756, + 0.09019613265991211, + -0.1764705777168274, + 0.019607901573181152, + -0.1764705777168274, + -0.5215686559677124, + -0.4901960492134094, + -0.6941176652908325, + -0.8196078538894653, + -0.8352941274642944, + -0.8352941274642944, + -0.843137264251709, + -0.9686274528503418, + -0.9450980424880981, + -0.9450980424880981, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8901960849761963, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8509804010391235, + -0.8588235378265381, + -0.6235294342041016, + -0.1921568512916565, + 0.09803926944732666, + 0.41960787773132324, + 0.20784318447113037, + 0.29411768913269043, + 0.23921573162078857, + -0.06666666269302368, + -0.04313725233078003, + -0.003921568393707275, + -0.34117645025253296, + -0.30980390310287476, + -0.10588234663009644, + -0.3960784077644348, + -0.7490196228027344, + -0.8352941274642944, + -0.8274509906768799, + -0.843137264251709, + -0.9686274528503418, + -0.9529411792755127, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.8980392217636108, + -0.8901960849761963, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.8666666746139526, + -0.8588235378265381, + -0.8666666746139526, + -0.6470588445663452, + -0.19999998807907104, + 0.058823585510253906, + 0.46666669845581055, + 0.46666669845581055, + 0.15294122695922852, + 0.18431377410888672, + -0.05882352590560913, + -0.09803920984268188, + -0.1607843041419983, + -0.45098036527633667, + -0.23137253522872925, + 0.13725495338439941, + -0.15294116735458374, + -0.5686274766921997, + -0.7568627595901489, + -0.8352941274642944, + -0.843137264251709, + -0.9843137264251709, + -0.9607843160629272, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.8588235378265381, + -0.8509804010391235, + -0.8745098114013672, + -0.6784313917160034, + -0.1607843041419983, + 0.06666672229766846, + 0.3176470994949341, + 0.5372549295425415, + 0.4117647409439087, + 0.34117650985717773, + -0.019607841968536377, + -0.1450980305671692, + -0.2862744927406311, + -0.4823529124259949, + -0.06666666269302368, + 0.23921573162078857, + -0.1921568512916565, + -0.5137255191802979, + -0.5058823823928833, + -0.7960784435272217, + -0.8588235378265381, + -0.9764705896377563, + -0.9607843160629272, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8588235378265381, + -0.8509804010391235, + -0.8666666746139526, + -0.6941176652908325, + -0.1450980305671692, + 0.09803926944732666, + 0.20784318447113037, + 0.41960787773132324, + 0.5137255191802979, + 0.38823533058166504, + 0.34117650985717773, + 0.12941181659698486, + -0.09019607305526733, + 0.035294175148010254, + 0.32549023628234863, + 0.301960825920105, + -0.2235293984413147, + -0.7254902124404907, + -0.5529412031173706, + -0.7647058963775635, + -0.8588235378265381, + -0.9607843160629272, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8509804010391235, + -0.8666666746139526, + -0.7333333492279053, + -0.2235293984413147, + 0.11372554302215576, + 0.2705882787704468, + 0.3960784673690796, + 0.48235297203063965, + 0.5607843399047852, + 0.7882353067398071, + 0.40392160415649414, + 0.4117647409439087, + 0.686274528503418, + 0.6627451181411743, + 0.43529415130615234, + -0.18431371450424194, + -0.843137264251709, + -0.8196078538894653, + -0.8274509906768799, + -0.843137264251709, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8745098114013672, + -0.8745098114013672, + -0.8666666746139526, + -0.8509804010391235, + -0.8509804010391235, + -0.8196078538894653, + -0.34117645025253296, + 0.16862750053405762, + 0.49803924560546875, + 0.686274528503418, + 0.686274528503418, + 0.6705882549285889, + 0.686274528503418, + 0.41960787773132324, + 0.6313725709915161, + 0.8352941274642944, + 0.7098039388656616, + 0.45098042488098145, + -0.2235293984413147, + -0.8352941274642944, + -0.843137264251709, + -0.8352941274642944, + -0.8352941274642944, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8823529481887817, + -0.8745098114013672, + -0.8745098114013672, + -0.8588235378265381, + -0.8509804010391235, + -0.843137264251709, + -0.843137264251709, + -0.45098036527633667, + 0.20784318447113037, + 0.5764706134796143, + 0.7647058963775635, + 0.6313725709915161, + 0.6000000238418579, + 0.6941176652908325, + 0.5372549295425415, + 0.4274510145187378, + 0.3803921937942505, + 0.5058823823928833, + 0.529411792755127, + -0.07450979948043823, + -0.7176470756530762, + -0.8352941274642944, + -0.8352941274642944, + -0.843137264251709, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.8588235378265381, + -0.8509804010391235, + -0.843137264251709, + -0.8274509906768799, + -0.6000000238418579, + 0.011764764785766602, + 0.43529415130615234, + 0.5058823823928833, + 0.30980396270751953, + 0.301960825920105, + 0.46666669845581055, + 0.301960825920105, + 0.08235299587249756, + -0.003921568393707275, + 0.3176470994949341, + 0.4745098352432251, + 0.13725495338439941, + -0.4431372284889221, + -0.8274509906768799, + -0.8274509906768799, + -0.843137264251709, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8901960849761963, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.8509804010391235, + -0.8588235378265381, + -0.843137264251709, + -0.8352941274642944, + -0.7490196228027344, + -0.24705880880355835, + 0.2705882787704468, + 0.2862745523452759, + -0.04313725233078003, + -0.019607841968536377, + 0.13725495338439941, + 0.043137311935424805, + -0.3019607663154602, + -0.43529409170150757, + -0.12156862020492554, + 0.21568632125854492, + 0.2705882787704468, + -0.1921568512916565, + -0.7803921699523926, + -0.8352941274642944, + -0.8352941274642944, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.8588235378265381, + -0.8509804010391235, + -0.8509804010391235, + -0.8352941274642944, + -0.8196078538894653, + -0.45098036527633667, + 0.10588240623474121, + 0.23137259483337402, + -0.24705880880355835, + -0.545098066329956, + -0.3803921341896057, + -0.2549019455909729, + -0.6784313917160034, + -0.8039215803146362, + -0.6000000238418579, + -0.03529411554336548, + 0.30980396270751953, + -0.04313725233078003, + -0.7019608020782471, + -0.8588235378265381, + -0.843137264251709, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8509804010391235, + -0.8588235378265381, + -0.843137264251709, + -0.8509804010391235, + -0.615686297416687, + -0.019607841968536377, + 0.2705882787704468, + -0.13725489377975464, + -0.8274509906768799, + -0.8352941274642944, + -0.686274528503418, + -0.8274509906768799, + -0.8509804010391235, + -0.7803921699523926, + -0.30980390310287476, + 0.2627451419830322, + 0.043137311935424805, + -0.6392157077789307, + -0.8823529481887817, + -0.843137264251709, + -0.9686274528503418, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8666666746139526, + -0.8588235378265381, + -0.843137264251709, + -0.8509804010391235, + -0.7568627595901489, + -0.2235293984413147, + 0.23921573162078857, + 0.16862750053405762, + -0.6313725709915161, + -0.843137264251709, + -0.8039215803146362, + -0.8352941274642944, + -0.8196078538894653, + -0.8352941274642944, + -0.6078431606292725, + 0.15294122695922852, + 0.09019613265991211, + -0.615686297416687, + -0.9058823585510254, + -0.8509804010391235, + -0.9686274528503418, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8745098114013672, + -0.8588235378265381, + -0.8509804010391235, + -0.843137264251709, + -0.8274509906768799, + -0.5607843399047852, + -0.003921568393707275, + 0.23137259483337402, + -0.40392154455184937, + -0.8509804010391235, + -0.7960784435272217, + -0.8274509906768799, + -0.8196078538894653, + -0.8352941274642944, + -0.7960784435272217, + -0.09803920984268188, + 0.14509809017181396, + -0.5529412031173706, + -0.9215686321258545, + -0.8666666746139526, + -0.9529411792755127, + -0.9529411792755127, + -0.9450980424880981, + -0.9529411792755127, + -0.9529411792755127, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9450980424880981, + -0.7333333492279053, + 0.14509809017181396, + 0.38823533058166504, + -0.43529409170150757, + -0.8039215803146362, + -0.8588235378265381, + -0.8509804010391235, + -0.8588235378265381, + -0.8666666746139526, + -0.8823529481887817, + -0.8509804010391235, + -0.8588235378265381, + -0.615686297416687, + -0.19999998807907104, + -0.4588235020637512, + -0.8666666746139526, + -0.8901960849761963, + -0.9058823585510254, + -0.9215686321258545, + -0.9215686321258545, + -0.929411768913269, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9529411792755127, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9137254953384399, + -0.9372549057006836, + -0.4745097756385803, + 0.5137255191802979, + 0.7411764860153198, + 0.08235299587249756, + -0.545098066329956, + -0.7647058963775635, + -0.8509804010391235, + -0.8352941274642944, + -0.8274509906768799, + -0.8196078538894653, + -0.7490196228027344, + -0.5607843399047852, + -0.2392156720161438, + 0.09019613265991211, + -0.003921568393707275, + -0.4901960492134094, + -0.8509804010391235, + -0.8980392217636108, + -0.9137254953384399, + -0.9137254953384399, + -0.929411768913269, + -0.9372549057006836, + -0.9450980424880981, + -0.9450980424880981, + -0.9607843160629272, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.929411768913269, + -0.9058823585510254, + -0.9372549057006836, + -0.4823529124259949, + 0.48235297203063965, + 0.5529412031173706, + 0.3176470994949341, + -0.04313725233078003, + -0.4745097756385803, + -0.5843137502670288, + -0.46666663885116577, + -0.43529409170150757, + -0.5372549295425415, + -0.27843135595321655, + 0.2862745523452759, + 0.3490196466445923, + 0.08235299587249756, + 0.050980448722839355, + 0.13725495338439941, + -0.5607843399047852, + -0.8901960849761963, + -0.8980392217636108, + -0.929411768913269, + -0.929411768913269, + -0.9607843160629272, + -0.9607843160629272, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.9215686321258545, + -0.6470588445663452, + 0.2862745523452759, + 0.43529415130615234, + 0.3490196466445923, + 0.17647063732147217, + -0.2549019455909729, + -0.11372548341751099, + 0.29411768913269043, + 0.3333333730697632, + -0.019607841968536377, + 0.2627451419830322, + 0.8274509906768799, + 0.6705882549285889, + 0.3490196466445923, + 0.003921627998352051, + 0.22352945804595947, + -0.13725489377975464, + -0.843137264251709, + -0.8980392217636108, + -0.9215686321258545, + -0.9137254953384399, + -0.9372549057006836, + -0.9529411792755127, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8980392217636108, + -0.8196078538894653, + -0.003921568393707275, + 0.4745098352432251, + 0.2705882787704468, + 0.16078436374664307, + -0.07450979948043823, + 0.20784318447113037, + 0.7882353067398071, + 0.7176470756530762, + 0.20784318447113037, + 0.27843141555786133, + 0.6549019813537598, + 0.37254905700683594, + -0.04313725233078003, + -0.1294117569923401, + -0.011764705181121826, + -0.019607841968536377, + -0.7411764860153198, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.9372549057006836, + -0.9372549057006836, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9058823585510254, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.9058823585510254, + -0.34117645025253296, + 0.40392160415649414, + 0.20784318447113037, + 0.12941181659698486, + 0.12156867980957031, + 0.3333333730697632, + 0.5529412031173706, + 0.5764706134796143, + 0.17647063732147217, + 0.12941181659698486, + 0.40392160415649414, + 0.043137311935424805, + -0.3960784077644348, + -0.40392154455184937, + -0.29411762952804565, + -0.2549019455909729, + -0.6941176652908325, + -0.9215686321258545, + -0.8901960849761963, + -0.8823529481887817, + -0.9215686321258545, + -0.9137254953384399, + -0.9372549057006836, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8980392217636108, + -0.8823529481887817, + -0.9137254953384399, + -0.6392157077789307, + 0.20784318447113037, + 0.2862745523452759, + 0.035294175148010254, + -0.04313725233078003, + -0.2078431248664856, + -0.027450978755950928, + 0.18431377410888672, + 0.24705886840820312, + 0.058823585510253906, + 0.21568632125854492, + 0.08235299587249756, + -0.24705880880355835, + -0.43529409170150757, + -0.2235293984413147, + -0.4745097756385803, + -0.843137264251709, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9137254953384399, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8901960849761963, + -0.8901960849761963, + -0.8039215803146362, + -0.09019607305526733, + 0.11372554302215576, + -0.1921568512916565, + -0.26274508237838745, + -0.3960784077644348, + 0.043137311935424805, + 0.13725495338439941, + 0.12156867980957031, + -0.1294117569923401, + -0.1294117569923401, + 0.12941181659698486, + -0.09019607305526733, + -0.3490195870399475, + 0.019607901573181152, + -0.4901960492134094, + -0.9529411792755127, + -0.8901960849761963, + -0.8823529481887817, + -0.8823529481887817, + -0.9137254953384399, + -0.929411768913269, + -0.929411768913269, + -0.9372549057006836, + -0.9372549057006836, + -0.9137254953384399, + -0.9137254953384399, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.6078431606292725, + -0.3490195870399475, + -0.1294117569923401, + 0.043137311935424805, + -0.3803921341896057, + -0.2392156720161438, + 0.16078436374664307, + 0.019607901573181152, + -0.27843135595321655, + -0.38823527097702026, + -0.027450978755950928, + 0.20784318447113037, + -0.003921568393707275, + 0.08235299587249756, + -0.3019607663154602, + -0.9372549057006836, + -0.9058823585510254, + -0.8588235378265381, + -0.8588235378265381, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8745098114013672, + -0.8745098114013672, + -0.7647058963775635, + -0.09803920984268188, + 0.24705886840820312, + 0.011764764785766602, + 0.2549020051956177, + 0.21568632125854492, + 0.043137311935424805, + -0.09803920984268188, + -0.3019607663154602, + -0.12156862020492554, + 0.23137259483337402, + 0.18431377410888672, + 0.13725495338439941, + -0.29411762952804565, + -0.8980392217636108, + -0.8823529481887817, + -0.8588235378265381, + -0.8666666746139526, + -0.9686274528503418, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8823529481887817, + -0.8666666746139526, + -0.8509804010391235, + -0.7647058963775635, + -0.09019607305526733, + 0.32549023628234863, + 0.3647059202194214, + 0.5921568870544434, + 0.23921573162078857, + 0.11372554302215576, + -0.11372548341751099, + -0.270588219165802, + -0.2235293984413147, + 0.16078436374664307, + 0.22352945804595947, + 0.34117650985717773, + -0.21568626165390015, + -0.8980392217636108, + -0.8588235378265381, + -0.843137264251709, + -0.8509804010391235, + -0.9607843160629272, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9137254953384399, + -0.9058823585510254, + -0.9058823585510254, + -0.8980392217636108, + -0.8823529481887817, + -0.8823529481887817, + -0.8823529481887817, + -0.8745098114013672, + -0.8588235378265381, + -0.6941176652908325, + 0.003921627998352051, + 0.48235297203063965, + 0.7019608020782471, + 0.7176470756530762, + 0.4274510145187378, + 0.18431377410888672, + -0.3647058606147766, + -0.2549019455909729, + -0.3176470398902893, + 0.09803926944732666, + 0.3647059202194214, + 0.37254905700683594, + -0.16862744092941284, + -0.8980392217636108, + -0.8666666746139526, + -0.843137264251709, + -0.8509804010391235, + -0.9607843160629272, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8823529481887817, + -0.8745098114013672, + -0.8509804010391235, + -0.6549019813537598, + 0.10588240623474121, + 0.6784313917160034, + 0.6313725709915161, + 0.6235294342041016, + 0.7647058963775635, + 0.40392160415649414, + -0.2862744927406311, + -0.2862744927406311, + -0.29411762952804565, + 0.29411768913269043, + 0.5843137502670288, + 0.16078436374664307, + -0.4745097756385803, + -0.9058823585510254, + -0.8588235378265381, + -0.8509804010391235, + -0.8588235378265381, + -0.9686274528503418, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8823529481887817, + -0.8823529481887817, + -0.8745098114013672, + -0.8509804010391235, + -0.686274528503418, + -0.003921568393707275, + 0.5529412031173706, + 0.45098042488098145, + 0.37254905700683594, + 0.8509804010391235, + 0.7960784435272217, + 0.08235299587249756, + -0.26274508237838745, + -0.2078431248664856, + 0.4745098352432251, + 0.545098066329956, + -0.12156862020492554, + -0.6627451181411743, + -0.9137254953384399, + -0.843137264251709, + -0.843137264251709, + -0.8509804010391235, + -0.9607843160629272, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8980392217636108, + -0.8823529481887817, + -0.8823529481887817, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8745098114013672, + -0.7490196228027344, + -0.270588219165802, + 0.11372554302215576, + 0.3647059202194214, + 0.32549023628234863, + 0.6705882549285889, + 0.9058823585510254, + 0.2705882787704468, + -0.26274508237838745, + -0.23137253522872925, + 0.20000004768371582, + 0.019607901573181152, + -0.5686274766921997, + -0.8117647171020508, + -0.9137254953384399, + -0.843137264251709, + -0.8274509906768799, + -0.843137264251709, + -0.9450980424880981, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8980392217636108, + -0.8823529481887817, + -0.8745098114013672, + -0.8823529481887817, + -0.8823529481887817, + -0.8588235378265381, + -0.843137264251709, + -0.772549033164978, + -0.3960784077644348, + -0.2235293984413147, + 0.003921627998352051, + 0.301960825920105, + 0.16078436374664307, + 0.2705882787704468, + -0.04313725233078003, + -0.2862744927406311, + -0.13725489377975464, + -0.1607843041419983, + -0.5137255191802979, + -0.7333333492279053, + -0.8901960849761963, + -0.8823529481887817, + -0.843137264251709, + -0.8196078538894653, + -0.8274509906768799, + -0.9137254953384399, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8823529481887817, + -0.8823529481887817, + -0.8588235378265381, + -0.8274509906768799, + -0.7803921699523926, + -0.46666663885116577, + -0.29411762952804565, + -0.16862744092941284, + 0.46666669845581055, + 0.15294122695922852, + -0.3176470398902893, + -0.11372548341751099, + -0.06666666269302368, + 0.011764764785766602, + -0.46666663885116577, + -0.7098039388656616, + -0.772549033164978, + -0.8823529481887817, + -0.8823529481887817, + -0.843137264251709, + -0.8352941274642944, + -0.8196078538894653, + -0.9137254953384399, + -0.9215686321258545, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8745098114013672, + -0.8588235378265381, + -0.843137264251709, + -0.843137264251709, + -0.7568627595901489, + -0.45098036527633667, + -0.2235293984413147, + -0.24705880880355835, + 0.27843141555786133, + 0.4745098352432251, + -0.30980390310287476, + -0.07450979948043823, + -0.1294117569923401, + -0.13725489377975464, + -0.3176470398902893, + -0.7176470756530762, + -0.8745098114013672, + -0.8901960849761963, + -0.8588235378265381, + -0.8274509906768799, + -0.8352941274642944, + -0.8274509906768799, + -0.9450980424880981, + -0.9215686321258545, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8745098114013672, + -0.8745098114013672, + -0.8745098114013672, + -0.8509804010391235, + -0.843137264251709, + -0.8509804010391235, + -0.7098039388656616, + -0.4901960492134094, + -0.19999998807907104, + -0.12156862020492554, + 0.035294175148010254, + 0.4431372880935669, + 0.050980448722839355, + 0.12156867980957031, + -0.1450980305671692, + 0.011764764785766602, + -0.19999998807907104, + -0.6235294342041016, + -0.6313725709915161, + -0.7960784435272217, + -0.843137264251709, + -0.8196078538894653, + -0.8274509906768799, + -0.8274509906768799, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8823529481887817, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8509804010391235, + -0.843137264251709, + -0.8588235378265381, + -0.7254902124404907, + -0.4588235020637512, + -0.16862744092941284, + 0.10588240623474121, + 0.043137311935424805, + 0.22352945804595947, + 0.20000004768371582, + -0.08235293626785278, + -0.019607841968536377, + 0.019607901573181152, + -0.38823527097702026, + -0.4745097756385803, + -0.29411762952804565, + -0.5372549295425415, + -0.7960784435272217, + -0.8352941274642944, + -0.8196078538894653, + -0.8274509906768799, + -0.9529411792755127, + -0.9450980424880981, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8901960849761963, + -0.8823529481887817, + -0.8823529481887817, + -0.8745098114013672, + -0.8588235378265381, + -0.8509804010391235, + -0.843137264251709, + -0.8509804010391235, + -0.7333333492279053, + -0.43529409170150757, + -0.1921568512916565, + 0.11372554302215576, + 0.16862750053405762, + 0.035294175148010254, + 0.14509809017181396, + -0.11372548341751099, + -0.11372548341751099, + -0.1607843041419983, + -0.529411792755127, + -0.43529409170150757, + -0.08235293626785278, + -0.3176470398902893, + -0.6784313917160034, + -0.8039215803146362, + -0.8196078538894653, + -0.8274509906768799, + -0.9686274528503418, + -0.9529411792755127, + -0.9450980424880981, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8980392217636108, + -0.8823529481887817, + -0.8823529481887817, + -0.8745098114013672, + -0.8588235378265381, + -0.8588235378265381, + -0.8352941274642944, + -0.8588235378265381, + -0.7568627595901489, + -0.41960781812667847, + -0.19999998807907104, + 0.003921627998352051, + 0.20000004768371582, + 0.19215691089630127, + 0.2549020051956177, + -0.08235293626785278, + -0.2078431248664856, + -0.3803921341896057, + -0.6313725709915161, + -0.30980390310287476, + 0.011764764785766602, + -0.34117645025253296, + -0.6392157077789307, + -0.6392157077789307, + -0.7960784435272217, + -0.8352941274642944, + -0.9607843160629272, + -0.9529411792755127, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8666666746139526, + -0.843137264251709, + -0.8588235378265381, + -0.772549033164978, + -0.427450954914093, + -0.2078431248664856, + -0.08235293626785278, + 0.12941181659698486, + 0.27843141555786133, + 0.27843141555786133, + 0.301960825920105, + 0.058823585510253906, + -0.26274508237838745, + -0.19999998807907104, + 0.07450985908508301, + 0.11372554302215576, + -0.32549017667770386, + -0.7882353067398071, + -0.6392157077789307, + -0.7803921699523926, + -0.8588235378265381, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9215686321258545, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8588235378265381, + -0.8666666746139526, + -0.8509804010391235, + -0.8588235378265381, + -0.7882353067398071, + -0.4588235020637512, + -0.19999998807907104, + -0.05098038911819458, + 0.08235299587249756, + 0.20000004768371582, + 0.4274510145187378, + 0.7568627595901489, + 0.2862745523452759, + 0.19215691089630127, + 0.45098042488098145, + 0.458823561668396, + 0.2862745523452759, + -0.30980390310287476, + -0.8509804010391235, + -0.8196078538894653, + -0.8196078538894653, + -0.843137264251709, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9215686321258545, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.843137264251709, + -0.843137264251709, + -0.8352941274642944, + -0.843137264251709, + -0.529411792755127, + -0.1294117569923401, + 0.21568632125854492, + 0.3960784673690796, + 0.4117647409439087, + 0.4745098352432251, + 0.5843137502670288, + 0.2627451419830322, + 0.43529415130615234, + 0.6549019813537598, + 0.5607843399047852, + 0.30980396270751953, + -0.3960784077644348, + -0.8666666746139526, + -0.843137264251709, + -0.8196078538894653, + -0.8117647171020508, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8745098114013672, + -0.8745098114013672, + -0.8666666746139526, + -0.8274509906768799, + -0.8274509906768799, + -0.8274509906768799, + -0.8588235378265381, + -0.5843137502670288, + -0.03529411554336548, + 0.3960784673690796, + 0.5764706134796143, + 0.4117647409439087, + 0.40392160415649414, + 0.5686274766921997, + 0.4274510145187378, + 0.301960825920105, + 0.2549020051956177, + 0.38823533058166504, + 0.41960787773132324, + -0.270588219165802, + -0.8274509906768799, + -0.8352941274642944, + -0.8196078538894653, + -0.8196078538894653, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8509804010391235, + -0.8352941274642944, + -0.8274509906768799, + -0.843137264251709, + -0.843137264251709, + -0.686274528503418, + -0.2078431248664856, + 0.2862745523452759, + 0.32549023628234863, + 0.10588240623474121, + 0.13725495338439941, + 0.3490196466445923, + 0.23921573162078857, + -0.003921568393707275, + -0.07450979948043823, + 0.2549020051956177, + 0.38823533058166504, + -0.06666666269302368, + -0.6313725709915161, + -0.8352941274642944, + -0.8274509906768799, + -0.8352941274642944, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8823529481887817, + -0.8823529481887817, + -0.8745098114013672, + -0.8588235378265381, + -0.8509804010391235, + -0.843137264251709, + -0.843137264251709, + -0.8509804010391235, + -0.7882353067398071, + -0.43529409170150757, + 0.10588240623474121, + 0.11372554302215576, + -0.23137253522872925, + -0.1764705777168274, + 0.027451038360595703, + -0.027450978755950928, + -0.37254899740219116, + -0.4901960492134094, + -0.1764705777168274, + 0.09803926944732666, + 0.019607901573181152, + -0.46666663885116577, + -0.8352941274642944, + -0.8352941274642944, + -0.8352941274642944, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.8509804010391235, + -0.8588235378265381, + -0.8588235378265381, + -0.843137264251709, + -0.843137264251709, + -0.8352941274642944, + -0.5921568870544434, + -0.11372548341751099, + 0.035294175148010254, + -0.3960784077644348, + -0.615686297416687, + -0.4431372284889221, + -0.3176470398902893, + -0.7098039388656616, + -0.8196078538894653, + -0.6392157077789307, + -0.1450980305671692, + 0.07450985908508301, + -0.3333333134651184, + -0.8117647171020508, + -0.843137264251709, + -0.8196078538894653, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.929411768913269, + -0.929411768913269, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.8666666746139526, + -0.8588235378265381, + -0.8588235378265381, + -0.8509804010391235, + -0.843137264251709, + -0.843137264251709, + -0.8588235378265381, + -0.7254902124404907, + -0.32549017667770386, + -0.011764705181121826, + -0.3019607663154602, + -0.8509804010391235, + -0.8274509906768799, + -0.7019608020782471, + -0.8352941274642944, + -0.8588235378265381, + -0.7960784435272217, + -0.38823527097702026, + 0.058823585510253906, + -0.2392156720161438, + -0.772549033164978, + -0.8666666746139526, + -0.8274509906768799, + -0.9607843160629272, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.929411768913269, + -0.9215686321258545, + -0.9137254953384399, + -0.8980392217636108, + -0.8823529481887817, + -0.8745098114013672, + -0.8666666746139526, + -0.8588235378265381, + -0.8588235378265381, + -0.843137264251709, + -0.8509804010391235, + -0.8509804010391235, + -0.8039215803146362, + -0.4901960492134094, + -0.07450979948043823, + -0.04313725233078003, + -0.686274528503418, + -0.8274509906768799, + -0.8117647171020508, + -0.8509804010391235, + -0.8196078538894653, + -0.8274509906768799, + -0.6313725709915161, + -0.019607841968536377, + -0.1921568512916565, + -0.7568627595901489, + -0.8745098114013672, + -0.8352941274642944, + -0.9607843160629272, + -0.9529411792755127, + -0.9450980424880981, + -0.9372549057006836, + -0.9372549057006836, + -0.9215686321258545, + -0.9137254953384399, + -0.9058823585510254, + -0.8901960849761963, + -0.8823529481887817, + -0.8745098114013672, + -0.8745098114013672, + -0.8666666746139526, + -0.8588235378265381, + -0.8588235378265381, + -0.8588235378265381, + -0.843137264251709, + -0.7019608020782471, + -0.3019607663154602, + -0.011764705181121826, + -0.4745097756385803, + -0.843137264251709, + -0.7960784435272217, + -0.8274509906768799, + -0.8196078538894653, + -0.8196078538894653, + -0.7803921699523926, + -0.19999998807907104, + -0.09803920984268188, + -0.686274528503418, + -0.8980392217636108, + -0.8588235378265381 + ] + ] +} \ No newline at end of file diff --git a/neurons/deployment_layer/model_testdsperse/input.py b/neurons/deployment_layer/model_testdsperse/input.py new file mode 100644 index 00000000..78e7562d --- /dev/null +++ b/neurons/deployment_layer/model_testdsperse/input.py @@ -0,0 +1,41 @@ +from __future__ import annotations +from pydantic import BaseModel +from execution_layer.base_input import BaseInput +from execution_layer.input_registry import InputRegistry +from _validator.models.request_type import RequestType +import random +import json +from pathlib import Path + +LIST_SIZE = 5 + + +class CircuitInputSchema(BaseModel): + list_items: list[float] + + +@InputRegistry.register("testdsperse") +class CircuitInput(BaseInput): + + schema = CircuitInputSchema + + def __init__( + self, request_type: RequestType, data: dict[str, object] | None = None + ): + super().__init__(request_type, data) + + @staticmethod + def generate() -> dict[str, object]: + # TODO: generate randomized inputs for DSperse requests + input_file = Path(__file__).parent / "input.json" + return json.loads(input_file.read_text()) + + def validate(data: dict[str, object]) -> None: + return CircuitInputSchema(**data) + + @staticmethod + def process(data: dict[str, object]) -> dict[str, object]: + """ + No processing needs to take place, as all inputs are randomized. + """ + return data diff --git a/neurons/deployment_layer/model_testdsperse/metadata.json b/neurons/deployment_layer/model_testdsperse/metadata.json new file mode 100644 index 00000000..a2532fc6 --- /dev/null +++ b/neurons/deployment_layer/model_testdsperse/metadata.json @@ -0,0 +1,13 @@ +{ + "name": "DSPerse test NET model", + "description": "Model for testing DSPerse integration.", + "author": "Inference Labs", + "version": "0.0.1", + "proof_system": "EZKL", + "type": "dsperse_proof_generation", + "external_files": { + + }, + "dsperse_file": "https://example.com/path/to/dsperse_model_file", + "benchmark_choice_weight": 0.2 +} diff --git a/neurons/execution_layer/circuit.py b/neurons/execution_layer/circuit.py index 8c082cfe..0fe6928e 100644 --- a/neurons/execution_layer/circuit.py +++ b/neurons/execution_layer/circuit.py @@ -31,6 +31,7 @@ class CircuitType(str, Enum): PROOF_OF_WEIGHTS = "proof_of_weights" PROOF_OF_COMPUTATION = "proof_of_computation" + DSPERSE_PROOF_GENERATION = "dsperse_proof_generation" class ProofSystem(str, Enum): @@ -145,7 +146,8 @@ class CircuitMetadata: version: str proof_system: str type: CircuitType - external_files: dict[str, str] + external_files: None | dict[str, str] + dsperse_file: None | str netuid: int | None = None weights_version: int | None = None timeout: int | None = None @@ -396,6 +398,7 @@ def __init__(self, circuit_id: str): if not os.path.isdir(deployment_folder): raise ValueError(f"Circuit path is not a directory: model_{circuit_id}") + # XXX: might not fit to dsperse... self.paths = CircuitPaths(circuit_id) self.metadata = CircuitMetadata.from_file(self.paths.metadata) self.id = circuit_id diff --git a/neurons/protocol.py b/neurons/protocol.py index 1844b114..675d3686 100644 --- a/neurons/protocol.py +++ b/neurons/protocol.py @@ -107,3 +107,21 @@ def from_config(config_path: str = "miner.config.toml") -> dict[str, int]: except Exception as e: bt.logging.error(f"Error loading capacities from config: {e}") return {} + + +class DSperseProofGenerationDataModel(BaseModel): + """ + Data model for conveying DSPERSE proof generation messages + """ + + name: ClassVar = "dsperse-proof-generation" + model_id: Optional[str] = None + ### ??? + # input_data: Optional[Any] = None + # proof: Optional[str] = None + + # def deserialize(self) -> str | None: + # """ + # unpack proof + # """ + # return self.proof diff --git a/neurons/utils/pre_flight.py b/neurons/utils/pre_flight.py index 6e0426a5..51673321 100644 --- a/neurons/utils/pre_flight.py +++ b/neurons/utils/pre_flight.py @@ -5,7 +5,7 @@ import time import traceback from typing import Optional -from constants import FIVE_MINUTES, Roles +from constants import FIVE_MINUTES, Roles, DSPERSE_SLICES_FILE_NAME # trunk-ignore(pylint/E0611) import bittensor as bt @@ -34,6 +34,8 @@ "circuit.zkey", ] +SYNC_LOG_PREFIX = " SYNC | " + async def download_srs(logrows): await ezkl.get_srs(logrows=logrows, commitment=ezkl.PyCommitments.KZG) @@ -172,9 +174,9 @@ def sync_model_files(role: Optional[Roles] = None): Sync external model files """ MODEL_DIR = os.path.join(os.path.dirname(__file__), "..", "deployment_layer") - SYNC_LOG_PREFIX = " SYNC | " loop = asyncio.get_event_loop() + # Download SRS files to ~/.ezkl/srs for logrows 1 to 25 for logrows in range(1, 26): if os.path.exists( os.path.join(os.path.expanduser("~"), ".ezkl", "srs", f"kzg{logrows}.srs") @@ -242,21 +244,41 @@ def sync_model_files(role: Optional[Roles] = None): + f"File {key} for {model_hash} already downloaded, skipping..." ) continue + download_file(url, file_path) - bt.logging.info(SYNC_LOG_PREFIX + f"Downloading {url} to {file_path}...") - try: - with requests.get( - url, timeout=FIVE_MINUTES * 2, stream=True - ) as response: - response.raise_for_status() - with open(file_path, "wb") as f: - for chunk in response.iter_content(chunk_size=8192): - f.write(chunk) - except requests.RequestException as e: - bt.logging.error( - SYNC_LOG_PREFIX + f"Failed to download {url} to {file_path}: {e}" + dsperse_file_url = metadata.get("dsperse_file", None) + if dsperse_file_url: + file_path = os.path.join( + cli_parser.config.full_path_models, model_hash, DSPERSE_SLICES_FILE_NAME + ) + # dsperse files are just zip archives, + # but later on we extract them to a folder named after the file without extension + # so in case that folder already exists, we skip downloading and extracting again + extracted_path = os.path.splitext(file_path)[0] + if os.path.isdir(extracted_path) or os.path.isfile(file_path): + bt.logging.info( + SYNC_LOG_PREFIX + + f"Dsperse file {key} for {model_hash} already downloaded, skipping..." ) - continue + else: + download_file(dsperse_file_url, file_path) + + +def download_file(url, file_path): + """ + Download a file from a URL to a specified file path. + """ + bt.logging.info(SYNC_LOG_PREFIX + f"Downloading {url} to {file_path}...") + try: + with requests.get(url, timeout=FIVE_MINUTES * 2, stream=True) as response: + response.raise_for_status() + with open(file_path, "wb") as f: + for chunk in response.iter_content(chunk_size=8192): + f.write(chunk) + except requests.RequestException as e: + bt.logging.error( + SYNC_LOG_PREFIX + f"Failed to download {url} to {file_path}: {e}" + ) def ensure_nodejs_version(): From bf367691e51fb94e15d2d76fcac89ebf85e453ae Mon Sep 17 00:00:00 2001 From: millioner Date: Wed, 3 Dec 2025 19:36:53 +0100 Subject: [PATCH 03/28] dslices files handling for models --- neurons/_validator/core/dsperse_manager.py | 62 +++----- neurons/constants.py | 2 - .../input.json | 0 .../input.py | 4 +- .../metadata.json | 6 +- neurons/execution_layer/circuit.py | 2 +- neurons/utils/__init__.py | 4 +- neurons/utils/pre_flight.py | 134 +++++++++++++----- 8 files changed, 123 insertions(+), 91 deletions(-) rename neurons/deployment_layer/{model_testdsperse => model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c}/input.json (100%) rename neurons/deployment_layer/{model_testdsperse => model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c}/input.py (91%) rename neurons/deployment_layer/{model_testdsperse => model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c}/metadata.json (70%) diff --git a/neurons/_validator/core/dsperse_manager.py b/neurons/_validator/core/dsperse_manager.py index b212231e..8e792d08 100644 --- a/neurons/_validator/core/dsperse_manager.py +++ b/neurons/_validator/core/dsperse_manager.py @@ -1,19 +1,10 @@ import random -import os import uuid -import tempfile -import json -from pathlib import Path from bittensor import logging -from dsperse.src.slice.utils.converter import Converter -from dsperse.src.run.runner import Runner -from constants import DSPERSE_SLICES_FILE_NAME from deployment_layer.circuit_store import circuit_store from execution_layer.circuit import CircuitType, Circuit -from _validator.models.dslice_request import DSliceQueuedProofRequest -from _validator.models.request_type import RequestType from _validator.api import ValidatorAPI @@ -22,7 +13,7 @@ def __init__(self, api: ValidatorAPI): self.api = api self.circuits: list[Circuit] = [ circuit - for circuit in circuit_store.circuits + for circuit in circuit_store.circuits.values() if circuit.metadata.type == CircuitType.DSPERSE_PROOF_GENERATION ] self.runs = {} @@ -48,38 +39,21 @@ def generate_dslice_requests(self) -> list: # Logic to create DSlice requests goes here return dslice_requests - def extract_slices(self, circuit: Circuit) -> Path: - """ - Extract slices from a DSperse circuit file. - Returns the path to the folder containing the extracted slices. - """ - dsperse_file_path = ( - Path(circuit.paths.external_base_path) / DSPERSE_SLICES_FILE_NAME - ) - dsperse_slices_folder = dsperse_file_path.with_suffix("") - # TODO: Check is already converted - Converter.convert( - path=dsperse_file_path, - output_type="dirs", - output_path=dsperse_slices_folder, - ) - return dsperse_slices_folder - def run_dsperse(self, circuit: Circuit, run_uid: str) -> None: - slices_path = self.extract_slices(circuit) - - # Create temporary folder for run metadata - run_metadata_path = Path(tempfile.mkdtemp(prefix=f"dsperse_run_{run_uid}_")) - save_metadata_path = run_metadata_path / "metadata.json" - logging.info(f"Running DSperse model. Run metadata path: {run_metadata_path}") - - # Generate benchmarking input JSON - input_json_path = run_metadata_path / "input.json" - with open(input_json_path, "w") as f: - json.dump(circuit.input_handler(RequestType.BENCHMARK).generate(), f) - - # init runner and run the sliced model - runner = Runner( - run_metadata_path=run_metadata_path, save_metadata_path=save_metadata_path - ) - results = runner.run(input_json_path=input_json_path, slice_path=slices_path) + return [] + + # # Create temporary folder for run metadata + # run_metadata_path = Path(tempfile.mkdtemp(prefix=f"dsperse_run_{run_uid}_")) + # save_metadata_path = run_metadata_path / "metadata.json" + # logging.info(f"Running DSperse model. Run metadata path: {run_metadata_path}") + + # # Generate benchmarking input JSON + # input_json_path = run_metadata_path / "input.json" + # with open(input_json_path, "w") as f: + # json.dump(circuit.input_handler(RequestType.BENCHMARK).generate(), f) + + # # init runner and run the sliced model + # runner = Runner( + # run_metadata_path=run_metadata_path, save_metadata_path=save_metadata_path + # ) + # results = runner.run(input_json_path=input_json_path, slice_path=slices_path) diff --git a/neurons/constants.py b/neurons/constants.py index be8bc1ea..11e9ef79 100644 --- a/neurons/constants.py +++ b/neurons/constants.py @@ -173,8 +173,6 @@ class Roles: ONE_YEAR = ONE_DAY * 365 # Temporary folder for storing proof files TEMP_FOLDER = "/tmp/subnet-2" -# DSperse slices file name -DSPERSE_SLICES_FILE_NAME = "slices.dsperse" # Queue size limits MAX_POW_QUEUE_SIZE = 1024 diff --git a/neurons/deployment_layer/model_testdsperse/input.json b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.json similarity index 100% rename from neurons/deployment_layer/model_testdsperse/input.json rename to neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.json diff --git a/neurons/deployment_layer/model_testdsperse/input.py b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py similarity index 91% rename from neurons/deployment_layer/model_testdsperse/input.py rename to neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py index 78e7562d..1ae8e46a 100644 --- a/neurons/deployment_layer/model_testdsperse/input.py +++ b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py @@ -14,7 +14,9 @@ class CircuitInputSchema(BaseModel): list_items: list[float] -@InputRegistry.register("testdsperse") +@InputRegistry.register( + "b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c" +) class CircuitInput(BaseInput): schema = CircuitInputSchema diff --git a/neurons/deployment_layer/model_testdsperse/metadata.json b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json similarity index 70% rename from neurons/deployment_layer/model_testdsperse/metadata.json rename to neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json index a2532fc6..9a8f3be9 100644 --- a/neurons/deployment_layer/model_testdsperse/metadata.json +++ b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json @@ -5,9 +5,7 @@ "version": "0.0.1", "proof_system": "EZKL", "type": "dsperse_proof_generation", - "external_files": { - - }, - "dsperse_file": "https://example.com/path/to/dsperse_model_file", + "external_files": {}, + "dslises": [], "benchmark_choice_weight": 0.2 } diff --git a/neurons/execution_layer/circuit.py b/neurons/execution_layer/circuit.py index 0fe6928e..2451582e 100644 --- a/neurons/execution_layer/circuit.py +++ b/neurons/execution_layer/circuit.py @@ -147,7 +147,7 @@ class CircuitMetadata: proof_system: str type: CircuitType external_files: None | dict[str, str] - dsperse_file: None | str + dslices: None | list[dict] = [] netuid: int | None = None weights_version: int | None = None timeout: int | None = None diff --git a/neurons/utils/__init__.py b/neurons/utils/__init__.py index 9d8fe5b0..6d3b7601 100644 --- a/neurons/utils/__init__.py +++ b/neurons/utils/__init__.py @@ -1,7 +1,7 @@ from .pre_flight import ( run_shared_preflight_checks, ensure_snarkjs_installed, - sync_model_files, + sync_models, ) from .system import restart_app, clean_temp_files from .auto_update import AutoUpdate @@ -11,7 +11,7 @@ __all__ = [ "run_shared_preflight_checks", "ensure_snarkjs_installed", - "sync_model_files", + "sync_models", "restart_app", "clean_temp_files", "AutoUpdate", diff --git a/neurons/utils/pre_flight.py b/neurons/utils/pre_flight.py index 51673321..05d2cf04 100644 --- a/neurons/utils/pre_flight.py +++ b/neurons/utils/pre_flight.py @@ -1,22 +1,23 @@ import asyncio import json +import glob import os +import shutil import subprocess import time import traceback +from collections import OrderedDict +from functools import partial from typing import Optional -from constants import FIVE_MINUTES, Roles, DSPERSE_SLICES_FILE_NAME # trunk-ignore(pylint/E0611) import bittensor as bt import ezkl import requests +from dsperse.src.slice.utils.converter import Converter import cli_parser -from constants import IGNORED_MODEL_HASHES - -from functools import partial -from collections import OrderedDict +from constants import FIVE_MINUTES, IGNORED_MODEL_HASHES, Roles LOCAL_SNARKJS_INSTALL_DIR = os.path.join(os.path.expanduser("~"), ".snarkjs") LOCAL_SNARKJS_PATH = os.path.join( @@ -59,13 +60,13 @@ def run_shared_preflight_checks(role: Optional[Roles] = None): "Ensuring Node.js version": ensure_nodejs_version, "Checking SnarkJS installation": ensure_snarkjs_installed, "Checking EZKL installation": ensure_ezkl_installed, - "Syncing model files": partial(sync_model_files, role=role), + "Syncing model files": partial(sync_models, role=role), } ) bt.logging.info(" PreFlight | Running pre-flight checks") - # Skip sync_model_files during docker build + # Skip sync_models during docker build if os.getenv("SUBNET_2_DOCKER_BUILD", False): bt.logging.info(" PreFlight | Skipping model file sync") _ = preflight_checks.pop("Syncing model files") @@ -169,9 +170,9 @@ def ensure_snarkjs_installed(): ) from e -def sync_model_files(role: Optional[Roles] = None): +def sync_models(role: Optional[Roles] = None): """ - Sync external model files + Download SRS files and sync external files for all models in the deployment layer. """ MODEL_DIR = os.path.join(os.path.dirname(__file__), "..", "deployment_layer") @@ -207,6 +208,7 @@ def sync_model_files(role: Optional[Roles] = None): ) continue + # XXX: maybe use `meurons.execution_layer.circuit.CircuitMetadata` here? metadata_file = os.path.join(MODEL_DIR, model_hash, "metadata.json") if not os.path.isfile(metadata_file): bt.logging.error( @@ -224,44 +226,102 @@ def sync_model_files(role: Optional[Roles] = None): ) continue - external_files = metadata.get("external_files", {}) - for key, url in external_files.items(): - if (role == Roles.VALIDATOR and key not in VALIDATOR_EXTERNAL_FILES) or ( - role == Roles.MINER and key not in MINER_EXTERNAL_FILES - ): - bt.logging.info( - SYNC_LOG_PREFIX - + f"Skipping {key} for {model_hash} as it is not required for the {role}." - ) - continue - file_path = os.path.join( - cli_parser.config.full_path_models, model_hash, key + download_external_files(model_hash, metadata.get("external_files", {}), role) + download_dslices(model_hash, metadata.get("dslices", [])) + extract_dslices(model_hash) + + +def download_external_files( + model_hash: str, external_files: dict, role: Optional[Roles] = None +): + """ + Sync external files for a model based on its metadata. + """ + for key, url in external_files.items(): + if (role == Roles.VALIDATOR and key not in VALIDATOR_EXTERNAL_FILES) or ( + role == Roles.MINER and key not in MINER_EXTERNAL_FILES + ): + bt.logging.info( + SYNC_LOG_PREFIX + + f"Skipping {key} for {model_hash} as it is not required for the {role}." ) - os.makedirs(os.path.dirname(file_path), exist_ok=True) - if os.path.isfile(file_path): - bt.logging.info( - SYNC_LOG_PREFIX - + f"File {key} for {model_hash} already downloaded, skipping..." - ) - continue - download_file(url, file_path) + continue + file_path = os.path.join(cli_parser.config.full_path_models, model_hash, key) + os.makedirs(os.path.dirname(file_path), exist_ok=True) + if os.path.isfile(file_path): + bt.logging.info( + SYNC_LOG_PREFIX + + f"File {key} for {model_hash} already downloaded, skipping..." + ) + continue + download_file(url, file_path) - dsperse_file_url = metadata.get("dsperse_file", None) - if dsperse_file_url: - file_path = os.path.join( - cli_parser.config.full_path_models, model_hash, DSPERSE_SLICES_FILE_NAME + +def download_dslices(model_hash: str, dslices: list[dict]): + """ + Download DSperse slice files for a model if there are any. + """ + # TODO: not tested yet + if not dslices: + return + bt.logging.debug(SYNC_LOG_PREFIX + f"Checking DSlices for model {model_hash}...") + dslice_num = 0 + for dslice in dslices: + url = dslice.get("url") + if not url: # Skip if URL is missing + bt.logging.warning( + SYNC_LOG_PREFIX + + f"DSlice URL missing for slice {dslice_num} of {model_hash}, skipping..." ) - # dsperse files are just zip archives, + else: + # dslice files are just zip archives, # but later on we extract them to a folder named after the file without extension # so in case that folder already exists, we skip downloading and extracting again + file_path = os.path.join( + cli_parser.config.full_path_models, + model_hash, + f"slice_{dslice_num}.dslice", + ) extracted_path = os.path.splitext(file_path)[0] + # XXX: maybe we need to have some kind of versioning here and verification of the files? if os.path.isdir(extracted_path) or os.path.isfile(file_path): - bt.logging.info( + bt.logging.debug( SYNC_LOG_PREFIX - + f"Dsperse file {key} for {model_hash} already downloaded, skipping..." + + f"Dsperse file for {model_hash} already downloaded, skipping..." ) else: - download_file(dsperse_file_url, file_path) + download_file(url, file_path) + dslice_num += 1 + + +def extract_dslices(model_hash: str): + """ + Extract DSperse slice files for a model if there are any. + """ + model_path = os.path.join(cli_parser.config.full_path_models, model_hash) + dslice_files = glob.glob(os.path.join(model_path, "slice_*.dslice")) + if not dslice_files: + return + bt.logging.debug(SYNC_LOG_PREFIX + f"Extracting DSlices for model {model_hash}...") + for dslice_file in dslice_files: + extracted_path = os.path.splitext(dslice_file)[0] + if os.path.isdir(extracted_path): + # Extracted folder already exists, but the .dslice file is not deleted + # that means we probably interrupted extraction previously. Let's extract again + shutil.rmtree(extracted_path) + bt.logging.info( + SYNC_LOG_PREFIX + + f"Extracting DSlice file {dslice_file} to {extracted_path}..." + ) + Converter.convert( + path=dslice_file, + output_type="dirs", + output_path=extracted_path, + cleanup=True, + ) + if os.path.exists(dslice_file): + # `cleanup=True` doesn't work for some reason, so we manually delete the .dslice file + os.remove(dslice_file) def download_file(url, file_path): From 150659d2d11e2ba59f08a65f3b3199cbbc073cbb Mon Sep 17 00:00:00 2001 From: millioner Date: Wed, 3 Dec 2025 19:55:05 +0100 Subject: [PATCH 04/28] Model metadata fix --- .../metadata.json | 2 +- neurons/execution_layer/circuit.py | 2 +- neurons/utils/pre_flight.py | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json index 9a8f3be9..cfaeb117 100644 --- a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json +++ b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json @@ -6,6 +6,6 @@ "proof_system": "EZKL", "type": "dsperse_proof_generation", "external_files": {}, - "dslises": [], + "dslices": [], "benchmark_choice_weight": 0.2 } diff --git a/neurons/execution_layer/circuit.py b/neurons/execution_layer/circuit.py index 2451582e..d7fa7b7c 100644 --- a/neurons/execution_layer/circuit.py +++ b/neurons/execution_layer/circuit.py @@ -147,7 +147,7 @@ class CircuitMetadata: proof_system: str type: CircuitType external_files: None | dict[str, str] - dslices: None | list[dict] = [] + dslices: None | list[dict] = None netuid: int | None = None weights_version: int | None = None timeout: int | None = None diff --git a/neurons/utils/pre_flight.py b/neurons/utils/pre_flight.py index 05d2cf04..1a1bbc84 100644 --- a/neurons/utils/pre_flight.py +++ b/neurons/utils/pre_flight.py @@ -237,6 +237,8 @@ def download_external_files( """ Sync external files for a model based on its metadata. """ + if not external_files: + return for key, url in external_files.items(): if (role == Roles.VALIDATOR and key not in VALIDATOR_EXTERNAL_FILES) or ( role == Roles.MINER and key not in MINER_EXTERNAL_FILES From e5f23494341ac459562ee70eb57dc9823bf09a90 Mon Sep 17 00:00:00 2001 From: millioner Date: Wed, 3 Dec 2025 22:45:02 +0100 Subject: [PATCH 05/28] Adding dslice requests to the queue and processing them --- neurons/_miner/miner_session.py | 15 ++++ neurons/_validator/core/dsperse_manager.py | 80 +++++++++++++++------ neurons/_validator/core/request_pipeline.py | 26 +++++-- neurons/_validator/core/validator_loop.py | 5 +- neurons/cli_parser.py | 9 +++ neurons/protocol.py | 11 +-- 6 files changed, 112 insertions(+), 34 deletions(-) diff --git a/neurons/_miner/miner_session.py b/neurons/_miner/miner_session.py index 0358d400..e604cbbf 100644 --- a/neurons/_miner/miner_session.py +++ b/neurons/_miner/miner_session.py @@ -27,6 +27,7 @@ from execution_layer.verified_model_session import VerifiedModelSession from protocol import ( Competition, + DSliceProofGenerationDataModel, ProofOfWeightsDataModel, QueryForCapacities, QueryZkProof, @@ -80,6 +81,10 @@ def start_server(self) -> bool: self.server.register_route( path=f"/{QueryForCapacities.name}", endpoint=self.handleCapacityRequest ) + self.server.register_route( + path=f"/{DSliceProofGenerationDataModel.name}", + endpoint=self.handleDSliceRequest, + ) self.server.start() existing_miner = self.metagraph.axons[self.subnet_uid] @@ -466,6 +471,16 @@ def handleCompetitionRequest(self, data: Competition) -> JSONResponse: status_code=500, ) + def handleDSliceRequest(self, data: DSliceProofGenerationDataModel) -> JSONResponse: + """ + Handle DSlice proof generation requests from validators. + """ + bt.logging.info( + f"Handling DSlice slice proof generation request for slice_num={data.slice_num} run_uid={data.run_uid}" + ) + # Implementation for handling DSlice slice requests goes here + return JSONResponse(content={"error": "Not implemented"}, status_code=200) + def queryZkProof(self, data: QueryZkProof) -> JSONResponse: """ This function run proof generation of the model (with its output as well) diff --git a/neurons/_validator/core/dsperse_manager.py b/neurons/_validator/core/dsperse_manager.py index 8e792d08..0cd6e596 100644 --- a/neurons/_validator/core/dsperse_manager.py +++ b/neurons/_validator/core/dsperse_manager.py @@ -1,11 +1,17 @@ +import json import random -import uuid +from datetime import datetime +from pathlib import Path from bittensor import logging +from dsperse.src.run.runner import Runner -from deployment_layer.circuit_store import circuit_store -from execution_layer.circuit import CircuitType, Circuit +import cli_parser from _validator.api import ValidatorAPI +from _validator.models.dslice_request import DSliceQueuedProofRequest +from _validator.models.request_type import RequestType +from deployment_layer.circuit_store import circuit_store +from execution_layer.circuit import Circuit, CircuitType class DSperseManager: @@ -28,32 +34,64 @@ def generate_dslice_requests(self) -> list: return [] circuit = random.choice(self.circuits) - run_uid = str(uuid.uuid4()) + run_uid = datetime.now().strftime("%Y%m%d%H%M%S%f") logging.info( f"Generating DSlice requests for circuit {circuit.metadata.name}... Run UID: {run_uid}" ) - # TODO: ... - self.run_dsperse(circuit, run_uid) + slices: list[dict] = self.run_dsperse(circuit, run_uid) dslice_requests = [] + + for slice in slices: + with open(slice["input_file"], "r") as input_file: + with open(slice["output_file"], "r") as output_file: + self.api.stacked_requests_queue.insert( + 0, + DSliceQueuedProofRequest( + circuit=circuit, + inputs=json.load(input_file), + outputs=json.load(output_file), + slice_num=slice["slice"], + run_uid=run_uid, + ), + ) + # Logic to create DSlice requests goes here return dslice_requests - def run_dsperse(self, circuit: Circuit, run_uid: str) -> None: - return [] + def run_dsperse(self, circuit: Circuit, run_uid: str) -> list[dict]: + # Create temporary folder for run metadata + run_metadata_path = Path(cli_parser.config.dsperse_run_dir) / f"run_{run_uid}" + run_metadata_path.mkdir(parents=True, exist_ok=True) + save_metadata_path = run_metadata_path / "metadata.json" + logging.info(f"Running DSperse model. Run metadata path: {run_metadata_path}") + + # Generate benchmarking input JSON + input_json_path = run_metadata_path / "input.json" + with open(input_json_path, "w") as f: + json.dump(circuit.input_handler(RequestType.BENCHMARK).generate(), f) - # # Create temporary folder for run metadata - # run_metadata_path = Path(tempfile.mkdtemp(prefix=f"dsperse_run_{run_uid}_")) - # save_metadata_path = run_metadata_path / "metadata.json" - # logging.info(f"Running DSperse model. Run metadata path: {run_metadata_path}") + # init runner and run the sliced model + runner = Runner(save_metadata_path=save_metadata_path) + results = runner.run( + input_json_path=input_json_path, slice_path=circuit.paths.external_base_path + ) + logging.info( + f"DSperse run completed. Results data saved at {save_metadata_path}" + ) + slice_results = results["slice_results"] - # # Generate benchmarking input JSON - # input_json_path = run_metadata_path / "input.json" - # with open(input_json_path, "w") as f: - # json.dump(circuit.input_handler(RequestType.BENCHMARK).generate(), f) + if not all(slice_result["success"] for slice_result in slice_results.values()): + logging.error( + "DSperse run failed for some slices. Aborting request generation..." + ) + return [] - # # init runner and run the sliced model - # runner = Runner( - # run_metadata_path=run_metadata_path, save_metadata_path=save_metadata_path - # ) - # results = runner.run(input_json_path=input_json_path, slice_path=slices_path) + return [ + { + "slice": slice_num.split("_")[1], + "input_file": r["input_file"], + "output_file": r["output_file"], + } + for slice_num, r in slice_results.items() + ] diff --git a/neurons/_validator/core/request_pipeline.py b/neurons/_validator/core/request_pipeline.py index 4c0cc77f..05132753 100644 --- a/neurons/_validator/core/request_pipeline.py +++ b/neurons/_validator/core/request_pipeline.py @@ -21,7 +21,11 @@ from deployment_layer.circuit_store import circuit_store from execution_layer.circuit import Circuit, CircuitType from execution_layer.generic_input import GenericInput -from protocol import ProofOfWeightsDataModel, QueryZkProof +from protocol import ( + ProofOfWeightsDataModel, + QueryZkProof, + DSliceProofGenerationDataModel, +) from utils.wandb_logger import safe_log @@ -45,7 +49,9 @@ def _check_and_create_request( ) -> Request | None: """Check hash and create request if valid.""" try: - if isinstance(request_data, ProofOfWeightsDataModel): + if isinstance(request_data, ProofOfWeightsDataModel) or isinstance( + request_data, DSliceProofGenerationDataModel + ): input_data = request_data.inputs else: input_data = request_data.query_input @@ -78,7 +84,7 @@ def _check_and_create_request( save=save, ) - def _prepare_real_world_requests(self, filtered_uids: list[int]) -> list[Request]: + def _prepare_queued_requests(self, filtered_uids: list[int]) -> list[Request]: external_request = self.api.stacked_requests_queue.pop() requests = [] @@ -190,8 +196,16 @@ def get_request_data( False, ) elif circuit.metadata.type == CircuitType.DSPERSE_PROOF_GENERATION: - # TODO: Handle DSPERSE_PROOF_GENERATION request data preparation - pass + return ( + DSliceProofGenerationDataModel( + circuit=circuit.id, + inputs=request.inputs, + outputs=request.outputs, + slice_num=request.slice_num, + run_uid=request.run_uid, + ), + False, + ) return ( ProofOfWeightsDataModel( @@ -216,7 +230,7 @@ def prepare_single_request(self, uid: int) -> Request | None: Request | None: The prepared request, or None if preparation failed. """ if self.api.stacked_requests_queue: - requests = self._prepare_real_world_requests([uid]) + requests = self._prepare_queued_requests([uid]) else: requests = self._prepare_benchmark_requests([uid]) diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index 0afe0079..e0ec320b 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -344,8 +344,9 @@ async def maintain_request_pool(self): slots_available = self.current_concurrency - len(self.active_tasks) if slots_available > 0: - # TODO: some conditions to trigger dsperse requests generation? - self.dsperse_manager.generate_dslice_requests() + if not self.api.stacked_requests_queue: + # Refill the stacked requests queue from DSperse manager if needed + self.dsperse_manager.generate_dslice_requests() available_uids = [ uid diff --git a/neurons/cli_parser.py b/neurons/cli_parser.py index 79346510..8e84977d 100644 --- a/neurons/cli_parser.py +++ b/neurons/cli_parser.py @@ -96,6 +96,11 @@ def init_config(role: Optional[str] = None): default=None, help="Custom location for storing models data (optional)", ) + parser.add_argument( + "--dsperse-run-dir", + default=None, + help="Custom location for storing dsperse run data (optional)", + ) if role == Roles.VALIDATOR: # CLI arguments specific to the validator _validator_config() @@ -141,6 +146,10 @@ def init_config(role: Optional[str] = None): else: config.full_path_models = os.path.join(config.full_path, "models") + if not config.dsperse_run_dir: + config.dsperse_run_dir = os.path.join(config.full_path, "dsperse_runs") + os.makedirs(config.dsperse_run_dir, exist_ok=True) + if config.whitelisted_public_keys: config.whitelisted_public_keys = config.whitelisted_public_keys.split(",") diff --git a/neurons/protocol.py b/neurons/protocol.py index 675d3686..2d0aa8e3 100644 --- a/neurons/protocol.py +++ b/neurons/protocol.py @@ -109,16 +109,17 @@ def from_config(config_path: str = "miner.config.toml") -> dict[str, int]: return {} -class DSperseProofGenerationDataModel(BaseModel): +class DSliceProofGenerationDataModel(BaseModel): """ Data model for conveying DSPERSE proof generation messages """ name: ClassVar = "dsperse-proof-generation" - model_id: Optional[str] = None - ### ??? - # input_data: Optional[Any] = None - # proof: Optional[str] = None + circuit: Optional[str] = None + inputs: Optional[Any] = None + outputs: Optional[Any] = None + slice_num: Optional[str] = None + run_uid: Optional[str] = None # def deserialize(self) -> str | None: # """ From 3f5c1c13027e5168c3c5139faa7e1cbe1176ee49 Mon Sep 17 00:00:00 2001 From: millioner Date: Thu, 4 Dec 2025 23:29:21 +0100 Subject: [PATCH 06/28] Request generation fixes --- neurons/_validator/core/request_pipeline.py | 8 +++++--- neurons/_validator/models/base_rpc_request.py | 5 ++++- neurons/_validator/models/dslice_request.py | 5 ++++- .../input.py | 4 ++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/neurons/_validator/core/request_pipeline.py b/neurons/_validator/core/request_pipeline.py index 05132753..6718bd7a 100644 --- a/neurons/_validator/core/request_pipeline.py +++ b/neurons/_validator/core/request_pipeline.py @@ -91,13 +91,15 @@ def _prepare_queued_requests(self, filtered_uids: list[int]) -> list[Request]: for uid in filtered_uids: try: request_data, save = self.get_request_data( - RequestType.RWR, external_request.circuit, external_request + external_request.request_type, + external_request.circuit, + external_request, ) request = self._check_and_create_request( uid=uid, request_data=request_data, circuit=external_request.circuit, - request_type=RequestType.RWR, + request_type=external_request.request_type, request_hash=external_request.hash, save=save, ) @@ -157,7 +159,7 @@ def get_request_data( circuit.input_handler(request_type) if request_type == RequestType.BENCHMARK else circuit.input_handler( - RequestType.RWR, + request_type, copy.deepcopy(request.inputs), ) ) diff --git a/neurons/_validator/models/base_rpc_request.py b/neurons/_validator/models/base_rpc_request.py index 49fafa75..a0106e74 100644 --- a/neurons/_validator/models/base_rpc_request.py +++ b/neurons/_validator/models/base_rpc_request.py @@ -1,6 +1,8 @@ from pydantic import BaseModel -from execution_layer.circuit import Circuit + +from _validator.models.request_type import RequestType from _validator.utils.api import hash_inputs +from execution_layer.circuit import Circuit class QueuedRequestDataModel(BaseModel): @@ -11,6 +13,7 @@ class QueuedRequestDataModel(BaseModel): circuit: Circuit inputs: dict + request_type: RequestType = RequestType.RWR model_config = {"arbitrary_types_allowed": True} diff --git a/neurons/_validator/models/dslice_request.py b/neurons/_validator/models/dslice_request.py index 38817950..5bda9e5a 100644 --- a/neurons/_validator/models/dslice_request.py +++ b/neurons/_validator/models/dslice_request.py @@ -1,12 +1,15 @@ -from _validator.models.base_rpc_request import QueuedRequestDataModel from pydantic import Field +from _validator.models.base_rpc_request import QueuedRequestDataModel +from _validator.models.request_type import RequestType + class DSliceQueuedProofRequest(QueuedRequestDataModel): """ Request for a DSperse slice. """ + request_type: RequestType = RequestType.DSLICE slice_num: str = Field(..., description="Num of the DSperse slice") run_uid: str = Field(..., description="UID of the DSperse run") outputs: dict = Field(..., description="Outputs of the DSperse slice") diff --git a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py index 1ae8e46a..04d0dd25 100644 --- a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py +++ b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py @@ -11,7 +11,7 @@ class CircuitInputSchema(BaseModel): - list_items: list[float] + input_data: list[list[float]] @InputRegistry.register( @@ -32,7 +32,7 @@ def generate() -> dict[str, object]: input_file = Path(__file__).parent / "input.json" return json.loads(input_file.read_text()) - def validate(data: dict[str, object]) -> None: + def validate(self, data: dict[str, object]) -> None: return CircuitInputSchema(**data) @staticmethod From cc8d79beb517e5cf6d69868e3d246f5c51ff90aa Mon Sep 17 00:00:00 2001 From: millioner Date: Thu, 4 Dec 2025 23:56:35 +0100 Subject: [PATCH 07/28] Move DSperseManager to use it by miner --- neurons/_miner/miner_session.py | 6 ++++ neurons/_validator/core/validator_loop.py | 9 ++++-- .../dsperse_manager.py | 28 +++++++++---------- 3 files changed, 25 insertions(+), 18 deletions(-) rename neurons/{_validator/core => execution_layer}/dsperse_manager.py (82%) diff --git a/neurons/_miner/miner_session.py b/neurons/_miner/miner_session.py index e604cbbf..9fe571cb 100644 --- a/neurons/_miner/miner_session.py +++ b/neurons/_miner/miner_session.py @@ -23,6 +23,7 @@ SINGLE_PROOF_OF_WEIGHTS_MODEL_ID, ) from deployment_layer.circuit_store import circuit_store +from execution_layer.dsperse_manager import DSperseManager from execution_layer.generic_input import GenericInput from execution_layer.verified_model_session import VerifiedModelSession from protocol import ( @@ -49,6 +50,7 @@ def __init__(self): self.configure() self.check_register(should_exit=True) self.auto_update = AutoUpdate() + self.dsperse_manager = DSperseManager() self.log_batch = [] self.shuffled_uids = None self.last_shuffle_epoch = -1 @@ -478,6 +480,10 @@ def handleDSliceRequest(self, data: DSliceProofGenerationDataModel) -> JSONRespo bt.logging.info( f"Handling DSlice slice proof generation request for slice_num={data.slice_num} run_uid={data.run_uid}" ) + # from dsperse.src.prover import Prover + # prover = Prover() + # result = prover.prove(run_path, data_path, getattr(args, 'proof_output', None)) + # self.dsperse_manager # Implementation for handling DSlice slice requests goes here return JSONResponse(content={"error": "Not implemented"}, status_code=200) diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index e0ec320b..3e6824db 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -19,7 +19,6 @@ from _validator.competitions.competition import Competition from _validator.config import ValidatorConfig from _validator.core.capacity_manager import CapacityManager -from _validator.core.dsperse_manager import DSperseManager from _validator.core.prometheus import ( log_error, log_queue_metrics, @@ -48,6 +47,7 @@ ONE_HOUR, ONE_MINUTE, ) +from execution_layer.dsperse_manager import DSperseManager from utils import AutoUpdate, clean_temp_files, with_rate_limit from utils.gc_logging import gc_log_competition_metrics from utils.gc_logging import log_responses as gc_log_responses @@ -121,7 +121,7 @@ def __init__(self, config: ValidatorConfig): self.request_pipeline = RequestPipeline( self.config, self.score_manager, self.api ) - self.dsperse_manager = DSperseManager(self.api) + self.dsperse_manager = DSperseManager() self.request_queue = asyncio.Queue() self.active_tasks: dict[int, asyncio.Task] = {} @@ -346,7 +346,10 @@ async def maintain_request_pool(self): if slots_available > 0: if not self.api.stacked_requests_queue: # Refill the stacked requests queue from DSperse manager if needed - self.dsperse_manager.generate_dslice_requests() + for ( + dslice_request + ) in self.dsperse_manager.generate_dslice_requests(): + self.api.stacked_requests_queue.insert(0, dslice_request) available_uids = [ uid diff --git a/neurons/_validator/core/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py similarity index 82% rename from neurons/_validator/core/dsperse_manager.py rename to neurons/execution_layer/dsperse_manager.py index 0cd6e596..b4bbfd5f 100644 --- a/neurons/_validator/core/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -2,6 +2,7 @@ import random from datetime import datetime from pathlib import Path +from typing import Iterable from bittensor import logging from dsperse.src.run.runner import Runner @@ -15,21 +16,20 @@ class DSperseManager: - def __init__(self, api: ValidatorAPI): - self.api = api + def __init__(self): self.circuits: list[Circuit] = [ circuit for circuit in circuit_store.circuits.values() if circuit.metadata.type == CircuitType.DSPERSE_PROOF_GENERATION ] - self.runs = {} + self.runs = {} # run_uid -> run data (slices etc.), used by validator only - def generate_dslice_requests(self) -> list: + def generate_dslice_requests(self) -> Iterable[DSliceQueuedProofRequest]: """ Generate DSlice requests for DSperse models. Each DSlice request corresponds to one slice of a DSperse model. """ - if self.api.stacked_requests_queue or not self.circuits: + if not self.circuits: # there are already requests stacked, do not generate new DSlice requests return [] @@ -40,21 +40,19 @@ def generate_dslice_requests(self) -> list: ) slices: list[dict] = self.run_dsperse(circuit, run_uid) + self.runs[run_uid] = slices dslice_requests = [] for slice in slices: with open(slice["input_file"], "r") as input_file: with open(slice["output_file"], "r") as output_file: - self.api.stacked_requests_queue.insert( - 0, - DSliceQueuedProofRequest( - circuit=circuit, - inputs=json.load(input_file), - outputs=json.load(output_file), - slice_num=slice["slice"], - run_uid=run_uid, - ), - ) + yield DSliceQueuedProofRequest( + circuit=circuit, + inputs=json.load(input_file), + outputs=json.load(output_file), + slice_num=slice["slice"], + run_uid=run_uid, + ), # Logic to create DSlice requests goes here return dslice_requests From 2110cfac435255b590ee7a218bbc52f09dddc360 Mon Sep 17 00:00:00 2001 From: millioner Date: Mon, 8 Dec 2025 20:59:04 +0100 Subject: [PATCH 08/28] Proving slices on miner side --- neurons/_miner/miner_session.py | 14 +++-- neurons/execution_layer/dsperse_manager.py | 63 ++++++++++++++++++++-- uv.lock | 2 +- 3 files changed, 68 insertions(+), 11 deletions(-) diff --git a/neurons/_miner/miner_session.py b/neurons/_miner/miner_session.py index 9fe571cb..b63b6f05 100644 --- a/neurons/_miner/miner_session.py +++ b/neurons/_miner/miner_session.py @@ -480,12 +480,16 @@ def handleDSliceRequest(self, data: DSliceProofGenerationDataModel) -> JSONRespo bt.logging.info( f"Handling DSlice slice proof generation request for slice_num={data.slice_num} run_uid={data.run_uid}" ) - # from dsperse.src.prover import Prover - # prover = Prover() - # result = prover.prove(run_path, data_path, getattr(args, 'proof_output', None)) - # self.dsperse_manager + + result = self.dsperse_manager.prove_slice( + circuit_id=data.circuit, + slice_num=data.slice_num, + inputs=data.inputs, + outputs=data.outputs, + ) + # Implementation for handling DSlice slice requests goes here - return JSONResponse(content={"error": "Not implemented"}, status_code=200) + return JSONResponse(content=result, status_code=200) def queryZkProof(self, data: QueryZkProof) -> JSONResponse: """ diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index b4bbfd5f..87947336 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -1,11 +1,13 @@ import json import random +import tempfile from datetime import datetime from pathlib import Path from typing import Iterable from bittensor import logging from dsperse.src.run.runner import Runner +from dsperse.src.prover import Prover import cli_parser from _validator.api import ValidatorAPI @@ -41,7 +43,6 @@ def generate_dslice_requests(self) -> Iterable[DSliceQueuedProofRequest]: slices: list[dict] = self.run_dsperse(circuit, run_uid) self.runs[run_uid] = slices - dslice_requests = [] for slice in slices: with open(slice["input_file"], "r") as input_file: @@ -52,10 +53,7 @@ def generate_dslice_requests(self) -> Iterable[DSliceQueuedProofRequest]: outputs=json.load(output_file), slice_num=slice["slice"], run_uid=run_uid, - ), - - # Logic to create DSlice requests goes here - return dslice_requests + ) def run_dsperse(self, circuit: Circuit, run_uid: str) -> list[dict]: # Create temporary folder for run metadata @@ -93,3 +91,58 @@ def run_dsperse(self, circuit: Circuit, run_uid: str) -> list[dict]: } for slice_num, r in slice_results.items() ] + + def prove_slice( + self, circuit_id: str, slice_num: str, inputs: dict, outputs: dict + ) -> dict | None: + """ + Generate proof for a given slice. + """ + circuit = next((c for c in self.circuits if c.id == circuit_id), None) + if circuit is None: + raise ValueError(f"Circuit with ID {circuit_id} not found.") + model_dir = Path(circuit.paths.external_base_path) / f"slice_{slice_num}" + + with tempfile.TemporaryDirectory() as tmp_dir: + tmp_path = Path(tmp_dir) + + input_file = tmp_path / "input.json" + output_file = tmp_path / "output.json" + + with open(input_file, "w") as f: + json.dump(inputs, f) + + with open(output_file, "w") as f: + json.dump(outputs, f) + + prover = Prover() + result = prover.prove( + run_path=tmp_path, + model_dir=model_dir, + output_path=tmp_path, + ) + logging.info(f"Got proof generation result. Result: {result}") + + execution_results = result.get("execution_chain", {}).get( + "execution_results", [] + ) + execution_result = execution_results[0] if execution_results else None + if not execution_result: + logging.error(f"No execution results found in proof generation result.") + return None + + slice_id = execution_result.get("slice_id", None) + proof_execution = execution_result.get("proof_execution", {}) + success = proof_execution.get("success", False) + proof_generation_time = proof_execution.get("proof_generation_time", None) + proof_data = None + if proof_execution.get("proof_file", None): + with open(proof_execution["proof_file"], "r") as proof_file: + proof_data = json.load(proof_file) + + return { + "slice_id": slice_id, + "success": success, + "proof_generation_time": proof_generation_time, + "proof_data": proof_data, + } diff --git a/uv.lock b/uv.lock index bc4f7f67..e4db24b9 100644 --- a/uv.lock +++ b/uv.lock @@ -598,7 +598,7 @@ wheels = [ [[package]] name = "dsperse" version = "1.0.1" -source = { git = "https://github.com/inference-labs-inc/dsperse.git?rev=dsperse-integration#150a835580d9d32066dfb34cce38c49331691b60" } +source = { git = "https://github.com/inference-labs-inc/dsperse.git?rev=dsperse-integration#8a8204d366c87f9d39cdc2abc4bd5560bdfa75da" } dependencies = [ { name = "colorama" }, { name = "ezkl" }, From 672920d57be9706edac09c2b3bd7ce69d692dda4 Mon Sep 17 00:00:00 2001 From: millioner Date: Wed, 10 Dec 2025 19:03:36 +0100 Subject: [PATCH 09/28] Verify dslice proofs in validator side --- cspell.json | 2 + neurons/_validator/core/request.py | 2 + neurons/_validator/core/request_pipeline.py | 9 +- neurons/_validator/core/response_processor.py | 49 +++++--- neurons/_validator/core/validator_loop.py | 54 +++++--- neurons/_validator/models/miner_response.py | 4 + neurons/execution_layer/dsperse_manager.py | 119 +++++++++++++----- neurons/protocol.py | 10 +- 8 files changed, 186 insertions(+), 63 deletions(-) diff --git a/cspell.json b/cspell.json index 06533650..5845f73c 100644 --- a/cspell.json +++ b/cspell.json @@ -12,6 +12,8 @@ "CIRCOM", "circuitized", "coldkey", + "dslice", + "dsperse", "dtype", "ezkl", "fastapi", diff --git a/neurons/_validator/core/request.py b/neurons/_validator/core/request.py index 6c3bd239..91865fc4 100644 --- a/neurons/_validator/core/request.py +++ b/neurons/_validator/core/request.py @@ -22,6 +22,8 @@ class Request: circuit: Circuit | None = None data: dict[str, Any] | None = None inputs: GenericInput | None = None + dsperse_slice_num: int | None = None + dsperse_run_uid: str | None = None request_hash: str | None = None response_time: float | None = None deserialized: dict[str, object] | None = None diff --git a/neurons/_validator/core/request_pipeline.py b/neurons/_validator/core/request_pipeline.py index 6718bd7a..dc09aa42 100644 --- a/neurons/_validator/core/request_pipeline.py +++ b/neurons/_validator/core/request_pipeline.py @@ -67,7 +67,7 @@ def _check_and_create_request( axon: AxonInfo = self.config.metagraph.axons[uid] - return Request( + request = Request( uid=uid, ip=axon.ip, port=axon.port, @@ -84,6 +84,13 @@ def _check_and_create_request( save=save, ) + if isinstance(request_data, DSliceProofGenerationDataModel): + # Add dsperse specific fields + request.dsperse_slice_num = request_data.slice_num + request.dsperse_run_uid = request_data.run_uid + + return request + def _prepare_queued_requests(self, filtered_uids: list[int]) -> list[Request]: external_request = self.api.stacked_requests_queue.pop() requests = [] diff --git a/neurons/_validator/core/response_processor.py b/neurons/_validator/core/response_processor.py index 537141ac..d775dd75 100644 --- a/neurons/_validator/core/response_processor.py +++ b/neurons/_validator/core/response_processor.py @@ -1,15 +1,19 @@ from __future__ import annotations -import traceback + import time +import traceback + import bittensor as bt +from execution_layer.dsperse_manager import DSperseManager +from execution_layer.generic_input import GenericInput +from execution_layer.verified_model_session import VerifiedModelSession +from substrateinterface import Keypair + from _validator.core.request import Request from _validator.models.completed_proof_of_weights import CompletedProofOfWeightsItem from _validator.models.miner_response import MinerResponse from _validator.models.request_type import RequestType from _validator.scoring.score_manager import ScoreManager -from execution_layer.generic_input import GenericInput -from execution_layer.verified_model_session import VerifiedModelSession -from substrateinterface import Keypair class ResponseProcessor: @@ -17,11 +21,13 @@ def __init__( self, metagraph, score_manager: ScoreManager, + dsperse_manager: DSperseManager, user_uid, hotkey: Keypair, ): self.metagraph = metagraph self.score_manager = score_manager + self.dsperse_manager = dsperse_manager self.user_uid = user_uid self.hotkey = hotkey self.proof_batches_queue = [] @@ -31,13 +37,13 @@ def process_single_response(self, response: Request | None) -> MinerResponse | N if response is None: return None miner_response = MinerResponse.from_raw_response(response) - if miner_response.proof_content is None: + if not miner_response.proof_content: bt.logging.debug( f"Miner at UID: {miner_response.uid} failed to provide a valid proof for " f"{str(miner_response.circuit)}." f"Response from miner: {miner_response.raw}" ) - elif miner_response.proof_content: + else: bt.logging.debug( f"Attempting to verify proof for UID: {miner_response.uid} " f"using {str(miner_response.circuit)}." @@ -72,18 +78,29 @@ def process_single_response(self, response: Request | None) -> MinerResponse | N def verify_proof_string( self, response: MinerResponse, validator_inputs: GenericInput ) -> bool: - if not response.proof_content or not response.public_json: - bt.logging.error(f"Proof or public json not found for UID: {response.uid}") + if not response.proof_content: + bt.logging.error(f"Proof not found for UID: {response.uid}") return False try: - inference_session = VerifiedModelSession( - GenericInput(RequestType.RWR, response.public_json), - response.circuit, - ) - res: bool = inference_session.verify_proof( - validator_inputs, response.proof_content - ) - inference_session.end() + if response.request_type == RequestType.DSLICE: + res = self.dsperse_manager.verify_slice_proof( + run_uid=response.dsperse_run_uid, + slice_num=response.dsperse_slice_num, + proof=response.proof_content, + ) + else: + if not response.public_json: + raise ValueError( + f"Public signals not found in for UID: {response.uid}" + ) + inference_session = VerifiedModelSession( + GenericInput(RequestType.RWR, response.public_json), + response.circuit, + ) + res: bool = inference_session.verify_proof( + validator_inputs, response.proof_content + ) + inference_session.end() return res except Exception as e: raise e diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index 3e6824db..27e4270b 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -52,6 +52,9 @@ from utils.gc_logging import gc_log_competition_metrics from utils.gc_logging import log_responses as gc_log_responses +# Set to True for synchronous request processing (easier debugging) +DEBUG_SYNC_MODE = os.environ.get("DEBUG_SYNC_MODE", "").lower() in ("1", "true", "yes") + class ValidatorLoop: """ @@ -76,6 +79,7 @@ def __init__(self, config: ValidatorConfig): self.competition_to_validator_queue = MPQueue() # Messages FROM competition self.current_concurrency = MAX_CONCURRENT_REQUESTS self.capacity_manager = CapacityManager(self.config, self.httpx_client) + self.dsperse_manager = DSperseManager() try: competition_id = 1 bt.logging.info("Initializing competition module...") @@ -106,6 +110,7 @@ def __init__(self, config: ValidatorConfig): self.response_processor = ResponseProcessor( self.config.metagraph, self.score_manager, + self.dsperse_manager, self.config.user_uid, self.config.wallet.hotkey, ) @@ -121,7 +126,6 @@ def __init__(self, config: ValidatorConfig): self.request_pipeline = RequestPipeline( self.config, self.score_manager, self.api ) - self.dsperse_manager = DSperseManager() self.request_queue = asyncio.Queue() self.active_tasks: dict[int, asyncio.Task] = {} @@ -363,13 +367,24 @@ async def maintain_request_pool(self): uid ) if request: - task = asyncio.create_task( - self._process_single_request(request) - ) - self.active_tasks[uid] = task - task.add_done_callback( - lambda t, uid=uid: self._handle_completed_task(t, uid) - ) + if DEBUG_SYNC_MODE: + # Synchronous mode for easier debugging -- NOT FOR PRODUCTION + bt.logging.debug( + f"[SYNC MODE] Processing request for UID {uid}" + ) + await self._process_single_request(request) + self.processed_uids.add(uid) + else: + # Asynchronous mode for normal operation + task = asyncio.create_task( + self._process_single_request(request) + ) + self.active_tasks[uid] = task + task.add_done_callback( + lambda t, uid=uid: self._handle_completed_task( + t, uid + ) + ) await asyncio.sleep(0) except Exception as e: @@ -459,13 +474,22 @@ async def _process_single_request(self, request: Request) -> Request: ) if response is None: return request - processed_response: ( - MinerResponse | None - ) = await asyncio.get_event_loop().run_in_executor( - self.response_thread_pool, - self.response_processor.process_single_response, - response, - ) + + if DEBUG_SYNC_MODE: + # Direct sync call for easier debugging + processed_response = self.response_processor.process_single_response( + response + ) + else: + # Run in thread pool to avoid blocking event loop + processed_response: ( + MinerResponse | None + ) = await asyncio.get_event_loop().run_in_executor( + self.response_thread_pool, + self.response_processor.process_single_response, + response, + ) + if processed_response: await self._handle_response(processed_response) except Exception as e: diff --git a/neurons/_validator/models/miner_response.py b/neurons/_validator/models/miner_response.py index 033cc1dc..5e58f9be 100644 --- a/neurons/_validator/models/miner_response.py +++ b/neurons/_validator/models/miner_response.py @@ -43,6 +43,8 @@ class MinerResponse: proof_content: dict | str | None = None public_json: list[str] | None = None request_type: RequestType | None = None + dsperse_slice_num: int | None = None + dsperse_run_uid: str | None = None raw: dict | None = None error: str | None = None save: bool = False @@ -125,6 +127,8 @@ def from_raw_response(cls, response: Request) -> "MinerResponse": public_json=public_json, raw=deserialized_response, save=response.save, + dsperse_slice_num=response.dsperse_slice_num, + dsperse_run_uid=response.dsperse_run_uid, ) except json.JSONDecodeError as e: traceback.print_exc() diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index 87947336..324195df 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -1,20 +1,33 @@ import json import random import tempfile +from dataclasses import dataclass from datetime import datetime from pathlib import Path from typing import Iterable from bittensor import logging -from dsperse.src.run.runner import Runner +from deployment_layer.circuit_store import circuit_store from dsperse.src.prover import Prover +from dsperse.src.run.runner import Runner +from dsperse.src.verifier import Verifier +from execution_layer.circuit import Circuit, CircuitType import cli_parser from _validator.api import ValidatorAPI from _validator.models.dslice_request import DSliceQueuedProofRequest from _validator.models.request_type import RequestType -from deployment_layer.circuit_store import circuit_store -from execution_layer.circuit import Circuit, CircuitType + + +@dataclass +class DSliceData: + slice_num: str + circuit_id: str + input_file: Path + output_file: Path + proof_file: Path | None = None + proof_generation_time: float | None = None + success: bool | None = None class DSperseManager: @@ -26,6 +39,12 @@ def __init__(self): ] self.runs = {} # run_uid -> run data (slices etc.), used by validator only + def _get_circuit_by_id(self, circuit_id: str) -> Circuit | None: + circuit = next((c for c in self.circuits if c.id == circuit_id), None) + if circuit is None: + raise ValueError(f"Circuit with ID {circuit_id} not found.") + return circuit + def generate_dslice_requests(self) -> Iterable[DSliceQueuedProofRequest]: """ Generate DSlice requests for DSperse models. @@ -41,21 +60,21 @@ def generate_dslice_requests(self) -> Iterable[DSliceQueuedProofRequest]: f"Generating DSlice requests for circuit {circuit.metadata.name}... Run UID: {run_uid}" ) - slices: list[dict] = self.run_dsperse(circuit, run_uid) + slices: list[DSliceData] = self.run_dsperse(circuit, run_uid) self.runs[run_uid] = slices - for slice in slices: - with open(slice["input_file"], "r") as input_file: - with open(slice["output_file"], "r") as output_file: + for slice_data in slices: + with open(slice_data.input_file, "r") as input_file: + with open(slice_data.output_file, "r") as output_file: yield DSliceQueuedProofRequest( circuit=circuit, inputs=json.load(input_file), outputs=json.load(output_file), - slice_num=slice["slice"], + slice_num=slice_data.slice_num, run_uid=run_uid, ) - def run_dsperse(self, circuit: Circuit, run_uid: str) -> list[dict]: + def run_dsperse(self, circuit: Circuit, run_uid: str) -> list[DSliceData]: # Create temporary folder for run metadata run_metadata_path = Path(cli_parser.config.dsperse_run_dir) / f"run_{run_uid}" run_metadata_path.mkdir(parents=True, exist_ok=True) @@ -84,11 +103,12 @@ def run_dsperse(self, circuit: Circuit, run_uid: str) -> list[dict]: return [] return [ - { - "slice": slice_num.split("_")[1], - "input_file": r["input_file"], - "output_file": r["output_file"], - } + DSliceData( + slice_num=slice_num.split("_")[-1], + input_file=Path(r["input_file"]), + output_file=Path(r["output_file"]), + circuit_id=circuit.id, + ) for slice_num, r in slice_results.items() ] @@ -98,9 +118,7 @@ def prove_slice( """ Generate proof for a given slice. """ - circuit = next((c for c in self.circuits if c.id == circuit_id), None) - if circuit is None: - raise ValueError(f"Circuit with ID {circuit_id} not found.") + circuit = self._get_circuit_by_id(circuit_id) model_dir = Path(circuit.paths.external_base_path) / f"slice_{slice_num}" with tempfile.TemporaryDirectory() as tmp_dir: @@ -123,16 +141,8 @@ def prove_slice( ) logging.info(f"Got proof generation result. Result: {result}") - execution_results = result.get("execution_chain", {}).get( - "execution_results", [] - ) - execution_result = execution_results[0] if execution_results else None - if not execution_result: - logging.error(f"No execution results found in proof generation result.") - return None + slice_id, proof_execution = self._parse_dsperse_result(result, "proof") - slice_id = execution_result.get("slice_id", None) - proof_execution = execution_result.get("proof_execution", {}) success = proof_execution.get("success", False) proof_generation_time = proof_execution.get("proof_generation_time", None) proof_data = None @@ -141,8 +151,61 @@ def prove_slice( proof_data = json.load(proof_file) return { - "slice_id": slice_id, + "circuit_id": circuit_id, + "slice_num": slice_id, "success": success, "proof_generation_time": proof_generation_time, - "proof_data": proof_data, + "proof": proof_data, } + + def verify_slice_proof( + self, + run_uid: str, + slice_num: str, + proof: dict, + ) -> bool: + """ + Verify proof for a given slice. + """ + if run_uid not in self.runs: + raise ValueError(f"Run UID {run_uid} not found.") + + slice_data: DSliceData = next( + (s for s in self.runs[run_uid] if s.slice_num == slice_num), None + ) + if slice_data is None: + raise ValueError(f"Slice data for slice number {slice_num} not found.") + + circuit = self._get_circuit_by_id(slice_data.circuit_id) + + proof_file_path = slice_data.input_file.parent / "proof.json" + with open(proof_file_path, "w") as proof_file: + json.dump(proof, proof_file) + slice_data.proof_file = proof_file_path + + verifier = Verifier() + result = verifier.verify( + run_path=slice_data.input_file.parent, + model_path=Path(circuit.paths.external_base_path) / f"slice_{slice_num}", + ) + + logging.info(f"Got proof verification result. Result: {result}") + + _, verification_execution = self._parse_dsperse_result(result, "verification") + success = verification_execution.get("success", False) + slice_data.success = success + return success + + def _parse_dsperse_result(self, result: dict, execution_type: str) -> dict: + execution_results = result.get("execution_chain", {}).get( + "execution_results", [] + ) + execution_result = execution_results[0] if execution_results else None + if not execution_result: + logging.error(f"No execution results found in proof generation result.") + return None + + slice_id = execution_result.get("slice_id", None) + execution = execution_result.get(f"{execution_type}_execution", {}) + + return slice_id, execution diff --git a/neurons/protocol.py b/neurons/protocol.py index 2d0aa8e3..db03db53 100644 --- a/neurons/protocol.py +++ b/neurons/protocol.py @@ -1,11 +1,12 @@ from __future__ import annotations + +import os from typing import Any, ClassVar, Optional import bittensor as bt -from pydantic import BaseModel - import toml from execution_layer.circuit import ProofSystem +from pydantic import BaseModel class QueryZkProof(BaseModel): @@ -94,7 +95,10 @@ def deserialize(self) -> Optional[dict[str, int]]: return self.capacities @staticmethod - def from_config(config_path: str = "miner.config.toml") -> dict[str, int]: + def from_config(config_path: str | None = None) -> dict[str, int]: + if config_path is None: + # Use env var if available, otherwise fall back to default config path + config_path = os.environ.get("MINER_CIRCUITS_CONFIG", "miner.config.toml") try: with open(config_path, "r") as f: config = toml.load(f) From bf901c626261e0f5304ec98f70c059253ace35dc Mon Sep 17 00:00:00 2001 From: millioner Date: Wed, 10 Dec 2025 19:58:03 +0100 Subject: [PATCH 10/28] Cleanup completed DSperse run --- neurons/_validator/core/response_processor.py | 3 ++ neurons/execution_layer/dsperse_manager.py | 32 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/neurons/_validator/core/response_processor.py b/neurons/_validator/core/response_processor.py index d775dd75..b2dba81a 100644 --- a/neurons/_validator/core/response_processor.py +++ b/neurons/_validator/core/response_processor.py @@ -88,6 +88,9 @@ def verify_proof_string( slice_num=response.dsperse_slice_num, proof=response.proof_content, ) + self.dsperse_manager.check_run_completion( + run_uid=response.dsperse_run_uid, remove_completed=True + ) else: if not response.public_json: raise ValueError( diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index 324195df..e8805d23 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -1,6 +1,7 @@ import json import random import tempfile +import shutil from dataclasses import dataclass from datetime import datetime from pathlib import Path @@ -196,6 +197,37 @@ def verify_slice_proof( slice_data.success = success return success + def check_run_completion( + self, run_uid: str, remove_completed: bool = False + ) -> bool: + """ + Check if all slices in a run have been successfully verified. + """ + if run_uid not in self.runs: + raise ValueError(f"Run UID {run_uid} not found.") + + slices: list[DSliceData] = self.runs[run_uid] + all_verified = all( + slice_data.success + for slice_data in slices + if slice_data.success is not None + ) + if all_verified and remove_completed: + self.cleanup_run(run_uid) + return all_verified + + def cleanup_run(self, run_uid: str): + """ + Cleanup run data and delete run folder for a given run UID. + """ + if run_uid not in self.runs: + raise ValueError(f"Cannot cleanup run data. Run UID {run_uid} not found.") + logging.info(f"Cleaning up run data for run UID {run_uid}...") + run_path = self.runs[run_uid][0].input_file.parent.parent + if run_path.exists() and run_path.is_dir(): + shutil.rmtree(run_path) + del self.runs[run_uid] + def _parse_dsperse_result(self, result: dict, execution_type: str) -> dict: execution_results = result.get("execution_chain", {}).get( "execution_results", [] From 50f142b0802c808a81fe253e47f7fe4173a6449f Mon Sep 17 00:00:00 2001 From: millioner Date: Wed, 10 Dec 2025 22:48:31 +0100 Subject: [PATCH 11/28] Generate random input for DSLice request --- .../input.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py index 04d0dd25..f5f8c876 100644 --- a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py +++ b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py @@ -1,13 +1,14 @@ from __future__ import annotations -from pydantic import BaseModel + +import random + from execution_layer.base_input import BaseInput from execution_layer.input_registry import InputRegistry +from pydantic import BaseModel + from _validator.models.request_type import RequestType -import random -import json -from pathlib import Path -LIST_SIZE = 5 +INPUT_LENGTH = 3072 class CircuitInputSchema(BaseModel): @@ -28,9 +29,9 @@ def __init__( @staticmethod def generate() -> dict[str, object]: - # TODO: generate randomized inputs for DSperse requests - input_file = Path(__file__).parent / "input.json" - return json.loads(input_file.read_text()) + return { + "input_data": [[random.uniform(-1.0, 1.0) for _ in range(INPUT_LENGTH)]] + } def validate(self, data: dict[str, object]) -> None: return CircuitInputSchema(**data) From 14a93963345d5a752d215206e882bcca29b531f6 Mon Sep 17 00:00:00 2001 From: millioner Date: Wed, 10 Dec 2025 22:49:53 +0100 Subject: [PATCH 12/28] Log request type to console --- neurons/_validator/utils/logging.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/neurons/_validator/utils/logging.py b/neurons/_validator/utils/logging.py index e143aa89..0490620a 100644 --- a/neurons/_validator/utils/logging.py +++ b/neurons/_validator/utils/logging.py @@ -104,6 +104,7 @@ def log_responses(responses: list[MinerResponse]): ("Proof Size", "right", "blue"), ("Circuit Name", "left", "magenta"), ("Proof System", "left", "red"), + ("Request Type", "left", "white"), ] sorted_responses = sorted(responses, key=lambda x: x.uid) @@ -115,6 +116,7 @@ def log_responses(responses: list[MinerResponse]): str(response.proof_size), (response.circuit.metadata.name if response.circuit else "Unknown"), (response.circuit.metadata.proof_system if response.circuit else "Unknown"), + (response.request_type.name if response.request_type else "Unknown"), ] for response in sorted_responses ] From 1a9bafbc7fdd220582e6265ed817407a17293648 Mon Sep 17 00:00:00 2001 From: millioner Date: Wed, 10 Dec 2025 23:08:36 +0100 Subject: [PATCH 13/28] Removing dsperse run fix --- neurons/execution_layer/dsperse_manager.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index e8805d23..57c4e2ed 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -207,11 +207,7 @@ def check_run_completion( raise ValueError(f"Run UID {run_uid} not found.") slices: list[DSliceData] = self.runs[run_uid] - all_verified = all( - slice_data.success - for slice_data in slices - if slice_data.success is not None - ) + all_verified = all(slice_data.success for slice_data in slices) if all_verified and remove_completed: self.cleanup_run(run_uid) return all_verified From 2d23514baf41c27904a0e7a7599d54447f91b535 Mon Sep 17 00:00:00 2001 From: millioner Date: Wed, 10 Dec 2025 23:11:03 +0100 Subject: [PATCH 14/28] Option to disable metrics logging --- neurons/_validator/core/validator_loop.py | 50 ++++++++++++----------- neurons/cli_parser.py | 7 ++++ neurons/execution_layer/circuit.py | 32 ++++++++------- 3 files changed, 51 insertions(+), 38 deletions(-) diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index 27e4270b..dbea53cd 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -14,6 +14,7 @@ import httpx from bittensor.core.chain_data import AxonInfo +import cli_parser from _validator.api import ValidatorAPI from _validator.api.client import query_miner from _validator.competitions.competition import Competition @@ -260,7 +261,7 @@ def update_competition_metrics(self): try: metrics_to_log = self.competition.get_summary_for_logging() - if metrics_to_log: + if metrics_to_log and not cli_parser.config.disable_metric_logging: metrics_to_log["validator_key"] = ( self.config.wallet.hotkey.ss58_address ) @@ -293,30 +294,31 @@ async def log_responses(self): if self.recent_responses: console_log_responses(self.recent_responses) - try: - block = ( - self.config.metagraph.block.item() - if self.config.metagraph.block is not None - else 0 - ) - _ = await asyncio.get_event_loop().run_in_executor( - self.thread_pool, - lambda: gc_log_responses( - self.config.metagraph, - self.config.wallet.hotkey, - self.config.user_uid, - self.recent_responses, - ( - time.time() - self.last_response_time - if hasattr(self, "last_response_time") - else 0 + if not cli_parser.config.disable_metric_logging: + try: + block = ( + self.config.metagraph.block.item() + if self.config.metagraph.block is not None + else 0 + ) + _ = await asyncio.get_event_loop().run_in_executor( + self.thread_pool, + lambda: gc_log_responses( + self.config.metagraph, + self.config.wallet.hotkey, + self.config.user_uid, + self.recent_responses, + ( + time.time() - self.last_response_time + if hasattr(self, "last_response_time") + else 0 + ), + block, + self.score_manager.scores, ), - block, - self.score_manager.scores, - ), - ) - except Exception as e: - bt.logging.error(f"Error in GC logging: {e}") + ) + except Exception as e: + bt.logging.error(f"Error in GC logging: {e}") self.last_response_time = time.time() self.recent_responses = [] diff --git a/neurons/cli_parser.py b/neurons/cli_parser.py index 8e84977d..6d559a1e 100644 --- a/neurons/cli_parser.py +++ b/neurons/cli_parser.py @@ -73,6 +73,12 @@ def init_config(role: Optional[str] = None): help="Whether to disable WandB logging.", action="store_true", ) + parser.add_argument( + "--disable-metric-logging", + default=False, + help="Whether to disable metric logging.", + action="store_true", + ) parser.add_argument( "--dev", default=False, @@ -132,6 +138,7 @@ def init_config(role: Optional[str] = None): config.eth_wallet if config.eth_wallet is not None else "0x002" ) config.disable_wandb = True + config.disable_metric_logging = True config.verbose = config.verbose if config.verbose is None else True config.full_path = os.path.expanduser("~/.bittensor/subnet-2") # type: ignore diff --git a/neurons/execution_layer/circuit.py b/neurons/execution_layer/circuit.py index d7fa7b7c..2e31bdd6 100644 --- a/neurons/execution_layer/circuit.py +++ b/neurons/execution_layer/circuit.py @@ -1,27 +1,30 @@ from __future__ import annotations + +import json +import os +import re +import time from dataclasses import dataclass, field from enum import Enum + import torch -import os -import json -import cli_parser -from execution_layer.input_registry import InputRegistry + +# trunk-ignore(pylint/E0611) +from bittensor import Wallet, logging, subtensor from execution_layer.base_input import BaseInput -from utils.metrics_logger import log_circuit_metrics -from utils.gc_logging import gc_log_eval_metrics +from execution_layer.input_registry import InputRegistry + +import cli_parser from constants import ( - MAX_EVALUATION_ITEMS, + CIRCUIT_TIMEOUT_SECONDS, DEFAULT_PROOF_SIZE, + MAX_EVALUATION_ITEMS, MAXIMUM_SCORE_MEDIAN_SAMPLE, - CIRCUIT_TIMEOUT_SECONDS, ONE_MINUTE, ) from utils import with_rate_limit -import time -import re - -# trunk-ignore(pylint/E0611) -from bittensor import logging, subtensor, Wallet +from utils.gc_logging import gc_log_eval_metrics +from utils.metrics_logger import log_circuit_metrics class CircuitType(str, Enum): @@ -265,7 +268,8 @@ def update(self, item: CircuitEvaluationItem): except Exception as e: logging.error(f"Failed to save evaluation data: {e}") - self._log_metrics() + if not cli_parser.config.disable_metric_logging: + self._log_metrics() @with_rate_limit(period=ONE_MINUTE) def _log_metrics(self) -> None: From 80fbdeeb7fe090e0ced972ca6146b9039d6fb0bc Mon Sep 17 00:00:00 2001 From: millioner Date: Thu, 11 Dec 2025 19:49:27 +0100 Subject: [PATCH 15/28] Requests rescktheduling and a lot of refactoring --- cspell.json | 2 + neurons/_miner/miner_session.py | 2 +- neurons/_validator/api/client.py | 65 ++--- neurons/_validator/core/exceptions.py | 28 +++ neurons/_validator/core/request.py | 4 +- neurons/_validator/core/request_pipeline.py | 103 ++++---- neurons/_validator/core/response_processor.py | 151 ++++++------ neurons/_validator/core/validator_loop.py | 227 ++++++++++-------- neurons/_validator/models/miner_response.py | 193 +++++---------- neurons/_validator/utils/proof_of_weights.py | 3 - neurons/execution_layer/dsperse_manager.py | 11 +- neurons/scripts/check_miner.py | 2 - 12 files changed, 369 insertions(+), 422 deletions(-) create mode 100644 neurons/_validator/core/exceptions.py diff --git a/cspell.json b/cspell.json index 5845f73c..86e21a23 100644 --- a/cspell.json +++ b/cspell.json @@ -13,6 +13,7 @@ "circuitized", "coldkey", "dslice", + "dslices", "dsperse", "dtype", "ezkl", @@ -43,6 +44,7 @@ "uvicorn", "venv", "wandb", + "winddown", "zkproof" ], "ignoreWords": [], diff --git a/neurons/_miner/miner_session.py b/neurons/_miner/miner_session.py index b63b6f05..a047909b 100644 --- a/neurons/_miner/miner_session.py +++ b/neurons/_miner/miner_session.py @@ -478,7 +478,7 @@ def handleDSliceRequest(self, data: DSliceProofGenerationDataModel) -> JSONRespo Handle DSlice proof generation requests from validators. """ bt.logging.info( - f"Handling DSlice slice proof generation request for slice_num={data.slice_num} run_uid={data.run_uid}" + f"Handling DSlice proof generation request for slice_num={data.slice_num} run_uid={data.run_uid}" ) result = self.dsperse_manager.prove_slice( diff --git a/neurons/_validator/api/client.py b/neurons/_validator/api/client.py index ecf640d3..52ce6382 100644 --- a/neurons/_validator/api/client.py +++ b/neurons/_validator/api/client.py @@ -1,11 +1,11 @@ import hashlib import json import time -import traceback import bittensor as bt import httpx +from _validator.models.miner_response import MinerResponse from _validator.core.request import Request from utils.signatures import Headers @@ -14,44 +14,31 @@ async def query_miner( httpx_client: httpx.AsyncClient, request: Request, wallet: bt.wallet, -) -> Request | None: - try: - # Use httpx.URL for safer URL construction - url = httpx.URL( - scheme="http", - host=request.ip, - port=request.port, - path=f"/{request.url_path.lstrip('/')}", - ) - content = json.dumps(request.data) - - headers = get_headers(request, content, wallet) - - start_time = time.perf_counter() - response = await httpx_client.post( - url=url, - content=content, - timeout=request.circuit.timeout if request.circuit else None, - headers=headers, - ) - response.raise_for_status() - end_time = time.perf_counter() - - result = response.json() - request.response_time = end_time - start_time - request.deserialized = result - return request - - except httpx.InvalidURL: - bt.logging.warning( - f"Ignoring UID as there is not a valid URL: {request.uid}. {request.ip}:{request.port}" - ) - return None - - except httpx.HTTPError as e: - bt.logging.warning(f"Failed to query miner for UID: {request.uid}. Error: {e}") - traceback.print_exc() - return None +) -> MinerResponse: + # Use httpx.URL for safer URL construction + url = httpx.URL( + scheme="http", + host=request.ip, + port=request.port, + path=f"/{request.url_path.lstrip('/')}", + ) + content = json.dumps(request.data) + + headers = get_headers(request, content, wallet) + + start_time = time.perf_counter() + response = await httpx_client.post( + url=url, + content=content, + timeout=request.circuit.timeout if request.circuit else None, + headers=headers, + ) + response.raise_for_status() + end_time = time.perf_counter() + + request.response_time = end_time - start_time + + return MinerResponse.from_raw_response(request, response.json()) def get_headers(request: Request, content: str, wallet: bt.wallet) -> dict: diff --git a/neurons/_validator/core/exceptions.py b/neurons/_validator/core/exceptions.py new file mode 100644 index 00000000..aaf98f21 --- /dev/null +++ b/neurons/_validator/core/exceptions.py @@ -0,0 +1,28 @@ +"""Custom exceptions for validator core operations.""" + + +class ProofException(Exception): + """Base exception for proof-related errors.""" + + def __init__(self, uid: int, circuit: str, message: str = ""): + self.uid = uid + self.circuit = circuit + self.message = message + super().__init__(self.message) + + +class EmptyProofException(ProofException): + """Raised when miner fails to provide a proof.""" + + def __init__(self, uid: int, circuit: str, raw_response: str | None = None): + self.raw_response = raw_response + message = f"Miner at UID {uid} failed to provide a valid proof for {circuit}." + super().__init__(uid, circuit, message) + + +class IncorrectProofException(ProofException): + """Raised when proof verification fails.""" + + def __init__(self, uid: int, circuit: str): + message = f"Miner at UID {uid} provided an incorrect proof for {circuit}." + super().__init__(uid, circuit, message) diff --git a/neurons/_validator/core/request.py b/neurons/_validator/core/request.py index 91865fc4..39d54c28 100644 --- a/neurons/_validator/core/request.py +++ b/neurons/_validator/core/request.py @@ -1,6 +1,7 @@ from dataclasses import dataclass from typing import Any +from _validator.models.base_rpc_request import QueuedRequestDataModel from _validator.models.request_type import RequestType from execution_layer.circuit import Circuit from execution_layer.generic_input import GenericInput @@ -24,7 +25,8 @@ class Request: inputs: GenericInput | None = None dsperse_slice_num: int | None = None dsperse_run_uid: str | None = None + # next one is used only for rescheduling DSlice and RWR requests in case of failure + queued_request: QueuedRequestDataModel | None = None request_hash: str | None = None response_time: float | None = None - deserialized: dict[str, object] | None = None save: bool = False diff --git a/neurons/_validator/core/request_pipeline.py b/neurons/_validator/core/request_pipeline.py index dc09aa42..475d61dc 100644 --- a/neurons/_validator/core/request_pipeline.py +++ b/neurons/_validator/core/request_pipeline.py @@ -10,6 +10,7 @@ from _validator.api import ValidatorAPI from _validator.config import ValidatorConfig from _validator.core.request import Request +from _validator.models.base_rpc_request import QueuedRequestDataModel from _validator.models.request_type import RequestType from _validator.pow.proof_of_weights_handler import ProofOfWeightsHandler from _validator.scoring.score_manager import ScoreManager @@ -41,7 +42,9 @@ def __init__( def _check_and_create_request( self, uid: int, - request_data: ProofOfWeightsDataModel | QueryZkProof, + request_data: ( + ProofOfWeightsDataModel | QueryZkProof | DSliceProofGenerationDataModel + ), circuit: Circuit, request_type: RequestType, request_hash: str | None = None, @@ -89,58 +92,53 @@ def _check_and_create_request( request.dsperse_slice_num = request_data.slice_num request.dsperse_run_uid = request_data.run_uid + if isinstance(request_data, QueuedRequestDataModel): + # DSlice and RWR requests may need to be rescheduled, so keep the original queued request + request.queued_request = request_data + return request - def _prepare_queued_requests(self, filtered_uids: list[int]) -> list[Request]: + def _prepare_queued_request(self, uid: int) -> Request: external_request = self.api.stacked_requests_queue.pop() - requests = [] - - for uid in filtered_uids: - try: - request_data, save = self.get_request_data( - external_request.request_type, - external_request.circuit, - external_request, - ) - request = self._check_and_create_request( - uid=uid, - request_data=request_data, - circuit=external_request.circuit, - request_type=external_request.request_type, - request_hash=external_request.hash, - save=save, - ) - if request: - requests.append(request) - except Exception as e: - bt.logging.error(f"Error preparing request for UID {uid}: {e}") - traceback.print_exc() - self.api.set_request_result( - external_request.hash, - {"success": False, "error": "Error preparing request"}, - ) - continue - return requests + request = None - def _prepare_benchmark_requests(self, filtered_uids: list[int]) -> list[Request]: - circuit = self.select_circuit_for_benchmark() - if circuit is None: - bt.logging.error("No circuit selected") - return [] - - requests = [] - for uid in filtered_uids: - request_data, save = self.get_request_data(RequestType.BENCHMARK, circuit) + try: + request_data, save = self.get_request_data( + external_request.request_type, + external_request.circuit, + external_request, + ) request = self._check_and_create_request( uid=uid, request_data=request_data, - circuit=circuit, - request_type=RequestType.BENCHMARK, + circuit=external_request.circuit, + request_type=external_request.request_type, + request_hash=external_request.hash, save=save, ) - if request: - requests.append(request) - return requests + except Exception as e: + bt.logging.error(f"Error preparing request for UID {uid}: {e}") + traceback.print_exc() + self.api.set_request_result( + external_request.hash, + {"success": False, "error": "Error preparing request"}, + ) + return request + + def _prepare_benchmark_request(self, uid: int) -> Request: + circuit = self.select_circuit_for_benchmark() + if circuit is None: + bt.logging.error("No circuit selected") + return None + + request_data, save = self.get_request_data(RequestType.BENCHMARK, circuit) + return self._check_and_create_request( + uid=uid, + request_data=request_data, + circuit=circuit, + request_type=RequestType.BENCHMARK, + save=save, + ) def select_circuit_for_benchmark(self) -> Circuit: """ @@ -227,20 +225,3 @@ def get_request_data( ), False, ) - - def prepare_single_request(self, uid: int) -> Request | None: - """ - Prepare a single request for a specific UID. - - Args: - uid (int): The UID to prepare a request for. - - Returns: - Request | None: The prepared request, or None if preparation failed. - """ - if self.api.stacked_requests_queue: - requests = self._prepare_queued_requests([uid]) - else: - requests = self._prepare_benchmark_requests([uid]) - - return requests[0] if requests else None diff --git a/neurons/_validator/core/response_processor.py b/neurons/_validator/core/response_processor.py index b2dba81a..b853559f 100644 --- a/neurons/_validator/core/response_processor.py +++ b/neurons/_validator/core/response_processor.py @@ -1,109 +1,100 @@ from __future__ import annotations import time -import traceback import bittensor as bt from execution_layer.dsperse_manager import DSperseManager from execution_layer.generic_input import GenericInput from execution_layer.verified_model_session import VerifiedModelSession -from substrateinterface import Keypair -from _validator.core.request import Request -from _validator.models.completed_proof_of_weights import CompletedProofOfWeightsItem +from _validator.core.exceptions import EmptyProofException, IncorrectProofException from _validator.models.miner_response import MinerResponse from _validator.models.request_type import RequestType -from _validator.scoring.score_manager import ScoreManager class ResponseProcessor: - def __init__( - self, - metagraph, - score_manager: ScoreManager, - dsperse_manager: DSperseManager, - user_uid, - hotkey: Keypair, - ): - self.metagraph = metagraph - self.score_manager = score_manager + def __init__(self, dsperse_manager: DSperseManager): self.dsperse_manager = dsperse_manager - self.user_uid = user_uid - self.hotkey = hotkey - self.proof_batches_queue = [] - self.completed_proof_of_weights_queue: list[CompletedProofOfWeightsItem] = [] - def process_single_response(self, response: Request | None) -> MinerResponse | None: - if response is None: - return None - miner_response = MinerResponse.from_raw_response(response) + def verify_single_response( + self, miner_response: MinerResponse + ) -> MinerResponse | None: + """ + Verify a single response from a miner + + Raises: + EmptyProofException: If miner fails to provide a proof. + IncorrectProofException: If proof verification fails. + """ + circuit_str = str(miner_response.circuit) + if not miner_response.proof_content: - bt.logging.debug( + bt.logging.error( f"Miner at UID: {miner_response.uid} failed to provide a valid proof for " - f"{str(miner_response.circuit)}." - f"Response from miner: {miner_response.raw}" + f"{circuit_str}. Response from miner: {miner_response.raw}" ) - else: + raise EmptyProofException( + uid=miner_response.uid, + circuit=circuit_str, + raw_response=miner_response.raw, + ) + + bt.logging.debug( + f"Attempting to verify proof for UID: {miner_response.uid} " + f"using {circuit_str}." + ) + + start_time = time.time() + verification_result = self._verify_response_proof( + miner_response, miner_response.inputs + ) + miner_response.verification_time = time.time() - start_time + miner_response.verification_result = verification_result + + if not verification_result: bt.logging.debug( - f"Attempting to verify proof for UID: {miner_response.uid} " - f"using {str(miner_response.circuit)}." + f"Miner at UID: {miner_response.uid} provided a proof" + f" for {circuit_str}, but verification failed." + ) + raise IncorrectProofException( + uid=miner_response.uid, + circuit=circuit_str, ) - try: - start_time = time.time() - verification_result = self.verify_proof_string( - miner_response, response.inputs - ) - miner_response.verification_time = time.time() - start_time - miner_response.set_verification_result(verification_result) - if not verification_result: - bt.logging.debug( - f"Miner at UID: {miner_response.uid} provided a proof" - f" for {str(miner_response.circuit)}" - ", but verification failed." - ) - except Exception as e: - bt.logging.debug( - f"Unable to verify proof for UID: {miner_response.uid}. Error: {e}" - ) - traceback.print_exc() - if miner_response.verification_result: - bt.logging.debug( - f"Miner at UID: {miner_response.uid} provided a valid proof " - f"for {str(miner_response.circuit)} " - f"in {miner_response.response_time} seconds." - ) + bt.logging.debug( + f"Miner at UID: {miner_response.uid} provided a valid proof " + f"for {circuit_str} in {miner_response.response_time} seconds." + ) return miner_response - def verify_proof_string( + def _verify_response_proof( self, response: MinerResponse, validator_inputs: GenericInput ) -> bool: + """ + Verify the proof contained in the miner's response. + """ if not response.proof_content: bt.logging.error(f"Proof not found for UID: {response.uid}") return False - try: - if response.request_type == RequestType.DSLICE: - res = self.dsperse_manager.verify_slice_proof( - run_uid=response.dsperse_run_uid, - slice_num=response.dsperse_slice_num, - proof=response.proof_content, - ) - self.dsperse_manager.check_run_completion( - run_uid=response.dsperse_run_uid, remove_completed=True - ) - else: - if not response.public_json: - raise ValueError( - f"Public signals not found in for UID: {response.uid}" - ) - inference_session = VerifiedModelSession( - GenericInput(RequestType.RWR, response.public_json), - response.circuit, - ) - res: bool = inference_session.verify_proof( - validator_inputs, response.proof_content - ) - inference_session.end() - return res - except Exception as e: - raise e + + if response.request_type == RequestType.DSLICE: + res = self.dsperse_manager.verify_slice_proof( + run_uid=response.dsperse_run_uid, + slice_num=response.dsperse_slice_num, + proof=response.proof_content, + ) + self.dsperse_manager.check_run_completion( + run_uid=response.dsperse_run_uid, remove_completed=True + ) + else: + if not response.public_json: + raise ValueError(f"Public signals not found in for UID: {response.uid}") + inference_session = VerifiedModelSession( + GenericInput(RequestType.RWR, response.public_json), + response.circuit, + ) + res: bool = inference_session.verify_proof( + validator_inputs, response.proof_content + ) + inference_session.end() + return res diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index dbea53cd..a2d8ba10 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -20,6 +20,7 @@ from _validator.competitions.competition import Competition from _validator.config import ValidatorConfig from _validator.core.capacity_manager import CapacityManager +from _validator.core.exceptions import EmptyProofException, IncorrectProofException from _validator.core.prometheus import ( log_error, log_queue_metrics, @@ -108,13 +109,7 @@ def __init__(self, config: ValidatorConfig): self.config.full_path_score, self.competition, ) - self.response_processor = ResponseProcessor( - self.config.metagraph, - self.score_manager, - self.dsperse_manager, - self.config.user_uid, - self.config.wallet.hotkey, - ) + self.response_processor = ResponseProcessor(self.dsperse_manager) self.weights_manager = WeightsManager( self.config.subtensor, self.config.metagraph, @@ -323,70 +318,88 @@ async def log_responses(self): self.last_response_time = time.time() self.recent_responses = [] + async def maintain_competitions(self): + """ + Maintain competition message handling. + """ + try: + message = await asyncio.get_event_loop().run_in_executor( + self.thread_pool, + lambda: self.competition_to_validator_queue.get(timeout=0.1), + ) + if message == ValidatorMessage.WINDDOWN: + bt.logging.info( + "Received winddown message, reducing concurrency to zero" + ) + self.current_concurrency = 0 + elif message == ValidatorMessage.COMPETITION_COMPLETE: + bt.logging.info( + "Received competition complete message, restoring concurrency" + ) + self.current_concurrency = MAX_CONCURRENT_REQUESTS + except Empty: + bt.logging.trace("No messages in competition queue") + except Exception as e: + bt.logging.error(f"Error in competition message handling: {e}") + traceback.print_exc() + async def maintain_request_pool(self): + """ + Maintain the pool of active requests to miners. + Basically, the main loop of the validator. + """ while self._should_run: + await self.maintain_competitions() try: - try: - message = await asyncio.get_event_loop().run_in_executor( - self.thread_pool, - lambda: self.competition_to_validator_queue.get(timeout=0.1), - ) - if message == ValidatorMessage.WINDDOWN: - bt.logging.info( - "Received winddown message, reducing concurrency to zero" - ) - self.current_concurrency = 0 - elif message == ValidatorMessage.COMPETITION_COMPLETE: - bt.logging.info( - "Received competition complete message, restoring concurrency" - ) - self.current_concurrency = MAX_CONCURRENT_REQUESTS - except Empty: - bt.logging.trace("No messages in competition queue") - except Exception as e: - bt.logging.error(f"Error in competition message handling: {e}") - traceback.print_exc() - slots_available = self.current_concurrency - len(self.active_tasks) - if slots_available > 0: - if not self.api.stacked_requests_queue: - # Refill the stacked requests queue from DSperse manager if needed - for ( - dslice_request - ) in self.dsperse_manager.generate_dslice_requests(): - self.api.stacked_requests_queue.insert(0, dslice_request) + if not slots_available: + await asyncio.sleep(1) + continue + + if not self.api.stacked_requests_queue: + # Refill the stacked requests queue from DSperse manager if needed + for ( + dslice_request + ) in self.dsperse_manager.generate_dslice_requests(): + self.api.stacked_requests_queue.insert(0, dslice_request) + + # available miners to send requests to + available_uids = [ + uid + for uid in self.queryable_uids + if uid not in self.processed_uids and uid not in self.active_tasks + ] + + for uid in available_uids[:slots_available]: + if self.api.stacked_requests_queue: + request = self.request_pipeline._prepare_queued_request(uid) + else: + request = self.request_pipeline._prepare_benchmark_request(uid) - available_uids = [ - uid - for uid in self.queryable_uids - if uid not in self.processed_uids - and uid not in self.active_tasks - ] + if not request: + bt.logging.warning( + f"Empty request prepared for UID {uid}, skipping" + ) + continue - for uid in available_uids[:slots_available]: - request: Request = self.request_pipeline.prepare_single_request( - uid + if DEBUG_SYNC_MODE: + # Synchronous mode for easier debugging -- NOT FOR PRODUCTION + bt.logging.debug( + f"[SYNC MODE] Processing request for UID {uid}" + ) + self.active_tasks[uid] = "dummy_task_object" # type: ignore + await self._process_single_request(request) + self._handle_completed_task(uid) + else: + # Asynchronous mode for normal operation + task = asyncio.create_task( + self._process_single_request(request) + ) + self.active_tasks[uid] = task + task.add_done_callback( + lambda _, uid=uid: self._handle_completed_task(uid) ) - if request: - if DEBUG_SYNC_MODE: - # Synchronous mode for easier debugging -- NOT FOR PRODUCTION - bt.logging.debug( - f"[SYNC MODE] Processing request for UID {uid}" - ) - await self._process_single_request(request) - self.processed_uids.add(uid) - else: - # Asynchronous mode for normal operation - task = asyncio.create_task( - self._process_single_request(request) - ) - self.active_tasks[uid] = task - task.add_done_callback( - lambda t, uid=uid: self._handle_completed_task( - t, uid - ) - ) await asyncio.sleep(0) except Exception as e: @@ -394,26 +407,22 @@ async def maintain_request_pool(self): traceback.print_exc() await asyncio.sleep(EXCEPTION_DELAY_SECONDS) - def _handle_completed_task(self, task: asyncio.Task, uid: int): - try: - self.processed_uids.add(uid) - except Exception as e: - bt.logging.error(f"Error in task for UID {uid}: {e}") - traceback.print_exc() - finally: - if uid in self.active_tasks: - del self.active_tasks[uid] - if ( - self.current_concurrency == 0 - and not self.active_tasks - and self.competition - ): - bt.logging.info( - "All tasks completed during winddown, sending winddown complete message" - ) - self.validator_to_competition_queue.put( - ValidatorMessage.WINDDOWN_COMPLETE - ) + def _handle_completed_task(self, uid: int): + self.processed_uids.add(uid) + + if uid in self.active_tasks: + del self.active_tasks[uid] + if ( + self.current_concurrency == 0 + and not self.active_tasks + and self.competition + ): + bt.logging.info( + "All tasks completed during winddown, sending winddown complete message" + ) + self.validator_to_competition_queue.put( + ValidatorMessage.WINDDOWN_COMPLETE + ) async def run_periodic_tasks(self): while self._should_run: @@ -464,41 +473,69 @@ async def run(self) -> NoReturn: finally: await self._cleanup() - async def _process_single_request(self, request: Request) -> Request: + async def _process_single_request(self, request: Request) -> None: """ - Process a single request and return the response. + Perform a single request to a miner and handle the response. """ + response: MinerResponse | None = None try: response = await query_miner( self.httpx_client, request, self.config.wallet, ) - if response is None: - return request if DEBUG_SYNC_MODE: # Direct sync call for easier debugging - processed_response = self.response_processor.process_single_response( - response - ) + response = self.response_processor.verify_single_response(response) else: # Run in thread pool to avoid blocking event loop - processed_response: ( + response: ( MinerResponse | None ) = await asyncio.get_event_loop().run_in_executor( self.response_thread_pool, - self.response_processor.process_single_response, + self.response_processor.verify_single_response, response, ) - if processed_response: - await self._handle_response(processed_response) + except (EmptyProofException, IncorrectProofException) as e: + bt.logging.warning(f"{e.message}") + self._reschedule_request(request) + except httpx.InvalidURL: + bt.logging.warning( + f"Ignoring UID as there is not a valid URL: {request.uid}. {request.ip}:{request.port}" + ) + self._reschedule_request(request) + except httpx.HTTPError as e: + bt.logging.warning( + f"Failed to query miner for UID: {request.uid}. {request.ip}:{request.port} Error: {e}" + ) + self._reschedule_request(request) except Exception as e: bt.logging.error(f"Error processing request for UID {request.uid}: {e}") traceback.print_exc() log_error("request_processing", "axon_query", str(e)) - return request + self._reschedule_request(request) + finally: + if response: + await self._handle_response(response) + + def _reschedule_request(self, request: Request) -> None: + """ + Reschedule a failed request for retry. + Only RWR and DSLICE requests are rescheduled. + """ + if request.request_type not in (RequestType.RWR, RequestType.DSLICE): + bt.logging.debug( + f"Not rescheduling request type {request.request_type} for UID {request.uid}" + ) + return + + bt.logging.info( + f"Rescheduling {request.request_type.name} request for UID {request.uid}" + ) + # Re-add to the stacked requests queue for retry with a different miner + self.api.stacked_requests_queue.append(request.queued_request) async def _handle_response(self, response: MinerResponse) -> None: """ diff --git a/neurons/_validator/models/miner_response.py b/neurons/_validator/models/miner_response.py index 5e58f9be..04f71ff3 100644 --- a/neurons/_validator/models/miner_response.py +++ b/neurons/_validator/models/miner_response.py @@ -1,16 +1,9 @@ -from __future__ import annotations from dataclasses import dataclass import bittensor as bt import json -import traceback -from constants import ( - DEFAULT_PROOF_SIZE, - SINGLE_PROOF_OF_WEIGHTS_MODEL_ID, - CIRCUIT_TIMEOUT_SECONDS, -) -from deployment_layer.circuit_store import circuit_store +from constants import DEFAULT_PROOF_SIZE from _validator.core.request import Request from execution_layer.circuit import ProofSystem, Circuit from _validator.models.request_type import RequestType @@ -20,17 +13,6 @@ class MinerResponse: """ Represents a response from a miner. - - Attributes: - uid (int): Unique identifier of the miner. - verification_result (bool): Whether the miner's response was verified. - response_time (float): Time taken by the miner to respond. - verification_time (float): Time taken to verify the proof. - proof_size (int): Size of the proof provided by the miner. - circuit (Circuit): Circuit used. - proof_content (Any): Content of the proof - either a string or a dict. - raw (str): Deserialized form of the response. - error (str): Error message, if any occurred during processing. """ uid: int @@ -42,6 +24,7 @@ class MinerResponse: verification_time: float | None = None proof_content: dict | str | None = None public_json: list[str] | None = None + inputs: dict | None = None request_type: RequestType | None = None dsperse_slice_num: int | None = None dsperse_run_uid: str | None = None @@ -50,127 +33,78 @@ class MinerResponse: save: bool = False @classmethod - def from_raw_response(cls, response: Request) -> "MinerResponse": + def from_raw_response( + cls, request: Request, deserialized_response: dict + ) -> "MinerResponse": """ Creates a MinerResponse object from a raw response dictionary. - - Args: - response (dict): Raw response from a miner. - - Returns: - MinerResponse: Processed miner response object. """ - try: - deserialized_response = response.deserialized - bt.logging.trace(f"Deserialized response: {deserialized_response}") - proof_content = None - public_json = None - if isinstance(deserialized_response, str): - try: - deserialized_response = json.loads(deserialized_response) - except json.JSONDecodeError as e: - bt.logging.debug(f"JSON decoding error: {e}") - return cls.empty(uid=response.uid, circuit=response.circuit) - - if isinstance(deserialized_response, dict): - proof = deserialized_response.get("proof", "{}") - public_signals = deserialized_response.get("public_signals", "[]") + bt.logging.trace(f"Deserialized response: {deserialized_response}") - if isinstance(proof, str): - if all(c in "0123456789ABCDEFabcdef" for c in proof): - proof_content = proof - else: - proof_content = json.loads(proof) - else: - proof_content = proof - if public_signals and str(public_signals).strip(): - public_json = ( - json.loads(public_signals) - if isinstance(public_signals, str) - else public_signals - ) - else: - bt.logging.debug( - f"Miner at {response.uid} did not return public signals." - ) - - if isinstance(proof_content, str): - proof_size = len(proof_content) + proof = deserialized_response.get("proof", "{}") + if isinstance(proof, str): + if all(c in "0123456789ABCDEFabcdef" for c in proof): + proof_content = proof else: - if response.circuit.proof_system == ProofSystem.CIRCOM: - proof_size = ( - sum( - len(str(value)) - for key in ("pi_a", "pi_b", "pi_c") - for element in proof_content.get(key, []) - for value in ( - element if isinstance(element, list) else [element] - ) + proof_content = json.loads(proof) + else: + proof_content = proof + + if isinstance(proof_content, str): + proof_size = len(proof_content) + elif request.circuit is not None: + if request.circuit.proof_system == ProofSystem.CIRCOM: + proof_size = ( + sum( + len(str(value)) + for key in ("pi_a", "pi_b", "pi_c") + for element in proof_content.get(key, []) + for value in ( + element if isinstance(element, list) else [element] ) - if proof_content - else DEFAULT_PROOF_SIZE ) - elif response.circuit.proof_system == ProofSystem.EZKL: - proof_size = len(proof_content["proof"]) - else: - proof_size = DEFAULT_PROOF_SIZE - - return cls( - uid=response.uid, - verification_result=False, - response_time=response.response_time, - proof_size=proof_size or DEFAULT_PROOF_SIZE, - circuit=response.circuit, - proof_content=proof_content, - request_type=response.request_type, - input_hash=response.request_hash, - public_json=public_json, - raw=deserialized_response, - save=response.save, - dsperse_slice_num=response.dsperse_slice_num, - dsperse_run_uid=response.dsperse_run_uid, + if proof_content + else DEFAULT_PROOF_SIZE + ) + elif request.circuit.proof_system == ProofSystem.EZKL: + proof_size = len(proof_content["proof"]) + else: + proof_size = DEFAULT_PROOF_SIZE + else: + # capacity requests don't have circuit associated + proof_size = 0 + + public_signals = deserialized_response.get("public_signals", "[]") + if public_signals and str(public_signals).strip(): + public_json = ( + json.loads(public_signals) + if isinstance(public_signals, str) + else public_signals ) - except json.JSONDecodeError as e: - traceback.print_exc() - bt.logging.error(f"JSON decoding error: {e}") - return cls.empty(uid=response.uid, circuit=response.circuit) - except Exception as e: - traceback.print_exc() - bt.logging.error(f"Error processing miner response: {e}") - return cls.empty(uid=response.uid, circuit=response.circuit) - - @classmethod - def empty(cls, uid: int = 0, circuit: Circuit | None = None) -> "MinerResponse": - """ - Creates an empty MinerResponse object. + else: + bt.logging.debug(f"Miner at {request.uid} did not return public signals.") + public_json = None - Returns: - MinerResponse: An empty MinerResponse object. - """ - if circuit is None: - circuit = circuit_store.get_circuit(SINGLE_PROOF_OF_WEIGHTS_MODEL_ID) - timeout = ( - circuit.timeout if circuit and circuit.timeout else CIRCUIT_TIMEOUT_SECONDS - ) return cls( - uid=uid, + uid=request.uid, verification_result=False, - response_time=timeout, - verification_time=None, - proof_size=DEFAULT_PROOF_SIZE, - circuit=circuit, - proof_content=None, - public_json=None, - request_type=RequestType.BENCHMARK, - input_hash=None, - raw=None, - error="Empty response", - save=False, + response_time=request.response_time, + proof_size=proof_size or DEFAULT_PROOF_SIZE, + circuit=request.circuit, + proof_content=proof_content, + request_type=request.request_type, + input_hash=request.request_hash, + public_json=public_json, + inputs=request.inputs, + raw=deserialized_response, + save=request.save, + dsperse_slice_num=request.dsperse_slice_num, + dsperse_run_uid=request.dsperse_run_uid, ) def to_log_dict(self, metagraph: bt.metagraph) -> dict: # type: ignore """ - Parse a MinerResponse object into a dictionary. + Parse a MinerResponse object into a dictionary. Used for logging purposes. """ return { "miner_key": metagraph.hotkeys[self.uid], @@ -194,14 +128,5 @@ def to_log_dict(self, metagraph: bt.metagraph) -> dict: # type: ignore "save": self.save, } - def set_verification_result(self, result: bool): - """ - Sets the verification result for the miner's response. - - Args: - result (bool): The verification result to set. - """ - self.verification_result = result - def __iter__(self): return iter(self.__dict__.items()) diff --git a/neurons/_validator/utils/proof_of_weights.py b/neurons/_validator/utils/proof_of_weights.py index f65348fe..eb79aec7 100644 --- a/neurons/_validator/utils/proof_of_weights.py +++ b/neurons/_validator/utils/proof_of_weights.py @@ -40,9 +40,6 @@ def to_tensor(value, dtype): return torch.tensor(value, dtype=dtype) -dummy_miner_response = MinerResponse.empty() - - @dataclass class ProofOfWeightsItem: maximum_score: torch.Tensor diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index 57c4e2ed..1b820551 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -27,7 +27,6 @@ class DSliceData: input_file: Path output_file: Path proof_file: Path | None = None - proof_generation_time: float | None = None success: bool | None = None @@ -52,7 +51,7 @@ def generate_dslice_requests(self) -> Iterable[DSliceQueuedProofRequest]: Each DSlice request corresponds to one slice of a DSperse model. """ if not self.circuits: - # there are already requests stacked, do not generate new DSlice requests + # No DSperse circuits available, skip request generation return [] circuit = random.choice(self.circuits) @@ -80,7 +79,7 @@ def run_dsperse(self, circuit: Circuit, run_uid: str) -> list[DSliceData]: run_metadata_path = Path(cli_parser.config.dsperse_run_dir) / f"run_{run_uid}" run_metadata_path.mkdir(parents=True, exist_ok=True) save_metadata_path = run_metadata_path / "metadata.json" - logging.info(f"Running DSperse model. Run metadata path: {run_metadata_path}") + logging.debug(f"Running DSperse model. Run metadata path: {run_metadata_path}") # Generate benchmarking input JSON input_json_path = run_metadata_path / "input.json" @@ -92,7 +91,7 @@ def run_dsperse(self, circuit: Circuit, run_uid: str) -> list[DSliceData]: results = runner.run( input_json_path=input_json_path, slice_path=circuit.paths.external_base_path ) - logging.info( + logging.debug( f"DSperse run completed. Results data saved at {save_metadata_path}" ) slice_results = results["slice_results"] @@ -140,7 +139,7 @@ def prove_slice( model_dir=model_dir, output_path=tmp_path, ) - logging.info(f"Got proof generation result. Result: {result}") + logging.debug(f"Got proof generation result. Result: {result}") slice_id, proof_execution = self._parse_dsperse_result(result, "proof") @@ -190,7 +189,7 @@ def verify_slice_proof( model_path=Path(circuit.paths.external_base_path) / f"slice_{slice_num}", ) - logging.info(f"Got proof verification result. Result: {result}") + logging.debug(f"Got proof verification result. Result: {result}") _, verification_execution = self._parse_dsperse_result(result, "verification") success = verification_execution.get("success", False) diff --git a/neurons/scripts/check_miner.py b/neurons/scripts/check_miner.py index 7fafdc0a..1f8aa246 100755 --- a/neurons/scripts/check_miner.py +++ b/neurons/scripts/check_miner.py @@ -125,8 +125,6 @@ async def run_query(): ) sys.exit(1) - response = MinerResponse.from_raw_response(response) - bt.logging.trace(f"Miner query response: {response}") if response and not response.error: bt.logging.trace(f"Status Message: {response.error}") From 99f954e637663300f0d49d0460a73d106b3fcd32 Mon Sep 17 00:00:00 2001 From: millioner Date: Fri, 12 Dec 2025 02:42:11 +0100 Subject: [PATCH 16/28] Upgrade urllib3 to 2.6.2 --- requirements.txt | 703 +++++++++++++++++++- uv.lock | 1652 +++++++++++++++++++++++----------------------- 2 files changed, 1495 insertions(+), 860 deletions(-) diff --git a/requirements.txt b/requirements.txt index 016c1a4e..47d8cc3e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,10 @@ # This file was autogenerated by uv via the following command: -# uv export --no-dev --no-editable --no-emit-project -o requirements.txt --frozen +# uv export -o requirements.txt +-e . aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 + # via aiohttp aiohttp==3.12.15 \ --hash=sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c \ --hash=sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c \ @@ -22,33 +24,76 @@ aiohttp==3.12.15 \ --hash=sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1 \ --hash=sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444 \ --hash=sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545 + # via + # bittensor + # subnet-2 aiosignal==1.4.0 \ --hash=sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e \ --hash=sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7 + # via aiohttp aiosqlite==0.21.0 \ --hash=sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3 \ --hash=sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0 + # via async-substrate-interface annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 + # via pydantic +ansicon==1.89.0 ; sys_platform == 'win32' \ + --hash=sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1 \ + --hash=sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec + # via jinxed anyio==4.10.0 \ --hash=sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6 \ --hash=sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1 + # via + # httpx + # starlette +appnope==0.1.4 ; sys_platform == 'darwin' \ + --hash=sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee \ + --hash=sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c + # via ipykernel +asttokens==3.0.0 \ + --hash=sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7 \ + --hash=sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2 + # via + # nbdev + # snoop + # stack-data +astunparse==1.6.3 \ + --hash=sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872 \ + --hash=sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 + # via nbdev async-substrate-interface==1.5.2 \ --hash=sha256:8b84bca2fc045338a0d9b327138807cae3872ffc6c38e5bb8032463897132d44 \ --hash=sha256:8d763550f691eed99f351daebba25001201171965a358f47efb3ea122228bf68 + # via + # bittensor + # subnet-2 asyncstdlib==3.13.1 \ --hash=sha256:a64da68176af1da8c699026cad98f70b184f82b4cb39739e0b9701a2a7541cf9 \ --hash=sha256:f47564b9a3566f8f9172631d88c75fe074b0ce2127963b7265d310df9aeed03a + # via bittensor attrs==24.3.0 \ --hash=sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff \ --hash=sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308 + # via + # aiohttp + # jsonschema + # referencing + # subnet-2 base58==2.1.1 \ --hash=sha256:11a36f4d3ce51dfc1043f3218591ac4eb1ceb172919cebe05b52a5bcc8d245c2 \ --hash=sha256:c5d0cb3f5b6e81e8e35da5754388ddcc6d0d14b6c6a132cb93d69ed580a7278c + # via + # scalecodec + # substrate-interface bittensor==9.9.0 \ --hash=sha256:4bff5ac33ba77ddb414d34d4c717210a648380afb2a4ad32edb65e212b3fc561 \ --hash=sha256:79b54026f4e464611c862ad85031c44bc2576221c16ca759279908dcda9f5e35 + # via + # proof-of-portfolio + # subnet-2 bittensor-drand==1.0.0 \ --hash=sha256:2d9f4960acabcb494de74790bf94c8b0d36efed4f21f5388690a25ecb48b1b8a \ --hash=sha256:2f3a7f878689f4c996db33ba3a8a336dd4c4f797fb4cd69176f75da13e770794 \ @@ -56,6 +101,7 @@ bittensor-drand==1.0.0 \ --hash=sha256:d309a19981d69e2bfc0ac27770c63531173fc4bb2a41483c9c60b6677c44a501 \ --hash=sha256:d3c1a78034ea4a9eb3c5b607ed4746c85051107fc742c782d3291574a249a83d \ --hash=sha256:eddf11a9e352e06558435f5938b3f859ff38a41ef947547d461d07221e2c0ba7 + # via bittensor bittensor-wallet==4.0.0 \ --hash=sha256:3c6b8d58f3b3c8c0b01ff8fd6260fad6acfa74506e4a38ce2df8f7ecd33f4d73 \ --hash=sha256:5ba1953a05b4ae220f84ddaf885b4dc8c800db33d7ac70b77d3b60b951009a08 \ @@ -63,12 +109,32 @@ bittensor-wallet==4.0.0 \ --hash=sha256:5ff0b15c41604b1adb035cbe8fcdfd8b840f60355817a1c4dd8ec257f9b63b33 \ --hash=sha256:9f990eac74b08897f9fc9a8af460d566b5cfb6e542f0313e4896a809449beb47 \ --hash=sha256:c1f53313b653eb0b67bf606a4f9e24ece503ba32025628b568da89ba7d7c4e82 + # via bittensor +black==25.1.0 \ + --hash=sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc \ + --hash=sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666 \ + --hash=sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f \ + --hash=sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b \ + --hash=sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717 \ + --hash=sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba +blessed==1.21.0 \ + --hash=sha256:ece8bbc4758ab9176452f4e3a719d70088eb5739798cd5582c9e05f2a28337ec \ + --hash=sha256:f831e847396f5a2eac6c106f4dfadedf46c4f804733574b15fe86d2ed45a9588 + # via curtsies boto3==1.40.30 \ --hash=sha256:04e89abf61240857bf7dec160e22f097eec68c502509b2bb3c5010a22cb91052 \ --hash=sha256:e95db539c938710917f4cb4fc5915f71b27f2c836d949a1a95df7895d2e9ec8b + # via subnet-2 botocore==1.40.30 \ --hash=sha256:1d87874ad81234bec3e83f9de13618f67ccdfefd08d6b8babc041cd45007447e \ --hash=sha256:8a74f77cfe5c519826d22f7613f89544cbb8491a1a49d965031bd997f89a8e3f + # via + # boto3 + # s3transfer + # subnet-2 +bpython==0.25 \ + --hash=sha256:28fd86008ca5ef6100ead407c9743aa60c51293a18ba5b18fcacea7f5b7f2257 \ + --hash=sha256:c246fc909ef6dcc26e9d8cb4615b0e6b1613f3543d12269b19ffd0782166c65b bt-decode==0.6.0 \ --hash=sha256:05e67b5ab018af7a31651bb9c0fb838c3a1733806823019d14c287922869f84e \ --hash=sha256:636e8a2c5074f43f1a68b75f225ad5434cbffed66d7e289c7efec5f0dde4bb54 \ @@ -77,10 +143,21 @@ bt-decode==0.6.0 \ --hash=sha256:78534a941d136715a33bdbbbf9d5f7d72ca3d75abe888f449b39e56396cea823 \ --hash=sha256:b61e4237b58977f6bd4500a0ca52b1ffc405f47498a5d89c70f6a37087e8cabc \ --hash=sha256:ecbf71fb8786727b7c7835441419c74104473d984505d2bfd5aaa2a78402d47a + # via async-substrate-interface +build==1.3.0 \ + --hash=sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397 \ + --hash=sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4 + # via nbdev certifi==2025.8.3 \ --hash=sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407 \ --hash=sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5 -cffi==2.0.0 ; platform_python_implementation != 'PyPy' \ + # via + # httpcore + # httpx + # requests + # sentry-sdk + # substrate-interface +cffi==2.0.0 ; implementation_name == 'pypy' or platform_python_implementation != 'PyPy' \ --hash=sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e \ --hash=sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe \ --hash=sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187 \ @@ -94,6 +171,10 @@ cffi==2.0.0 ; platform_python_implementation != 'PyPy' \ --hash=sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062 \ --hash=sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5 \ --hash=sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18 + # via + # cryptography + # pynacl + # pyzmq charset-normalizer==3.4.3 \ --hash=sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154 \ --hash=sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884 \ @@ -108,15 +189,38 @@ charset-normalizer==3.4.3 \ --hash=sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a \ --hash=sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1 \ --hash=sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37 + # via requests +cheap-repr==0.5.2 \ + --hash=sha256:001a5cf8adb0305c7ad3152c5f776040ac2a559d97f85770cebcb28c6ca5a30f \ + --hash=sha256:537ec1991bfee885c13c6d473afd110a408e039cde26882e95bf92761556ab6e + # via snoop click==8.2.1 \ --hash=sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202 \ --hash=sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b + # via + # black + # uvicorn + # wandb colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + # via + # bittensor + # build + # click + # dsperse + # ipython + # proof-of-portfolio + # pytest + # tqdm coloredlogs==15.0.1 \ --hash=sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934 \ --hash=sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0 + # via onnxruntime +comm==0.2.3 \ + --hash=sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971 \ + --hash=sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417 + # via ipykernel contourpy==1.3.3 \ --hash=sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69 \ --hash=sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc \ @@ -130,6 +234,7 @@ contourpy==1.3.3 \ --hash=sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7 \ --hash=sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb \ --hash=sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8 + # via matplotlib cryptography==45.0.7 \ --hash=sha256:16ede8a4f7929b4b7ff3642eba2bf79aa1d71f24ab6ee443935c0d269b6bc513 \ --hash=sha256:18fcf70f243fe07252dcb1b268a687f2358025ce32f9f88028ca5c364b123ef5 \ @@ -156,9 +261,27 @@ cryptography==45.0.7 \ --hash=sha256:dd342f085542f6eb894ca00ef70236ea46070c8a13824c6bde0dfdcd36065b9b \ --hash=sha256:f3df7b3d0f91b88b2106031fd995802a2e9ae13e02c36c1fc075b43f420f3a17 \ --hash=sha256:fa26fa54c0a9384c27fcdc905a2fb7d60ac6e47d14bc2692145f2b3b1e2cfdbd + # via pyopenssl +curtsies==0.4.3 \ + --hash=sha256:102a0ffbf952124f1be222fd6989da4ec7cce04e49f613009e5f54ad37618825 \ + --hash=sha256:65a1b4d6ff887bd9b0f0836cc6dc68c3a2c65c57f51a62f0ee5df408edee1a99 + # via bpython +cwcwidth==0.1.10 \ + --hash=sha256:1d2b21ff2eb60c6793349b7fb161c40a8583a57ec32e61f47aab7938177bfdec \ + --hash=sha256:2dd9a92fdfbc53fc79f0953f39708dcf743fd27450c374985f419e3d47eb89d4 \ + --hash=sha256:734d764281e3d87c40d0265543f00a653409145fa9f48a93bc0fbf9a8e7932ca \ + --hash=sha256:7468760f72c1f4107be1b2b2854bc000401ea36a69daed36fb966a1e19a7a124 \ + --hash=sha256:848b6ffca1e32e28d2ccbb2cd395ccd3c38a7c4ec110728cd9d828eaf609b09e \ + --hash=sha256:c3a7bfe1da478c0c27c549f68c6e28a583413da3ee451854ec2d983497bd18b8 \ + --hash=sha256:cff03100f49170bc50fc399d05a31b8fcb7b0cef26df1a8068fa943387107f6c \ + --hash=sha256:e0316488349c3e5ca4b20de7daa1cb8e96a05d1d14d040d46e87a495da655f4a + # via + # bpython + # curtsies cycler==0.12.1 \ --hash=sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 \ --hash=sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c + # via matplotlib cytoolz==1.0.1 ; implementation_name == 'cpython' \ --hash=sha256:207d4e4b445e087e65556196ff472ff134370d9a275d591724142e255f384662 \ --hash=sha256:21cdf6bac6fd843f3b20280a66fd8df20dea4c58eb7214a2cd8957ec176f0bb3 \ @@ -175,41 +298,89 @@ cytoolz==1.0.1 ; implementation_name == 'cpython' \ --hash=sha256:c8231b9abbd8e368e036f4cc2e16902c9482d4cf9e02a6147ed0e9a3cd4a9ab0 \ --hash=sha256:fb988c333f05ee30ad4693fe4da55d95ec0bb05775d2b60191236493ea2e01f9 \ --hash=sha256:fcb8f7d0d65db1269022e7e0428471edee8c937bc288ebdcb72f13eaa67c2fe4 + # via eth-utils +debugpy==1.8.16 \ + --hash=sha256:19c9521962475b87da6f673514f7fd610328757ec993bf7ec0d8c96f9a325f9e \ + --hash=sha256:31e69a1feb1cf6b51efbed3f6c9b0ef03bc46ff050679c4be7ea6d2e23540870 \ + --hash=sha256:64473c4a306ba11a99fe0bb14622ba4fbd943eb004847d9b69b107bde45aa9ea \ + --hash=sha256:75f204684581e9ef3dc2f67687c3c8c183fde2d6675ab131d94084baf8084121 \ + --hash=sha256:833a61ed446426e38b0dd8be3e9d45ae285d424f5bf6cd5b2b559c8f12305508 \ + --hash=sha256:b202e2843e32e80b3b584bcebfe0e65e0392920dc70df11b2bfe1afcb7a085e4 + # via ipykernel decorator==5.2.1 \ --hash=sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360 \ --hash=sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a + # via + # ipython + # retry +dsperse @ git+https://github.com/inference-labs-inc/dsperse.git@8a8204d366c87f9d39cdc2abc4bd5560bdfa75da + # via subnet-2 ecdsa==0.19.1 \ --hash=sha256:30638e27cf77b7e15c4c4cc1973720149e1033827cfd00661ca5c8cc0cdb24c3 \ --hash=sha256:478cba7b62555866fcb3bb3fe985e06decbdb68ef55713c4e5ab98c57d508e61 + # via substrate-interface eth-hash==0.7.1 \ --hash=sha256:0fb1add2adf99ef28883fd6228eb447ef519ea72933535ad1a0b28c6f65f868a \ --hash=sha256:d2411a403a0b0a62e8247b4117932d900ffb4c8c64b15f92620547ca5ce46be5 + # via eth-utils eth-keys==0.7.0 \ --hash=sha256:79d24fd876201df67741de3e3fefb3f4dbcbb6ace66e47e6fe662851a4547814 \ --hash=sha256:b0cdda8ffe8e5ba69c7c5ca33f153828edcace844f67aabd4542d7de38b159cf + # via substrate-interface eth-typing==5.2.1 \ --hash=sha256:7557300dbf02a93c70fa44af352b5c4a58f94e997a0fd6797fb7d1c29d9538ee \ --hash=sha256:b0c2812ff978267563b80e9d701f487dd926f1d376d674f3b535cfe28b665d3d + # via + # eth-keys + # eth-utils eth-utils==5.3.1 \ --hash=sha256:1f5476d8f29588d25b8ae4987e1ffdfae6d4c09026e476c4aad13b32dda3ead0 \ --hash=sha256:c94e2d2abd024a9a42023b4ddc1c645814ff3d6a737b33d5cfd890ebf159c2d1 -ezkl==22.0.1 \ - --hash=sha256:2fcfb55370dbf3202b92c389fa4d2a2b3b57ddc2535c2cc479e43b00eaa41b1d \ - --hash=sha256:38064ba748cdd03c71508766082b7774441c65879a4b4db27a326e55848c4793 \ - --hash=sha256:3d84b010ae23f183f2543c78684fd9772774954ef070d14ccdcbc36ef34cd305 \ - --hash=sha256:69b52aa055ecc8a47707660e00ddbf72c8647cdaddb7e44c8c0b8247e257ca74 \ - --hash=sha256:b51baa1bfcb4dd2e209aa6d67e8fdce9dcd658b9868001a54c6c152fd9d439ec \ - --hash=sha256:deb1e540560ee8f98567da986f56daa82935abf92f8ba061cc8effa11687cbf4 \ - --hash=sha256:f4a0d074415d344bd4b1b86f27cbe3d3d7c2ee60e7eb1b196eda803557996676 + # via + # eth-keys + # substrate-interface +execnb==0.1.14 \ + --hash=sha256:486065e0fa8a15c9668e1710f43aed3f73fd4fe1de15fd45e027aeea588c2936 \ + --hash=sha256:ba87e955809bd33318aa13314ff4df90b424bb4556741c2dcc90c7a28bc87ddd + # via nbdev +executing==2.2.1 \ + --hash=sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4 \ + --hash=sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017 + # via + # snoop + # stack-data +ezkl==22.2.1 \ + --hash=sha256:0a939581175fdef2fab356927d9c4395c22e99c8b00fa80c08edb86ccd6fa9c0 \ + --hash=sha256:6c2353fede3155b9b588e61824e7505b33d0f9b8716cf2b99fe1aaa022840220 \ + --hash=sha256:7b0a7aac78858934821d3cb3ec620684d28f7b679f485dd03108932f51032ca5 \ + --hash=sha256:a5db874cbb59747118a90d050eb382dea6392775ccb85cdb8b954efe5bc2201e \ + --hash=sha256:b2f6d0fb2bc037355e6f3ec3a73714f10e6a68aaf43a0f15c15d13f308b2f69c \ + --hash=sha256:b8eac3f42cd3aa3a6879925a07469f8fef7aba0279efdaabd6cb31b706b22e5b \ + --hash=sha256:c3b9fea855c11165b74f3f97bf01510ecc3249dc6e2eba02674c9f5967924df1 + # via + # dsperse + # subnet-2 fastapi==0.110.3 \ --hash=sha256:555700b0159379e94fdbfc6bb66a0f1c43f4cf7060f25239af3d84b63a656626 \ --hash=sha256:fd7600612f755e4050beb74001310b5a7e1796d149c2ee363124abdfa0289d32 + # via + # bittensor + # subnet-2 +fastcore==1.8.8 \ + --hash=sha256:939f7b79c5510b059ba9fc512dfe8aab30f5a752130a640070f8a1b494493b56 \ + --hash=sha256:f38853245e5ae5abb16275daac92fca00edeced020871b1d2416fb22cde70df8 + # via + # execnb + # ghapi + # nbdev filelock==3.19.1 \ --hash=sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58 \ --hash=sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d + # via torch flatbuffers==25.2.10 \ --hash=sha256:97e451377a41262f8d9bd4295cc836133415cc03d8cb966410a4af92eb00d26e \ --hash=sha256:ebba5f4d5ea615af3f7fd70fc310636fbb2bbd1f566ac0a23d98dd412de50051 + # via onnxruntime fonttools==4.59.2 \ --hash=sha256:0476ea74161322e08c7a982f83558a2b81b491509984523a1a540baf8611cc31 \ --hash=sha256:0ec99f9bdfee9cdb4a9172f9e8fd578cce5feb231f598909e0aecf5418da4f25 \ @@ -221,6 +392,7 @@ fonttools==4.59.2 \ --hash=sha256:980fd7388e461b19a881d35013fec32c713ffea1fc37aef2f77d11f332dfd7da \ --hash=sha256:a10c1bd7644dc58f8862d8ba0cf9fb7fef0af01ea184ba6ce3f50ab7dfe74d5a \ --hash=sha256:e72c0749b06113f50bcb80332364c6be83a9582d6e3db3fe0b280f996dc2ef22 + # via matplotlib frozenlist==1.7.0 \ --hash=sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df \ --hash=sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5 \ @@ -241,38 +413,125 @@ frozenlist==1.7.0 \ --hash=sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4 \ --hash=sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08 \ --hash=sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025 + # via + # aiohttp + # aiosignal fsspec==2025.9.0 \ --hash=sha256:19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19 \ --hash=sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7 + # via torch +ghapi==1.0.6 \ + --hash=sha256:64fdd9f06d8e3373065c42c2a03e067e2bbb9ca18b583cd6e38a28aaad0224f6 \ + --hash=sha256:b3d96bf18fcaa2cb7131bad9de2948e2a1c2bb226377a25826f6c80950c57854 + # via nbdev gitdb==4.0.12 \ --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf + # via gitpython gitpython==3.1.45 \ --hash=sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c \ --hash=sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77 + # via + # subnet-2 + # tach + # wandb +greenlet==3.2.4 \ + --hash=sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d \ + --hash=sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f \ + --hash=sha256:326d234cbf337c9c3def0676412eb7040a35a768efc92504b947b3e9cfc7543d \ + --hash=sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0 \ + --hash=sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd \ + --hash=sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9 \ + --hash=sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02 \ + --hash=sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0 \ + --hash=sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6 \ + --hash=sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb \ + --hash=sha256:ee7a6ec486883397d70eec05059353b8e83eca9168b9f3f9a361971e77e0bcd0 \ + --hash=sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968 + # via bpython h11==0.16.0 \ --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ --hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 + # via + # httpcore + # uvicorn +httpcore==1.0.9 \ + --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ + --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 + # via httpx +httpx==0.28.1 \ + --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ + --hash=sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad + # via subnet-2 humanfriendly==10.0 \ --hash=sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477 \ --hash=sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc + # via coloredlogs idna==3.10 \ --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 + # via + # anyio + # httpx + # requests + # substrate-interface + # yarl +iniconfig==2.1.0 \ + --hash=sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7 \ + --hash=sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760 + # via pytest +ipykernel==6.30.1 \ + --hash=sha256:6abb270161896402e76b91394fcdce5d1be5d45f456671e5080572f8505be39b \ + --hash=sha256:aa6b9fb93dca949069d8b85b6c79b2518e32ac583ae9c7d37c51d119e18b3fb4 +ipython==9.5.0 \ + --hash=sha256:129c44b941fe6d9b82d36fc7a7c18127ddb1d6f02f78f867f402e2e3adde3113 \ + --hash=sha256:88369ffa1d5817d609120daa523a6da06d02518e582347c29f8451732a9c5e72 + # via + # execnb + # ipykernel +ipython-pygments-lexers==1.1.1 \ + --hash=sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81 \ + --hash=sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c + # via ipython +jedi==0.19.2 \ + --hash=sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0 \ + --hash=sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9 + # via ipython jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 + # via torch +jinxed==1.3.0 ; sys_platform == 'win32' \ + --hash=sha256:1593124b18a41b7a3da3b078471442e51dbad3d77b4d4f2b0c26ab6f7d660dbf \ + --hash=sha256:b993189f39dc2d7504d802152671535b06d380b26d78070559551cbf92df4fc5 + # via blessed jmespath==1.0.1 \ --hash=sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980 \ --hash=sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe + # via + # boto3 + # botocore jsonrpcserver==5.0.9 \ --hash=sha256:a71fb2cfa18541c80935f60987f92755d94d74141248c7438847b96eee5c4482 + # via subnet-2 jsonschema==4.25.1 \ --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 + # via jsonrpcserver jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d + # via jsonschema +jupyter-client==8.6.3 \ + --hash=sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419 \ + --hash=sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f + # via ipykernel +jupyter-core==5.8.1 \ + --hash=sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941 \ + --hash=sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0 + # via + # ipykernel + # jupyter-client kiwisolver==1.4.9 \ --hash=sha256:2327a4a30d3ee07d2fbe2e7933e8a37c591663b96ce42a00bc67461a87d7df77 \ --hash=sha256:2c1a4f57df73965f3f14df20b80ee29e6a7930a57d2d9e8491a25f676e197c60 \ @@ -288,9 +547,11 @@ kiwisolver==1.4.9 \ --hash=sha256:f2ba92255faa7309d06fe44c3a4a97efe1c8d640c2a79a5ef728b685762a6fd2 \ --hash=sha256:f6008a4919fdbc0b0097089f67a1eb55d950ed7e90ce2cc3e640abadd2757a04 \ --hash=sha256:f68208a520c3d86ea51acf688a3e3002615a7f0238002cccc17affecc86a8a54 + # via matplotlib markdown-it-py==4.0.0 \ --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 + # via rich markupsafe==3.0.2 \ --hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \ --hash=sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028 \ @@ -303,6 +564,7 @@ markupsafe==3.0.2 \ --hash=sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48 \ --hash=sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8 \ --hash=sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0 + # via jinja2 matplotlib==3.10.6 \ --hash=sha256:08f141d55148cd1fc870c3387d70ca4df16dee10e909b3b038782bd4bda6ea07 \ --hash=sha256:1678bb61d897bb4ac4757b5ecfb02bfb3fddf7f808000fb81e09c510712fda75 \ @@ -312,15 +574,28 @@ matplotlib==3.10.6 \ --hash=sha256:662df55604a2f9a45435566d6e2660e41efe83cd94f4288dfbf1e6d1eae4b0bb \ --hash=sha256:ec01b645840dd1996df21ee37f208cd8ba57644779fa20464010638013d3203c \ --hash=sha256:f44c8d264a71609c79a78d50349e724f5d5fc3684ead7c2a473665ee63d868aa + # via + # dsperse + # proof-of-portfolio + # subnet-2 +matplotlib-inline==0.1.7 \ + --hash=sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90 \ + --hash=sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca + # via + # ipykernel + # ipython mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba + # via markdown-it-py more-itertools==10.8.0 \ --hash=sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b \ --hash=sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd + # via scalecodec mpmath==1.3.0 \ --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c + # via sympy msgpack==1.1.1 \ --hash=sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157 \ --hash=sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef \ @@ -333,9 +608,11 @@ msgpack==1.1.1 \ --hash=sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a \ --hash=sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c \ --hash=sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b + # via msgpack-numpy-opentensor msgpack-numpy-opentensor==0.5.0 \ --hash=sha256:213232c20e2efd528ec8a9882b605e8ad87cfc35b57dfcfefe05d33aaaabe574 \ --hash=sha256:8a61c597a976425a87094d8e89846aa9528eb1f037e97ff1428fe3cd61a238e7 + # via bittensor multidict==6.6.4 \ --hash=sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9 \ --hash=sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e \ @@ -357,35 +634,79 @@ multidict==6.6.4 \ --hash=sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3 \ --hash=sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd \ --hash=sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7 + # via + # aiohttp + # yarl munch==2.5.0 \ --hash=sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2 \ --hash=sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd + # via bittensor +mypy-extensions==1.1.0 \ + --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ + --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 + # via black +nbdev==2.4.5 \ + --hash=sha256:12fa7aedec70515bbb0efdf3f39000793541e0209c047cd115761cabe284a63d \ + --hash=sha256:4ed72a3fb48ec6cbd1ff69e4ea3b31c1e3fe7cdacbafef4579914d5c15ab8994 nest-asyncio==1.6.0 \ --hash=sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe \ --hash=sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c + # via + # bittensor + # ipykernel netaddr==1.3.0 \ --hash=sha256:5c3c3d9895b551b763779ba7db7a03487dc1f8e3b385af819af341ae9ef6e48a \ --hash=sha256:c2c6a8ebe5554ce33b7d5b3a306b71bbb373e000bbbf2350dd5213cc56e3dbbe -networkx==3.5 \ - --hash=sha256:0030d386a9a06dee3565298b4a734b68589749a544acbb6c412dc9e2489ec6ec \ - --hash=sha256:d4c6f9cf81f52d69230866796b82afbccdec3db7ae4fbd1b65ea750feed50037 -numpy==2.0.2 \ - --hash=sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a \ - --hash=sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5 \ - --hash=sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78 \ - --hash=sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e \ - --hash=sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c \ - --hash=sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c \ - --hash=sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c \ - --hash=sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692 \ - --hash=sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a \ - --hash=sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b \ - --hash=sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded -onnxruntime==1.22.1 \ - --hash=sha256:2d39a530aff1ec8d02e365f35e503193991417788641b184f5b1e8c9a6d5ce8d \ - --hash=sha256:6a64291d57ea966a245f749eb970f4fa05a64d26672e05a83fdb5db6b7d62f87 \ - --hash=sha256:984cea2a02fcc5dfea44ade9aca9fe0f7a8a2cd6f77c258fc4388238618f3928 \ - --hash=sha256:a938d11c0dc811badf78e435daa3899d9af38abee950d87f3ab7430eb5b3cf5a + # via bittensor +networkx==3.4.2 \ + --hash=sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1 \ + --hash=sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f + # via + # dsperse + # tach + # torch +numpy==2.2.6 \ + --hash=sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49 \ + --hash=sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff \ + --hash=sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4 \ + --hash=sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282 \ + --hash=sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3 \ + --hash=sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2 \ + --hash=sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c \ + --hash=sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd \ + --hash=sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87 \ + --hash=sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249 \ + --hash=sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de + # via + # bittensor + # contourpy + # dsperse + # matplotlib + # msgpack-numpy-opentensor + # onnx + # onnxruntime + # opencv-contrib-python-headless + # opencv-python + # proof-of-portfolio + # scipy + # subnet-2 +onnx==1.18.0 \ + --hash=sha256:102c04edc76b16e9dfeda5a64c1fccd7d3d2913b1544750c01d38f1ac3c04e05 \ + --hash=sha256:3d8dbf9e996629131ba3aa1afd1d8239b660d1f830c6688dd7e03157cccd6b9c \ + --hash=sha256:521bac578448667cbb37c50bf05b53c301243ede8233029555239930996a625b \ + --hash=sha256:911b37d724a5d97396f3c2ef9ea25361c55cbc9aa18d75b12a52b620b67145af \ + --hash=sha256:99afac90b4cdb1471432203c3c1f74e16549c526df27056d39f41a9a47cfb4af \ + --hash=sha256:e4da451bf1c5ae381f32d430004a89f0405bc57a8471b0bddb6325a5b334aa40 \ + --hash=sha256:ee159b41a3ae58d9c7341cf432fc74b96aaf50bd7bb1160029f657b40dc69715 + # via dsperse +onnxruntime==1.21.0 \ + --hash=sha256:37b7445c920a96271a8dfa16855e258dc5599235b41c7bbde0d262d55bcc105f \ + --hash=sha256:7f801318476cd7003d636a5b392f7a37c08b6c8d2f829773f3c3887029e03f32 \ + --hash=sha256:893d67c68ca9e7a58202fa8d96061ed86a5815b0925b5a97aef27b8ba246a20b \ + --hash=sha256:9a04aafb802c1e5573ba4552f8babcb5021b041eb4cfa802c9b7644ca3510eca + # via + # dsperse + # subnet-2 opencv-contrib-python-headless==4.12.0.88 \ --hash=sha256:3d8a7b23a5faba4ad34e13f51668c56be791e57ab02d68d9016200fed3c12c77 \ --hash=sha256:85b520e527052a85a682f09cdc12e5f156f56d8c277261b4b65b48431abae96f \ @@ -394,6 +715,7 @@ opencv-contrib-python-headless==4.12.0.88 \ --hash=sha256:b183e2322468c9d3bd9cac4ba44b272d828ec22842395bcfa51df31765224c0a \ --hash=sha256:c57e32812fea2a542bb220088fb3ce8a210fe114c9454d1c9e8cd162e1a1fde8 \ --hash=sha256:d60a12b915c55a50468c013fcd839e941b49ccc1f37b914b62543382c36bf81d + # via subnet-2 opencv-python==4.12.0.88 \ --hash=sha256:092c16da4c5a163a818f120c22c5e4a2f96e0db4f24e659c701f1fe629a690f9 \ --hash=sha256:51fd981c7df6af3e8f70b1556696b05224c4e6b6777bdd2a46b3d4fb09de1a92 \ @@ -402,12 +724,39 @@ opencv-python==4.12.0.88 \ --hash=sha256:d98edb20aa932fd8ebd276a72627dad9dc097695b3d435a4257557bbb49a79d2 \ --hash=sha256:f9a1f08883257b95a5764bf517a32d75aec325319c8ed0f89739a57fae9e92a5 \ --hash=sha256:ff554d3f725b39878ac6a2e1fa232ec509c36130927afc18a1719ebf4fbf4357 + # via subnet-2 oslash==0.6.3 \ --hash=sha256:868aeb58a656f2ed3b73d9dd6abe387b20b74fc9413d3e8653b615b15bf728f3 \ --hash=sha256:89b978443b7db3ac2666106bdc3680add3c886a6d8fcdd02fd062af86d29494f + # via jsonrpcserver packaging==24.2 \ --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f + # via + # bittensor + # black + # build + # fastcore + # ghapi + # ipykernel + # matplotlib + # nbdev + # onnxruntime + # pytest + # subnet-2 + # wandb +parso==0.8.5 \ + --hash=sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a \ + --hash=sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887 + # via jedi +pathspec==0.12.1 \ + --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ + --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 + # via black +pexpect==4.9.0 ; sys_platform != 'emscripten' and sys_platform != 'win32' \ + --hash=sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 \ + --hash=sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f + # via ipython pillow==11.3.0 \ --hash=sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542 \ --hash=sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523 \ @@ -421,15 +770,34 @@ pillow==11.3.0 \ --hash=sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d \ --hash=sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d \ --hash=sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4 + # via + # matplotlib + # subnet-2 platformdirs==4.4.0 \ --hash=sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85 \ --hash=sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf + # via + # black + # jupyter-core + # wandb +pluggy==1.6.0 \ + --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ + --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 + # via pytest prometheus-client==0.21.1 \ --hash=sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb \ --hash=sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301 + # via subnet-2 +prompt-toolkit==3.0.52 \ + --hash=sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855 \ + --hash=sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955 + # via + # ipython + # tach proof-of-portfolio==0.0.134 \ --hash=sha256:5accfe9d112ad850e41bc2a1cfd6677343cb9fe30a86113d59025adfac437d05 \ --hash=sha256:72ab80c99dafad3db410244738c0cbddd957a5e26a701885b0324c45a2e68a33 + # via subnet-2 propcache==0.3.2 \ --hash=sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c \ --hash=sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535 \ @@ -449,6 +817,9 @@ propcache==0.3.2 \ --hash=sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06 \ --hash=sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1 \ --hash=sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67 + # via + # aiohttp + # yarl protobuf==6.32.1 \ --hash=sha256:2601b779fc7d32a866c6b4404f9d42a3f67c5b9f3f15b4db3cccabe06b95c346 \ --hash=sha256:2f5b80a49e1eb7b86d85fcd23fe92df154b9730a725c3b38c4e43b9d77018bf4 \ @@ -457,6 +828,11 @@ protobuf==6.32.1 \ --hash=sha256:b1864818300c297265c83a4982fd3169f97122c299f56a56e2445c3698d34710 \ --hash=sha256:d8c7e6eb619ffdf105ee4ab76af5a68b60a9d0f66da3ea12d1640e6d8dab7281 \ --hash=sha256:ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d + # via + # onnx + # onnxruntime + # subnet-2 + # wandb psutil==6.1.1 \ --hash=sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377 \ --hash=sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3 \ @@ -466,9 +842,21 @@ psutil==6.1.1 \ --hash=sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53 \ --hash=sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649 \ --hash=sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8 + # via + # ipykernel + # subnet-2 +ptyprocess==0.7.0 ; sys_platform != 'emscripten' and sys_platform != 'win32' \ + --hash=sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 \ + --hash=sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220 + # via pexpect +pure-eval==0.2.3 \ + --hash=sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0 \ + --hash=sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42 + # via stack-data py==1.11.0 \ --hash=sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719 \ --hash=sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378 + # via retry py-bip39-bindings==0.3.0 \ --hash=sha256:086c8e73208f423c3edd051a79334710b5253fb7be5e6a8d0b53da8538c0cc48 \ --hash=sha256:2b5f3f6dda9a68040c1fb74b9ca721788e3cec3d6e4d1e7ff91659bbc72c2bec \ @@ -484,6 +872,7 @@ py-bip39-bindings==0.3.0 \ --hash=sha256:b16eb31bbedc6148a739a6fc8a79053306dcb7585972405f3728802cd844bfa7 \ --hash=sha256:c0397a8c6744e906e13b7b4129fa676ff943569fea968cc310f2c9248b9f88e6 \ --hash=sha256:ccf1f277358c635c28469d6cfd33f40c8cde902dcfdc23f395ac2932d19564bf + # via substrate-interface py-ed25519-zebra-bindings==1.3.0 \ --hash=sha256:015c2ce6b934a6b36d50a21c6213636c18edf9a4c14b847f70089ba1897e119e \ --hash=sha256:160d09d42c3a71b27b31c6cfe33c495816603407a8dca65848e3daf5264ce650 \ @@ -499,6 +888,7 @@ py-ed25519-zebra-bindings==1.3.0 \ --hash=sha256:bc58becb6f3336e73249916bb0ebb5ca01304f7229066681fa1a54b437c73650 \ --hash=sha256:c0c4478ab57d65671b310524978122a81b9921847dba07f005d0d2d218f610b5 \ --hash=sha256:dd548a85aae8354e781db7ce2310cd74e11478c95caf30dcb0e61481de9b1ccd + # via substrate-interface py-sr25519-bindings==0.2.2 \ --hash=sha256:192d65d3bc43c6f4121a0732e1f6eb6ad869897ca26368ba032e96a82b3b7606 \ --hash=sha256:292be23ad53d9f9dbf1703a2a341005629a8f93c57cfad254c8c1230ec7d3fe3 \ @@ -514,9 +904,11 @@ py-sr25519-bindings==0.2.2 \ --hash=sha256:f22542738ed98fac0d3da2479dd3f26c695594800877a4d8bb116c47e4fd4b7c \ --hash=sha256:f44a0a9cb155af6408e3f73833a935abc98934ce097b2ad07dd13e3a88f82cb8 \ --hash=sha256:fea3ce0ac6a26a52735bb48f8daafb82d17147f776bb6d9d3c330bd2ccffe20d -pycparser==2.23 ; implementation_name != 'PyPy' and platform_python_implementation != 'PyPy' \ + # via substrate-interface +pycparser==2.23 ; (implementation_name != 'PyPy' and platform_python_implementation != 'PyPy') or (implementation_name == 'pypy' and platform_python_implementation == 'PyPy') \ --hash=sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2 \ --hash=sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934 + # via cffi pycryptodome==3.23.0 \ --hash=sha256:11eeeb6917903876f134b56ba11abe95c0b0fd5e3330def218083c7d98bbcb3c \ --hash=sha256:156df9667ad9f2ad26255926524e1c136d6664b741547deb0a86a9acf5ea631f \ @@ -530,9 +922,18 @@ pycryptodome==3.23.0 \ --hash=sha256:c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575 \ --hash=sha256:cfb5cd445280c5b0a4e6187a7ce8de5a07b5f3f897f235caa11f1f435f182843 \ --hash=sha256:dea827b4d55ee390dc89b2afe5927d4308a8b538ae91d9c6f7a5090f397af1aa + # via + # bittensor + # substrate-interface pydantic==2.10.6 \ --hash=sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584 \ --hash=sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236 + # via + # bittensor + # eth-utils + # fastapi + # subnet-2 + # wandb pydantic-core==2.27.2 \ --hash=sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6 \ --hash=sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7 \ @@ -549,9 +950,21 @@ pydantic-core==2.27.2 \ --hash=sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9 \ --hash=sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3 \ --hash=sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39 + # via pydantic +pydot==3.0.4 \ + --hash=sha256:3ce88b2558f3808b0376f22bfa6c263909e1c3981e2a7b629b65b451eee4a25d \ + --hash=sha256:bfa9c3fc0c44ba1d132adce131802d7df00429d1a79cc0346b0a5cd374dbe9c6 + # via tach pygments==2.19.2 \ --hash=sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887 \ --hash=sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b + # via + # bpython + # ipython + # ipython-pygments-lexers + # pytest + # rich + # snoop pynacl==1.6.0 \ --hash=sha256:140373378e34a1f6977e573033d1dd1de88d2a5d90ec6958c9485b2fd9f3eb90 \ --hash=sha256:16c60daceee88d04f8d41d0a4004a7ed8d9a5126b997efd2933e08e93a3bd850 \ @@ -568,21 +981,49 @@ pynacl==1.6.0 \ --hash=sha256:ef214b90556bb46a485b7da8258e59204c244b1b5b576fb71848819b468c44a7 \ --hash=sha256:f3482abf0f9815e7246d461fab597aa179b7524628a4bc36f86a7dc418d2608d \ --hash=sha256:f4b3824920e206b4f52abd7de621ea7a44fd3cb5c8daceb7c3612345dfc54f2e + # via substrate-interface pyopenssl==25.1.0 \ --hash=sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab \ --hash=sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b + # via subnet-2 pyparsing==3.2.3 \ --hash=sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf \ --hash=sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be + # via + # matplotlib + # pydot +pyproject-hooks==1.2.0 \ + --hash=sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8 \ + --hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913 + # via build pyreadline3==3.5.4 ; sys_platform == 'win32' \ --hash=sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7 \ --hash=sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6 + # via humanfriendly +pytest==8.4.2 \ + --hash=sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01 \ + --hash=sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79 + # via dsperse python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 + # via + # botocore + # jupyter-client + # matplotlib python-statemachine==2.5.0 \ --hash=sha256:0ed53846802c17037fcb2a92323f4bc0c833290fa9d17a3587c50886c1541e62 \ --hash=sha256:ae88cd22e47930b92b983a2176e61d811e571b69897be2568ec812c2885fb93a + # via bittensor +pywin32==311 ; platform_python_implementation != 'PyPy' and sys_platform == 'win32' \ + --hash=sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31 \ + --hash=sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067 \ + --hash=sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852 + # via jupyter-core +pyxdg==0.28 \ + --hash=sha256:3267bb3074e934df202af2ee0868575484108581e6f3cb006af1da35395e88b4 \ + --hash=sha256:bdaf595999a0178ecea4052b7f4195569c1ff4d344567bccdc12dfdf02d545ab + # via bpython pyyaml==6.0.2 \ --hash=sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48 \ --hash=sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5 \ @@ -594,18 +1035,52 @@ pyyaml==6.0.2 \ --hash=sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725 \ --hash=sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e \ --hash=sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4 + # via + # bittensor + # nbdev + # tach + # wandb +pyzmq==27.1.0 \ + --hash=sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28 \ + --hash=sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113 \ + --hash=sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd \ + --hash=sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233 \ + --hash=sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31 \ + --hash=sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc \ + --hash=sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f \ + --hash=sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf \ + --hash=sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540 \ + --hash=sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856 \ + --hash=sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496 + # via + # ipykernel + # jupyter-client referencing==0.36.2 \ --hash=sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa \ --hash=sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0 + # via + # jsonschema + # jsonschema-specifications requests==2.32.4 \ --hash=sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c \ --hash=sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422 + # via + # bittensor + # bpython + # scalecodec + # subnet-2 + # substrate-interface + # wandb retry==0.9.2 \ --hash=sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606 \ --hash=sha256:f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4 + # via bittensor rich==13.8.1 \ --hash=sha256:1760a3c0848469b97b558fc61c85233e3dafb69c7a071b4d60c38099d3cd4c06 \ --hash=sha256:8260cda28e3db6bf04d2d1ef4dbc03ba80a824c88b0e7668a0f23126a424844a + # via + # subnet-2 + # tach rpds-py==0.27.1 \ --hash=sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e \ --hash=sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5 \ @@ -623,12 +1098,20 @@ rpds-py==0.27.1 \ --hash=sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594 \ --hash=sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb \ --hash=sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444 + # via + # jsonschema + # referencing s3transfer==0.14.0 \ --hash=sha256:ea3b790c7077558ed1f02a3072fb3cb992bbbd253392f4b6e9e8976941c7d456 \ --hash=sha256:eff12264e7c8b4985074ccce27a3b38a485bb7f7422cc8046fee9be4983e4125 + # via boto3 scalecodec==1.2.11 \ --hash=sha256:99a2cdbfccdcaf22bd86b86da55a730a2855514ad2309faef4a4a93ac6cbeb8d \ --hash=sha256:d15c94965f617caa25096f83a45f5f73031d05e6ee08d6039969f0a64fc35de1 + # via + # async-substrate-interface + # bittensor + # substrate-interface scipy==1.16.2 \ --hash=sha256:033570f1dcefd79547a88e18bccacff025c8c647a330381064f561d43b821232 \ --hash=sha256:03dfc75e52f72cf23ec2ced468645321407faad8f0fe7b1f5b49264adbc29cb1 \ @@ -641,55 +1124,172 @@ scipy==1.16.2 \ --hash=sha256:ea3421209bf00c8a5ef2227de496601087d8f638a2363ee09af059bd70976dc1 \ --hash=sha256:f66bd07ba6f84cd4a380b41d1bf3c59ea488b590a2ff96744845163309ee8e2f \ --hash=sha256:fac4f8ce2ddb40e2e3d0f7ec36d2a1e7f92559a2471e59aec37bd8d9de01fec0 + # via proof-of-portfolio sentry-sdk==2.37.1 \ --hash=sha256:531751da91aa62a909b42a7be155b41f6bb0de9df6ae98441d23b95de2f98475 \ --hash=sha256:baaaea6608ed3a639766a69ded06b254b106d32ad9d180bdbe58f3db9364592b + # via wandb setuptools==70.0.0 \ --hash=sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4 \ --hash=sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0 + # via + # bittensor + # nbdev + # torch six==1.17.0 \ --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 + # via + # astunparse + # ecdsa + # munch + # python-dateutil smmap==5.0.2 \ --hash=sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5 \ --hash=sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e + # via gitdb sniffio==1.3.1 \ --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ --hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc + # via anyio +snoop==0.6.0 \ + --hash=sha256:c615eddf84d8907f893dec7fde38768aa4b1d88d92d63055b6cfc07e5cde37ec \ + --hash=sha256:f5ea9060e65594bf404e6841086b4a964cc27bc30569109c91a470f948b0f729 +stack-data==0.6.3 \ + --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ + --hash=sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 + # via ipython starlette==0.37.2 \ --hash=sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee \ --hash=sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823 + # via fastapi substrate-interface==1.7.11 \ --hash=sha256:4caa5eacb9996edbe76ad12249521b3542bbd8d9d69b96734087201db1fef8f6 \ --hash=sha256:ce19bc97481769238ed23c752db985a3058637918693f2db6aeed2fab3756075 + # via subnet-2 sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ --hash=sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5 + # via + # onnxruntime + # torch +tach==0.29.0 \ + --hash=sha256:0b27b9265eee34f396515a2e918fa783d3d02e69edfb6ea1dfd1843d49021429 \ + --hash=sha256:2e15ceb80fc25435d18e01d10029fec15a54fb53bf6b430d53c4ecb53859a0ff \ + --hash=sha256:3b40c59e9a1d0b28fc6176736876c4cfa2d01114870d539e9989dfb7c6638139 \ + --hash=sha256:42e0bbecf5e8ea23791b62e54e7c8065376e8a7f642a232dcef8bcae0149944e \ + --hash=sha256:517f33d18d381326a775d101650e576c6922db53b2c336192db7db88b9a3521d \ + --hash=sha256:52903e54683b0aa26bd4ef0c9ed68b34480a3fbf83fb7b32e9d6a9908e2761e1 \ + --hash=sha256:58443cbd3f5d19d6b98cd3508593eae186c91f0e059c8bcf1348e3849095b622 \ + --hash=sha256:810e5aaa2e936c8417bb91672708886aadaf8ab116763ae418c6b1b961422bba \ + --hash=sha256:a7b8c82943f4ed72612282ff35c155fcca7222b9e9cd2864763b67497729f0c3 \ + --hash=sha256:d65408ec003ec16bdab4ef61990d7cfc0551672d145a78f80a4aef71e8714b9b \ + --hash=sha256:d984f54bebba0e4c981d2a08c3e4cdf76c3b5f3126e2f593a0faaed9d218552a toml==0.10.0 \ --hash=sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c \ --hash=sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e + # via + # bt-decode + # proof-of-portfolio +tomli==2.2.1 \ + --hash=sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd \ + --hash=sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6 \ + --hash=sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77 \ + --hash=sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea \ + --hash=sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192 \ + --hash=sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4 \ + --hash=sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98 \ + --hash=sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8 \ + --hash=sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e \ + --hash=sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc \ + --hash=sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff \ + --hash=sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222 + # via tach +tomli-w==1.2.0 \ + --hash=sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90 \ + --hash=sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021 + # via tach toolz==1.0.0 ; implementation_name == 'cpython' or implementation_name == 'pypy' \ --hash=sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236 \ --hash=sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02 + # via + # cytoolz + # eth-utils torch==2.7.1 ; sys_platform == 'darwin' \ --hash=sha256:7b4f8b2b83bd08f7d399025a9a7b323bdbb53d20566f1e0d584689bb92d82f9a + # via + # dsperse + # subnet-2 torch==2.7.1+cpu ; sys_platform != 'darwin' \ --hash=sha256:0bc887068772233f532b51a3e8c8cfc682ae62bef74bf4e0c53526c8b9e4138f \ --hash=sha256:3bf2db5adf77b433844f080887ade049c4705ddf9fe1a32023ff84ff735aa5ad \ --hash=sha256:8f8b3cfc53010a4b4a3c7ecb88c212e9decc4f5eeb6af75c3c803937d2d60947 \ --hash=sha256:a2618775f32eb4126c5b2050686da52001a08cffa331637d9cf51c8250931e00 + # via + # dsperse + # subnet-2 +tornado==6.5.2 \ + --hash=sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c \ + --hash=sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6 \ + --hash=sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef \ + --hash=sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4 \ + --hash=sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0 \ + --hash=sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e \ + --hash=sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882 \ + --hash=sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04 \ + --hash=sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0 \ + --hash=sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af \ + --hash=sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f \ + --hash=sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108 + # via + # ipykernel + # jupyter-client tqdm==4.67.1 \ --hash=sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2 \ --hash=sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2 + # via + # dsperse + # subnet-2 +traitlets==5.14.3 \ + --hash=sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7 \ + --hash=sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f + # via + # ipykernel + # ipython + # jupyter-client + # jupyter-core + # matplotlib-inline typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 -urllib3==2.5.0 \ - --hash=sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760 \ - --hash=sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc + # via + # aiosignal + # aiosqlite + # anyio + # eth-typing + # fastapi + # onnx + # oslash + # pydantic + # pydantic-core + # pyopenssl + # referencing + # torch + # wandb +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd + # via + # botocore + # requests + # sentry-sdk + # subnet-2 uvicorn==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ --hash=sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9 + # via + # bittensor + # subnet-2 wandb==0.21.0 \ --hash=sha256:01689faa6b691df23ba2367e0a1ecf6e4d0be44474905840098eedd1fbcb8bdf \ --hash=sha256:28a0b2dad09d7c7344ac62b0276be18a2492a5578e4d7c84937a3e1991edaac7 \ @@ -702,9 +1302,35 @@ wandb==0.21.0 \ --hash=sha256:893508f0c7da48917448daa5cd622c27ce7ce15119adaa861185034c2bd7b14c \ --hash=sha256:9d3cccfba658fa011d6cab9045fa4f070a444885e8902ae863802549106a5dab \ --hash=sha256:a4e8245a8912247ddf7654f7b5330f583a6c56ab88fee65589158490d583c57d + # via subnet-2 +watchdog==6.0.0 \ + --hash=sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a \ + --hash=sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2 \ + --hash=sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f \ + --hash=sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c \ + --hash=sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0 \ + --hash=sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13 \ + --hash=sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e \ + --hash=sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379 \ + --hash=sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282 \ + --hash=sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f \ + --hash=sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948 \ + --hash=sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860 \ + --hash=sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680 \ + --hash=sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26 + # via nbdev +wcwidth==0.2.13 \ + --hash=sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 \ + --hash=sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5 + # via + # blessed + # prompt-toolkit websocket-client==1.8.0 \ --hash=sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526 \ --hash=sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da + # via + # subnet-2 + # substrate-interface websockets==15.0.1 \ --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ @@ -719,9 +1345,14 @@ websockets==15.0.1 \ --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 + # via async-substrate-interface wheel==0.45.1 \ --hash=sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729 \ --hash=sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248 + # via + # astunparse + # async-substrate-interface + # bittensor xxhash==3.5.0 \ --hash=sha256:08424f6648526076e28fae6ea2806c0a7d504b9ef05ae61d196d571e5c879c84 \ --hash=sha256:14470ace8bd3b5d51318782cd94e6f94431974f16cb3b8dc15d52f3b69df8e00 \ @@ -739,6 +1370,9 @@ xxhash==3.5.0 \ --hash=sha256:f7b58d1fd3551b8c80a971199543379be1cee3d0d409e1f6d8b01c1a2eebf1f8 \ --hash=sha256:fa0cafd3a2af231b4e113fba24a65d7922af91aeb23774a8b78228e6cd785e3e \ --hash=sha256:fa9f547bd98f5553d03160967866a71056a60960be00356a15ecc44efb40ba8e + # via + # async-substrate-interface + # substrate-interface yarl==1.20.1 \ --hash=sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2 \ --hash=sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef \ @@ -759,3 +1393,4 @@ yarl==1.20.1 \ --hash=sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8 \ --hash=sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac \ --hash=sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5 + # via aiohttp diff --git a/uv.lock b/uv.lock index e4db24b9..d00589f6 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 1 +revision = 2 requires-python = "==3.12.*" resolution-markers = [ "sys_platform == 'linux'", @@ -11,9 +11,9 @@ resolution-markers = [ name = "aiohappyeyeballs" version = "2.6.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760 } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265 }, + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" }, ] [[package]] @@ -29,25 +29,25 @@ dependencies = [ { name = "propcache" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716 } +sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716, upload-time = "2025-07-29T05:52:32.215Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/97/77cb2450d9b35f517d6cf506256bf4f5bda3f93a66b4ad64ba7fc917899c/aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7", size = 702333 }, - { url = "https://files.pythonhosted.org/packages/83/6d/0544e6b08b748682c30b9f65640d006e51f90763b41d7c546693bc22900d/aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444", size = 476948 }, - { url = "https://files.pythonhosted.org/packages/3a/1d/c8c40e611e5094330284b1aea8a4b02ca0858f8458614fa35754cab42b9c/aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d", size = 469787 }, - { url = "https://files.pythonhosted.org/packages/38/7d/b76438e70319796bfff717f325d97ce2e9310f752a267bfdf5192ac6082b/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c", size = 1716590 }, - { url = "https://files.pythonhosted.org/packages/79/b1/60370d70cdf8b269ee1444b390cbd72ce514f0d1cd1a715821c784d272c9/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0", size = 1699241 }, - { url = "https://files.pythonhosted.org/packages/a3/2b/4968a7b8792437ebc12186db31523f541943e99bda8f30335c482bea6879/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab", size = 1754335 }, - { url = "https://files.pythonhosted.org/packages/fb/c1/49524ed553f9a0bec1a11fac09e790f49ff669bcd14164f9fab608831c4d/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb", size = 1800491 }, - { url = "https://files.pythonhosted.org/packages/de/5e/3bf5acea47a96a28c121b167f5ef659cf71208b19e52a88cdfa5c37f1fcc/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545", size = 1719929 }, - { url = "https://files.pythonhosted.org/packages/39/94/8ae30b806835bcd1cba799ba35347dee6961a11bd507db634516210e91d8/aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c", size = 1635733 }, - { url = "https://files.pythonhosted.org/packages/7a/46/06cdef71dd03acd9da7f51ab3a9107318aee12ad38d273f654e4f981583a/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd", size = 1696790 }, - { url = "https://files.pythonhosted.org/packages/02/90/6b4cfaaf92ed98d0ec4d173e78b99b4b1a7551250be8937d9d67ecb356b4/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f", size = 1718245 }, - { url = "https://files.pythonhosted.org/packages/2e/e6/2593751670fa06f080a846f37f112cbe6f873ba510d070136a6ed46117c6/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d", size = 1658899 }, - { url = "https://files.pythonhosted.org/packages/8f/28/c15bacbdb8b8eb5bf39b10680d129ea7410b859e379b03190f02fa104ffd/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519", size = 1738459 }, - { url = "https://files.pythonhosted.org/packages/00/de/c269cbc4faa01fb10f143b1670633a8ddd5b2e1ffd0548f7aa49cb5c70e2/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea", size = 1766434 }, - { url = "https://files.pythonhosted.org/packages/52/b0/4ff3abd81aa7d929b27d2e1403722a65fc87b763e3a97b3a2a494bfc63bc/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3", size = 1726045 }, - { url = "https://files.pythonhosted.org/packages/71/16/949225a6a2dd6efcbd855fbd90cf476052e648fb011aa538e3b15b89a57a/aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1", size = 423591 }, - { url = "https://files.pythonhosted.org/packages/2b/d8/fa65d2a349fe938b76d309db1a56a75c4fb8cc7b17a398b698488a939903/aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34", size = 450266 }, + { url = "https://files.pythonhosted.org/packages/63/97/77cb2450d9b35f517d6cf506256bf4f5bda3f93a66b4ad64ba7fc917899c/aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7", size = 702333, upload-time = "2025-07-29T05:50:46.507Z" }, + { url = "https://files.pythonhosted.org/packages/83/6d/0544e6b08b748682c30b9f65640d006e51f90763b41d7c546693bc22900d/aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444", size = 476948, upload-time = "2025-07-29T05:50:48.067Z" }, + { url = "https://files.pythonhosted.org/packages/3a/1d/c8c40e611e5094330284b1aea8a4b02ca0858f8458614fa35754cab42b9c/aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d", size = 469787, upload-time = "2025-07-29T05:50:49.669Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/b76438e70319796bfff717f325d97ce2e9310f752a267bfdf5192ac6082b/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c", size = 1716590, upload-time = "2025-07-29T05:50:51.368Z" }, + { url = "https://files.pythonhosted.org/packages/79/b1/60370d70cdf8b269ee1444b390cbd72ce514f0d1cd1a715821c784d272c9/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0", size = 1699241, upload-time = "2025-07-29T05:50:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/a3/2b/4968a7b8792437ebc12186db31523f541943e99bda8f30335c482bea6879/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab", size = 1754335, upload-time = "2025-07-29T05:50:55.394Z" }, + { url = "https://files.pythonhosted.org/packages/fb/c1/49524ed553f9a0bec1a11fac09e790f49ff669bcd14164f9fab608831c4d/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb", size = 1800491, upload-time = "2025-07-29T05:50:57.202Z" }, + { url = "https://files.pythonhosted.org/packages/de/5e/3bf5acea47a96a28c121b167f5ef659cf71208b19e52a88cdfa5c37f1fcc/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545", size = 1719929, upload-time = "2025-07-29T05:50:59.192Z" }, + { url = "https://files.pythonhosted.org/packages/39/94/8ae30b806835bcd1cba799ba35347dee6961a11bd507db634516210e91d8/aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c", size = 1635733, upload-time = "2025-07-29T05:51:01.394Z" }, + { url = "https://files.pythonhosted.org/packages/7a/46/06cdef71dd03acd9da7f51ab3a9107318aee12ad38d273f654e4f981583a/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd", size = 1696790, upload-time = "2025-07-29T05:51:03.657Z" }, + { url = "https://files.pythonhosted.org/packages/02/90/6b4cfaaf92ed98d0ec4d173e78b99b4b1a7551250be8937d9d67ecb356b4/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f", size = 1718245, upload-time = "2025-07-29T05:51:05.911Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e6/2593751670fa06f080a846f37f112cbe6f873ba510d070136a6ed46117c6/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d", size = 1658899, upload-time = "2025-07-29T05:51:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/8f/28/c15bacbdb8b8eb5bf39b10680d129ea7410b859e379b03190f02fa104ffd/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519", size = 1738459, upload-time = "2025-07-29T05:51:09.56Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/c269cbc4faa01fb10f143b1670633a8ddd5b2e1ffd0548f7aa49cb5c70e2/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea", size = 1766434, upload-time = "2025-07-29T05:51:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/52/b0/4ff3abd81aa7d929b27d2e1403722a65fc87b763e3a97b3a2a494bfc63bc/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3", size = 1726045, upload-time = "2025-07-29T05:51:13.689Z" }, + { url = "https://files.pythonhosted.org/packages/71/16/949225a6a2dd6efcbd855fbd90cf476052e648fb011aa538e3b15b89a57a/aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1", size = 423591, upload-time = "2025-07-29T05:51:15.452Z" }, + { url = "https://files.pythonhosted.org/packages/2b/d8/fa65d2a349fe938b76d309db1a56a75c4fb8cc7b17a398b698488a939903/aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34", size = 450266, upload-time = "2025-07-29T05:51:17.239Z" }, ] [[package]] @@ -58,9 +58,9 @@ dependencies = [ { name = "frozenlist" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007 } +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490 }, + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, ] [[package]] @@ -70,27 +70,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/13/7d/8bca2bf9a247c2c5dfeec1d7a5f40db6518f88d314b8bca9da29670d2671/aiosqlite-0.21.0.tar.gz", hash = "sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3", size = 13454 } +sdist = { url = "https://files.pythonhosted.org/packages/13/7d/8bca2bf9a247c2c5dfeec1d7a5f40db6518f88d314b8bca9da29670d2671/aiosqlite-0.21.0.tar.gz", hash = "sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3", size = 13454, upload-time = "2025-02-03T07:30:16.235Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/10/6c25ed6de94c49f88a91fa5018cb4c0f3625f31d5be9f771ebe5cc7cd506/aiosqlite-0.21.0-py3-none-any.whl", hash = "sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0", size = 15792 }, + { url = "https://files.pythonhosted.org/packages/f5/10/6c25ed6de94c49f88a91fa5018cb4c0f3625f31d5be9f771ebe5cc7cd506/aiosqlite-0.21.0-py3-none-any.whl", hash = "sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0", size = 15792, upload-time = "2025-02-03T07:30:13.6Z" }, ] [[package]] name = "annotated-types" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, ] [[package]] name = "ansicon" version = "1.89.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b6/e2/1c866404ddbd280efedff4a9f15abfe943cb83cde6e895022370f3a61f85/ansicon-1.89.0.tar.gz", hash = "sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1", size = 67312 } +sdist = { url = "https://files.pythonhosted.org/packages/b6/e2/1c866404ddbd280efedff4a9f15abfe943cb83cde6e895022370f3a61f85/ansicon-1.89.0.tar.gz", hash = "sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1", size = 67312, upload-time = "2019-04-29T20:23:57.314Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/75/f9/f1c10e223c7b56a38109a3f2eb4e7fe9a757ea3ed3a166754fb30f65e466/ansicon-1.89.0-py2.py3-none-any.whl", hash = "sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec", size = 63675 }, + { url = "https://files.pythonhosted.org/packages/75/f9/f1c10e223c7b56a38109a3f2eb4e7fe9a757ea3ed3a166754fb30f65e466/ansicon-1.89.0-py2.py3-none-any.whl", hash = "sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec", size = 63675, upload-time = "2019-04-29T20:23:53.83Z" }, ] [[package]] @@ -102,27 +102,27 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252 } +sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252, upload-time = "2025-08-04T08:54:26.451Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213 }, + { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213, upload-time = "2025-08-04T08:54:24.882Z" }, ] [[package]] name = "appnope" version = "0.1.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170 } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321 }, + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, ] [[package]] name = "asttokens" version = "3.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978 } +sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978, upload-time = "2024-11-30T04:30:14.439Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918 }, + { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918, upload-time = "2024-11-30T04:30:10.946Z" }, ] [[package]] @@ -133,9 +133,9 @@ dependencies = [ { name = "six" }, { name = "wheel" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290 } +sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290, upload-time = "2019-12-22T18:12:13.129Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8", size = 12732 }, + { url = "https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8", size = 12732, upload-time = "2019-12-22T18:12:11.297Z" }, ] [[package]] @@ -150,36 +150,36 @@ dependencies = [ { name = "wheel" }, { name = "xxhash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/93/f9/29a26c144b5c2f02b9e27899980e7370602e4f7820c71c2d9418fd17cfd9/async_substrate_interface-1.5.2.tar.gz", hash = "sha256:8d763550f691eed99f351daebba25001201171965a358f47efb3ea122228bf68", size = 81595 } +sdist = { url = "https://files.pythonhosted.org/packages/93/f9/29a26c144b5c2f02b9e27899980e7370602e4f7820c71c2d9418fd17cfd9/async_substrate_interface-1.5.2.tar.gz", hash = "sha256:8d763550f691eed99f351daebba25001201171965a358f47efb3ea122228bf68", size = 81595, upload-time = "2025-09-08T17:18:41.591Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/76/73a98ec3c42a3177bfb1a5af43a06b89d94886f507897282ad5cd5ef309a/async_substrate_interface-1.5.2-py3-none-any.whl", hash = "sha256:8b84bca2fc045338a0d9b327138807cae3872ffc6c38e5bb8032463897132d44", size = 84925 }, + { url = "https://files.pythonhosted.org/packages/51/76/73a98ec3c42a3177bfb1a5af43a06b89d94886f507897282ad5cd5ef309a/async_substrate_interface-1.5.2-py3-none-any.whl", hash = "sha256:8b84bca2fc045338a0d9b327138807cae3872ffc6c38e5bb8032463897132d44", size = 84925, upload-time = "2025-09-08T17:18:40.02Z" }, ] [[package]] name = "asyncstdlib" version = "3.13.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/50/e1/72e388631c85233a2fd890d024fc20a8a9961dbba8614d78266636218f1f/asyncstdlib-3.13.1.tar.gz", hash = "sha256:f47564b9a3566f8f9172631d88c75fe074b0ce2127963b7265d310df9aeed03a", size = 49752 } +sdist = { url = "https://files.pythonhosted.org/packages/50/e1/72e388631c85233a2fd890d024fc20a8a9961dbba8614d78266636218f1f/asyncstdlib-3.13.1.tar.gz", hash = "sha256:f47564b9a3566f8f9172631d88c75fe074b0ce2127963b7265d310df9aeed03a", size = 49752, upload-time = "2025-03-09T07:52:51.587Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/4a/c86c045bc7bb0244044935ba80c83998f1fdee4f4cef64c6b078e043b0e6/asyncstdlib-3.13.1-py3-none-any.whl", hash = "sha256:a64da68176af1da8c699026cad98f70b184f82b4cb39739e0b9701a2a7541cf9", size = 43993 }, + { url = "https://files.pythonhosted.org/packages/b9/4a/c86c045bc7bb0244044935ba80c83998f1fdee4f4cef64c6b078e043b0e6/asyncstdlib-3.13.1-py3-none-any.whl", hash = "sha256:a64da68176af1da8c699026cad98f70b184f82b4cb39739e0b9701a2a7541cf9", size = 43993, upload-time = "2025-03-09T07:52:50.108Z" }, ] [[package]] name = "attrs" version = "24.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/48/c8/6260f8ccc11f0917360fc0da435c5c9c7504e3db174d5a12a1494887b045/attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff", size = 805984 } +sdist = { url = "https://files.pythonhosted.org/packages/48/c8/6260f8ccc11f0917360fc0da435c5c9c7504e3db174d5a12a1494887b045/attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff", size = 805984, upload-time = "2024-12-16T06:59:29.899Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", size = 63397 }, + { url = "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", size = 63397, upload-time = "2024-12-16T06:59:26.977Z" }, ] [[package]] name = "base58" version = "2.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7f/45/8ae61209bb9015f516102fa559a2914178da1d5868428bd86a1b4421141d/base58-2.1.1.tar.gz", hash = "sha256:c5d0cb3f5b6e81e8e35da5754388ddcc6d0d14b6c6a132cb93d69ed580a7278c", size = 6528 } +sdist = { url = "https://files.pythonhosted.org/packages/7f/45/8ae61209bb9015f516102fa559a2914178da1d5868428bd86a1b4421141d/base58-2.1.1.tar.gz", hash = "sha256:c5d0cb3f5b6e81e8e35da5754388ddcc6d0d14b6c6a132cb93d69ed580a7278c", size = 6528, upload-time = "2021-10-30T22:12:17.858Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/45/ec96b29162a402fc4c1c5512d114d7b3787b9d1c2ec241d9568b4816ee23/base58-2.1.1-py3-none-any.whl", hash = "sha256:11a36f4d3ce51dfc1043f3218591ac4eb1ceb172919cebe05b52a5bcc8d245c2", size = 5621 }, + { url = "https://files.pythonhosted.org/packages/4a/45/ec96b29162a402fc4c1c5512d114d7b3787b9d1c2ec241d9568b4816ee23/base58-2.1.1-py3-none-any.whl", hash = "sha256:11a36f4d3ce51dfc1043f3218591ac4eb1ceb172919cebe05b52a5bcc8d245c2", size = 5621, upload-time = "2021-10-30T22:12:16.658Z" }, ] [[package]] @@ -211,35 +211,35 @@ dependencies = [ { name = "uvicorn" }, { name = "wheel" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/32/a89e25e973ff5c4a42011d22453a26a86a90a4d0e93d6d56a356f7015338/bittensor-9.9.0.tar.gz", hash = "sha256:4bff5ac33ba77ddb414d34d4c717210a648380afb2a4ad32edb65e212b3fc561", size = 273691 } +sdist = { url = "https://files.pythonhosted.org/packages/cc/32/a89e25e973ff5c4a42011d22453a26a86a90a4d0e93d6d56a356f7015338/bittensor-9.9.0.tar.gz", hash = "sha256:4bff5ac33ba77ddb414d34d4c717210a648380afb2a4ad32edb65e212b3fc561", size = 273691, upload-time = "2025-08-12T17:09:21.513Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b5/18/cd3c4317866c4a3fcac64389ef6a395095413c9737e4299b3005a480a719/bittensor-9.9.0-py3-none-any.whl", hash = "sha256:79b54026f4e464611c862ad85031c44bc2576221c16ca759279908dcda9f5e35", size = 325232 }, + { url = "https://files.pythonhosted.org/packages/b5/18/cd3c4317866c4a3fcac64389ef6a395095413c9737e4299b3005a480a719/bittensor-9.9.0-py3-none-any.whl", hash = "sha256:79b54026f4e464611c862ad85031c44bc2576221c16ca759279908dcda9f5e35", size = 325232, upload-time = "2025-08-12T17:09:19.934Z" }, ] [[package]] name = "bittensor-drand" version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/2e/7994f0d84945837fd9cd027ad93aba00e1936021d79a862133f0e1c25555/bittensor_drand-1.0.0.tar.gz", hash = "sha256:d309a19981d69e2bfc0ac27770c63531173fc4bb2a41483c9c60b6677c44a501", size = 44924 } +sdist = { url = "https://files.pythonhosted.org/packages/59/2e/7994f0d84945837fd9cd027ad93aba00e1936021d79a862133f0e1c25555/bittensor_drand-1.0.0.tar.gz", hash = "sha256:d309a19981d69e2bfc0ac27770c63531173fc4bb2a41483c9c60b6677c44a501", size = 44924, upload-time = "2025-08-11T17:06:55.042Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/60/7f67116ff0479e4800853aa0ac4a2114442be65f98c6531e131ce23df090/bittensor_drand-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:2f3a7f878689f4c996db33ba3a8a336dd4c4f797fb4cd69176f75da13e770794", size = 1930096 }, - { url = "https://files.pythonhosted.org/packages/6a/db/58ac7d01e26a787247e5dbde26903f6ae3755304bf1429c2d4a8b6ed0bb2/bittensor_drand-1.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:eddf11a9e352e06558435f5938b3f859ff38a41ef947547d461d07221e2c0ba7", size = 1834271 }, - { url = "https://files.pythonhosted.org/packages/45/5a/5050328a65c8ea0af44eb508a3a9d1e31587ed6814a62b18de979a7e384b/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3c1a78034ea4a9eb3c5b607ed4746c85051107fc742c782d3291574a249a83d", size = 2065877 }, - { url = "https://files.pythonhosted.org/packages/7d/0a/b3284b9acdd377b065233296b8fcd8703bfcef2a5f64b52dc67b7b869e9e/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56436a880567f83c12f7fbd4ea4806b73487fa3c723c376694f966ab1311bfc9", size = 2169956 }, - { url = "https://files.pythonhosted.org/packages/97/1c/ee1602728fffeafcc6b22a5f6d3da7c51d11777a6a28773ba4dcc485f1b8/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d9f4960acabcb494de74790bf94c8b0d36efed4f21f5388690a25ecb48b1b8a", size = 2106980 }, + { url = "https://files.pythonhosted.org/packages/6e/60/7f67116ff0479e4800853aa0ac4a2114442be65f98c6531e131ce23df090/bittensor_drand-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:2f3a7f878689f4c996db33ba3a8a336dd4c4f797fb4cd69176f75da13e770794", size = 1930096, upload-time = "2025-08-11T17:06:50.716Z" }, + { url = "https://files.pythonhosted.org/packages/6a/db/58ac7d01e26a787247e5dbde26903f6ae3755304bf1429c2d4a8b6ed0bb2/bittensor_drand-1.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:eddf11a9e352e06558435f5938b3f859ff38a41ef947547d461d07221e2c0ba7", size = 1834271, upload-time = "2025-08-11T17:06:44.808Z" }, + { url = "https://files.pythonhosted.org/packages/45/5a/5050328a65c8ea0af44eb508a3a9d1e31587ed6814a62b18de979a7e384b/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3c1a78034ea4a9eb3c5b607ed4746c85051107fc742c782d3291574a249a83d", size = 2065877, upload-time = "2025-08-11T17:06:20.546Z" }, + { url = "https://files.pythonhosted.org/packages/7d/0a/b3284b9acdd377b065233296b8fcd8703bfcef2a5f64b52dc67b7b869e9e/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56436a880567f83c12f7fbd4ea4806b73487fa3c723c376694f966ab1311bfc9", size = 2169956, upload-time = "2025-08-11T17:06:27.295Z" }, + { url = "https://files.pythonhosted.org/packages/97/1c/ee1602728fffeafcc6b22a5f6d3da7c51d11777a6a28773ba4dcc485f1b8/bittensor_drand-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d9f4960acabcb494de74790bf94c8b0d36efed4f21f5388690a25ecb48b1b8a", size = 2106980, upload-time = "2025-08-11T17:06:37.767Z" }, ] [[package]] name = "bittensor-wallet" version = "4.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/02/94/d1473ad79490b16ccb3cd9f13c48f4db72907d0287636a40c038683f7afc/bittensor_wallet-4.0.0.tar.gz", hash = "sha256:9f990eac74b08897f9fc9a8af460d566b5cfb6e542f0313e4896a809449beb47", size = 82800 } +sdist = { url = "https://files.pythonhosted.org/packages/02/94/d1473ad79490b16ccb3cd9f13c48f4db72907d0287636a40c038683f7afc/bittensor_wallet-4.0.0.tar.gz", hash = "sha256:9f990eac74b08897f9fc9a8af460d566b5cfb6e542f0313e4896a809449beb47", size = 82800, upload-time = "2025-08-06T20:11:07.446Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/e3/3bff8a61a00fb567521296dd5e138238622d0e07bb9ab6c777132e0d9381/bittensor_wallet-4.0.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:5ff0b15c41604b1adb035cbe8fcdfd8b840f60355817a1c4dd8ec257f9b63b33", size = 827433 }, - { url = "https://files.pythonhosted.org/packages/50/f1/5496aba00b3322d76f4e8b71d9cbafcf704d01f3f82a3c8f53a164446b3a/bittensor_wallet-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ba1953a05b4ae220f84ddaf885b4dc8c800db33d7ac70b77d3b60b951009a08", size = 775007 }, - { url = "https://files.pythonhosted.org/packages/77/19/c575bf7d541d581f2761294e2f48cd96096ce2a22f81f7d70f7985a4086d/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ead2bc9423f908d94dda6deb7f9d8f18c9be057f999952274b7158214ff0790", size = 2758947 }, - { url = "https://files.pythonhosted.org/packages/cd/4e/841553284d19e9f9456d8339b78f11132cd91c656c0d07506722ade1ef8c/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1f53313b653eb0b67bf606a4f9e24ece503ba32025628b568da89ba7d7c4e82", size = 3171671 }, - { url = "https://files.pythonhosted.org/packages/79/73/e88207b7ad2f619d1888a529ba53ac3edf48313c8ac9f62706336630ce62/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3c6b8d58f3b3c8c0b01ff8fd6260fad6acfa74506e4a38ce2df8f7ecd33f4d73", size = 2973485 }, + { url = "https://files.pythonhosted.org/packages/a5/e3/3bff8a61a00fb567521296dd5e138238622d0e07bb9ab6c777132e0d9381/bittensor_wallet-4.0.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:5ff0b15c41604b1adb035cbe8fcdfd8b840f60355817a1c4dd8ec257f9b63b33", size = 827433, upload-time = "2025-08-06T20:11:02.565Z" }, + { url = "https://files.pythonhosted.org/packages/50/f1/5496aba00b3322d76f4e8b71d9cbafcf704d01f3f82a3c8f53a164446b3a/bittensor_wallet-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ba1953a05b4ae220f84ddaf885b4dc8c800db33d7ac70b77d3b60b951009a08", size = 775007, upload-time = "2025-08-06T20:10:53.929Z" }, + { url = "https://files.pythonhosted.org/packages/77/19/c575bf7d541d581f2761294e2f48cd96096ce2a22f81f7d70f7985a4086d/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ead2bc9423f908d94dda6deb7f9d8f18c9be057f999952274b7158214ff0790", size = 2758947, upload-time = "2025-08-06T20:10:20.643Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4e/841553284d19e9f9456d8339b78f11132cd91c656c0d07506722ade1ef8c/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1f53313b653eb0b67bf606a4f9e24ece503ba32025628b568da89ba7d7c4e82", size = 3171671, upload-time = "2025-08-06T20:10:41.239Z" }, + { url = "https://files.pythonhosted.org/packages/79/73/e88207b7ad2f619d1888a529ba53ac3edf48313c8ac9f62706336630ce62/bittensor_wallet-4.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3c6b8d58f3b3c8c0b01ff8fd6260fad6acfa74506e4a38ce2df8f7ecd33f4d73", size = 2973485, upload-time = "2025-08-06T20:10:30.723Z" }, ] [[package]] @@ -253,13 +253,13 @@ dependencies = [ { name = "pathspec" }, { name = "platformdirs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449 } +sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449, upload-time = "2025-01-29T04:15:40.373Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b", size = 1650988 }, - { url = "https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc", size = 1453985 }, - { url = "https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f", size = 1783816 }, - { url = "https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba", size = 1440860 }, - { url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646 }, + { url = "https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b", size = 1650988, upload-time = "2025-01-29T05:37:16.707Z" }, + { url = "https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc", size = 1453985, upload-time = "2025-01-29T05:37:18.273Z" }, + { url = "https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f", size = 1783816, upload-time = "2025-01-29T04:18:33.823Z" }, + { url = "https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba", size = 1440860, upload-time = "2025-01-29T04:19:12.944Z" }, + { url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646, upload-time = "2025-01-29T04:15:38.082Z" }, ] [[package]] @@ -270,9 +270,9 @@ dependencies = [ { name = "jinxed", marker = "sys_platform == 'win32'" }, { name = "wcwidth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0c/5e/3cada2f7514ee2a76bb8168c71f9b65d056840ebb711962e1ec08eeaa7b0/blessed-1.21.0.tar.gz", hash = "sha256:ece8bbc4758ab9176452f4e3a719d70088eb5739798cd5582c9e05f2a28337ec", size = 6660011 } +sdist = { url = "https://files.pythonhosted.org/packages/0c/5e/3cada2f7514ee2a76bb8168c71f9b65d056840ebb711962e1ec08eeaa7b0/blessed-1.21.0.tar.gz", hash = "sha256:ece8bbc4758ab9176452f4e3a719d70088eb5739798cd5582c9e05f2a28337ec", size = 6660011, upload-time = "2025-04-26T21:56:58.199Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/8e/0a37e44878fd76fac9eff5355a1bf760701f53cb5c38cdcd59a8fd9ab2a2/blessed-1.21.0-py2.py3-none-any.whl", hash = "sha256:f831e847396f5a2eac6c106f4dfadedf46c4f804733574b15fe86d2ed45a9588", size = 84727 }, + { url = "https://files.pythonhosted.org/packages/ea/8e/0a37e44878fd76fac9eff5355a1bf760701f53cb5c38cdcd59a8fd9ab2a2/blessed-1.21.0-py2.py3-none-any.whl", hash = "sha256:f831e847396f5a2eac6c106f4dfadedf46c4f804733574b15fe86d2ed45a9588", size = 84727, upload-time = "2025-04-26T16:58:29.919Z" }, ] [[package]] @@ -284,9 +284,9 @@ dependencies = [ { name = "jmespath" }, { name = "s3transfer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/77/a7/3fde131d2431d1801e3f16f1b428cf9b8c6677996716c5286a72eb43ecb7/boto3-1.40.30.tar.gz", hash = "sha256:e95db539c938710917f4cb4fc5915f71b27f2c836d949a1a95df7895d2e9ec8b", size = 111636 } +sdist = { url = "https://files.pythonhosted.org/packages/77/a7/3fde131d2431d1801e3f16f1b428cf9b8c6677996716c5286a72eb43ecb7/boto3-1.40.30.tar.gz", hash = "sha256:e95db539c938710917f4cb4fc5915f71b27f2c836d949a1a95df7895d2e9ec8b", size = 111636, upload-time = "2025-09-12T19:23:22.625Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/43/f1865e3e2aa91c1aa54db90a82ed17b8c0dc60c354045adf1c2134e5cbd8/boto3-1.40.30-py3-none-any.whl", hash = "sha256:04e89abf61240857bf7dec160e22f097eec68c502509b2bb3c5010a22cb91052", size = 139343 }, + { url = "https://files.pythonhosted.org/packages/3f/43/f1865e3e2aa91c1aa54db90a82ed17b8c0dc60c354045adf1c2134e5cbd8/boto3-1.40.30-py3-none-any.whl", hash = "sha256:04e89abf61240857bf7dec160e22f097eec68c502509b2bb3c5010a22cb91052", size = 139343, upload-time = "2025-09-12T19:23:20.728Z" }, ] [[package]] @@ -298,9 +298,9 @@ dependencies = [ { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c5/be/086ff6f031c407540e8226b3a4921dd18a05688224324c2df60457f9bcc0/botocore-1.40.30.tar.gz", hash = "sha256:8a74f77cfe5c519826d22f7613f89544cbb8491a1a49d965031bd997f89a8e3f", size = 14349135 } +sdist = { url = "https://files.pythonhosted.org/packages/c5/be/086ff6f031c407540e8226b3a4921dd18a05688224324c2df60457f9bcc0/botocore-1.40.30.tar.gz", hash = "sha256:8a74f77cfe5c519826d22f7613f89544cbb8491a1a49d965031bd997f89a8e3f", size = 14349135, upload-time = "2025-09-12T19:23:12.57Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/a8/3644f482b7b319f3fda87d4583f7b073c0cdf4a6d1b58e5a92555fe3e2e3/botocore-1.40.30-py3-none-any.whl", hash = "sha256:1d87874ad81234bec3e83f9de13618f67ccdfefd08d6b8babc041cd45007447e", size = 14022003 }, + { url = "https://files.pythonhosted.org/packages/ad/a8/3644f482b7b319f3fda87d4583f7b073c0cdf4a6d1b58e5a92555fe3e2e3/botocore-1.40.30-py3-none-any.whl", hash = "sha256:1d87874ad81234bec3e83f9de13618f67ccdfefd08d6b8babc041cd45007447e", size = 14022003, upload-time = "2025-09-12T19:23:09.163Z" }, ] [[package]] @@ -315,9 +315,9 @@ dependencies = [ { name = "pyxdg" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ba/dd/cc02bf66f342a4673867fdf6c1f9fce90ec1e91e651b21bc4af4890101da/bpython-0.25.tar.gz", hash = "sha256:c246fc909ef6dcc26e9d8cb4615b0e6b1613f3543d12269b19ffd0782166c65b", size = 207610 } +sdist = { url = "https://files.pythonhosted.org/packages/ba/dd/cc02bf66f342a4673867fdf6c1f9fce90ec1e91e651b21bc4af4890101da/bpython-0.25.tar.gz", hash = "sha256:c246fc909ef6dcc26e9d8cb4615b0e6b1613f3543d12269b19ffd0782166c65b", size = 207610, upload-time = "2025-01-17T09:35:22.382Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/74/5470df025854d5e213793b62cbea032fd66919562662955789fcc5dc17d6/bpython-0.25-py3-none-any.whl", hash = "sha256:28fd86008ca5ef6100ead407c9743aa60c51293a18ba5b18fcacea7f5b7f2257", size = 176131 }, + { url = "https://files.pythonhosted.org/packages/ba/74/5470df025854d5e213793b62cbea032fd66919562662955789fcc5dc17d6/bpython-0.25-py3-none-any.whl", hash = "sha256:28fd86008ca5ef6100ead407c9743aa60c51293a18ba5b18fcacea7f5b7f2257", size = 176131, upload-time = "2025-01-17T09:35:19.444Z" }, ] [[package]] @@ -327,14 +327,14 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "toml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/76/d4/cbbe3201561b1467e53bb5a111d968d3364d58633c58009343db9a5c2915/bt_decode-0.6.0.tar.gz", hash = "sha256:05e67b5ab018af7a31651bb9c0fb838c3a1733806823019d14c287922869f84e", size = 1199355 } +sdist = { url = "https://files.pythonhosted.org/packages/76/d4/cbbe3201561b1467e53bb5a111d968d3364d58633c58009343db9a5c2915/bt_decode-0.6.0.tar.gz", hash = "sha256:05e67b5ab018af7a31651bb9c0fb838c3a1733806823019d14c287922869f84e", size = 1199355, upload-time = "2025-04-03T19:37:21.064Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/00/f5100765c4da5bdca0aff952497eba9eaa98505fae6ba8d60d7e67919e1a/bt_decode-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b61e4237b58977f6bd4500a0ca52b1ffc405f47498a5d89c70f6a37087e8cabc", size = 595757 }, - { url = "https://files.pythonhosted.org/packages/e6/5f/0a973a374bb51bb05e8e665641dd7f65ac600f3904a74a71f7e4251ae2c2/bt_decode-0.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78534a941d136715a33bdbbbf9d5f7d72ca3d75abe888f449b39e56396cea823", size = 580301 }, - { url = "https://files.pythonhosted.org/packages/fb/4a/6333713c66b801f1b15a9548a3444d15de38a1e69f17722bb931a35dfc0b/bt_decode-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e8a90524af52be75778daa91a3bbfeb2da8c7a2791e5adfb5dedbceb5be8889", size = 650787 }, - { url = "https://files.pythonhosted.org/packages/57/6d/32e3799dfaf6f57ce61ed2fcf52e97e5883b2bd86ac90cbc8dc53b7c60bd/bt_decode-0.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:636e8a2c5074f43f1a68b75f225ad5434cbffed66d7e289c7efec5f0dde4bb54", size = 711889 }, - { url = "https://files.pythonhosted.org/packages/59/a8/3b8ede0181be5dc5e7656ef1575c06dd9616ba35dac90f20baff66cec0d2/bt_decode-0.6.0-cp312-cp312-win32.whl", hash = "sha256:ecbf71fb8786727b7c7835441419c74104473d984505d2bfd5aaa2a78402d47a", size = 416317 }, - { url = "https://files.pythonhosted.org/packages/71/d2/ab0f965be493051235d37f3577bad1d4970205d0d942db59b58870231525/bt_decode-0.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:70568c723b2cc900952a5349dddf158f85284b7da37aa0ad398392a34e09e468", size = 443973 }, + { url = "https://files.pythonhosted.org/packages/dc/00/f5100765c4da5bdca0aff952497eba9eaa98505fae6ba8d60d7e67919e1a/bt_decode-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b61e4237b58977f6bd4500a0ca52b1ffc405f47498a5d89c70f6a37087e8cabc", size = 595757, upload-time = "2025-04-03T19:37:16.956Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5f/0a973a374bb51bb05e8e665641dd7f65ac600f3904a74a71f7e4251ae2c2/bt_decode-0.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78534a941d136715a33bdbbbf9d5f7d72ca3d75abe888f449b39e56396cea823", size = 580301, upload-time = "2025-04-03T19:37:10.439Z" }, + { url = "https://files.pythonhosted.org/packages/fb/4a/6333713c66b801f1b15a9548a3444d15de38a1e69f17722bb931a35dfc0b/bt_decode-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e8a90524af52be75778daa91a3bbfeb2da8c7a2791e5adfb5dedbceb5be8889", size = 650787, upload-time = "2025-04-03T19:36:57.761Z" }, + { url = "https://files.pythonhosted.org/packages/57/6d/32e3799dfaf6f57ce61ed2fcf52e97e5883b2bd86ac90cbc8dc53b7c60bd/bt_decode-0.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:636e8a2c5074f43f1a68b75f225ad5434cbffed66d7e289c7efec5f0dde4bb54", size = 711889, upload-time = "2025-04-03T19:36:42.871Z" }, + { url = "https://files.pythonhosted.org/packages/59/a8/3b8ede0181be5dc5e7656ef1575c06dd9616ba35dac90f20baff66cec0d2/bt_decode-0.6.0-cp312-cp312-win32.whl", hash = "sha256:ecbf71fb8786727b7c7835441419c74104473d984505d2bfd5aaa2a78402d47a", size = 416317, upload-time = "2025-04-03T19:37:38.243Z" }, + { url = "https://files.pythonhosted.org/packages/71/d2/ab0f965be493051235d37f3577bad1d4970205d0d942db59b58870231525/bt_decode-0.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:70568c723b2cc900952a5349dddf158f85284b7da37aa0ad398392a34e09e468", size = 443973, upload-time = "2025-04-03T19:37:26.544Z" }, ] [[package]] @@ -346,18 +346,18 @@ dependencies = [ { name = "packaging" }, { name = "pyproject-hooks" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz", hash = "sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397", size = 48544 } +sdist = { url = "https://files.pythonhosted.org/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz", hash = "sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397", size = 48544, upload-time = "2025-08-01T21:27:09.268Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/8c/2b30c12155ad8de0cf641d76a8b396a16d2c36bc6d50b621a62b7c4567c1/build-1.3.0-py3-none-any.whl", hash = "sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4", size = 23382 }, + { url = "https://files.pythonhosted.org/packages/cb/8c/2b30c12155ad8de0cf641d76a8b396a16d2c36bc6d50b621a62b7c4567c1/build-1.3.0-py3-none-any.whl", hash = "sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4", size = 23382, upload-time = "2025-08-01T21:27:07.844Z" }, ] [[package]] name = "certifi" version = "2025.8.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386 } +sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload-time = "2025-08-03T03:07:47.08Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216 }, + { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" }, ] [[package]] @@ -367,49 +367,49 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pycparser", marker = "implementation_name != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588 } +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271 }, - { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048 }, - { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529 }, - { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097 }, - { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983 }, - { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519 }, - { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572 }, - { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963 }, - { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361 }, - { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932 }, - { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557 }, - { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762 }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, ] [[package]] name = "charset-normalizer" version = "3.4.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371 } +sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload-time = "2025-08-09T07:57:28.46Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655 }, - { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223 }, - { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366 }, - { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104 }, - { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830 }, - { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854 }, - { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670 }, - { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501 }, - { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173 }, - { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822 }, - { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543 }, - { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175 }, + { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655, upload-time = "2025-08-09T07:56:08.475Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223, upload-time = "2025-08-09T07:56:09.708Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366, upload-time = "2025-08-09T07:56:11.326Z" }, + { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104, upload-time = "2025-08-09T07:56:13.014Z" }, + { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830, upload-time = "2025-08-09T07:56:14.428Z" }, + { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854, upload-time = "2025-08-09T07:56:16.051Z" }, + { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670, upload-time = "2025-08-09T07:56:17.314Z" }, + { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501, upload-time = "2025-08-09T07:56:18.641Z" }, + { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173, upload-time = "2025-08-09T07:56:20.289Z" }, + { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822, upload-time = "2025-08-09T07:56:21.551Z" }, + { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543, upload-time = "2025-08-09T07:56:23.115Z" }, + { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload-time = "2025-08-09T07:57:26.864Z" }, ] [[package]] name = "cheap-repr" version = "0.5.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b1/30/f0e9d5bfe80b8287ea8a9263eb3c71c5fdf44b6f7a781a7c96f83172ccad/cheap_repr-0.5.2.tar.gz", hash = "sha256:001a5cf8adb0305c7ad3152c5f776040ac2a559d97f85770cebcb28c6ca5a30f", size = 20232 } +sdist = { url = "https://files.pythonhosted.org/packages/b1/30/f0e9d5bfe80b8287ea8a9263eb3c71c5fdf44b6f7a781a7c96f83172ccad/cheap_repr-0.5.2.tar.gz", hash = "sha256:001a5cf8adb0305c7ad3152c5f776040ac2a559d97f85770cebcb28c6ca5a30f", size = 20232, upload-time = "2024-08-10T14:08:07.314Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/52/fec0262af470a157a557e46be1d52ecdaf1695cefd80bb62bb6a07cc4ea9/cheap_repr-0.5.2-py2.py3-none-any.whl", hash = "sha256:537ec1991bfee885c13c6d473afd110a408e039cde26882e95bf92761556ab6e", size = 12228 }, + { url = "https://files.pythonhosted.org/packages/ec/52/fec0262af470a157a557e46be1d52ecdaf1695cefd80bb62bb6a07cc4ea9/cheap_repr-0.5.2-py2.py3-none-any.whl", hash = "sha256:537ec1991bfee885c13c6d473afd110a408e039cde26882e95bf92761556ab6e", size = 12228, upload-time = "2024-08-10T14:08:05.965Z" }, ] [[package]] @@ -419,18 +419,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342 } +sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215 }, + { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215, upload-time = "2025-05-20T23:19:47.796Z" }, ] [[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 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] @@ -440,18 +440,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "humanfriendly" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0", size = 278520 } +sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0", size = 278520, upload-time = "2021-06-11T10:22:45.202Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018 }, + { url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018, upload-time = "2021-06-11T10:22:42.561Z" }, ] [[package]] name = "comm" version = "0.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319 } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294 }, + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, ] [[package]] @@ -461,19 +461,19 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174 } +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419 }, - { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979 }, - { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653 }, - { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536 }, - { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397 }, - { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601 }, - { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288 }, - { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386 }, - { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018 }, - { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567 }, - { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655 }, + { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, + { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, + { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, + { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, + { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, + { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, + { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, + { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, + { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, ] [[package]] @@ -483,32 +483,32 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/35/c495bffc2056f2dadb32434f1feedd79abde2a7f8363e1974afa9c33c7e2/cryptography-45.0.7.tar.gz", hash = "sha256:4b1654dfc64ea479c242508eb8c724044f1e964a47d1d1cacc5132292d851971", size = 744980 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/91/925c0ac74362172ae4516000fe877912e33b5983df735ff290c653de4913/cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:3be4f21c6245930688bd9e162829480de027f8bf962ede33d4f8ba7d67a00cee", size = 7041105 }, - { url = "https://files.pythonhosted.org/packages/fc/63/43641c5acce3a6105cf8bd5baeceeb1846bb63067d26dae3e5db59f1513a/cryptography-45.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:67285f8a611b0ebc0857ced2081e30302909f571a46bfa7a3cc0ad303fe015c6", size = 4205799 }, - { url = "https://files.pythonhosted.org/packages/bc/29/c238dd9107f10bfde09a4d1c52fd38828b1aa353ced11f358b5dd2507d24/cryptography-45.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:577470e39e60a6cd7780793202e63536026d9b8641de011ed9d8174da9ca5339", size = 4430504 }, - { url = "https://files.pythonhosted.org/packages/62/62/24203e7cbcc9bd7c94739428cd30680b18ae6b18377ae66075c8e4771b1b/cryptography-45.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:4bd3e5c4b9682bc112d634f2c6ccc6736ed3635fc3319ac2bb11d768cc5a00d8", size = 4209542 }, - { url = "https://files.pythonhosted.org/packages/cd/e3/e7de4771a08620eef2389b86cd87a2c50326827dea5528feb70595439ce4/cryptography-45.0.7-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:465ccac9d70115cd4de7186e60cfe989de73f7bb23e8a7aa45af18f7412e75bf", size = 3889244 }, - { url = "https://files.pythonhosted.org/packages/96/b8/bca71059e79a0bb2f8e4ec61d9c205fbe97876318566cde3b5092529faa9/cryptography-45.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:16ede8a4f7929b4b7ff3642eba2bf79aa1d71f24ab6ee443935c0d269b6bc513", size = 4461975 }, - { url = "https://files.pythonhosted.org/packages/58/67/3f5b26937fe1218c40e95ef4ff8d23c8dc05aa950d54200cc7ea5fb58d28/cryptography-45.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8978132287a9d3ad6b54fcd1e08548033cc09dc6aacacb6c004c73c3eb5d3ac3", size = 4209082 }, - { url = "https://files.pythonhosted.org/packages/0e/e4/b3e68a4ac363406a56cf7b741eeb80d05284d8c60ee1a55cdc7587e2a553/cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b6a0e535baec27b528cb07a119f321ac024592388c5681a5ced167ae98e9fff3", size = 4460397 }, - { url = "https://files.pythonhosted.org/packages/22/49/2c93f3cd4e3efc8cb22b02678c1fad691cff9dd71bb889e030d100acbfe0/cryptography-45.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a24ee598d10befaec178efdff6054bc4d7e883f615bfbcd08126a0f4931c83a6", size = 4337244 }, - { url = "https://files.pythonhosted.org/packages/04/19/030f400de0bccccc09aa262706d90f2ec23d56bc4eb4f4e8268d0ddf3fb8/cryptography-45.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa26fa54c0a9384c27fcdc905a2fb7d60ac6e47d14bc2692145f2b3b1e2cfdbd", size = 4568862 }, - { url = "https://files.pythonhosted.org/packages/29/56/3034a3a353efa65116fa20eb3c990a8c9f0d3db4085429040a7eef9ada5f/cryptography-45.0.7-cp311-abi3-win32.whl", hash = "sha256:bef32a5e327bd8e5af915d3416ffefdbe65ed975b646b3805be81b23580b57b8", size = 2936578 }, - { url = "https://files.pythonhosted.org/packages/b3/61/0ab90f421c6194705a99d0fa9f6ee2045d916e4455fdbb095a9c2c9a520f/cryptography-45.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:3808e6b2e5f0b46d981c24d79648e5c25c35e59902ea4391a0dcb3e667bf7443", size = 3405400 }, - { url = "https://files.pythonhosted.org/packages/63/e8/c436233ddf19c5f15b25ace33979a9dd2e7aa1a59209a0ee8554179f1cc0/cryptography-45.0.7-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bfb4c801f65dd61cedfc61a83732327fafbac55a47282e6f26f073ca7a41c3b2", size = 7021824 }, - { url = "https://files.pythonhosted.org/packages/bc/4c/8f57f2500d0ccd2675c5d0cc462095adf3faa8c52294ba085c036befb901/cryptography-45.0.7-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:81823935e2f8d476707e85a78a405953a03ef7b7b4f55f93f7c2d9680e5e0691", size = 4202233 }, - { url = "https://files.pythonhosted.org/packages/eb/ac/59b7790b4ccaed739fc44775ce4645c9b8ce54cbec53edf16c74fd80cb2b/cryptography-45.0.7-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3994c809c17fc570c2af12c9b840d7cea85a9fd3e5c0e0491f4fa3c029216d59", size = 4423075 }, - { url = "https://files.pythonhosted.org/packages/b8/56/d4f07ea21434bf891faa088a6ac15d6d98093a66e75e30ad08e88aa2b9ba/cryptography-45.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dad43797959a74103cb59c5dac71409f9c27d34c8a05921341fb64ea8ccb1dd4", size = 4204517 }, - { url = "https://files.pythonhosted.org/packages/e8/ac/924a723299848b4c741c1059752c7cfe09473b6fd77d2920398fc26bfb53/cryptography-45.0.7-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ce7a453385e4c4693985b4a4a3533e041558851eae061a58a5405363b098fcd3", size = 3882893 }, - { url = "https://files.pythonhosted.org/packages/83/dc/4dab2ff0a871cc2d81d3ae6d780991c0192b259c35e4d83fe1de18b20c70/cryptography-45.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b04f85ac3a90c227b6e5890acb0edbaf3140938dbecf07bff618bf3638578cf1", size = 4450132 }, - { url = "https://files.pythonhosted.org/packages/12/dd/b2882b65db8fc944585d7fb00d67cf84a9cef4e77d9ba8f69082e911d0de/cryptography-45.0.7-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:48c41a44ef8b8c2e80ca4527ee81daa4c527df3ecbc9423c41a420a9559d0e27", size = 4204086 }, - { url = "https://files.pythonhosted.org/packages/5d/fa/1d5745d878048699b8eb87c984d4ccc5da4f5008dfd3ad7a94040caca23a/cryptography-45.0.7-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f3df7b3d0f91b88b2106031fd995802a2e9ae13e02c36c1fc075b43f420f3a17", size = 4449383 }, - { url = "https://files.pythonhosted.org/packages/36/8b/fc61f87931bc030598e1876c45b936867bb72777eac693e905ab89832670/cryptography-45.0.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dd342f085542f6eb894ca00ef70236ea46070c8a13824c6bde0dfdcd36065b9b", size = 4332186 }, - { url = "https://files.pythonhosted.org/packages/0b/11/09700ddad7443ccb11d674efdbe9a832b4455dc1f16566d9bd3834922ce5/cryptography-45.0.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1993a1bb7e4eccfb922b6cd414f072e08ff5816702a0bdb8941c247a6b1b287c", size = 4561639 }, - { url = "https://files.pythonhosted.org/packages/71/ed/8f4c1337e9d3b94d8e50ae0b08ad0304a5709d483bfcadfcc77a23dbcb52/cryptography-45.0.7-cp37-abi3-win32.whl", hash = "sha256:18fcf70f243fe07252dcb1b268a687f2358025ce32f9f88028ca5c364b123ef5", size = 2926552 }, - { url = "https://files.pythonhosted.org/packages/bc/ff/026513ecad58dacd45d1d24ebe52b852165a26e287177de1d545325c0c25/cryptography-45.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:7285a89df4900ed3bfaad5679b1e668cb4b38a8de1ccbfc84b05f34512da0a90", size = 3392742 }, +sdist = { url = "https://files.pythonhosted.org/packages/a7/35/c495bffc2056f2dadb32434f1feedd79abde2a7f8363e1974afa9c33c7e2/cryptography-45.0.7.tar.gz", hash = "sha256:4b1654dfc64ea479c242508eb8c724044f1e964a47d1d1cacc5132292d851971", size = 744980, upload-time = "2025-09-01T11:15:03.146Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/91/925c0ac74362172ae4516000fe877912e33b5983df735ff290c653de4913/cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:3be4f21c6245930688bd9e162829480de027f8bf962ede33d4f8ba7d67a00cee", size = 7041105, upload-time = "2025-09-01T11:13:59.684Z" }, + { url = "https://files.pythonhosted.org/packages/fc/63/43641c5acce3a6105cf8bd5baeceeb1846bb63067d26dae3e5db59f1513a/cryptography-45.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:67285f8a611b0ebc0857ced2081e30302909f571a46bfa7a3cc0ad303fe015c6", size = 4205799, upload-time = "2025-09-01T11:14:02.517Z" }, + { url = "https://files.pythonhosted.org/packages/bc/29/c238dd9107f10bfde09a4d1c52fd38828b1aa353ced11f358b5dd2507d24/cryptography-45.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:577470e39e60a6cd7780793202e63536026d9b8641de011ed9d8174da9ca5339", size = 4430504, upload-time = "2025-09-01T11:14:04.522Z" }, + { url = "https://files.pythonhosted.org/packages/62/62/24203e7cbcc9bd7c94739428cd30680b18ae6b18377ae66075c8e4771b1b/cryptography-45.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:4bd3e5c4b9682bc112d634f2c6ccc6736ed3635fc3319ac2bb11d768cc5a00d8", size = 4209542, upload-time = "2025-09-01T11:14:06.309Z" }, + { url = "https://files.pythonhosted.org/packages/cd/e3/e7de4771a08620eef2389b86cd87a2c50326827dea5528feb70595439ce4/cryptography-45.0.7-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:465ccac9d70115cd4de7186e60cfe989de73f7bb23e8a7aa45af18f7412e75bf", size = 3889244, upload-time = "2025-09-01T11:14:08.152Z" }, + { url = "https://files.pythonhosted.org/packages/96/b8/bca71059e79a0bb2f8e4ec61d9c205fbe97876318566cde3b5092529faa9/cryptography-45.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:16ede8a4f7929b4b7ff3642eba2bf79aa1d71f24ab6ee443935c0d269b6bc513", size = 4461975, upload-time = "2025-09-01T11:14:09.755Z" }, + { url = "https://files.pythonhosted.org/packages/58/67/3f5b26937fe1218c40e95ef4ff8d23c8dc05aa950d54200cc7ea5fb58d28/cryptography-45.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8978132287a9d3ad6b54fcd1e08548033cc09dc6aacacb6c004c73c3eb5d3ac3", size = 4209082, upload-time = "2025-09-01T11:14:11.229Z" }, + { url = "https://files.pythonhosted.org/packages/0e/e4/b3e68a4ac363406a56cf7b741eeb80d05284d8c60ee1a55cdc7587e2a553/cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b6a0e535baec27b528cb07a119f321ac024592388c5681a5ced167ae98e9fff3", size = 4460397, upload-time = "2025-09-01T11:14:12.924Z" }, + { url = "https://files.pythonhosted.org/packages/22/49/2c93f3cd4e3efc8cb22b02678c1fad691cff9dd71bb889e030d100acbfe0/cryptography-45.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a24ee598d10befaec178efdff6054bc4d7e883f615bfbcd08126a0f4931c83a6", size = 4337244, upload-time = "2025-09-01T11:14:14.431Z" }, + { url = "https://files.pythonhosted.org/packages/04/19/030f400de0bccccc09aa262706d90f2ec23d56bc4eb4f4e8268d0ddf3fb8/cryptography-45.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa26fa54c0a9384c27fcdc905a2fb7d60ac6e47d14bc2692145f2b3b1e2cfdbd", size = 4568862, upload-time = "2025-09-01T11:14:16.185Z" }, + { url = "https://files.pythonhosted.org/packages/29/56/3034a3a353efa65116fa20eb3c990a8c9f0d3db4085429040a7eef9ada5f/cryptography-45.0.7-cp311-abi3-win32.whl", hash = "sha256:bef32a5e327bd8e5af915d3416ffefdbe65ed975b646b3805be81b23580b57b8", size = 2936578, upload-time = "2025-09-01T11:14:17.638Z" }, + { url = "https://files.pythonhosted.org/packages/b3/61/0ab90f421c6194705a99d0fa9f6ee2045d916e4455fdbb095a9c2c9a520f/cryptography-45.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:3808e6b2e5f0b46d981c24d79648e5c25c35e59902ea4391a0dcb3e667bf7443", size = 3405400, upload-time = "2025-09-01T11:14:18.958Z" }, + { url = "https://files.pythonhosted.org/packages/63/e8/c436233ddf19c5f15b25ace33979a9dd2e7aa1a59209a0ee8554179f1cc0/cryptography-45.0.7-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bfb4c801f65dd61cedfc61a83732327fafbac55a47282e6f26f073ca7a41c3b2", size = 7021824, upload-time = "2025-09-01T11:14:20.954Z" }, + { url = "https://files.pythonhosted.org/packages/bc/4c/8f57f2500d0ccd2675c5d0cc462095adf3faa8c52294ba085c036befb901/cryptography-45.0.7-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:81823935e2f8d476707e85a78a405953a03ef7b7b4f55f93f7c2d9680e5e0691", size = 4202233, upload-time = "2025-09-01T11:14:22.454Z" }, + { url = "https://files.pythonhosted.org/packages/eb/ac/59b7790b4ccaed739fc44775ce4645c9b8ce54cbec53edf16c74fd80cb2b/cryptography-45.0.7-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3994c809c17fc570c2af12c9b840d7cea85a9fd3e5c0e0491f4fa3c029216d59", size = 4423075, upload-time = "2025-09-01T11:14:24.287Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/d4f07ea21434bf891faa088a6ac15d6d98093a66e75e30ad08e88aa2b9ba/cryptography-45.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dad43797959a74103cb59c5dac71409f9c27d34c8a05921341fb64ea8ccb1dd4", size = 4204517, upload-time = "2025-09-01T11:14:25.679Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ac/924a723299848b4c741c1059752c7cfe09473b6fd77d2920398fc26bfb53/cryptography-45.0.7-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ce7a453385e4c4693985b4a4a3533e041558851eae061a58a5405363b098fcd3", size = 3882893, upload-time = "2025-09-01T11:14:27.1Z" }, + { url = "https://files.pythonhosted.org/packages/83/dc/4dab2ff0a871cc2d81d3ae6d780991c0192b259c35e4d83fe1de18b20c70/cryptography-45.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b04f85ac3a90c227b6e5890acb0edbaf3140938dbecf07bff618bf3638578cf1", size = 4450132, upload-time = "2025-09-01T11:14:28.58Z" }, + { url = "https://files.pythonhosted.org/packages/12/dd/b2882b65db8fc944585d7fb00d67cf84a9cef4e77d9ba8f69082e911d0de/cryptography-45.0.7-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:48c41a44ef8b8c2e80ca4527ee81daa4c527df3ecbc9423c41a420a9559d0e27", size = 4204086, upload-time = "2025-09-01T11:14:30.572Z" }, + { url = "https://files.pythonhosted.org/packages/5d/fa/1d5745d878048699b8eb87c984d4ccc5da4f5008dfd3ad7a94040caca23a/cryptography-45.0.7-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f3df7b3d0f91b88b2106031fd995802a2e9ae13e02c36c1fc075b43f420f3a17", size = 4449383, upload-time = "2025-09-01T11:14:32.046Z" }, + { url = "https://files.pythonhosted.org/packages/36/8b/fc61f87931bc030598e1876c45b936867bb72777eac693e905ab89832670/cryptography-45.0.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dd342f085542f6eb894ca00ef70236ea46070c8a13824c6bde0dfdcd36065b9b", size = 4332186, upload-time = "2025-09-01T11:14:33.95Z" }, + { url = "https://files.pythonhosted.org/packages/0b/11/09700ddad7443ccb11d674efdbe9a832b4455dc1f16566d9bd3834922ce5/cryptography-45.0.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1993a1bb7e4eccfb922b6cd414f072e08ff5816702a0bdb8941c247a6b1b287c", size = 4561639, upload-time = "2025-09-01T11:14:35.343Z" }, + { url = "https://files.pythonhosted.org/packages/71/ed/8f4c1337e9d3b94d8e50ae0b08ad0304a5709d483bfcadfcc77a23dbcb52/cryptography-45.0.7-cp37-abi3-win32.whl", hash = "sha256:18fcf70f243fe07252dcb1b268a687f2358025ce32f9f88028ca5c364b123ef5", size = 2926552, upload-time = "2025-09-01T11:14:36.929Z" }, + { url = "https://files.pythonhosted.org/packages/bc/ff/026513ecad58dacd45d1d24ebe52b852165a26e287177de1d545325c0c25/cryptography-45.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:7285a89df4900ed3bfaad5679b1e668cb4b38a8de1ccbfc84b05f34512da0a90", size = 3392742, upload-time = "2025-09-01T11:14:38.368Z" }, ] [[package]] @@ -519,33 +519,33 @@ dependencies = [ { name = "blessed" }, { name = "cwcwidth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d1/18/5741cb42624089a815520d5b65c39c3e59673a77fd1fab6ad65bdebf2f91/curtsies-0.4.3.tar.gz", hash = "sha256:102a0ffbf952124f1be222fd6989da4ec7cce04e49f613009e5f54ad37618825", size = 53401 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/18/5741cb42624089a815520d5b65c39c3e59673a77fd1fab6ad65bdebf2f91/curtsies-0.4.3.tar.gz", hash = "sha256:102a0ffbf952124f1be222fd6989da4ec7cce04e49f613009e5f54ad37618825", size = 53401, upload-time = "2025-06-05T06:33:20.099Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/9b/b8ee3720d056309f4ab667bfc85995c4351f67b22e8c2008612b70350c3a/curtsies-0.4.3-py3-none-any.whl", hash = "sha256:65a1b4d6ff887bd9b0f0836cc6dc68c3a2c65c57f51a62f0ee5df408edee1a99", size = 35482 }, + { url = "https://files.pythonhosted.org/packages/ab/9b/b8ee3720d056309f4ab667bfc85995c4351f67b22e8c2008612b70350c3a/curtsies-0.4.3-py3-none-any.whl", hash = "sha256:65a1b4d6ff887bd9b0f0836cc6dc68c3a2c65c57f51a62f0ee5df408edee1a99", size = 35482, upload-time = "2025-06-05T06:33:19.122Z" }, ] [[package]] name = "cwcwidth" version = "0.1.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/23/76/03fc9fb3441a13e9208bb6103ebb7200eba7647d040008b8303a1c03e152/cwcwidth-0.1.10.tar.gz", hash = "sha256:7468760f72c1f4107be1b2b2854bc000401ea36a69daed36fb966a1e19a7a124", size = 60265 } +sdist = { url = "https://files.pythonhosted.org/packages/23/76/03fc9fb3441a13e9208bb6103ebb7200eba7647d040008b8303a1c03e152/cwcwidth-0.1.10.tar.gz", hash = "sha256:7468760f72c1f4107be1b2b2854bc000401ea36a69daed36fb966a1e19a7a124", size = 60265, upload-time = "2025-02-09T21:15:28.452Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/28/8e2ab81f0116bfcec22069e4c92fda9d05b0512605ccef00b62d93719ded/cwcwidth-0.1.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d2b21ff2eb60c6793349b7fb161c40a8583a57ec32e61f47aab7938177bfdec", size = 23031 }, - { url = "https://files.pythonhosted.org/packages/3a/a4/5adc535e2a714ecc926ea701e821a9abbe14f65cae4d615d20059b9b52a5/cwcwidth-0.1.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0316488349c3e5ca4b20de7daa1cb8e96a05d1d14d040d46e87a495da655f4a", size = 101219 }, - { url = "https://files.pythonhosted.org/packages/78/4c/18a5a06aa8db3cc28712ab957671e7718aedfc73403d84b0c2cb5cfcbc27/cwcwidth-0.1.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:848b6ffca1e32e28d2ccbb2cd395ccd3c38a7c4ec110728cd9d828eaf609b09e", size = 106565 }, - { url = "https://files.pythonhosted.org/packages/06/40/801cba5ccb9551c862ad210eba22031e4655cd74711e32756b7ce24fc751/cwcwidth-0.1.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c3a7bfe1da478c0c27c549f68c6e28a583413da3ee451854ec2d983497bd18b8", size = 102244 }, - { url = "https://files.pythonhosted.org/packages/e4/ed/60f61274fcfd0621a45e9403502e8f46968d562810a4424e5ff8d6bd50b0/cwcwidth-0.1.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cff03100f49170bc50fc399d05a31b8fcb7b0cef26df1a8068fa943387107f6c", size = 105634 }, - { url = "https://files.pythonhosted.org/packages/b1/27/8179cecd688fef894dda601455d35066adfa3d58af4e97c5ab112893b5f6/cwcwidth-0.1.10-cp312-cp312-win32.whl", hash = "sha256:2dd9a92fdfbc53fc79f0953f39708dcf743fd27450c374985f419e3d47eb89d4", size = 23507 }, - { url = "https://files.pythonhosted.org/packages/b2/b4/b7fe652a4d96f03ef051fff8313dfe827bc31578f7e67f1c98d5a5813f66/cwcwidth-0.1.10-cp312-cp312-win_amd64.whl", hash = "sha256:734d764281e3d87c40d0265543f00a653409145fa9f48a93bc0fbf9a8e7932ca", size = 26100 }, + { url = "https://files.pythonhosted.org/packages/87/28/8e2ab81f0116bfcec22069e4c92fda9d05b0512605ccef00b62d93719ded/cwcwidth-0.1.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d2b21ff2eb60c6793349b7fb161c40a8583a57ec32e61f47aab7938177bfdec", size = 23031, upload-time = "2025-02-09T21:14:59.01Z" }, + { url = "https://files.pythonhosted.org/packages/3a/a4/5adc535e2a714ecc926ea701e821a9abbe14f65cae4d615d20059b9b52a5/cwcwidth-0.1.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0316488349c3e5ca4b20de7daa1cb8e96a05d1d14d040d46e87a495da655f4a", size = 101219, upload-time = "2025-02-09T21:15:00.079Z" }, + { url = "https://files.pythonhosted.org/packages/78/4c/18a5a06aa8db3cc28712ab957671e7718aedfc73403d84b0c2cb5cfcbc27/cwcwidth-0.1.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:848b6ffca1e32e28d2ccbb2cd395ccd3c38a7c4ec110728cd9d828eaf609b09e", size = 106565, upload-time = "2025-02-09T21:15:02.081Z" }, + { url = "https://files.pythonhosted.org/packages/06/40/801cba5ccb9551c862ad210eba22031e4655cd74711e32756b7ce24fc751/cwcwidth-0.1.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c3a7bfe1da478c0c27c549f68c6e28a583413da3ee451854ec2d983497bd18b8", size = 102244, upload-time = "2025-02-09T21:15:04.003Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ed/60f61274fcfd0621a45e9403502e8f46968d562810a4424e5ff8d6bd50b0/cwcwidth-0.1.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cff03100f49170bc50fc399d05a31b8fcb7b0cef26df1a8068fa943387107f6c", size = 105634, upload-time = "2025-02-09T21:15:06.005Z" }, + { url = "https://files.pythonhosted.org/packages/b1/27/8179cecd688fef894dda601455d35066adfa3d58af4e97c5ab112893b5f6/cwcwidth-0.1.10-cp312-cp312-win32.whl", hash = "sha256:2dd9a92fdfbc53fc79f0953f39708dcf743fd27450c374985f419e3d47eb89d4", size = 23507, upload-time = "2025-02-09T21:15:07.968Z" }, + { url = "https://files.pythonhosted.org/packages/b2/b4/b7fe652a4d96f03ef051fff8313dfe827bc31578f7e67f1c98d5a5813f66/cwcwidth-0.1.10-cp312-cp312-win_amd64.whl", hash = "sha256:734d764281e3d87c40d0265543f00a653409145fa9f48a93bc0fbf9a8e7932ca", size = 26100, upload-time = "2025-02-09T21:15:09.186Z" }, ] [[package]] name = "cycler" version = "0.12.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615 } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 }, + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, ] [[package]] @@ -555,44 +555,44 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "toolz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/f9/3243eed3a6545c2a33a21f74f655e3fcb5d2192613cd3db81a93369eb339/cytoolz-1.0.1.tar.gz", hash = "sha256:89cc3161b89e1bb3ed7636f74ed2e55984fd35516904fc878cae216e42b2c7d6", size = 626652 } +sdist = { url = "https://files.pythonhosted.org/packages/a7/f9/3243eed3a6545c2a33a21f74f655e3fcb5d2192613cd3db81a93369eb339/cytoolz-1.0.1.tar.gz", hash = "sha256:89cc3161b89e1bb3ed7636f74ed2e55984fd35516904fc878cae216e42b2c7d6", size = 626652, upload-time = "2024-12-13T05:47:36.672Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/e8/218098344ed2cb5f8441fade9b2428e435e7073962374a9c71e59ac141a7/cytoolz-1.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fcb8f7d0d65db1269022e7e0428471edee8c937bc288ebdcb72f13eaa67c2fe4", size = 414121 }, - { url = "https://files.pythonhosted.org/packages/de/27/4d729a5653718109262b758fec1a959aa9facb74c15460d9074dc76d6635/cytoolz-1.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:207d4e4b445e087e65556196ff472ff134370d9a275d591724142e255f384662", size = 390904 }, - { url = "https://files.pythonhosted.org/packages/72/c0/cbabfa788bab9c6038953bf9478adaec06e88903a726946ea7c88092f5c4/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21cdf6bac6fd843f3b20280a66fd8df20dea4c58eb7214a2cd8957ec176f0bb3", size = 2090734 }, - { url = "https://files.pythonhosted.org/packages/c3/66/369262c60f9423c2da82a60864a259c852f1aa122aced4acd2c679af58c0/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a55ec098036c0dea9f3bdc021f8acd9d105a945227d0811589f0573f21c9ce1", size = 2155933 }, - { url = "https://files.pythonhosted.org/packages/aa/4e/ee55186802f8d24b5fbf9a11405ccd1203b30eded07cc17750618219b94e/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a13ab79ff4ce202e03ab646a2134696988b554b6dc4b71451e948403db1331d8", size = 2171903 }, - { url = "https://files.pythonhosted.org/packages/a1/96/bd1a9f3396e9b7f618db8cd08d15630769ce3c8b7d0534f92cd639c977ae/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e2d944799026e1ff08a83241f1027a2d9276c41f7a74224cd98b7df6e03957d", size = 2125270 }, - { url = "https://files.pythonhosted.org/packages/28/48/2a3762873091c88a69e161111cfbc6c222ff145d57ff011a642b169f04f1/cytoolz-1.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88ba85834cd523b91fdf10325e1e6d71c798de36ea9bdc187ca7bd146420de6f", size = 1973967 }, - { url = "https://files.pythonhosted.org/packages/e4/50/500bd69774bdc49a4d78ec8779eb6ac7c1a9d706bfd91cf2a1dba604373a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a750b1af7e8bf6727f588940b690d69e25dc47cce5ce467925a76561317eaf7", size = 2021695 }, - { url = "https://files.pythonhosted.org/packages/e4/4e/ba5a0ce34869495eb50653de8d676847490cf13a2cac1760fc4d313e78de/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:44a71870f7eae31d263d08b87da7c2bf1176f78892ed8bdade2c2850478cb126", size = 2010177 }, - { url = "https://files.pythonhosted.org/packages/87/57/615c630b3089a13adb15351d958d227430cf624f03b1dd39eb52c34c1f59/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c8231b9abbd8e368e036f4cc2e16902c9482d4cf9e02a6147ed0e9a3cd4a9ab0", size = 2154321 }, - { url = "https://files.pythonhosted.org/packages/7f/0f/fe1aa2d931e3b35ecc05215bd75da945ea7346095b3b6f6027164e602d5a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:aa87599ccc755de5a096a4d6c34984de6cd9dc928a0c5eaa7607457317aeaf9b", size = 2188374 }, - { url = "https://files.pythonhosted.org/packages/de/fa/fd363d97a641b6d0e2fd1d5c35b8fd41d9ccaeb4df56302f53bf23a58e3a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67cd16537df51baabde3baa770ab7b8d16839c4d21219d5b96ac59fb012ebd2d", size = 2077911 }, - { url = "https://files.pythonhosted.org/packages/d9/68/0a22946b98ae5201b54ccb4e651295285c0fb79406022b6ee8b2f791940c/cytoolz-1.0.1-cp312-cp312-win32.whl", hash = "sha256:fb988c333f05ee30ad4693fe4da55d95ec0bb05775d2b60191236493ea2e01f9", size = 321903 }, - { url = "https://files.pythonhosted.org/packages/62/1a/f3903197956055032f8cb297342e2dff07e50f83991aebfe5b4c4fcb55e4/cytoolz-1.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:8f89c48d8e5aec55ffd566a8ec858706d70ed0c6a50228eca30986bfa5b4da8b", size = 364490 }, + { url = "https://files.pythonhosted.org/packages/d8/e8/218098344ed2cb5f8441fade9b2428e435e7073962374a9c71e59ac141a7/cytoolz-1.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fcb8f7d0d65db1269022e7e0428471edee8c937bc288ebdcb72f13eaa67c2fe4", size = 414121, upload-time = "2024-12-13T05:45:26.588Z" }, + { url = "https://files.pythonhosted.org/packages/de/27/4d729a5653718109262b758fec1a959aa9facb74c15460d9074dc76d6635/cytoolz-1.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:207d4e4b445e087e65556196ff472ff134370d9a275d591724142e255f384662", size = 390904, upload-time = "2024-12-13T05:45:27.718Z" }, + { url = "https://files.pythonhosted.org/packages/72/c0/cbabfa788bab9c6038953bf9478adaec06e88903a726946ea7c88092f5c4/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21cdf6bac6fd843f3b20280a66fd8df20dea4c58eb7214a2cd8957ec176f0bb3", size = 2090734, upload-time = "2024-12-13T05:45:30.515Z" }, + { url = "https://files.pythonhosted.org/packages/c3/66/369262c60f9423c2da82a60864a259c852f1aa122aced4acd2c679af58c0/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a55ec098036c0dea9f3bdc021f8acd9d105a945227d0811589f0573f21c9ce1", size = 2155933, upload-time = "2024-12-13T05:45:32.721Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4e/ee55186802f8d24b5fbf9a11405ccd1203b30eded07cc17750618219b94e/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a13ab79ff4ce202e03ab646a2134696988b554b6dc4b71451e948403db1331d8", size = 2171903, upload-time = "2024-12-13T05:45:34.205Z" }, + { url = "https://files.pythonhosted.org/packages/a1/96/bd1a9f3396e9b7f618db8cd08d15630769ce3c8b7d0534f92cd639c977ae/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e2d944799026e1ff08a83241f1027a2d9276c41f7a74224cd98b7df6e03957d", size = 2125270, upload-time = "2024-12-13T05:45:36.982Z" }, + { url = "https://files.pythonhosted.org/packages/28/48/2a3762873091c88a69e161111cfbc6c222ff145d57ff011a642b169f04f1/cytoolz-1.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88ba85834cd523b91fdf10325e1e6d71c798de36ea9bdc187ca7bd146420de6f", size = 1973967, upload-time = "2024-12-13T05:45:39.505Z" }, + { url = "https://files.pythonhosted.org/packages/e4/50/500bd69774bdc49a4d78ec8779eb6ac7c1a9d706bfd91cf2a1dba604373a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a750b1af7e8bf6727f588940b690d69e25dc47cce5ce467925a76561317eaf7", size = 2021695, upload-time = "2024-12-13T05:45:40.911Z" }, + { url = "https://files.pythonhosted.org/packages/e4/4e/ba5a0ce34869495eb50653de8d676847490cf13a2cac1760fc4d313e78de/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:44a71870f7eae31d263d08b87da7c2bf1176f78892ed8bdade2c2850478cb126", size = 2010177, upload-time = "2024-12-13T05:45:42.48Z" }, + { url = "https://files.pythonhosted.org/packages/87/57/615c630b3089a13adb15351d958d227430cf624f03b1dd39eb52c34c1f59/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c8231b9abbd8e368e036f4cc2e16902c9482d4cf9e02a6147ed0e9a3cd4a9ab0", size = 2154321, upload-time = "2024-12-13T05:45:43.979Z" }, + { url = "https://files.pythonhosted.org/packages/7f/0f/fe1aa2d931e3b35ecc05215bd75da945ea7346095b3b6f6027164e602d5a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:aa87599ccc755de5a096a4d6c34984de6cd9dc928a0c5eaa7607457317aeaf9b", size = 2188374, upload-time = "2024-12-13T05:45:46.783Z" }, + { url = "https://files.pythonhosted.org/packages/de/fa/fd363d97a641b6d0e2fd1d5c35b8fd41d9ccaeb4df56302f53bf23a58e3a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67cd16537df51baabde3baa770ab7b8d16839c4d21219d5b96ac59fb012ebd2d", size = 2077911, upload-time = "2024-12-13T05:45:48.219Z" }, + { url = "https://files.pythonhosted.org/packages/d9/68/0a22946b98ae5201b54ccb4e651295285c0fb79406022b6ee8b2f791940c/cytoolz-1.0.1-cp312-cp312-win32.whl", hash = "sha256:fb988c333f05ee30ad4693fe4da55d95ec0bb05775d2b60191236493ea2e01f9", size = 321903, upload-time = "2024-12-13T05:45:50.3Z" }, + { url = "https://files.pythonhosted.org/packages/62/1a/f3903197956055032f8cb297342e2dff07e50f83991aebfe5b4c4fcb55e4/cytoolz-1.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:8f89c48d8e5aec55ffd566a8ec858706d70ed0c6a50228eca30986bfa5b4da8b", size = 364490, upload-time = "2024-12-13T05:45:51.494Z" }, ] [[package]] name = "debugpy" version = "1.8.16" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/d4/722d0bcc7986172ac2ef3c979ad56a1030e3afd44ced136d45f8142b1f4a/debugpy-1.8.16.tar.gz", hash = "sha256:31e69a1feb1cf6b51efbed3f6c9b0ef03bc46ff050679c4be7ea6d2e23540870", size = 1643809 } +sdist = { url = "https://files.pythonhosted.org/packages/ca/d4/722d0bcc7986172ac2ef3c979ad56a1030e3afd44ced136d45f8142b1f4a/debugpy-1.8.16.tar.gz", hash = "sha256:31e69a1feb1cf6b51efbed3f6c9b0ef03bc46ff050679c4be7ea6d2e23540870", size = 1643809, upload-time = "2025-08-06T18:00:02.647Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/fb/0387c0e108d842c902801bc65ccc53e5b91d8c169702a9bbf4f7efcedf0c/debugpy-1.8.16-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:b202e2843e32e80b3b584bcebfe0e65e0392920dc70df11b2bfe1afcb7a085e4", size = 2511822 }, - { url = "https://files.pythonhosted.org/packages/37/44/19e02745cae22bf96440141f94e15a69a1afaa3a64ddfc38004668fcdebf/debugpy-1.8.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64473c4a306ba11a99fe0bb14622ba4fbd943eb004847d9b69b107bde45aa9ea", size = 4230135 }, - { url = "https://files.pythonhosted.org/packages/f3/0b/19b1ba5ee4412f303475a2c7ad5858efb99c90eae5ec627aa6275c439957/debugpy-1.8.16-cp312-cp312-win32.whl", hash = "sha256:833a61ed446426e38b0dd8be3e9d45ae285d424f5bf6cd5b2b559c8f12305508", size = 5281271 }, - { url = "https://files.pythonhosted.org/packages/b1/e0/bc62e2dc141de53bd03e2c7cb9d7011de2e65e8bdcdaa26703e4d28656ba/debugpy-1.8.16-cp312-cp312-win_amd64.whl", hash = "sha256:75f204684581e9ef3dc2f67687c3c8c183fde2d6675ab131d94084baf8084121", size = 5323149 }, - { url = "https://files.pythonhosted.org/packages/52/57/ecc9ae29fa5b2d90107cd1d9bf8ed19aacb74b2264d986ae9d44fe9bdf87/debugpy-1.8.16-py2.py3-none-any.whl", hash = "sha256:19c9521962475b87da6f673514f7fd610328757ec993bf7ec0d8c96f9a325f9e", size = 5287700 }, + { url = "https://files.pythonhosted.org/packages/61/fb/0387c0e108d842c902801bc65ccc53e5b91d8c169702a9bbf4f7efcedf0c/debugpy-1.8.16-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:b202e2843e32e80b3b584bcebfe0e65e0392920dc70df11b2bfe1afcb7a085e4", size = 2511822, upload-time = "2025-08-06T18:00:18.526Z" }, + { url = "https://files.pythonhosted.org/packages/37/44/19e02745cae22bf96440141f94e15a69a1afaa3a64ddfc38004668fcdebf/debugpy-1.8.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64473c4a306ba11a99fe0bb14622ba4fbd943eb004847d9b69b107bde45aa9ea", size = 4230135, upload-time = "2025-08-06T18:00:19.997Z" }, + { url = "https://files.pythonhosted.org/packages/f3/0b/19b1ba5ee4412f303475a2c7ad5858efb99c90eae5ec627aa6275c439957/debugpy-1.8.16-cp312-cp312-win32.whl", hash = "sha256:833a61ed446426e38b0dd8be3e9d45ae285d424f5bf6cd5b2b559c8f12305508", size = 5281271, upload-time = "2025-08-06T18:00:21.281Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e0/bc62e2dc141de53bd03e2c7cb9d7011de2e65e8bdcdaa26703e4d28656ba/debugpy-1.8.16-cp312-cp312-win_amd64.whl", hash = "sha256:75f204684581e9ef3dc2f67687c3c8c183fde2d6675ab131d94084baf8084121", size = 5323149, upload-time = "2025-08-06T18:00:23.033Z" }, + { url = "https://files.pythonhosted.org/packages/52/57/ecc9ae29fa5b2d90107cd1d9bf8ed19aacb74b2264d986ae9d44fe9bdf87/debugpy-1.8.16-py2.py3-none-any.whl", hash = "sha256:19c9521962475b87da6f673514f7fd610328757ec993bf7ec0d8c96f9a325f9e", size = 5287700, upload-time = "2025-08-06T18:00:42.333Z" }, ] [[package]] name = "decorator" version = "5.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711 } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190 }, + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, ] [[package]] @@ -620,18 +620,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c0/1f/924e3caae75f471eae4b26bd13b698f6af2c44279f67af317439c2f4c46a/ecdsa-0.19.1.tar.gz", hash = "sha256:478cba7b62555866fcb3bb3fe985e06decbdb68ef55713c4e5ab98c57d508e61", size = 201793 } +sdist = { url = "https://files.pythonhosted.org/packages/c0/1f/924e3caae75f471eae4b26bd13b698f6af2c44279f67af317439c2f4c46a/ecdsa-0.19.1.tar.gz", hash = "sha256:478cba7b62555866fcb3bb3fe985e06decbdb68ef55713c4e5ab98c57d508e61", size = 201793, upload-time = "2025-03-13T11:52:43.25Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/a3/460c57f094a4a165c84a1341c373b0a4f5ec6ac244b998d5021aade89b77/ecdsa-0.19.1-py2.py3-none-any.whl", hash = "sha256:30638e27cf77b7e15c4c4cc1973720149e1033827cfd00661ca5c8cc0cdb24c3", size = 150607 }, + { url = "https://files.pythonhosted.org/packages/cb/a3/460c57f094a4a165c84a1341c373b0a4f5ec6ac244b998d5021aade89b77/ecdsa-0.19.1-py2.py3-none-any.whl", hash = "sha256:30638e27cf77b7e15c4c4cc1973720149e1033827cfd00661ca5c8cc0cdb24c3", size = 150607, upload-time = "2025-03-13T11:52:41.757Z" }, ] [[package]] name = "eth-hash" version = "0.7.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/38/577b7bc9380ef9dff0f1dffefe0c9a1ded2385e7a06c306fd95afb6f9451/eth_hash-0.7.1.tar.gz", hash = "sha256:d2411a403a0b0a62e8247b4117932d900ffb4c8c64b15f92620547ca5ce46be5", size = 12227 } +sdist = { url = "https://files.pythonhosted.org/packages/ee/38/577b7bc9380ef9dff0f1dffefe0c9a1ded2385e7a06c306fd95afb6f9451/eth_hash-0.7.1.tar.gz", hash = "sha256:d2411a403a0b0a62e8247b4117932d900ffb4c8c64b15f92620547ca5ce46be5", size = 12227, upload-time = "2025-01-13T21:29:21.765Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/db/f8775490669d28aca24871c67dd56b3e72105cb3bcae9a4ec65dd70859b3/eth_hash-0.7.1-py3-none-any.whl", hash = "sha256:0fb1add2adf99ef28883fd6228eb447ef519ea72933535ad1a0b28c6f65f868a", size = 8028 }, + { url = "https://files.pythonhosted.org/packages/eb/db/f8775490669d28aca24871c67dd56b3e72105cb3bcae9a4ec65dd70859b3/eth_hash-0.7.1-py3-none-any.whl", hash = "sha256:0fb1add2adf99ef28883fd6228eb447ef519ea72933535ad1a0b28c6f65f868a", size = 8028, upload-time = "2025-01-13T21:29:19.365Z" }, ] [[package]] @@ -642,9 +642,9 @@ dependencies = [ { name = "eth-typing" }, { name = "eth-utils" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/11/1ed831c50bd74f57829aa06e58bd82a809c37e070ee501c953b9ac1f1552/eth_keys-0.7.0.tar.gz", hash = "sha256:79d24fd876201df67741de3e3fefb3f4dbcbb6ace66e47e6fe662851a4547814", size = 30166 } +sdist = { url = "https://files.pythonhosted.org/packages/58/11/1ed831c50bd74f57829aa06e58bd82a809c37e070ee501c953b9ac1f1552/eth_keys-0.7.0.tar.gz", hash = "sha256:79d24fd876201df67741de3e3fefb3f4dbcbb6ace66e47e6fe662851a4547814", size = 30166, upload-time = "2025-04-07T17:40:21.697Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/25/0ae00f2b0095e559d61ad3dc32171bd5a29dfd95ab04b4edd641f7c75f72/eth_keys-0.7.0-py3-none-any.whl", hash = "sha256:b0cdda8ffe8e5ba69c7c5ca33f153828edcace844f67aabd4542d7de38b159cf", size = 20656 }, + { url = "https://files.pythonhosted.org/packages/4d/25/0ae00f2b0095e559d61ad3dc32171bd5a29dfd95ab04b4edd641f7c75f72/eth_keys-0.7.0-py3-none-any.whl", hash = "sha256:b0cdda8ffe8e5ba69c7c5ca33f153828edcace844f67aabd4542d7de38b159cf", size = 20656, upload-time = "2025-04-07T17:40:20.441Z" }, ] [[package]] @@ -654,9 +654,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/54/62aa24b9cc708f06316167ee71c362779c8ed21fc8234a5cd94a8f53b623/eth_typing-5.2.1.tar.gz", hash = "sha256:7557300dbf02a93c70fa44af352b5c4a58f94e997a0fd6797fb7d1c29d9538ee", size = 21806 } +sdist = { url = "https://files.pythonhosted.org/packages/60/54/62aa24b9cc708f06316167ee71c362779c8ed21fc8234a5cd94a8f53b623/eth_typing-5.2.1.tar.gz", hash = "sha256:7557300dbf02a93c70fa44af352b5c4a58f94e997a0fd6797fb7d1c29d9538ee", size = 21806, upload-time = "2025-04-14T20:39:28.217Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/30/72/c370bbe4c53da7bf998d3523f5a0f38867654923a82192df88d0705013d3/eth_typing-5.2.1-py3-none-any.whl", hash = "sha256:b0c2812ff978267563b80e9d701f487dd926f1d376d674f3b535cfe28b665d3d", size = 19163 }, + { url = "https://files.pythonhosted.org/packages/30/72/c370bbe4c53da7bf998d3523f5a0f38867654923a82192df88d0705013d3/eth_typing-5.2.1-py3-none-any.whl", hash = "sha256:b0c2812ff978267563b80e9d701f487dd926f1d376d674f3b535cfe28b665d3d", size = 19163, upload-time = "2025-04-14T20:39:26.571Z" }, ] [[package]] @@ -670,9 +670,9 @@ dependencies = [ { name = "pydantic" }, { name = "toolz", marker = "implementation_name == 'pypy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e6/e1/ee3a8728227c3558853e63ff35bd4c449abdf5022a19601369400deacd39/eth_utils-5.3.1.tar.gz", hash = "sha256:c94e2d2abd024a9a42023b4ddc1c645814ff3d6a737b33d5cfd890ebf159c2d1", size = 123506 } +sdist = { url = "https://files.pythonhosted.org/packages/e6/e1/ee3a8728227c3558853e63ff35bd4c449abdf5022a19601369400deacd39/eth_utils-5.3.1.tar.gz", hash = "sha256:c94e2d2abd024a9a42023b4ddc1c645814ff3d6a737b33d5cfd890ebf159c2d1", size = 123506, upload-time = "2025-08-27T16:37:17.378Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/4d/257cdc01ada430b8e84b9f2385c2553f33218f5b47da9adf0a616308d4b7/eth_utils-5.3.1-py3-none-any.whl", hash = "sha256:1f5476d8f29588d25b8ae4987e1ffdfae6d4c09026e476c4aad13b32dda3ead0", size = 102529 }, + { url = "https://files.pythonhosted.org/packages/bf/4d/257cdc01ada430b8e84b9f2385c2553f33218f5b47da9adf0a616308d4b7/eth_utils-5.3.1-py3-none-any.whl", hash = "sha256:1f5476d8f29588d25b8ae4987e1ffdfae6d4c09026e476c4aad13b32dda3ead0", size = 102529, upload-time = "2025-08-27T16:37:15.449Z" }, ] [[package]] @@ -683,18 +683,18 @@ dependencies = [ { name = "fastcore" }, { name = "ipython" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a5/1f/56c875f092a7ec1e7715d352369944a7d80bc8744cd054e9ce3d25740f7d/execnb-0.1.14.tar.gz", hash = "sha256:ba87e955809bd33318aa13314ff4df90b424bb4556741c2dcc90c7a28bc87ddd", size = 15289 } +sdist = { url = "https://files.pythonhosted.org/packages/a5/1f/56c875f092a7ec1e7715d352369944a7d80bc8744cd054e9ce3d25740f7d/execnb-0.1.14.tar.gz", hash = "sha256:ba87e955809bd33318aa13314ff4df90b424bb4556741c2dcc90c7a28bc87ddd", size = 15289, upload-time = "2025-04-05T23:49:39.347Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/04/cb12795bb98c806b165e494c25671329d8dc35ee6c1bb361acf26d47a553/execnb-0.1.14-py3-none-any.whl", hash = "sha256:486065e0fa8a15c9668e1710f43aed3f73fd4fe1de15fd45e027aeea588c2936", size = 13790 }, + { url = "https://files.pythonhosted.org/packages/b0/04/cb12795bb98c806b165e494c25671329d8dc35ee6c1bb361acf26d47a553/execnb-0.1.14-py3-none-any.whl", hash = "sha256:486065e0fa8a15c9668e1710f43aed3f73fd4fe1de15fd45e027aeea588c2936", size = 13790, upload-time = "2025-04-05T23:49:37.527Z" }, ] [[package]] name = "executing" version = "2.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488 } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317 }, + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, ] [[package]] @@ -702,13 +702,13 @@ name = "ezkl" version = "22.2.1" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/30/c83bb67dce260839a0cf4f9e5b4c97302b163c808ceda76e0fb9dbff6497/ezkl-22.2.1-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0a939581175fdef2fab356927d9c4395c22e99c8b00fa80c08edb86ccd6fa9c0", size = 23537536 }, - { url = "https://files.pythonhosted.org/packages/8c/92/3f69d7163333cd5da1680774fe0aff899045f8dad3a13a6989ec70efda52/ezkl-22.2.1-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c3b9fea855c11165b74f3f97bf01510ecc3249dc6e2eba02674c9f5967924df1", size = 12480722 }, - { url = "https://files.pythonhosted.org/packages/59/e3/594ddc887dd108a320d815c44c746e559c41d7999caa2e6967736bb088e6/ezkl-22.2.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8eac3f42cd3aa3a6879925a07469f8fef7aba0279efdaabd6cb31b706b22e5b", size = 14843162 }, - { url = "https://files.pythonhosted.org/packages/66/c1/190949dee335186230747002aa23906952fde733ad33bcf6924e8e5049cd/ezkl-22.2.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6c2353fede3155b9b588e61824e7505b33d0f9b8716cf2b99fe1aaa022840220", size = 14096986 }, - { url = "https://files.pythonhosted.org/packages/1a/f5/24504205c6536a178ef768a0e33a715b8abbe44da02d18e17d01179ba6a0/ezkl-22.2.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a5db874cbb59747118a90d050eb382dea6392775ccb85cdb8b954efe5bc2201e", size = 15072219 }, - { url = "https://files.pythonhosted.org/packages/17/b7/29bdd6129e4b41e619948a000cef13ef16e50c82541a55328f079359de65/ezkl-22.2.1-cp37-abi3-win32.whl", hash = "sha256:7b0a7aac78858934821d3cb3ec620684d28f7b679f485dd03108932f51032ca5", size = 10848669 }, - { url = "https://files.pythonhosted.org/packages/fa/ad/6334f2cec5d510c3789449c22a0f855684aa2f05cc7b000a48fbc8f36770/ezkl-22.2.1-cp37-abi3-win_amd64.whl", hash = "sha256:b2f6d0fb2bc037355e6f3ec3a73714f10e6a68aaf43a0f15c15d13f308b2f69c", size = 12430767 }, + { url = "https://files.pythonhosted.org/packages/63/30/c83bb67dce260839a0cf4f9e5b4c97302b163c808ceda76e0fb9dbff6497/ezkl-22.2.1-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0a939581175fdef2fab356927d9c4395c22e99c8b00fa80c08edb86ccd6fa9c0", size = 23537536, upload-time = "2025-07-30T19:24:00.284Z" }, + { url = "https://files.pythonhosted.org/packages/8c/92/3f69d7163333cd5da1680774fe0aff899045f8dad3a13a6989ec70efda52/ezkl-22.2.1-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c3b9fea855c11165b74f3f97bf01510ecc3249dc6e2eba02674c9f5967924df1", size = 12480722, upload-time = "2025-07-30T19:24:02.97Z" }, + { url = "https://files.pythonhosted.org/packages/59/e3/594ddc887dd108a320d815c44c746e559c41d7999caa2e6967736bb088e6/ezkl-22.2.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8eac3f42cd3aa3a6879925a07469f8fef7aba0279efdaabd6cb31b706b22e5b", size = 14843162, upload-time = "2025-07-30T19:24:05.027Z" }, + { url = "https://files.pythonhosted.org/packages/66/c1/190949dee335186230747002aa23906952fde733ad33bcf6924e8e5049cd/ezkl-22.2.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6c2353fede3155b9b588e61824e7505b33d0f9b8716cf2b99fe1aaa022840220", size = 14096986, upload-time = "2025-07-30T19:24:07.448Z" }, + { url = "https://files.pythonhosted.org/packages/1a/f5/24504205c6536a178ef768a0e33a715b8abbe44da02d18e17d01179ba6a0/ezkl-22.2.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a5db874cbb59747118a90d050eb382dea6392775ccb85cdb8b954efe5bc2201e", size = 15072219, upload-time = "2025-07-30T19:24:09.773Z" }, + { url = "https://files.pythonhosted.org/packages/17/b7/29bdd6129e4b41e619948a000cef13ef16e50c82541a55328f079359de65/ezkl-22.2.1-cp37-abi3-win32.whl", hash = "sha256:7b0a7aac78858934821d3cb3ec620684d28f7b679f485dd03108932f51032ca5", size = 10848669, upload-time = "2025-07-30T19:24:11.971Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ad/6334f2cec5d510c3789449c22a0f855684aa2f05cc7b000a48fbc8f36770/ezkl-22.2.1-cp37-abi3-win_amd64.whl", hash = "sha256:b2f6d0fb2bc037355e6f3ec3a73714f10e6a68aaf43a0f15c15d13f308b2f69c", size = 12430767, upload-time = "2025-07-30T19:24:14.4Z" }, ] [[package]] @@ -720,9 +720,9 @@ dependencies = [ { name = "starlette" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/22/7b9ee50b0a8c48f076a111d6e4071a9d4c25623dc67689c5f3aa375f779b/fastapi-0.110.3.tar.gz", hash = "sha256:555700b0159379e94fdbfc6bb66a0f1c43f4cf7060f25239af3d84b63a656626", size = 287508 } +sdist = { url = "https://files.pythonhosted.org/packages/f3/22/7b9ee50b0a8c48f076a111d6e4071a9d4c25623dc67689c5f3aa375f779b/fastapi-0.110.3.tar.gz", hash = "sha256:555700b0159379e94fdbfc6bb66a0f1c43f4cf7060f25239af3d84b63a656626", size = 287508, upload-time = "2024-04-30T00:38:02.576Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/d1/5958526c3bdbed74f88bf69b86506db5b25a600207f0f688473667690de6/fastapi-0.110.3-py3-none-any.whl", hash = "sha256:fd7600612f755e4050beb74001310b5a7e1796d149c2ee363124abdfa0289d32", size = 91834 }, + { url = "https://files.pythonhosted.org/packages/1d/d1/5958526c3bdbed74f88bf69b86506db5b25a600207f0f688473667690de6/fastapi-0.110.3-py3-none-any.whl", hash = "sha256:fd7600612f755e4050beb74001310b5a7e1796d149c2ee363124abdfa0289d32", size = 91834, upload-time = "2024-04-30T00:37:58.935Z" }, ] [[package]] @@ -732,79 +732,79 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bf/15/2303dcaea2d11a6997a47a6aa9b0e8dcae5b4c8941c7694e1f9e97990cae/fastcore-1.8.8.tar.gz", hash = "sha256:939f7b79c5510b059ba9fc512dfe8aab30f5a752130a640070f8a1b494493b56", size = 76675 } +sdist = { url = "https://files.pythonhosted.org/packages/bf/15/2303dcaea2d11a6997a47a6aa9b0e8dcae5b4c8941c7694e1f9e97990cae/fastcore-1.8.8.tar.gz", hash = "sha256:939f7b79c5510b059ba9fc512dfe8aab30f5a752130a640070f8a1b494493b56", size = 76675, upload-time = "2025-08-23T22:35:56.378Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/ec/bedc0f8b644deb023fcbc8e2879a8f84935f9109ebc61c6614b0bb78f90c/fastcore-1.8.8-py3-none-any.whl", hash = "sha256:f38853245e5ae5abb16275daac92fca00edeced020871b1d2416fb22cde70df8", size = 79436 }, + { url = "https://files.pythonhosted.org/packages/7b/ec/bedc0f8b644deb023fcbc8e2879a8f84935f9109ebc61c6614b0bb78f90c/fastcore-1.8.8-py3-none-any.whl", hash = "sha256:f38853245e5ae5abb16275daac92fca00edeced020871b1d2416fb22cde70df8", size = 79436, upload-time = "2025-08-23T22:35:54.433Z" }, ] [[package]] name = "filelock" version = "3.19.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/40/bb/0ab3e58d22305b6f5440629d20683af28959bf793d98d11950e305c1c326/filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58", size = 17687 } +sdist = { url = "https://files.pythonhosted.org/packages/40/bb/0ab3e58d22305b6f5440629d20683af28959bf793d98d11950e305c1c326/filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58", size = 17687, upload-time = "2025-08-14T16:56:03.016Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988 }, + { url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988, upload-time = "2025-08-14T16:56:01.633Z" }, ] [[package]] name = "flatbuffers" version = "25.2.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/30/eb5dce7994fc71a2f685d98ec33cc660c0a5887db5610137e60d8cbc4489/flatbuffers-25.2.10.tar.gz", hash = "sha256:97e451377a41262f8d9bd4295cc836133415cc03d8cb966410a4af92eb00d26e", size = 22170 } +sdist = { url = "https://files.pythonhosted.org/packages/e4/30/eb5dce7994fc71a2f685d98ec33cc660c0a5887db5610137e60d8cbc4489/flatbuffers-25.2.10.tar.gz", hash = "sha256:97e451377a41262f8d9bd4295cc836133415cc03d8cb966410a4af92eb00d26e", size = 22170, upload-time = "2025-02-11T04:26:46.257Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b8/25/155f9f080d5e4bc0082edfda032ea2bc2b8fab3f4d25d46c1e9dd22a1a89/flatbuffers-25.2.10-py2.py3-none-any.whl", hash = "sha256:ebba5f4d5ea615af3f7fd70fc310636fbb2bbd1f566ac0a23d98dd412de50051", size = 30953 }, + { url = "https://files.pythonhosted.org/packages/b8/25/155f9f080d5e4bc0082edfda032ea2bc2b8fab3f4d25d46c1e9dd22a1a89/flatbuffers-25.2.10-py2.py3-none-any.whl", hash = "sha256:ebba5f4d5ea615af3f7fd70fc310636fbb2bbd1f566ac0a23d98dd412de50051", size = 30953, upload-time = "2025-02-11T04:26:44.484Z" }, ] [[package]] name = "fonttools" version = "4.59.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0d/a5/fba25f9fbdab96e26dedcaeeba125e5f05a09043bf888e0305326e55685b/fonttools-4.59.2.tar.gz", hash = "sha256:e72c0749b06113f50bcb80332364c6be83a9582d6e3db3fe0b280f996dc2ef22", size = 3540889 } +sdist = { url = "https://files.pythonhosted.org/packages/0d/a5/fba25f9fbdab96e26dedcaeeba125e5f05a09043bf888e0305326e55685b/fonttools-4.59.2.tar.gz", hash = "sha256:e72c0749b06113f50bcb80332364c6be83a9582d6e3db3fe0b280f996dc2ef22", size = 3540889, upload-time = "2025-08-27T16:40:30.97Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/3d/1f45db2df51e7bfa55492e8f23f383d372200be3a0ded4bf56a92753dd1f/fonttools-4.59.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82906d002c349cad647a7634b004825a7335f8159d0d035ae89253b4abf6f3ea", size = 2769711 }, - { url = "https://files.pythonhosted.org/packages/29/df/cd236ab32a8abfd11558f296e064424258db5edefd1279ffdbcfd4fd8b76/fonttools-4.59.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a10c1bd7644dc58f8862d8ba0cf9fb7fef0af01ea184ba6ce3f50ab7dfe74d5a", size = 2340225 }, - { url = "https://files.pythonhosted.org/packages/98/12/b6f9f964fe6d4b4dd4406bcbd3328821c3de1f909ffc3ffa558fe72af48c/fonttools-4.59.2-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:738f31f23e0339785fd67652a94bc69ea49e413dfdb14dcb8c8ff383d249464e", size = 4912766 }, - { url = "https://files.pythonhosted.org/packages/73/78/82bde2f2d2c306ef3909b927363170b83df96171f74e0ccb47ad344563cd/fonttools-4.59.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ec99f9bdfee9cdb4a9172f9e8fd578cce5feb231f598909e0aecf5418da4f25", size = 4955178 }, - { url = "https://files.pythonhosted.org/packages/92/77/7de766afe2d31dda8ee46d7e479f35c7d48747e558961489a2d6e3a02bd4/fonttools-4.59.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0476ea74161322e08c7a982f83558a2b81b491509984523a1a540baf8611cc31", size = 4897898 }, - { url = "https://files.pythonhosted.org/packages/c5/77/ce0e0b905d62a06415fda9f2b2e109a24a5db54a59502b769e9e297d2242/fonttools-4.59.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:95922a922daa1f77cc72611747c156cfb38030ead72436a2c551d30ecef519b9", size = 5049144 }, - { url = "https://files.pythonhosted.org/packages/d9/ea/870d93aefd23fff2e07cbeebdc332527868422a433c64062c09d4d5e7fe6/fonttools-4.59.2-cp312-cp312-win32.whl", hash = "sha256:39ad9612c6a622726a6a130e8ab15794558591f999673f1ee7d2f3d30f6a3e1c", size = 2206473 }, - { url = "https://files.pythonhosted.org/packages/61/c4/e44bad000c4a4bb2e9ca11491d266e857df98ab6d7428441b173f0fe2517/fonttools-4.59.2-cp312-cp312-win_amd64.whl", hash = "sha256:980fd7388e461b19a881d35013fec32c713ffea1fc37aef2f77d11f332dfd7da", size = 2254706 }, - { url = "https://files.pythonhosted.org/packages/65/a4/d2f7be3c86708912c02571db0b550121caab8cd88a3c0aacb9cfa15ea66e/fonttools-4.59.2-py3-none-any.whl", hash = "sha256:8bd0f759020e87bb5d323e6283914d9bf4ae35a7307dafb2cbd1e379e720ad37", size = 1132315 }, + { url = "https://files.pythonhosted.org/packages/ba/3d/1f45db2df51e7bfa55492e8f23f383d372200be3a0ded4bf56a92753dd1f/fonttools-4.59.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82906d002c349cad647a7634b004825a7335f8159d0d035ae89253b4abf6f3ea", size = 2769711, upload-time = "2025-08-27T16:39:04.423Z" }, + { url = "https://files.pythonhosted.org/packages/29/df/cd236ab32a8abfd11558f296e064424258db5edefd1279ffdbcfd4fd8b76/fonttools-4.59.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a10c1bd7644dc58f8862d8ba0cf9fb7fef0af01ea184ba6ce3f50ab7dfe74d5a", size = 2340225, upload-time = "2025-08-27T16:39:06.143Z" }, + { url = "https://files.pythonhosted.org/packages/98/12/b6f9f964fe6d4b4dd4406bcbd3328821c3de1f909ffc3ffa558fe72af48c/fonttools-4.59.2-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:738f31f23e0339785fd67652a94bc69ea49e413dfdb14dcb8c8ff383d249464e", size = 4912766, upload-time = "2025-08-27T16:39:08.138Z" }, + { url = "https://files.pythonhosted.org/packages/73/78/82bde2f2d2c306ef3909b927363170b83df96171f74e0ccb47ad344563cd/fonttools-4.59.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ec99f9bdfee9cdb4a9172f9e8fd578cce5feb231f598909e0aecf5418da4f25", size = 4955178, upload-time = "2025-08-27T16:39:10.094Z" }, + { url = "https://files.pythonhosted.org/packages/92/77/7de766afe2d31dda8ee46d7e479f35c7d48747e558961489a2d6e3a02bd4/fonttools-4.59.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0476ea74161322e08c7a982f83558a2b81b491509984523a1a540baf8611cc31", size = 4897898, upload-time = "2025-08-27T16:39:12.087Z" }, + { url = "https://files.pythonhosted.org/packages/c5/77/ce0e0b905d62a06415fda9f2b2e109a24a5db54a59502b769e9e297d2242/fonttools-4.59.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:95922a922daa1f77cc72611747c156cfb38030ead72436a2c551d30ecef519b9", size = 5049144, upload-time = "2025-08-27T16:39:13.84Z" }, + { url = "https://files.pythonhosted.org/packages/d9/ea/870d93aefd23fff2e07cbeebdc332527868422a433c64062c09d4d5e7fe6/fonttools-4.59.2-cp312-cp312-win32.whl", hash = "sha256:39ad9612c6a622726a6a130e8ab15794558591f999673f1ee7d2f3d30f6a3e1c", size = 2206473, upload-time = "2025-08-27T16:39:15.854Z" }, + { url = "https://files.pythonhosted.org/packages/61/c4/e44bad000c4a4bb2e9ca11491d266e857df98ab6d7428441b173f0fe2517/fonttools-4.59.2-cp312-cp312-win_amd64.whl", hash = "sha256:980fd7388e461b19a881d35013fec32c713ffea1fc37aef2f77d11f332dfd7da", size = 2254706, upload-time = "2025-08-27T16:39:17.893Z" }, + { url = "https://files.pythonhosted.org/packages/65/a4/d2f7be3c86708912c02571db0b550121caab8cd88a3c0aacb9cfa15ea66e/fonttools-4.59.2-py3-none-any.whl", hash = "sha256:8bd0f759020e87bb5d323e6283914d9bf4ae35a7307dafb2cbd1e379e720ad37", size = 1132315, upload-time = "2025-08-27T16:40:28.984Z" }, ] [[package]] name = "frozenlist" version = "1.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424 }, - { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952 }, - { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688 }, - { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084 }, - { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524 }, - { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493 }, - { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116 }, - { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557 }, - { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820 }, - { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542 }, - { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350 }, - { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093 }, - { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482 }, - { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590 }, - { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785 }, - { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487 }, - { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874 }, - { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106 }, +sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078, upload-time = "2025-06-09T23:02:35.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424, upload-time = "2025-06-09T23:00:42.24Z" }, + { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952, upload-time = "2025-06-09T23:00:43.481Z" }, + { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688, upload-time = "2025-06-09T23:00:44.793Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084, upload-time = "2025-06-09T23:00:46.125Z" }, + { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524, upload-time = "2025-06-09T23:00:47.73Z" }, + { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493, upload-time = "2025-06-09T23:00:49.742Z" }, + { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116, upload-time = "2025-06-09T23:00:51.352Z" }, + { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557, upload-time = "2025-06-09T23:00:52.855Z" }, + { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820, upload-time = "2025-06-09T23:00:54.43Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542, upload-time = "2025-06-09T23:00:56.409Z" }, + { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350, upload-time = "2025-06-09T23:00:58.468Z" }, + { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093, upload-time = "2025-06-09T23:01:00.015Z" }, + { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482, upload-time = "2025-06-09T23:01:01.474Z" }, + { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590, upload-time = "2025-06-09T23:01:02.961Z" }, + { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785, upload-time = "2025-06-09T23:01:05.095Z" }, + { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487, upload-time = "2025-06-09T23:01:06.54Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874, upload-time = "2025-06-09T23:01:07.752Z" }, + { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106, upload-time = "2025-06-09T23:02:34.204Z" }, ] [[package]] name = "fsspec" version = "2025.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/de/e0/bab50af11c2d75c9c4a2a26a5254573c0bd97cea152254401510950486fa/fsspec-2025.9.0.tar.gz", hash = "sha256:19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19", size = 304847 } +sdist = { url = "https://files.pythonhosted.org/packages/de/e0/bab50af11c2d75c9c4a2a26a5254573c0bd97cea152254401510950486fa/fsspec-2025.9.0.tar.gz", hash = "sha256:19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19", size = 304847, upload-time = "2025-09-02T19:10:49.215Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/47/71/70db47e4f6ce3e5c37a607355f80da8860a33226be640226ac52cb05ef2e/fsspec-2025.9.0-py3-none-any.whl", hash = "sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7", size = 199289 }, + { url = "https://files.pythonhosted.org/packages/47/71/70db47e4f6ce3e5c37a607355f80da8860a33226be640226ac52cb05ef2e/fsspec-2025.9.0-py3-none-any.whl", hash = "sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7", size = 199289, upload-time = "2025-09-02T19:10:47.708Z" }, ] [[package]] @@ -815,9 +815,9 @@ dependencies = [ { name = "fastcore" }, { name = "packaging" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f8/88/97e6b0c94885db3530d04ccab7016c606dcaf08bf0581ced1193b9668d06/ghapi-1.0.6.tar.gz", hash = "sha256:64fdd9f06d8e3373065c42c2a03e067e2bbb9ca18b583cd6e38a28aaad0224f6", size = 65518 } +sdist = { url = "https://files.pythonhosted.org/packages/f8/88/97e6b0c94885db3530d04ccab7016c606dcaf08bf0581ced1193b9668d06/ghapi-1.0.6.tar.gz", hash = "sha256:64fdd9f06d8e3373065c42c2a03e067e2bbb9ca18b583cd6e38a28aaad0224f6", size = 65518, upload-time = "2024-08-31T22:38:21.264Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4c/ad/f7204c0c38175f300621af7880737ca6379dd633e9b7d1c0a8fc2748f0dc/ghapi-1.0.6-py3-none-any.whl", hash = "sha256:b3d96bf18fcaa2cb7131bad9de2948e2a1c2bb226377a25826f6c80950c57854", size = 62391 }, + { url = "https://files.pythonhosted.org/packages/4c/ad/f7204c0c38175f300621af7880737ca6379dd633e9b7d1c0a8fc2748f0dc/ghapi-1.0.6-py3-none-any.whl", hash = "sha256:b3d96bf18fcaa2cb7131bad9de2948e2a1c2bb226377a25826f6c80950c57854", size = 62391, upload-time = "2024-08-31T22:38:19.34Z" }, ] [[package]] @@ -827,9 +827,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "smmap" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684 } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794 }, + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, ] [[package]] @@ -839,37 +839,37 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "gitdb" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076 } +sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076, upload-time = "2025-07-24T03:45:54.871Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168 }, + { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168, upload-time = "2025-07-24T03:45:52.517Z" }, ] [[package]] name = "greenlet" version = "3.2.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260 } +sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260, upload-time = "2025-08-07T13:24:33.51Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079 }, - { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997 }, - { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185 }, - { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926 }, - { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839 }, - { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586 }, - { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281 }, - { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142 }, - { url = "https://files.pythonhosted.org/packages/27/45/80935968b53cfd3f33cf99ea5f08227f2646e044568c9b1555b58ffd61c2/greenlet-3.2.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ee7a6ec486883397d70eec05059353b8e83eca9168b9f3f9a361971e77e0bcd0", size = 1564846 }, - { url = "https://files.pythonhosted.org/packages/69/02/b7c30e5e04752cb4db6202a3858b149c0710e5453b71a3b2aec5d78a1aab/greenlet-3.2.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:326d234cbf337c9c3def0676412eb7040a35a768efc92504b947b3e9cfc7543d", size = 1633814 }, - { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899 }, + { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079, upload-time = "2025-08-07T13:15:45.033Z" }, + { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997, upload-time = "2025-08-07T13:42:56.234Z" }, + { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185, upload-time = "2025-08-07T13:45:27.624Z" }, + { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926, upload-time = "2025-08-07T13:53:15.251Z" }, + { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839, upload-time = "2025-08-07T13:18:30.281Z" }, + { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586, upload-time = "2025-08-07T13:18:28.544Z" }, + { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281, upload-time = "2025-08-07T13:42:39.858Z" }, + { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142, upload-time = "2025-08-07T13:18:22.981Z" }, + { url = "https://files.pythonhosted.org/packages/27/45/80935968b53cfd3f33cf99ea5f08227f2646e044568c9b1555b58ffd61c2/greenlet-3.2.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ee7a6ec486883397d70eec05059353b8e83eca9168b9f3f9a361971e77e0bcd0", size = 1564846, upload-time = "2025-11-04T12:42:15.191Z" }, + { url = "https://files.pythonhosted.org/packages/69/02/b7c30e5e04752cb4db6202a3858b149c0710e5453b71a3b2aec5d78a1aab/greenlet-3.2.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:326d234cbf337c9c3def0676412eb7040a35a768efc92504b947b3e9cfc7543d", size = 1633814, upload-time = "2025-11-04T12:42:17.175Z" }, + { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899, upload-time = "2025-08-07T13:38:53.448Z" }, ] [[package]] name = "h11" version = "0.16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250 } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] [[package]] @@ -880,9 +880,9 @@ dependencies = [ { name = "certifi" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484 } +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784 }, + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, ] [[package]] @@ -895,9 +895,9 @@ dependencies = [ { name = "httpcore" }, { name = "idna" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 } +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 }, + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, ] [[package]] @@ -907,27 +907,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyreadline3", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc", size = 360702 } +sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc", size = 360702, upload-time = "2021-09-17T21:40:43.31Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477", size = 86794 }, + { url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477", size = 86794, upload-time = "2021-09-17T21:40:39.897Z" }, ] [[package]] name = "idna" version = "3.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, ] [[package]] name = "iniconfig" version = "2.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793 } +sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050 }, + { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, ] [[package]] @@ -949,9 +949,9 @@ dependencies = [ { name = "tornado" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bb/76/11082e338e0daadc89c8ff866185de11daf67d181901038f9e139d109761/ipykernel-6.30.1.tar.gz", hash = "sha256:6abb270161896402e76b91394fcdce5d1be5d45f456671e5080572f8505be39b", size = 166260 } +sdist = { url = "https://files.pythonhosted.org/packages/bb/76/11082e338e0daadc89c8ff866185de11daf67d181901038f9e139d109761/ipykernel-6.30.1.tar.gz", hash = "sha256:6abb270161896402e76b91394fcdce5d1be5d45f456671e5080572f8505be39b", size = 166260, upload-time = "2025-08-04T15:47:35.018Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/c7/b445faca8deb954fe536abebff4ece5b097b923de482b26e78448c89d1dd/ipykernel-6.30.1-py3-none-any.whl", hash = "sha256:aa6b9fb93dca949069d8b85b6c79b2518e32ac583ae9c7d37c51d119e18b3fb4", size = 117484 }, + { url = "https://files.pythonhosted.org/packages/fc/c7/b445faca8deb954fe536abebff4ece5b097b923de482b26e78448c89d1dd/ipykernel-6.30.1-py3-none-any.whl", hash = "sha256:aa6b9fb93dca949069d8b85b6c79b2518e32ac583ae9c7d37c51d119e18b3fb4", size = 117484, upload-time = "2025-08-04T15:47:32.622Z" }, ] [[package]] @@ -970,9 +970,9 @@ dependencies = [ { name = "stack-data" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6e/71/a86262bf5a68bf211bcc71fe302af7e05f18a2852fdc610a854d20d085e6/ipython-9.5.0.tar.gz", hash = "sha256:129c44b941fe6d9b82d36fc7a7c18127ddb1d6f02f78f867f402e2e3adde3113", size = 4389137 } +sdist = { url = "https://files.pythonhosted.org/packages/6e/71/a86262bf5a68bf211bcc71fe302af7e05f18a2852fdc610a854d20d085e6/ipython-9.5.0.tar.gz", hash = "sha256:129c44b941fe6d9b82d36fc7a7c18127ddb1d6f02f78f867f402e2e3adde3113", size = 4389137, upload-time = "2025-08-29T12:15:21.519Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/08/2a/5628a99d04acb2d2f2e749cdf4ea571d2575e898df0528a090948018b726/ipython-9.5.0-py3-none-any.whl", hash = "sha256:88369ffa1d5817d609120daa523a6da06d02518e582347c29f8451732a9c5e72", size = 612426 }, + { url = "https://files.pythonhosted.org/packages/08/2a/5628a99d04acb2d2f2e749cdf4ea571d2575e898df0528a090948018b726/ipython-9.5.0-py3-none-any.whl", hash = "sha256:88369ffa1d5817d609120daa523a6da06d02518e582347c29f8451732a9c5e72", size = 612426, upload-time = "2025-08-29T12:15:18.866Z" }, ] [[package]] @@ -982,9 +982,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393 } +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074 }, + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, ] [[package]] @@ -994,9 +994,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "parso" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287 } +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278 }, + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, ] [[package]] @@ -1006,9 +1006,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115 } +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] [[package]] @@ -1018,18 +1018,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "ansicon", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/20/d0/59b2b80e7a52d255f9e0ad040d2e826342d05580c4b1d7d7747cfb8db731/jinxed-1.3.0.tar.gz", hash = "sha256:1593124b18a41b7a3da3b078471442e51dbad3d77b4d4f2b0c26ab6f7d660dbf", size = 80981 } +sdist = { url = "https://files.pythonhosted.org/packages/20/d0/59b2b80e7a52d255f9e0ad040d2e826342d05580c4b1d7d7747cfb8db731/jinxed-1.3.0.tar.gz", hash = "sha256:1593124b18a41b7a3da3b078471442e51dbad3d77b4d4f2b0c26ab6f7d660dbf", size = 80981, upload-time = "2024-07-31T22:39:18.854Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/e3/0e0014d6ab159d48189e92044ace13b1e1fe9aa3024ba9f4e8cf172aa7c2/jinxed-1.3.0-py2.py3-none-any.whl", hash = "sha256:b993189f39dc2d7504d802152671535b06d380b26d78070559551cbf92df4fc5", size = 33085 }, + { url = "https://files.pythonhosted.org/packages/27/e3/0e0014d6ab159d48189e92044ace13b1e1fe9aa3024ba9f4e8cf172aa7c2/jinxed-1.3.0-py2.py3-none-any.whl", hash = "sha256:b993189f39dc2d7504d802152671535b06d380b26d78070559551cbf92df4fc5", size = 33085, upload-time = "2024-07-31T22:39:17.426Z" }, ] [[package]] name = "jmespath" version = "1.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843 } +sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843, upload-time = "2022-06-17T18:00:12.224Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256 }, + { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256, upload-time = "2022-06-17T18:00:10.251Z" }, ] [[package]] @@ -1040,7 +1040,7 @@ dependencies = [ { name = "jsonschema" }, { name = "oslash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e3/3b/8d4d4fe8c59a1a4d1e6edd6126ec118b989510fadf262950a5c4f4bca664/jsonrpcserver-5.0.9.tar.gz", hash = "sha256:a71fb2cfa18541c80935f60987f92755d94d74141248c7438847b96eee5c4482", size = 14506 } +sdist = { url = "https://files.pythonhosted.org/packages/e3/3b/8d4d4fe8c59a1a4d1e6edd6126ec118b989510fadf262950a5c4f4bca664/jsonrpcserver-5.0.9.tar.gz", hash = "sha256:a71fb2cfa18541c80935f60987f92755d94d74141248c7438847b96eee5c4482", size = 14506, upload-time = "2022-09-15T02:28:24.004Z" } [[package]] name = "jsonschema" @@ -1052,9 +1052,9 @@ dependencies = [ { name = "referencing" }, { name = "rpds-py" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342 } +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload-time = "2025-08-18T17:03:50.038Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040 }, + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload-time = "2025-08-18T17:03:48.373Z" }, ] [[package]] @@ -1064,9 +1064,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "referencing" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855 } +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437 }, + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, ] [[package]] @@ -1080,9 +1080,9 @@ dependencies = [ { name = "tornado" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/71/22/bf9f12fdaeae18019a468b68952a60fe6dbab5d67cd2a103cac7659b41ca/jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", size = 342019 } +sdist = { url = "https://files.pythonhosted.org/packages/71/22/bf9f12fdaeae18019a468b68952a60fe6dbab5d67cd2a103cac7659b41ca/jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", size = 342019, upload-time = "2024-09-17T10:44:17.613Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/11/85/b0394e0b6fcccd2c1eeefc230978a6f8cb0c5df1e4cd3e7625735a0d7d1e/jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f", size = 106105 }, + { url = "https://files.pythonhosted.org/packages/11/85/b0394e0b6fcccd2c1eeefc230978a6f8cb0c5df1e4cd3e7625735a0d7d1e/jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f", size = 106105, upload-time = "2024-09-17T10:44:15.218Z" }, ] [[package]] @@ -1094,30 +1094,30 @@ dependencies = [ { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/99/1b/72906d554acfeb588332eaaa6f61577705e9ec752ddb486f302dafa292d9/jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941", size = 88923 } +sdist = { url = "https://files.pythonhosted.org/packages/99/1b/72906d554acfeb588332eaaa6f61577705e9ec752ddb486f302dafa292d9/jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941", size = 88923, upload-time = "2025-05-27T07:38:16.655Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/57/6bffd4b20b88da3800c5d691e0337761576ee688eb01299eae865689d2df/jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0", size = 28880 }, + { url = "https://files.pythonhosted.org/packages/2f/57/6bffd4b20b88da3800c5d691e0337761576ee688eb01299eae865689d2df/jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0", size = 28880, upload-time = "2025-05-27T07:38:15.137Z" }, ] [[package]] name = "kiwisolver" version = "1.4.9" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5c/3c/85844f1b0feb11ee581ac23fe5fce65cd049a200c1446708cc1b7f922875/kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d", size = 97564 } +sdist = { url = "https://files.pythonhosted.org/packages/5c/3c/85844f1b0feb11ee581ac23fe5fce65cd049a200c1446708cc1b7f922875/kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d", size = 97564, upload-time = "2025-08-10T21:27:49.279Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/c9/13573a747838aeb1c76e3267620daa054f4152444d1f3d1a2324b78255b5/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ac5a486ac389dddcc5bef4f365b6ae3ffff2c433324fb38dd35e3fab7c957999", size = 123686 }, - { url = "https://files.pythonhosted.org/packages/51/ea/2ecf727927f103ffd1739271ca19c424d0e65ea473fbaeea1c014aea93f6/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2ba92255faa7309d06fe44c3a4a97efe1c8d640c2a79a5ef728b685762a6fd2", size = 66460 }, - { url = "https://files.pythonhosted.org/packages/5b/5a/51f5464373ce2aeb5194508298a508b6f21d3867f499556263c64c621914/kiwisolver-1.4.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a2899935e724dd1074cb568ce7ac0dce28b2cd6ab539c8e001a8578eb106d14", size = 64952 }, - { url = "https://files.pythonhosted.org/packages/70/90/6d240beb0f24b74371762873e9b7f499f1e02166a2d9c5801f4dbf8fa12e/kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f6008a4919fdbc0b0097089f67a1eb55d950ed7e90ce2cc3e640abadd2757a04", size = 1474756 }, - { url = "https://files.pythonhosted.org/packages/12/42/f36816eaf465220f683fb711efdd1bbf7a7005a2473d0e4ed421389bd26c/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67bb8b474b4181770f926f7b7d2f8c0248cbcb78b660fdd41a47054b28d2a752", size = 1276404 }, - { url = "https://files.pythonhosted.org/packages/2e/64/bc2de94800adc830c476dce44e9b40fd0809cddeef1fde9fcf0f73da301f/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2327a4a30d3ee07d2fbe2e7933e8a37c591663b96ce42a00bc67461a87d7df77", size = 1294410 }, - { url = "https://files.pythonhosted.org/packages/5f/42/2dc82330a70aa8e55b6d395b11018045e58d0bb00834502bf11509f79091/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a08b491ec91b1d5053ac177afe5290adacf1f0f6307d771ccac5de30592d198", size = 1343631 }, - { url = "https://files.pythonhosted.org/packages/22/fd/f4c67a6ed1aab149ec5a8a401c323cee7a1cbe364381bb6c9c0d564e0e20/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8fc5c867c22b828001b6a38d2eaeb88160bf5783c6cb4a5e440efc981ce286d", size = 2224963 }, - { url = "https://files.pythonhosted.org/packages/45/aa/76720bd4cb3713314677d9ec94dcc21ced3f1baf4830adde5bb9b2430a5f/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3b3115b2581ea35bb6d1f24a4c90af37e5d9b49dcff267eeed14c3893c5b86ab", size = 2321295 }, - { url = "https://files.pythonhosted.org/packages/80/19/d3ec0d9ab711242f56ae0dc2fc5d70e298bb4a1f9dfab44c027668c673a1/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858e4c22fb075920b96a291928cb7dea5644e94c0ee4fcd5af7e865655e4ccf2", size = 2487987 }, - { url = "https://files.pythonhosted.org/packages/39/e9/61e4813b2c97e86b6fdbd4dd824bf72d28bcd8d4849b8084a357bc0dd64d/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed0fecd28cc62c54b262e3736f8bb2512d8dcfdc2bcf08be5f47f96bf405b145", size = 2291817 }, - { url = "https://files.pythonhosted.org/packages/a0/41/85d82b0291db7504da3c2defe35c9a8a5c9803a730f297bd823d11d5fb77/kiwisolver-1.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:f68208a520c3d86ea51acf688a3e3002615a7f0238002cccc17affecc86a8a54", size = 73895 }, - { url = "https://files.pythonhosted.org/packages/e2/92/5f3068cf15ee5cb624a0c7596e67e2a0bb2adee33f71c379054a491d07da/kiwisolver-1.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:2c1a4f57df73965f3f14df20b80ee29e6a7930a57d2d9e8491a25f676e197c60", size = 64992 }, + { url = "https://files.pythonhosted.org/packages/86/c9/13573a747838aeb1c76e3267620daa054f4152444d1f3d1a2324b78255b5/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ac5a486ac389dddcc5bef4f365b6ae3ffff2c433324fb38dd35e3fab7c957999", size = 123686, upload-time = "2025-08-10T21:26:10.034Z" }, + { url = "https://files.pythonhosted.org/packages/51/ea/2ecf727927f103ffd1739271ca19c424d0e65ea473fbaeea1c014aea93f6/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2ba92255faa7309d06fe44c3a4a97efe1c8d640c2a79a5ef728b685762a6fd2", size = 66460, upload-time = "2025-08-10T21:26:11.083Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/51f5464373ce2aeb5194508298a508b6f21d3867f499556263c64c621914/kiwisolver-1.4.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a2899935e724dd1074cb568ce7ac0dce28b2cd6ab539c8e001a8578eb106d14", size = 64952, upload-time = "2025-08-10T21:26:12.058Z" }, + { url = "https://files.pythonhosted.org/packages/70/90/6d240beb0f24b74371762873e9b7f499f1e02166a2d9c5801f4dbf8fa12e/kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f6008a4919fdbc0b0097089f67a1eb55d950ed7e90ce2cc3e640abadd2757a04", size = 1474756, upload-time = "2025-08-10T21:26:13.096Z" }, + { url = "https://files.pythonhosted.org/packages/12/42/f36816eaf465220f683fb711efdd1bbf7a7005a2473d0e4ed421389bd26c/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67bb8b474b4181770f926f7b7d2f8c0248cbcb78b660fdd41a47054b28d2a752", size = 1276404, upload-time = "2025-08-10T21:26:14.457Z" }, + { url = "https://files.pythonhosted.org/packages/2e/64/bc2de94800adc830c476dce44e9b40fd0809cddeef1fde9fcf0f73da301f/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2327a4a30d3ee07d2fbe2e7933e8a37c591663b96ce42a00bc67461a87d7df77", size = 1294410, upload-time = "2025-08-10T21:26:15.73Z" }, + { url = "https://files.pythonhosted.org/packages/5f/42/2dc82330a70aa8e55b6d395b11018045e58d0bb00834502bf11509f79091/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a08b491ec91b1d5053ac177afe5290adacf1f0f6307d771ccac5de30592d198", size = 1343631, upload-time = "2025-08-10T21:26:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/22/fd/f4c67a6ed1aab149ec5a8a401c323cee7a1cbe364381bb6c9c0d564e0e20/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8fc5c867c22b828001b6a38d2eaeb88160bf5783c6cb4a5e440efc981ce286d", size = 2224963, upload-time = "2025-08-10T21:26:18.737Z" }, + { url = "https://files.pythonhosted.org/packages/45/aa/76720bd4cb3713314677d9ec94dcc21ced3f1baf4830adde5bb9b2430a5f/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3b3115b2581ea35bb6d1f24a4c90af37e5d9b49dcff267eeed14c3893c5b86ab", size = 2321295, upload-time = "2025-08-10T21:26:20.11Z" }, + { url = "https://files.pythonhosted.org/packages/80/19/d3ec0d9ab711242f56ae0dc2fc5d70e298bb4a1f9dfab44c027668c673a1/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858e4c22fb075920b96a291928cb7dea5644e94c0ee4fcd5af7e865655e4ccf2", size = 2487987, upload-time = "2025-08-10T21:26:21.49Z" }, + { url = "https://files.pythonhosted.org/packages/39/e9/61e4813b2c97e86b6fdbd4dd824bf72d28bcd8d4849b8084a357bc0dd64d/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed0fecd28cc62c54b262e3736f8bb2512d8dcfdc2bcf08be5f47f96bf405b145", size = 2291817, upload-time = "2025-08-10T21:26:22.812Z" }, + { url = "https://files.pythonhosted.org/packages/a0/41/85d82b0291db7504da3c2defe35c9a8a5c9803a730f297bd823d11d5fb77/kiwisolver-1.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:f68208a520c3d86ea51acf688a3e3002615a7f0238002cccc17affecc86a8a54", size = 73895, upload-time = "2025-08-10T21:26:24.37Z" }, + { url = "https://files.pythonhosted.org/packages/e2/92/5f3068cf15ee5cb624a0c7596e67e2a0bb2adee33f71c379054a491d07da/kiwisolver-1.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:2c1a4f57df73965f3f14df20b80ee29e6a7930a57d2d9e8491a25f676e197c60", size = 64992, upload-time = "2025-08-10T21:26:25.732Z" }, ] [[package]] @@ -1127,27 +1127,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mdurl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070 } +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321 }, + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, ] [[package]] name = "markupsafe" version = "3.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload-time = "2024-10-18T15:21:54.129Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, - { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, - { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, - { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, - { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, - { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, - { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, - { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, - { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, - { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274, upload-time = "2024-10-18T15:21:13.777Z" }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348, upload-time = "2024-10-18T15:21:14.822Z" }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149, upload-time = "2024-10-18T15:21:15.642Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118, upload-time = "2024-10-18T15:21:17.133Z" }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993, upload-time = "2024-10-18T15:21:18.064Z" }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178, upload-time = "2024-10-18T15:21:18.859Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319, upload-time = "2024-10-18T15:21:19.671Z" }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352, upload-time = "2024-10-18T15:21:20.971Z" }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097, upload-time = "2024-10-18T15:21:22.646Z" }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601, upload-time = "2024-10-18T15:21:23.499Z" }, ] [[package]] @@ -1165,15 +1165,15 @@ dependencies = [ { name = "pyparsing" }, { name = "python-dateutil" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a0/59/c3e6453a9676ffba145309a73c462bb407f4400de7de3f2b41af70720a3c/matplotlib-3.10.6.tar.gz", hash = "sha256:ec01b645840dd1996df21ee37f208cd8ba57644779fa20464010638013d3203c", size = 34804264 } +sdist = { url = "https://files.pythonhosted.org/packages/a0/59/c3e6453a9676ffba145309a73c462bb407f4400de7de3f2b41af70720a3c/matplotlib-3.10.6.tar.gz", hash = "sha256:ec01b645840dd1996df21ee37f208cd8ba57644779fa20464010638013d3203c", size = 34804264, upload-time = "2025-08-30T00:14:25.137Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/1a/7042f7430055d567cc3257ac409fcf608599ab27459457f13772c2d9778b/matplotlib-3.10.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:31ca662df6a80bd426f871105fdd69db7543e28e73a9f2afe80de7e531eb2347", size = 8272404 }, - { url = "https://files.pythonhosted.org/packages/a9/5d/1d5f33f5b43f4f9e69e6a5fe1fb9090936ae7bc8e2ff6158e7a76542633b/matplotlib-3.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1678bb61d897bb4ac4757b5ecfb02bfb3fddf7f808000fb81e09c510712fda75", size = 8128262 }, - { url = "https://files.pythonhosted.org/packages/67/c3/135fdbbbf84e0979712df58e5e22b4f257b3f5e52a3c4aacf1b8abec0d09/matplotlib-3.10.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:56cd2d20842f58c03d2d6e6c1f1cf5548ad6f66b91e1e48f814e4fb5abd1cb95", size = 8697008 }, - { url = "https://files.pythonhosted.org/packages/9c/be/c443ea428fb2488a3ea7608714b1bd85a82738c45da21b447dc49e2f8e5d/matplotlib-3.10.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:662df55604a2f9a45435566d6e2660e41efe83cd94f4288dfbf1e6d1eae4b0bb", size = 9530166 }, - { url = "https://files.pythonhosted.org/packages/a9/35/48441422b044d74034aea2a3e0d1a49023f12150ebc58f16600132b9bbaf/matplotlib-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:08f141d55148cd1fc870c3387d70ca4df16dee10e909b3b038782bd4bda6ea07", size = 9593105 }, - { url = "https://files.pythonhosted.org/packages/45/c3/994ef20eb4154ab84cc08d033834555319e4af970165e6c8894050af0b3c/matplotlib-3.10.6-cp312-cp312-win_amd64.whl", hash = "sha256:590f5925c2d650b5c9d813c5b3b5fc53f2929c3f8ef463e4ecfa7e052044fb2b", size = 8122784 }, - { url = "https://files.pythonhosted.org/packages/57/b8/5c85d9ae0e40f04e71bedb053aada5d6bab1f9b5399a0937afb5d6b02d98/matplotlib-3.10.6-cp312-cp312-win_arm64.whl", hash = "sha256:f44c8d264a71609c79a78d50349e724f5d5fc3684ead7c2a473665ee63d868aa", size = 7992823 }, + { url = "https://files.pythonhosted.org/packages/ea/1a/7042f7430055d567cc3257ac409fcf608599ab27459457f13772c2d9778b/matplotlib-3.10.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:31ca662df6a80bd426f871105fdd69db7543e28e73a9f2afe80de7e531eb2347", size = 8272404, upload-time = "2025-08-30T00:12:59.112Z" }, + { url = "https://files.pythonhosted.org/packages/a9/5d/1d5f33f5b43f4f9e69e6a5fe1fb9090936ae7bc8e2ff6158e7a76542633b/matplotlib-3.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1678bb61d897bb4ac4757b5ecfb02bfb3fddf7f808000fb81e09c510712fda75", size = 8128262, upload-time = "2025-08-30T00:13:01.141Z" }, + { url = "https://files.pythonhosted.org/packages/67/c3/135fdbbbf84e0979712df58e5e22b4f257b3f5e52a3c4aacf1b8abec0d09/matplotlib-3.10.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:56cd2d20842f58c03d2d6e6c1f1cf5548ad6f66b91e1e48f814e4fb5abd1cb95", size = 8697008, upload-time = "2025-08-30T00:13:03.24Z" }, + { url = "https://files.pythonhosted.org/packages/9c/be/c443ea428fb2488a3ea7608714b1bd85a82738c45da21b447dc49e2f8e5d/matplotlib-3.10.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:662df55604a2f9a45435566d6e2660e41efe83cd94f4288dfbf1e6d1eae4b0bb", size = 9530166, upload-time = "2025-08-30T00:13:05.951Z" }, + { url = "https://files.pythonhosted.org/packages/a9/35/48441422b044d74034aea2a3e0d1a49023f12150ebc58f16600132b9bbaf/matplotlib-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:08f141d55148cd1fc870c3387d70ca4df16dee10e909b3b038782bd4bda6ea07", size = 9593105, upload-time = "2025-08-30T00:13:08.356Z" }, + { url = "https://files.pythonhosted.org/packages/45/c3/994ef20eb4154ab84cc08d033834555319e4af970165e6c8894050af0b3c/matplotlib-3.10.6-cp312-cp312-win_amd64.whl", hash = "sha256:590f5925c2d650b5c9d813c5b3b5fc53f2929c3f8ef463e4ecfa7e052044fb2b", size = 8122784, upload-time = "2025-08-30T00:13:10.367Z" }, + { url = "https://files.pythonhosted.org/packages/57/b8/5c85d9ae0e40f04e71bedb053aada5d6bab1f9b5399a0937afb5d6b02d98/matplotlib-3.10.6-cp312-cp312-win_arm64.whl", hash = "sha256:f44c8d264a71609c79a78d50349e724f5d5fc3684ead7c2a473665ee63d868aa", size = 7992823, upload-time = "2025-08-30T00:13:12.24Z" }, ] [[package]] @@ -1183,54 +1183,54 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159 } +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159, upload-time = "2024-04-15T13:44:44.803Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 }, + { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899, upload-time = "2024-04-15T13:44:43.265Z" }, ] [[package]] name = "mdurl" version = "0.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] [[package]] name = "more-itertools" version = "10.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431 } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload-time = "2025-09-02T15:23:11.018Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667 }, + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" }, ] [[package]] name = "mpmath" version = "1.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106 } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198 }, + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, ] [[package]] name = "msgpack" version = "1.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555 } +sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555, upload-time = "2025-06-13T06:52:51.324Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/26/389b9c593eda2b8551b2e7126ad3a06af6f9b44274eb3a4f054d48ff7e47/msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238", size = 82359 }, - { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157", size = 79172 }, - { url = "https://files.pythonhosted.org/packages/0f/bd/cacf208b64d9577a62c74b677e1ada005caa9b69a05a599889d6fc2ab20a/msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce", size = 425013 }, - { url = "https://files.pythonhosted.org/packages/4d/ec/fd869e2567cc9c01278a736cfd1697941ba0d4b81a43e0aa2e8d71dab208/msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a", size = 426905 }, - { url = "https://files.pythonhosted.org/packages/55/2a/35860f33229075bce803a5593d046d8b489d7ba2fc85701e714fc1aaf898/msgpack-1.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c", size = 407336 }, - { url = "https://files.pythonhosted.org/packages/8c/16/69ed8f3ada150bf92745fb4921bd621fd2cdf5a42e25eb50bcc57a5328f0/msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b", size = 409485 }, - { url = "https://files.pythonhosted.org/packages/c6/b6/0c398039e4c6d0b2e37c61d7e0e9d13439f91f780686deb8ee64ecf1ae71/msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef", size = 412182 }, - { url = "https://files.pythonhosted.org/packages/b8/d0/0cf4a6ecb9bc960d624c93effaeaae75cbf00b3bc4a54f35c8507273cda1/msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a", size = 419883 }, - { url = "https://files.pythonhosted.org/packages/62/83/9697c211720fa71a2dfb632cad6196a8af3abea56eece220fde4674dc44b/msgpack-1.1.1-cp312-cp312-win32.whl", hash = "sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c", size = 65406 }, - { url = "https://files.pythonhosted.org/packages/c0/23/0abb886e80eab08f5e8c485d6f13924028602829f63b8f5fa25a06636628/msgpack-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4", size = 72558 }, + { url = "https://files.pythonhosted.org/packages/e3/26/389b9c593eda2b8551b2e7126ad3a06af6f9b44274eb3a4f054d48ff7e47/msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238", size = 82359, upload-time = "2025-06-13T06:52:03.909Z" }, + { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157", size = 79172, upload-time = "2025-06-13T06:52:05.246Z" }, + { url = "https://files.pythonhosted.org/packages/0f/bd/cacf208b64d9577a62c74b677e1ada005caa9b69a05a599889d6fc2ab20a/msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce", size = 425013, upload-time = "2025-06-13T06:52:06.341Z" }, + { url = "https://files.pythonhosted.org/packages/4d/ec/fd869e2567cc9c01278a736cfd1697941ba0d4b81a43e0aa2e8d71dab208/msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a", size = 426905, upload-time = "2025-06-13T06:52:07.501Z" }, + { url = "https://files.pythonhosted.org/packages/55/2a/35860f33229075bce803a5593d046d8b489d7ba2fc85701e714fc1aaf898/msgpack-1.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c", size = 407336, upload-time = "2025-06-13T06:52:09.047Z" }, + { url = "https://files.pythonhosted.org/packages/8c/16/69ed8f3ada150bf92745fb4921bd621fd2cdf5a42e25eb50bcc57a5328f0/msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b", size = 409485, upload-time = "2025-06-13T06:52:10.382Z" }, + { url = "https://files.pythonhosted.org/packages/c6/b6/0c398039e4c6d0b2e37c61d7e0e9d13439f91f780686deb8ee64ecf1ae71/msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef", size = 412182, upload-time = "2025-06-13T06:52:11.644Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d0/0cf4a6ecb9bc960d624c93effaeaae75cbf00b3bc4a54f35c8507273cda1/msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a", size = 419883, upload-time = "2025-06-13T06:52:12.806Z" }, + { url = "https://files.pythonhosted.org/packages/62/83/9697c211720fa71a2dfb632cad6196a8af3abea56eece220fde4674dc44b/msgpack-1.1.1-cp312-cp312-win32.whl", hash = "sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c", size = 65406, upload-time = "2025-06-13T06:52:14.271Z" }, + { url = "https://files.pythonhosted.org/packages/c0/23/0abb886e80eab08f5e8c485d6f13924028602829f63b8f5fa25a06636628/msgpack-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4", size = 72558, upload-time = "2025-06-13T06:52:15.252Z" }, ] [[package]] @@ -1241,36 +1241,36 @@ dependencies = [ { name = "msgpack" }, { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b2/69/2a6af13c3be6934a9ba149120a78bf63cf1455ddb1d11ec2cc5e5d6f8186/msgpack-numpy-opentensor-0.5.0.tar.gz", hash = "sha256:213232c20e2efd528ec8a9882b605e8ad87cfc35b57dfcfefe05d33aaaabe574", size = 9661 } +sdist = { url = "https://files.pythonhosted.org/packages/b2/69/2a6af13c3be6934a9ba149120a78bf63cf1455ddb1d11ec2cc5e5d6f8186/msgpack-numpy-opentensor-0.5.0.tar.gz", hash = "sha256:213232c20e2efd528ec8a9882b605e8ad87cfc35b57dfcfefe05d33aaaabe574", size = 9661, upload-time = "2023-10-02T19:01:38.831Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/22/590508afb85d5c27ebcb2837410413f4613eebdda6e4e02997fe08ba78e4/msgpack_numpy_opentensor-0.5.0-py2.py3-none-any.whl", hash = "sha256:8a61c597a976425a87094d8e89846aa9528eb1f037e97ff1428fe3cd61a238e7", size = 7209 }, + { url = "https://files.pythonhosted.org/packages/cd/22/590508afb85d5c27ebcb2837410413f4613eebdda6e4e02997fe08ba78e4/msgpack_numpy_opentensor-0.5.0-py2.py3-none-any.whl", hash = "sha256:8a61c597a976425a87094d8e89846aa9528eb1f037e97ff1428fe3cd61a238e7", size = 7209, upload-time = "2023-10-02T19:01:37.417Z" }, ] [[package]] name = "multidict" version = "6.6.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/69/7f/0652e6ed47ab288e3756ea9c0df8b14950781184d4bd7883f4d87dd41245/multidict-6.6.4.tar.gz", hash = "sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd", size = 101843 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/05/f6/512ffd8fd8b37fb2680e5ac35d788f1d71bbaf37789d21a820bdc441e565/multidict-6.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8", size = 76516 }, - { url = "https://files.pythonhosted.org/packages/99/58/45c3e75deb8855c36bd66cc1658007589662ba584dbf423d01df478dd1c5/multidict-6.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3", size = 45394 }, - { url = "https://files.pythonhosted.org/packages/fd/ca/e8c4472a93a26e4507c0b8e1f0762c0d8a32de1328ef72fd704ef9cc5447/multidict-6.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b", size = 43591 }, - { url = "https://files.pythonhosted.org/packages/05/51/edf414f4df058574a7265034d04c935aa84a89e79ce90fcf4df211f47b16/multidict-6.6.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287", size = 237215 }, - { url = "https://files.pythonhosted.org/packages/c8/45/8b3d6dbad8cf3252553cc41abea09ad527b33ce47a5e199072620b296902/multidict-6.6.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138", size = 258299 }, - { url = "https://files.pythonhosted.org/packages/3c/e8/8ca2e9a9f5a435fc6db40438a55730a4bf4956b554e487fa1b9ae920f825/multidict-6.6.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6", size = 242357 }, - { url = "https://files.pythonhosted.org/packages/0f/84/80c77c99df05a75c28490b2af8f7cba2a12621186e0a8b0865d8e745c104/multidict-6.6.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9", size = 268369 }, - { url = "https://files.pythonhosted.org/packages/0d/e9/920bfa46c27b05fb3e1ad85121fd49f441492dca2449c5bcfe42e4565d8a/multidict-6.6.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c", size = 269341 }, - { url = "https://files.pythonhosted.org/packages/af/65/753a2d8b05daf496f4a9c367fe844e90a1b2cac78e2be2c844200d10cc4c/multidict-6.6.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402", size = 256100 }, - { url = "https://files.pythonhosted.org/packages/09/54/655be13ae324212bf0bc15d665a4e34844f34c206f78801be42f7a0a8aaa/multidict-6.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7", size = 253584 }, - { url = "https://files.pythonhosted.org/packages/5c/74/ab2039ecc05264b5cec73eb018ce417af3ebb384ae9c0e9ed42cb33f8151/multidict-6.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f", size = 251018 }, - { url = "https://files.pythonhosted.org/packages/af/0a/ccbb244ac848e56c6427f2392741c06302bbfba49c0042f1eb3c5b606497/multidict-6.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d", size = 251477 }, - { url = "https://files.pythonhosted.org/packages/0e/b0/0ed49bba775b135937f52fe13922bc64a7eaf0a3ead84a36e8e4e446e096/multidict-6.6.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7", size = 263575 }, - { url = "https://files.pythonhosted.org/packages/3e/d9/7fb85a85e14de2e44dfb6a24f03c41e2af8697a6df83daddb0e9b7569f73/multidict-6.6.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802", size = 259649 }, - { url = "https://files.pythonhosted.org/packages/03/9e/b3a459bcf9b6e74fa461a5222a10ff9b544cb1cd52fd482fb1b75ecda2a2/multidict-6.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24", size = 251505 }, - { url = "https://files.pythonhosted.org/packages/86/a2/8022f78f041dfe6d71e364001a5cf987c30edfc83c8a5fb7a3f0974cff39/multidict-6.6.4-cp312-cp312-win32.whl", hash = "sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793", size = 41888 }, - { url = "https://files.pythonhosted.org/packages/c7/eb/d88b1780d43a56db2cba24289fa744a9d216c1a8546a0dc3956563fd53ea/multidict-6.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e", size = 46072 }, - { url = "https://files.pythonhosted.org/packages/9f/16/b929320bf5750e2d9d4931835a4c638a19d2494a5b519caaaa7492ebe105/multidict-6.6.4-cp312-cp312-win_arm64.whl", hash = "sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364", size = 43222 }, - { url = "https://files.pythonhosted.org/packages/fd/69/b547032297c7e63ba2af494edba695d781af8a0c6e89e4d06cf848b21d80/multidict-6.6.4-py3-none-any.whl", hash = "sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c", size = 12313 }, +sdist = { url = "https://files.pythonhosted.org/packages/69/7f/0652e6ed47ab288e3756ea9c0df8b14950781184d4bd7883f4d87dd41245/multidict-6.6.4.tar.gz", hash = "sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd", size = 101843, upload-time = "2025-08-11T12:08:48.217Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/f6/512ffd8fd8b37fb2680e5ac35d788f1d71bbaf37789d21a820bdc441e565/multidict-6.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8", size = 76516, upload-time = "2025-08-11T12:06:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/99/58/45c3e75deb8855c36bd66cc1658007589662ba584dbf423d01df478dd1c5/multidict-6.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3", size = 45394, upload-time = "2025-08-11T12:06:54.555Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/e8c4472a93a26e4507c0b8e1f0762c0d8a32de1328ef72fd704ef9cc5447/multidict-6.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b", size = 43591, upload-time = "2025-08-11T12:06:55.672Z" }, + { url = "https://files.pythonhosted.org/packages/05/51/edf414f4df058574a7265034d04c935aa84a89e79ce90fcf4df211f47b16/multidict-6.6.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287", size = 237215, upload-time = "2025-08-11T12:06:57.213Z" }, + { url = "https://files.pythonhosted.org/packages/c8/45/8b3d6dbad8cf3252553cc41abea09ad527b33ce47a5e199072620b296902/multidict-6.6.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138", size = 258299, upload-time = "2025-08-11T12:06:58.946Z" }, + { url = "https://files.pythonhosted.org/packages/3c/e8/8ca2e9a9f5a435fc6db40438a55730a4bf4956b554e487fa1b9ae920f825/multidict-6.6.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6", size = 242357, upload-time = "2025-08-11T12:07:00.301Z" }, + { url = "https://files.pythonhosted.org/packages/0f/84/80c77c99df05a75c28490b2af8f7cba2a12621186e0a8b0865d8e745c104/multidict-6.6.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9", size = 268369, upload-time = "2025-08-11T12:07:01.638Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e9/920bfa46c27b05fb3e1ad85121fd49f441492dca2449c5bcfe42e4565d8a/multidict-6.6.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c", size = 269341, upload-time = "2025-08-11T12:07:02.943Z" }, + { url = "https://files.pythonhosted.org/packages/af/65/753a2d8b05daf496f4a9c367fe844e90a1b2cac78e2be2c844200d10cc4c/multidict-6.6.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402", size = 256100, upload-time = "2025-08-11T12:07:04.564Z" }, + { url = "https://files.pythonhosted.org/packages/09/54/655be13ae324212bf0bc15d665a4e34844f34c206f78801be42f7a0a8aaa/multidict-6.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7", size = 253584, upload-time = "2025-08-11T12:07:05.914Z" }, + { url = "https://files.pythonhosted.org/packages/5c/74/ab2039ecc05264b5cec73eb018ce417af3ebb384ae9c0e9ed42cb33f8151/multidict-6.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f", size = 251018, upload-time = "2025-08-11T12:07:08.301Z" }, + { url = "https://files.pythonhosted.org/packages/af/0a/ccbb244ac848e56c6427f2392741c06302bbfba49c0042f1eb3c5b606497/multidict-6.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d", size = 251477, upload-time = "2025-08-11T12:07:10.248Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b0/0ed49bba775b135937f52fe13922bc64a7eaf0a3ead84a36e8e4e446e096/multidict-6.6.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7", size = 263575, upload-time = "2025-08-11T12:07:11.928Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d9/7fb85a85e14de2e44dfb6a24f03c41e2af8697a6df83daddb0e9b7569f73/multidict-6.6.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802", size = 259649, upload-time = "2025-08-11T12:07:13.244Z" }, + { url = "https://files.pythonhosted.org/packages/03/9e/b3a459bcf9b6e74fa461a5222a10ff9b544cb1cd52fd482fb1b75ecda2a2/multidict-6.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24", size = 251505, upload-time = "2025-08-11T12:07:14.57Z" }, + { url = "https://files.pythonhosted.org/packages/86/a2/8022f78f041dfe6d71e364001a5cf987c30edfc83c8a5fb7a3f0974cff39/multidict-6.6.4-cp312-cp312-win32.whl", hash = "sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793", size = 41888, upload-time = "2025-08-11T12:07:15.904Z" }, + { url = "https://files.pythonhosted.org/packages/c7/eb/d88b1780d43a56db2cba24289fa744a9d216c1a8546a0dc3956563fd53ea/multidict-6.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e", size = 46072, upload-time = "2025-08-11T12:07:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/9f/16/b929320bf5750e2d9d4931835a4c638a19d2494a5b519caaaa7492ebe105/multidict-6.6.4-cp312-cp312-win_arm64.whl", hash = "sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364", size = 43222, upload-time = "2025-08-11T12:07:18.328Z" }, + { url = "https://files.pythonhosted.org/packages/fd/69/b547032297c7e63ba2af494edba695d781af8a0c6e89e4d06cf848b21d80/multidict-6.6.4-py3-none-any.whl", hash = "sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c", size = 12313, upload-time = "2025-08-11T12:08:46.891Z" }, ] [[package]] @@ -1280,18 +1280,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/43/a1/ec48010724eedfe2add68eb7592a0d238590e14e08b95a4ffb3c7b2f0808/munch-2.5.0.tar.gz", hash = "sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2", size = 17015 } +sdist = { url = "https://files.pythonhosted.org/packages/43/a1/ec48010724eedfe2add68eb7592a0d238590e14e08b95a4ffb3c7b2f0808/munch-2.5.0.tar.gz", hash = "sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2", size = 17015, upload-time = "2019-10-30T09:56:08.621Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/ab/85d8da5c9a45e072301beb37ad7f833cd344e04c817d97e0cc75681d248f/munch-2.5.0-py2.py3-none-any.whl", hash = "sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd", size = 10347 }, + { url = "https://files.pythonhosted.org/packages/cc/ab/85d8da5c9a45e072301beb37ad7f833cd344e04c817d97e0cc75681d248f/munch-2.5.0-py2.py3-none-any.whl", hash = "sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd", size = 10347, upload-time = "2019-10-30T09:56:06.835Z" }, ] [[package]] name = "mypy-extensions" version = "1.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963 }, + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, ] [[package]] @@ -1310,54 +1310,54 @@ dependencies = [ { name = "setuptools" }, { name = "watchdog" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d6/5f/f3f1b6954fe5d03675b7becdf071046ad4a59d5aca4aea482c943e162fab/nbdev-2.4.5.tar.gz", hash = "sha256:12fa7aedec70515bbb0efdf3f39000793541e0209c047cd115761cabe284a63d", size = 67311 } +sdist = { url = "https://files.pythonhosted.org/packages/d6/5f/f3f1b6954fe5d03675b7becdf071046ad4a59d5aca4aea482c943e162fab/nbdev-2.4.5.tar.gz", hash = "sha256:12fa7aedec70515bbb0efdf3f39000793541e0209c047cd115761cabe284a63d", size = 67311, upload-time = "2025-07-19T05:10:52.142Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/75/922d61a2e22d8f41e943b281516b3eb890fd833f9ebf8d80874a114cc127/nbdev-2.4.5-py3-none-any.whl", hash = "sha256:4ed72a3fb48ec6cbd1ff69e4ea3b31c1e3fe7cdacbafef4579914d5c15ab8994", size = 70252 }, + { url = "https://files.pythonhosted.org/packages/a2/75/922d61a2e22d8f41e943b281516b3eb890fd833f9ebf8d80874a114cc127/nbdev-2.4.5-py3-none-any.whl", hash = "sha256:4ed72a3fb48ec6cbd1ff69e4ea3b31c1e3fe7cdacbafef4579914d5c15ab8994", size = 70252, upload-time = "2025-07-19T05:10:50.094Z" }, ] [[package]] name = "nest-asyncio" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418 } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195 }, + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" }, ] [[package]] name = "netaddr" version = "1.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/90/188b2a69654f27b221fba92fda7217778208532c962509e959a9cee5229d/netaddr-1.3.0.tar.gz", hash = "sha256:5c3c3d9895b551b763779ba7db7a03487dc1f8e3b385af819af341ae9ef6e48a", size = 2260504 } +sdist = { url = "https://files.pythonhosted.org/packages/54/90/188b2a69654f27b221fba92fda7217778208532c962509e959a9cee5229d/netaddr-1.3.0.tar.gz", hash = "sha256:5c3c3d9895b551b763779ba7db7a03487dc1f8e3b385af819af341ae9ef6e48a", size = 2260504, upload-time = "2024-05-28T21:30:37.743Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/cc/f4fe2c7ce68b92cbf5b2d379ca366e1edae38cccaad00f69f529b460c3ef/netaddr-1.3.0-py3-none-any.whl", hash = "sha256:c2c6a8ebe5554ce33b7d5b3a306b71bbb373e000bbbf2350dd5213cc56e3dbbe", size = 2262023 }, + { url = "https://files.pythonhosted.org/packages/12/cc/f4fe2c7ce68b92cbf5b2d379ca366e1edae38cccaad00f69f529b460c3ef/netaddr-1.3.0-py3-none-any.whl", hash = "sha256:c2c6a8ebe5554ce33b7d5b3a306b71bbb373e000bbbf2350dd5213cc56e3dbbe", size = 2262023, upload-time = "2024-05-28T21:30:34.191Z" }, ] [[package]] name = "networkx" version = "3.4.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368 } +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368, upload-time = "2024-10-21T12:39:38.695Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263 }, + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263, upload-time = "2024-10-21T12:39:36.247Z" }, ] [[package]] name = "numpy" version = "2.2.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440 } +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348 }, - { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362 }, - { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103 }, - { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382 }, - { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462 }, - { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618 }, - { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511 }, - { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783 }, - { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506 }, - { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190 }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, ] [[package]] @@ -1369,14 +1369,14 @@ dependencies = [ { name = "protobuf" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3d/60/e56e8ec44ed34006e6d4a73c92a04d9eea6163cc12440e35045aec069175/onnx-1.18.0.tar.gz", hash = "sha256:3d8dbf9e996629131ba3aa1afd1d8239b660d1f830c6688dd7e03157cccd6b9c", size = 12563009 } +sdist = { url = "https://files.pythonhosted.org/packages/3d/60/e56e8ec44ed34006e6d4a73c92a04d9eea6163cc12440e35045aec069175/onnx-1.18.0.tar.gz", hash = "sha256:3d8dbf9e996629131ba3aa1afd1d8239b660d1f830c6688dd7e03157cccd6b9c", size = 12563009, upload-time = "2025-05-12T22:03:09.626Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/fe/16228aca685392a7114625b89aae98b2dc4058a47f0f467a376745efe8d0/onnx-1.18.0-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:521bac578448667cbb37c50bf05b53c301243ede8233029555239930996a625b", size = 18285770 }, - { url = "https://files.pythonhosted.org/packages/1e/77/ba50a903a9b5e6f9be0fa50f59eb2fca4a26ee653375408fbc72c3acbf9f/onnx-1.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4da451bf1c5ae381f32d430004a89f0405bc57a8471b0bddb6325a5b334aa40", size = 17421291 }, - { url = "https://files.pythonhosted.org/packages/11/23/25ec2ba723ac62b99e8fed6d7b59094dadb15e38d4c007331cc9ae3dfa5f/onnx-1.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99afac90b4cdb1471432203c3c1f74e16549c526df27056d39f41a9a47cfb4af", size = 17584084 }, - { url = "https://files.pythonhosted.org/packages/6a/4d/2c253a36070fb43f340ff1d2c450df6a9ef50b938adcd105693fee43c4ee/onnx-1.18.0-cp312-cp312-win32.whl", hash = "sha256:ee159b41a3ae58d9c7341cf432fc74b96aaf50bd7bb1160029f657b40dc69715", size = 15734892 }, - { url = "https://files.pythonhosted.org/packages/e8/92/048ba8fafe6b2b9a268ec2fb80def7e66c0b32ab2cae74de886981f05a27/onnx-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:102c04edc76b16e9dfeda5a64c1fccd7d3d2913b1544750c01d38f1ac3c04e05", size = 15850336 }, - { url = "https://files.pythonhosted.org/packages/a1/66/bbc4ffedd44165dcc407a51ea4c592802a5391ce3dc94aa5045350f64635/onnx-1.18.0-cp312-cp312-win_arm64.whl", hash = "sha256:911b37d724a5d97396f3c2ef9ea25361c55cbc9aa18d75b12a52b620b67145af", size = 15823802 }, + { url = "https://files.pythonhosted.org/packages/a7/fe/16228aca685392a7114625b89aae98b2dc4058a47f0f467a376745efe8d0/onnx-1.18.0-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:521bac578448667cbb37c50bf05b53c301243ede8233029555239930996a625b", size = 18285770, upload-time = "2025-05-12T22:02:26.116Z" }, + { url = "https://files.pythonhosted.org/packages/1e/77/ba50a903a9b5e6f9be0fa50f59eb2fca4a26ee653375408fbc72c3acbf9f/onnx-1.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4da451bf1c5ae381f32d430004a89f0405bc57a8471b0bddb6325a5b334aa40", size = 17421291, upload-time = "2025-05-12T22:02:29.645Z" }, + { url = "https://files.pythonhosted.org/packages/11/23/25ec2ba723ac62b99e8fed6d7b59094dadb15e38d4c007331cc9ae3dfa5f/onnx-1.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99afac90b4cdb1471432203c3c1f74e16549c526df27056d39f41a9a47cfb4af", size = 17584084, upload-time = "2025-05-12T22:02:32.789Z" }, + { url = "https://files.pythonhosted.org/packages/6a/4d/2c253a36070fb43f340ff1d2c450df6a9ef50b938adcd105693fee43c4ee/onnx-1.18.0-cp312-cp312-win32.whl", hash = "sha256:ee159b41a3ae58d9c7341cf432fc74b96aaf50bd7bb1160029f657b40dc69715", size = 15734892, upload-time = "2025-05-12T22:02:35.527Z" }, + { url = "https://files.pythonhosted.org/packages/e8/92/048ba8fafe6b2b9a268ec2fb80def7e66c0b32ab2cae74de886981f05a27/onnx-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:102c04edc76b16e9dfeda5a64c1fccd7d3d2913b1544750c01d38f1ac3c04e05", size = 15850336, upload-time = "2025-05-12T22:02:38.545Z" }, + { url = "https://files.pythonhosted.org/packages/a1/66/bbc4ffedd44165dcc407a51ea4c592802a5391ce3dc94aa5045350f64635/onnx-1.18.0-cp312-cp312-win_arm64.whl", hash = "sha256:911b37d724a5d97396f3c2ef9ea25361c55cbc9aa18d75b12a52b620b67145af", size = 15823802, upload-time = "2025-05-12T22:02:42.037Z" }, ] [[package]] @@ -1392,10 +1392,10 @@ dependencies = [ { name = "sympy" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/21/593c9bc56002a6d1ea7c2236f4a648e081ec37c8d51db2383a9e83a63325/onnxruntime-1.21.0-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:893d67c68ca9e7a58202fa8d96061ed86a5815b0925b5a97aef27b8ba246a20b", size = 33658780 }, - { url = "https://files.pythonhosted.org/packages/4a/b4/33ec675a8ac150478091262824413e5d4acc359e029af87f9152e7c1c092/onnxruntime-1.21.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:37b7445c920a96271a8dfa16855e258dc5599235b41c7bbde0d262d55bcc105f", size = 14159975 }, - { url = "https://files.pythonhosted.org/packages/8b/08/eead6895ed83b56711ca6c0d31d82f109401b9937558b425509e497d6fb4/onnxruntime-1.21.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9a04aafb802c1e5573ba4552f8babcb5021b041eb4cfa802c9b7644ca3510eca", size = 16019285 }, - { url = "https://files.pythonhosted.org/packages/77/39/e83d56e3c215713b5263cb4d4f0c69e3964bba11634233d8ae04fc7e6bf3/onnxruntime-1.21.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f801318476cd7003d636a5b392f7a37c08b6c8d2f829773f3c3887029e03f32", size = 11760975 }, + { url = "https://files.pythonhosted.org/packages/ff/21/593c9bc56002a6d1ea7c2236f4a648e081ec37c8d51db2383a9e83a63325/onnxruntime-1.21.0-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:893d67c68ca9e7a58202fa8d96061ed86a5815b0925b5a97aef27b8ba246a20b", size = 33658780, upload-time = "2025-03-08T02:43:49.378Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b4/33ec675a8ac150478091262824413e5d4acc359e029af87f9152e7c1c092/onnxruntime-1.21.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:37b7445c920a96271a8dfa16855e258dc5599235b41c7bbde0d262d55bcc105f", size = 14159975, upload-time = "2025-03-08T02:44:09.196Z" }, + { url = "https://files.pythonhosted.org/packages/8b/08/eead6895ed83b56711ca6c0d31d82f109401b9937558b425509e497d6fb4/onnxruntime-1.21.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9a04aafb802c1e5573ba4552f8babcb5021b041eb4cfa802c9b7644ca3510eca", size = 16019285, upload-time = "2025-03-08T02:44:11.706Z" }, + { url = "https://files.pythonhosted.org/packages/77/39/e83d56e3c215713b5263cb4d4f0c69e3964bba11634233d8ae04fc7e6bf3/onnxruntime-1.21.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f801318476cd7003d636a5b392f7a37c08b6c8d2f829773f3c3887029e03f32", size = 11760975, upload-time = "2025-03-08T02:43:52.332Z" }, ] [[package]] @@ -1405,14 +1405,14 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d2/2d/6ff35fa696afe2c4e3616d9560848b131353f24d9110d51baa93dd947212/opencv-contrib-python-headless-4.12.0.88.tar.gz", hash = "sha256:3d8a7b23a5faba4ad34e13f51668c56be791e57ab02d68d9016200fed3c12c77", size = 150801337 } +sdist = { url = "https://files.pythonhosted.org/packages/d2/2d/6ff35fa696afe2c4e3616d9560848b131353f24d9110d51baa93dd947212/opencv-contrib-python-headless-4.12.0.88.tar.gz", hash = "sha256:3d8a7b23a5faba4ad34e13f51668c56be791e57ab02d68d9016200fed3c12c77", size = 150801337, upload-time = "2025-07-07T09:20:37.432Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/3a/edf7380db58557cc29bdcff71862b8100c64adf489517ec7250509df4b72/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:a17ebb914f309afe72447c33b9187ff02f23f1483faa5c0ffde7aadc88711e2a", size = 46854919 }, - { url = "https://files.pythonhosted.org/packages/ca/0b/abacf0a9d3161cf15ee9783fab7081f1349e825844b03178bfe6fb484e96/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:85b520e527052a85a682f09cdc12e5f156f56d8c277261b4b65b48431abae96f", size = 67163853 }, - { url = "https://files.pythonhosted.org/packages/93/b4/13f1370c2b8e566f9c9f3658982ecd331c666215e7f379e8b1d7ab52a63d/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d60a12b915c55a50468c013fcd839e941b49ccc1f37b914b62543382c36bf81d", size = 38548620 }, - { url = "https://files.pythonhosted.org/packages/b3/17/bfe5ccbaa3b15b8af3371137732e69a4563ee1b05a17e6578521c09d2a56/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b183e2322468c9d3bd9cac4ba44b272d828ec22842395bcfa51df31765224c0a", size = 60138674 }, - { url = "https://files.pythonhosted.org/packages/9b/2c/328488cba04909ab6f1f00ad98758cb6c4806db4904adf2d12ee988508fd/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:902888b4e1b4826c721840d9107e91d32f146a2c3bc8cb728f0088bf44204e4b", size = 36114174 }, - { url = "https://files.pythonhosted.org/packages/44/d0/75057aac72cb7134b430a7c4c715af8a0cc68fe17c69889d64f33a5e311a/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:c57e32812fea2a542bb220088fb3ce8a210fe114c9454d1c9e8cd162e1a1fde8", size = 45190148 }, + { url = "https://files.pythonhosted.org/packages/33/3a/edf7380db58557cc29bdcff71862b8100c64adf489517ec7250509df4b72/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:a17ebb914f309afe72447c33b9187ff02f23f1483faa5c0ffde7aadc88711e2a", size = 46854919, upload-time = "2025-07-07T09:17:29.386Z" }, + { url = "https://files.pythonhosted.org/packages/ca/0b/abacf0a9d3161cf15ee9783fab7081f1349e825844b03178bfe6fb484e96/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:85b520e527052a85a682f09cdc12e5f156f56d8c277261b4b65b48431abae96f", size = 67163853, upload-time = "2025-07-07T09:17:40.97Z" }, + { url = "https://files.pythonhosted.org/packages/93/b4/13f1370c2b8e566f9c9f3658982ecd331c666215e7f379e8b1d7ab52a63d/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d60a12b915c55a50468c013fcd839e941b49ccc1f37b914b62543382c36bf81d", size = 38548620, upload-time = "2025-07-07T09:17:49.086Z" }, + { url = "https://files.pythonhosted.org/packages/b3/17/bfe5ccbaa3b15b8af3371137732e69a4563ee1b05a17e6578521c09d2a56/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b183e2322468c9d3bd9cac4ba44b272d828ec22842395bcfa51df31765224c0a", size = 60138674, upload-time = "2025-07-07T09:17:59.07Z" }, + { url = "https://files.pythonhosted.org/packages/9b/2c/328488cba04909ab6f1f00ad98758cb6c4806db4904adf2d12ee988508fd/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:902888b4e1b4826c721840d9107e91d32f146a2c3bc8cb728f0088bf44204e4b", size = 36114174, upload-time = "2025-07-07T09:18:06.818Z" }, + { url = "https://files.pythonhosted.org/packages/44/d0/75057aac72cb7134b430a7c4c715af8a0cc68fe17c69889d64f33a5e311a/opencv_contrib_python_headless-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:c57e32812fea2a542bb220088fb3ce8a210fe114c9454d1c9e8cd162e1a1fde8", size = 45190148, upload-time = "2025-07-07T09:18:15.15Z" }, ] [[package]] @@ -1422,14 +1422,14 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ac/71/25c98e634b6bdeca4727c7f6d6927b056080668c5008ad3c8fc9e7f8f6ec/opencv-python-4.12.0.88.tar.gz", hash = "sha256:8b738389cede219405f6f3880b851efa3415ccd674752219377353f017d2994d", size = 95373294 } +sdist = { url = "https://files.pythonhosted.org/packages/ac/71/25c98e634b6bdeca4727c7f6d6927b056080668c5008ad3c8fc9e7f8f6ec/opencv-python-4.12.0.88.tar.gz", hash = "sha256:8b738389cede219405f6f3880b851efa3415ccd674752219377353f017d2994d", size = 95373294, upload-time = "2025-07-07T09:20:52.389Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/68/3da40142e7c21e9b1d4e7ddd6c58738feb013203e6e4b803d62cdd9eb96b/opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:f9a1f08883257b95a5764bf517a32d75aec325319c8ed0f89739a57fae9e92a5", size = 37877727 }, - { url = "https://files.pythonhosted.org/packages/33/7c/042abe49f58d6ee7e1028eefc3334d98ca69b030e3b567fe245a2b28ea6f/opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:812eb116ad2b4de43ee116fcd8991c3a687f099ada0b04e68f64899c09448e81", size = 57326471 }, - { url = "https://files.pythonhosted.org/packages/62/3a/440bd64736cf8116f01f3b7f9f2e111afb2e02beb2ccc08a6458114a6b5d/opencv_python-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:51fd981c7df6af3e8f70b1556696b05224c4e6b6777bdd2a46b3d4fb09de1a92", size = 45887139 }, - { url = "https://files.pythonhosted.org/packages/68/1f/795e7f4aa2eacc59afa4fb61a2e35e510d06414dd5a802b51a012d691b37/opencv_python-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:092c16da4c5a163a818f120c22c5e4a2f96e0db4f24e659c701f1fe629a690f9", size = 67041680 }, - { url = "https://files.pythonhosted.org/packages/02/96/213fea371d3cb2f1d537612a105792aa0a6659fb2665b22cad709a75bd94/opencv_python-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:ff554d3f725b39878ac6a2e1fa232ec509c36130927afc18a1719ebf4fbf4357", size = 30284131 }, - { url = "https://files.pythonhosted.org/packages/fa/80/eb88edc2e2b11cd2dd2e56f1c80b5784d11d6e6b7f04a1145df64df40065/opencv_python-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:d98edb20aa932fd8ebd276a72627dad9dc097695b3d435a4257557bbb49a79d2", size = 39000307 }, + { url = "https://files.pythonhosted.org/packages/85/68/3da40142e7c21e9b1d4e7ddd6c58738feb013203e6e4b803d62cdd9eb96b/opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:f9a1f08883257b95a5764bf517a32d75aec325319c8ed0f89739a57fae9e92a5", size = 37877727, upload-time = "2025-07-07T09:13:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/33/7c/042abe49f58d6ee7e1028eefc3334d98ca69b030e3b567fe245a2b28ea6f/opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:812eb116ad2b4de43ee116fcd8991c3a687f099ada0b04e68f64899c09448e81", size = 57326471, upload-time = "2025-07-07T09:13:41.26Z" }, + { url = "https://files.pythonhosted.org/packages/62/3a/440bd64736cf8116f01f3b7f9f2e111afb2e02beb2ccc08a6458114a6b5d/opencv_python-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:51fd981c7df6af3e8f70b1556696b05224c4e6b6777bdd2a46b3d4fb09de1a92", size = 45887139, upload-time = "2025-07-07T09:13:50.761Z" }, + { url = "https://files.pythonhosted.org/packages/68/1f/795e7f4aa2eacc59afa4fb61a2e35e510d06414dd5a802b51a012d691b37/opencv_python-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:092c16da4c5a163a818f120c22c5e4a2f96e0db4f24e659c701f1fe629a690f9", size = 67041680, upload-time = "2025-07-07T09:14:01.995Z" }, + { url = "https://files.pythonhosted.org/packages/02/96/213fea371d3cb2f1d537612a105792aa0a6659fb2665b22cad709a75bd94/opencv_python-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:ff554d3f725b39878ac6a2e1fa232ec509c36130927afc18a1719ebf4fbf4357", size = 30284131, upload-time = "2025-07-07T09:14:08.819Z" }, + { url = "https://files.pythonhosted.org/packages/fa/80/eb88edc2e2b11cd2dd2e56f1c80b5784d11d6e6b7f04a1145df64df40065/opencv_python-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:d98edb20aa932fd8ebd276a72627dad9dc097695b3d435a4257557bbb49a79d2", size = 39000307, upload-time = "2025-07-07T09:14:16.641Z" }, ] [[package]] @@ -1439,36 +1439,36 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/b2/54ea4a7c6f768469a4c6a2f27f5c7cf572d63e9fd7f7618fca89c30966b3/OSlash-0.6.3.tar.gz", hash = "sha256:868aeb58a656f2ed3b73d9dd6abe387b20b74fc9413d3e8653b615b15bf728f3", size = 35228 } +sdist = { url = "https://files.pythonhosted.org/packages/60/b2/54ea4a7c6f768469a4c6a2f27f5c7cf572d63e9fd7f7618fca89c30966b3/OSlash-0.6.3.tar.gz", hash = "sha256:868aeb58a656f2ed3b73d9dd6abe387b20b74fc9413d3e8653b615b15bf728f3", size = 35228, upload-time = "2020-10-12T20:50:14.165Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/c3/77d40a6e20fdfbf92b086d2c47e3cc82731e179e3f44bdc8e60b7306bcc3/OSlash-0.6.3-py3-none-any.whl", hash = "sha256:89b978443b7db3ac2666106bdc3680add3c886a6d8fcdd02fd062af86d29494f", size = 26943 }, + { url = "https://files.pythonhosted.org/packages/2d/c3/77d40a6e20fdfbf92b086d2c47e3cc82731e179e3f44bdc8e60b7306bcc3/OSlash-0.6.3-py3-none-any.whl", hash = "sha256:89b978443b7db3ac2666106bdc3680add3c886a6d8fcdd02fd062af86d29494f", size = 26943, upload-time = "2020-10-12T20:50:13.06Z" }, ] [[package]] name = "packaging" version = "24.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950, upload-time = "2024-11-08T09:47:47.202Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451, upload-time = "2024-11-08T09:47:44.722Z" }, ] [[package]] name = "parso" version = "0.8.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d4/de/53e0bcf53d13e005bd8c92e7855142494f41171b34c2536b86187474184d/parso-0.8.5.tar.gz", hash = "sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a", size = 401205 } +sdist = { url = "https://files.pythonhosted.org/packages/d4/de/53e0bcf53d13e005bd8c92e7855142494f41171b34c2536b86187474184d/parso-0.8.5.tar.gz", hash = "sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a", size = 401205, upload-time = "2025-08-23T15:15:28.028Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/16/32/f8e3c85d1d5250232a5d3477a2a28cc291968ff175caeadaf3cc19ce0e4a/parso-0.8.5-py2.py3-none-any.whl", hash = "sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887", size = 106668 }, + { url = "https://files.pythonhosted.org/packages/16/32/f8e3c85d1d5250232a5d3477a2a28cc291968ff175caeadaf3cc19ce0e4a/parso-0.8.5-py2.py3-none-any.whl", hash = "sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887", size = 106668, upload-time = "2025-08-23T15:15:25.663Z" }, ] [[package]] name = "pathspec" version = "0.12.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043 } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191 }, + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, ] [[package]] @@ -1478,55 +1478,55 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "ptyprocess" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450 } +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 }, + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, ] [[package]] name = "pillow" version = "11.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069 } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/40/fe/1bc9b3ee13f68487a99ac9529968035cca2f0a51ec36892060edcc51d06a/pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4", size = 5278800 }, - { url = "https://files.pythonhosted.org/packages/2c/32/7e2ac19b5713657384cec55f89065fb306b06af008cfd87e572035b27119/pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69", size = 4686296 }, - { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726 }, - { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652 }, - { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787 }, - { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236 }, - { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950 }, - { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358 }, - { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079 }, - { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324 }, - { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067 }, + { url = "https://files.pythonhosted.org/packages/40/fe/1bc9b3ee13f68487a99ac9529968035cca2f0a51ec36892060edcc51d06a/pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4", size = 5278800, upload-time = "2025-07-01T09:14:17.648Z" }, + { url = "https://files.pythonhosted.org/packages/2c/32/7e2ac19b5713657384cec55f89065fb306b06af008cfd87e572035b27119/pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69", size = 4686296, upload-time = "2025-07-01T09:14:19.828Z" }, + { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726, upload-time = "2025-07-03T13:10:04.448Z" }, + { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652, upload-time = "2025-07-03T13:10:10.391Z" }, + { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787, upload-time = "2025-07-01T09:14:21.63Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236, upload-time = "2025-07-01T09:14:23.321Z" }, + { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950, upload-time = "2025-07-01T09:14:25.237Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358, upload-time = "2025-07-01T09:14:27.053Z" }, + { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079, upload-time = "2025-07-01T09:14:30.104Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324, upload-time = "2025-07-01T09:14:31.899Z" }, + { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067, upload-time = "2025-07-01T09:14:33.709Z" }, ] [[package]] name = "platformdirs" version = "4.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634 } +sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634, upload-time = "2025-08-26T14:32:04.268Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654 }, + { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload-time = "2025-08-26T14:32:02.735Z" }, ] [[package]] name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] name = "prometheus-client" version = "0.21.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/62/14/7d0f567991f3a9af8d1cd4f619040c93b68f09a02b6d0b6ab1b2d1ded5fe/prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb", size = 78551 } +sdist = { url = "https://files.pythonhosted.org/packages/62/14/7d0f567991f3a9af8d1cd4f619040c93b68f09a02b6d0b6ab1b2d1ded5fe/prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb", size = 78551, upload-time = "2024-12-03T14:59:12.164Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/c2/ab7d37426c179ceb9aeb109a85cda8948bb269b7561a0be870cc656eefe4/prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301", size = 54682 }, + { url = "https://files.pythonhosted.org/packages/ff/c2/ab7d37426c179ceb9aeb109a85cda8948bb269b7561a0be870cc656eefe4/prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301", size = 54682, upload-time = "2024-12-03T14:59:10.935Z" }, ] [[package]] @@ -1536,9 +1536,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "wcwidth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198 } +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431 }, + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, ] [[package]] @@ -1553,181 +1553,181 @@ dependencies = [ { name = "scipy" }, { name = "toml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2d/38/34e3e4a6318c03ef31392178e326649483a3939dba67cf8ed1b5067b3ae1/proof_of_portfolio-0.0.134.tar.gz", hash = "sha256:72ab80c99dafad3db410244738c0cbddd957a5e26a701885b0324c45a2e68a33", size = 40276372 } +sdist = { url = "https://files.pythonhosted.org/packages/2d/38/34e3e4a6318c03ef31392178e326649483a3939dba67cf8ed1b5067b3ae1/proof_of_portfolio-0.0.134.tar.gz", hash = "sha256:72ab80c99dafad3db410244738c0cbddd957a5e26a701885b0324c45a2e68a33", size = 40276372, upload-time = "2025-09-13T04:08:28.641Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/76/64bb5e01e12f86494ba4179eefd398e556fc8653b7944199f725f0a9790b/proof_of_portfolio-0.0.134-py3-none-any.whl", hash = "sha256:5accfe9d112ad850e41bc2a1cfd6677343cb9fe30a86113d59025adfac437d05", size = 40308152 }, + { url = "https://files.pythonhosted.org/packages/6d/76/64bb5e01e12f86494ba4179eefd398e556fc8653b7944199f725f0a9790b/proof_of_portfolio-0.0.134-py3-none-any.whl", hash = "sha256:5accfe9d112ad850e41bc2a1cfd6677343cb9fe30a86113d59025adfac437d05", size = 40308152, upload-time = "2025-09-13T04:08:22.294Z" }, ] [[package]] name = "propcache" version = "0.3.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139 } +sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139, upload-time = "2025-06-09T22:56:06.081Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674 }, - { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570 }, - { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094 }, - { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958 }, - { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894 }, - { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672 }, - { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395 }, - { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510 }, - { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949 }, - { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258 }, - { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036 }, - { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684 }, - { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562 }, - { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142 }, - { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711 }, - { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479 }, - { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663 }, + { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674, upload-time = "2025-06-09T22:54:30.551Z" }, + { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570, upload-time = "2025-06-09T22:54:32.296Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094, upload-time = "2025-06-09T22:54:33.929Z" }, + { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958, upload-time = "2025-06-09T22:54:35.186Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894, upload-time = "2025-06-09T22:54:36.708Z" }, + { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672, upload-time = "2025-06-09T22:54:38.062Z" }, + { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395, upload-time = "2025-06-09T22:54:39.634Z" }, + { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510, upload-time = "2025-06-09T22:54:41.565Z" }, + { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949, upload-time = "2025-06-09T22:54:43.038Z" }, + { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258, upload-time = "2025-06-09T22:54:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036, upload-time = "2025-06-09T22:54:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684, upload-time = "2025-06-09T22:54:47.63Z" }, + { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562, upload-time = "2025-06-09T22:54:48.982Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142, upload-time = "2025-06-09T22:54:50.424Z" }, + { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711, upload-time = "2025-06-09T22:54:52.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479, upload-time = "2025-06-09T22:54:53.234Z" }, + { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663, upload-time = "2025-06-09T22:56:04.484Z" }, ] [[package]] name = "protobuf" version = "6.32.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fa/a4/cc17347aa2897568beece2e674674359f911d6fe21b0b8d6268cd42727ac/protobuf-6.32.1.tar.gz", hash = "sha256:ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d", size = 440635 } +sdist = { url = "https://files.pythonhosted.org/packages/fa/a4/cc17347aa2897568beece2e674674359f911d6fe21b0b8d6268cd42727ac/protobuf-6.32.1.tar.gz", hash = "sha256:ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d", size = 440635, upload-time = "2025-09-11T21:38:42.935Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/98/645183ea03ab3995d29086b8bf4f7562ebd3d10c9a4b14ee3f20d47cfe50/protobuf-6.32.1-cp310-abi3-win32.whl", hash = "sha256:a8a32a84bc9f2aad712041b8b366190f71dde248926da517bde9e832e4412085", size = 424411 }, - { url = "https://files.pythonhosted.org/packages/8c/f3/6f58f841f6ebafe076cebeae33fc336e900619d34b1c93e4b5c97a81fdfa/protobuf-6.32.1-cp310-abi3-win_amd64.whl", hash = "sha256:b00a7d8c25fa471f16bc8153d0e53d6c9e827f0953f3c09aaa4331c718cae5e1", size = 435738 }, - { url = "https://files.pythonhosted.org/packages/10/56/a8a3f4e7190837139e68c7002ec749190a163af3e330f65d90309145a210/protobuf-6.32.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d8c7e6eb619ffdf105ee4ab76af5a68b60a9d0f66da3ea12d1640e6d8dab7281", size = 426454 }, - { url = "https://files.pythonhosted.org/packages/3f/be/8dd0a927c559b37d7a6c8ab79034fd167dcc1f851595f2e641ad62be8643/protobuf-6.32.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:2f5b80a49e1eb7b86d85fcd23fe92df154b9730a725c3b38c4e43b9d77018bf4", size = 322874 }, - { url = "https://files.pythonhosted.org/packages/5c/f6/88d77011b605ef979aace37b7703e4eefad066f7e84d935e5a696515c2dd/protobuf-6.32.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:b1864818300c297265c83a4982fd3169f97122c299f56a56e2445c3698d34710", size = 322013 }, - { url = "https://files.pythonhosted.org/packages/97/b7/15cc7d93443d6c6a84626ae3258a91f4c6ac8c0edd5df35ea7658f71b79c/protobuf-6.32.1-py3-none-any.whl", hash = "sha256:2601b779fc7d32a866c6b4404f9d42a3f67c5b9f3f15b4db3cccabe06b95c346", size = 169289 }, + { url = "https://files.pythonhosted.org/packages/c0/98/645183ea03ab3995d29086b8bf4f7562ebd3d10c9a4b14ee3f20d47cfe50/protobuf-6.32.1-cp310-abi3-win32.whl", hash = "sha256:a8a32a84bc9f2aad712041b8b366190f71dde248926da517bde9e832e4412085", size = 424411, upload-time = "2025-09-11T21:38:27.427Z" }, + { url = "https://files.pythonhosted.org/packages/8c/f3/6f58f841f6ebafe076cebeae33fc336e900619d34b1c93e4b5c97a81fdfa/protobuf-6.32.1-cp310-abi3-win_amd64.whl", hash = "sha256:b00a7d8c25fa471f16bc8153d0e53d6c9e827f0953f3c09aaa4331c718cae5e1", size = 435738, upload-time = "2025-09-11T21:38:30.959Z" }, + { url = "https://files.pythonhosted.org/packages/10/56/a8a3f4e7190837139e68c7002ec749190a163af3e330f65d90309145a210/protobuf-6.32.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d8c7e6eb619ffdf105ee4ab76af5a68b60a9d0f66da3ea12d1640e6d8dab7281", size = 426454, upload-time = "2025-09-11T21:38:34.076Z" }, + { url = "https://files.pythonhosted.org/packages/3f/be/8dd0a927c559b37d7a6c8ab79034fd167dcc1f851595f2e641ad62be8643/protobuf-6.32.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:2f5b80a49e1eb7b86d85fcd23fe92df154b9730a725c3b38c4e43b9d77018bf4", size = 322874, upload-time = "2025-09-11T21:38:35.509Z" }, + { url = "https://files.pythonhosted.org/packages/5c/f6/88d77011b605ef979aace37b7703e4eefad066f7e84d935e5a696515c2dd/protobuf-6.32.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:b1864818300c297265c83a4982fd3169f97122c299f56a56e2445c3698d34710", size = 322013, upload-time = "2025-09-11T21:38:37.017Z" }, + { url = "https://files.pythonhosted.org/packages/97/b7/15cc7d93443d6c6a84626ae3258a91f4c6ac8c0edd5df35ea7658f71b79c/protobuf-6.32.1-py3-none-any.whl", hash = "sha256:2601b779fc7d32a866c6b4404f9d42a3f67c5b9f3f15b4db3cccabe06b95c346", size = 169289, upload-time = "2025-09-11T21:38:41.234Z" }, ] [[package]] name = "psutil" version = "6.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/5a/07871137bb752428aa4b659f910b399ba6f291156bdea939be3e96cae7cb/psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5", size = 508502 } +sdist = { url = "https://files.pythonhosted.org/packages/1f/5a/07871137bb752428aa4b659f910b399ba6f291156bdea939be3e96cae7cb/psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5", size = 508502, upload-time = "2024-12-19T18:21:20.568Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/99/ca79d302be46f7bdd8321089762dd4476ee725fce16fc2b2e1dbba8cac17/psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8", size = 247511 }, - { url = "https://files.pythonhosted.org/packages/0b/6b/73dbde0dd38f3782905d4587049b9be64d76671042fdcaf60e2430c6796d/psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377", size = 248985 }, - { url = "https://files.pythonhosted.org/packages/17/38/c319d31a1d3f88c5b79c68b3116c129e5133f1822157dd6da34043e32ed6/psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003", size = 284488 }, - { url = "https://files.pythonhosted.org/packages/9c/39/0f88a830a1c8a3aba27fededc642da37613c57cbff143412e3536f89784f/psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160", size = 287477 }, - { url = "https://files.pythonhosted.org/packages/47/da/99f4345d4ddf2845cb5b5bd0d93d554e84542d116934fde07a0c50bd4e9f/psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3", size = 289017 }, - { url = "https://files.pythonhosted.org/packages/38/53/bd755c2896f4461fd4f36fa6a6dcb66a88a9e4b9fd4e5b66a77cf9d4a584/psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53", size = 250602 }, - { url = "https://files.pythonhosted.org/packages/7b/d7/7831438e6c3ebbfa6e01a927127a6cb42ad3ab844247f3c5b96bea25d73d/psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649", size = 254444 }, + { url = "https://files.pythonhosted.org/packages/61/99/ca79d302be46f7bdd8321089762dd4476ee725fce16fc2b2e1dbba8cac17/psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8", size = 247511, upload-time = "2024-12-19T18:21:45.163Z" }, + { url = "https://files.pythonhosted.org/packages/0b/6b/73dbde0dd38f3782905d4587049b9be64d76671042fdcaf60e2430c6796d/psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377", size = 248985, upload-time = "2024-12-19T18:21:49.254Z" }, + { url = "https://files.pythonhosted.org/packages/17/38/c319d31a1d3f88c5b79c68b3116c129e5133f1822157dd6da34043e32ed6/psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003", size = 284488, upload-time = "2024-12-19T18:21:51.638Z" }, + { url = "https://files.pythonhosted.org/packages/9c/39/0f88a830a1c8a3aba27fededc642da37613c57cbff143412e3536f89784f/psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160", size = 287477, upload-time = "2024-12-19T18:21:55.306Z" }, + { url = "https://files.pythonhosted.org/packages/47/da/99f4345d4ddf2845cb5b5bd0d93d554e84542d116934fde07a0c50bd4e9f/psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3", size = 289017, upload-time = "2024-12-19T18:21:57.875Z" }, + { url = "https://files.pythonhosted.org/packages/38/53/bd755c2896f4461fd4f36fa6a6dcb66a88a9e4b9fd4e5b66a77cf9d4a584/psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53", size = 250602, upload-time = "2024-12-19T18:22:08.808Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d7/7831438e6c3ebbfa6e01a927127a6cb42ad3ab844247f3c5b96bea25d73d/psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649", size = 254444, upload-time = "2024-12-19T18:22:11.335Z" }, ] [[package]] name = "ptyprocess" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762 } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993 }, + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, ] [[package]] name = "pure-eval" version = "0.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752 } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842 }, + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, ] [[package]] name = "py" version = "1.11.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", size = 207796 } +sdist = { url = "https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", size = 207796, upload-time = "2021-11-04T17:17:01.377Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378", size = 98708 }, + { url = "https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378", size = 98708, upload-time = "2021-11-04T17:17:00.152Z" }, ] [[package]] name = "py-bip39-bindings" version = "0.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5a/1a/f41ae3dacae40a80d00111c2bb775b3e89b7175a576b7b48a2378f0e47b5/py_bip39_bindings-0.3.0.tar.gz", hash = "sha256:ccf1f277358c635c28469d6cfd33f40c8cde902dcfdc23f395ac2932d19564bf", size = 14362 } +sdist = { url = "https://files.pythonhosted.org/packages/5a/1a/f41ae3dacae40a80d00111c2bb775b3e89b7175a576b7b48a2378f0e47b5/py_bip39_bindings-0.3.0.tar.gz", hash = "sha256:ccf1f277358c635c28469d6cfd33f40c8cde902dcfdc23f395ac2932d19564bf", size = 14362, upload-time = "2025-09-03T11:35:27.926Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/39/9b/ffacd8e438727cf5d2a91853a7b1a6b3ae39dbc17c2096ef4aaab02e85ad/py_bip39_bindings-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8ef28358fda3c69776b2fd505d4ba2e24980ebcdc5d3abf04d5aecf86e6d155b", size = 374346 }, - { url = "https://files.pythonhosted.org/packages/72/5c/7f7a456ad5377a9cca53c2720167c1ef8e7b5c6855849cbeed196c1dd84c/py_bip39_bindings-0.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9d9f5b5e95b8abf012ff85f4369aef707a129fc8011d551ae606e2ace6c49fe9", size = 363624 }, - { url = "https://files.pythonhosted.org/packages/e6/9c/4e823ece7129cdda9bf4b6e255289ae4291062d48b10e42e035bc9acdda9/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4febd3d90cf6950b194c9a6f6df565cb86ff0e10c89156e6025092b7c272e5ff", size = 421650 }, - { url = "https://files.pythonhosted.org/packages/4e/38/57445cdeadc4c7fffb9cca73ec2a994c3c5b6e720a6ec2eb1b2ce9857794/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3916b60b83f6c4a79176c485df3b61f437b6c674e39cecb6e8ec5d9e3a28861e", size = 422342 }, - { url = "https://files.pythonhosted.org/packages/e2/fe/1d5cd9e2f386ada2a0fc97c47b3696191b756bfcfb224843d9655d79b71b/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90f19cbfba4834439e49099ca55ef0340fab4fa9abaf6cde9751fd0a05a60e10", size = 585131 }, - { url = "https://files.pythonhosted.org/packages/5a/37/c6c520b3f3037b292a11dc071c73345252bb3f449065b241088f3f5632ff/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9af016b24b290937a6b233388fb53ce416b8b4e0b3181c62197d30f1550d4cc6", size = 432384 }, - { url = "https://files.pythonhosted.org/packages/ac/5a/53921b79d91e07e66ee4e2a46df78141f0d597be44cdcb5efdf0677c9d38/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0397a8c6744e906e13b7b4129fa676ff943569fea968cc310f2c9248b9f88e6", size = 438808 }, - { url = "https://files.pythonhosted.org/packages/dc/7a/9b730edae87a5714fe06cca7aa8d6f328b588e305d1040299cf7c2b97bec/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3b71b9b9cad54678c8ea4ff855db1e31adf027eab5a1cd2ec0d255178d1d60ea", size = 601932 }, - { url = "https://files.pythonhosted.org/packages/2f/ec/e676d7305b0b12e218ff8ad51e4115781a36081db7d51f381d391cf7c5fb/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:2b5f3f6dda9a68040c1fb74b9ca721788e3cec3d6e4d1e7ff91659bbc72c2bec", size = 685349 }, - { url = "https://files.pythonhosted.org/packages/9c/3b/cf983f9a777de6128244f533495d7787d1f311ab49eb67c71314e18e3695/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:086c8e73208f423c3edd051a79334710b5253fb7be5e6a8d0b53da8538c0cc48", size = 614816 }, - { url = "https://files.pythonhosted.org/packages/90/a9/81a97ae0850ec2b0b0d4df6757d1dcd478e3b205148d87ca561b95a0d102/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b16eb31bbedc6148a739a6fc8a79053306dcb7585972405f3728802cd844bfa7", size = 602022 }, - { url = "https://files.pythonhosted.org/packages/27/ee/d0819e4ae1b2725a215e46182122a8286740d196e1c12cce8fc14f5d4bcf/py_bip39_bindings-0.3.0-cp312-cp312-win32.whl", hash = "sha256:34ac0484b24004d8e29243d345ce98285869f48be8d24a307fd188f76a284e27", size = 262833 }, - { url = "https://files.pythonhosted.org/packages/c2/32/1473a512d90162e8d134f76dd4035deb2db0b8b227fad5fbae88a76da329/py_bip39_bindings-0.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a1506de7cc77827b6ec1eac874f5714be6afdc13b3b3132db71dfde14ee7a4f0", size = 270105 }, + { url = "https://files.pythonhosted.org/packages/39/9b/ffacd8e438727cf5d2a91853a7b1a6b3ae39dbc17c2096ef4aaab02e85ad/py_bip39_bindings-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8ef28358fda3c69776b2fd505d4ba2e24980ebcdc5d3abf04d5aecf86e6d155b", size = 374346, upload-time = "2025-09-03T11:34:27.263Z" }, + { url = "https://files.pythonhosted.org/packages/72/5c/7f7a456ad5377a9cca53c2720167c1ef8e7b5c6855849cbeed196c1dd84c/py_bip39_bindings-0.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9d9f5b5e95b8abf012ff85f4369aef707a129fc8011d551ae606e2ace6c49fe9", size = 363624, upload-time = "2025-09-03T11:34:22.877Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9c/4e823ece7129cdda9bf4b6e255289ae4291062d48b10e42e035bc9acdda9/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4febd3d90cf6950b194c9a6f6df565cb86ff0e10c89156e6025092b7c272e5ff", size = 421650, upload-time = "2025-09-03T11:33:18.472Z" }, + { url = "https://files.pythonhosted.org/packages/4e/38/57445cdeadc4c7fffb9cca73ec2a994c3c5b6e720a6ec2eb1b2ce9857794/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3916b60b83f6c4a79176c485df3b61f437b6c674e39cecb6e8ec5d9e3a28861e", size = 422342, upload-time = "2025-09-03T11:33:34.914Z" }, + { url = "https://files.pythonhosted.org/packages/e2/fe/1d5cd9e2f386ada2a0fc97c47b3696191b756bfcfb224843d9655d79b71b/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90f19cbfba4834439e49099ca55ef0340fab4fa9abaf6cde9751fd0a05a60e10", size = 585131, upload-time = "2025-09-03T11:33:47.971Z" }, + { url = "https://files.pythonhosted.org/packages/5a/37/c6c520b3f3037b292a11dc071c73345252bb3f449065b241088f3f5632ff/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9af016b24b290937a6b233388fb53ce416b8b4e0b3181c62197d30f1550d4cc6", size = 432384, upload-time = "2025-09-03T11:34:12.415Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5a/53921b79d91e07e66ee4e2a46df78141f0d597be44cdcb5efdf0677c9d38/py_bip39_bindings-0.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0397a8c6744e906e13b7b4129fa676ff943569fea968cc310f2c9248b9f88e6", size = 438808, upload-time = "2025-09-03T11:34:00.966Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7a/9b730edae87a5714fe06cca7aa8d6f328b588e305d1040299cf7c2b97bec/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3b71b9b9cad54678c8ea4ff855db1e31adf027eab5a1cd2ec0d255178d1d60ea", size = 601932, upload-time = "2025-09-03T11:34:34.311Z" }, + { url = "https://files.pythonhosted.org/packages/2f/ec/e676d7305b0b12e218ff8ad51e4115781a36081db7d51f381d391cf7c5fb/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:2b5f3f6dda9a68040c1fb74b9ca721788e3cec3d6e4d1e7ff91659bbc72c2bec", size = 685349, upload-time = "2025-09-03T11:34:47.721Z" }, + { url = "https://files.pythonhosted.org/packages/9c/3b/cf983f9a777de6128244f533495d7787d1f311ab49eb67c71314e18e3695/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:086c8e73208f423c3edd051a79334710b5253fb7be5e6a8d0b53da8538c0cc48", size = 614816, upload-time = "2025-09-03T11:35:04.031Z" }, + { url = "https://files.pythonhosted.org/packages/90/a9/81a97ae0850ec2b0b0d4df6757d1dcd478e3b205148d87ca561b95a0d102/py_bip39_bindings-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b16eb31bbedc6148a739a6fc8a79053306dcb7585972405f3728802cd844bfa7", size = 602022, upload-time = "2025-09-03T11:35:17.435Z" }, + { url = "https://files.pythonhosted.org/packages/27/ee/d0819e4ae1b2725a215e46182122a8286740d196e1c12cce8fc14f5d4bcf/py_bip39_bindings-0.3.0-cp312-cp312-win32.whl", hash = "sha256:34ac0484b24004d8e29243d345ce98285869f48be8d24a307fd188f76a284e27", size = 262833, upload-time = "2025-09-03T11:35:38.784Z" }, + { url = "https://files.pythonhosted.org/packages/c2/32/1473a512d90162e8d134f76dd4035deb2db0b8b227fad5fbae88a76da329/py_bip39_bindings-0.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a1506de7cc77827b6ec1eac874f5714be6afdc13b3b3132db71dfde14ee7a4f0", size = 270105, upload-time = "2025-09-03T11:35:31.735Z" }, ] [[package]] name = "py-ed25519-zebra-bindings" version = "1.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c1/0f/18ba2ae4eb2bc84fd05ebd3689d6d33609198707a602cf332e854944735f/py_ed25519_zebra_bindings-1.3.0.tar.gz", hash = "sha256:c0c4478ab57d65671b310524978122a81b9921847dba07f005d0d2d218f610b5", size = 11809 } +sdist = { url = "https://files.pythonhosted.org/packages/c1/0f/18ba2ae4eb2bc84fd05ebd3689d6d33609198707a602cf332e854944735f/py_ed25519_zebra_bindings-1.3.0.tar.gz", hash = "sha256:c0c4478ab57d65671b310524978122a81b9921847dba07f005d0d2d218f610b5", size = 11809, upload-time = "2025-09-03T11:31:49.185Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dd/8e/2ad270ce1e4d7e3c5a1ddce2933370f4e60510d4f64cfc243d27ee250caa/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:dd548a85aae8354e781db7ce2310cd74e11478c95caf30dcb0e61481de9b1ccd", size = 297769 }, - { url = "https://files.pythonhosted.org/packages/e7/b8/539cf42a0815d8c6f2d8aaaf8e0c7b8dff7c5e05bb74c440cbf3a2b320dc/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:160d09d42c3a71b27b31c6cfe33c495816603407a8dca65848e3daf5264ce650", size = 269824 }, - { url = "https://files.pythonhosted.org/packages/31/db/5f9dc670fbd10ac7e8ef6d87bbe003ef0adc6816eb4b7227f45b9666bc53/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6955a1689da524991b8940c9fad4c71351508faa9c338d3a59c1979881cb6d13", size = 300831 }, - { url = "https://files.pythonhosted.org/packages/1a/24/eca79f4d48896fdd56818751a652c930c81af7a27faa4186f3938d9ede23/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:44524a78ac106a32cfb468df5bf13b74379df022088751802db5d591db4fbaff", size = 328349 }, - { url = "https://files.pythonhosted.org/packages/9f/6c/dcec9acbcec854ffd8e273c20fea07ca5427c823690b7b7ecefac2a41993/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc58becb6f3336e73249916bb0ebb5ca01304f7229066681fa1a54b437c73650", size = 443681 }, - { url = "https://files.pythonhosted.org/packages/43/9e/505352973fd7eb2411ec15f2e5795cc16bfa6b970426a155493e6de37f5f/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75bb597651de7ae71e22d49284ea153cb4c5f9c085e3745634713d57348b9c4f", size = 322842 }, - { url = "https://files.pythonhosted.org/packages/de/f7/3f623955953b4557cfc20fbca3337fe0bb3480ae1c0122b2b70000bcbdbc/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e3ca8fca02404f859d2a2d93e2d54e6a2ca49f39caf29a5497995d2566926d4", size = 340445 }, - { url = "https://files.pythonhosted.org/packages/3c/dd/95be4b702eab24844a006472ea0d3f6d4e79e7bac181d1f3f1b5478f28be/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:506675a6097e771da2177859218ce8cf6a0b96239f38593cbfb38e376530a8e6", size = 479582 }, - { url = "https://files.pythonhosted.org/packages/2b/e5/2a6af8ed67538212c4d7de49905ff1d1baa1f109255e8e4006b722fb9c89/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:9225efde253397aaf9ac8509036314d1390621cf7fc4e43616e741d48af91c56", size = 592553 }, - { url = "https://files.pythonhosted.org/packages/3f/3b/c93b3ff723747206478deaa7a8c7448fec7faefd011385f1d717a94181e7/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8483690dfebd89d9e2a9b4407c902d42187444bd4c6c2e5a161f39da11c0b25a", size = 517855 }, - { url = "https://files.pythonhosted.org/packages/cb/1a/0752ea61481348038e8d66fd95453aae99c606d5c872c9d06dde7b6912d7/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:872ee9da1f93d252c13d246cb3d79b50abd834f45b73b3ce9733091a1b31e470", size = 493050 }, - { url = "https://files.pythonhosted.org/packages/32/c7/e7f1193b3edd58e8662c6b8dbeecc3c5a77c1df25fa9f45daee62f5af9c0/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-win32.whl", hash = "sha256:6b28b572db32188af60878b11a20cace42a86f0b8630fa09739d871e67d317b2", size = 183140 }, - { url = "https://files.pythonhosted.org/packages/6b/3a/44f1aa1e24693abed85478f5fd84a60a8164162ea9d8eac1d2dab48bc180/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:015c2ce6b934a6b36d50a21c6213636c18edf9a4c14b847f70089ba1897e119e", size = 188353 }, + { url = "https://files.pythonhosted.org/packages/dd/8e/2ad270ce1e4d7e3c5a1ddce2933370f4e60510d4f64cfc243d27ee250caa/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:dd548a85aae8354e781db7ce2310cd74e11478c95caf30dcb0e61481de9b1ccd", size = 297769, upload-time = "2025-09-03T11:31:03.794Z" }, + { url = "https://files.pythonhosted.org/packages/e7/b8/539cf42a0815d8c6f2d8aaaf8e0c7b8dff7c5e05bb74c440cbf3a2b320dc/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:160d09d42c3a71b27b31c6cfe33c495816603407a8dca65848e3daf5264ce650", size = 269824, upload-time = "2025-09-03T11:31:00.836Z" }, + { url = "https://files.pythonhosted.org/packages/31/db/5f9dc670fbd10ac7e8ef6d87bbe003ef0adc6816eb4b7227f45b9666bc53/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6955a1689da524991b8940c9fad4c71351508faa9c338d3a59c1979881cb6d13", size = 300831, upload-time = "2025-09-03T11:30:08.864Z" }, + { url = "https://files.pythonhosted.org/packages/1a/24/eca79f4d48896fdd56818751a652c930c81af7a27faa4186f3938d9ede23/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:44524a78ac106a32cfb468df5bf13b74379df022088751802db5d591db4fbaff", size = 328349, upload-time = "2025-09-03T11:30:21.984Z" }, + { url = "https://files.pythonhosted.org/packages/9f/6c/dcec9acbcec854ffd8e273c20fea07ca5427c823690b7b7ecefac2a41993/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc58becb6f3336e73249916bb0ebb5ca01304f7229066681fa1a54b437c73650", size = 443681, upload-time = "2025-09-03T11:30:32.284Z" }, + { url = "https://files.pythonhosted.org/packages/43/9e/505352973fd7eb2411ec15f2e5795cc16bfa6b970426a155493e6de37f5f/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75bb597651de7ae71e22d49284ea153cb4c5f9c085e3745634713d57348b9c4f", size = 322842, upload-time = "2025-09-03T11:30:52.732Z" }, + { url = "https://files.pythonhosted.org/packages/de/f7/3f623955953b4557cfc20fbca3337fe0bb3480ae1c0122b2b70000bcbdbc/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e3ca8fca02404f859d2a2d93e2d54e6a2ca49f39caf29a5497995d2566926d4", size = 340445, upload-time = "2025-09-03T11:30:43.179Z" }, + { url = "https://files.pythonhosted.org/packages/3c/dd/95be4b702eab24844a006472ea0d3f6d4e79e7bac181d1f3f1b5478f28be/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:506675a6097e771da2177859218ce8cf6a0b96239f38593cbfb38e376530a8e6", size = 479582, upload-time = "2025-09-03T11:31:08.636Z" }, + { url = "https://files.pythonhosted.org/packages/2b/e5/2a6af8ed67538212c4d7de49905ff1d1baa1f109255e8e4006b722fb9c89/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:9225efde253397aaf9ac8509036314d1390621cf7fc4e43616e741d48af91c56", size = 592553, upload-time = "2025-09-03T11:31:19.283Z" }, + { url = "https://files.pythonhosted.org/packages/3f/3b/c93b3ff723747206478deaa7a8c7448fec7faefd011385f1d717a94181e7/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8483690dfebd89d9e2a9b4407c902d42187444bd4c6c2e5a161f39da11c0b25a", size = 517855, upload-time = "2025-09-03T11:31:29.603Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1a/0752ea61481348038e8d66fd95453aae99c606d5c872c9d06dde7b6912d7/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:872ee9da1f93d252c13d246cb3d79b50abd834f45b73b3ce9733091a1b31e470", size = 493050, upload-time = "2025-09-03T11:31:40.442Z" }, + { url = "https://files.pythonhosted.org/packages/32/c7/e7f1193b3edd58e8662c6b8dbeecc3c5a77c1df25fa9f45daee62f5af9c0/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-win32.whl", hash = "sha256:6b28b572db32188af60878b11a20cace42a86f0b8630fa09739d871e67d317b2", size = 183140, upload-time = "2025-09-03T11:31:56.576Z" }, + { url = "https://files.pythonhosted.org/packages/6b/3a/44f1aa1e24693abed85478f5fd84a60a8164162ea9d8eac1d2dab48bc180/py_ed25519_zebra_bindings-1.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:015c2ce6b934a6b36d50a21c6213636c18edf9a4c14b847f70089ba1897e119e", size = 188353, upload-time = "2025-09-03T11:31:51.707Z" }, ] [[package]] name = "py-sr25519-bindings" version = "0.2.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/21/64/24d7fd10bbf96686cd3a868d79b27c84d36a92a1b7b9ade52b754b5c1d65/py_sr25519_bindings-0.2.2.tar.gz", hash = "sha256:192d65d3bc43c6f4121a0732e1f6eb6ad869897ca26368ba032e96a82b3b7606", size = 18565 } +sdist = { url = "https://files.pythonhosted.org/packages/21/64/24d7fd10bbf96686cd3a868d79b27c84d36a92a1b7b9ade52b754b5c1d65/py_sr25519_bindings-0.2.2.tar.gz", hash = "sha256:192d65d3bc43c6f4121a0732e1f6eb6ad869897ca26368ba032e96a82b3b7606", size = 18565, upload-time = "2025-03-12T20:35:51.176Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/24/1b/77ac1f989fe2b42354a912db2245087a230cdd5585a1f5c721d733d997c7/py_sr25519_bindings-0.2.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f22542738ed98fac0d3da2479dd3f26c695594800877a4d8bb116c47e4fd4b7c", size = 337110 }, - { url = "https://files.pythonhosted.org/packages/2d/d9/95eff0244e9d60a1153f59e2dd86c17eda38030d5764ad594daccd45664d/py_sr25519_bindings-0.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b312b8ac7c8354d5cf1b9aad993bbafbd99cc97b6d246f246e76814f576ed809", size = 312294 }, - { url = "https://files.pythonhosted.org/packages/60/fa/82ee651cc236f818c9426cf2e69bd310e1ad365da8c28c1e80229c6749ae/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c70ff898fa46f380a535c843e3a1a9824d1849216067bbf28eb9ad225b92f0bb", size = 341715 }, - { url = "https://files.pythonhosted.org/packages/63/4c/7fe74f6a285e2f5b816d0ac40d1a4fb8dece0aaa2e5658711659a138143d/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:292be23ad53d9f9dbf1703a2a341005629a8f93c57cfad254c8c1230ec7d3fe3", size = 371546 }, - { url = "https://files.pythonhosted.org/packages/96/2c/0200b032f106c3f45fac26fc4a7b4a8709e76ceee2c955506b101876a104/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:673b31e8f59bc1478814b011921073f8ad4e2c78a1d6580b3ddb1a9d7edc4392", size = 401746 }, - { url = "https://files.pythonhosted.org/packages/e8/1b/4bb3d11214e67d43db6da4b30ed3f0607692911b15d2451d52303bfd9eac/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:849f77ab12210e8549e58d444e9199d9aba83a988e99ca8bef04dd53e81f9561", size = 370218 }, - { url = "https://files.pythonhosted.org/packages/07/c7/4b2c1f8fa7f877bc87a7464a09155184872a42ad77b3dc46623cd2b6d765/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cf8c1d329275c41836aee5f8789ab14100dbdc2b6f3a0210fac2abb0f7507c24", size = 391266 }, - { url = "https://files.pythonhosted.org/packages/fd/89/9dbce7ea9250a6da39b4cea0005406b435dfcc6d7acf96fffd225068f1e5/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:48f053c5e8cb66125057b25223ef5ff57bb4383a82871d47089397317c5fd792", size = 520570 }, - { url = "https://files.pythonhosted.org/packages/cf/49/8687d5a25f78ae33d2ec485b7d845e15c48b4ef5de14e88725d658dfa295/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fea3ce0ac6a26a52735bb48f8daafb82d17147f776bb6d9d3c330bd2ccffe20d", size = 634419 }, - { url = "https://files.pythonhosted.org/packages/6d/4b/0eda1da34e9eb6c9925d887d593ec74ce87e3a4d27dd92feea4a2f73a07c/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f44a0a9cb155af6408e3f73833a935abc98934ce097b2ad07dd13e3a88f82cb8", size = 565771 }, - { url = "https://files.pythonhosted.org/packages/b9/0d/888547b1ba1f0b28345158a6bf7e7c6b85d856639b61b612e4d7c9f721d6/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cc531500823ece8d6889082642e9ea06f2eaffd0ed43d65871cb4727429027c", size = 538963 }, - { url = "https://files.pythonhosted.org/packages/dc/6b/3e682442be504c506cc5159a8dd5520f18100ad52fcbf2f8dd33f55c4d09/py_sr25519_bindings-0.2.2-cp312-cp312-win32.whl", hash = "sha256:840c3ec1fc8dde12421369afa9761943efe377a7bd55a97524587e8b5a6546c2", size = 219273 }, - { url = "https://files.pythonhosted.org/packages/73/01/df0af3505e69f8d1334fa493fb82c0e944bb554f6e4739e613a9eaafe59b/py_sr25519_bindings-0.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:c3ee5fd07b2974ce147ac7546b18729d2eb4efebe8eaad178690aaca656487f3", size = 225723 }, + { url = "https://files.pythonhosted.org/packages/24/1b/77ac1f989fe2b42354a912db2245087a230cdd5585a1f5c721d733d997c7/py_sr25519_bindings-0.2.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f22542738ed98fac0d3da2479dd3f26c695594800877a4d8bb116c47e4fd4b7c", size = 337110, upload-time = "2025-03-12T20:34:54.175Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d9/95eff0244e9d60a1153f59e2dd86c17eda38030d5764ad594daccd45664d/py_sr25519_bindings-0.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b312b8ac7c8354d5cf1b9aad993bbafbd99cc97b6d246f246e76814f576ed809", size = 312294, upload-time = "2025-03-12T20:34:51Z" }, + { url = "https://files.pythonhosted.org/packages/60/fa/82ee651cc236f818c9426cf2e69bd310e1ad365da8c28c1e80229c6749ae/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c70ff898fa46f380a535c843e3a1a9824d1849216067bbf28eb9ad225b92f0bb", size = 341715, upload-time = "2025-03-12T20:33:53.813Z" }, + { url = "https://files.pythonhosted.org/packages/63/4c/7fe74f6a285e2f5b816d0ac40d1a4fb8dece0aaa2e5658711659a138143d/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:292be23ad53d9f9dbf1703a2a341005629a8f93c57cfad254c8c1230ec7d3fe3", size = 371546, upload-time = "2025-03-12T20:34:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/96/2c/0200b032f106c3f45fac26fc4a7b4a8709e76ceee2c955506b101876a104/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:673b31e8f59bc1478814b011921073f8ad4e2c78a1d6580b3ddb1a9d7edc4392", size = 401746, upload-time = "2025-03-12T20:34:19.982Z" }, + { url = "https://files.pythonhosted.org/packages/e8/1b/4bb3d11214e67d43db6da4b30ed3f0607692911b15d2451d52303bfd9eac/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:849f77ab12210e8549e58d444e9199d9aba83a988e99ca8bef04dd53e81f9561", size = 370218, upload-time = "2025-03-12T20:34:42.545Z" }, + { url = "https://files.pythonhosted.org/packages/07/c7/4b2c1f8fa7f877bc87a7464a09155184872a42ad77b3dc46623cd2b6d765/py_sr25519_bindings-0.2.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cf8c1d329275c41836aee5f8789ab14100dbdc2b6f3a0210fac2abb0f7507c24", size = 391266, upload-time = "2025-03-12T20:34:32.491Z" }, + { url = "https://files.pythonhosted.org/packages/fd/89/9dbce7ea9250a6da39b4cea0005406b435dfcc6d7acf96fffd225068f1e5/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:48f053c5e8cb66125057b25223ef5ff57bb4383a82871d47089397317c5fd792", size = 520570, upload-time = "2025-03-12T20:34:59.045Z" }, + { url = "https://files.pythonhosted.org/packages/cf/49/8687d5a25f78ae33d2ec485b7d845e15c48b4ef5de14e88725d658dfa295/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fea3ce0ac6a26a52735bb48f8daafb82d17147f776bb6d9d3c330bd2ccffe20d", size = 634419, upload-time = "2025-03-12T20:35:12.833Z" }, + { url = "https://files.pythonhosted.org/packages/6d/4b/0eda1da34e9eb6c9925d887d593ec74ce87e3a4d27dd92feea4a2f73a07c/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f44a0a9cb155af6408e3f73833a935abc98934ce097b2ad07dd13e3a88f82cb8", size = 565771, upload-time = "2025-03-12T20:35:25.751Z" }, + { url = "https://files.pythonhosted.org/packages/b9/0d/888547b1ba1f0b28345158a6bf7e7c6b85d856639b61b612e4d7c9f721d6/py_sr25519_bindings-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cc531500823ece8d6889082642e9ea06f2eaffd0ed43d65871cb4727429027c", size = 538963, upload-time = "2025-03-12T20:35:39.244Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6b/3e682442be504c506cc5159a8dd5520f18100ad52fcbf2f8dd33f55c4d09/py_sr25519_bindings-0.2.2-cp312-cp312-win32.whl", hash = "sha256:840c3ec1fc8dde12421369afa9761943efe377a7bd55a97524587e8b5a6546c2", size = 219273, upload-time = "2025-03-12T20:36:01.434Z" }, + { url = "https://files.pythonhosted.org/packages/73/01/df0af3505e69f8d1334fa493fb82c0e944bb554f6e4739e613a9eaafe59b/py_sr25519_bindings-0.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:c3ee5fd07b2974ce147ac7546b18729d2eb4efebe8eaad178690aaca656487f3", size = 225723, upload-time = "2025-03-12T20:35:54.361Z" }, ] [[package]] name = "pycparser" version = "2.23" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734 } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140 }, + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, ] [[package]] name = "pycryptodome" version = "3.23.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/a6/8452177684d5e906854776276ddd34eca30d1b1e15aa1ee9cefc289a33f5/pycryptodome-3.23.0.tar.gz", hash = "sha256:447700a657182d60338bab09fdb27518f8856aecd80ae4c6bdddb67ff5da44ef", size = 4921276 } +sdist = { url = "https://files.pythonhosted.org/packages/8e/a6/8452177684d5e906854776276ddd34eca30d1b1e15aa1ee9cefc289a33f5/pycryptodome-3.23.0.tar.gz", hash = "sha256:447700a657182d60338bab09fdb27518f8856aecd80ae4c6bdddb67ff5da44ef", size = 4921276, upload-time = "2025-05-17T17:21:45.242Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:187058ab80b3281b1de11c2e6842a357a1f71b42cb1e15bce373f3d238135c27", size = 2495627 }, - { url = "https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cfb5cd445280c5b0a4e6187a7ce8de5a07b5f3f897f235caa11f1f435f182843", size = 1640362 }, - { url = "https://files.pythonhosted.org/packages/50/52/adaf4c8c100a8c49d2bd058e5b551f73dfd8cb89eb4911e25a0c469b6b4e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67bd81fcbe34f43ad9422ee8fd4843c8e7198dd88dd3d40e6de42ee65fbe1490", size = 2182625 }, - { url = "https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575", size = 2268954 }, - { url = "https://files.pythonhosted.org/packages/f9/c5/ffe6474e0c551d54cab931918127c46d70cab8f114e0c2b5a3c071c2f484/pycryptodome-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa0698f65e5b570426fc31b8162ed4603b0c2841cbb9088e2b01641e3065915b", size = 2308534 }, - { url = "https://files.pythonhosted.org/packages/18/28/e199677fc15ecf43010f2463fde4c1a53015d1fe95fb03bca2890836603a/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:53ecbafc2b55353edcebd64bf5da94a2a2cdf5090a6915bcca6eca6cc452585a", size = 2181853 }, - { url = "https://files.pythonhosted.org/packages/ce/ea/4fdb09f2165ce1365c9eaefef36625583371ee514db58dc9b65d3a255c4c/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:156df9667ad9f2ad26255926524e1c136d6664b741547deb0a86a9acf5ea631f", size = 2342465 }, - { url = "https://files.pythonhosted.org/packages/22/82/6edc3fc42fe9284aead511394bac167693fb2b0e0395b28b8bedaa07ef04/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:dea827b4d55ee390dc89b2afe5927d4308a8b538ae91d9c6f7a5090f397af1aa", size = 2267414 }, - { url = "https://files.pythonhosted.org/packages/59/fe/aae679b64363eb78326c7fdc9d06ec3de18bac68be4b612fc1fe8902693c/pycryptodome-3.23.0-cp37-abi3-win32.whl", hash = "sha256:507dbead45474b62b2bbe318eb1c4c8ee641077532067fec9c1aa82c31f84886", size = 1768484 }, - { url = "https://files.pythonhosted.org/packages/54/2f/e97a1b8294db0daaa87012c24a7bb714147c7ade7656973fd6c736b484ff/pycryptodome-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:c75b52aacc6c0c260f204cbdd834f76edc9fb0d8e0da9fbf8352ef58202564e2", size = 1799636 }, - { url = "https://files.pythonhosted.org/packages/18/3d/f9441a0d798bf2b1e645adc3265e55706aead1255ccdad3856dbdcffec14/pycryptodome-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:11eeeb6917903876f134b56ba11abe95c0b0fd5e3330def218083c7d98bbcb3c", size = 1703675 }, + { url = "https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:187058ab80b3281b1de11c2e6842a357a1f71b42cb1e15bce373f3d238135c27", size = 2495627, upload-time = "2025-05-17T17:20:47.139Z" }, + { url = "https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cfb5cd445280c5b0a4e6187a7ce8de5a07b5f3f897f235caa11f1f435f182843", size = 1640362, upload-time = "2025-05-17T17:20:50.392Z" }, + { url = "https://files.pythonhosted.org/packages/50/52/adaf4c8c100a8c49d2bd058e5b551f73dfd8cb89eb4911e25a0c469b6b4e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67bd81fcbe34f43ad9422ee8fd4843c8e7198dd88dd3d40e6de42ee65fbe1490", size = 2182625, upload-time = "2025-05-17T17:20:52.866Z" }, + { url = "https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575", size = 2268954, upload-time = "2025-05-17T17:20:55.027Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c5/ffe6474e0c551d54cab931918127c46d70cab8f114e0c2b5a3c071c2f484/pycryptodome-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa0698f65e5b570426fc31b8162ed4603b0c2841cbb9088e2b01641e3065915b", size = 2308534, upload-time = "2025-05-17T17:20:57.279Z" }, + { url = "https://files.pythonhosted.org/packages/18/28/e199677fc15ecf43010f2463fde4c1a53015d1fe95fb03bca2890836603a/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:53ecbafc2b55353edcebd64bf5da94a2a2cdf5090a6915bcca6eca6cc452585a", size = 2181853, upload-time = "2025-05-17T17:20:59.322Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ea/4fdb09f2165ce1365c9eaefef36625583371ee514db58dc9b65d3a255c4c/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:156df9667ad9f2ad26255926524e1c136d6664b741547deb0a86a9acf5ea631f", size = 2342465, upload-time = "2025-05-17T17:21:03.83Z" }, + { url = "https://files.pythonhosted.org/packages/22/82/6edc3fc42fe9284aead511394bac167693fb2b0e0395b28b8bedaa07ef04/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:dea827b4d55ee390dc89b2afe5927d4308a8b538ae91d9c6f7a5090f397af1aa", size = 2267414, upload-time = "2025-05-17T17:21:06.72Z" }, + { url = "https://files.pythonhosted.org/packages/59/fe/aae679b64363eb78326c7fdc9d06ec3de18bac68be4b612fc1fe8902693c/pycryptodome-3.23.0-cp37-abi3-win32.whl", hash = "sha256:507dbead45474b62b2bbe318eb1c4c8ee641077532067fec9c1aa82c31f84886", size = 1768484, upload-time = "2025-05-17T17:21:08.535Z" }, + { url = "https://files.pythonhosted.org/packages/54/2f/e97a1b8294db0daaa87012c24a7bb714147c7ade7656973fd6c736b484ff/pycryptodome-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:c75b52aacc6c0c260f204cbdd834f76edc9fb0d8e0da9fbf8352ef58202564e2", size = 1799636, upload-time = "2025-05-17T17:21:10.393Z" }, + { url = "https://files.pythonhosted.org/packages/18/3d/f9441a0d798bf2b1e645adc3265e55706aead1255ccdad3856dbdcffec14/pycryptodome-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:11eeeb6917903876f134b56ba11abe95c0b0fd5e3330def218083c7d98bbcb3c", size = 1703675, upload-time = "2025-05-17T17:21:13.146Z" }, ] [[package]] @@ -1739,9 +1739,9 @@ dependencies = [ { name = "pydantic-core" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b7/ae/d5220c5c52b158b1de7ca89fc5edb72f304a70a4c540c84c8844bf4008de/pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236", size = 761681 } +sdist = { url = "https://files.pythonhosted.org/packages/b7/ae/d5220c5c52b158b1de7ca89fc5edb72f304a70a4c540c84c8844bf4008de/pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236", size = 761681, upload-time = "2025-01-24T01:42:12.693Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/3c/8cc1cc84deffa6e25d2d0c688ebb80635dfdbf1dbea3e30c541c8cf4d860/pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584", size = 431696 }, + { url = "https://files.pythonhosted.org/packages/f4/3c/8cc1cc84deffa6e25d2d0c688ebb80635dfdbf1dbea3e30c541c8cf4d860/pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584", size = 431696, upload-time = "2025-01-24T01:42:10.371Z" }, ] [[package]] @@ -1751,22 +1751,22 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443 } +sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443, upload-time = "2024-12-18T11:31:54.917Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127 }, - { url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340 }, - { url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900 }, - { url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177 }, - { url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046 }, - { url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386 }, - { url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060 }, - { url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870 }, - { url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822 }, - { url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364 }, - { url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303 }, - { url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064 }, - { url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046 }, - { url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092 }, + { url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127, upload-time = "2024-12-18T11:28:30.346Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340, upload-time = "2024-12-18T11:28:32.521Z" }, + { url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900, upload-time = "2024-12-18T11:28:34.507Z" }, + { url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177, upload-time = "2024-12-18T11:28:36.488Z" }, + { url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046, upload-time = "2024-12-18T11:28:39.409Z" }, + { url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386, upload-time = "2024-12-18T11:28:41.221Z" }, + { url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060, upload-time = "2024-12-18T11:28:44.709Z" }, + { url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870, upload-time = "2024-12-18T11:28:46.839Z" }, + { url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822, upload-time = "2024-12-18T11:28:48.896Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364, upload-time = "2024-12-18T11:28:50.755Z" }, + { url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303, upload-time = "2024-12-18T11:28:54.122Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064, upload-time = "2024-12-18T11:28:56.074Z" }, + { url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046, upload-time = "2024-12-18T11:28:58.107Z" }, + { url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092, upload-time = "2024-12-18T11:29:01.335Z" }, ] [[package]] @@ -1776,18 +1776,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyparsing" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/66/dd/e0e6a4fb84c22050f6a9701ad9fd6a67ef82faa7ba97b97eb6fdc6b49b34/pydot-3.0.4.tar.gz", hash = "sha256:3ce88b2558f3808b0376f22bfa6c263909e1c3981e2a7b629b65b451eee4a25d", size = 168167 } +sdist = { url = "https://files.pythonhosted.org/packages/66/dd/e0e6a4fb84c22050f6a9701ad9fd6a67ef82faa7ba97b97eb6fdc6b49b34/pydot-3.0.4.tar.gz", hash = "sha256:3ce88b2558f3808b0376f22bfa6c263909e1c3981e2a7b629b65b451eee4a25d", size = 168167, upload-time = "2025-01-05T16:18:45.763Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/5f/1ebfd430df05c4f9e438dd3313c4456eab937d976f6ab8ce81a98f9fb381/pydot-3.0.4-py3-none-any.whl", hash = "sha256:bfa9c3fc0c44ba1d132adce131802d7df00429d1a79cc0346b0a5cd374dbe9c6", size = 35776 }, + { url = "https://files.pythonhosted.org/packages/b0/5f/1ebfd430df05c4f9e438dd3313c4456eab937d976f6ab8ce81a98f9fb381/pydot-3.0.4-py3-none-any.whl", hash = "sha256:bfa9c3fc0c44ba1d132adce131802d7df00429d1a79cc0346b0a5cd374dbe9c6", size = 35776, upload-time = "2025-01-05T16:18:42.836Z" }, ] [[package]] name = "pygments" version = "2.19.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631 } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217 }, + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, ] [[package]] @@ -1797,22 +1797,22 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/c6/a3124dee667a423f2c637cfd262a54d67d8ccf3e160f3c50f622a85b7723/pynacl-1.6.0.tar.gz", hash = "sha256:cb36deafe6e2bce3b286e5d1f3e1c246e0ccdb8808ddb4550bb2792f2df298f2", size = 3505641 } +sdist = { url = "https://files.pythonhosted.org/packages/06/c6/a3124dee667a423f2c637cfd262a54d67d8ccf3e160f3c50f622a85b7723/pynacl-1.6.0.tar.gz", hash = "sha256:cb36deafe6e2bce3b286e5d1f3e1c246e0ccdb8808ddb4550bb2792f2df298f2", size = 3505641, upload-time = "2025-09-10T23:39:22.308Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/37/87c72df19857c5b3b47ace6f211a26eb862ada495cc96daa372d96048fca/pynacl-1.6.0-cp38-abi3-macosx_10_10_universal2.whl", hash = "sha256:f4b3824920e206b4f52abd7de621ea7a44fd3cb5c8daceb7c3612345dfc54f2e", size = 382610 }, - { url = "https://files.pythonhosted.org/packages/0c/64/3ce958a5817fd3cc6df4ec14441c43fd9854405668d73babccf77f9597a3/pynacl-1.6.0-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:16dd347cdc8ae0b0f6187a2608c0af1c8b7ecbbe6b4a06bff8253c192f696990", size = 798744 }, - { url = "https://files.pythonhosted.org/packages/e4/8a/3f0dd297a0a33fa3739c255feebd0206bb1df0b44c52fbe2caf8e8bc4425/pynacl-1.6.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:16c60daceee88d04f8d41d0a4004a7ed8d9a5126b997efd2933e08e93a3bd850", size = 1397879 }, - { url = "https://files.pythonhosted.org/packages/41/94/028ff0434a69448f61348d50d2c147dda51aabdd4fbc93ec61343332174d/pynacl-1.6.0-cp38-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:25720bad35dfac34a2bcdd61d9e08d6bfc6041bebc7751d9c9f2446cf1e77d64", size = 833907 }, - { url = "https://files.pythonhosted.org/packages/52/bc/a5cff7f8c30d5f4c26a07dfb0bcda1176ab8b2de86dda3106c00a02ad787/pynacl-1.6.0-cp38-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8bfaa0a28a1ab718bad6239979a5a57a8d1506d0caf2fba17e524dbb409441cf", size = 1436649 }, - { url = "https://files.pythonhosted.org/packages/7a/20/c397be374fd5d84295046e398de4ba5f0722dc14450f65db76a43c121471/pynacl-1.6.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ef214b90556bb46a485b7da8258e59204c244b1b5b576fb71848819b468c44a7", size = 817142 }, - { url = "https://files.pythonhosted.org/packages/12/30/5efcef3406940cda75296c6d884090b8a9aad2dcc0c304daebb5ae99fb4a/pynacl-1.6.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:49c336dd80ea54780bcff6a03ee1a476be1612423010472e60af83452aa0f442", size = 1401794 }, - { url = "https://files.pythonhosted.org/packages/be/e1/a8fe1248cc17ccb03b676d80fa90763760a6d1247da434844ea388d0816c/pynacl-1.6.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:f3482abf0f9815e7246d461fab597aa179b7524628a4bc36f86a7dc418d2608d", size = 772161 }, - { url = "https://files.pythonhosted.org/packages/a3/76/8a62702fb657d6d9104ce13449db221a345665d05e6a3fdefb5a7cafd2ad/pynacl-1.6.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:140373378e34a1f6977e573033d1dd1de88d2a5d90ec6958c9485b2fd9f3eb90", size = 1370720 }, - { url = "https://files.pythonhosted.org/packages/6d/38/9e9e9b777a1c4c8204053733e1a0269672c0bd40852908c9ad6b6eaba82c/pynacl-1.6.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6b393bc5e5a0eb86bb85b533deb2d2c815666665f840a09e0aa3362bb6088736", size = 791252 }, - { url = "https://files.pythonhosted.org/packages/63/ef/d972ce3d92ae05c9091363cf185e8646933f91c376e97b8be79ea6e96c22/pynacl-1.6.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a25cfede801f01e54179b8ff9514bd7b5944da560b7040939732d1804d25419", size = 1362910 }, - { url = "https://files.pythonhosted.org/packages/35/2c/ee0b373a1861f66a7ca8bdb999331525615061320dd628527a50ba8e8a60/pynacl-1.6.0-cp38-abi3-win32.whl", hash = "sha256:dcdeb41c22ff3c66eef5e63049abf7639e0db4edee57ba70531fc1b6b133185d", size = 226461 }, - { url = "https://files.pythonhosted.org/packages/75/f7/41b6c0b9dd9970173b6acc026bab7b4c187e4e5beef2756d419ad65482da/pynacl-1.6.0-cp38-abi3-win_amd64.whl", hash = "sha256:cf831615cc16ba324240de79d925eacae8265b7691412ac6b24221db157f6bd1", size = 238802 }, - { url = "https://files.pythonhosted.org/packages/8e/0f/462326910c6172fa2c6ed07922b22ffc8e77432b3affffd9e18f444dbfbb/pynacl-1.6.0-cp38-abi3-win_arm64.whl", hash = "sha256:84709cea8f888e618c21ed9a0efdb1a59cc63141c403db8bf56c469b71ad56f2", size = 183846 }, + { url = "https://files.pythonhosted.org/packages/63/37/87c72df19857c5b3b47ace6f211a26eb862ada495cc96daa372d96048fca/pynacl-1.6.0-cp38-abi3-macosx_10_10_universal2.whl", hash = "sha256:f4b3824920e206b4f52abd7de621ea7a44fd3cb5c8daceb7c3612345dfc54f2e", size = 382610, upload-time = "2025-09-10T23:38:49.459Z" }, + { url = "https://files.pythonhosted.org/packages/0c/64/3ce958a5817fd3cc6df4ec14441c43fd9854405668d73babccf77f9597a3/pynacl-1.6.0-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:16dd347cdc8ae0b0f6187a2608c0af1c8b7ecbbe6b4a06bff8253c192f696990", size = 798744, upload-time = "2025-09-10T23:38:58.531Z" }, + { url = "https://files.pythonhosted.org/packages/e4/8a/3f0dd297a0a33fa3739c255feebd0206bb1df0b44c52fbe2caf8e8bc4425/pynacl-1.6.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:16c60daceee88d04f8d41d0a4004a7ed8d9a5126b997efd2933e08e93a3bd850", size = 1397879, upload-time = "2025-09-10T23:39:00.44Z" }, + { url = "https://files.pythonhosted.org/packages/41/94/028ff0434a69448f61348d50d2c147dda51aabdd4fbc93ec61343332174d/pynacl-1.6.0-cp38-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:25720bad35dfac34a2bcdd61d9e08d6bfc6041bebc7751d9c9f2446cf1e77d64", size = 833907, upload-time = "2025-09-10T23:38:50.936Z" }, + { url = "https://files.pythonhosted.org/packages/52/bc/a5cff7f8c30d5f4c26a07dfb0bcda1176ab8b2de86dda3106c00a02ad787/pynacl-1.6.0-cp38-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8bfaa0a28a1ab718bad6239979a5a57a8d1506d0caf2fba17e524dbb409441cf", size = 1436649, upload-time = "2025-09-10T23:38:52.783Z" }, + { url = "https://files.pythonhosted.org/packages/7a/20/c397be374fd5d84295046e398de4ba5f0722dc14450f65db76a43c121471/pynacl-1.6.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ef214b90556bb46a485b7da8258e59204c244b1b5b576fb71848819b468c44a7", size = 817142, upload-time = "2025-09-10T23:38:54.4Z" }, + { url = "https://files.pythonhosted.org/packages/12/30/5efcef3406940cda75296c6d884090b8a9aad2dcc0c304daebb5ae99fb4a/pynacl-1.6.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:49c336dd80ea54780bcff6a03ee1a476be1612423010472e60af83452aa0f442", size = 1401794, upload-time = "2025-09-10T23:38:56.614Z" }, + { url = "https://files.pythonhosted.org/packages/be/e1/a8fe1248cc17ccb03b676d80fa90763760a6d1247da434844ea388d0816c/pynacl-1.6.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:f3482abf0f9815e7246d461fab597aa179b7524628a4bc36f86a7dc418d2608d", size = 772161, upload-time = "2025-09-10T23:39:01.93Z" }, + { url = "https://files.pythonhosted.org/packages/a3/76/8a62702fb657d6d9104ce13449db221a345665d05e6a3fdefb5a7cafd2ad/pynacl-1.6.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:140373378e34a1f6977e573033d1dd1de88d2a5d90ec6958c9485b2fd9f3eb90", size = 1370720, upload-time = "2025-09-10T23:39:03.531Z" }, + { url = "https://files.pythonhosted.org/packages/6d/38/9e9e9b777a1c4c8204053733e1a0269672c0bd40852908c9ad6b6eaba82c/pynacl-1.6.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6b393bc5e5a0eb86bb85b533deb2d2c815666665f840a09e0aa3362bb6088736", size = 791252, upload-time = "2025-09-10T23:39:05.058Z" }, + { url = "https://files.pythonhosted.org/packages/63/ef/d972ce3d92ae05c9091363cf185e8646933f91c376e97b8be79ea6e96c22/pynacl-1.6.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a25cfede801f01e54179b8ff9514bd7b5944da560b7040939732d1804d25419", size = 1362910, upload-time = "2025-09-10T23:39:06.924Z" }, + { url = "https://files.pythonhosted.org/packages/35/2c/ee0b373a1861f66a7ca8bdb999331525615061320dd628527a50ba8e8a60/pynacl-1.6.0-cp38-abi3-win32.whl", hash = "sha256:dcdeb41c22ff3c66eef5e63049abf7639e0db4edee57ba70531fc1b6b133185d", size = 226461, upload-time = "2025-09-10T23:39:11.894Z" }, + { url = "https://files.pythonhosted.org/packages/75/f7/41b6c0b9dd9970173b6acc026bab7b4c187e4e5beef2756d419ad65482da/pynacl-1.6.0-cp38-abi3-win_amd64.whl", hash = "sha256:cf831615cc16ba324240de79d925eacae8265b7691412ac6b24221db157f6bd1", size = 238802, upload-time = "2025-09-10T23:39:08.966Z" }, + { url = "https://files.pythonhosted.org/packages/8e/0f/462326910c6172fa2c6ed07922b22ffc8e77432b3affffd9e18f444dbfbb/pynacl-1.6.0-cp38-abi3-win_arm64.whl", hash = "sha256:84709cea8f888e618c21ed9a0efdb1a59cc63141c403db8bf56c469b71ad56f2", size = 183846, upload-time = "2025-09-10T23:39:10.552Z" }, ] [[package]] @@ -1823,36 +1823,36 @@ dependencies = [ { name = "cryptography" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/8c/cd89ad05804f8e3c17dea8f178c3f40eeab5694c30e0c9f5bcd49f576fc3/pyopenssl-25.1.0.tar.gz", hash = "sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b", size = 179937 } +sdist = { url = "https://files.pythonhosted.org/packages/04/8c/cd89ad05804f8e3c17dea8f178c3f40eeab5694c30e0c9f5bcd49f576fc3/pyopenssl-25.1.0.tar.gz", hash = "sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b", size = 179937, upload-time = "2025-05-17T16:28:31.31Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/80/28/2659c02301b9500751f8d42f9a6632e1508aa5120de5e43042b8b30f8d5d/pyopenssl-25.1.0-py3-none-any.whl", hash = "sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab", size = 56771 }, + { url = "https://files.pythonhosted.org/packages/80/28/2659c02301b9500751f8d42f9a6632e1508aa5120de5e43042b8b30f8d5d/pyopenssl-25.1.0-py3-none-any.whl", hash = "sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab", size = 56771, upload-time = "2025-05-17T16:28:29.197Z" }, ] [[package]] name = "pyparsing" version = "3.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be", size = 1088608 } +sdist = { url = "https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be", size = 1088608, upload-time = "2025-03-25T05:01:28.114Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120 }, + { url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120, upload-time = "2025-03-25T05:01:24.908Z" }, ] [[package]] name = "pyproject-hooks" version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228 } +sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228, upload-time = "2024-09-29T09:24:13.293Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216 }, + { url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216, upload-time = "2024-09-29T09:24:11.978Z" }, ] [[package]] name = "pyreadline3" version = "3.5.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz", hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7", size = 99839 } +sdist = { url = "https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz", hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7", size = 99839, upload-time = "2024-09-19T02:40:10.062Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178 }, + { url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178, upload-time = "2024-09-19T02:40:08.598Z" }, ] [[package]] @@ -1866,9 +1866,9 @@ dependencies = [ { name = "pluggy" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618 } +sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750 }, + { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750, upload-time = "2025-09-04T14:34:20.226Z" }, ] [[package]] @@ -1878,18 +1878,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] [[package]] name = "python-statemachine" version = "2.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/45/91/4f05f3931d1e9b1df71b17dc08c43feddf2bed7dbf13f95323df2cc8e340/python_statemachine-2.5.0.tar.gz", hash = "sha256:ae88cd22e47930b92b983a2176e61d811e571b69897be2568ec812c2885fb93a", size = 403718 } +sdist = { url = "https://files.pythonhosted.org/packages/45/91/4f05f3931d1e9b1df71b17dc08c43feddf2bed7dbf13f95323df2cc8e340/python_statemachine-2.5.0.tar.gz", hash = "sha256:ae88cd22e47930b92b983a2176e61d811e571b69897be2568ec812c2885fb93a", size = 403718, upload-time = "2024-12-03T17:58:49.833Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2d/1c95ebe84df60d630f8e855d1df2c66368805444ac167e9b50f29eabe917/python_statemachine-2.5.0-py3-none-any.whl", hash = "sha256:0ed53846802c17037fcb2a92323f4bc0c833290fa9d17a3587c50886c1541e62", size = 50415 }, + { url = "https://files.pythonhosted.org/packages/bf/2d/1c95ebe84df60d630f8e855d1df2c66368805444ac167e9b50f29eabe917/python_statemachine-2.5.0-py3-none-any.whl", hash = "sha256:0ed53846802c17037fcb2a92323f4bc0c833290fa9d17a3587c50886c1541e62", size = 50415, upload-time = "2024-12-03T17:58:47.375Z" }, ] [[package]] @@ -1897,35 +1897,35 @@ name = "pywin32" version = "311" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543 }, - { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040 }, - { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102 }, + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, ] [[package]] name = "pyxdg" version = "0.28" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/25/7998cd2dec731acbd438fbf91bc619603fc5188de0a9a17699a781840452/pyxdg-0.28.tar.gz", hash = "sha256:3267bb3074e934df202af2ee0868575484108581e6f3cb006af1da35395e88b4", size = 77776 } +sdist = { url = "https://files.pythonhosted.org/packages/b0/25/7998cd2dec731acbd438fbf91bc619603fc5188de0a9a17699a781840452/pyxdg-0.28.tar.gz", hash = "sha256:3267bb3074e934df202af2ee0868575484108581e6f3cb006af1da35395e88b4", size = 77776, upload-time = "2022-06-05T11:35:01Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/8d/cf41b66a8110670e3ad03dab9b759704eeed07fa96e90fdc0357b2ba70e2/pyxdg-0.28-py2.py3-none-any.whl", hash = "sha256:bdaf595999a0178ecea4052b7f4195569c1ff4d344567bccdc12dfdf02d545ab", size = 49520 }, + { url = "https://files.pythonhosted.org/packages/e5/8d/cf41b66a8110670e3ad03dab9b759704eeed07fa96e90fdc0357b2ba70e2/pyxdg-0.28-py2.py3-none-any.whl", hash = "sha256:bdaf595999a0178ecea4052b7f4195569c1ff4d344567bccdc12dfdf02d545ab", size = 49520, upload-time = "2022-06-05T11:34:58.832Z" }, ] [[package]] name = "pyyaml" version = "6.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, - { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, - { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, - { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, - { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, - { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, - { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, - { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, - { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873, upload-time = "2024-08-06T20:32:25.131Z" }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302, upload-time = "2024-08-06T20:32:26.511Z" }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154, upload-time = "2024-08-06T20:32:28.363Z" }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223, upload-time = "2024-08-06T20:32:30.058Z" }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542, upload-time = "2024-08-06T20:32:31.881Z" }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164, upload-time = "2024-08-06T20:32:37.083Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611, upload-time = "2024-08-06T20:32:38.898Z" }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591, upload-time = "2024-08-06T20:32:40.241Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338, upload-time = "2024-08-06T20:32:41.93Z" }, ] [[package]] @@ -1935,18 +1935,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "implementation_name == 'pypy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750 } +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279 }, - { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645 }, - { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574 }, - { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995 }, - { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070 }, - { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121 }, - { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550 }, - { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184 }, - { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480 }, - { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993 }, + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, ] [[package]] @@ -1958,9 +1958,9 @@ dependencies = [ { name = "rpds-py" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744 } +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload-time = "2025-01-25T08:48:16.138Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775 }, + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload-time = "2025-01-25T08:48:14.241Z" }, ] [[package]] @@ -1973,9 +1973,9 @@ dependencies = [ { name = "idna" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258 } +sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258, upload-time = "2025-06-09T16:43:07.34Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847 }, + { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" }, ] [[package]] @@ -1986,9 +1986,9 @@ dependencies = [ { name = "decorator" }, { name = "py" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/72/75d0b85443fbc8d9f38d08d2b1b67cc184ce35280e4a3813cda2f445f3a4/retry-0.9.2.tar.gz", hash = "sha256:f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4", size = 6448 } +sdist = { url = "https://files.pythonhosted.org/packages/9d/72/75d0b85443fbc8d9f38d08d2b1b67cc184ce35280e4a3813cda2f445f3a4/retry-0.9.2.tar.gz", hash = "sha256:f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4", size = 6448, upload-time = "2016-05-11T13:58:51.541Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4b/0d/53aea75710af4528a25ed6837d71d117602b01946b307a3912cb3cfcbcba/retry-0.9.2-py2.py3-none-any.whl", hash = "sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606", size = 7986 }, + { url = "https://files.pythonhosted.org/packages/4b/0d/53aea75710af4528a25ed6837d71d117602b01946b307a3912cb3cfcbcba/retry-0.9.2-py2.py3-none-any.whl", hash = "sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606", size = 7986, upload-time = "2016-05-11T13:58:39.925Z" }, ] [[package]] @@ -1999,32 +1999,32 @@ dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/92/76/40f084cb7db51c9d1fa29a7120717892aeda9a7711f6225692c957a93535/rich-13.8.1.tar.gz", hash = "sha256:8260cda28e3db6bf04d2d1ef4dbc03ba80a824c88b0e7668a0f23126a424844a", size = 222080 } +sdist = { url = "https://files.pythonhosted.org/packages/92/76/40f084cb7db51c9d1fa29a7120717892aeda9a7711f6225692c957a93535/rich-13.8.1.tar.gz", hash = "sha256:8260cda28e3db6bf04d2d1ef4dbc03ba80a824c88b0e7668a0f23126a424844a", size = 222080, upload-time = "2024-09-10T12:52:44.779Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/11/dadb85e2bd6b1f1ae56669c3e1f0410797f9605d752d68fb47b77f525b31/rich-13.8.1-py3-none-any.whl", hash = "sha256:1760a3c0848469b97b558fc61c85233e3dafb69c7a071b4d60c38099d3cd4c06", size = 241608 }, + { url = "https://files.pythonhosted.org/packages/b0/11/dadb85e2bd6b1f1ae56669c3e1f0410797f9605d752d68fb47b77f525b31/rich-13.8.1-py3-none-any.whl", hash = "sha256:1760a3c0848469b97b558fc61c85233e3dafb69c7a071b4d60c38099d3cd4c06", size = 241608, upload-time = "2024-09-10T12:52:42.714Z" }, ] [[package]] name = "rpds-py" version = "0.27.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e9/dd/2c0cbe774744272b0ae725f44032c77bdcab6e8bcf544bffa3b6e70c8dba/rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8", size = 27479 } +sdist = { url = "https://files.pythonhosted.org/packages/e9/dd/2c0cbe774744272b0ae725f44032c77bdcab6e8bcf544bffa3b6e70c8dba/rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8", size = 27479, upload-time = "2025-08-27T12:16:36.024Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/fe/38de28dee5df58b8198c743fe2bea0c785c6d40941b9950bac4cdb71a014/rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90", size = 361887 }, - { url = "https://files.pythonhosted.org/packages/7c/9a/4b6c7eedc7dd90986bf0fab6ea2a091ec11c01b15f8ba0a14d3f80450468/rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5", size = 345795 }, - { url = "https://files.pythonhosted.org/packages/6f/0e/e650e1b81922847a09cca820237b0edee69416a01268b7754d506ade11ad/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e", size = 385121 }, - { url = "https://files.pythonhosted.org/packages/1b/ea/b306067a712988e2bff00dcc7c8f31d26c29b6d5931b461aa4b60a013e33/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881", size = 398976 }, - { url = "https://files.pythonhosted.org/packages/2c/0a/26dc43c8840cb8fe239fe12dbc8d8de40f2365e838f3d395835dde72f0e5/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec", size = 525953 }, - { url = "https://files.pythonhosted.org/packages/22/14/c85e8127b573aaf3a0cbd7fbb8c9c99e735a4a02180c84da2a463b766e9e/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb", size = 407915 }, - { url = "https://files.pythonhosted.org/packages/ed/7b/8f4fee9ba1fb5ec856eb22d725a4efa3deb47f769597c809e03578b0f9d9/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5", size = 386883 }, - { url = "https://files.pythonhosted.org/packages/86/47/28fa6d60f8b74fcdceba81b272f8d9836ac0340570f68f5df6b41838547b/rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a", size = 405699 }, - { url = "https://files.pythonhosted.org/packages/d0/fd/c5987b5e054548df56953a21fe2ebed51fc1ec7c8f24fd41c067b68c4a0a/rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444", size = 423713 }, - { url = "https://files.pythonhosted.org/packages/ac/ba/3c4978b54a73ed19a7d74531be37a8bcc542d917c770e14d372b8daea186/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a", size = 562324 }, - { url = "https://files.pythonhosted.org/packages/b5/6c/6943a91768fec16db09a42b08644b960cff540c66aab89b74be6d4a144ba/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1", size = 593646 }, - { url = "https://files.pythonhosted.org/packages/11/73/9d7a8f4be5f4396f011a6bb7a19fe26303a0dac9064462f5651ced2f572f/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998", size = 558137 }, - { url = "https://files.pythonhosted.org/packages/6e/96/6772cbfa0e2485bcceef8071de7821f81aeac8bb45fbfd5542a3e8108165/rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39", size = 221343 }, - { url = "https://files.pythonhosted.org/packages/67/b6/c82f0faa9af1c6a64669f73a17ee0eeef25aff30bb9a1c318509efe45d84/rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594", size = 232497 }, - { url = "https://files.pythonhosted.org/packages/e1/96/2817b44bd2ed11aebacc9251da03689d56109b9aba5e311297b6902136e2/rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502", size = 222790 }, + { url = "https://files.pythonhosted.org/packages/bd/fe/38de28dee5df58b8198c743fe2bea0c785c6d40941b9950bac4cdb71a014/rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90", size = 361887, upload-time = "2025-08-27T12:13:10.233Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/4b6c7eedc7dd90986bf0fab6ea2a091ec11c01b15f8ba0a14d3f80450468/rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5", size = 345795, upload-time = "2025-08-27T12:13:11.65Z" }, + { url = "https://files.pythonhosted.org/packages/6f/0e/e650e1b81922847a09cca820237b0edee69416a01268b7754d506ade11ad/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e", size = 385121, upload-time = "2025-08-27T12:13:13.008Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ea/b306067a712988e2bff00dcc7c8f31d26c29b6d5931b461aa4b60a013e33/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881", size = 398976, upload-time = "2025-08-27T12:13:14.368Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0a/26dc43c8840cb8fe239fe12dbc8d8de40f2365e838f3d395835dde72f0e5/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec", size = 525953, upload-time = "2025-08-27T12:13:15.774Z" }, + { url = "https://files.pythonhosted.org/packages/22/14/c85e8127b573aaf3a0cbd7fbb8c9c99e735a4a02180c84da2a463b766e9e/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb", size = 407915, upload-time = "2025-08-27T12:13:17.379Z" }, + { url = "https://files.pythonhosted.org/packages/ed/7b/8f4fee9ba1fb5ec856eb22d725a4efa3deb47f769597c809e03578b0f9d9/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5", size = 386883, upload-time = "2025-08-27T12:13:18.704Z" }, + { url = "https://files.pythonhosted.org/packages/86/47/28fa6d60f8b74fcdceba81b272f8d9836ac0340570f68f5df6b41838547b/rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a", size = 405699, upload-time = "2025-08-27T12:13:20.089Z" }, + { url = "https://files.pythonhosted.org/packages/d0/fd/c5987b5e054548df56953a21fe2ebed51fc1ec7c8f24fd41c067b68c4a0a/rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444", size = 423713, upload-time = "2025-08-27T12:13:21.436Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ba/3c4978b54a73ed19a7d74531be37a8bcc542d917c770e14d372b8daea186/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a", size = 562324, upload-time = "2025-08-27T12:13:22.789Z" }, + { url = "https://files.pythonhosted.org/packages/b5/6c/6943a91768fec16db09a42b08644b960cff540c66aab89b74be6d4a144ba/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1", size = 593646, upload-time = "2025-08-27T12:13:24.122Z" }, + { url = "https://files.pythonhosted.org/packages/11/73/9d7a8f4be5f4396f011a6bb7a19fe26303a0dac9064462f5651ced2f572f/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998", size = 558137, upload-time = "2025-08-27T12:13:25.557Z" }, + { url = "https://files.pythonhosted.org/packages/6e/96/6772cbfa0e2485bcceef8071de7821f81aeac8bb45fbfd5542a3e8108165/rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39", size = 221343, upload-time = "2025-08-27T12:13:26.967Z" }, + { url = "https://files.pythonhosted.org/packages/67/b6/c82f0faa9af1c6a64669f73a17ee0eeef25aff30bb9a1c318509efe45d84/rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594", size = 232497, upload-time = "2025-08-27T12:13:28.326Z" }, + { url = "https://files.pythonhosted.org/packages/e1/96/2817b44bd2ed11aebacc9251da03689d56109b9aba5e311297b6902136e2/rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502", size = 222790, upload-time = "2025-08-27T12:13:29.71Z" }, ] [[package]] @@ -2034,9 +2034,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/62/74/8d69dcb7a9efe8baa2046891735e5dfe433ad558ae23d9e3c14c633d1d58/s3transfer-0.14.0.tar.gz", hash = "sha256:eff12264e7c8b4985074ccce27a3b38a485bb7f7422cc8046fee9be4983e4125", size = 151547 } +sdist = { url = "https://files.pythonhosted.org/packages/62/74/8d69dcb7a9efe8baa2046891735e5dfe433ad558ae23d9e3c14c633d1d58/s3transfer-0.14.0.tar.gz", hash = "sha256:eff12264e7c8b4985074ccce27a3b38a485bb7f7422cc8046fee9be4983e4125", size = 151547, upload-time = "2025-09-09T19:23:31.089Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/f0/ae7ca09223a81a1d890b2557186ea015f6e0502e9b8cb8e1813f1d8cfa4e/s3transfer-0.14.0-py3-none-any.whl", hash = "sha256:ea3b790c7077558ed1f02a3072fb3cb992bbbd253392f4b6e9e8976941c7d456", size = 85712 }, + { url = "https://files.pythonhosted.org/packages/48/f0/ae7ca09223a81a1d890b2557186ea015f6e0502e9b8cb8e1813f1d8cfa4e/s3transfer-0.14.0-py3-none-any.whl", hash = "sha256:ea3b790c7077558ed1f02a3072fb3cb992bbbd253392f4b6e9e8976941c7d456", size = 85712, upload-time = "2025-09-09T19:23:30.041Z" }, ] [[package]] @@ -2048,9 +2048,9 @@ dependencies = [ { name = "more-itertools" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bc/7c/703893e7a8751318517a3dd8c0c060b2c30ffa33f4ab5dd6a4ed483f7967/scalecodec-1.2.11.tar.gz", hash = "sha256:99a2cdbfccdcaf22bd86b86da55a730a2855514ad2309faef4a4a93ac6cbeb8d", size = 150260 } +sdist = { url = "https://files.pythonhosted.org/packages/bc/7c/703893e7a8751318517a3dd8c0c060b2c30ffa33f4ab5dd6a4ed483f7967/scalecodec-1.2.11.tar.gz", hash = "sha256:99a2cdbfccdcaf22bd86b86da55a730a2855514ad2309faef4a4a93ac6cbeb8d", size = 150260, upload-time = "2024-07-05T11:48:46.146Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/60/2a903fa9ed3dfc842240da22969a25b16ea213ed3ee25b7ba8ae1cba20c7/scalecodec-1.2.11-py3-none-any.whl", hash = "sha256:d15c94965f617caa25096f83a45f5f73031d05e6ee08d6039969f0a64fc35de1", size = 99164 }, + { url = "https://files.pythonhosted.org/packages/bb/60/2a903fa9ed3dfc842240da22969a25b16ea213ed3ee25b7ba8ae1cba20c7/scalecodec-1.2.11-py3-none-any.whl", hash = "sha256:d15c94965f617caa25096f83a45f5f73031d05e6ee08d6039969f0a64fc35de1", size = 99164, upload-time = "2024-07-05T11:48:42.777Z" }, ] [[package]] @@ -2060,18 +2060,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4c/3b/546a6f0bfe791bbb7f8d591613454d15097e53f906308ec6f7c1ce588e8e/scipy-1.16.2.tar.gz", hash = "sha256:af029b153d243a80afb6eabe40b0a07f8e35c9adc269c019f364ad747f826a6b", size = 30580599 } +sdist = { url = "https://files.pythonhosted.org/packages/4c/3b/546a6f0bfe791bbb7f8d591613454d15097e53f906308ec6f7c1ce588e8e/scipy-1.16.2.tar.gz", hash = "sha256:af029b153d243a80afb6eabe40b0a07f8e35c9adc269c019f364ad747f826a6b", size = 30580599, upload-time = "2025-09-11T17:48:08.271Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/8d/6396e00db1282279a4ddd507c5f5e11f606812b608ee58517ce8abbf883f/scipy-1.16.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:89d6c100fa5c48472047632e06f0876b3c4931aac1f4291afc81a3644316bb0d", size = 36646259 }, - { url = "https://files.pythonhosted.org/packages/3b/93/ea9edd7e193fceb8eef149804491890bde73fb169c896b61aa3e2d1e4e77/scipy-1.16.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ca748936cd579d3f01928b30a17dc474550b01272d8046e3e1ee593f23620371", size = 28888976 }, - { url = "https://files.pythonhosted.org/packages/91/4d/281fddc3d80fd738ba86fd3aed9202331180b01e2c78eaae0642f22f7e83/scipy-1.16.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:fac4f8ce2ddb40e2e3d0f7ec36d2a1e7f92559a2471e59aec37bd8d9de01fec0", size = 20879905 }, - { url = "https://files.pythonhosted.org/packages/69/40/b33b74c84606fd301b2915f0062e45733c6ff5708d121dd0deaa8871e2d0/scipy-1.16.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:033570f1dcefd79547a88e18bccacff025c8c647a330381064f561d43b821232", size = 23553066 }, - { url = "https://files.pythonhosted.org/packages/55/a7/22c739e2f21a42cc8f16bc76b47cff4ed54fbe0962832c589591c2abec34/scipy-1.16.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ea3421209bf00c8a5ef2227de496601087d8f638a2363ee09af059bd70976dc1", size = 33336407 }, - { url = "https://files.pythonhosted.org/packages/53/11/a0160990b82999b45874dc60c0c183d3a3a969a563fffc476d5a9995c407/scipy-1.16.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f66bd07ba6f84cd4a380b41d1bf3c59ea488b590a2ff96744845163309ee8e2f", size = 35673281 }, - { url = "https://files.pythonhosted.org/packages/96/53/7ef48a4cfcf243c3d0f1643f5887c81f29fdf76911c4e49331828e19fc0a/scipy-1.16.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e9feab931bd2aea4a23388c962df6468af3d808ddf2d40f94a81c5dc38f32ef", size = 36004222 }, - { url = "https://files.pythonhosted.org/packages/49/7f/71a69e0afd460049d41c65c630c919c537815277dfea214031005f474d78/scipy-1.16.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03dfc75e52f72cf23ec2ced468645321407faad8f0fe7b1f5b49264adbc29cb1", size = 38664586 }, - { url = "https://files.pythonhosted.org/packages/34/95/20e02ca66fb495a95fba0642fd48e0c390d0ece9b9b14c6e931a60a12dea/scipy-1.16.2-cp312-cp312-win_amd64.whl", hash = "sha256:0ce54e07bbb394b417457409a64fd015be623f36e330ac49306433ffe04bc97e", size = 38550641 }, - { url = "https://files.pythonhosted.org/packages/92/ad/13646b9beb0a95528ca46d52b7babafbe115017814a611f2065ee4e61d20/scipy-1.16.2-cp312-cp312-win_arm64.whl", hash = "sha256:2a8ffaa4ac0df81a0b94577b18ee079f13fecdb924df3328fc44a7dc5ac46851", size = 25456070 }, + { url = "https://files.pythonhosted.org/packages/b7/8d/6396e00db1282279a4ddd507c5f5e11f606812b608ee58517ce8abbf883f/scipy-1.16.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:89d6c100fa5c48472047632e06f0876b3c4931aac1f4291afc81a3644316bb0d", size = 36646259, upload-time = "2025-09-11T17:40:39.329Z" }, + { url = "https://files.pythonhosted.org/packages/3b/93/ea9edd7e193fceb8eef149804491890bde73fb169c896b61aa3e2d1e4e77/scipy-1.16.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ca748936cd579d3f01928b30a17dc474550b01272d8046e3e1ee593f23620371", size = 28888976, upload-time = "2025-09-11T17:40:46.82Z" }, + { url = "https://files.pythonhosted.org/packages/91/4d/281fddc3d80fd738ba86fd3aed9202331180b01e2c78eaae0642f22f7e83/scipy-1.16.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:fac4f8ce2ddb40e2e3d0f7ec36d2a1e7f92559a2471e59aec37bd8d9de01fec0", size = 20879905, upload-time = "2025-09-11T17:40:52.545Z" }, + { url = "https://files.pythonhosted.org/packages/69/40/b33b74c84606fd301b2915f0062e45733c6ff5708d121dd0deaa8871e2d0/scipy-1.16.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:033570f1dcefd79547a88e18bccacff025c8c647a330381064f561d43b821232", size = 23553066, upload-time = "2025-09-11T17:40:59.014Z" }, + { url = "https://files.pythonhosted.org/packages/55/a7/22c739e2f21a42cc8f16bc76b47cff4ed54fbe0962832c589591c2abec34/scipy-1.16.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ea3421209bf00c8a5ef2227de496601087d8f638a2363ee09af059bd70976dc1", size = 33336407, upload-time = "2025-09-11T17:41:06.796Z" }, + { url = "https://files.pythonhosted.org/packages/53/11/a0160990b82999b45874dc60c0c183d3a3a969a563fffc476d5a9995c407/scipy-1.16.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f66bd07ba6f84cd4a380b41d1bf3c59ea488b590a2ff96744845163309ee8e2f", size = 35673281, upload-time = "2025-09-11T17:41:15.055Z" }, + { url = "https://files.pythonhosted.org/packages/96/53/7ef48a4cfcf243c3d0f1643f5887c81f29fdf76911c4e49331828e19fc0a/scipy-1.16.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e9feab931bd2aea4a23388c962df6468af3d808ddf2d40f94a81c5dc38f32ef", size = 36004222, upload-time = "2025-09-11T17:41:23.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7f/71a69e0afd460049d41c65c630c919c537815277dfea214031005f474d78/scipy-1.16.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03dfc75e52f72cf23ec2ced468645321407faad8f0fe7b1f5b49264adbc29cb1", size = 38664586, upload-time = "2025-09-11T17:41:31.021Z" }, + { url = "https://files.pythonhosted.org/packages/34/95/20e02ca66fb495a95fba0642fd48e0c390d0ece9b9b14c6e931a60a12dea/scipy-1.16.2-cp312-cp312-win_amd64.whl", hash = "sha256:0ce54e07bbb394b417457409a64fd015be623f36e330ac49306433ffe04bc97e", size = 38550641, upload-time = "2025-09-11T17:41:36.61Z" }, + { url = "https://files.pythonhosted.org/packages/92/ad/13646b9beb0a95528ca46d52b7babafbe115017814a611f2065ee4e61d20/scipy-1.16.2-cp312-cp312-win_arm64.whl", hash = "sha256:2a8ffaa4ac0df81a0b94577b18ee079f13fecdb924df3328fc44a7dc5ac46851", size = 25456070, upload-time = "2025-09-11T17:41:41.3Z" }, ] [[package]] @@ -2082,45 +2082,45 @@ dependencies = [ { name = "certifi" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/78/be/ffc232c32d0be18f8e4eff7a22dffc1f1fef2894703d64cc281a80e75da6/sentry_sdk-2.37.1.tar.gz", hash = "sha256:531751da91aa62a909b42a7be155b41f6bb0de9df6ae98441d23b95de2f98475", size = 346235 } +sdist = { url = "https://files.pythonhosted.org/packages/78/be/ffc232c32d0be18f8e4eff7a22dffc1f1fef2894703d64cc281a80e75da6/sentry_sdk-2.37.1.tar.gz", hash = "sha256:531751da91aa62a909b42a7be155b41f6bb0de9df6ae98441d23b95de2f98475", size = 346235, upload-time = "2025-09-09T13:48:27.137Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/c3/cba447ab531331d165d9003c04473be944a308ad916ca2345b5ef1969ed9/sentry_sdk-2.37.1-py2.py3-none-any.whl", hash = "sha256:baaaea6608ed3a639766a69ded06b254b106d32ad9d180bdbe58f3db9364592b", size = 368307 }, + { url = "https://files.pythonhosted.org/packages/f3/c3/cba447ab531331d165d9003c04473be944a308ad916ca2345b5ef1969ed9/sentry_sdk-2.37.1-py2.py3-none-any.whl", hash = "sha256:baaaea6608ed3a639766a69ded06b254b106d32ad9d180bdbe58f3db9364592b", size = 368307, upload-time = "2025-09-09T13:48:25.271Z" }, ] [[package]] name = "setuptools" version = "70.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/60/5db2249526c9b453c5bb8b9f6965fcab0ddb7f40ad734420b3b421f7da44/setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0", size = 2265182 } +sdist = { url = "https://files.pythonhosted.org/packages/aa/60/5db2249526c9b453c5bb8b9f6965fcab0ddb7f40ad734420b3b421f7da44/setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0", size = 2265182, upload-time = "2024-05-21T10:28:18.891Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/88/70c5767a0e43eb4451c2200f07d042a4bcd7639276003a9c54a68cfcc1f8/setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4", size = 863432 }, + { url = "https://files.pythonhosted.org/packages/de/88/70c5767a0e43eb4451c2200f07d042a4bcd7639276003a9c54a68cfcc1f8/setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4", size = 863432, upload-time = "2024-05-21T10:28:12.781Z" }, ] [[package]] name = "six" version = "1.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] [[package]] name = "smmap" version = "5.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329 } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303 }, + { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, ] [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] [[package]] @@ -2133,9 +2133,9 @@ dependencies = [ { name = "executing" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/67/70/8479d19ec0441279e773521928ad7cad91901c1a3eaf1fc3a0eb92e3cf6e/snoop-0.6.0.tar.gz", hash = "sha256:c615eddf84d8907f893dec7fde38768aa4b1d88d92d63055b6cfc07e5cde37ec", size = 95968 } +sdist = { url = "https://files.pythonhosted.org/packages/67/70/8479d19ec0441279e773521928ad7cad91901c1a3eaf1fc3a0eb92e3cf6e/snoop-0.6.0.tar.gz", hash = "sha256:c615eddf84d8907f893dec7fde38768aa4b1d88d92d63055b6cfc07e5cde37ec", size = 95968, upload-time = "2024-10-06T20:31:03.935Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/93/84a16940c44f6ec62cf334f25aed3128a514dffc361397eee09421a1c7f2/snoop-0.6.0-py3-none-any.whl", hash = "sha256:f5ea9060e65594bf404e6841086b4a964cc27bc30569109c91a470f948b0f729", size = 27461 }, + { url = "https://files.pythonhosted.org/packages/a5/93/84a16940c44f6ec62cf334f25aed3128a514dffc361397eee09421a1c7f2/snoop-0.6.0-py3-none-any.whl", hash = "sha256:f5ea9060e65594bf404e6841086b4a964cc27bc30569109c91a470f948b0f729", size = 27461, upload-time = "2024-10-06T20:31:02.199Z" }, ] [[package]] @@ -2147,9 +2147,9 @@ dependencies = [ { name = "executing" }, { name = "pure-eval" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707 } +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521 }, + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, ] [[package]] @@ -2159,9 +2159,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/61/b5/6bceb93ff20bd7ca36e6f7c540581abb18f53130fabb30ba526e26fd819b/starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823", size = 2843736 } +sdist = { url = "https://files.pythonhosted.org/packages/61/b5/6bceb93ff20bd7ca36e6f7c540581abb18f53130fabb30ba526e26fd819b/starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823", size = 2843736, upload-time = "2024-03-05T16:16:54.267Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/18/31fa32ed6c68ba66220204ef0be798c349d0a20c1901f9d4a794e08c76d8/starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee", size = 71908 }, + { url = "https://files.pythonhosted.org/packages/fd/18/31fa32ed6c68ba66220204ef0be798c349d0a20c1901f9d4a794e08c76d8/starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee", size = 71908, upload-time = "2024-03-05T16:16:50.957Z" }, ] [[package]] @@ -2290,9 +2290,9 @@ dependencies = [ { name = "websocket-client" }, { name = "xxhash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7a/44/825433c906bdb69ab66fd3967c11fcfbcd953241e9d6257fd6a21c4cdc76/substrate-interface-1.7.11.tar.gz", hash = "sha256:4caa5eacb9996edbe76ad12249521b3542bbd8d9d69b96734087201db1fef8f6", size = 79221 } +sdist = { url = "https://files.pythonhosted.org/packages/7a/44/825433c906bdb69ab66fd3967c11fcfbcd953241e9d6257fd6a21c4cdc76/substrate-interface-1.7.11.tar.gz", hash = "sha256:4caa5eacb9996edbe76ad12249521b3542bbd8d9d69b96734087201db1fef8f6", size = 79221, upload-time = "2024-10-07T20:37:11.986Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/56/e1/37344b7acd260cbfed13563dcbab391c7c4b0c9eca5ec59aba138c5dca9e/substrate_interface-1.7.11-py3-none-any.whl", hash = "sha256:ce19bc97481769238ed23c752db985a3058637918693f2db6aeed2fab3756075", size = 60273 }, + { url = "https://files.pythonhosted.org/packages/56/e1/37344b7acd260cbfed13563dcbab391c7c4b0c9eca5ec59aba138c5dca9e/substrate_interface-1.7.11-py3-none-any.whl", hash = "sha256:ce19bc97481769238ed23c752db985a3058637918693f2db6aeed2fab3756075", size = 60273, upload-time = "2024-10-07T20:37:10.123Z" }, ] [[package]] @@ -2302,9 +2302,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mpmath" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921 } +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353 }, + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, ] [[package]] @@ -2321,64 +2321,64 @@ dependencies = [ { name = "tomli" }, { name = "tomli-w" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c0/03/71dc08afb67a98f75f338cbe06cafa4d4266a80b5f3192fae73289a38412/tach-0.29.0.tar.gz", hash = "sha256:0b27b9265eee34f396515a2e918fa783d3d02e69edfb6ea1dfd1843d49021429", size = 519881 } +sdist = { url = "https://files.pythonhosted.org/packages/c0/03/71dc08afb67a98f75f338cbe06cafa4d4266a80b5f3192fae73289a38412/tach-0.29.0.tar.gz", hash = "sha256:0b27b9265eee34f396515a2e918fa783d3d02e69edfb6ea1dfd1843d49021429", size = 519881, upload-time = "2025-04-18T23:36:03.836Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/76/1dab7edd475c5a4992caa5c5f62db573c4ba8b8f66908f180063177236e4/tach-0.29.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:517f33d18d381326a775d101650e576c6922db53b2c336192db7db88b9a3521d", size = 3718526 }, - { url = "https://files.pythonhosted.org/packages/75/3c/163f18f282dd4d17db3b21f9098f30d94a8bab889e81894b5deeb4648456/tach-0.29.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:d984f54bebba0e4c981d2a08c3e4cdf76c3b5f3126e2f593a0faaed9d218552a", size = 3573882 }, - { url = "https://files.pythonhosted.org/packages/1d/f9/30d821984b85ba8a1f60bd00f9025d61e3a69ecbc496fd938df119ce994b/tach-0.29.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42e0bbecf5e8ea23791b62e54e7c8065376e8a7f642a232dcef8bcae0149944e", size = 3882839 }, - { url = "https://files.pythonhosted.org/packages/ef/56/859a9911674e052c2aa3d4369a177ab5eb5eb28d5429244b6cbfe0333df1/tach-0.29.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3b40c59e9a1d0b28fc6176736876c4cfa2d01114870d539e9989dfb7c6638139", size = 3821381 }, - { url = "https://files.pythonhosted.org/packages/64/67/60b50347aca9ef17f934eb72fe51691062d2acc9142742decc9427a6527a/tach-0.29.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52903e54683b0aa26bd4ef0c9ed68b34480a3fbf83fb7b32e9d6a9908e2761e1", size = 4223977 }, - { url = "https://files.pythonhosted.org/packages/4e/f9/99dcef880d9bcd4e707dc92a6ed3058eb61fd6e091aa55623c4699cbf04a/tach-0.29.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:810e5aaa2e936c8417bb91672708886aadaf8ab116763ae418c6b1b961422bba", size = 4153158 }, - { url = "https://files.pythonhosted.org/packages/04/33/714a981282178f93443c66e6f225f49981c4275cb9dd522c6d842c4931fb/tach-0.29.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7b8c82943f4ed72612282ff35c155fcca7222b9e9cd2864763b67497729f0c3", size = 4489657 }, - { url = "https://files.pythonhosted.org/packages/61/11/58b54ba5a1ec9d7bddcf60016b2bddb9676cf2c201b65c4cfe29876681ce/tach-0.29.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58443cbd3f5d19d6b98cd3508593eae186c91f0e059c8bcf1348e3849095b622", size = 4015722 }, - { url = "https://files.pythonhosted.org/packages/68/73/328d8c6b3a84e91a3295eb173df1c702f992af1963f069549c15db07ef37/tach-0.29.0-cp37-abi3-win32.whl", hash = "sha256:d65408ec003ec16bdab4ef61990d7cfc0551672d145a78f80a4aef71e8714b9b", size = 3139905 }, - { url = "https://files.pythonhosted.org/packages/6e/cf/6ddbcd4d32204698868e20afd8dcbd88dac1160d5fdf45df921852d27d29/tach-0.29.0-cp37-abi3-win_amd64.whl", hash = "sha256:2e15ceb80fc25435d18e01d10029fec15a54fb53bf6b430d53c4ecb53859a0ff", size = 3378188 }, + { url = "https://files.pythonhosted.org/packages/c2/76/1dab7edd475c5a4992caa5c5f62db573c4ba8b8f66908f180063177236e4/tach-0.29.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:517f33d18d381326a775d101650e576c6922db53b2c336192db7db88b9a3521d", size = 3718526, upload-time = "2025-04-18T23:36:01.982Z" }, + { url = "https://files.pythonhosted.org/packages/75/3c/163f18f282dd4d17db3b21f9098f30d94a8bab889e81894b5deeb4648456/tach-0.29.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:d984f54bebba0e4c981d2a08c3e4cdf76c3b5f3126e2f593a0faaed9d218552a", size = 3573882, upload-time = "2025-04-18T23:36:00.142Z" }, + { url = "https://files.pythonhosted.org/packages/1d/f9/30d821984b85ba8a1f60bd00f9025d61e3a69ecbc496fd938df119ce994b/tach-0.29.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42e0bbecf5e8ea23791b62e54e7c8065376e8a7f642a232dcef8bcae0149944e", size = 3882839, upload-time = "2025-04-18T23:35:49.097Z" }, + { url = "https://files.pythonhosted.org/packages/ef/56/859a9911674e052c2aa3d4369a177ab5eb5eb28d5429244b6cbfe0333df1/tach-0.29.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3b40c59e9a1d0b28fc6176736876c4cfa2d01114870d539e9989dfb7c6638139", size = 3821381, upload-time = "2025-04-18T23:35:50.908Z" }, + { url = "https://files.pythonhosted.org/packages/64/67/60b50347aca9ef17f934eb72fe51691062d2acc9142742decc9427a6527a/tach-0.29.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52903e54683b0aa26bd4ef0c9ed68b34480a3fbf83fb7b32e9d6a9908e2761e1", size = 4223977, upload-time = "2025-04-18T23:35:56.519Z" }, + { url = "https://files.pythonhosted.org/packages/4e/f9/99dcef880d9bcd4e707dc92a6ed3058eb61fd6e091aa55623c4699cbf04a/tach-0.29.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:810e5aaa2e936c8417bb91672708886aadaf8ab116763ae418c6b1b961422bba", size = 4153158, upload-time = "2025-04-18T23:35:53.225Z" }, + { url = "https://files.pythonhosted.org/packages/04/33/714a981282178f93443c66e6f225f49981c4275cb9dd522c6d842c4931fb/tach-0.29.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7b8c82943f4ed72612282ff35c155fcca7222b9e9cd2864763b67497729f0c3", size = 4489657, upload-time = "2025-04-18T23:35:54.685Z" }, + { url = "https://files.pythonhosted.org/packages/61/11/58b54ba5a1ec9d7bddcf60016b2bddb9676cf2c201b65c4cfe29876681ce/tach-0.29.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58443cbd3f5d19d6b98cd3508593eae186c91f0e059c8bcf1348e3849095b622", size = 4015722, upload-time = "2025-04-18T23:35:58.314Z" }, + { url = "https://files.pythonhosted.org/packages/68/73/328d8c6b3a84e91a3295eb173df1c702f992af1963f069549c15db07ef37/tach-0.29.0-cp37-abi3-win32.whl", hash = "sha256:d65408ec003ec16bdab4ef61990d7cfc0551672d145a78f80a4aef71e8714b9b", size = 3139905, upload-time = "2025-04-18T23:36:07.24Z" }, + { url = "https://files.pythonhosted.org/packages/6e/cf/6ddbcd4d32204698868e20afd8dcbd88dac1160d5fdf45df921852d27d29/tach-0.29.0-cp37-abi3-win_amd64.whl", hash = "sha256:2e15ceb80fc25435d18e01d10029fec15a54fb53bf6b430d53c4ecb53859a0ff", size = 3378188, upload-time = "2025-04-18T23:36:05.388Z" }, ] [[package]] name = "toml" version = "0.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b9/19/5cbd78eac8b1783671c40e34bb0fa83133a06d340a38b55c645076d40094/toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c", size = 16719 } +sdist = { url = "https://files.pythonhosted.org/packages/b9/19/5cbd78eac8b1783671c40e34bb0fa83133a06d340a38b55c645076d40094/toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c", size = 16719, upload-time = "2018-10-04T02:36:43.524Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/12/ced7105d2de62fa7c8fb5fce92cc4ce66b57c95fb875e9318dba7f8c5db0/toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e", size = 25796 }, + { url = "https://files.pythonhosted.org/packages/a2/12/ced7105d2de62fa7c8fb5fce92cc4ce66b57c95fb875e9318dba7f8c5db0/toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e", size = 25796, upload-time = "2018-10-04T02:36:40.681Z" }, ] [[package]] name = "tomli" version = "2.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175 } +sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175, upload-time = "2024-11-27T22:38:36.873Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 }, - { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 }, - { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 }, - { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349 }, - { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159 }, - { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 }, - { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 }, - { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 }, - { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875 }, - { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418 }, - { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, + { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762, upload-time = "2024-11-27T22:38:07.731Z" }, + { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453, upload-time = "2024-11-27T22:38:09.384Z" }, + { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486, upload-time = "2024-11-27T22:38:10.329Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349, upload-time = "2024-11-27T22:38:11.443Z" }, + { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159, upload-time = "2024-11-27T22:38:13.099Z" }, + { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243, upload-time = "2024-11-27T22:38:14.766Z" }, + { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645, upload-time = "2024-11-27T22:38:15.843Z" }, + { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584, upload-time = "2024-11-27T22:38:17.645Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875, upload-time = "2024-11-27T22:38:19.159Z" }, + { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418, upload-time = "2024-11-27T22:38:20.064Z" }, + { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257, upload-time = "2024-11-27T22:38:35.385Z" }, ] [[package]] name = "tomli-w" version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/19/75/241269d1da26b624c0d5e110e8149093c759b7a286138f4efd61a60e75fe/tomli_w-1.2.0.tar.gz", hash = "sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021", size = 7184 } +sdist = { url = "https://files.pythonhosted.org/packages/19/75/241269d1da26b624c0d5e110e8149093c759b7a286138f4efd61a60e75fe/tomli_w-1.2.0.tar.gz", hash = "sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021", size = 7184, upload-time = "2025-01-15T12:07:24.262Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl", hash = "sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90", size = 6675 }, + { url = "https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl", hash = "sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90", size = 6675, upload-time = "2025-01-15T12:07:22.074Z" }, ] [[package]] name = "toolz" version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/0b/d80dfa675bf592f636d1ea0b835eab4ec8df6e9415d8cfd766df54456123/toolz-1.0.0.tar.gz", hash = "sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02", size = 66790 } +sdist = { url = "https://files.pythonhosted.org/packages/8a/0b/d80dfa675bf592f636d1ea0b835eab4ec8df6e9415d8cfd766df54456123/toolz-1.0.0.tar.gz", hash = "sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02", size = 66790, upload-time = "2024-10-04T16:17:04.001Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/03/98/eb27cc78ad3af8e302c9d8ff4977f5026676e130d28dd7578132a457170c/toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236", size = 56383 }, + { url = "https://files.pythonhosted.org/packages/03/98/eb27cc78ad3af8e302c9d8ff4977f5026676e130d28dd7578132a457170c/toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236", size = 56383, upload-time = "2024-10-04T16:17:01.533Z" }, ] [[package]] @@ -2429,19 +2429,19 @@ wheels = [ name = "tornado" version = "6.5.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/09/ce/1eb500eae19f4648281bb2186927bb062d2438c2e5093d1360391afd2f90/tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0", size = 510821 } +sdist = { url = "https://files.pythonhosted.org/packages/09/ce/1eb500eae19f4648281bb2186927bb062d2438c2e5093d1360391afd2f90/tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0", size = 510821, upload-time = "2025-08-08T18:27:00.78Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/48/6a7529df2c9cc12efd2e8f5dd219516184d703b34c06786809670df5b3bd/tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6", size = 442563 }, - { url = "https://files.pythonhosted.org/packages/f2/b5/9b575a0ed3e50b00c40b08cbce82eb618229091d09f6d14bce80fc01cb0b/tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef", size = 440729 }, - { url = "https://files.pythonhosted.org/packages/1b/4e/619174f52b120efcf23633c817fd3fed867c30bff785e2cd5a53a70e483c/tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e", size = 444295 }, - { url = "https://files.pythonhosted.org/packages/95/fa/87b41709552bbd393c85dd18e4e3499dcd8983f66e7972926db8d96aa065/tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882", size = 443644 }, - { url = "https://files.pythonhosted.org/packages/f9/41/fb15f06e33d7430ca89420283a8762a4e6b8025b800ea51796ab5e6d9559/tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108", size = 443878 }, - { url = "https://files.pythonhosted.org/packages/11/92/fe6d57da897776ad2e01e279170ea8ae726755b045fe5ac73b75357a5a3f/tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c", size = 444549 }, - { url = "https://files.pythonhosted.org/packages/9b/02/c8f4f6c9204526daf3d760f4aa555a7a33ad0e60843eac025ccfd6ff4a93/tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4", size = 443973 }, - { url = "https://files.pythonhosted.org/packages/ae/2d/f5f5707b655ce2317190183868cd0f6822a1121b4baeae509ceb9590d0bd/tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04", size = 443954 }, - { url = "https://files.pythonhosted.org/packages/e8/59/593bd0f40f7355806bf6573b47b8c22f8e1374c9b6fd03114bd6b7a3dcfd/tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0", size = 445023 }, - { url = "https://files.pythonhosted.org/packages/c7/2a/f609b420c2f564a748a2d80ebfb2ee02a73ca80223af712fca591386cafb/tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f", size = 445427 }, - { url = "https://files.pythonhosted.org/packages/5e/4f/e1f65e8f8c76d73658b33d33b81eed4322fb5085350e4328d5c956f0c8f9/tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af", size = 444456 }, + { url = "https://files.pythonhosted.org/packages/f6/48/6a7529df2c9cc12efd2e8f5dd219516184d703b34c06786809670df5b3bd/tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6", size = 442563, upload-time = "2025-08-08T18:26:42.945Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b5/9b575a0ed3e50b00c40b08cbce82eb618229091d09f6d14bce80fc01cb0b/tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef", size = 440729, upload-time = "2025-08-08T18:26:44.473Z" }, + { url = "https://files.pythonhosted.org/packages/1b/4e/619174f52b120efcf23633c817fd3fed867c30bff785e2cd5a53a70e483c/tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e", size = 444295, upload-time = "2025-08-08T18:26:46.021Z" }, + { url = "https://files.pythonhosted.org/packages/95/fa/87b41709552bbd393c85dd18e4e3499dcd8983f66e7972926db8d96aa065/tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882", size = 443644, upload-time = "2025-08-08T18:26:47.625Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/fb15f06e33d7430ca89420283a8762a4e6b8025b800ea51796ab5e6d9559/tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108", size = 443878, upload-time = "2025-08-08T18:26:50.599Z" }, + { url = "https://files.pythonhosted.org/packages/11/92/fe6d57da897776ad2e01e279170ea8ae726755b045fe5ac73b75357a5a3f/tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c", size = 444549, upload-time = "2025-08-08T18:26:51.864Z" }, + { url = "https://files.pythonhosted.org/packages/9b/02/c8f4f6c9204526daf3d760f4aa555a7a33ad0e60843eac025ccfd6ff4a93/tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4", size = 443973, upload-time = "2025-08-08T18:26:53.625Z" }, + { url = "https://files.pythonhosted.org/packages/ae/2d/f5f5707b655ce2317190183868cd0f6822a1121b4baeae509ceb9590d0bd/tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04", size = 443954, upload-time = "2025-08-08T18:26:55.072Z" }, + { url = "https://files.pythonhosted.org/packages/e8/59/593bd0f40f7355806bf6573b47b8c22f8e1374c9b6fd03114bd6b7a3dcfd/tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0", size = 445023, upload-time = "2025-08-08T18:26:56.677Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2a/f609b420c2f564a748a2d80ebfb2ee02a73ca80223af712fca591386cafb/tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f", size = 445427, upload-time = "2025-08-08T18:26:57.91Z" }, + { url = "https://files.pythonhosted.org/packages/5e/4f/e1f65e8f8c76d73658b33d33b81eed4322fb5085350e4328d5c956f0c8f9/tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af", size = 444456, upload-time = "2025-08-08T18:26:59.207Z" }, ] [[package]] @@ -2451,36 +2451,36 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, ] [[package]] name = "traitlets" version = "5.14.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621 } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359 }, + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, ] [[package]] name = "typing-extensions" version = "4.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391 } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614 }, + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] [[package]] name = "urllib3" -version = "2.5.0" +version = "2.6.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185 } +sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930, upload-time = "2025-12-11T15:56:40.252Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795 }, + { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182, upload-time = "2025-12-11T15:56:38.584Z" }, ] [[package]] @@ -2491,9 +2491,9 @@ dependencies = [ { name = "click" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4b/4d/938bd85e5bf2edeec766267a5015ad969730bb91e31b44021dfe8b22df6c/uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9", size = 76568 } +sdist = { url = "https://files.pythonhosted.org/packages/4b/4d/938bd85e5bf2edeec766267a5015ad969730bb91e31b44021dfe8b22df6c/uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9", size = 76568, upload-time = "2024-12-15T13:33:30.42Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4", size = 62315 }, + { url = "https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4", size = 62315, upload-time = "2024-12-15T13:33:27.467Z" }, ] [[package]] @@ -2512,109 +2512,109 @@ dependencies = [ { name = "sentry-sdk" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/73/09/c84264a219e20efd615e4d5d150cc7d359d57d51328d3fa94ee02d70ed9c/wandb-0.21.0.tar.gz", hash = "sha256:473e01ef200b59d780416062991effa7349a34e51425d4be5ff482af2dc39e02", size = 40085784 } +sdist = { url = "https://files.pythonhosted.org/packages/73/09/c84264a219e20efd615e4d5d150cc7d359d57d51328d3fa94ee02d70ed9c/wandb-0.21.0.tar.gz", hash = "sha256:473e01ef200b59d780416062991effa7349a34e51425d4be5ff482af2dc39e02", size = 40085784, upload-time = "2025-07-02T00:24:15.516Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/dd/65eac086e1bc337bb5f0eed65ba1fe4a6dbc62c97f094e8e9df1ef83ffed/wandb-0.21.0-py3-none-any.whl", hash = "sha256:316e8cd4329738f7562f7369e6eabeeb28ef9d473203f7ead0d03e5dba01c90d", size = 6504284 }, - { url = "https://files.pythonhosted.org/packages/17/a7/80556ce9097f59e10807aa68f4a9b29d736a90dca60852a9e2af1641baf8/wandb-0.21.0-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:701d9cbdfcc8550a330c1b54a26f1585519180e0f19247867446593d34ace46b", size = 21717388 }, - { url = "https://files.pythonhosted.org/packages/23/ae/660bc75aa37bd23409822ea5ed616177d94873172d34271693c80405c820/wandb-0.21.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:01689faa6b691df23ba2367e0a1ecf6e4d0be44474905840098eedd1fbcb8bdf", size = 21141465 }, - { url = "https://files.pythonhosted.org/packages/23/ab/9861929530be56557c74002868c85d0d8ac57050cc21863afe909ae3d46f/wandb-0.21.0-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:55d3f42ddb7971d1699752dff2b85bcb5906ad098d18ab62846c82e9ce5a238d", size = 21793511 }, - { url = "https://files.pythonhosted.org/packages/de/52/e5cad2eff6fbed1ac06f4a5b718457fa2fd437f84f5c8f0d31995a2ef046/wandb-0.21.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:893508f0c7da48917448daa5cd622c27ce7ce15119adaa861185034c2bd7b14c", size = 20704643 }, - { url = "https://files.pythonhosted.org/packages/83/8f/6bed9358cc33767c877b221d4f565e1ddf00caf4bbbe54d2e3bbc932c6a7/wandb-0.21.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4e8245a8912247ddf7654f7b5330f583a6c56ab88fee65589158490d583c57d", size = 22243012 }, - { url = "https://files.pythonhosted.org/packages/be/61/9048015412ea5ca916844af55add4fed7c21fe1ad70bb137951e70b550c5/wandb-0.21.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2e4c4f951e0d02755e315679bfdcb5bc38c1b02e2e5abc5432b91a91bb0cf246", size = 20716440 }, - { url = "https://files.pythonhosted.org/packages/02/d9/fcd2273d8ec3f79323e40a031aba5d32d6fa9065702010eb428b5ffbab62/wandb-0.21.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:873749966eeac0069e0e742e6210641b6227d454fb1dae2cf5c437c6ed42d3ca", size = 22320652 }, - { url = "https://files.pythonhosted.org/packages/80/68/b8308db6b9c3c96dcd03be17c019aee105e1d7dc1e74d70756cdfb9241c6/wandb-0.21.0-py3-none-win32.whl", hash = "sha256:9d3cccfba658fa011d6cab9045fa4f070a444885e8902ae863802549106a5dab", size = 21484296 }, - { url = "https://files.pythonhosted.org/packages/cf/96/71cc033e8abd00e54465e68764709ed945e2da2d66d764f72f4660262b22/wandb-0.21.0-py3-none-win_amd64.whl", hash = "sha256:28a0b2dad09d7c7344ac62b0276be18a2492a5578e4d7c84937a3e1991edaac7", size = 21484301 }, + { url = "https://files.pythonhosted.org/packages/38/dd/65eac086e1bc337bb5f0eed65ba1fe4a6dbc62c97f094e8e9df1ef83ffed/wandb-0.21.0-py3-none-any.whl", hash = "sha256:316e8cd4329738f7562f7369e6eabeeb28ef9d473203f7ead0d03e5dba01c90d", size = 6504284, upload-time = "2025-07-02T00:23:46.671Z" }, + { url = "https://files.pythonhosted.org/packages/17/a7/80556ce9097f59e10807aa68f4a9b29d736a90dca60852a9e2af1641baf8/wandb-0.21.0-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:701d9cbdfcc8550a330c1b54a26f1585519180e0f19247867446593d34ace46b", size = 21717388, upload-time = "2025-07-02T00:23:49.348Z" }, + { url = "https://files.pythonhosted.org/packages/23/ae/660bc75aa37bd23409822ea5ed616177d94873172d34271693c80405c820/wandb-0.21.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:01689faa6b691df23ba2367e0a1ecf6e4d0be44474905840098eedd1fbcb8bdf", size = 21141465, upload-time = "2025-07-02T00:23:52.602Z" }, + { url = "https://files.pythonhosted.org/packages/23/ab/9861929530be56557c74002868c85d0d8ac57050cc21863afe909ae3d46f/wandb-0.21.0-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:55d3f42ddb7971d1699752dff2b85bcb5906ad098d18ab62846c82e9ce5a238d", size = 21793511, upload-time = "2025-07-02T00:23:55.447Z" }, + { url = "https://files.pythonhosted.org/packages/de/52/e5cad2eff6fbed1ac06f4a5b718457fa2fd437f84f5c8f0d31995a2ef046/wandb-0.21.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:893508f0c7da48917448daa5cd622c27ce7ce15119adaa861185034c2bd7b14c", size = 20704643, upload-time = "2025-07-02T00:23:58.255Z" }, + { url = "https://files.pythonhosted.org/packages/83/8f/6bed9358cc33767c877b221d4f565e1ddf00caf4bbbe54d2e3bbc932c6a7/wandb-0.21.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4e8245a8912247ddf7654f7b5330f583a6c56ab88fee65589158490d583c57d", size = 22243012, upload-time = "2025-07-02T00:24:01.423Z" }, + { url = "https://files.pythonhosted.org/packages/be/61/9048015412ea5ca916844af55add4fed7c21fe1ad70bb137951e70b550c5/wandb-0.21.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2e4c4f951e0d02755e315679bfdcb5bc38c1b02e2e5abc5432b91a91bb0cf246", size = 20716440, upload-time = "2025-07-02T00:24:04.198Z" }, + { url = "https://files.pythonhosted.org/packages/02/d9/fcd2273d8ec3f79323e40a031aba5d32d6fa9065702010eb428b5ffbab62/wandb-0.21.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:873749966eeac0069e0e742e6210641b6227d454fb1dae2cf5c437c6ed42d3ca", size = 22320652, upload-time = "2025-07-02T00:24:07.175Z" }, + { url = "https://files.pythonhosted.org/packages/80/68/b8308db6b9c3c96dcd03be17c019aee105e1d7dc1e74d70756cdfb9241c6/wandb-0.21.0-py3-none-win32.whl", hash = "sha256:9d3cccfba658fa011d6cab9045fa4f070a444885e8902ae863802549106a5dab", size = 21484296, upload-time = "2025-07-02T00:24:10.147Z" }, + { url = "https://files.pythonhosted.org/packages/cf/96/71cc033e8abd00e54465e68764709ed945e2da2d66d764f72f4660262b22/wandb-0.21.0-py3-none-win_amd64.whl", hash = "sha256:28a0b2dad09d7c7344ac62b0276be18a2492a5578e4d7c84937a3e1991edaac7", size = 21484301, upload-time = "2025-07-02T00:24:12.658Z" }, ] [[package]] name = "watchdog" version = "6.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220 } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471 }, - { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449 }, - { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054 }, - { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079 }, - { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078 }, - { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076 }, - { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077 }, - { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078 }, - { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077 }, - { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078 }, - { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065 }, - { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070 }, - { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067 }, + { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471, upload-time = "2024-11-01T14:06:37.745Z" }, + { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449, upload-time = "2024-11-01T14:06:39.748Z" }, + { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054, upload-time = "2024-11-01T14:06:41.009Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, ] [[package]] name = "wcwidth" version = "0.2.13" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301 } +sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301, upload-time = "2024-01-06T02:10:57.829Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 }, + { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" }, ] [[package]] name = "websocket-client" version = "1.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e6/30/fba0d96b4b5fbf5948ed3f4681f7da2f9f64512e1d303f94b4cc174c24a5/websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da", size = 54648 } +sdist = { url = "https://files.pythonhosted.org/packages/e6/30/fba0d96b4b5fbf5948ed3f4681f7da2f9f64512e1d303f94b4cc174c24a5/websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da", size = 54648, upload-time = "2024-04-23T22:16:16.976Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", size = 58826 }, + { url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", size = 58826, upload-time = "2024-04-23T22:16:14.422Z" }, ] [[package]] name = "websockets" version = "15.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016 } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437 }, - { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096 }, - { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332 }, - { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152 }, - { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096 }, - { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523 }, - { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790 }, - { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165 }, - { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160 }, - { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395 }, - { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841 }, - { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 }, + { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437, upload-time = "2025-03-05T20:02:16.706Z" }, + { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096, upload-time = "2025-03-05T20:02:18.832Z" }, + { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332, upload-time = "2025-03-05T20:02:20.187Z" }, + { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152, upload-time = "2025-03-05T20:02:22.286Z" }, + { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096, upload-time = "2025-03-05T20:02:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523, upload-time = "2025-03-05T20:02:25.669Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790, upload-time = "2025-03-05T20:02:26.99Z" }, + { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165, upload-time = "2025-03-05T20:02:30.291Z" }, + { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160, upload-time = "2025-03-05T20:02:31.634Z" }, + { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395, upload-time = "2025-03-05T20:02:33.017Z" }, + { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841, upload-time = "2025-03-05T20:02:34.498Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, ] [[package]] name = "wheel" version = "0.45.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729", size = 107545 } +sdist = { url = "https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729", size = 107545, upload-time = "2024-11-23T00:18:23.513Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", size = 72494 }, + { url = "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", size = 72494, upload-time = "2024-11-23T00:18:21.207Z" }, ] [[package]] name = "xxhash" version = "3.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/00/5e/d6e5258d69df8b4ed8c83b6664f2b47d30d2dec551a29ad72a6c69eafd31/xxhash-3.5.0.tar.gz", hash = "sha256:84f2caddf951c9cbf8dc2e22a89d4ccf5d86391ac6418fe81e3c67d0cf60b45f", size = 84241 } +sdist = { url = "https://files.pythonhosted.org/packages/00/5e/d6e5258d69df8b4ed8c83b6664f2b47d30d2dec551a29ad72a6c69eafd31/xxhash-3.5.0.tar.gz", hash = "sha256:84f2caddf951c9cbf8dc2e22a89d4ccf5d86391ac6418fe81e3c67d0cf60b45f", size = 84241, upload-time = "2024-08-17T09:20:38.972Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/0e/1bfce2502c57d7e2e787600b31c83535af83746885aa1a5f153d8c8059d6/xxhash-3.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:14470ace8bd3b5d51318782cd94e6f94431974f16cb3b8dc15d52f3b69df8e00", size = 31969 }, - { url = "https://files.pythonhosted.org/packages/3f/d6/8ca450d6fe5b71ce521b4e5db69622383d039e2b253e9b2f24f93265b52c/xxhash-3.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:59aa1203de1cb96dbeab595ded0ad0c0056bb2245ae11fac11c0ceea861382b9", size = 30787 }, - { url = "https://files.pythonhosted.org/packages/5b/84/de7c89bc6ef63d750159086a6ada6416cc4349eab23f76ab870407178b93/xxhash-3.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08424f6648526076e28fae6ea2806c0a7d504b9ef05ae61d196d571e5c879c84", size = 220959 }, - { url = "https://files.pythonhosted.org/packages/fe/86/51258d3e8a8545ff26468c977101964c14d56a8a37f5835bc0082426c672/xxhash-3.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61a1ff00674879725b194695e17f23d3248998b843eb5e933007ca743310f793", size = 200006 }, - { url = "https://files.pythonhosted.org/packages/02/0a/96973bd325412feccf23cf3680fd2246aebf4b789122f938d5557c54a6b2/xxhash-3.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2f2c61bee5844d41c3eb015ac652a0229e901074951ae48581d58bfb2ba01be", size = 428326 }, - { url = "https://files.pythonhosted.org/packages/11/a7/81dba5010f7e733de88af9555725146fc133be97ce36533867f4c7e75066/xxhash-3.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d32a592cac88d18cc09a89172e1c32d7f2a6e516c3dfde1b9adb90ab5df54a6", size = 194380 }, - { url = "https://files.pythonhosted.org/packages/fb/7d/f29006ab398a173f4501c0e4977ba288f1c621d878ec217b4ff516810c04/xxhash-3.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70dabf941dede727cca579e8c205e61121afc9b28516752fd65724be1355cc90", size = 207934 }, - { url = "https://files.pythonhosted.org/packages/8a/6e/6e88b8f24612510e73d4d70d9b0c7dff62a2e78451b9f0d042a5462c8d03/xxhash-3.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e5d0ddaca65ecca9c10dcf01730165fd858533d0be84c75c327487c37a906a27", size = 216301 }, - { url = "https://files.pythonhosted.org/packages/af/51/7862f4fa4b75a25c3b4163c8a873f070532fe5f2d3f9b3fc869c8337a398/xxhash-3.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e5b5e16c5a480fe5f59f56c30abdeba09ffd75da8d13f6b9b6fd224d0b4d0a2", size = 203351 }, - { url = "https://files.pythonhosted.org/packages/22/61/8d6a40f288f791cf79ed5bb113159abf0c81d6efb86e734334f698eb4c59/xxhash-3.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149b7914451eb154b3dfaa721315117ea1dac2cc55a01bfbd4df7c68c5dd683d", size = 210294 }, - { url = "https://files.pythonhosted.org/packages/17/02/215c4698955762d45a8158117190261b2dbefe9ae7e5b906768c09d8bc74/xxhash-3.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:eade977f5c96c677035ff39c56ac74d851b1cca7d607ab3d8f23c6b859379cab", size = 414674 }, - { url = "https://files.pythonhosted.org/packages/31/5c/b7a8db8a3237cff3d535261325d95de509f6a8ae439a5a7a4ffcff478189/xxhash-3.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa9f547bd98f5553d03160967866a71056a60960be00356a15ecc44efb40ba8e", size = 192022 }, - { url = "https://files.pythonhosted.org/packages/78/e3/dd76659b2811b3fd06892a8beb850e1996b63e9235af5a86ea348f053e9e/xxhash-3.5.0-cp312-cp312-win32.whl", hash = "sha256:f7b58d1fd3551b8c80a971199543379be1cee3d0d409e1f6d8b01c1a2eebf1f8", size = 30170 }, - { url = "https://files.pythonhosted.org/packages/d9/6b/1c443fe6cfeb4ad1dcf231cdec96eb94fb43d6498b4469ed8b51f8b59a37/xxhash-3.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:fa0cafd3a2af231b4e113fba24a65d7922af91aeb23774a8b78228e6cd785e3e", size = 30040 }, - { url = "https://files.pythonhosted.org/packages/0f/eb/04405305f290173acc0350eba6d2f1a794b57925df0398861a20fbafa415/xxhash-3.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:586886c7e89cb9828bcd8a5686b12e161368e0064d040e225e72607b43858ba2", size = 26796 }, + { url = "https://files.pythonhosted.org/packages/07/0e/1bfce2502c57d7e2e787600b31c83535af83746885aa1a5f153d8c8059d6/xxhash-3.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:14470ace8bd3b5d51318782cd94e6f94431974f16cb3b8dc15d52f3b69df8e00", size = 31969, upload-time = "2024-08-17T09:18:24.025Z" }, + { url = "https://files.pythonhosted.org/packages/3f/d6/8ca450d6fe5b71ce521b4e5db69622383d039e2b253e9b2f24f93265b52c/xxhash-3.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:59aa1203de1cb96dbeab595ded0ad0c0056bb2245ae11fac11c0ceea861382b9", size = 30787, upload-time = "2024-08-17T09:18:25.318Z" }, + { url = "https://files.pythonhosted.org/packages/5b/84/de7c89bc6ef63d750159086a6ada6416cc4349eab23f76ab870407178b93/xxhash-3.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08424f6648526076e28fae6ea2806c0a7d504b9ef05ae61d196d571e5c879c84", size = 220959, upload-time = "2024-08-17T09:18:26.518Z" }, + { url = "https://files.pythonhosted.org/packages/fe/86/51258d3e8a8545ff26468c977101964c14d56a8a37f5835bc0082426c672/xxhash-3.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61a1ff00674879725b194695e17f23d3248998b843eb5e933007ca743310f793", size = 200006, upload-time = "2024-08-17T09:18:27.905Z" }, + { url = "https://files.pythonhosted.org/packages/02/0a/96973bd325412feccf23cf3680fd2246aebf4b789122f938d5557c54a6b2/xxhash-3.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2f2c61bee5844d41c3eb015ac652a0229e901074951ae48581d58bfb2ba01be", size = 428326, upload-time = "2024-08-17T09:18:29.335Z" }, + { url = "https://files.pythonhosted.org/packages/11/a7/81dba5010f7e733de88af9555725146fc133be97ce36533867f4c7e75066/xxhash-3.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d32a592cac88d18cc09a89172e1c32d7f2a6e516c3dfde1b9adb90ab5df54a6", size = 194380, upload-time = "2024-08-17T09:18:30.706Z" }, + { url = "https://files.pythonhosted.org/packages/fb/7d/f29006ab398a173f4501c0e4977ba288f1c621d878ec217b4ff516810c04/xxhash-3.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70dabf941dede727cca579e8c205e61121afc9b28516752fd65724be1355cc90", size = 207934, upload-time = "2024-08-17T09:18:32.133Z" }, + { url = "https://files.pythonhosted.org/packages/8a/6e/6e88b8f24612510e73d4d70d9b0c7dff62a2e78451b9f0d042a5462c8d03/xxhash-3.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e5d0ddaca65ecca9c10dcf01730165fd858533d0be84c75c327487c37a906a27", size = 216301, upload-time = "2024-08-17T09:18:33.474Z" }, + { url = "https://files.pythonhosted.org/packages/af/51/7862f4fa4b75a25c3b4163c8a873f070532fe5f2d3f9b3fc869c8337a398/xxhash-3.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e5b5e16c5a480fe5f59f56c30abdeba09ffd75da8d13f6b9b6fd224d0b4d0a2", size = 203351, upload-time = "2024-08-17T09:18:34.889Z" }, + { url = "https://files.pythonhosted.org/packages/22/61/8d6a40f288f791cf79ed5bb113159abf0c81d6efb86e734334f698eb4c59/xxhash-3.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149b7914451eb154b3dfaa721315117ea1dac2cc55a01bfbd4df7c68c5dd683d", size = 210294, upload-time = "2024-08-17T09:18:36.355Z" }, + { url = "https://files.pythonhosted.org/packages/17/02/215c4698955762d45a8158117190261b2dbefe9ae7e5b906768c09d8bc74/xxhash-3.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:eade977f5c96c677035ff39c56ac74d851b1cca7d607ab3d8f23c6b859379cab", size = 414674, upload-time = "2024-08-17T09:18:38.536Z" }, + { url = "https://files.pythonhosted.org/packages/31/5c/b7a8db8a3237cff3d535261325d95de509f6a8ae439a5a7a4ffcff478189/xxhash-3.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa9f547bd98f5553d03160967866a71056a60960be00356a15ecc44efb40ba8e", size = 192022, upload-time = "2024-08-17T09:18:40.138Z" }, + { url = "https://files.pythonhosted.org/packages/78/e3/dd76659b2811b3fd06892a8beb850e1996b63e9235af5a86ea348f053e9e/xxhash-3.5.0-cp312-cp312-win32.whl", hash = "sha256:f7b58d1fd3551b8c80a971199543379be1cee3d0d409e1f6d8b01c1a2eebf1f8", size = 30170, upload-time = "2024-08-17T09:18:42.163Z" }, + { url = "https://files.pythonhosted.org/packages/d9/6b/1c443fe6cfeb4ad1dcf231cdec96eb94fb43d6498b4469ed8b51f8b59a37/xxhash-3.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:fa0cafd3a2af231b4e113fba24a65d7922af91aeb23774a8b78228e6cd785e3e", size = 30040, upload-time = "2024-08-17T09:18:43.699Z" }, + { url = "https://files.pythonhosted.org/packages/0f/eb/04405305f290173acc0350eba6d2f1a794b57925df0398861a20fbafa415/xxhash-3.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:586886c7e89cb9828bcd8a5686b12e161368e0064d040e225e72607b43858ba2", size = 26796, upload-time = "2024-08-17T09:18:45.29Z" }, ] [[package]] @@ -2626,24 +2626,24 @@ dependencies = [ { name = "multidict" }, { name = "propcache" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667 }, - { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025 }, - { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709 }, - { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287 }, - { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429 }, - { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429 }, - { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862 }, - { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616 }, - { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954 }, - { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575 }, - { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061 }, - { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142 }, - { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894 }, - { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378 }, - { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069 }, - { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249 }, - { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710 }, - { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542 }, +sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428, upload-time = "2025-06-10T00:46:09.923Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667, upload-time = "2025-06-10T00:43:44.369Z" }, + { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025, upload-time = "2025-06-10T00:43:46.295Z" }, + { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709, upload-time = "2025-06-10T00:43:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287, upload-time = "2025-06-10T00:43:49.924Z" }, + { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429, upload-time = "2025-06-10T00:43:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429, upload-time = "2025-06-10T00:43:53.494Z" }, + { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862, upload-time = "2025-06-10T00:43:55.766Z" }, + { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616, upload-time = "2025-06-10T00:43:58.056Z" }, + { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954, upload-time = "2025-06-10T00:43:59.773Z" }, + { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575, upload-time = "2025-06-10T00:44:02.051Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061, upload-time = "2025-06-10T00:44:04.196Z" }, + { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142, upload-time = "2025-06-10T00:44:06.527Z" }, + { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894, upload-time = "2025-06-10T00:44:08.379Z" }, + { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378, upload-time = "2025-06-10T00:44:10.51Z" }, + { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069, upload-time = "2025-06-10T00:44:12.834Z" }, + { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249, upload-time = "2025-06-10T00:44:14.731Z" }, + { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710, upload-time = "2025-06-10T00:44:16.716Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542, upload-time = "2025-06-10T00:46:07.521Z" }, ] From ecd5feaa88c22e5dc6b7226c403fc591f22a0ff8 Mon Sep 17 00:00:00 2001 From: millioner Date: Fri, 12 Dec 2025 02:50:27 +0100 Subject: [PATCH 17/28] Small fixes suggested by copilot --- neurons/execution_layer/dsperse_manager.py | 3 +-- neurons/generate_test_input.py | 14 -------------- neurons/protocol.py | 6 ------ 3 files changed, 1 insertion(+), 22 deletions(-) delete mode 100644 neurons/generate_test_input.py diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index 1b820551..62a6e194 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -15,7 +15,6 @@ from execution_layer.circuit import Circuit, CircuitType import cli_parser -from _validator.api import ValidatorAPI from _validator.models.dslice_request import DSliceQueuedProofRequest from _validator.models.request_type import RequestType @@ -52,7 +51,7 @@ def generate_dslice_requests(self) -> Iterable[DSliceQueuedProofRequest]: """ if not self.circuits: # No DSperse circuits available, skip request generation - return [] + return circuit = random.choice(self.circuits) run_uid = datetime.now().strftime("%Y%m%d%H%M%S%f") diff --git a/neurons/generate_test_input.py b/neurons/generate_test_input.py deleted file mode 100644 index a429d1d8..00000000 --- a/neurons/generate_test_input.py +++ /dev/null @@ -1,14 +0,0 @@ -from deployment_layer.model_50818a54b31b3e0fe3306a7fb7826156fc2c42c9d64c6ba106ba135fbe7b7b19.input import ( - CircuitInput, -) -from _validator.models.request_type import RequestType - - -def main(): - input_instance = CircuitInput(RequestType.BENCHMARK) - generated_data = input_instance.generate() - print(f"Generated list items: {generated_data['list_items']}") - - -if __name__ == "__main__": - main() diff --git a/neurons/protocol.py b/neurons/protocol.py index db03db53..6d4e0e90 100644 --- a/neurons/protocol.py +++ b/neurons/protocol.py @@ -124,9 +124,3 @@ class DSliceProofGenerationDataModel(BaseModel): outputs: Optional[Any] = None slice_num: Optional[str] = None run_uid: Optional[str] = None - - # def deserialize(self) -> str | None: - # """ - # unpack proof - # """ - # return self.proof From c3cd0bdb181f8f768ec866c6f20edd3e63af4de4 Mon Sep 17 00:00:00 2001 From: millioner Date: Sat, 13 Dec 2025 14:37:36 +0100 Subject: [PATCH 18/28] Requests reskedjuling fixes :stuck_out_tongue_winking_eye: --- neurons/_validator/core/request.py | 7 ++++- neurons/_validator/core/request_pipeline.py | 30 +++++++++++---------- neurons/_validator/core/validator_loop.py | 7 +++-- neurons/_validator/models/miner_response.py | 8 +++--- neurons/_validator/utils/hash_guard.py | 13 +++++++-- 5 files changed, 43 insertions(+), 22 deletions(-) diff --git a/neurons/_validator/core/request.py b/neurons/_validator/core/request.py index 39d54c28..4e9a50b6 100644 --- a/neurons/_validator/core/request.py +++ b/neurons/_validator/core/request.py @@ -27,6 +27,11 @@ class Request: dsperse_run_uid: str | None = None # next one is used only for rescheduling DSlice and RWR requests in case of failure queued_request: QueuedRequestDataModel | None = None - request_hash: str | None = None + # `external_request_hash` is the hash of the original request from external API user + # we use it to report back results to `ValidatorAPI`` class. It sends the results to the user. + external_request_hash: str | None = None + # `guard_hash` is the hash used by HashGuard to prevent duplicate requests + # It's calculated from the inputs of the request. + guard_hash: str | None = None response_time: float | None = None save: bool = False diff --git a/neurons/_validator/core/request_pipeline.py b/neurons/_validator/core/request_pipeline.py index 475d61dc..f36e381e 100644 --- a/neurons/_validator/core/request_pipeline.py +++ b/neurons/_validator/core/request_pipeline.py @@ -47,7 +47,7 @@ def _check_and_create_request( ), circuit: Circuit, request_type: RequestType, - request_hash: str | None = None, + external_request_hash: str | None = None, save: bool = False, ) -> Request | None: """Check hash and create request if valid.""" @@ -58,13 +58,15 @@ def _check_and_create_request( input_data = request_data.inputs else: input_data = request_data.query_input - self.hash_guard.check_hash(input_data) - except Exception as e: + # Check hash to prevent duplicate requests + guard_hash = self.hash_guard.check_hash(input_data) + except ValueError as e: bt.logging.error(f"Hash already exists: {e}") safe_log({"hash_guard_error": 1}) if request_type == RequestType.RWR: self.api.set_request_result( - request_hash, {"success": False, "error": "Hash already exists"} + external_request_hash, + {"success": False, "error": "Hash already exists"}, ) return None @@ -83,7 +85,8 @@ def _check_and_create_request( # 'inputs' are used for verification later on validator side: # I suppose `RWR` passed here to prevent new data generation inputs=GenericInput(RequestType.RWR, input_data), - request_hash=request_hash, + external_request_hash=external_request_hash, + guard_hash=guard_hash, save=save, ) @@ -92,10 +95,6 @@ def _check_and_create_request( request.dsperse_slice_num = request_data.slice_num request.dsperse_run_uid = request_data.run_uid - if isinstance(request_data, QueuedRequestDataModel): - # DSlice and RWR requests may need to be rescheduled, so keep the original queued request - request.queued_request = request_data - return request def _prepare_queued_request(self, uid: int) -> Request: @@ -113,16 +112,19 @@ def _prepare_queued_request(self, uid: int) -> Request: request_data=request_data, circuit=external_request.circuit, request_type=external_request.request_type, - request_hash=external_request.hash, + external_request_hash=external_request.hash, save=save, ) + if request: + request.queued_request = external_request except Exception as e: bt.logging.error(f"Error preparing request for UID {uid}: {e}") traceback.print_exc() - self.api.set_request_result( - external_request.hash, - {"success": False, "error": "Error preparing request"}, - ) + if external_request.request_type == RequestType.RWR: + self.api.set_request_result( + external_request.hash, + {"success": False, "error": "Error preparing request"}, + ) return request def _prepare_benchmark_request(self, uid: int) -> Request: diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index a2d8ba10..2df1a525 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -534,6 +534,9 @@ def _reschedule_request(self, request: Request) -> None: bt.logging.info( f"Rescheduling {request.request_type.name} request for UID {request.uid}" ) + + # Remove hash from HashGuard to allow retry + self.request_pipeline.hash_guard.remove_hash(request.guard_hash) # Re-add to the stacked requests queue for retry with a different miner self.api.stacked_requests_queue.append(request.queued_request) @@ -545,7 +548,7 @@ async def _handle_response(self, response: MinerResponse) -> None: response (MinerResponse): The processed response to handle. """ try: - request_hash = response.input_hash + request_hash = response.external_request_hash if not response.verification_result: response.response_time = ( response.circuit.evaluation_data.maximum_response_time @@ -577,7 +580,7 @@ async def _handle_response(self, response: MinerResponse) -> None: proof=[response.proof_content], metadata={ "circuit": str(response.circuit), - "request_hash": response.input_hash, + "request_hash": request_hash, "miner_uid": response.uid, }, hotkey=self.config.wallet.hotkey, diff --git a/neurons/_validator/models/miner_response.py b/neurons/_validator/models/miner_response.py index 04f71ff3..55193d50 100644 --- a/neurons/_validator/models/miner_response.py +++ b/neurons/_validator/models/miner_response.py @@ -17,7 +17,9 @@ class MinerResponse: uid: int verification_result: bool - input_hash: str + # hash of the original request from external API user + # we use it to report back results to `ValidatorAPI`` class. It sends the results to the user. + external_request_hash: str response_time: float proof_size: int circuit: Circuit @@ -93,7 +95,7 @@ def from_raw_response( circuit=request.circuit, proof_content=proof_content, request_type=request.request_type, - input_hash=request.request_hash, + external_request_hash=request.external_request_hash, public_json=public_json, inputs=request.inputs, raw=deserialized_response, @@ -122,7 +124,7 @@ def to_log_dict(self, metagraph: bt.metagraph) -> dict: # type: ignore "proof_size": self.proof_size, "response_duration": self.response_time, "is_verified": self.verification_result, - "input_hash": self.input_hash, + "external_request_hash": self.external_request_hash, "request_type": self.request_type.value, "error": self.error, "save": self.save, diff --git a/neurons/_validator/utils/hash_guard.py b/neurons/_validator/utils/hash_guard.py index d7657d38..18ea9e1d 100644 --- a/neurons/_validator/utils/hash_guard.py +++ b/neurons/_validator/utils/hash_guard.py @@ -18,7 +18,15 @@ def __init__(self): self.hash_set = set() self.hash_queue = deque(maxlen=self.MAX_HASHES) - def check_hash(self, input: BaseInput) -> None: + def remove_hash(self, hash_value: str) -> None: + """ + Remove a hash from the guard. + """ + if hash_value in self.hash_set: + self.hash_set.remove(hash_value) + self.hash_queue.remove(hash_value) + + def check_hash(self, input: BaseInput) -> str: if isinstance(input, BaseInput): input = input.to_json() @@ -35,7 +43,6 @@ def sort_dict(d): hash_value = hashlib.sha256(json_str.encode()).hexdigest() if hash_value in self.hash_set: - bt.logging.error(f"Hash already exists: {hash_value}. Inputs: {input}") raise ValueError("Hash already exists") if len(self.hash_queue) == self.MAX_HASHES: @@ -44,3 +51,5 @@ def sort_dict(d): self.hash_set.add(hash_value) self.hash_queue.append(hash_value) + + return hash_value From cb10e7212b5cda4112e62998c941f5eda16258f7 Mon Sep 17 00:00:00 2001 From: millioner Date: Sat, 13 Dec 2025 14:42:52 +0100 Subject: [PATCH 19/28] Check proof inputs before verifying --- neurons/execution_layer/dsperse_manager.py | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index 62a6e194..ea6fb0f9 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -4,9 +4,11 @@ import shutil from dataclasses import dataclass from datetime import datetime +from enum import Enum from pathlib import Path from typing import Iterable +import ezkl from bittensor import logging from deployment_layer.circuit_store import circuit_store from dsperse.src.prover import Prover @@ -29,6 +31,34 @@ class DSliceData: success: bool | None = None +class EZKLInputType(Enum): + F16 = ezkl.PyInputType.F16 + F32 = ezkl.PyInputType.F32 + F64 = ezkl.PyInputType.F64 + Int = ezkl.PyInputType.Int + Bool = ezkl.PyInputType.Bool + TDim = ezkl.PyInputType.TDim + + +def ensure_proof_inputs(proof: dict, inputs: list[list], model_settings: dict) -> dict: + """ + Ensures that the proof JSON contains the correct input instances. + That should prevent miners from cheating by reusing proofs with different inputs. + """ + scale_map = model_settings.get("model_input_scales", []) + type_map = model_settings.get("input_types", []) + instances = [ + ezkl.float_to_felt(x, scale_map[i], EZKLInputType[type_map[i]].value) + for i, arr in enumerate(inputs) + for x in arr + ] + proof["instances"] = [instances[:] + proof["instances"][0][len(instances) :]] + + proof["transcript_type"] = "EVM" + + return proof + + class DSperseManager: def __init__(self): self.circuits: list[Circuit] = [ @@ -166,22 +196,37 @@ def verify_slice_proof( """ Verify proof for a given slice. """ + # do we have run data for this run UID? if run_uid not in self.runs: raise ValueError(f"Run UID {run_uid} not found.") + # get slice run data from stored run data slice_data: DSliceData = next( (s for s in self.runs[run_uid] if s.slice_num == slice_num), None ) if slice_data is None: raise ValueError(f"Slice data for slice number {slice_num} not found.") + # get model settings circuit = self._get_circuit_by_id(slice_data.circuit_id) + with open(circuit.paths.settings, "r") as f: + model_settings = json.load(f) + + # prepare inputs + with open(slice_data.input_file, "r") as f: + input_obj = circuit.input_handler( + request_type=RequestType.DSLICE, data=json.load(f) + ) + + # ensure proof has correct inputs + proof = ensure_proof_inputs(proof, input_obj.to_array(), model_settings) proof_file_path = slice_data.input_file.parent / "proof.json" with open(proof_file_path, "w") as proof_file: json.dump(proof, proof_file) slice_data.proof_file = proof_file_path + # time to verify! verifier = Verifier() result = verifier.verify( run_path=slice_data.input_file.parent, From 0e92ec338e78b37dbdea6898c516d8e1163a4caa Mon Sep 17 00:00:00 2001 From: millioner Date: Sat, 13 Dec 2025 15:14:30 +0100 Subject: [PATCH 20/28] Getting slice settings fix --- neurons/_validator/core/validator_loop.py | 7 ++- .../input.py | 4 ++ neurons/execution_layer/dsperse_manager.py | 52 +++++++++++++++++-- 3 files changed, 57 insertions(+), 6 deletions(-) diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index 2df1a525..7ae829b0 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -549,7 +549,12 @@ async def _handle_response(self, response: MinerResponse) -> None: """ try: request_hash = response.external_request_hash - if not response.verification_result: + if response.verification_result: + bt.logging.info( + f"Successfully verified proof from UID {response.uid} " + f"for circuit {response.circuit}. Request type: {response.request_type.name}" + ) + else: response.response_time = ( response.circuit.evaluation_data.maximum_response_time ) diff --git a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py index f5f8c876..46ae01be 100644 --- a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py +++ b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/input.py @@ -42,3 +42,7 @@ def process(data: dict[str, object]) -> dict[str, object]: No processing needs to take place, as all inputs are randomized. """ return data + + def to_array(self) -> list: + """Converts the data to array format""" + return self.data["input_data"] diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index ea6fb0f9..a12b9c6b 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -207,11 +207,7 @@ def verify_slice_proof( if slice_data is None: raise ValueError(f"Slice data for slice number {slice_num} not found.") - # get model settings circuit = self._get_circuit_by_id(slice_data.circuit_id) - with open(circuit.paths.settings, "r") as f: - model_settings = json.load(f) - # prepare inputs with open(slice_data.input_file, "r") as f: input_obj = circuit.input_handler( @@ -219,7 +215,9 @@ def verify_slice_proof( ) # ensure proof has correct inputs - proof = ensure_proof_inputs(proof, input_obj.to_array(), model_settings) + proof = ensure_proof_inputs( + proof, input_obj.to_array(), self._get_slice_settings(circuit, slice_num) + ) proof_file_path = slice_data.input_file.parent / "proof.json" with open(proof_file_path, "w") as proof_file: @@ -267,6 +265,50 @@ def cleanup_run(self, run_uid: str): shutil.rmtree(run_path) del self.runs[run_uid] + def _get_slice_settings(self, circuit: Circuit, slice_num: str) -> dict: + """ + Retrieve settings for a specific slice from its metadata. + """ + metadata_path = ( + Path(circuit.paths.external_base_path) + / f"slice_{slice_num}" + / "metadata.json" + ) + if not metadata_path.exists(): + raise ValueError( + f"Metadata file not found for slice {slice_num} of circuit {circuit.id}." + ) + with open(metadata_path, "r") as f: + metadata = json.load(f) + if not isinstance(metadata, dict): + raise ValueError( + f"Invalid metadata format for slice {slice_num} of circuit {circuit.id}." + ) + + settings_path = ( + metadata.get("slices", [{}])[0] + .get("compilation", {}) + .get("ezkl", {}) + .get("files", {}) + .get("settings", None) + ) + if not settings_path: + raise ValueError( + f"Settings file path not found in metadata for slice {slice_num} of circuit {circuit.id}." + ) + settings_path = ( + Path(circuit.paths.external_base_path) + / f"slice_{slice_num}" + / settings_path + ) + if not settings_path.exists() or not settings_path.is_file(): + raise ValueError( + f"Settings file not found at {settings_path} for slice {slice_num} of circuit {circuit.id}." + ) + with open(settings_path, "r") as f: + settings = json.load(f) + return settings + def _parse_dsperse_result(self, result: dict, execution_type: str) -> dict: execution_results = result.get("execution_chain", {}).get( "execution_results", [] From 59883d830b7e147f70a3d129aae9cbc726848726 Mon Sep 17 00:00:00 2001 From: millioner Date: Sat, 13 Dec 2025 15:18:40 +0100 Subject: [PATCH 21/28] DSperse cleanup un exit --- neurons/_validator/core/validator_loop.py | 1 + neurons/execution_layer/dsperse_manager.py | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index 7ae829b0..3ae00389 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -617,6 +617,7 @@ async def _cleanup(self): await self.httpx_client.aclose() stop_prometheus_logging() clean_temp_files() + self.dsperse_manager.total_cleanup() if self.competition: self.competition.competition_thread.stop() if hasattr(self.competition.circuit_manager, "close"): diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index a12b9c6b..6137bee5 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -265,6 +265,15 @@ def cleanup_run(self, run_uid: str): shutil.rmtree(run_path) del self.runs[run_uid] + def total_cleanup(self): + """ + Cleanup all run data and delete all run folders. + Used during validator shutdown to free up disk space. + """ + logging.info("Performing total cleanup of all DSperse run data...") + for run_uid in list(self.runs.keys()): + self.cleanup_run(run_uid) + def _get_slice_settings(self, circuit: Circuit, slice_num: str) -> dict: """ Retrieve settings for a specific slice from its metadata. From f19be4f20bfdb4b9f16f9be511cec27189b8adcf Mon Sep 17 00:00:00 2001 From: millioner Date: Sat, 13 Dec 2025 15:36:25 +0100 Subject: [PATCH 22/28] Actual urls for slices --- .../metadata.json | 24 +++++++----- neurons/utils/pre_flight.py | 39 +++++++++---------- 2 files changed, 34 insertions(+), 29 deletions(-) diff --git a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json index cfaeb117..6b8b208b 100644 --- a/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json +++ b/neurons/deployment_layer/model_b4a373270b59e2b9d5aac05e41df8cdff76a252f5543e00fcd87f2626b37360c/metadata.json @@ -1,11 +1,17 @@ { - "name": "DSPerse test NET model", - "description": "Model for testing DSPerse integration.", - "author": "Inference Labs", - "version": "0.0.1", - "proof_system": "EZKL", - "type": "dsperse_proof_generation", - "external_files": {}, - "dslices": [], - "benchmark_choice_weight": 0.2 + "name": "DSPerse test NET model", + "description": "Model for testing DSPerse integration.", + "author": "Inference Labs", + "version": "0.0.1", + "proof_system": "EZKL", + "type": "dsperse_proof_generation", + "external_files": {}, + "dslices": [ + "https://sn2-storage.inferencelabs.com/7a3a83ce7366ef53354231cbf3b92824c658c4800b0c242572ac8c3e33e4d6e2.dslice", + "https://sn2-storage.inferencelabs.com/4de41b429bda66a524579207e15c44e0907c88258299218863969c1404c9cacd.dslice", + "https://sn2-storage.inferencelabs.com/50b9f4e7e0aa926cf4109060052db5b0174e0b6f046bcc427bedd21171040eeb.dslice", + "https://sn2-storage.inferencelabs.com/67196b8cf4aee00a3efef58f7dba1f2e09e20484f03c94cf5d68eb1755682545.dslice", + "https://sn2-storage.inferencelabs.com/b10e4b497eaf4a301119dd336a75804c4e38f7355cd7b6683a8538e5692c62e0.dslice" + ], + "benchmark_choice_weight": 0.2 } diff --git a/neurons/utils/pre_flight.py b/neurons/utils/pre_flight.py index 1a1bbc84..1103f4c7 100644 --- a/neurons/utils/pre_flight.py +++ b/neurons/utils/pre_flight.py @@ -268,32 +268,31 @@ def download_dslices(model_hash: str, dslices: list[dict]): return bt.logging.debug(SYNC_LOG_PREFIX + f"Checking DSlices for model {model_hash}...") dslice_num = 0 - for dslice in dslices: - url = dslice.get("url") + for dslice_num, url in enumerate(dslices): if not url: # Skip if URL is missing bt.logging.warning( SYNC_LOG_PREFIX + f"DSlice URL missing for slice {dslice_num} of {model_hash}, skipping..." ) - else: - # dslice files are just zip archives, - # but later on we extract them to a folder named after the file without extension - # so in case that folder already exists, we skip downloading and extracting again - file_path = os.path.join( - cli_parser.config.full_path_models, - model_hash, - f"slice_{dslice_num}.dslice", + continue + + # dslice files are just zip archives, + # but later on we extract them to a folder named after the file without extension + # so in case that folder already exists, we skip downloading and extracting again + file_path = os.path.join( + cli_parser.config.full_path_models, + model_hash, + f"slice_{dslice_num}.dslice", + ) + extracted_path = os.path.splitext(file_path)[0] + # XXX: maybe we need to have some kind of versioning here and verification of the files? + if os.path.isdir(extracted_path) or os.path.isfile(file_path): + bt.logging.debug( + SYNC_LOG_PREFIX + + f"Dsperse file for {model_hash} already downloaded, skipping..." ) - extracted_path = os.path.splitext(file_path)[0] - # XXX: maybe we need to have some kind of versioning here and verification of the files? - if os.path.isdir(extracted_path) or os.path.isfile(file_path): - bt.logging.debug( - SYNC_LOG_PREFIX - + f"Dsperse file for {model_hash} already downloaded, skipping..." - ) - else: - download_file(url, file_path) - dslice_num += 1 + else: + download_file(url, file_path) def extract_dslices(model_hash: str): From 68977929766dee135801cb1f2781ec444e2dc288 Mon Sep 17 00:00:00 2001 From: millioner Date: Sat, 13 Dec 2025 16:30:12 +0100 Subject: [PATCH 23/28] Compile DSlices if needed during pre-flight stage --- neurons/execution_layer/dsperse_manager.py | 97 ++++++++++++++++--- neurons/utils/pre_flight.py | 103 ++++++++------------- 2 files changed, 123 insertions(+), 77 deletions(-) diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index 6137bee5..c92b4e13 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -11,14 +11,17 @@ import ezkl from bittensor import logging from deployment_layer.circuit_store import circuit_store +from dsperse.src.compile.compiler import Compiler from dsperse.src.prover import Prover from dsperse.src.run.runner import Runner from dsperse.src.verifier import Verifier +from dsperse.src.slice.utils.converter import Converter from execution_layer.circuit import Circuit, CircuitType import cli_parser from _validator.models.dslice_request import DSliceQueuedProofRequest from _validator.models.request_type import RequestType +from utils.pre_flight import SYNC_LOG_PREFIX @dataclass @@ -278,21 +281,9 @@ def _get_slice_settings(self, circuit: Circuit, slice_num: str) -> dict: """ Retrieve settings for a specific slice from its metadata. """ - metadata_path = ( - Path(circuit.paths.external_base_path) - / f"slice_{slice_num}" - / "metadata.json" + metadata = self.get_slice_metadata( + Path(circuit.paths.external_base_path) / f"slice_{slice_num}" ) - if not metadata_path.exists(): - raise ValueError( - f"Metadata file not found for slice {slice_num} of circuit {circuit.id}." - ) - with open(metadata_path, "r") as f: - metadata = json.load(f) - if not isinstance(metadata, dict): - raise ValueError( - f"Invalid metadata format for slice {slice_num} of circuit {circuit.id}." - ) settings_path = ( metadata.get("slices", [{}])[0] @@ -331,3 +322,81 @@ def _parse_dsperse_result(self, result: dict, execution_type: str) -> dict: execution = execution_result.get(f"{execution_type}_execution", {}) return slice_id, execution + + @classmethod + def get_slice_metadata(cls, slice_path: Path | str) -> dict: + """ + Retrieve metadata for a specific DSperse slice. + """ + slice_path = Path(slice_path) + metadata_path = slice_path / "metadata.json" + if not metadata_path.exists(): + raise ValueError(f"Metadata file not found at {metadata_path}.") + with open(metadata_path, "r") as f: + metadata = json.load(f) + if not isinstance(metadata, dict): + raise ValueError(f"Invalid metadata format at {metadata_path}.") + return metadata + + @classmethod + def extract_dslices(cls, model_path: Path | str) -> None: + """ + Extract DSperse slice files in a folder if there are any. + """ + model_path = Path(model_path) + # dslice_files = glob.glob(os.path.join(model_path, "slice_*.dslice")) + dslice_files = list(model_path.glob("slice_*.dslice")) + if not dslice_files: + return + logging.debug(SYNC_LOG_PREFIX + f"Extracting DSlices for model {model_path}...") + for dslice_file in dslice_files: + # extracted_path = os.path.splitext(dslice_file)[0] + extracted_path = dslice_file.with_suffix("") # remove .dslice suffix + if extracted_path.exists(): + # Extracted folder already exists, but the .dslice file is not deleted + # that means we probably interrupted extraction previously. Let's extract again + shutil.rmtree(extracted_path) + logging.info( + SYNC_LOG_PREFIX + + f"Extracting DSlice file {dslice_file} to {extracted_path}..." + ) + Converter.convert( + path=dslice_file, + output_type="dirs", + output_path=extracted_path, + cleanup=True, + ) + # `cleanup=True` doesn't work for some reason, so we manually delete the .dslice file + dslice_file.unlink(missing_ok=True) + + @classmethod + def compile_dslices(cls, model_path: Path | str) -> None: + """ + Compile DSperse slices in a folder if there are any. + """ + logging.debug( + f"Checking compilation status for DSperse slices in {model_path.name}..." + ) + model_path = Path(model_path) + compiler = Compiler() + for slice_dir in model_path.glob("slice_*"): + if not slice_dir.is_dir(): + continue + + metadata = cls.get_slice_metadata(slice_dir) + is_compiled = ( + metadata.get("slices", [{}])[0] + .get("compilation", {}) + .get("ezkl", {}) + .get("compiled", False) + ) + if is_compiled: + logging.debug( + f"DSlice {slice_dir.name} is already compiled. Skipping compilation." + ) + continue + + logging.info( + f"Compiling DSlice {slice_dir.name} in model {model_path.name}..." + ) + compiler.compile(model_path=slice_dir) diff --git a/neurons/utils/pre_flight.py b/neurons/utils/pre_flight.py index 1103f4c7..29532c42 100644 --- a/neurons/utils/pre_flight.py +++ b/neurons/utils/pre_flight.py @@ -1,20 +1,18 @@ import asyncio import json -import glob import os -import shutil import subprocess import time import traceback from collections import OrderedDict from functools import partial +from pathlib import Path from typing import Optional # trunk-ignore(pylint/E0611) import bittensor as bt import ezkl import requests -from dsperse.src.slice.utils.converter import Converter import cli_parser from constants import FIVE_MINUTES, IGNORED_MODEL_HASHES, Roles @@ -174,6 +172,9 @@ def sync_models(role: Optional[Roles] = None): """ Download SRS files and sync external files for all models in the deployment layer. """ + from execution_layer.dsperse_manager import DSperseManager + from execution_layer.circuit import CircuitType + MODEL_DIR = os.path.join(os.path.dirname(__file__), "..", "deployment_layer") loop = asyncio.get_event_loop() @@ -197,23 +198,23 @@ def sync_models(role: Optional[Roles] = None): f"{SYNC_LOG_PREFIX}Failed to download SRS for logrows={logrows}: {e}" ) - for model_hash in os.listdir(MODEL_DIR): - if not model_hash.startswith("model_"): + for model_path in Path(MODEL_DIR).iterdir(): + if not model_path.name.startswith("model_"): continue - if model_hash.split("_")[1] in IGNORED_MODEL_HASHES: + if model_path.name.split("_")[1] in IGNORED_MODEL_HASHES: bt.logging.info( SYNC_LOG_PREFIX - + f"Ignoring model {model_hash} as it is in the ignored list." + + f"Ignoring model {model_path} as it is in the ignored list." ) continue - # XXX: maybe use `meurons.execution_layer.circuit.CircuitMetadata` here? - metadata_file = os.path.join(MODEL_DIR, model_hash, "metadata.json") - if not os.path.isfile(metadata_file): + # XXX: maybe use `neurons.execution_layer.circuit.CircuitMetadata` here? + metadata_file = model_path / "metadata.json" + if not metadata_file.is_file(): bt.logging.error( SYNC_LOG_PREFIX - + f"Metadata file not found at {metadata_file} for {model_hash}. Skipping sync for this model." + + f"Metadata file not found at {metadata_file} for {model_path}. Skipping sync for this model." ) continue @@ -226,106 +227,82 @@ def sync_models(role: Optional[Roles] = None): ) continue - download_external_files(model_hash, metadata.get("external_files", {}), role) - download_dslices(model_hash, metadata.get("dslices", [])) - extract_dslices(model_hash) + external_files_model_path = ( + Path(cli_parser.config.full_path_models) / model_path.name + ) + download_external_files( + external_files_model_path, metadata.get("external_files", {}), role + ) + if metadata.get("type") == CircuitType.DSPERSE_PROOF_GENERATION: + download_dslices(external_files_model_path, metadata.get("dslices", [])) + DSperseManager.extract_dslices(external_files_model_path) + DSperseManager.compile_dslices(external_files_model_path) def download_external_files( - model_hash: str, external_files: dict, role: Optional[Roles] = None + target_dir: Path, external_files: dict, role: Optional[Roles] = None ): """ Sync external files for a model based on its metadata. """ if not external_files: return + target_dir.mkdir(parents=True, exist_ok=True) + for key, url in external_files.items(): if (role == Roles.VALIDATOR and key not in VALIDATOR_EXTERNAL_FILES) or ( role == Roles.MINER and key not in MINER_EXTERNAL_FILES ): bt.logging.info( SYNC_LOG_PREFIX - + f"Skipping {key} for {model_hash} as it is not required for the {role}." + + f"Skipping {key} for {target_dir.name} as it is not required for the {role}." ) continue - file_path = os.path.join(cli_parser.config.full_path_models, model_hash, key) - os.makedirs(os.path.dirname(file_path), exist_ok=True) - if os.path.isfile(file_path): + file_path = target_dir / key + + if file_path.is_file(): bt.logging.info( SYNC_LOG_PREFIX - + f"File {key} for {model_hash} already downloaded, skipping..." + + f"File {key} for {target_dir.name} already downloaded, skipping..." ) continue download_file(url, file_path) -def download_dslices(model_hash: str, dslices: list[dict]): +def download_dslices(target_dir: Path, dslices: list[dict]): """ Download DSperse slice files for a model if there are any. """ - # TODO: not tested yet if not dslices: return - bt.logging.debug(SYNC_LOG_PREFIX + f"Checking DSlices for model {model_hash}...") + bt.logging.debug( + SYNC_LOG_PREFIX + f"Checking DSlices for model {target_dir.name}..." + ) dslice_num = 0 for dslice_num, url in enumerate(dslices): if not url: # Skip if URL is missing bt.logging.warning( SYNC_LOG_PREFIX - + f"DSlice URL missing for slice {dslice_num} of {model_hash}, skipping..." + + f"DSlice URL missing for slice {dslice_num} of {target_dir.name}, skipping..." ) continue # dslice files are just zip archives, # but later on we extract them to a folder named after the file without extension # so in case that folder already exists, we skip downloading and extracting again - file_path = os.path.join( - cli_parser.config.full_path_models, - model_hash, - f"slice_{dslice_num}.dslice", - ) - extracted_path = os.path.splitext(file_path)[0] + file_path = target_dir / f"slice_{dslice_num}.dslice" + extracted_path = file_path.with_suffix("") # remove .dslice suffix # XXX: maybe we need to have some kind of versioning here and verification of the files? - if os.path.isdir(extracted_path) or os.path.isfile(file_path): + if extracted_path.is_dir() or file_path.is_file(): bt.logging.debug( SYNC_LOG_PREFIX - + f"Dsperse file for {model_hash} already downloaded, skipping..." + + f"Dsperse file for {target_dir.name} already downloaded, skipping..." ) else: download_file(url, file_path) -def extract_dslices(model_hash: str): - """ - Extract DSperse slice files for a model if there are any. - """ - model_path = os.path.join(cli_parser.config.full_path_models, model_hash) - dslice_files = glob.glob(os.path.join(model_path, "slice_*.dslice")) - if not dslice_files: - return - bt.logging.debug(SYNC_LOG_PREFIX + f"Extracting DSlices for model {model_hash}...") - for dslice_file in dslice_files: - extracted_path = os.path.splitext(dslice_file)[0] - if os.path.isdir(extracted_path): - # Extracted folder already exists, but the .dslice file is not deleted - # that means we probably interrupted extraction previously. Let's extract again - shutil.rmtree(extracted_path) - bt.logging.info( - SYNC_LOG_PREFIX - + f"Extracting DSlice file {dslice_file} to {extracted_path}..." - ) - Converter.convert( - path=dslice_file, - output_type="dirs", - output_path=extracted_path, - cleanup=True, - ) - if os.path.exists(dslice_file): - # `cleanup=True` doesn't work for some reason, so we manually delete the .dslice file - os.remove(dslice_file) - - -def download_file(url, file_path): +def download_file(url: str, file_path: Path | str): """ Download a file from a URL to a specified file path. """ From 8b6e359b9ca5b60f1b3c221e1f3d22682d8d0fad Mon Sep 17 00:00:00 2001 From: millioner Date: Sat, 13 Dec 2025 16:42:39 +0100 Subject: [PATCH 24/28] Tiniest fix ever --- neurons/_validator/core/request_pipeline.py | 1 - neurons/utils/pre_flight.py | 1 - 2 files changed, 2 deletions(-) diff --git a/neurons/_validator/core/request_pipeline.py b/neurons/_validator/core/request_pipeline.py index f36e381e..b2c2ad91 100644 --- a/neurons/_validator/core/request_pipeline.py +++ b/neurons/_validator/core/request_pipeline.py @@ -10,7 +10,6 @@ from _validator.api import ValidatorAPI from _validator.config import ValidatorConfig from _validator.core.request import Request -from _validator.models.base_rpc_request import QueuedRequestDataModel from _validator.models.request_type import RequestType from _validator.pow.proof_of_weights_handler import ProofOfWeightsHandler from _validator.scoring.score_manager import ScoreManager diff --git a/neurons/utils/pre_flight.py b/neurons/utils/pre_flight.py index 29532c42..cfb80ec2 100644 --- a/neurons/utils/pre_flight.py +++ b/neurons/utils/pre_flight.py @@ -278,7 +278,6 @@ def download_dslices(target_dir: Path, dslices: list[dict]): bt.logging.debug( SYNC_LOG_PREFIX + f"Checking DSlices for model {target_dir.name}..." ) - dslice_num = 0 for dslice_num, url in enumerate(dslices): if not url: # Skip if URL is missing bt.logging.warning( From 6042d08d63e76590548e63340fdcf47fb94749db Mon Sep 17 00:00:00 2001 From: millioner Date: Mon, 15 Dec 2025 20:49:20 +0100 Subject: [PATCH 25/28] Remve EZKL models --- .../input.py | 96 ------------------ .../metadata.json | 14 --- .../model.compiled | Bin 94694 -> 0 bytes .../settings.json | 1 - .../vk.key | Bin 5244615 -> 0 bytes .../input.py | 42 -------- .../metadata.json | 12 --- .../model.compiled | Bin 996961 -> 0 bytes .../network.onnx | Bin 126339 -> 0 bytes .../proof.json | 1 - .../settings.json | 1 - .../vk.key | Bin 1312455 -> 0 bytes .../input.py | 61 ----------- .../metadata.json | 14 --- .../model.compiled | Bin 26305 -> 0 bytes .../settings.json | 1 - .../vk.key | Bin 5244551 -> 0 bytes 17 files changed, 243 deletions(-) delete mode 100644 neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/input.py delete mode 100644 neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/metadata.json delete mode 100644 neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/model.compiled delete mode 100644 neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/settings.json delete mode 100644 neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/vk.key delete mode 100644 neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/input.py delete mode 100644 neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/metadata.json delete mode 100644 neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/model.compiled delete mode 100644 neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/network.onnx delete mode 100644 neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/proof.json delete mode 100644 neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/settings.json delete mode 100644 neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/vk.key delete mode 100644 neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/input.py delete mode 100644 neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/metadata.json delete mode 100644 neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/model.compiled delete mode 100644 neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/settings.json delete mode 100644 neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/vk.key diff --git a/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/input.py b/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/input.py deleted file mode 100644 index 359e002d..00000000 --- a/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/input.py +++ /dev/null @@ -1,96 +0,0 @@ -from __future__ import annotations -from pydantic import BaseModel -from execution_layer.base_input import BaseInput -from execution_layer.input_registry import InputRegistry -from _validator.models.request_type import RequestType -import random -import secrets - -SUCCESS_WEIGHT = 1 -DIFFICULTY_WEIGHT = 1 -TIME_ELAPSED_WEIGHT = 0.3 -FAILED_PENALTY_WEIGHT = 0.4 -ALLOCATION_WEIGHT = 0.21 -POW_MIN_DIFFICULTY = 7 -POW_MAX_DIFFICULTY = 12 -POW_TIMEOUT = 30.0 -BATCH_SIZE = 256 - - -class CircuitInputSchema(BaseModel): - challenge_attempts: list[int] - challenge_successes: list[int] - last_20_challenge_failed: list[int] - challenge_elapsed_time_avg: list[float] - last_20_difficulty_avg: list[float] - has_docker: list[bool] - uid: list[int] - allocated_uids: list[int] - penalized_uids: list[int] - validator_uids: list[int] - success_weight: list[float] - difficulty_weight: list[float] - time_elapsed_weight: list[float] - failed_penalty_weight: list[float] - allocation_weight: list[float] - pow_timeout: list[float] - pow_min_difficulty: list[float] - pow_max_difficulty: list[float] - nonce: list[int] - - -@InputRegistry.register( - "1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4" -) -class CircuitInput(BaseInput): - - schema = CircuitInputSchema - - def __init__( - self, request_type: RequestType, data: dict[str, object] | None = None - ): - super().__init__(request_type, data) - - @staticmethod - def generate() -> dict[str, object]: - return { - "challenge_attempts": [random.randint(5, 10) for _ in range(BATCH_SIZE)], - "challenge_successes": [random.randint(4, 8) for _ in range(BATCH_SIZE)], - "last_20_challenge_failed": [ - random.randint(0, 20) for _ in range(BATCH_SIZE) - ], - "challenge_elapsed_time_avg": [ - 4.0 + random.random() * 4.0 for _ in range(BATCH_SIZE) - ], - "last_20_difficulty_avg": [ - POW_MIN_DIFFICULTY - + random.random() * (POW_MAX_DIFFICULTY - POW_MIN_DIFFICULTY) - for _ in range(BATCH_SIZE) - ], - "has_docker": [random.random() < 0.5 for _ in range(BATCH_SIZE)], - "uid": [random.randint(0, 255) for _ in range(BATCH_SIZE)], - "allocated_uids": [random.randint(0, 255) for _ in range(256)], - "penalized_uids": [random.randint(0, 255) for _ in range(256)], - "validator_uids": [random.randint(0, 255) for _ in range(256)], - "success_weight": [SUCCESS_WEIGHT], - "difficulty_weight": [DIFFICULTY_WEIGHT], - "time_elapsed_weight": [TIME_ELAPSED_WEIGHT], - "failed_penalty_weight": [FAILED_PENALTY_WEIGHT], - "allocation_weight": [ALLOCATION_WEIGHT], - "pow_timeout": [POW_TIMEOUT], - "pow_min_difficulty": [POW_MIN_DIFFICULTY], - "pow_max_difficulty": [POW_MAX_DIFFICULTY], - "nonce": [secrets.randbits(32)], - } - - @staticmethod - def validate(data: dict[str, object]) -> None: - return CircuitInputSchema(**data) - - @staticmethod - def process(data: dict[str, object]) -> dict[str, object]: - """ - Add a random nonce to ensure that the request is not reused. - """ - data["nonce"] = [secrets.randbits(32)] - return data diff --git a/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/metadata.json b/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/metadata.json deleted file mode 100644 index 66e77f1a..00000000 --- a/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/metadata.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "SN27 PoW 256", - "description": "The validator's reward model for SN27, designed to batch a single round of weight updates (256 changes per proof).", - "author": "Inference Labs", - "version": "0.0.9", - "proof_system": "EZKL", - "netuid": 27, - "weights_version": 160, - "type": "proof_of_weights", - "external_files": { - "pk.key": "https://sn2-storage.inferencelabs.com/1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/pk.key" - }, - "benchmark_choice_weight": 0.2 -} diff --git a/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/model.compiled b/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/model.compiled deleted file mode 100644 index 39365c3b9976a61be66de43d998933adf81639aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94694 zcmeI)*_LEQ6~^%@2SgB@7zL$qY!%uD1yQC3oLa#NrzI+rAc%OQS9;^}AzVC$kHDK@ z?9BL`ii)hHGU*#Azq3}=j@YsHw1PUPuawfgmg&FlT$^?_y&$Kj>3G}fcKtelUx z#`}6_8Cx2YxTLqqk;>Ap)SV|SiHJn?Kc*o-!tBR}fVjdoULyrLv@1@Vj$C>I#L?IP zpoC^C=jPs*FHV?zeR1lrbmdT*UHuPB=yrpQ1ab2MW+DA+By?L_$=Ffj$Tv@9j-|(c?WDgkaS7riDo((H zJ|eJL`}x#kL=y4q29auR%u0ediDpHB|9XMVZp>yFo15|%`^gq@I6gl{hRlj_8D>p{ z#76}-TbsNv-q39`!*zTI(PM|eWz&LSOl|!ow>Qj%f1%zJmc9T9+XN+uugyDN#@)4} z``n`>3LwD$iBYY!$H#jd5-;BvKTA)4ypxr)F<}YY1PKtVTRUDGf)WHtWC`fsB(U2O zJgh-K<(E|Lx+JqiJi|UeD)#L*rTB`giypi7u78VlUKmqbf646)bK$>5V6!`)FOrDd zI*3$r<2FbTC(#lKSkq9-Tx~&UrdDHZ9~nsyOjqA`=2i$D518# zIe=y^{I?5icIR6uiO8o1k!o(-N(tg5niT=J@-qUPMXWZV@uT70h}9jHs}_yZPGoa2 z=Q|{Jt4|+cVe<9qSi5}wa{`;)`Hn~;a_1mY%{p{VP>c!GIN!PI4A-_C`tm+IQYaDIQsgZTZb<>PAK_z4&&97&n-?JmaaOVm(cCT&Xyod5hh=s4oLLme^p?&4nle2 zh4Isq&wrP|ZXI;$IoO2B*QZ0D9{=3}o2_%gA$|xYdwcYDm#)*EJTcJ{=8u{1+>zUpr4y65RJtXtsRyK#r4CRG55ylQBtp{PzlMw)Fcy z(=WGX{j}@94^=(!+w_go)BpNPWBsdZuR!-t_{*hzbf%npY+ReUlAx`xhRLbL{|$l7 z9zPS#)&1Cd$zNa;VVVq8mNcbEtO_X%v4uXf)qP%M%JZGE*tQOkz9UtqI4?@CFq zeRB}mcL63ug0}v=0JZoZ5ZLU_3y_4ux88|}BqHA)M5EL8O}VBo!4VU*BX{dioCwYtX6j=*O31wJ2m+l~RX z)l&PrLv28g@AeiTSVI#3_Xd$_)_cV25+Gsr6C@!1`vRM-ZNH}Sui8x~zBtI2Mu$E< z{vQbJc78i^M}^7Pr$e6}f1l(kd_DK|8{jUV!L-zx&oMRBR*V0K5}Vz(HZ2nKhm0C( ztHu8#iQUeRuiYn1zCIoL^!T3?*lg`q$KHwW_j6Khq`ID3o7L}AMa)DJ(H{>Y)tnFE zai%pczuI-t(V)lwlXckY_t6uu+WjX!0dqY%EIs|74*L7<5_2U%TVD-pQ;Yv+0-N2p zHZ2mTJsoPP{d0-$pf)WM+umlZTP?Mpme}q5blB~}0-GJr@Rwg622NASMpC16CwD^spx#%-a3uT=cZ%f^!R@zu-Sb#6fF{`Z78+W{~{XhdU_g{&rQeL z==ofIR$#aF7I;`sLH$UU)MFOE1`+Yk32e52UDf-yHS2w~yGZCReOd-gnC0(pXP0V+ z4o~l@uhtWSyER|#)7JM~4>YIeC3aius`~29->^P5#XmRo=~_H}{uieBx!zsV`1Mnt z9yeX}=<~lQu-W3>H~pp7Jn=o|rZzBMbXa=&e;k8bd;Vy-b{dz@O~?G{@xLUn+xek+ zWEz*xO@}@`{`sTXo~-flq?ET!mk!-O32b)XgT_51L0ex9Yf_8<6@lH(d+g?EeBNX9 zgwa)xKL4u%yWPf6o^bhe>G1zqV6*!&oDb*w2d!$V!K$VI+7v&(D?U7p%jc%U($oKo zz-EW%vYyEkpG*1D=&^s92{OgfBxV983LDY zoobi+DRAKNvBtL9iaV5Cwj6!+!xnGOTpfV*ytfyU*@r*~gg^*{KnR3D2!ucggg^*{KnR3D z2!ucggg^*{KnR3D2!ucggg^*{KnVDs8$u!kLLdY}AOu1n1VSJLLLdY}AOu1n1VSJL zLLdY}AOu1n1VSJLLLdY}AOu3-3=qiw2XF>%VwMmBArJx~5CS0(0wE9rArJx~5CS0( z0wE9rArJx~5CS0(0wE9rArJx~5CWY*{th5pAp}Ao1VSJLLLdY}AOu1n1VSJLLLdY} zAOu1n1VSJLLLdY}AOu1n1VSJL&JKb69l+VSmsv>&gg^*{KnR3D2!ucggg^*{KnR3D z2!ucggg^*{KnR3D2!ucggg^*{KnUdT0I~-{AOu1n1VSJLLLdY}AOu1n1VSJLLLdY} zAOu1n1VSJLLLdY}AOu1n1VZ5K5Xj#FoSl1_m4rYDgg^*{KnR3D2!ucggg^*{KnR3D z2!ucggg^*{KnR3D2!ucggg^*{K>iLOdmsctAOu1n1VSJLLLdY}AOu1n1VSJLLLdY} zAOu1n1VSJLLLdY}AOu1n1kMhD{2jpAxtCc<2!ucggg^*{KnR3D2!ucggg^*{KnR3D o2!ucggg^*{KnR3D2!ucgguwqjfnEO$AaN&em0h`fBKu4EC2ui diff --git a/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/settings.json b/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/settings.json deleted file mode 100644 index e7ce67ff..00000000 --- a/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/settings.json +++ /dev/null @@ -1 +0,0 @@ -{"run_args":{"input_scale":19,"param_scale":19,"scale_rebase_multiplier":1,"lookup_range":[0,1048584],"logrows":21,"num_inner_cols":2,"variables":[["batch_size",1]],"input_visibility":"Public","output_visibility":"Public","param_visibility":"Fixed","rebase_frac_zero_constants":false,"check_mode":"UNSAFE","commitment":"KZG","decomp_base":16384,"decomp_legs":3,"bounded_log_lookup":false,"ignore_range_check_inputs_outputs":false,"epsilon":null},"num_rows":759861,"total_assignments":1519723,"total_const_size":13,"total_dynamic_col_size":0,"max_dynamic_input_len":0,"num_dynamic_lookups":0,"num_shuffles":0,"total_shuffle_col_size":0,"model_instance_shapes":[[256],[256],[256],[256],[256],[256],[256],[256],[256],[256],[1],[1],[1],[1],[1],[1],[1],[1],[1],[256],[1]],"model_output_scales":[19,0],"model_input_scales":[0,0,0,19,19,0,0,0,0,0,19,19,19,19,19,19,19,19,0],"module_sizes":{"polycommit":[],"poseidon":[0,[0]]},"required_lookups":[{"Pow":{"scale":524288.0,"a":1.5}}],"required_range_checks":[[0,16383],[-1,1],[0,1]],"check_mode":"UNSAFE","version":"22.0.1","num_blinding_factors":null,"timestamp":1745940392009,"input_types":["Int","Int","Int","F32","F32","Bool","Int","Int","Int","Int","F32","F32","F32","F32","F32","F32","F32","F32","Int"],"output_types":["F32","Int"]} \ No newline at end of file diff --git a/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/vk.key b/neurons/deployment_layer/model_1876cfa9fb3c418b2559f3f7074db20565b5ca7237efdd43b907d9d697a452c4/vk.key deleted file mode 100644 index 3210f7cb046fe09dfdc9f9402498dd810660081a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5244615 zcmeF)37nl(c{t!Z$zZ~k1Q3d4NkA4wL1YmW+l+vy7zNa@xd25`5fMa1WyzpYtgI?3 zEfql&5h|d#ASew55djU02t}+BaA9kMB2Yo*5B;_O&YVm0ayZ|2=H8iSekt|b_ndcm zzHe@BZe}J^R~=ZT)9F02+mbcrZ1GqBa@gv}+;jFuhg~;o+net=agW=6@w;d4df2>6 zSKRQ|x4rM$v(DN4kprGHf6d!Y{o>A7uR6H-jE^7qhR+>w+!>#J)y!wyc*+YG9JJ*z zH~z?I}d#Hxck2J{p~Jz+sa#C^Q*O<``yI@ubg|`fj|7@b5~k$>zvIt-|s)( zzvoLYTKw^i?qBZ8cf4n z#}C{zbi@Vg%-rYbZ=5u6?R|UQee%0D{NtPhe(>=l=6`1UUDn?6-c{DUV&J9UnX&wL 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 z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PDA8fyYM1epvGuE#Q6_tuZpfgU4tA_rqunpC9fA_rqub_rqun&kybg_rqub_rqun z&kwclho|x$fjtB!s=%XTpMFLLChDN(B0zuu0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pkJuHy^yx>14KR?)dEC>%CqXpa#qcuiGc<>l4;C>jb;q$}& z;C>h_;C>jb;rYS+;C>h_;C>jb(fsp+e;=ra-<;7J0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5;K29mSZ zV?lWE7%kv_7_HIi@Zd38!2K{+l!Tm5=!2K{blWSbl5+Fc;009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5;& zo)k!bUa={13i%G_nWa$)5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U 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 zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB=Cu1>O(C$7aNEYX9hPn*<0DAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N 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 diff --git a/neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/input.py b/neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/input.py deleted file mode 100644 index e8b4613c..00000000 --- a/neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/input.py +++ /dev/null @@ -1,42 +0,0 @@ -from __future__ import annotations -from pydantic import BaseModel -from execution_layer.base_input import BaseInput -from execution_layer.input_registry import InputRegistry -from _validator.models.request_type import RequestType -import random - -LIST_SIZE = 5 - - -class CircuitInputSchema(BaseModel): - list_items: list[float] - - -@InputRegistry.register( - "31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5" -) -class CircuitInput(BaseInput): - - schema = CircuitInputSchema - - def __init__( - self, request_type: RequestType, data: dict[str, object] | None = None - ): - super().__init__(request_type, data) - - @staticmethod - def generate() -> dict[str, object]: - return { - "list_items": [random.uniform(0.0, 0.85) for _ in range(LIST_SIZE)], - } - - @staticmethod - def validate(data: dict[str, object]) -> None: - return CircuitInputSchema(**data) - - @staticmethod - def process(data: dict[str, object]) -> dict[str, object]: - """ - No processing needs to take place, as all inputs are randomized. - """ - return data diff --git a/neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/metadata.json b/neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/metadata.json deleted file mode 100644 index bff85d8f..00000000 --- a/neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/metadata.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "LSTM", - "description": "Default LSTM benchmarker model.", - "author": "Inference Labs", - "version": "0.0.7", - "proof_system": "EZKL", - "type": "proof_of_computation", - "external_files": { - "pk.key": "https://sn2-storage.inferencelabs.com/31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/pk.key" - }, - "benchmark_choice_weight": 0.2 -} diff --git a/neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/model.compiled b/neurons/deployment_layer/model_31df94d233053d9648c3c57362d9aa8aaa0f77761ac520af672103dbb387a6a5/model.compiled deleted file mode 100644 index 225cba34abce3284225a05aa4744a97574ec8ece..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996961 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%0D>3j*IOfX^c^ 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󝯯 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%0AU4 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 dict[str, object]: - return { - "scores": [random.random() for _ in range(BATCH_SIZE)], - "top_tier_pct": [TOP_TIER_PCT], - "next_tier_pct": [NEXT_TIER_PCT], - "top_tier_weight": [TOP_TIER_WEIGHT], - "next_tier_weight": [NEXT_TIER_WEIGHT], - "bottom_tier_weight": [BOTTOM_TIER_WEIGHT], - "nonce": [secrets.randbits(32)], - } - - @staticmethod - def validate(data: dict[str, object]) -> None: - return CircuitInputSchema(**data) - - @staticmethod - def process(data: dict[str, object]) -> dict[str, object]: - """ - Add a random nonce to ensure that the request is not reused. - """ - data["nonce"] = [secrets.randbits(32)] - return data diff --git a/neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/metadata.json b/neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/metadata.json deleted file mode 100644 index 30668454..00000000 --- a/neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/metadata.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "SN48 PoW", - "description": "Generates weights based on miner scoring data from SN48.", - "author": "Inference Labs", - "version": "0.0.4", - "proof_system": "EZKL", - "netuid": 48, - "weights_version": 0, - "type": "proof_of_weights", - "external_files": { - "pk.key": "https://sn2-storage.inferencelabs.com/43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/pk.key" - }, - "benchmark_choice_weight": 0.2 -} diff --git a/neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/model.compiled b/neurons/deployment_layer/model_43ecaacaded5ed16c9e08bc054366e409c7925245eca547472b27f2a61469cc5/model.compiled deleted file mode 100644 index 653e5c6d49c6a01dc3f5659bb9b478c79a88594e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26305 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 zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ 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 zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5;& zOo9GK`|d|wl>h+(1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5NKCmf13Kxo$6`?2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pkjS2h@ DN8|SY From c1b09b24babb9536a6d1748e41e8b0aadf841cc7 Mon Sep 17 00:00:00 2001 From: millioner Date: Mon, 15 Dec 2025 20:58:04 +0100 Subject: [PATCH 26/28] Pull DSperse from main branch --- pyproject.toml | 2 +- requirements.txt | 2 +- uv.lock | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 1f2d192b..a6a0328c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,7 +75,7 @@ pythonpath = [".", "neurons"] [tool.uv.sources] torch = { index = "pytorch" } -dsperse = { git = "https://github.com/inference-labs-inc/dsperse.git", rev = "dsperse-integration" } +dsperse = { git = "https://github.com/inference-labs-inc/dsperse.git", rev = "main" } [[tool.uv.index]] name = "pytorch" diff --git a/requirements.txt b/requirements.txt index 47d8cc3e..dd031d98 100644 --- a/requirements.txt +++ b/requirements.txt @@ -313,7 +313,7 @@ decorator==5.2.1 \ # via # ipython # retry -dsperse @ git+https://github.com/inference-labs-inc/dsperse.git@8a8204d366c87f9d39cdc2abc4bd5560bdfa75da +dsperse @ git+https://github.com/inference-labs-inc/dsperse.git@f18597b761e31cd10f4342ddb11897154814f4de # via subnet-2 ecdsa==0.19.1 \ --hash=sha256:30638e27cf77b7e15c4c4cc1973720149e1033827cfd00661ca5c8cc0cdb24c3 \ diff --git a/uv.lock b/uv.lock index d00589f6..67ae3844 100644 --- a/uv.lock +++ b/uv.lock @@ -598,7 +598,7 @@ wheels = [ [[package]] name = "dsperse" version = "1.0.1" -source = { git = "https://github.com/inference-labs-inc/dsperse.git?rev=dsperse-integration#8a8204d366c87f9d39cdc2abc4bd5560bdfa75da" } +source = { git = "https://github.com/inference-labs-inc/dsperse.git?rev=main#f18597b761e31cd10f4342ddb11897154814f4de" } dependencies = [ { name = "colorama" }, { name = "ezkl" }, @@ -2226,7 +2226,7 @@ requires-dist = [ { name = "bittensor", specifier = "==9.9.0" }, { name = "boto3", specifier = ">=1.36.13" }, { name = "botocore", specifier = ">=1.37.19" }, - { name = "dsperse", git = "https://github.com/inference-labs-inc/dsperse.git?rev=dsperse-integration" }, + { name = "dsperse", git = "https://github.com/inference-labs-inc/dsperse.git?rev=main" }, { name = "ezkl", specifier = "==22.2.1" }, { name = "fastapi", specifier = "==0.110.3" }, { name = "gitpython", specifier = ">=3.1.44" }, From 2f7b5e47067a19b66f14fbb7e9a7b43edf1914d0 Mon Sep 17 00:00:00 2001 From: millioner Date: Mon, 15 Dec 2025 21:35:22 +0100 Subject: [PATCH 27/28] Some fixes suggested by AI wisdom :kneeling_man: --- neurons/_miner/miner_session.py | 29 ++++++++++++------- neurons/_validator/core/response_processor.py | 2 ++ neurons/_validator/core/validator_loop.py | 8 ++++- neurons/_validator/models/request_type.py | 2 +- neurons/_validator/utils/hash_guard.py | 2 +- neurons/execution_layer/dsperse_manager.py | 9 +++--- 6 files changed, 34 insertions(+), 18 deletions(-) diff --git a/neurons/_miner/miner_session.py b/neurons/_miner/miner_session.py index b24d4896..a2a15498 100644 --- a/neurons/_miner/miner_session.py +++ b/neurons/_miner/miner_session.py @@ -357,19 +357,26 @@ def handleDSliceRequest(self, data: DSliceProofGenerationDataModel) -> JSONRespo """ Handle DSlice proof generation requests from validators. """ - bt.logging.info( - f"Handling DSlice proof generation request for slice_num={data.slice_num} run_uid={data.run_uid}" - ) + try: + bt.logging.info( + f"Handling DSlice proof generation request for slice_num={data.slice_num} run_uid={data.run_uid}" + ) - result = self.dsperse_manager.prove_slice( - circuit_id=data.circuit, - slice_num=data.slice_num, - inputs=data.inputs, - outputs=data.outputs, - ) + result = self.dsperse_manager.prove_slice( + circuit_id=data.circuit, + slice_num=data.slice_num, + inputs=data.inputs, + outputs=data.outputs, + ) - # Implementation for handling DSlice slice requests goes here - return JSONResponse(content=result, status_code=200) + # Implementation for handling DSlice slice requests goes here + return JSONResponse(content=result, status_code=200) + except Exception as e: + bt.logging.error(f"Error handling DSlice request: {str(e)}") + traceback.print_exc() + return JSONResponse( + content={"error": "An internal error occurred."}, status_code=500 + ) def queryZkProof(self, data: QueryZkProof) -> JSONResponse: """ diff --git a/neurons/_validator/core/response_processor.py b/neurons/_validator/core/response_processor.py index b853559f..68b6fd21 100644 --- a/neurons/_validator/core/response_processor.py +++ b/neurons/_validator/core/response_processor.py @@ -83,6 +83,7 @@ def _verify_response_proof( slice_num=response.dsperse_slice_num, proof=response.proof_content, ) + # Check if the entire DSperse run is complete and clean up if so: self.dsperse_manager.check_run_completion( run_uid=response.dsperse_run_uid, remove_completed=True ) @@ -90,6 +91,7 @@ def _verify_response_proof( if not response.public_json: raise ValueError(f"Public signals not found in for UID: {response.uid}") inference_session = VerifiedModelSession( + # hardcoded request type as RWR because we don't want to regenerate inputs GenericInput(RequestType.RWR, response.public_json), response.circuit, ) diff --git a/neurons/_validator/core/validator_loop.py b/neurons/_validator/core/validator_loop.py index 3ae00389..5d4c4869 100644 --- a/neurons/_validator/core/validator_loop.py +++ b/neurons/_validator/core/validator_loop.py @@ -531,8 +531,14 @@ def _reschedule_request(self, request: Request) -> None: ) return + if not request.queued_request: + bt.logging.debug( + f"No queued request found for rescheduling for UID {request.uid}" + ) + return + bt.logging.info( - f"Rescheduling {request.request_type.name} request for UID {request.uid}" + f"Rescheduling {request.request_type.name} request for UID {request.uid}..." ) # Remove hash from HashGuard to allow retry diff --git a/neurons/_validator/models/request_type.py b/neurons/_validator/models/request_type.py index 005347c6..282e89f3 100644 --- a/neurons/_validator/models/request_type.py +++ b/neurons/_validator/models/request_type.py @@ -25,7 +25,7 @@ def __str__(self) -> str: return "Benchmark" elif self == RequestType.RWR: return "Real World Request" - elif self == RequestType.DSPERSE: + elif self == RequestType.DSLICE: return "DSperse Request (one slice)" else: raise ValueError(f"Unknown request type: {self}") diff --git a/neurons/_validator/utils/hash_guard.py b/neurons/_validator/utils/hash_guard.py index 18ea9e1d..1eb9fd62 100644 --- a/neurons/_validator/utils/hash_guard.py +++ b/neurons/_validator/utils/hash_guard.py @@ -22,7 +22,7 @@ def remove_hash(self, hash_value: str) -> None: """ Remove a hash from the guard. """ - if hash_value in self.hash_set: + if hash_value and hash_value in self.hash_set: self.hash_set.remove(hash_value) self.hash_queue.remove(hash_value) diff --git a/neurons/execution_layer/dsperse_manager.py b/neurons/execution_layer/dsperse_manager.py index c92b4e13..5685211b 100644 --- a/neurons/execution_layer/dsperse_manager.py +++ b/neurons/execution_layer/dsperse_manager.py @@ -309,14 +309,15 @@ def _get_slice_settings(self, circuit: Circuit, slice_num: str) -> dict: settings = json.load(f) return settings - def _parse_dsperse_result(self, result: dict, execution_type: str) -> dict: + def _parse_dsperse_result( + self, result: dict, execution_type: str + ) -> tuple[str | None, dict]: execution_results = result.get("execution_chain", {}).get( "execution_results", [] ) - execution_result = execution_results[0] if execution_results else None + execution_result = execution_results[0] if execution_results else {} if not execution_result: logging.error(f"No execution results found in proof generation result.") - return None slice_id = execution_result.get("slice_id", None) execution = execution_result.get(f"{execution_type}_execution", {}) @@ -374,10 +375,10 @@ def compile_dslices(cls, model_path: Path | str) -> None: """ Compile DSperse slices in a folder if there are any. """ + model_path = Path(model_path) logging.debug( f"Checking compilation status for DSperse slices in {model_path.name}..." ) - model_path = Path(model_path) compiler = Compiler() for slice_dir in model_path.glob("slice_*"): if not slice_dir.is_dir(): From c19b98d04b23f91f11e0a2f2037973ca7bbc408a Mon Sep 17 00:00:00 2001 From: millioner Date: Mon, 15 Dec 2025 21:52:17 +0100 Subject: [PATCH 28/28] More fixes suggested by AI wisdom :kneeling_man: :kneeling_person: :kneeling_woman: --- neurons/_miner/miner_session.py | 1 - neurons/_validator/core/response_processor.py | 2 +- pyproject.toml | 2 +- uv.lock | 4 ++-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/neurons/_miner/miner_session.py b/neurons/_miner/miner_session.py index a2a15498..b712fbb7 100644 --- a/neurons/_miner/miner_session.py +++ b/neurons/_miner/miner_session.py @@ -369,7 +369,6 @@ def handleDSliceRequest(self, data: DSliceProofGenerationDataModel) -> JSONRespo outputs=data.outputs, ) - # Implementation for handling DSlice slice requests goes here return JSONResponse(content=result, status_code=200) except Exception as e: bt.logging.error(f"Error handling DSlice request: {str(e)}") diff --git a/neurons/_validator/core/response_processor.py b/neurons/_validator/core/response_processor.py index 68b6fd21..67867231 100644 --- a/neurons/_validator/core/response_processor.py +++ b/neurons/_validator/core/response_processor.py @@ -89,7 +89,7 @@ def _verify_response_proof( ) else: if not response.public_json: - raise ValueError(f"Public signals not found in for UID: {response.uid}") + raise ValueError(f"Public signals not found for UID: {response.uid}") inference_session = VerifiedModelSession( # hardcoded request type as RWR because we don't want to regenerate inputs GenericInput(RequestType.RWR, response.public_json), diff --git a/pyproject.toml b/pyproject.toml index a6a0328c..9d2399e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,7 +75,7 @@ pythonpath = [".", "neurons"] [tool.uv.sources] torch = { index = "pytorch" } -dsperse = { git = "https://github.com/inference-labs-inc/dsperse.git", rev = "main" } +dsperse = { git = "https://github.com/inference-labs-inc/dsperse.git", rev = "f18597b761e31cd10f4342ddb11897154814f4de" } [[tool.uv.index]] name = "pytorch" diff --git a/uv.lock b/uv.lock index 67ae3844..6f3228fa 100644 --- a/uv.lock +++ b/uv.lock @@ -598,7 +598,7 @@ wheels = [ [[package]] name = "dsperse" version = "1.0.1" -source = { git = "https://github.com/inference-labs-inc/dsperse.git?rev=main#f18597b761e31cd10f4342ddb11897154814f4de" } +source = { git = "https://github.com/inference-labs-inc/dsperse.git?rev=f18597b761e31cd10f4342ddb11897154814f4de#f18597b761e31cd10f4342ddb11897154814f4de" } dependencies = [ { name = "colorama" }, { name = "ezkl" }, @@ -2226,7 +2226,7 @@ requires-dist = [ { name = "bittensor", specifier = "==9.9.0" }, { name = "boto3", specifier = ">=1.36.13" }, { name = "botocore", specifier = ">=1.37.19" }, - { name = "dsperse", git = "https://github.com/inference-labs-inc/dsperse.git?rev=main" }, + { name = "dsperse", git = "https://github.com/inference-labs-inc/dsperse.git?rev=f18597b761e31cd10f4342ddb11897154814f4de" }, { name = "ezkl", specifier = "==22.2.1" }, { name = "fastapi", specifier = "==0.110.3" }, { name = "gitpython", specifier = ">=3.1.44" },