Repository: pex-tool/pex

Issue:
Not raise an issue if a package misses an artifact in `pylock.toml`?
Hi,

Consider the following pyproject.toml:

```toml
[project]
name = "example"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = ["cuml-cu12==25.8", "ray[data]==2.47.1", "torch==2.6.0+cu124"]

[[tool.uv.index]]
url = "https://download.pytorch.org/whl/cu124"
```

With (upstream, not modified) UV, this exports in the following [pylock.toml](https://github.com/user-attachments/files/22002940/pylock.toml.txt). This includes the following:

```toml
[[packages]]
name = "nvidia-cublas-cu12"
version = "12.4.5.8"
marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
index = "https://download.pytorch.org/whl/cu124"
wheels = [
    { url = "https://download.pytorch.org/whl/cu124/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_aarch64.whl", hashes = { sha256 = "0f8aa1706812e00b9f19dfe0cdb3999b092ccb8ca168c0db5b8ea712456fd9b3" } },
    { url = "https://download.pytorch.org/whl/cu124/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "2fc8da60df463fdefa81e323eef2e36489e1c94335b5358bcb38360adf75ac9b" } },
    { url = "https://download.pytorch.org/whl/cu124/nvidia_cublas_cu12-12.4.5.8-py3-none-win_amd64.whl", hashes = { sha256 = "5a796786da89203a0657eda402bcdcec6180254a8ac22d72213abc42069522dc" } },
]

[[packages]]
name = "nvidia-cublas-cu12"
version = "12.9.1.4"
marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
index = "https://download.pytorch.org/whl/cu124"
```
where the latter package contains no artifacts. According to the UV authors https://github.com/astral-sh/uv/issues/15521#issuecomment-3223433094 this is intended behaviour, because there is no resolution possible for the situation `platform_machine == 'x86_64' and sys_platform == 'darwin'`. Instead, they throw an error when trying to install the lock in such a situation. 

The [spec](https://packaging.python.org/en/latest/specifications/pylock-toml/#packages-wheels) does not seem to explicitly state that an artifact must be available. 

> [[packages.wheels]]
> Type: array of tables
> 
> Required?: no; mutually-exclusive with [[packages.vcs]](https://packaging.python.org/en/latest/specifications/pylock-toml/#pylock-packages-vcs), [[packages.directory]](https://packaging.python.org/en/latest/specifications/pylock-toml/#pylock-packages-directory), and [[packages.archive]](https://packaging.python.org/en/latest/specifications/pylock-toml/#pylock-packages-archive)

Would it perhaps be an option to similarly have the pylock.toml parsing in PEX tolerate the absence of artifacts, and only raise an error when trying to install?

Thanks!


Discussion:
Hrm, yes. It's not much of a spec!
For the record, the failure is:
```console
:; pex --pylock ~/support/pex/issues/2887/pylock.toml 
Failed to parse the PEP-751 lock at /home/jsirois/support/pex/issues/2887/pylock.toml. Error parsing content at packages[47]{name = "nvidia-cublas-cu12"}.
Package must define an artifact.
```
Alright @pimdh , hopefully https://github.com/pex-tool/pex/releases/tag/v2.54.1 does the trick.
Thanks!!!



Patch:
diff --git a/CHANGES.md b/CHANGES.md
index 0964877e6..3de28fdc8 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,5 +1,12 @@
 # Release Notes
 
+## 2.54.1
+
+This release fixes `--pylock` handling to tolerate locked packages with no artifacts and just warn
+(if PEX warnings are enabled) that the package is being skipped for lack of artifacts.
+
+* Handle `pylock.toml` packages with no artifacts. (#2888)
+
 ## 2.54.0
 
 This release adds a Pex PEX scie for riscv64.
diff --git a/pex/resolve/lockfile/pep_751.py b/pex/resolve/lockfile/pep_751.py
index 26338358b..8d86c7a54 100644
--- a/pex/resolve/lockfile/pep_751.py
+++ b/pex/resolve/lockfile/pep_751.py
@@ -7,7 +7,7 @@
 import sys
 from collections import OrderedDict, defaultdict, deque
 
-from pex import toml
+from pex import pex_warnings, toml
 from pex.artifact_url import RANKED_ALGORITHMS, VCS, ArtifactURL, Fingerprint, VCSScheme
 from pex.common import pluralize
 from pex.compatibility import text, urlparse
@@ -863,7 +863,7 @@ def parse_url_or_path(self, parse_context):
         return ArtifactURL.parse(url)
 
     def parse(self, indexed_package):
-        # type: (IndexedPackage) -> Union[Package, Error]
+        # type: (IndexedPackage) -> Union[Optional[Package], Error]
 
         index = indexed_package.index
         package = self.parsed_packages_by_index.get(index)
@@ -1106,7 +1106,12 @@ def check_mutually_exclusive(
                         artifact = wheel_artifact
 
         if artifact is None:
-            return parse_context.error("Package must define an artifact.")
+            pex_warnings.warn(
+                "Skipping package at {path} in {lock} since it defines no artifacts.".format(
+                    path=parse_context.path, lock=parse_context.source
+                )
+            )
+            return None
 
         package = Package(
             index=index,
@@ -1371,6 +1376,8 @@ def parse(cls, pylock_toml_path):
         packages = []  # type: List[Package]
         for indexed_package in package_index.iter_packages():
             package = try_(package_parser.parse(indexed_package))
+            if not package:
+                continue
             if isinstance(package.artifact, UnFingerprintedLocalProjectArtifact):
                 directory = package.artifact.directory
                 if not os.path.isabs(directory):
diff --git a/pex/version.py b/pex/version.py
index 43abc4f60..1b6516ee2 100644
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pex project contributors.
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.54.0"
+__version__ = "2.54.1"


Test patch:
diff --git a/testing/data/locks/pylock.issue-2887.toml b/testing/data/locks/pylock.issue-2887.toml
new file mode 100644
index 000000000..88702e3ec
--- /dev/null
+++ b/testing/data/locks/pylock.issue-2887.toml
@@ -0,0 +1,1556 @@
+# This file was autogenerated by uv via the following command:
+#    uv export --format=pylock.toml --output-file=pylock.toml
+lock-version = "1.0"
+created-by = "uv"
+requires-python = ">=3.12"
+
+[[packages]]
+name = "attrs"
+version = "25.3.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", upload-time = 2025-03-13T11:10:22Z, size = 812032, hashes = { sha256 = "75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", upload-time = 2025-03-13T11:10:21Z, size = 63815, hashes = { sha256 = "427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3" } }]
+
+[[packages]]
+name = "cachetools"
+version = "6.2.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/9d/61/e4fad8155db4a04bfb4734c7c8ff0882f078f24294d42798b3568eb63bff/cachetools-6.2.0.tar.gz", upload-time = 2025-08-25T18:57:30Z, size = 30988, hashes = { sha256 = "38b328c0889450f05f5e120f56ab68c8abaf424e1275522b138ffc93253f7e32" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/6c/56/3124f61d37a7a4e7cc96afc5492c78ba0cb551151e530b54669ddd1436ef/cachetools-6.2.0-py3-none-any.whl", upload-time = 2025-08-25T18:57:29Z, size = 11276, hashes = { sha256 = "1c76a8960c0041fcc21097e357f882197c79da0dbff766e7317890a65d7d8ba6" } }]
+
+[[packages]]
+name = "certifi"
+version = "2022.12.7"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/certifi-2022.12.7-py3-none-any.whl", hashes = { sha256 = "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" } }]
+
+[[packages]]
+name = "charset-normalizer"
+version = "2.1.1"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/charset_normalizer-2.1.1-py3-none-any.whl", hashes = { sha256 = "83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" } }]
+
+[[packages]]
+name = "click"
+version = "8.2.1"
+dependencies = [{ name = "colorama", version = "0.4.6" }]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", upload-time = 2025-05-20T23:19:49Z, size = 286342, hashes = { sha256 = "27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", upload-time = 2025-05-20T23:19:47Z, size = 102215, hashes = { sha256 = "61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b" } }]
+
+[[packages]]
+name = "cloudpickle"
+version = "3.1.1"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/52/39/069100b84d7418bc358d81669d5748efb14b9cceacd2f9c75f550424132f/cloudpickle-3.1.1.tar.gz", upload-time = 2025-01-14T17:02:05Z, size = 22113, hashes = { sha256 = "b216fa8ae4019d5482a8ac3c95d8f6346115d8835911fd4aefd1a445e4242c64" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/7e/e8/64c37fadfc2816a7701fa8a6ed8d87327c7d54eacfbfb6edab14a2f2be75/cloudpickle-3.1.1-py3-none-any.whl", upload-time = 2025-01-14T17:02:02Z, size = 20992, hashes = { sha256 = "c8c5a44295039331ee9dad40ba100a9c7297b6f988e50e87ccdf3765a668350e" } }]
+
+[[packages]]
+name = "colorama"
+version = "0.4.6"
+marker = "sys_platform == 'win32'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/colorama-0.4.6-py2.py3-none-any.whl", hashes = { sha256 = "4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" } }]
+
+[[packages]]
+name = "cuda-bindings"
+version = "12.9.2"
+dependencies = [
+    { name = "cuda-pathfinder", version = "1.1.0" },
+    { name = "pywin32", version = "311" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/0b/9b/ed5203b43952d0890b31359a7746ee2fa356ae1d2d55868349c665c9b102/cuda_bindings-12.9.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-18T15:47:35Z, size = 12105017, hashes = { sha256 = "cdc3d928162542c737f3f2f830b64916dcd1edd8a08b0357e23ab6e3a34cfa63" } },
+    { url = "https://files.pythonhosted.org/packages/26/15/3dbe02186dc0daaa8410aa1c1c368d36967b88035ce1cea663e9ba11312a/cuda_bindings-12.9.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-18T15:47:37Z, size = 12465307, hashes = { sha256 = "d9eaed7ac98e4e1ba616176b291f3f309f20af6a6a79a34da7739aa9dbe060a7" } },
+    { url = "https://files.pythonhosted.org/packages/56/b5/0ae0c24b4a3ec0c46b806e13c208fb5c0051712d0b51dbd65285e51a94f8/cuda_bindings-12.9.2-cp312-cp312-win_amd64.whl", upload-time = 2025-08-18T15:47:39Z, size = 12388237, hashes = { sha256 = "ca87323459957b2c0ea7d85064f98e93e9bcf265d4013438133d7895099772b4" } },
+    { url = "https://files.pythonhosted.org/packages/5f/03/01f4b81b5d73411d56a07776e81ee64769979bc5151acd9d5da20140444c/cuda_bindings-12.9.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-18T15:47:41Z, size = 12104305, hashes = { sha256 = "513ab7bff8fa1fbb949512cc18fcbe3ca190411da653dd7072c1537663176f18" } },
+    { url = "https://files.pythonhosted.org/packages/08/a9/c73b2e7a6862d94671e56d2d5676b45fb8767c21ebfd8c947c4bb46c1b05/cuda_bindings-12.9.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-18T15:47:43Z, size = 12474607, hashes = { sha256 = "81ebcf681094c5fe6cf248beea029d84858f42748f29dc8b81869a008d52288f" } },
+    { url = "https://files.pythonhosted.org/packages/6b/99/f17f92c939e2a6f31744de5bdae43b6b70a59bdd87c6a0d53d61e8c9527c/cuda_bindings-12.9.2-cp313-cp313-win_amd64.whl", upload-time = 2025-08-18T15:47:46Z, size = 12342198, hashes = { sha256 = "48451eca385ae9729f3a9a3458741c43672a0587d044d968654a60f448ef376a" } },
+]
+
+[[packages]]
+name = "cuda-pathfinder"
+version = "1.1.0"
+index = "https://pypi.org/simple"
+wheels = [{ url = "https://files.pythonhosted.org/packages/52/07/7978a4c4d8e70620170aa247ce16241a72d4cf6e4336bd3b296926baf7df/cuda_pathfinder-1.1.0-py3-none-any.whl", upload-time = 2025-08-07T01:34:08Z, size = 17673, hashes = { sha256 = "3e66fe0af8ead20eca25e077d2e0cb2dcc027d4297d550a74f99a0211e610799" } }]
+
+[[packages]]
+name = "cuda-python"
+version = "12.9.2"
+dependencies = [{ name = "cuda-bindings", version = "12.9.2" }]
+index = "https://pypi.org/simple"
+wheels = [{ url = "https://files.pythonhosted.org/packages/a2/39/4b7625db1d01165ca5589b495eb32c53fdbdff345469e6a45b92b20394ef/cuda_python-12.9.2-py3-none-any.whl", upload-time = 2025-08-18T15:53:21Z, size = 7595, hashes = { sha256 = "b504d773d6f1589486143e0e4984680f78f46ba6726ce2a957ac32897305264a" } }]
+
+[[packages]]
+name = "cudf-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "cachetools", version = "6.2.0" },
+    { name = "cuda-python", version = "12.9.2" },
+    { name = "cupy-cuda12x", version = "13.6.0" },
+    { name = "fsspec", version = "2024.6.1" },
+    { name = "libcudf-cu12", version = "25.8.0" },
+    { name = "numba", version = "0.61.2" },
+    { name = "numba-cuda", version = "0.14.1" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "nvidia-cuda-nvcc-cu12", version = "12.9.86" },
+    { name = "nvidia-cuda-nvrtc-cu12", version = "12.4.127" },
+    { name = "nvidia-cuda-nvrtc-cu12", version = "12.9.86" },
+    { name = "nvtx", version = "0.2.13" },
+    { name = "packaging", version = "24.1" },
+    { name = "pandas", version = "2.3.2" },
+    { name = "pyarrow", version = "17.0.0" },
+    { name = "pyarrow", version = "19.0.1" },
+    { name = "pylibcudf-cu12", version = "25.8.0" },
+    { name = "pynvjitlink-cu12", version = "0.7.0" },
+    { name = "rich", version = "14.1.0" },
+    { name = "rmm-cu12", version = "25.8.0" },
+    { name = "typing-extensions", version = "4.12.2" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/ac/5b/05f758e47beb99716f49ccbbc17cca1d84863de32c4f0d91ec6ae4e1156f/cudf_cu12-25.8.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T12:22:47Z, size = 2626419, hashes = { sha256 = "6f717064652794458b806ce175acd1591a08581d6b781e89c3e08757f8b471d8" } },
+    { url = "https://files.pythonhosted.org/packages/40/55/dc077f68d59de7cd37660d2d4a46eb656f658a463d0b782f00d66b382f46/cudf_cu12-25.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T12:26:43Z, size = 2625707, hashes = { sha256 = "adcfd814941a921c29d56a53ae87bf6d97834ac63ea01547f9d9ba7d5e6841bc" } },
+    { url = "https://files.pythonhosted.org/packages/30/af/29424079752c6c60f031d42b0713058402f1979524495b8c1b054d71580d/cudf_cu12-25.8.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T12:21:59Z, size = 2625369, hashes = { sha256 = "44bb968928e92a24257ee727b14ab57d5c7c9a12d782ac9256338043b968514e" } },
+    { url = "https://files.pythonhosted.org/packages/31/87/42359b70bcf4b7d202e3d6faf335ac7bbeb79e1435245f989c76684903e5/cudf_cu12-25.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T12:26:20Z, size = 2625293, hashes = { sha256 = "b977c86b1afa02cd9f4286e0c9cb40fafd3c318aed9454997e578928989581fc" } },
+]
+
+[[packages]]
+name = "cuml-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "cuda-python", version = "12.9.2" },
+    { name = "cudf-cu12", version = "25.8.0" },
+    { name = "cupy-cuda12x", version = "13.6.0" },
+    { name = "cuvs-cu12", version = "25.8.0" },
+    { name = "dask-cuda", version = "25.8.0" },
+    { name = "dask-cudf-cu12", version = "25.8.0" },
+    { name = "joblib", version = "1.5.1" },
+    { name = "libcuml-cu12", version = "25.8.0" },
+    { name = "numba", version = "0.61.2" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "nvidia-cublas-cu12", version = "12.4.5.8" },
+    { name = "nvidia-cublas-cu12", version = "12.9.1.4" },
+    { name = "nvidia-cufft-cu12", version = "11.2.1.3" },
+    { name = "nvidia-cufft-cu12", version = "11.4.1.4" },
+    { name = "nvidia-curand-cu12", version = "10.3.5.147" },
+    { name = "nvidia-curand-cu12", version = "10.3.10.19" },
+    { name = "nvidia-cusolver-cu12", version = "11.6.1.9" },
+    { name = "nvidia-cusolver-cu12", version = "11.7.5.82" },
+    { name = "nvidia-cusparse-cu12", version = "12.3.1.170" },
+    { name = "nvidia-cusparse-cu12", version = "12.5.10.65" },
+    { name = "packaging", version = "24.1" },
+    { name = "pylibraft-cu12", version = "25.8.0" },
+    { name = "raft-dask-cu12", version = "25.8.0" },
+    { name = "rapids-dask-dependency", version = "25.8.0" },
+    { name = "rich", version = "14.1.0" },
+    { name = "rmm-cu12", version = "25.8.0" },
+    { name = "scikit-learn", version = "1.7.1" },
+    { name = "scipy", version = "1.16.1" },
+    { name = "treelite", version = "4.4.1" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/21/30/e328589e2dbc6ca4014f0e210079b9909983c8284fe2af2b55f092d1318c/cuml_cu12-25.8.0.tar.gz", upload-time = 2025-08-07T13:47:55Z, size = 2501, hashes = { sha256 = "69a7bbc508b016fadfea47d5969aaa44e70df79fd0034c41dd6fe7ecd590aee5" } }
+
+[[packages]]
+name = "cupy-cuda12x"
+version = "13.6.0"
+dependencies = [
+    { name = "fastrlock", version = "0.8.3" },
+    { name = "numpy", version = "2.1.2" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/12/c5/7e7fc4816d0de0154e5d9053242c3a08a0ca8b43ee656a6f7b3b95055a7b/cupy_cuda12x-13.6.0-cp312-cp312-manylinux2014_aarch64.whl", upload-time = 2025-08-18T08:24:43Z, size = 127334633, hashes = { sha256 = "a6970ceefe40f9acbede41d7fe17416bd277b1bd2093adcde457b23b578c5a59" } },
+    { url = "https://files.pythonhosted.org/packages/e0/95/d7e1295141e7d530674a3cc567e13ed0eb6b81524cb122d797ed996b5bea/cupy_cuda12x-13.6.0-cp312-cp312-manylinux2014_x86_64.whl", upload-time = 2025-08-18T08:24:49Z, size = 112886268, hashes = { sha256 = "79b0cacb5e8b190ef409f9e03f06ac8de1b021b0c0dda47674d446f5557e0eb1" } },
+    { url = "https://files.pythonhosted.org/packages/ae/8c/14555b63fd78cfac7b88af0094cea0a3cb845d243661ec7da69f7b3ea0de/cupy_cuda12x-13.6.0-cp312-cp312-win_amd64.whl", upload-time = 2025-08-18T08:24:54Z, size = 89785108, hashes = { sha256 = "ca06fede7b8b83ca9ad80062544ef2e5bb8d4762d1c4fc3ac8349376de9c8a5e" } },
+    { url = "https://files.pythonhosted.org/packages/19/ec/f62cb991f11fb41291c4c15b6936d7b67ffa71ddb344ad6e8894e06ce58d/cupy_cuda12x-13.6.0-cp313-cp313-manylinux2014_aarch64.whl", upload-time = 2025-08-18T08:24:59Z, size = 126904601, hashes = { sha256 = "e5426ae3b1b9cf59927481e457a89e3f0b50a35b114a8034ec9110e7a833434c" } },
+    { url = "https://files.pythonhosted.org/packages/f8/b8/30127bcdac53a25f94ee201bf4802fcd8d012145567d77c54174d6d01c01/cupy_cuda12x-13.6.0-cp313-cp313-manylinux2014_x86_64.whl", upload-time = 2025-08-18T08:25:05Z, size = 112654824, hashes = { sha256 = "52d9e7f83d920da7d81ec2e791c2c2c747fdaa1d7b811971b34865ce6371e98a" } },
+    { url = "https://files.pythonhosted.org/packages/72/36/c9e24acb19f039f814faea880b3704a3661edaa6739456b73b27540663e3/cupy_cuda12x-13.6.0-cp313-cp313-win_amd64.whl", upload-time = 2025-08-18T08:25:10Z, size = 89750580, hashes = { sha256 = "297b4268f839de67ef7865c2202d3f5a0fb8d20bd43360bc51b6e60cb4406447" } },
+]
+
+[[packages]]
+name = "cuvs-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "cuda-python", version = "12.9.2" },
+    { name = "libcuvs-cu12", version = "25.8.0" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "pylibraft-cu12", version = "25.8.0" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/6b/6d/cef3c63c349f9c6343e6f0917432f0df4ed5536629b50d11ec7438a59aa2/cuvs_cu12-25.8.0.tar.gz", upload-time = 2025-08-07T12:27:46Z, size = 1007, hashes = { sha256 = "d08f3dd4138e012065c5ac425b6ff5bb0aae34a03eaa731041d682027e5242b9" } }
+
+[[packages]]
+name = "dask"
+version = "2025.7.0"
+dependencies = [
+    { name = "click", version = "8.2.1" },
+    { name = "cloudpickle", version = "3.1.1" },
+    { name = "fsspec", version = "2024.6.1" },
+    { name = "packaging", version = "24.1" },
+    { name = "partd", version = "1.4.2" },
+    { name = "pyyaml", version = "6.0.2" },
+    { name = "toolz", version = "1.0.0" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/08/00/cbb7cb07742955dfe77368aa40725d7000414a8a49f415ba40c5a4379ba9/dask-2025.7.0.tar.gz", upload-time = 2025-07-14T20:03:42Z, size = 10972242, hashes = { sha256 = "c3a0d4e78882e85ea81dbc71e6459713e45676e2d17e776c2f3f19848039e4cf" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/b3/f9/3e04725358c17329652da8c1b2dbd88de723f3dc78bf52ca6d28d52c9279/dask-2025.7.0-py3-none-any.whl", upload-time = 2025-07-14T20:03:33Z, size = 1475117, hashes = { sha256 = "073c29c4e99c2400a39a8a67874f35c1d15bf7af9ae3d0c30af3c7c1199f24ae" } }]
+
+[[packages]]
+name = "dask-cuda"
+version = "25.8.0"
+dependencies = [
+    { name = "click", version = "8.2.1" },
+    { name = "numba", version = "0.61.2" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "pandas", version = "2.3.2" },
+    { name = "pynvml", version = "12.0.0" },
+    { name = "rapids-dask-dependency", version = "25.8.0" },
+    { name = "zict", version = "3.0.0" },
+]
+index = "https://pypi.org/simple"
+wheels = [{ url = "https://files.pythonhosted.org/packages/0c/ea/eb1043e7b84da961623c78ff3eb4a003125a5555bdd81832714f244b648f/dask_cuda-25.8.0-py3-none-any.whl", upload-time = 2025-08-07T15:40:56Z, size = 157489, hashes = { sha256 = "05bb6135388e015b9d30840c3ecd40cd0cfb81e45fc320caf124d4726dba9fee" } }]
+
+[[packages]]
+name = "dask-cudf-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "cudf-cu12", version = "25.8.0" },
+    { name = "cupy-cuda12x", version = "13.6.0" },
+    { name = "fsspec", version = "2024.6.1" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "pandas", version = "2.3.2" },
+    { name = "pynvml", version = "12.0.0" },
+    { name = "rapids-dask-dependency", version = "25.8.0" },
+]
+index = "https://pypi.org/simple"
+wheels = [{ url = "https://files.pythonhosted.org/packages/76/74/6fba9e2808a2aed48f58f2615e0bccbcacc6c0b81097e92b0aad607f433d/dask_cudf_cu12-25.8.0-py3-none-any.whl", upload-time = 2025-08-07T12:25:27Z, size = 50722, hashes = { sha256 = "771c876cd44f488d50cdd9985237b75f15f8c400c362b17e4d61e936b1e0f55e" } }]
+
+[[packages]]
+name = "distributed"
+version = "2025.7.0"
+dependencies = [
+    { name = "click", version = "8.2.1" },
+    { name = "cloudpickle", version = "3.1.1" },
+    { name = "dask", version = "2025.7.0" },
+    { name = "jinja2", version = "3.1.4" },
+    { name = "locket", version = "1.0.0" },
+    { name = "msgpack", version = "1.1.1" },
+    { name = "packaging", version = "24.1" },
+    { name = "psutil", version = "7.0.0" },
+    { name = "pyyaml", version = "6.0.2" },
+    { name = "sortedcontainers", version = "2.4.0" },
+    { name = "tblib", version = "3.1.0" },
+    { name = "toolz", version = "1.0.0" },
+    { name = "tornado", version = "6.5.2" },
+    { name = "urllib3", version = "1.26.13" },
+    { name = "zict", version = "3.0.0" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/d4/df/4974e669d5c166fddc5e39c8e2dcde41fd90c7568e205f7bf861dc49b66c/distributed-2025.7.0.tar.gz", upload-time = 2025-07-14T20:03:33Z, size = 1108454, hashes = { sha256 = "5f8ec20d3cdfb286452831c6f9ebee84527e9323256c20dd2938d9c6e62c5c18" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/9e/dc/9f033526ed98b65cda8adbd10b6eeeca0659203f67bd3e065ce172008887/distributed-2025.7.0-py3-none-any.whl", upload-time = 2025-07-14T20:03:30Z, size = 1015142, hashes = { sha256 = "51b74526c2bee409ca968ee5532c79de1c1a1713664f5ccf90bdd81f17cfdc73" } }]
+
+[[packages]]
+name = "distributed-ucxx-cu12"
+version = "0.45.1"
+dependencies = [
+    { name = "numba-cuda", version = "0.14.1" },
+    { name = "rapids-dask-dependency", version = "25.8.0" },
+    { name = "ucxx-cu12", version = "0.45.1" },
+]
+index = "https://pypi.org/simple"
+wheels = [{ url = "https://files.pythonhosted.org/packages/62/e5/a4f5a6fc8fe72390058a8463320a6e47b2f09d1432b8e699739a7209d040/distributed_ucxx_cu12-0.45.1-py3-none-any.whl", upload-time = 2025-08-07T15:04:51Z, size = 26056, hashes = { sha256 = "a0578c40bcb6bdea9d6c9218070d69e30e4284604f451a0598c90d86909805a6" } }]
+
+[[packages]]
+name = "fastrlock"
+version = "0.8.3"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/73/b1/1c3d635d955f2b4bf34d45abf8f35492e04dbd7804e94ce65d9f928ef3ec/fastrlock-0.8.3.tar.gz", upload-time = 2024-12-17T11:03:39Z, size = 79327, hashes = { sha256 = "4af6734d92eaa3ab4373e6c9a1dd0d5ad1304e172b1521733c6c3b3d73c8fa5d" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/00/df/56270f2e10c1428855c990e7a7e5baafa9e1262b8e789200bd1d047eb501/fastrlock-0.8.3-cp312-cp312-macosx_11_0_universal2.whl", upload-time = 2024-12-17T11:02:17Z, size = 55727, hashes = { sha256 = "8cb2cf04352ea8575d496f31b3b88c42c7976e8e58cdd7d1550dfba80ca039da" } },
+    { url = "https://files.pythonhosted.org/packages/57/21/ea1511b0ef0d5457efca3bf1823effb9c5cad4fc9dca86ce08e4d65330ce/fastrlock-0.8.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2024-12-17T11:02:19Z, size = 52201, hashes = { sha256 = "85a49a1f1e020097d087e1963e42cea6f307897d5ebe2cb6daf4af47ffdd3eed" } },
+    { url = "https://files.pythonhosted.org/packages/80/07/cdecb7aa976f34328372f1c4efd6c9dc1b039b3cc8d3f38787d640009a25/fastrlock-0.8.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2024-12-17T11:02:20Z, size = 53924, hashes = { sha256 = "5f13ec08f1adb1aa916c384b05ecb7dbebb8df9ea81abd045f60941c6283a670" } },
+    { url = "https://files.pythonhosted.org/packages/88/6d/59c497f8db9a125066dd3a7442fab6aecbe90d6fec344c54645eaf311666/fastrlock-0.8.3-cp312-cp312-musllinux_1_1_aarch64.whl", upload-time = 2024-12-17T11:02:22Z, size = 52140, hashes = { sha256 = "0ea4e53a04980d646def0f5e4b5e8bd8c7884288464acab0b37ca0c65c482bfe" } },
+    { url = "https://files.pythonhosted.org/packages/62/04/9138943c2ee803d62a48a3c17b69de2f6fa27677a6896c300369e839a550/fastrlock-0.8.3-cp312-cp312-musllinux_1_1_x86_64.whl", upload-time = 2024-12-17T11:02:24Z, size = 53261, hashes = { sha256 = "38340f6635bd4ee2a4fb02a3a725759fe921f2ca846cb9ca44531ba739cc17b4" } },
+    { url = "https://files.pythonhosted.org/packages/e2/4b/db35a52589764c7745a613b6943bbd018f128d42177ab92ee7dde88444f6/fastrlock-0.8.3-cp312-cp312-win_amd64.whl", upload-time = 2024-12-17T11:02:25Z, size = 31235, hashes = { sha256 = "da06d43e1625e2ffddd303edcd6d2cd068e1c486f5fd0102b3f079c44eb13e2c" } },
+    { url = "https://files.pythonhosted.org/packages/92/74/7b13d836c3f221cff69d6f418f46c2a30c4b1fe09a8ce7db02eecb593185/fastrlock-0.8.3-cp313-cp313-macosx_11_0_universal2.whl", upload-time = 2024-12-17T11:02:29Z, size = 54157, hashes = { sha256 = "5264088185ca8e6bc83181dff521eee94d078c269c7d557cc8d9ed5952b7be45" } },
+    { url = "https://files.pythonhosted.org/packages/06/77/f06a907f9a07d26d0cca24a4385944cfe70d549a2c9f1c3e3217332f4f12/fastrlock-0.8.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2024-12-17T11:02:32Z, size = 50954, hashes = { sha256 = "4a98ba46b3e14927550c4baa36b752d0d2f7387b8534864a8767f83cce75c160" } },
+    { url = "https://files.pythonhosted.org/packages/f9/4e/94480fb3fd93991dd6f4e658b77698edc343f57caa2870d77b38c89c2e3b/fastrlock-0.8.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2024-12-17T11:02:33Z, size = 52535, hashes = { sha256 = "dbdea6deeccea1917c6017d353987231c4e46c93d5338ca3e66d6cd88fbce259" } },
+    { url = "https://files.pythonhosted.org/packages/7d/a7/ee82bb55b6c0ca30286dac1e19ee9417a17d2d1de3b13bb0f20cefb86086/fastrlock-0.8.3-cp313-cp313-musllinux_1_1_aarch64.whl", upload-time = 2024-12-17T11:02:34Z, size = 50942, hashes = { sha256 = "c6e5bfecbc0d72ff07e43fed81671747914d6794e0926700677ed26d894d4f4f" } },
+    { url = "https://files.pythonhosted.org/packages/63/1d/d4b7782ef59e57dd9dde69468cc245adafc3674281905e42fa98aac30a79/fastrlock-0.8.3-cp313-cp313-musllinux_1_1_x86_64.whl", upload-time = 2024-12-17T11:02:36Z, size = 52044, hashes = { sha256 = "2a83d558470c520ed21462d304e77a12639859b205759221c8144dd2896b958a" } },
+    { url = "https://files.pythonhosted.org/packages/28/a3/2ad0a0a69662fd4cf556ab8074f0de978ee9b56bff6ddb4e656df4aa9e8e/fastrlock-0.8.3-cp313-cp313-win_amd64.whl", upload-time = 2024-12-17T11:02:37Z, size = 30472, hashes = { sha256 = "8d1d6a28291b4ace2a66bd7b49a9ed9c762467617febdd9ab356b867ed901af8" } },
+]
+
+[[packages]]
+name = "filelock"
+version = "3.13.1"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/filelock-3.13.1-py3-none-any.whl", hashes = { sha256 = "57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c" } }]
+
+[[packages]]
+name = "fsspec"
+version = "2024.6.1"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/fsspec-2024.6.1-py3-none-any.whl", hashes = { sha256 = "3cb443f8bcd2efb31295a5b9fdb02aee81d8452c80d28f97a6d0959e6cee101e" } }]
+
+[[packages]]
+name = "idna"
+version = "3.4"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/idna-3.4-py3-none-any.whl", hashes = { sha256 = "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" } }]
+
+[[packages]]
+name = "jinja2"
+version = "3.1.4"
+dependencies = [{ name = "markupsafe", version = "3.0.2" }]
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ name = "jinja2-3.1.4-py3-none-any.whl", url = "https://download.pytorch.org/whl/Jinja2-3.1.4-py3-none-any.whl", hashes = { sha256 = "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d" } }]
+
+[[packages]]
+name = "joblib"
+version = "1.5.1"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/dc/fe/0f5a938c54105553436dbff7a61dc4fed4b1b2c98852f8833beaf4d5968f/joblib-1.5.1.tar.gz", upload-time = 2025-05-23T12:04:37Z, size = 330475, hashes = { sha256 = "f4f86e351f39fe3d0d32a9f2c3d8af1ee4cec285aafcb27003dda5205576b444" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/7d/4f/1195bbac8e0c2acc5f740661631d8d750dc38d4a32b23ee5df3cde6f4e0d/joblib-1.5.1-py3-none-any.whl", upload-time = 2025-05-23T12:04:35Z, size = 307746, hashes = { sha256 = "4719a31f054c7d766948dcd83e9613686b27114f190f717cec7eaa2084f8a74a" } }]
+
+[[packages]]
+name = "jsonschema"
+version = "4.25.1"
+dependencies = [
+    { name = "attrs", version = "25.3.0" },
+    { name = "jsonschema-specifications", version = "2025.4.1" },
+    { name = "referencing", version = "0.36.2" },
+    { name = "rpds-py", version = "0.27.0" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", upload-time = 2025-08-18T17:03:50Z, size = 357342, hashes = { sha256 = "e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", upload-time = 2025-08-18T17:03:48Z, size = 90040, hashes = { sha256 = "3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63" } }]
+
+[[packages]]
+name = "jsonschema-specifications"
+version = "2025.4.1"
+dependencies = [{ name = "referencing", version = "0.36.2" }]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/bf/ce/46fbd9c8119cfc3581ee5643ea49464d168028cfb5caff5fc0596d0cf914/jsonschema_specifications-2025.4.1.tar.gz", upload-time = 2025-04-23T12:34:07Z, size = 15513, hashes = { sha256 = "630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/01/0e/b27cdbaccf30b890c40ed1da9fd4a3593a5cf94dae54fb34f8a4b74fcd3f/jsonschema_specifications-2025.4.1-py3-none-any.whl", upload-time = 2025-04-23T12:34:05Z, size = 18437, hashes = { sha256 = "4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af" } }]
+
+[[packages]]
+name = "libcudf-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "libkvikio-cu12", version = "25.8.0" },
+    { name = "librmm-cu12", version = "25.8.0" },
+    { name = "rapids-logger", version = "0.1.1" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/cc/69/529bd3a5b6d8edac3e530a0b71c3a8f620a544248c9e22d509852be269a7/libcudf_cu12-25.8.0-py3-none-manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T11:49:07Z, size = 521220643, hashes = { sha256 = "2ae790b881a67511b414451821ec894f014e4c49d3c62e8f230c45b56cfce0cb" } },
+    { url = "https://files.pythonhosted.org/packages/85/4d/9a390e427da02764cb62f50b6ce0e400d1bffc026b5e487d977ec885d543/libcudf_cu12-25.8.0-py3-none-manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T11:43:07Z, size = 525893331, hashes = { sha256 = "0106bb2861296985f0cfc2fb9c3052ee093df47d8d112fb06be93cf09ef15df8" } },
+]
+
+[[packages]]
+name = "libcuml-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "libcuvs-cu12", version = "25.8.0" },
+    { name = "libraft-cu12", version = "25.8.0" },
+    { name = "nvidia-cublas-cu12", version = "12.4.5.8" },
+    { name = "nvidia-cublas-cu12", version = "12.9.1.4" },
+    { name = "nvidia-cufft-cu12", version = "11.2.1.3" },
+    { name = "nvidia-cufft-cu12", version = "11.4.1.4" },
+    { name = "nvidia-curand-cu12", version = "10.3.5.147" },
+    { name = "nvidia-curand-cu12", version = "10.3.10.19" },
+    { name = "nvidia-cusolver-cu12", version = "11.6.1.9" },
+    { name = "nvidia-cusolver-cu12", version = "11.7.5.82" },
+    { name = "nvidia-cusparse-cu12", version = "12.3.1.170" },
+    { name = "nvidia-cusparse-cu12", version = "12.5.10.65" },
+    { name = "rapids-logger", version = "0.1.1" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/05/18/81b436414ceebb69c5b105b37d01c8784adb432eb836ba692f4a591018ab/libcuml_cu12-25.8.0.tar.gz", upload-time = 2025-08-07T12:27:18Z, size = 4100, hashes = { sha256 = "0054ae191c4c1da2368e9346cf17bda5613f21623af17fbee27f6ea47db555ca" } }
+
+[[packages]]
+name = "libcuvs-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "libraft-cu12", version = "25.8.0" },
+    { name = "librmm-cu12", version = "25.8.0" },
+    { name = "nvidia-cublas-cu12", version = "12.4.5.8" },
+    { name = "nvidia-cublas-cu12", version = "12.9.1.4" },
+    { name = "nvidia-curand-cu12", version = "10.3.5.147" },
+    { name = "nvidia-curand-cu12", version = "10.3.10.19" },
+    { name = "nvidia-cusolver-cu12", version = "11.6.1.9" },
+    { name = "nvidia-cusolver-cu12", version = "11.7.5.82" },
+    { name = "nvidia-cusparse-cu12", version = "12.3.1.170" },
+    { name = "nvidia-cusparse-cu12", version = "12.5.10.65" },
+    { name = "nvidia-nccl-cu12", version = "2.21.5" },
+    { name = "nvidia-nccl-cu12", version = "2.27.3" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/58/d5/f0c58f03d550373d3317bb6afc44937a1bd1a4f1e645bc1ea75110545056/libcuvs_cu12-25.8.0.tar.gz", upload-time = 2025-08-07T12:26:36Z, size = 4885, hashes = { sha256 = "cb25e1011f577b32da9f5e3942691946142929c2574fd399f99a050b1489fe55" } }
+
+[[packages]]
+name = "libkvikio-cu12"
+version = "25.8.0"
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/27/6a/402fd6f73818f9d219729b0bf45621ae817962bad1c9bd0144fe6fc80309/libkvikio_cu12-25.8.0-py3-none-manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T12:21:03Z, size = 88399843, hashes = { sha256 = "c9ea93b12df6a708db5d6a7e552f9f6dbd30f3649c631a7a1cf0c71fcf995f54" } },
+    { url = "https://files.pythonhosted.org/packages/42/49/469ea014e81ed1e2f686180a8bcdbc7864c2ea2ce39c0d3bbd9ee1ec45a1/libkvikio_cu12-25.8.0-py3-none-manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T12:25:52Z, size = 88596567, hashes = { sha256 = "3cf2d41436b15abd9d7a4acb04677b2340620bc684ebc52ca43c3057eb88d40a" } },
+]
+
+[[packages]]
+name = "libraft-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "librmm-cu12", version = "25.8.0" },
+    { name = "nvidia-cublas-cu12", version = "12.4.5.8" },
+    { name = "nvidia-cublas-cu12", version = "12.9.1.4" },
+    { name = "nvidia-curand-cu12", version = "10.3.5.147" },
+    { name = "nvidia-curand-cu12", version = "10.3.10.19" },
+    { name = "nvidia-cusolver-cu12", version = "11.6.1.9" },
+    { name = "nvidia-cusolver-cu12", version = "11.7.5.82" },
+    { name = "nvidia-cusparse-cu12", version = "12.3.1.170" },
+    { name = "nvidia-cusparse-cu12", version = "12.5.10.65" },
+    { name = "nvidia-nccl-cu12", version = "2.21.5" },
+    { name = "nvidia-nccl-cu12", version = "2.27.3" },
+    { name = "rapids-logger", version = "0.1.1" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/96/ab/e673a105a208d56ba76f193d2ae6b3781a689742a979261e6f429c2276e8/libraft_cu12-25.8.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T13:47:44Z, size = 22355464, hashes = { sha256 = "7b31e97d8b0830e11e4ba834f850ac25804c3c6b9193928f373240c1b34c14d7" } },
+    { url = "https://files.pythonhosted.org/packages/2e/80/9c242d048643f890df5ddac572d447e80dd3a732bda1e0124f7d9ca1d0dd/libraft_cu12-25.8.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T13:42:20Z, size = 22383641, hashes = { sha256 = "18f83987860bcb153a73068ee8eaadeab8ff24fd6dbb8aaf6356b2ad7d1cad01" } },
+]
+
+[[packages]]
+name = "librmm-cu12"
+version = "25.8.0"
+dependencies = [{ name = "rapids-logger", version = "0.1.1" }]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/cb/fe/35789d6aed0df9336ca07fcb57e756f0f91df4136c5c3087ffa97f912f4e/librmm_cu12-25.8.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T11:22:46Z, size = 3539813, hashes = { sha256 = "18381166e7d855d1ee9ab4684d2ab8af67a115e2015753f1ce91b8ef1ad06013" } },
+    { url = "https://files.pythonhosted.org/packages/e1/88/e0dcc6504a49c797889fed16275e6f985c714e6e2c930399ae6b53e30a66/librmm_cu12-25.8.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T11:22:10Z, size = 3533237, hashes = { sha256 = "e0cb30ff7fec4cab6355c085f606c9ad57d3be529c81bfc0dc15af69c812f028" } },
+]
+
+[[packages]]
+name = "libucx-cu12"
+version = "1.18.1"
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/3c/d1/530d24152ec715b83f60b201c841992e1a96730e44ffafe14786f459f8b3/libucx_cu12-1.18.1-py3-none-manylinux_2_28_aarch64.whl", upload-time = 2025-05-01T17:20:18Z, size = 26961705, hashes = { sha256 = "0d8362f7c84fbb44afd659a4ff5b925f6e5ec0a9052a4a891afbbb8c59daa2dd" } },
+    { url = "https://files.pythonhosted.org/packages/ce/f0/8b97607bdff763155dbe0f9f351c87d619ede60a4fc1315130623d32f00a/libucx_cu12-1.18.1-py3-none-manylinux_2_28_x86_64.whl", upload-time = 2025-05-01T17:20:21Z, size = 27680307, hashes = { sha256 = "d8fa5fc4bd76b2796e083bb3a7fb27373ccd9428daf6fe64d0dfd02fc0c95420" } },
+]
+
+[[packages]]
+name = "libucxx-cu12"
+version = "0.45.1"
+dependencies = [
+    { name = "librmm-cu12", version = "25.8.0" },
+    { name = "libucx-cu12", version = "1.18.1" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/3e/a8/4d4fd58b4eb09bc6c373c7aa583bcebb888030ff844bdfc42af6c6a2f22d/libucxx_cu12-0.45.1-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T15:00:40Z, size = 499863, hashes = { sha256 = "a4d0f981829b8a0f6f158986cdcd10db396b1319ed0186b4c9b66c5b490deb13" } },
+    { url = "https://files.pythonhosted.org/packages/f2/3a/fb6936aed8b345a332be23184b6c18481d3fe35cf6c3cbd8fd7f6a13e24c/libucxx_cu12-0.45.1-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T15:05:18Z, size = 511339, hashes = { sha256 = "07207b65c9af86a8ad89361be08b3f36b00bcc8c38e71f5c4ea887a043774a8d" } },
+]
+
+[[packages]]
+name = "llvmlite"
+version = "0.44.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/89/6a/95a3d3610d5c75293d5dbbb2a76480d5d4eeba641557b69fe90af6c5b84e/llvmlite-0.44.0.tar.gz", upload-time = 2025-01-20T11:14:41Z, size = 171880, hashes = { sha256 = "07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/15/86/e3c3195b92e6e492458f16d233e58a1a812aa2bfbef9bdd0fbafcec85c60/llvmlite-0.44.0-cp312-cp312-macosx_10_14_x86_64.whl", upload-time = 2025-01-20T11:13:32Z, size = 28132297, hashes = { sha256 = "1d671a56acf725bf1b531d5ef76b86660a5ab8ef19bb6a46064a705c6ca80aad" } },
+    { url = "https://files.pythonhosted.org/packages/d6/53/373b6b8be67b9221d12b24125fd0ec56b1078b660eeae266ec388a6ac9a0/llvmlite-0.44.0-cp312-cp312-macosx_11_0_arm64.whl", upload-time = 2025-01-20T11:13:38Z, size = 26201105, hashes = { sha256 = "5f79a728e0435493611c9f405168682bb75ffd1fbe6fc360733b850c80a026db" } },
+    { url = "https://files.pythonhosted.org/packages/cb/da/8341fd3056419441286c8e26bf436923021005ece0bff5f41906476ae514/llvmlite-0.44.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-01-20T11:13:46Z, size = 42361901, hashes = { sha256 = "c0143a5ef336da14deaa8ec26c5449ad5b6a2b564df82fcef4be040b9cacfea9" } },
+    { url = "https://files.pythonhosted.org/packages/53/ad/d79349dc07b8a395a99153d7ce8b01d6fcdc9f8231355a5df55ded649b61/llvmlite-0.44.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-01-20T11:13:56Z, size = 41184247, hashes = { sha256 = "d752f89e31b66db6f8da06df8b39f9b91e78c5feea1bf9e8c1fba1d1c24c065d" } },
+    { url = "https://files.pythonhosted.org/packages/e2/3b/a9a17366af80127bd09decbe2a54d8974b6d8b274b39bf47fbaedeec6307/llvmlite-0.44.0-cp312-cp312-win_amd64.whl", upload-time = 2025-01-20T11:14:02Z, size = 30332380, hashes = { sha256 = "eae7e2d4ca8f88f89d315b48c6b741dcb925d6a1042da694aa16ab3dd4cbd3a1" } },
+    { url = "https://files.pythonhosted.org/packages/89/24/4c0ca705a717514c2092b18476e7a12c74d34d875e05e4d742618ebbf449/llvmlite-0.44.0-cp313-cp313-macosx_10_14_x86_64.whl", upload-time = 2025-01-20T11:14:09Z, size = 28132306, hashes = { sha256 = "319bddd44e5f71ae2689859b7203080716448a3cd1128fb144fe5c055219d516" } },
+    { url = "https://files.pythonhosted.org/packages/01/cf/1dd5a60ba6aee7122ab9243fd614abcf22f36b0437cbbe1ccf1e3391461c/llvmlite-0.44.0-cp313-cp313-macosx_11_0_arm64.whl", upload-time = 2025-01-20T11:14:15Z, size = 26201090, hashes = { sha256 = "9c58867118bad04a0bb22a2e0068c693719658105e40009ffe95c7000fcde88e" } },
+    { url = "https://files.pythonhosted.org/packages/d2/1b/656f5a357de7135a3777bd735cc7c9b8f23b4d37465505bd0eaf4be9befe/llvmlite-0.44.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-01-20T11:14:22Z, size = 42361904, hashes = { sha256 = "46224058b13c96af1365290bdfebe9a6264ae62fb79b2b55693deed11657a8bf" } },
+    { url = "https://files.pythonhosted.org/packages/d8/e1/12c5f20cb9168fb3464a34310411d5ad86e4163c8ff2d14a2b57e5cc6bac/llvmlite-0.44.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-01-20T11:14:31Z, size = 41184245, hashes = { sha256 = "aa0097052c32bf721a4efc03bd109d335dfa57d9bffb3d4c24cc680711b8b4fc" } },
+    { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", upload-time = 2025-01-20T11:14:38Z, size = 30331193, hashes = { sha256 = "2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930" } },
+]
+
+[[packages]]
+name = "locket"
+version = "1.0.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/2f/83/97b29fe05cb6ae28d2dbd30b81e2e402a3eed5f460c26e9eaa5895ceacf5/locket-1.0.0.tar.gz", upload-time = 2022-04-20T22:04:44Z, size = 4350, hashes = { sha256 = "5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl", upload-time = 2022-04-20T22:04:42Z, size = 4398, hashes = { sha256 = "b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3" } }]
+
+[[packages]]
+name = "markdown-it-py"
+version = "4.0.0"
+dependencies = [{ name = "mdurl", version = "0.1.2" }]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", upload-time = 2025-08-11T12:57:52Z, size = 73070, hashes = { sha256 = "cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", upload-time = 2025-08-11T12:57:51Z, size = 87321, hashes = { sha256 = "87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147" } }]
+
+[[packages]]
+name = "markupsafe"
+version = "3.0.2"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ name = "markupsafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", url = "https://download.pytorch.org/whl/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hashes = { sha256 = "15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396" } }]
+
+[[packages]]
+name = "mdurl"
+version = "0.1.2"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", upload-time = 2022-08-14T12:40:10Z, size = 8729, hashes = { sha256 = "bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", upload-time = 2022-08-14T12:40:09Z, size = 9979, hashes = { sha256 = "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8" } }]
+
+[[packages]]
+name = "mpmath"
+version = "1.3.0"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/mpmath-1.3.0-py3-none-any.whl", hashes = { sha256 = "a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c" } }]
+
+[[packages]]
+name = "msgpack"
+version = "1.1.1"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", upload-time = 2025-06-13T06:52:51Z, size = 173555, hashes = { sha256 = "77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/e3/26/389b9c593eda2b8551b2e7126ad3a06af6f9b44274eb3a4f054d48ff7e47/msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", upload-time = 2025-06-13T06:52:03Z, size = 82359, hashes = { sha256 = "ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238" } },
+    { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", upload-time = 2025-06-13T06:52:05Z, size = 79172, hashes = { sha256 = "33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157" } },
+    { url = "https://files.pythonhosted.org/packages/0f/bd/cacf208b64d9577a62c74b677e1ada005caa9b69a05a599889d6fc2ab20a/msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-06-13T06:52:06Z, size = 425013, hashes = { sha256 = "6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce" } },
+    { url = "https://files.pythonhosted.org/packages/4d/ec/fd869e2567cc9c01278a736cfd1697941ba0d4b81a43e0aa2e8d71dab208/msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-06-13T06:52:07Z, size = 426905, hashes = { sha256 = "a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a" } },
+    { 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", upload-time = 2025-06-13T06:52:09Z, size = 407336, hashes = { sha256 = "cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c" } },
+    { url = "https://files.pythonhosted.org/packages/8c/16/69ed8f3ada150bf92745fb4921bd621fd2cdf5a42e25eb50bcc57a5328f0/msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", upload-time = 2025-06-13T06:52:10Z, size = 409485, hashes = { sha256 = "d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b" } },
+    { url = "https://files.pythonhosted.org/packages/c6/b6/0c398039e4c6d0b2e37c61d7e0e9d13439f91f780686deb8ee64ecf1ae71/msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", upload-time = 2025-06-13T06:52:11Z, size = 412182, hashes = { sha256 = "4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef" } },
+    { url = "https://files.pythonhosted.org/packages/b8/d0/0cf4a6ecb9bc960d624c93effaeaae75cbf00b3bc4a54f35c8507273cda1/msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", upload-time = 2025-06-13T06:52:12Z, size = 419883, hashes = { sha256 = "bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a" } },
+    { url = "https://files.pythonhosted.org/packages/62/83/9697c211720fa71a2dfb632cad6196a8af3abea56eece220fde4674dc44b/msgpack-1.1.1-cp312-cp312-win32.whl", upload-time = 2025-06-13T06:52:14Z, size = 65406, hashes = { sha256 = "870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c" } },
+    { url = "https://files.pythonhosted.org/packages/c0/23/0abb886e80eab08f5e8c485d6f13924028602829f63b8f5fa25a06636628/msgpack-1.1.1-cp312-cp312-win_amd64.whl", upload-time = 2025-06-13T06:52:15Z, size = 72558, hashes = { sha256 = "5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4" } },
+    { url = "https://files.pythonhosted.org/packages/a1/38/561f01cf3577430b59b340b51329803d3a5bf6a45864a55f4ef308ac11e3/msgpack-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl", upload-time = 2025-06-13T06:52:16Z, size = 81677, hashes = { sha256 = "3765afa6bd4832fc11c3749be4ba4b69a0e8d7b728f78e68120a157a4c5d41f0" } },
+    { url = "https://files.pythonhosted.org/packages/09/48/54a89579ea36b6ae0ee001cba8c61f776451fad3c9306cd80f5b5c55be87/msgpack-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", upload-time = 2025-06-13T06:52:17Z, size = 78603, hashes = { sha256 = "8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9" } },
+    { url = "https://files.pythonhosted.org/packages/a0/60/daba2699b308e95ae792cdc2ef092a38eb5ee422f9d2fbd4101526d8a210/msgpack-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-06-13T06:52:18Z, size = 420504, hashes = { sha256 = "196a736f0526a03653d829d7d4c5500a97eea3648aebfd4b6743875f28aa2af8" } },
+    { url = "https://files.pythonhosted.org/packages/20/22/2ebae7ae43cd8f2debc35c631172ddf14e2a87ffcc04cf43ff9df9fff0d3/msgpack-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-06-13T06:52:20Z, size = 423749, hashes = { sha256 = "9d592d06e3cc2f537ceeeb23d38799c6ad83255289bb84c2e5792e5a8dea268a" } },
+    { url = "https://files.pythonhosted.org/packages/40/1b/54c08dd5452427e1179a40b4b607e37e2664bca1c790c60c442c8e972e47/msgpack-1.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", upload-time = 2025-06-13T06:52:21Z, size = 404458, hashes = { sha256 = "4df2311b0ce24f06ba253fda361f938dfecd7b961576f9be3f3fbd60e87130ac" } },
+    { url = "https://files.pythonhosted.org/packages/2e/60/6bb17e9ffb080616a51f09928fdd5cac1353c9becc6c4a8abd4e57269a16/msgpack-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", upload-time = 2025-06-13T06:52:22Z, size = 405976, hashes = { sha256 = "e4141c5a32b5e37905b5940aacbc59739f036930367d7acce7a64e4dec1f5e0b" } },
+    { url = "https://files.pythonhosted.org/packages/ee/97/88983e266572e8707c1f4b99c8fd04f9eb97b43f2db40e3172d87d8642db/msgpack-1.1.1-cp313-cp313-musllinux_1_2_i686.whl", upload-time = 2025-06-13T06:52:24Z, size = 408607, hashes = { sha256 = "b1ce7f41670c5a69e1389420436f41385b1aa2504c3b0c30620764b15dded2e7" } },
+    { url = "https://files.pythonhosted.org/packages/bc/66/36c78af2efaffcc15a5a61ae0df53a1d025f2680122e2a9eb8442fed3ae4/msgpack-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", upload-time = 2025-06-13T06:52:25Z, size = 424172, hashes = { sha256 = "4147151acabb9caed4e474c3344181e91ff7a388b888f1e19ea04f7e73dc7ad5" } },
+    { url = "https://files.pythonhosted.org/packages/8c/87/a75eb622b555708fe0427fab96056d39d4c9892b0c784b3a721088c7ee37/msgpack-1.1.1-cp313-cp313-win32.whl", upload-time = 2025-06-13T06:52:26Z, size = 65347, hashes = { sha256 = "500e85823a27d6d9bba1d057c871b4210c1dd6fb01fbb764e37e4e8847376323" } },
+    { url = "https://files.pythonhosted.org/packages/ca/91/7dc28d5e2a11a5ad804cf2b7f7a5fcb1eb5a4966d66a5d2b41aee6376543/msgpack-1.1.1-cp313-cp313-win_amd64.whl", upload-time = 2025-06-13T06:52:27Z, size = 72341, hashes = { sha256 = "6d489fba546295983abd142812bda76b57e33d0b9f5d5b71c09a583285506f69" } },
+]
+
+[[packages]]
+name = "networkx"
+version = "3.3"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/networkx-3.3-py3-none-any.whl", hashes = { sha256 = "28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2" } }]
+
+[[packages]]
+name = "numba"
+version = "0.61.2"
+dependencies = [
+    { name = "llvmlite", version = "0.44.0" },
+    { name = "numpy", version = "2.1.2" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/1c/a0/e21f57604304aa03ebb8e098429222722ad99176a4f979d34af1d1ee80da/numba-0.61.2.tar.gz", upload-time = 2025-04-09T02:58:07Z, size = 2820615, hashes = { sha256 = "8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/b4/a0/c6b7b9c615cfa3b98c4c63f4316e3f6b3bbe2387740277006551784218cd/numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", upload-time = 2025-04-09T02:57:51Z, size = 2776626, hashes = { sha256 = "34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2" } },
+    { url = "https://files.pythonhosted.org/packages/92/4a/fe4e3c2ecad72d88f5f8cd04e7f7cff49e718398a2fac02d2947480a00ca/numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", upload-time = 2025-04-09T02:57:53Z, size = 2779287, hashes = { sha256 = "4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8" } },
+    { url = "https://files.pythonhosted.org/packages/9a/2d/e518df036feab381c23a624dac47f8445ac55686ec7f11083655eb707da3/numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-04-09T02:57:55Z, size = 3885928, hashes = { sha256 = "5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546" } },
+    { url = "https://files.pythonhosted.org/packages/10/0f/23cced68ead67b75d77cfcca3df4991d1855c897ee0ff3fe25a56ed82108/numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", upload-time = 2025-04-09T02:57:56Z, size = 3577115, hashes = { sha256 = "48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd" } },
+    { url = "https://files.pythonhosted.org/packages/68/1d/ddb3e704c5a8fb90142bf9dc195c27db02a08a99f037395503bfbc1d14b3/numba-0.61.2-cp312-cp312-win_amd64.whl", upload-time = 2025-04-09T02:57:58Z, size = 2831929, hashes = { sha256 = "97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18" } },
+    { url = "https://files.pythonhosted.org/packages/0b/f3/0fe4c1b1f2569e8a18ad90c159298d862f96c3964392a20d74fc628aee44/numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", upload-time = 2025-04-09T02:57:59Z, size = 2771785, hashes = { sha256 = "3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154" } },
+    { url = "https://files.pythonhosted.org/packages/e9/71/91b277d712e46bd5059f8a5866862ed1116091a7cb03bd2704ba8ebe015f/numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", upload-time = 2025-04-09T02:58:01Z, size = 2773289, hashes = { sha256 = "7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140" } },
+    { url = "https://files.pythonhosted.org/packages/0d/e0/5ea04e7ad2c39288c0f0f9e8d47638ad70f28e275d092733b5817cf243c9/numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-04-09T02:58:02Z, size = 3893918, hashes = { sha256 = "bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab" } },
+    { url = "https://files.pythonhosted.org/packages/17/58/064f4dcb7d7e9412f16ecf80ed753f92297e39f399c905389688cf950b81/numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", upload-time = 2025-04-09T02:58:04Z, size = 3584056, hashes = { sha256 = "5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e" } },
+    { url = "https://files.pythonhosted.org/packages/af/a4/6d3a0f2d3989e62a18749e1e9913d5fa4910bbb3e3311a035baea6caf26d/numba-0.61.2-cp313-cp313-win_amd64.whl", upload-time = 2025-04-09T02:58:06Z, size = 2831846, hashes = { sha256 = "59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7" } },
+]
+
+[[packages]]
+name = "numba-cuda"
+version = "0.14.1"
+dependencies = [
+    { name = "numba", version = "0.61.2" },
+    { name = "cuda-python", version = "12.9.2" },
+    { name = "nvidia-cuda-cccl-cu12", version = "12.9.27" },
+    { name = "nvidia-cuda-nvcc-cu12", version = "12.9.86" },
+    { name = "nvidia-cuda-nvrtc-cu12", version = "12.4.127" },
+    { name = "nvidia-cuda-nvrtc-cu12", version = "12.9.86" },
+    { name = "nvidia-cuda-runtime-cu12", version = "12.4.127" },
+    { name = "nvidia-cuda-runtime-cu12", version = "12.9.79" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/6b/94/63e54c690f093869c5ed3e811ff440554e87085e4301ba9fe37953a6dd80/numba_cuda-0.14.1.tar.gz", upload-time = 2025-08-22T16:40:43Z, size = 491974, hashes = { sha256 = "2e23bc9f5946e850f21f42cb2dcd24a2cb8ea84b60ad020b6e3b357830a9a697" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/64/6a/de07eca824e91e7a260e05f0c470a004dd8bb7055342cb94bfad4bd5ae28/numba_cuda-0.14.1-py3-none-any.whl", upload-time = 2025-08-22T16:40:41Z, size = 591077, hashes = { sha256 = "8183c340aab5c9008ce708c49dc56a3eccec072c6eeb691732aa0ddafeab8012" } }]
+
+[[packages]]
+name = "numpy"
+version = "2.1.2"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hashes = { sha256 = "d7bf0a4f9f15b32b5ba53147369e94296f5fffb783db5aacc1be15b4bf72f43b" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hashes = { sha256 = "b1d0fcae4f0949f215d4632be684a539859b295e2d0cb14f78ec231915d644db" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp312-cp312-macosx_14_0_arm64.whl", hashes = { sha256 = "f751ed0a2f250541e19dfca9f1eafa31a392c71c832b6bb9e113b10d050cb0f1" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp312-cp312-macosx_14_0_x86_64.whl", hashes = { sha256 = "bd33f82e95ba7ad632bc57837ee99dba3d7e006536200c4e9124089e1bf42426" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hashes = { sha256 = "1b8cde4f11f0a975d1fd59373b32e2f5a562ade7cde4f85b7137f3de8fbb29a0" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hashes = { sha256 = "6d95f286b8244b3649b477ac066c6906fbb2905f8ac19b170e2175d3d799f4df" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp312-cp312-win_amd64.whl", hashes = { sha256 = "456e3b11cb79ac9946c822a56346ec80275eaf2950314b249b512896c0d2505e" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hashes = { sha256 = "a84498e0d0a1174f2b3ed769b67b656aa5460c92c9554039e11f20a05650f00d" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313-macosx_11_0_arm64.whl", hashes = { sha256 = "4d6ec0d4222e8ffdab1744da2560f07856421b367928026fb540e1945f2eeeaf" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313-macosx_14_0_arm64.whl", hashes = { sha256 = "259ec80d54999cc34cd1eb8ded513cb053c3bf4829152a2e00de2371bd406f5e" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313-macosx_14_0_x86_64.whl", hashes = { sha256 = "675c741d4739af2dc20cd6c6a5c4b7355c728167845e3c6b0e824e4e5d36a6c3" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hashes = { sha256 = "05b2d4e667895cc55e3ff2b56077e4c8a5604361fc21a042845ea3ad67465aa8" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hashes = { sha256 = "43cca367bf94a14aca50b89e9bc2061683116cfe864e56740e083392f533ce7a" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313-win_amd64.whl", hashes = { sha256 = "f2ded8d9b6f68cc26f8425eda5d3877b47343e68ca23d0d0846f4d312ecaa445" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313t-macosx_10_13_x86_64.whl", hashes = { sha256 = "2ffef621c14ebb0188a8633348504a35c13680d6da93ab5cb86f4e54b7e922b5" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313t-macosx_11_0_arm64.whl", hashes = { sha256 = "ad369ed238b1959dfbade9018a740fb9392c5ac4f9b5173f420bd4f37ba1f7a0" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313t-macosx_14_0_arm64.whl", hashes = { sha256 = "d82075752f40c0ddf57e6e02673a17f6cb0f8eb3f587f63ca1eaab5594da5b17" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313t-macosx_14_0_x86_64.whl", hashes = { sha256 = "1600068c262af1ca9580a527d43dc9d959b0b1d8e56f8a05d830eea39b7c8af6" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hashes = { sha256 = "a26ae94658d3ba3781d5e103ac07a876b3e9b29db53f68ed7df432fd033358a8" } },
+    { url = "https://download.pytorch.org/whl/numpy-2.1.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hashes = { sha256 = "13311c2db4c5f7609b462bc0f43d3c465424d25c626d95040f073e30f7570e35" } },
+]
+
+[[packages]]
+name = "nvidia-cublas-cu12"
+version = "12.4.5.8"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_aarch64.whl", hashes = { sha256 = "0f8aa1706812e00b9f19dfe0cdb3999b092ccb8ca168c0db5b8ea712456fd9b3" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "2fc8da60df463fdefa81e323eef2e36489e1c94335b5358bcb38360adf75ac9b" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cublas_cu12-12.4.5.8-py3-none-win_amd64.whl", hashes = { sha256 = "5a796786da89203a0657eda402bcdcec6180254a8ac22d72213abc42069522dc" } },
+]
+
+[[packages]]
+name = "nvidia-cublas-cu12"
+version = "12.9.1.4"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+
+[[packages]]
+name = "nvidia-cuda-cccl-cu12"
+version = "12.9.27"
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/61/7e/82e49956b046bdc506c789235c587d9b3ef58b8bc1782258c1e247229647/nvidia_cuda_cccl_cu12-12.9.27-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", upload-time = 2025-05-01T19:32:04Z, size = 3152245, hashes = { sha256 = "d7898b38aa68beaa234d48f0868273702342a196d6e2e9d0ef058dca2390ebea" } },
+    { url = "https://files.pythonhosted.org/packages/18/2a/d4cd8506d2044e082f8cd921be57392e6a9b5ccd3ffdf050362430a3d5d5/nvidia_cuda_cccl_cu12-12.9.27-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-05-01T19:32:13Z, size = 3152243, hashes = { sha256 = "37869e17ce2e1ecec6eddf1927cca0f8c34e64fd848d40453df559091e2d7117" } },
+    { url = "https://files.pythonhosted.org/packages/ce/9b/1daf405620c7ac371b76b823c6336dd742673d41a150d9a04eec2c690379/nvidia_cuda_cccl_cu12-12.9.27-py3-none-win_amd64.whl", upload-time = 2025-05-01T19:45:11Z, size = 3152175, hashes = { sha256 = "72106f95a9bb3be18472806b4f663ebf0f9248a86d14b4ae3305725b855d9d92" } },
+]
+
+[[packages]]
+name = "nvidia-cuda-cupti-cu12"
+version = "12.4.127"
+marker = "platform_machine == 'x86_64' and sys_platform == 'linux'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/cu124/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "9dec60f5ac126f7bb551c055072b69d85392b13311fcc1bcda2202d172df30fb" } }]
+
+[[packages]]
+name = "nvidia-cuda-nvcc-cu12"
+version = "12.9.86"
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/25/48/b54a06168a2190572a312bfe4ce443687773eb61367ced31e064953dd2f7/nvidia_cuda_nvcc_cu12-12.9.86-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", upload-time = 2025-06-05T20:01:53Z, size = 40546229, hashes = { sha256 = "5d6a0d32fdc7ea39917c20065614ae93add6f577d840233237ff08e9a38f58f0" } },
+    { url = "https://files.pythonhosted.org/packages/d6/5c/8cc072436787104bbbcbde1f76ab4a0d89e68f7cebc758dd2ad7913a43d0/nvidia_cuda_nvcc_cu12-12.9.86-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", upload-time = 2025-06-05T20:01:43Z, size = 39411138, hashes = { sha256 = "44e1eca4d08926193a558d2434b1bf83d57b4d5743e0c431c0c83d51da1df62b" } },
+    { url = "https://files.pythonhosted.org/packages/d2/9e/c71c53655a65d7531c89421c282359e2f626838762f1ce6180ea0bbebd29/nvidia_cuda_nvcc_cu12-12.9.86-py3-none-win_amd64.whl", upload-time = 2025-06-05T20:11:56Z, size = 34669845, hashes = { sha256 = "8ed7f0b17dea662755395be029376db3b94fed5cbb17c2d35cc866c5b1b84099" } },
+]
+
+[[packages]]
+name = "nvidia-cuda-nvrtc-cu12"
+version = "12.4.127"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_aarch64.whl", hashes = { sha256 = "0eedf14185e04b76aa05b1fea04133e59f465b6f960c0cbf4e37c3cb6b0ea198" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "a178759ebb095827bd30ef56598ec182b85547f1508941a3d560eb7ea1fbf338" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-win_amd64.whl", hashes = { sha256 = "a961b2f1d5f17b14867c619ceb99ef6fcec12e46612711bcec78eb05068a60ec" } },
+]
+
+[[packages]]
+name = "nvidia-cuda-nvrtc-cu12"
+version = "12.9.86"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+
+[[packages]]
+name = "nvidia-cuda-runtime-cu12"
+version = "12.4.127"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_aarch64.whl", hashes = { sha256 = "961fe0e2e716a2a1d967aab7caee97512f71767f852f67432d572e36cb3a11f3" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "64403288fa2136ee8e467cdc9c9427e0434110899d07c779f25b5c068934faa5" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cuda_runtime_cu12-12.4.127-py3-none-win_amd64.whl", hashes = { sha256 = "09c2e35f48359752dfa822c09918211844a3d93c100a715d79b59591130c5e1e" } },
+]
+
+[[packages]]
+name = "nvidia-cuda-runtime-cu12"
+version = "12.9.79"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+
+[[packages]]
+name = "nvidia-cudnn-cu12"
+version = "9.1.0.70"
+marker = "platform_machine == 'x86_64' and sys_platform == 'linux'"
+dependencies = [{ name = "nvidia-cublas-cu12", version = "12.4.5.8" }]
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/cu124/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "165764f44ef8c61fcdfdfdbe769d687e06374059fbb388b6c89ecb0e28793a6f" } }]
+
+[[packages]]
+name = "nvidia-cufft-cu12"
+version = "11.2.1.3"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+dependencies = [{ name = "nvidia-nvjitlink-cu12", version = "12.4.127" }]
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_aarch64.whl", hashes = { sha256 = "5dad8008fc7f92f5ddfa2101430917ce2ffacd86824914c82e28990ad7f00399" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "f083fc24912aa410be21fa16d157fed2055dab1cc4b6934a0e03cba69eb242b9" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cufft_cu12-11.2.1.3-py3-none-win_amd64.whl", hashes = { sha256 = "d802f4954291101186078ccbe22fc285a902136f974d369540fd4a5333d1440b" } },
+]
+
+[[packages]]
+name = "nvidia-cufft-cu12"
+version = "11.4.1.4"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+dependencies = [{ name = "nvidia-nvjitlink-cu12", version = "12.9.86" }]
+index = "https://download.pytorch.org/whl/cu124"
+
+[[packages]]
+name = "nvidia-curand-cu12"
+version = "10.3.5.147"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_aarch64.whl", hashes = { sha256 = "1f173f09e3e3c76ab084aba0de819c49e56614feae5c12f69883f4ae9bb5fad9" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "a88f583d4e0bb643c49743469964103aa59f7f708d862c3ddb0fc07f851e3b8b" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_curand_cu12-10.3.5.147-py3-none-win_amd64.whl", hashes = { sha256 = "f307cc191f96efe9e8f05a87096abc20d08845a841889ef78cb06924437f6771" } },
+]
+
+[[packages]]
+name = "nvidia-curand-cu12"
+version = "10.3.10.19"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+
+[[packages]]
+name = "nvidia-cusolver-cu12"
+version = "11.6.1.9"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+dependencies = [
+    { name = "nvidia-cublas-cu12", version = "12.4.5.8" },
+    { name = "nvidia-cusparse-cu12", version = "12.3.1.170" },
+    { name = "nvidia-nvjitlink-cu12", version = "12.4.127" },
+]
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_aarch64.whl", hashes = { sha256 = "d338f155f174f90724bbde3758b7ac375a70ce8e706d70b018dd3375545fc84e" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "19e33fa442bcfd085b3086c4ebf7e8debc07cfe01e11513cc6d332fd918ac260" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cusolver_cu12-11.6.1.9-py3-none-win_amd64.whl", hashes = { sha256 = "e77314c9d7b694fcebc84f58989f3aa4fb4cb442f12ca1a9bde50f5e8f6d1b9c" } },
+]
+
+[[packages]]
+name = "nvidia-cusolver-cu12"
+version = "11.7.5.82"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+dependencies = [
+    { name = "nvidia-cublas-cu12", version = "12.9.1.4" },
+    { name = "nvidia-cusparse-cu12", version = "12.5.10.65" },
+    { name = "nvidia-nvjitlink-cu12", version = "12.9.86" },
+]
+index = "https://download.pytorch.org/whl/cu124"
+
+[[packages]]
+name = "nvidia-cusparse-cu12"
+version = "12.3.1.170"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+dependencies = [{ name = "nvidia-nvjitlink-cu12", version = "12.4.127" }]
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_aarch64.whl", hashes = { sha256 = "9d32f62896231ebe0480efd8a7f702e143c98cfaa0e8a76df3386c1ba2b54df3" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "ea4f11a2904e2a8dc4b1833cc1b5181cde564edd0d5cd33e3c168eff2d1863f1" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_cusparse_cu12-12.3.1.170-py3-none-win_amd64.whl", hashes = { sha256 = "9bc90fb087bc7b4c15641521f31c0371e9a612fc2ba12c338d3ae032e6b6797f" } },
+]
+
+[[packages]]
+name = "nvidia-cusparse-cu12"
+version = "12.5.10.65"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+dependencies = [{ name = "nvidia-nvjitlink-cu12", version = "12.9.86" }]
+index = "https://download.pytorch.org/whl/cu124"
+
+[[packages]]
+name = "nvidia-cusparselt-cu12"
+version = "0.6.2"
+marker = "platform_machine == 'x86_64' and sys_platform == 'linux'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/cu124/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "df2c24502fd76ebafe7457dbc4716b2fec071aabaed4fb7691a201cde03704d9" } }]
+
+[[packages]]
+name = "nvidia-ml-py"
+version = "12.575.51"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/d2/4d/6f017814ed5ac28e08e1b8a62e3a258957da27582c89b7f8f8b15ac3d2e7/nvidia_ml_py-12.575.51.tar.gz", upload-time = 2025-05-06T20:46:37Z, size = 46597, hashes = { sha256 = "6490e93fea99eb4e966327ae18c6eec6256194c921f23459c8767aee28c54581" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/db/24/552ebea28f0570b9e65e62b50287a273804c9f997cc1c2dcd4e2d64b9e7d/nvidia_ml_py-12.575.51-py3-none-any.whl", upload-time = 2025-05-06T20:46:36Z, size = 47547, hashes = { sha256 = "eb8641800d98ce40a22f479873f34b482e214a7e80349c63be51c3919845446e" } }]
+
+[[packages]]
+name = "nvidia-nccl-cu12"
+version = "2.21.5"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "8579076d30a8c24988834445f8d633c697d42397e92ffc3f63fa26766d25e0a0" } },
+    { url = "https://download.pytorch.org/whl/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "8579076d30a8c24988834445f8d633c697d42397e92ffc3f63fa26766d25e0a0" } },
+]
+
+[[packages]]
+name = "nvidia-nccl-cu12"
+version = "2.27.3"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+
+[[packages]]
+name = "nvidia-nvjitlink-cu12"
+version = "12.4.127"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_aarch64.whl", hashes = { sha256 = "4abe7fef64914ccfa909bc2ba39739670ecc9e820c83ccc7a6ed414122599b83" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "06b3b9b25bf3f8af351d664978ca26a16d2c5127dbd53c0497e28d1fb9611d57" } },
+    { url = "https://download.pytorch.org/whl/cu124/nvidia_nvjitlink_cu12-12.4.127-py3-none-win_amd64.whl", hashes = { sha256 = "fd9020c501d27d135f983c6d3e244b197a7ccad769e34df53a42e276b0e25fa1" } },
+]
+
+[[packages]]
+name = "nvidia-nvjitlink-cu12"
+version = "12.9.86"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+index = "https://download.pytorch.org/whl/cu124"
+
+[[packages]]
+name = "nvidia-nvtx-cu12"
+version = "12.4.127"
+marker = "platform_machine == 'x86_64' and sys_platform == 'linux'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/cu124/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hashes = { sha256 = "781e950d9b9f60d8241ccea575b32f5105a5baf4c2351cab5256a24869f12a1a" } }]
+
+[[packages]]
+name = "nvtx"
+version = "0.2.13"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/97/02/b3fd3da4ba51764cfc0e4d2b22d5a61511fa79d825344d4704f8429c0bd6/nvtx-0.2.13.tar.gz", upload-time = 2025-08-05T03:27:16Z, size = 112104, hashes = { sha256 = "9db7ba135168e14e1f038866100bf8ed42d3e00b404e9bc7b6280ee3af828b92" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/c5/73/ad21e09dc2534f1e9723bbe5871fa5f03361ac51ca4d411fea6f765b5b6a/nvtx-0.2.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-04T19:33:16Z, size = 539358, hashes = { sha256 = "3435cbbffa132f6aaba3abdb01e71a1b961a20858b4cb791883895a25b9305d6" } },
+    { url = "https://files.pythonhosted.org/packages/12/ab/762da984e7671f7c34ae87e5b70523c3eeb4563759268bfaea07c97f32a6/nvtx-0.2.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-04T19:37:40Z, size = 545588, hashes = { sha256 = "453d838dd1424a04303281ee57a73e2b8dca0e03039bc609a945861b8fe7d7d9" } },
+    { url = "https://files.pythonhosted.org/packages/2a/b6/55bc5916386db70b93cbf543b1e880ead786d9ff0cdcfa262f5a2af46c74/nvtx-0.2.13-cp312-cp312-win_amd64.whl", upload-time = 2025-08-04T19:24:24Z, size = 99123, hashes = { sha256 = "0722d743e0e41e1fb866ebe6446e0cd0d268ca8671313f8da4f8c969956b74d3" } },
+    { url = "https://files.pythonhosted.org/packages/41/73/98c0669d5f9387a36d56b0e62ea3919124dd8dd7582d896ed1cae2998f57/nvtx-0.2.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-04T19:34:00Z, size = 519840, hashes = { sha256 = "a1561d2111c698b1b1075899ff9c3fa7ba83603fc27c2e8ef567de6bbbe85ce1" } },
+    { url = "https://files.pythonhosted.org/packages/14/4b/21e975997def8a387543ba2bbe227551ad466781c39fc67f37f53555f37e/nvtx-0.2.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-04T19:38:03Z, size = 524711, hashes = { sha256 = "edd7b729ed0211350258a21dd13422f59bc521de2b2fd21feb6c177af492f4e1" } },
+    { url = "https://files.pythonhosted.org/packages/21/d7/0ca146afd875f1e02636323840960071f768b5d8ba3e7d37f2ac9192bfd9/nvtx-0.2.13-cp313-cp313-win_amd64.whl", upload-time = 2025-08-04T19:24:46Z, size = 97317, hashes = { sha256 = "f0524bb71443d5a1f19a6409a9a81405fc437e53c5edfc4c44b6f4504ccf46e3" } },
+]
+
+[[packages]]
+name = "packaging"
+version = "24.1"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/packaging-24.1-py3-none-any.whl", hashes = { sha256 = "5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124" } }]
+
+[[packages]]
+name = "pandas"
+version = "2.3.2"
+dependencies = [
+    { name = "numpy", version = "2.1.2" },
+    { name = "python-dateutil", version = "2.9.0.post0" },
+    { name = "pytz", version = "2025.2" },
+    { name = "tzdata", version = "2025.2" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/79/8e/0e90233ac205ad182bd6b422532695d2b9414944a280488105d598c70023/pandas-2.3.2.tar.gz", upload-time = 2025-08-21T10:28:29Z, size = 4488684, hashes = { sha256 = "ab7b58f8f82706890924ccdfb5f48002b83d2b5a3845976a9fb705d36c34dcdb" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/ec/db/614c20fb7a85a14828edd23f1c02db58a30abf3ce76f38806155d160313c/pandas-2.3.2-cp312-cp312-macosx_10_13_x86_64.whl", upload-time = 2025-08-21T10:27:15Z, size = 11587652, hashes = { sha256 = "3fbb977f802156e7a3f829e9d1d5398f6192375a3e2d1a9ee0803e35fe70a2b9" } },
+    { url = "https://files.pythonhosted.org/packages/99/b0/756e52f6582cade5e746f19bad0517ff27ba9c73404607c0306585c201b3/pandas-2.3.2-cp312-cp312-macosx_11_0_arm64.whl", upload-time = 2025-08-21T10:27:18Z, size = 10717686, hashes = { sha256 = "1b9b52693123dd234b7c985c68b709b0b009f4521000d0525f2b95c22f15944b" } },
+    { url = "https://files.pythonhosted.org/packages/37/4c/dd5ccc1e357abfeee8353123282de17997f90ff67855f86154e5a13b81e5/pandas-2.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-21T10:27:21Z, size = 11278722, hashes = { sha256 = "0bd281310d4f412733f319a5bc552f86d62cddc5f51d2e392c8787335c994175" } },
+    { url = "https://files.pythonhosted.org/packages/d3/a4/f7edcfa47e0a88cda0be8b068a5bae710bf264f867edfdf7b71584ace362/pandas-2.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-21T10:27:23Z, size = 11987803, hashes = { sha256 = "96d31a6b4354e3b9b8a2c848af75d31da390657e3ac6f30c05c82068b9ed79b9" } },
+    { url = "https://files.pythonhosted.org/packages/f6/61/1bce4129f93ab66f1c68b7ed1c12bac6a70b1b56c5dab359c6bbcd480b52/pandas-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", upload-time = 2025-08-21T10:27:26Z, size = 12766345, hashes = { sha256 = "df4df0b9d02bb873a106971bb85d448378ef14b86ba96f035f50bbd3688456b4" } },
+    { url = "https://files.pythonhosted.org/packages/8e/46/80d53de70fee835531da3a1dae827a1e76e77a43ad22a8cd0f8142b61587/pandas-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", upload-time = 2025-08-21T10:27:29Z, size = 13439314, hashes = { sha256 = "213a5adf93d020b74327cb2c1b842884dbdd37f895f42dcc2f09d451d949f811" } },
+    { url = "https://files.pythonhosted.org/packages/28/30/8114832daff7489f179971dbc1d854109b7f4365a546e3ea75b6516cea95/pandas-2.3.2-cp312-cp312-win_amd64.whl", upload-time = 2025-08-21T10:27:31Z, size = 10983326, hashes = { sha256 = "8c13b81a9347eb8c7548f53fd9a4f08d4dfe996836543f805c987bafa03317ae" } },
+    { url = "https://files.pythonhosted.org/packages/27/64/a2f7bf678af502e16b472527735d168b22b7824e45a4d7e96a4fbb634b59/pandas-2.3.2-cp313-cp313-macosx_10_13_x86_64.whl", upload-time = 2025-08-21T10:27:34Z, size = 11531061, hashes = { sha256 = "0c6ecbac99a354a051ef21c5307601093cb9e0f4b1855984a084bfec9302699e" } },
+    { url = "https://files.pythonhosted.org/packages/54/4c/c3d21b2b7769ef2f4c2b9299fcadd601efa6729f1357a8dbce8dd949ed70/pandas-2.3.2-cp313-cp313-macosx_11_0_arm64.whl", upload-time = 2025-08-21T10:27:37Z, size = 10668666, hashes = { sha256 = "c6f048aa0fd080d6a06cc7e7537c09b53be6642d330ac6f54a600c3ace857ee9" } },
+    { url = "https://files.pythonhosted.org/packages/50/e2/f775ba76ecfb3424d7f5862620841cf0edb592e9abd2d2a5387d305fe7a8/pandas-2.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-21T10:27:40Z, size = 11332835, hashes = { sha256 = "0064187b80a5be6f2f9c9d6bdde29372468751dfa89f4211a3c5871854cfbf7a" } },
+    { url = "https://files.pythonhosted.org/packages/8f/52/0634adaace9be2d8cac9ef78f05c47f3a675882e068438b9d7ec7ef0c13f/pandas-2.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-21T10:27:43Z, size = 12057211, hashes = { sha256 = "4ac8c320bded4718b298281339c1a50fb00a6ba78cb2a63521c39bec95b0209b" } },
+    { url = "https://files.pythonhosted.org/packages/0b/9d/2df913f14b2deb9c748975fdb2491da1a78773debb25abbc7cbc67c6b549/pandas-2.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", upload-time = 2025-08-21T10:27:45Z, size = 12749277, hashes = { sha256 = "114c2fe4f4328cf98ce5716d1532f3ab79c5919f95a9cfee81d9140064a2e4d6" } },
+    { url = "https://files.pythonhosted.org/packages/87/af/da1a2417026bd14d98c236dba88e39837182459d29dcfcea510b2ac9e8a1/pandas-2.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", upload-time = 2025-08-21T10:27:49Z, size = 13415256, hashes = { sha256 = "48fa91c4dfb3b2b9bfdb5c24cd3567575f4e13f9636810462ffed8925352be5a" } },
+    { url = "https://files.pythonhosted.org/packages/22/3c/f2af1ce8840ef648584a6156489636b5692c162771918aa95707c165ad2b/pandas-2.3.2-cp313-cp313-win_amd64.whl", upload-time = 2025-08-21T10:28:08Z, size = 10982579, hashes = { sha256 = "12d039facec710f7ba305786837d0225a3444af7bbd9c15c32ca2d40d157ed8b" } },
+    { url = "https://files.pythonhosted.org/packages/f3/98/8df69c4097a6719e357dc249bf437b8efbde808038268e584421696cbddf/pandas-2.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", upload-time = 2025-08-21T10:27:52Z, size = 12028163, hashes = { sha256 = "c624b615ce97864eb588779ed4046186f967374185c047070545253a52ab2d57" } },
+    { url = "https://files.pythonhosted.org/packages/0e/23/f95cbcbea319f349e10ff90db488b905c6883f03cbabd34f6b03cbc3c044/pandas-2.3.2-cp313-cp313t-macosx_11_0_arm64.whl", upload-time = 2025-08-21T10:27:54Z, size = 11391860, hashes = { sha256 = "0cee69d583b9b128823d9514171cabb6861e09409af805b54459bd0c821a35c2" } },
+    { url = "https://files.pythonhosted.org/packages/ad/1b/6a984e98c4abee22058aa75bfb8eb90dce58cf8d7296f8bc56c14bc330b0/pandas-2.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-21T10:27:56Z, size = 11309830, hashes = { sha256 = "2319656ed81124982900b4c37f0e0c58c015af9a7bbc62342ba5ad07ace82ba9" } },
+    { url = "https://files.pythonhosted.org/packages/15/d5/f0486090eb18dd8710bf60afeaf638ba6817047c0c8ae5c6a25598665609/pandas-2.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-21T10:27:59Z, size = 11883216, hashes = { sha256 = "b37205ad6f00d52f16b6d09f406434ba928c1a1966e2771006a9033c736d30d2" } },
+    { url = "https://files.pythonhosted.org/packages/10/86/692050c119696da19e20245bbd650d8dfca6ceb577da027c3a73c62a047e/pandas-2.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", upload-time = 2025-08-21T10:28:02Z, size = 12699743, hashes = { sha256 = "837248b4fc3a9b83b9c6214699a13f069dc13510a6a6d7f9ba33145d2841a012" } },
+    { url = "https://files.pythonhosted.org/packages/cd/d7/612123674d7b17cf345aad0a10289b2a384bff404e0463a83c4a3a59d205/pandas-2.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", upload-time = 2025-08-21T10:28:05Z, size = 13186141, hashes = { sha256 = "d2c3554bd31b731cd6490d94a28f3abb8dd770634a9e06eb6d2911b9827db370" } },
+]
+
+[[packages]]
+name = "partd"
+version = "1.4.2"
+dependencies = [
+    { name = "locket", version = "1.0.0" },
+    { name = "toolz", version = "1.0.0" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/b2/3a/3f06f34820a31257ddcabdfafc2672c5816be79c7e353b02c1f318daa7d4/partd-1.4.2.tar.gz", upload-time = 2024-05-06T19:51:41Z, size = 21029, hashes = { sha256 = "d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl", upload-time = 2024-05-06T19:51:39Z, size = 18905, hashes = { sha256 = "978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f" } }]
+
+[[packages]]
+name = "protobuf"
+version = "6.32.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/c0/df/fb4a8eeea482eca989b51cffd274aac2ee24e825f0bf3cbce5281fa1567b/protobuf-6.32.0.tar.gz", upload-time = 2025-08-14T21:21:25Z, size = 440614, hashes = { sha256 = "a81439049127067fc49ec1d36e25c6ee1d1a2b7be930675f919258d03c04e7d2" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/33/18/df8c87da2e47f4f1dcc5153a81cd6bca4e429803f4069a299e236e4dd510/protobuf-6.32.0-cp310-abi3-win32.whl", upload-time = 2025-08-14T21:21:12Z, size = 424409, hashes = { sha256 = "84f9e3c1ff6fb0308dbacb0950d8aa90694b0d0ee68e75719cb044b7078fe741" } },
+    { url = "https://files.pythonhosted.org/packages/e1/59/0a820b7310f8139bd8d5a9388e6a38e1786d179d6f33998448609296c229/protobuf-6.32.0-cp310-abi3-win_amd64.whl", upload-time = 2025-08-14T21:21:15Z, size = 435735, hashes = { sha256 = "a8bdbb2f009cfc22a36d031f22a625a38b615b5e19e558a7b756b3279723e68e" } },
+    { url = "https://files.pythonhosted.org/packages/cc/5b/0d421533c59c789e9c9894683efac582c06246bf24bb26b753b149bd88e4/protobuf-6.32.0-cp39-abi3-macosx_10_9_universal2.whl", upload-time = 2025-08-14T21:21:16Z, size = 426449, hashes = { sha256 = "d52691e5bee6c860fff9a1c86ad26a13afbeb4b168cd4445c922b7e2cf85aaf0" } },
+    { url = "https://files.pythonhosted.org/packages/ec/7b/607764ebe6c7a23dcee06e054fd1de3d5841b7648a90fd6def9a3bb58c5e/protobuf-6.32.0-cp39-abi3-manylinux2014_aarch64.whl", upload-time = 2025-08-14T21:21:18Z, size = 322869, hashes = { sha256 = "501fe6372fd1c8ea2a30b4d9be8f87955a64d6be9c88a973996cef5ef6f0abf1" } },
+    { url = "https://files.pythonhosted.org/packages/40/01/2e730bd1c25392fc32e3268e02446f0d77cb51a2c3a8486b1798e34d5805/protobuf-6.32.0-cp39-abi3-manylinux2014_x86_64.whl", upload-time = 2025-08-14T21:21:19Z, size = 322009, hashes = { sha256 = "75a2aab2bd1aeb1f5dc7c5f33bcb11d82ea8c055c9becbb41c26a8c43fd7092c" } },
+    { url = "https://files.pythonhosted.org/packages/9c/f2/80ffc4677aac1bc3519b26bc7f7f5de7fce0ee2f7e36e59e27d8beb32dd1/protobuf-6.32.0-py3-none-any.whl", upload-time = 2025-08-14T21:21:23Z, size = 169287, hashes = { sha256 = "ba377e5b67b908c8f3072a57b63e2c6a4cbd18aea4ed98d2584350dbf46f2783" } },
+]
+
+[[packages]]
+name = "psutil"
+version = "7.0.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", upload-time = 2025-02-13T21:54:07Z, size = 497003, hashes = { sha256 = "7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", upload-time = 2025-02-13T21:54:12Z, size = 238051, hashes = { sha256 = "101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25" } },
+    { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", upload-time = 2025-02-13T21:54:16Z, size = 239535, hashes = { sha256 = "39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da" } },
+    { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", upload-time = 2025-02-13T21:54:18Z, size = 275004, hashes = { sha256 = "1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91" } },
+    { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-02-13T21:54:21Z, size = 277986, hashes = { sha256 = "4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34" } },
+    { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-02-13T21:54:24Z, size = 279544, hashes = { sha256 = "a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993" } },
+    { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", upload-time = 2025-02-13T21:54:34Z, size = 241053, hashes = { sha256 = "ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99" } },
+    { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", upload-time = 2025-02-13T21:54:37Z, size = 244885, hashes = { sha256 = "4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553" } },
+]
+
+[[packages]]
+name = "pyarrow"
+version = "17.0.0"
+marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'"
+dependencies = [{ name = "numpy", version = "2.1.2" }]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/27/4e/ea6d43f324169f8aec0e57569443a38bab4b398d09769ca64f7b4d467de3/pyarrow-17.0.0.tar.gz", upload-time = 2024-07-17T10:41:25Z, size = 1112479, hashes = { sha256 = "4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/d4/62/ce6ac1275a432b4a27c55fe96c58147f111d8ba1ad800a112d31859fae2f/pyarrow-17.0.0-cp312-cp312-macosx_10_15_x86_64.whl", upload-time = 2024-07-16T10:30:55Z, size = 29019418, hashes = { sha256 = "9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22" } }]
+
+[[packages]]
+name = "pyarrow"
+version = "19.0.1"
+marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/7f/09/a9046344212690f0632b9c709f9bf18506522feb333c894d0de81d62341a/pyarrow-19.0.1.tar.gz", upload-time = 2025-02-18T18:55:57Z, size = 1129437, hashes = { sha256 = "3bf266b485df66a400f282ac0b6d1b500b9d2ae73314a153dbe97d6d5cc8a99e" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/78/b4/94e828704b050e723f67d67c3535cf7076c7432cd4cf046e4bb3b96a9c9d/pyarrow-19.0.1-cp312-cp312-macosx_12_0_arm64.whl", upload-time = 2025-02-18T18:53:00Z, size = 30670749, hashes = { sha256 = "80b2ad2b193e7d19e81008a96e313fbd53157945c7be9ac65f44f8937a55427b" } },
+    { url = "https://files.pythonhosted.org/packages/7e/3b/4692965e04bb1df55e2c314c4296f1eb12b4f3052d4cf43d29e076aedf66/pyarrow-19.0.1-cp312-cp312-macosx_12_0_x86_64.whl", upload-time = 2025-02-18T18:53:06Z, size = 32128007, hashes = { sha256 = "ee8dec072569f43835932a3b10c55973593abc00936c202707a4ad06af7cb294" } },
+    { url = "https://files.pythonhosted.org/packages/22/f7/2239af706252c6582a5635c35caa17cb4d401cd74a87821ef702e3888957/pyarrow-19.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-02-18T18:53:11Z, size = 41144566, hashes = { sha256 = "4d5d1ec7ec5324b98887bdc006f4d2ce534e10e60f7ad995e7875ffa0ff9cb14" } },
+    { url = "https://files.pythonhosted.org/packages/fb/e3/c9661b2b2849cfefddd9fd65b64e093594b231b472de08ff658f76c732b2/pyarrow-19.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-02-18T18:53:17Z, size = 42202991, hashes = { sha256 = "f3ad4c0eb4e2a9aeb990af6c09e6fa0b195c8c0e7b272ecc8d4d2b6574809d34" } },
+    { url = "https://files.pythonhosted.org/packages/fe/4f/a2c0ed309167ef436674782dfee4a124570ba64299c551e38d3fdaf0a17b/pyarrow-19.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", upload-time = 2025-02-18T18:53:26Z, size = 40507986, hashes = { sha256 = "d383591f3dcbe545f6cc62daaef9c7cdfe0dff0fb9e1c8121101cabe9098cfa6" } },
+    { url = "https://files.pythonhosted.org/packages/27/2e/29bb28a7102a6f71026a9d70d1d61df926887e36ec797f2e6acfd2dd3867/pyarrow-19.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", upload-time = 2025-02-18T18:53:33Z, size = 42087026, hashes = { sha256 = "b4c4156a625f1e35d6c0b2132635a237708944eb41df5fbe7d50f20d20c17832" } },
+    { url = "https://files.pythonhosted.org/packages/16/33/2a67c0f783251106aeeee516f4806161e7b481f7d744d0d643d2f30230a5/pyarrow-19.0.1-cp312-cp312-win_amd64.whl", upload-time = 2025-02-18T18:53:38Z, size = 25250108, hashes = { sha256 = "5bd1618ae5e5476b7654c7b55a6364ae87686d4724538c24185bbb2952679960" } },
+    { url = "https://files.pythonhosted.org/packages/2b/8d/275c58d4b00781bd36579501a259eacc5c6dfb369be4ddeb672ceb551d2d/pyarrow-19.0.1-cp313-cp313-macosx_12_0_arm64.whl", upload-time = 2025-02-18T18:53:44Z, size = 30653552, hashes = { sha256 = "e45274b20e524ae5c39d7fc1ca2aa923aab494776d2d4b316b49ec7572ca324c" } },
+    { url = "https://files.pythonhosted.org/packages/a0/9e/e6aca5cc4ef0c7aec5f8db93feb0bde08dbad8c56b9014216205d271101b/pyarrow-19.0.1-cp313-cp313-macosx_12_0_x86_64.whl", upload-time = 2025-02-18T18:53:52Z, size = 32103413, hashes = { sha256 = "d9dedeaf19097a143ed6da37f04f4051aba353c95ef507764d344229b2b740ae" } },
+    { url = "https://files.pythonhosted.org/packages/6a/fa/a7033f66e5d4f1308c7eb0dfcd2ccd70f881724eb6fd1776657fdf65458f/pyarrow-19.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-02-18T18:53:59Z, size = 41134869, hashes = { sha256 = "6ebfb5171bb5f4a52319344ebbbecc731af3f021e49318c74f33d520d31ae0c4" } },
+    { url = "https://files.pythonhosted.org/packages/2d/92/34d2569be8e7abdc9d145c98dc410db0071ac579b92ebc30da35f500d630/pyarrow-19.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-02-18T18:54:06Z, size = 42192626, hashes = { sha256 = "f2a21d39fbdb948857f67eacb5bbaaf36802de044ec36fbef7a1c8f0dd3a4ab2" } },
+    { url = "https://files.pythonhosted.org/packages/0a/1f/80c617b1084fc833804dc3309aa9d8daacd46f9ec8d736df733f15aebe2c/pyarrow-19.0.1-cp313-cp313-manylinux_2_28_aarch64.whl", upload-time = 2025-02-18T18:54:12Z, size = 40496708, hashes = { sha256 = "99bc1bec6d234359743b01e70d4310d0ab240c3d6b0da7e2a93663b0158616f6" } },
+    { url = "https://files.pythonhosted.org/packages/e6/90/83698fcecf939a611c8d9a78e38e7fed7792dcc4317e29e72cf8135526fb/pyarrow-19.0.1-cp313-cp313-manylinux_2_28_x86_64.whl", upload-time = 2025-02-18T18:54:19Z, size = 42075728, hashes = { sha256 = "1b93ef2c93e77c442c979b0d596af45e4665d8b96da598db145b0fec014b9136" } },
+    { url = "https://files.pythonhosted.org/packages/40/49/2325f5c9e7a1c125c01ba0c509d400b152c972a47958768e4e35e04d13d8/pyarrow-19.0.1-cp313-cp313-win_amd64.whl", upload-time = 2025-02-18T18:54:25Z, size = 25242568, hashes = { sha256 = "d9d46e06846a41ba906ab25302cf0fd522f81aa2a85a71021826f34639ad31ef" } },
+    { url = "https://files.pythonhosted.org/packages/3f/72/135088d995a759d4d916ec4824cb19e066585b4909ebad4ab196177aa825/pyarrow-19.0.1-cp313-cp313t-macosx_12_0_arm64.whl", upload-time = 2025-02-18T18:54:30Z, size = 30702371, hashes = { sha256 = "c0fe3dbbf054a00d1f162fda94ce236a899ca01123a798c561ba307ca38af5f0" } },
+    { url = "https://files.pythonhosted.org/packages/2e/01/00beeebd33d6bac701f20816a29d2018eba463616bbc07397fdf99ac4ce3/pyarrow-19.0.1-cp313-cp313t-macosx_12_0_x86_64.whl", upload-time = 2025-02-18T18:54:35Z, size = 32116046, hashes = { sha256 = "96606c3ba57944d128e8a8399da4812f56c7f61de8c647e3470b417f795d0ef9" } },
+    { url = "https://files.pythonhosted.org/packages/1f/c9/23b1ea718dfe967cbd986d16cf2a31fe59d015874258baae16d7ea0ccabc/pyarrow-19.0.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-02-18T18:54:42Z, size = 41091183, hashes = { sha256 = "8f04d49a6b64cf24719c080b3c2029a3a5b16417fd5fd7c4041f94233af732f3" } },
+    { url = "https://files.pythonhosted.org/packages/3a/d4/b4a3aa781a2c715520aa8ab4fe2e7fa49d33a1d4e71c8fc6ab7b5de7a3f8/pyarrow-19.0.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-02-18T18:54:49Z, size = 42171896, hashes = { sha256 = "5a9137cf7e1640dce4c190551ee69d478f7121b5c6f323553b319cac936395f6" } },
+    { url = "https://files.pythonhosted.org/packages/23/1b/716d4cd5a3cbc387c6e6745d2704c4b46654ba2668260d25c402626c5ddb/pyarrow-19.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl", upload-time = 2025-02-18T18:54:57Z, size = 40464851, hashes = { sha256 = "7c1bca1897c28013db5e4c83944a2ab53231f541b9e0c3f4791206d0c0de389a" } },
+    { url = "https://files.pythonhosted.org/packages/ed/bd/54907846383dcc7ee28772d7e646f6c34276a17da740002a5cefe90f04f7/pyarrow-19.0.1-cp313-cp313t-manylinux_2_28_x86_64.whl", upload-time = 2025-02-18T18:55:08Z, size = 42085744, hashes = { sha256 = "58d9397b2e273ef76264b45531e9d552d8ec8a6688b7390b5be44c02a37aade8" } },
+]
+
+[[packages]]
+name = "pygments"
+version = "2.19.2"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", upload-time = 2025-06-21T13:39:12Z, size = 4968631, hashes = { sha256 = "636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", upload-time = 2025-06-21T13:39:07Z, size = 1225217, hashes = { sha256 = "86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b" } }]
+
+[[packages]]
+name = "pylibcudf-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "cuda-python", version = "12.9.2" },
+    { name = "libcudf-cu12", version = "25.8.0" },
+    { name = "nvtx", version = "0.2.13" },
+    { name = "packaging", version = "24.1" },
+    { name = "rmm-cu12", version = "25.8.0" },
+    { name = "typing-extensions", version = "4.12.2" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/7d/dc/c687ab9a09883074471395e21b6f81620ee215f3fcc28af5dfbdba3b75f4/pylibcudf_cu12-25.8.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T11:44:59Z, size = 28056052, hashes = { sha256 = "74a307a41d7c322ee3477c15405d70eaf9599cf495c0620190ec8f08306abc4f" } },
+    { url = "https://files.pythonhosted.org/packages/e7/77/25e584707b9a2606b6aae9ca7b13c54cff131740598a5996df34ea346bf9/pylibcudf_cu12-25.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T11:41:18Z, size = 27918119, hashes = { sha256 = "cf32e29dcbc3869095c7c65a3d18b6b5f7d3edf19efe5ca67a9c4b716e582e73" } },
+    { url = "https://files.pythonhosted.org/packages/da/3d/49a1149b0dc3fac38608e2b9a16acbf7d1679d863978dd1823f186434207/pylibcudf_cu12-25.8.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T11:44:04Z, size = 28009766, hashes = { sha256 = "bf5245bce8c9db21b9b69daf95276635e36521884af1dbdcdd75dee2444cfe35" } },
+    { url = "https://files.pythonhosted.org/packages/b8/97/9dfc8b542f53ea5ae29030a7767328c47f9128a5d4bd6db75ec5dc9ddbe0/pylibcudf_cu12-25.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T11:40:47Z, size = 27868189, hashes = { sha256 = "6fd80d86376a95ad6962ae426a8cc4a1a502be64260d71fbe76ee87640389605" } },
+]
+
+[[packages]]
+name = "pylibraft-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "cuda-python", version = "12.9.2" },
+    { name = "libraft-cu12", version = "25.8.0" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "rmm-cu12", version = "25.8.0" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/7c/d5/56f89a52d01423faa5a44905e2917efc16cac0eda6ceed9b0fe9eeab8442/pylibraft_cu12-25.8.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T13:45:22Z, size = 854193, hashes = { sha256 = "e9445af2f518cd4abd7e1b6f32fa347864e766d87126ff1b73079604dc800ddd" } },
+    { url = "https://files.pythonhosted.org/packages/0b/23/23831eeead7ae5c41243617ab94dd6b83a8a38b3f8c3e0dc9e45c5219d50/pylibraft_cu12-25.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T13:41:06Z, size = 853552, hashes = { sha256 = "e29dcb3839556b3a3b22228c2376580da1f0de70292f664861881776458459e0" } },
+    { url = "https://files.pythonhosted.org/packages/60/52/84402e816d0e6e2851752ce959f0ea4282800dedd9c11908810acca04af8/pylibraft_cu12-25.8.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T13:44:35Z, size = 848866, hashes = { sha256 = "1eb0d95309d404ace9b42d22587f8440bb8e8778c6f1a4d847604429264c685f" } },
+    { url = "https://files.pythonhosted.org/packages/cd/b8/15c3b746958e0618a69ef3bc1cb0ddf54511e770acfa1095a7f5ed239bcb/pylibraft_cu12-25.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T13:40:36Z, size = 847870, hashes = { sha256 = "45048d6aff885d138db53a1809c5c731cd2f60627f528d80d8db888a63a8b3a0" } },
+]
+
+[[packages]]
+name = "pynvjitlink-cu12"
+version = "0.7.0"
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/d5/02/c7f60f4a30595e67bed0f70bf9b8217479a623094397b92e5e8167021879/pynvjitlink_cu12-0.7.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-06-25T14:38:15Z, size = 45930160, hashes = { sha256 = "8fc54a5caa12d98bef709b8e2c685e558d793dfd5619e4b095e4a743744e17ed" } },
+    { url = "https://files.pythonhosted.org/packages/d9/c1/8ca003a16c2391ba8542c9f51ceae1124d3be3f824b7605c8af9d62c300a/pynvjitlink_cu12-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-06-25T14:38:20Z, size = 46934247, hashes = { sha256 = "2e6b9aec00ad37647692b030ee545fdb3b701b0a91579a5b9075fbe314c0f9bb" } },
+    { url = "https://files.pythonhosted.org/packages/bc/17/81bcaebdf678a47c084629cde924cf27acc69500a9da625d163b408b4a2c/pynvjitlink_cu12-0.7.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-06-25T14:38:23Z, size = 45929897, hashes = { sha256 = "fc9b904531dfc416a74a30ad81bb0a851857c3d34bf6335ffa75bc6a1db228c7" } },
+    { url = "https://files.pythonhosted.org/packages/02/89/08a2b8b5cd91c2ed080ecc8a144f6984bd2579915857fa68016c5e775906/pynvjitlink_cu12-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-06-25T14:38:25Z, size = 46934163, hashes = { sha256 = "0ff2627f9fa15514a0af47dfe5fba4689a52dca79878d457f8a204fa418c0a4f" } },
+]
+
+[[packages]]
+name = "pynvml"
+version = "12.0.0"
+dependencies = [{ name = "nvidia-ml-py", version = "12.575.51" }]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/26/6f/6b5880ed0239e85b9a39aed103b65b2ef81425beef9f45e5c035bf008330/pynvml-12.0.0.tar.gz", upload-time = 2024-12-02T15:04:36Z, size = 33636, hashes = { sha256 = "299ce2451a6a17e6822d6faee750103e25b415f06f59abb8db65d30f794166f5" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/ed/df/f7cf07a65a96dd11d71f346f9c2863accdd4784da83af7181b067d556cbc/pynvml-12.0.0-py3-none-any.whl", upload-time = 2024-12-02T15:04:35Z, size = 26560, hashes = { sha256 = "fdff84b62a27dbe98e08e1a647eb77342bef1aebe0878bcd15e99a83fcbecb9e" } }]
+
+[[packages]]
+name = "python-dateutil"
+version = "2.9.0.post0"
+dependencies = [{ name = "six", version = "1.17.0" }]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", upload-time = 2024-03-01T18:36:20Z, size = 342432, hashes = { sha256 = "37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", upload-time = 2024-03-01T18:36:18Z, size = 229892, hashes = { sha256 = "a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" } }]
+
+[[packages]]
+name = "pytz"
+version = "2025.2"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", upload-time = 2025-03-25T02:25:00Z, size = 320884, hashes = { sha256 = "360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", upload-time = 2025-03-25T02:24:58Z, size = 509225, hashes = { sha256 = "5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00" } }]
+
+[[packages]]
+name = "pywin32"
+version = "311"
+marker = "sys_platform == 'win32'"
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", upload-time = 2025-07-14T20:13:20Z, size = 8706543, hashes = { sha256 = "750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31" } },
+    { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", upload-time = 2025-07-14T20:13:22Z, size = 9495040, hashes = { sha256 = "b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067" } },
+    { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", upload-time = 2025-07-14T20:13:24Z, size = 8710102, hashes = { sha256 = "e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852" } },
+    { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", upload-time = 2025-07-14T20:13:26Z, size = 8705700, hashes = { sha256 = "f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d" } },
+    { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", upload-time = 2025-07-14T20:13:28Z, size = 9494700, hashes = { sha256 = "718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d" } },
+    { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", upload-time = 2025-07-14T20:13:30Z, size = 8709318, hashes = { sha256 = "7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a" } },
+    { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", upload-time = 2025-07-14T20:13:32Z, size = 8840714, hashes = { sha256 = "b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee" } },
+    { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", upload-time = 2025-07-14T20:13:34Z, size = 9656800, hashes = { sha256 = "3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87" } },
+    { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", upload-time = 2025-07-14T20:13:36Z, size = 8932540, hashes = { sha256 = "a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42" } },
+]
+
+[[packages]]
+name = "pyyaml"
+version = "6.0.2"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", upload-time = 2024-08-06T20:33:50Z, size = 130631, hashes = { sha256 = "d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e" } }
+wheels = [
+    { name = "pyyaml-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", upload-time = 2024-08-06T20:32:25Z, size = 183873, hashes = { sha256 = "c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab" } },
+    { name = "pyyaml-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", upload-time = 2024-08-06T20:32:26Z, size = 173302, hashes = { sha256 = "ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725" } },
+    { name = "pyyaml-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2024-08-06T20:32:28Z, size = 739154, hashes = { sha256 = "1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5" } },
+    { name = "pyyaml-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", upload-time = 2024-08-06T20:32:30Z, size = 766223, hashes = { sha256 = "9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425" } },
+    { name = "pyyaml-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-08-06T20:32:31Z, size = 767542, hashes = { sha256 = "80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476" } },
+    { name = "pyyaml-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", upload-time = 2024-08-06T20:32:37Z, size = 731164, hashes = { sha256 = "0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48" } },
+    { name = "pyyaml-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", upload-time = 2024-08-06T20:32:38Z, size = 756611, hashes = { sha256 = "8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b" } },
+    { name = "pyyaml-6.0.2-cp312-cp312-win32.whl", url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", upload-time = 2024-08-06T20:32:40Z, size = 140591, hashes = { sha256 = "ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4" } },
+    { name = "pyyaml-6.0.2-cp312-cp312-win_amd64.whl", url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", upload-time = 2024-08-06T20:32:41Z, size = 156338, hashes = { sha256 = "7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8" } },
+    { name = "pyyaml-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", upload-time = 2024-08-06T20:32:43Z, size = 181309, hashes = { sha256 = "efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba" } },
+    { name = "pyyaml-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", upload-time = 2024-08-06T20:32:44Z, size = 171679, hashes = { sha256 = "50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1" } },
+    { name = "pyyaml-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2024-08-06T20:32:46Z, size = 733428, hashes = { sha256 = "0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133" } },
+    { name = "pyyaml-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", upload-time = 2024-08-06T20:32:51Z, size = 763361, hashes = { sha256 = "17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484" } },
+    { name = "pyyaml-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-08-06T20:32:53Z, size = 759523, hashes = { sha256 = "70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5" } },
+    { name = "pyyaml-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", upload-time = 2024-08-06T20:32:54Z, size = 726660, hashes = { sha256 = "41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc" } },
+    { name = "pyyaml-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", upload-time = 2024-08-06T20:32:56Z, size = 751597, hashes = { sha256 = "68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652" } },
+    { name = "pyyaml-6.0.2-cp313-cp313-win32.whl", url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", upload-time = 2024-08-06T20:33:03Z, size = 140527, hashes = { sha256 = "bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183" } },
+    { name = "pyyaml-6.0.2-cp313-cp313-win_amd64.whl", url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", upload-time = 2024-08-06T20:33:04Z, size = 156446, hashes = { sha256 = "8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563" } },
+]
+
+[[packages]]
+name = "raft-dask-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "dask-cuda", version = "25.8.0" },
+    { name = "distributed-ucxx-cu12", version = "0.45.1" },
+    { name = "libraft-cu12", version = "25.8.0" },
+    { name = "nvidia-nccl-cu12", version = "2.21.5" },
+    { name = "nvidia-nccl-cu12", version = "2.27.3" },
+    { name = "pylibraft-cu12", version = "25.8.0" },
+    { name = "rapids-dask-dependency", version = "25.8.0" },
+    { name = "ucx-py-cu12", version = "0.45.0" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/84/13/f43646718aa98d9b5d41d29c9d805d1cefa33477eb06a6f3fc3ca1ba24f1/raft_dask_cu12-25.8.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T14:41:27Z, size = 1010197, hashes = { sha256 = "79cdf4932ca44d570f87d45024d4b116eb398aa0d4a304e1ed2195add8d3eb80" } },
+    { url = "https://files.pythonhosted.org/packages/cf/0a/bc1c5982d333e3678c6a3f0f6990df5407ef1a87bc406e3fc313a70a8ef4/raft_dask_cu12-25.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T14:44:11Z, size = 1040771, hashes = { sha256 = "9d859cd8f4384fc32b3b1bd690eea03f4f670a89b77fcefa331404c8ee5378d8" } },
+    { url = "https://files.pythonhosted.org/packages/d3/d7/9772cad30cee4b822249180f3ec90c637ed2cb5fcbc40563a27c91d0f29b/raft_dask_cu12-25.8.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T14:40:38Z, size = 1008371, hashes = { sha256 = "4f6eb1b450ee0d382062e487136e235befce825b8095acb135ffa514273f39a0" } },
+    { url = "https://files.pythonhosted.org/packages/fb/03/74a68ada398fbda8ea655497790fd13ad042ca8d9b40d2e02d0c732cf6ba/raft_dask_cu12-25.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T14:43:48Z, size = 1039820, hashes = { sha256 = "c43f0984df44217467eafbff212bf7c3b65f7b6739529dd51ba04145543e000e" } },
+]
+
+[[packages]]
+name = "rapids-dask-dependency"
+version = "25.8.0"
+dependencies = [
+    { name = "dask", version = "2025.7.0" },
+    { name = "distributed", version = "2025.7.0" },
+]
+index = "https://pypi.org/simple"
+wheels = [{ url = "https://files.pythonhosted.org/packages/5c/de/a5223c9bf0fcf29867d602e0a760b173aa9fc385597f5c65d3000a5eb311/rapids_dask_dependency-25.8.0-py3-none-any.whl", upload-time = 2025-08-07T15:40:34Z, size = 18114, hashes = { sha256 = "5b5ffc61feb1c6936d761a3c2fdb1ce1eb7ba19cd724913ae0172cd7dff8165c" } }]
+
+[[packages]]
+name = "rapids-logger"
+version = "0.1.1"
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/ac/df/8864e092eb51383286e299b436bc4ab22030c6aedd7d8b7a53a8f630950b/rapids_logger-0.1.1-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-04-09T15:56:30Z, size = 187530, hashes = { sha256 = "9f8f7723254b0e2d22afb6be6b99a6527dc51c382f5c7c680f85be69350d067c" } },
+    { url = "https://files.pythonhosted.org/packages/54/de/4fc9189bf70066e567f021d9789e1c088db353cd4e4b4ddca3d021d72e4c/rapids_logger-0.1.1-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-04-09T15:56:32Z, size = 192952, hashes = { sha256 = "222a89befa0f2ad2ed9f5df1bd1fd24dd789f0697f13c431a340583c767f58f3" } },
+]
+
+[[packages]]
+name = "ray"
+version = "2.47.1"
+dependencies = [
+    { name = "click", version = "8.2.1" },
+    { name = "filelock", version = "3.13.1" },
+    { name = "jsonschema", version = "4.25.1" },
+    { name = "msgpack", version = "1.1.1" },
+    { name = "packaging", version = "24.1" },
+    { name = "protobuf", version = "6.32.0" },
+    { name = "pyyaml", version = "6.0.2" },
+    { name = "requests", version = "2.28.1" },
+    { name = "fsspec", version = "2024.6.1" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "pandas", version = "2.3.2" },
+    { name = "pyarrow", version = "17.0.0" },
+    { name = "pyarrow", version = "19.0.1" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/96/d8/833edaf128fb5cdd53818d307bb93df75d943f32ecc5cb0d7b14981265e6/ray-2.47.1-cp312-cp312-macosx_11_0_arm64.whl", upload-time = 2025-06-17T22:27:08Z, size = 66091855, hashes = { sha256 = "322049c4546cf67e5efdad90c371c5508acbb193e5aaaf4038103c6c5ce1f578" } },
+    { url = "https://files.pythonhosted.org/packages/ce/fa/23640e58046c91fcc05edd04bd51dd3d6a44cd7b408faf5bb3528a24c13d/ray-2.47.1-cp312-cp312-macosx_12_0_x86_64.whl", upload-time = 2025-06-17T22:27:15Z, size = 68512697, hashes = { sha256 = "e6d9c78e53ac89cabbc4056aecfec53c506c692e3132af9dae941d6180ef462f" } },
+    { url = "https://files.pythonhosted.org/packages/c5/32/6abf17053eb0ae720a2981a17e6b22797cc655782b603a707052b47f64eb/ray-2.47.1-cp312-cp312-manylinux2014_aarch64.whl", upload-time = 2025-06-17T22:27:21Z, size = 67918881, hashes = { sha256 = "cd4e7eb475487364b5209963b17cefedcb7fbd3a816fdb6def7ea533ebd72424" } },
+    { url = "https://files.pythonhosted.org/packages/5c/31/4545d03ed68eedf42b52e2a8705a584361e262640e145d6ab219ae33969c/ray-2.47.1-cp312-cp312-manylinux2014_x86_64.whl", upload-time = 2025-06-17T22:27:27Z, size = 68888167, hashes = { sha256 = "3eaeaeec3bbe2ca6493e530c30473d84b8580a7ac3256bb9183d8c63def5a92f" } },
+    { url = "https://files.pythonhosted.org/packages/94/f6/ed91383e0057ad9e3d9c45212a0c7edc5a9d24a2e46da0d55c8233df868c/ray-2.47.1-cp312-cp312-win_amd64.whl", upload-time = 2025-06-17T22:27:33Z, size = 26164455, hashes = { sha256 = "601f23ba89918b7b3ffebf967328f7bdb605deaf8c103aad7820dc2722fe450c" } },
+    { url = "https://files.pythonhosted.org/packages/7b/85/4dbf9a126f080a1114ec7738d9274759c256ff2a1c21662b09123311bbf0/ray-2.47.1-cp313-cp313-macosx_11_0_arm64.whl", upload-time = 2025-06-17T22:27:38Z, size = 66082130, hashes = { sha256 = "8cd625d469ce15391e5f1f44ddf8dd30b2380f917603fa0172661229acb0011f" } },
+    { url = "https://files.pythonhosted.org/packages/5a/8e/e893176ca3c02a310bb962b287436508f5b61fd179a7283f37610c0e0087/ray-2.47.1-cp313-cp313-macosx_12_0_x86_64.whl", upload-time = 2025-06-17T22:27:44Z, size = 68507369, hashes = { sha256 = "e578929f58b3f0c59c7544a96d864e26278238b755d13cd19ae798070c848e57" } },
+    { url = "https://files.pythonhosted.org/packages/0c/97/f36e8a19885d930ab0dbcb0b7b6706e630412336b08fa3312bcaaad818b7/ray-2.47.1-cp313-cp313-manylinux2014_aarch64.whl", upload-time = 2025-06-17T22:27:51Z, size = 67875541, hashes = { sha256 = "d6ed6d182e25d6f77179dc77bc97a749c81765b13cb671a46db3203029389663" } },
+    { url = "https://files.pythonhosted.org/packages/52/60/83430886d17526f4757e298b77268533afeedc74ed934f911d522f191ef2/ray-2.47.1-cp313-cp313-manylinux2014_x86_64.whl", upload-time = 2025-06-17T22:27:57Z, size = 68848558, hashes = { sha256 = "252a471e8afb918b105cdbffb4cbebb0143baad75a06c8ffcde27ac317579ccb" } },
+]
+
+[[packages]]
+name = "referencing"
+version = "0.36.2"
+dependencies = [
+    { name = "attrs", version = "25.3.0" },
+    { name = "rpds-py", version = "0.27.0" },
+    { name = "typing-extensions", version = "4.12.2" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", upload-time = 2025-01-25T08:48:16Z, size = 74744, hashes = { sha256 = "df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", upload-time = 2025-01-25T08:48:14Z, size = 26775, hashes = { sha256 = "e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0" } }]
+
+[[packages]]
+name = "requests"
+version = "2.28.1"
+dependencies = [
+    { name = "certifi", version = "2022.12.7" },
+    { name = "charset-normalizer", version = "2.1.1" },
+    { name = "idna", version = "3.4" },
+    { name = "urllib3", version = "1.26.13" },
+]
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/requests-2.28.1-py3-none-any.whl", hashes = { sha256 = "8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" } }]
+
+[[packages]]
+name = "rich"
+version = "14.1.0"
+dependencies = [
+    { name = "markdown-it-py", version = "4.0.0" },
+    { name = "pygments", version = "2.19.2" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b/rich-14.1.0.tar.gz", upload-time = 2025-07-25T07:32:58Z, size = 224441, hashes = { sha256 = "e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/e3/30/3c4d035596d3cf444529e0b2953ad0466f6049528a879d27534700580395/rich-14.1.0-py3-none-any.whl", upload-time = 2025-07-25T07:32:56Z, size = 243368, hashes = { sha256 = "536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f" } }]
+
+[[packages]]
+name = "rmm-cu12"
+version = "25.8.0"
+dependencies = [
+    { name = "cuda-python", version = "12.9.2" },
+    { name = "librmm-cu12", version = "25.8.0" },
+    { name = "numpy", version = "2.1.2" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/58/a9/899e08a15e56cfe89f9600a09153a2b051c34dcd8da07e82a3f2f8e18d56/rmm_cu12-25.8.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T11:17:39Z, size = 1124347, hashes = { sha256 = "a414c37bf0cc6b69260521be80c8833bdf48a3b734bb2935428d6ad23b86fd81" } },
+    { url = "https://files.pythonhosted.org/packages/b1/98/e92ffca3cbfbd9fdce8b87fe9a1308152711a6dbf189c7fc6b27becca207/rmm_cu12-25.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T11:20:29Z, size = 1128995, hashes = { sha256 = "bb58cbced2b84dcaebdf042258b458fa4652ce995d153cf91c5df2f6528ae609" } },
+    { url = "https://files.pythonhosted.org/packages/c8/59/32c8d472df8820405f4989a609e41a33afedff8723946bbee89dff0a8a80/rmm_cu12-25.8.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T11:09:00Z, size = 1120505, hashes = { sha256 = "fe7be6c55959a90dfb7009ff4ed8055023f970164247bb8ecd404ac2a980d5df" } },
+    { url = "https://files.pythonhosted.org/packages/fd/ee/21a5d4746c8440c85f841bef4bfd2d6fd2117ed9f440a19b59b38c71169e/rmm_cu12-25.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T11:20:06Z, size = 1124169, hashes = { sha256 = "0ef2d154e905a1d480489c9100561bf03c2dde7e6ad0320ba18a90c5d6c84ae3" } },
+]
+
+[[packages]]
+name = "rpds-py"
+version = "0.27.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/1e/d9/991a0dee12d9fc53ed027e26a26a64b151d77252ac477e22666b9688bc16/rpds_py-0.27.0.tar.gz", upload-time = 2025-08-07T08:26:39Z, size = 27420, hashes = { sha256 = "8b23cf252f180cda89220b378d917180f29d313cd6a07b2431c0d3b776aae86f" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/cd/17/e67309ca1ac993fa1888a0d9b2f5ccc1f67196ace32e76c9f8e1dbbbd50c/rpds_py-0.27.0-cp312-cp312-macosx_10_12_x86_64.whl", upload-time = 2025-08-07T08:23:44Z, size = 362611, hashes = { sha256 = "19c990fdf5acecbf0623e906ae2e09ce1c58947197f9bced6bbd7482662231c4" } },
+    { url = "https://files.pythonhosted.org/packages/93/2e/28c2fb84aa7aa5d75933d1862d0f7de6198ea22dfd9a0cca06e8a4e7509e/rpds_py-0.27.0-cp312-cp312-macosx_11_0_arm64.whl", upload-time = 2025-08-07T08:23:46Z, size = 347680, hashes = { sha256 = "6c27a7054b5224710fcfb1a626ec3ff4f28bcb89b899148c72873b18210e446b" } },
+    { url = "https://files.pythonhosted.org/packages/44/3e/9834b4c8f4f5fe936b479e623832468aa4bd6beb8d014fecaee9eac6cdb1/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-07T08:23:48Z, size = 384600, hashes = { sha256 = "09965b314091829b378b60607022048953e25f0b396c2b70e7c4c81bcecf932e" } },
+    { url = "https://files.pythonhosted.org/packages/19/78/744123c7b38865a965cd9e6f691fde7ef989a00a256fa8bf15b75240d12f/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", upload-time = 2025-08-07T08:23:49Z, size = 400697, hashes = { sha256 = "14f028eb47f59e9169bfdf9f7ceafd29dd64902141840633683d0bad5b04ff34" } },
+    { url = "https://files.pythonhosted.org/packages/32/97/3c3d32fe7daee0a1f1a678b6d4dfb8c4dcf88197fa2441f9da7cb54a8466/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", upload-time = 2025-08-07T08:23:50Z, size = 517781, hashes = { sha256 = "6168af0be75bba990a39f9431cdfae5f0ad501f4af32ae62e8856307200517b8" } },
+    { url = "https://files.pythonhosted.org/packages/b2/be/28f0e3e733680aa13ecec1212fc0f585928a206292f14f89c0b8a684cad1/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", upload-time = 2025-08-07T08:23:51Z, size = 406449, hashes = { sha256 = "ab47fe727c13c09d0e6f508e3a49e545008e23bf762a245b020391b621f5b726" } },
+    { url = "https://files.pythonhosted.org/packages/95/ae/5d15c83e337c082d0367053baeb40bfba683f42459f6ebff63a2fd7e5518/rpds_py-0.27.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-07T08:23:52Z, size = 386150, hashes = { sha256 = "5fa01b3d5e3b7d97efab65bd3d88f164e289ec323a8c033c5c38e53ee25c007e" } },
+    { url = "https://files.pythonhosted.org/packages/bf/65/944e95f95d5931112829e040912b25a77b2e7ed913ea5fe5746aa5c1ce75/rpds_py-0.27.0-cp312-cp312-manylinux_2_31_riscv64.whl", upload-time = 2025-08-07T08:23:54Z, size = 406100, hashes = { sha256 = "6c135708e987f46053e0a1246a206f53717f9fadfba27174a9769ad4befba5c3" } },
+    { url = "https://files.pythonhosted.org/packages/21/a4/1664b83fae02894533cd11dc0b9f91d673797c2185b7be0f7496107ed6c5/rpds_py-0.27.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", upload-time = 2025-08-07T08:23:55Z, size = 421345, hashes = { sha256 = "fc327f4497b7087d06204235199daf208fd01c82d80465dc5efa4ec9df1c5b4e" } },
+    { url = "https://files.pythonhosted.org/packages/7c/26/b7303941c2b0823bfb34c71378249f8beedce57301f400acb04bb345d025/rpds_py-0.27.0-cp312-cp312-musllinux_1_2_aarch64.whl", upload-time = 2025-08-07T08:23:56Z, size = 561891, hashes = { sha256 = "7e57906e38583a2cba67046a09c2637e23297618dc1f3caddbc493f2be97c93f" } },
+    { url = "https://files.pythonhosted.org/packages/9b/c8/48623d64d4a5a028fa99576c768a6159db49ab907230edddc0b8468b998b/rpds_py-0.27.0-cp312-cp312-musllinux_1_2_i686.whl", upload-time = 2025-08-07T08:23:58Z, size = 591756, hashes = { sha256 = "0f4f69d7a4300fbf91efb1fb4916421bd57804c01ab938ab50ac9c4aa2212f03" } },
+    { url = "https://files.pythonhosted.org/packages/b3/51/18f62617e8e61cc66334c9fb44b1ad7baae3438662098efbc55fb3fda453/rpds_py-0.27.0-cp312-cp312-musllinux_1_2_x86_64.whl", upload-time = 2025-08-07T08:23:59Z, size = 557088, hashes = { sha256 = "b4c4fbbcff474e1e5f38be1bf04511c03d492d42eec0babda5d03af3b5589374" } },
+    { url = "https://files.pythonhosted.org/packages/bd/4c/e84c3a276e2496a93d245516be6b49e20499aa8ca1c94d59fada0d79addc/rpds_py-0.27.0-cp312-cp312-win32.whl", upload-time = 2025-08-07T08:24:00Z, size = 221926, hashes = { sha256 = "27bac29bbbf39601b2aab474daf99dbc8e7176ca3389237a23944b17f8913d97" } },
+    { url = "https://files.pythonhosted.org/packages/83/89/9d0fbcef64340db0605eb0a0044f258076f3ae0a3b108983b2c614d96212/rpds_py-0.27.0-cp312-cp312-win_amd64.whl", upload-time = 2025-08-07T08:24:01Z, size = 233235, hashes = { sha256 = "8a06aa1197ec0281eb1d7daf6073e199eb832fe591ffa329b88bae28f25f5fe5" } },
+    { url = "https://files.pythonhosted.org/packages/c9/b0/e177aa9f39cbab060f96de4a09df77d494f0279604dc2f509263e21b05f9/rpds_py-0.27.0-cp312-cp312-win_arm64.whl", upload-time = 2025-08-07T08:24:03Z, size = 223315, hashes = { sha256 = "e14aab02258cb776a108107bd15f5b5e4a1bbaa61ef33b36693dfab6f89d54f9" } },
+    { url = "https://files.pythonhosted.org/packages/81/d2/dfdfd42565a923b9e5a29f93501664f5b984a802967d48d49200ad71be36/rpds_py-0.27.0-cp313-cp313-macosx_10_12_x86_64.whl", upload-time = 2025-08-07T08:24:04Z, size = 362133, hashes = { sha256 = "443d239d02d9ae55b74015234f2cd8eb09e59fbba30bf60baeb3123ad4c6d5ff" } },
+    { url = "https://files.pythonhosted.org/packages/ac/4a/0a2e2460c4b66021d349ce9f6331df1d6c75d7eea90df9785d333a49df04/rpds_py-0.27.0-cp313-cp313-macosx_11_0_arm64.whl", upload-time = 2025-08-07T08:24:05Z, size = 347128, hashes = { sha256 = "b8a7acf04fda1f30f1007f3cc96d29d8cf0a53e626e4e1655fdf4eabc082d367" } },
+    { url = "https://files.pythonhosted.org/packages/35/8d/7d1e4390dfe09d4213b3175a3f5a817514355cb3524593380733204f20b9/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-07T08:24:06Z, size = 384027, hashes = { sha256 = "9d0f92b78cfc3b74a42239fdd8c1266f4715b573204c234d2f9fc3fc7a24f185" } },
+    { url = "https://files.pythonhosted.org/packages/c1/65/78499d1a62172891c8cd45de737b2a4b84a414b6ad8315ab3ac4945a5b61/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", upload-time = 2025-08-07T08:24:08Z, size = 399973, hashes = { sha256 = "ce4ed8e0c7dbc5b19352b9c2c6131dd23b95fa8698b5cdd076307a33626b72dc" } },
+    { url = "https://files.pythonhosted.org/packages/10/a1/1c67c1d8cc889107b19570bb01f75cf49852068e95e6aee80d22915406fc/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", upload-time = 2025-08-07T08:24:09Z, size = 515295, hashes = { sha256 = "fde355b02934cc6b07200cc3b27ab0c15870a757d1a72fd401aa92e2ea3c6bfe" } },
+    { url = "https://files.pythonhosted.org/packages/df/27/700ec88e748436b6c7c4a2262d66e80f8c21ab585d5e98c45e02f13f21c0/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", upload-time = 2025-08-07T08:24:11Z, size = 406737, hashes = { sha256 = "13bbc4846ae4c993f07c93feb21a24d8ec637573d567a924b1001e81c8ae80f9" } },
+    { url = "https://files.pythonhosted.org/packages/33/cc/6b0ee8f0ba3f2df2daac1beda17fde5cf10897a7d466f252bd184ef20162/rpds_py-0.27.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-07T08:24:12Z, size = 385898, hashes = { sha256 = "be0744661afbc4099fef7f4e604e7f1ea1be1dd7284f357924af12a705cc7d5c" } },
+    { url = "https://files.pythonhosted.org/packages/e8/7e/c927b37d7d33c0a0ebf249cc268dc2fcec52864c1b6309ecb960497f2285/rpds_py-0.27.0-cp313-cp313-manylinux_2_31_riscv64.whl", upload-time = 2025-08-07T08:24:14Z, size = 405785, hashes = { sha256 = "069e0384a54f427bd65d7fda83b68a90606a3835901aaff42185fcd94f5a9295" } },
+    { url = "https://files.pythonhosted.org/packages/5b/d2/8ed50746d909dcf402af3fa58b83d5a590ed43e07251d6b08fad1a535ba6/rpds_py-0.27.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", upload-time = 2025-08-07T08:24:16Z, size = 419760, hashes = { sha256 = "4bc262ace5a1a7dc3e2eac2fa97b8257ae795389f688b5adf22c5db1e2431c43" } },
+    { url = "https://files.pythonhosted.org/packages/d3/60/2b2071aee781cb3bd49f94d5d35686990b925e9b9f3e3d149235a6f5d5c1/rpds_py-0.27.0-cp313-cp313-musllinux_1_2_aarch64.whl", upload-time = 2025-08-07T08:24:17Z, size = 561201, hashes = { sha256 = "2fe6e18e5c8581f0361b35ae575043c7029d0a92cb3429e6e596c2cdde251432" } },
+    { url = "https://files.pythonhosted.org/packages/98/1f/27b67304272521aaea02be293fecedce13fa351a4e41cdb9290576fc6d81/rpds_py-0.27.0-cp313-cp313-musllinux_1_2_i686.whl", upload-time = 2025-08-07T08:24:18Z, size = 591021, hashes = { sha256 = "d93ebdb82363d2e7bec64eecdc3632b59e84bd270d74fe5be1659f7787052f9b" } },
+    { url = "https://files.pythonhosted.org/packages/db/9b/a2fadf823164dd085b1f894be6443b0762a54a7af6f36e98e8fcda69ee50/rpds_py-0.27.0-cp313-cp313-musllinux_1_2_x86_64.whl", upload-time = 2025-08-07T08:24:20Z, size = 556368, hashes = { sha256 = "0954e3a92e1d62e83a54ea7b3fdc9efa5d61acef8488a8a3d31fdafbfb00460d" } },
+    { url = "https://files.pythonhosted.org/packages/24/f3/6d135d46a129cda2e3e6d4c5e91e2cc26ea0428c6cf152763f3f10b6dd05/rpds_py-0.27.0-cp313-cp313-win32.whl", upload-time = 2025-08-07T08:24:22Z, size = 221236, hashes = { sha256 = "2cff9bdd6c7b906cc562a505c04a57d92e82d37200027e8d362518df427f96cd" } },
+    { url = "https://files.pythonhosted.org/packages/c5/44/65d7494f5448ecc755b545d78b188440f81da98b50ea0447ab5ebfdf9bd6/rpds_py-0.27.0-cp313-cp313-win_amd64.whl", upload-time = 2025-08-07T08:24:23Z, size = 232634, hashes = { sha256 = "dc79d192fb76fc0c84f2c58672c17bbbc383fd26c3cdc29daae16ce3d927e8b2" } },
+    { url = "https://files.pythonhosted.org/packages/70/d9/23852410fadab2abb611733933401de42a1964ce6600a3badae35fbd573e/rpds_py-0.27.0-cp313-cp313-win_arm64.whl", upload-time = 2025-08-07T08:24:25Z, size = 222783, hashes = { sha256 = "5b3a5c8089eed498a3af23ce87a80805ff98f6ef8f7bdb70bd1b7dae5105f6ac" } },
+    { url = "https://files.pythonhosted.org/packages/15/75/03447917f78512b34463f4ef11066516067099a0c466545655503bed0c77/rpds_py-0.27.0-cp313-cp313t-macosx_10_12_x86_64.whl", upload-time = 2025-08-07T08:24:26Z, size = 359154, hashes = { sha256 = "90fb790138c1a89a2e58c9282fe1089638401f2f3b8dddd758499041bc6e0774" } },
+    { url = "https://files.pythonhosted.org/packages/6b/fc/4dac4fa756451f2122ddaf136e2c6aeb758dc6fdbe9ccc4bc95c98451d50/rpds_py-0.27.0-cp313-cp313t-macosx_11_0_arm64.whl", upload-time = 2025-08-07T08:24:27Z, size = 343909, hashes = { sha256 = "010c4843a3b92b54373e3d2291a7447d6c3fc29f591772cc2ea0e9f5c1da434b" } },
+    { url = "https://files.pythonhosted.org/packages/7b/81/723c1ed8e6f57ed9d8c0c07578747a2d3d554aaefc1ab89f4e42cfeefa07/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-07T08:24:28Z, size = 379340, hashes = { sha256 = "c9ce7a9e967afc0a2af7caa0d15a3e9c1054815f73d6a8cb9225b61921b419bd" } },
+    { url = "https://files.pythonhosted.org/packages/98/16/7e3740413de71818ce1997df82ba5f94bae9fff90c0a578c0e24658e6201/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", upload-time = 2025-08-07T08:24:30Z, size = 391655, hashes = { sha256 = "aa0bf113d15e8abdfee92aa4db86761b709a09954083afcb5bf0f952d6065fdb" } },
+    { url = "https://files.pythonhosted.org/packages/e0/63/2a9f510e124d80660f60ecce07953f3f2d5f0b96192c1365443859b9c87f/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", upload-time = 2025-08-07T08:24:31Z, size = 513017, hashes = { sha256 = "eb91d252b35004a84670dfeafadb042528b19842a0080d8b53e5ec1128e8f433" } },
+    { url = "https://files.pythonhosted.org/packages/2c/4e/cf6ff311d09776c53ea1b4f2e6700b9d43bb4e99551006817ade4bbd6f78/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", upload-time = 2025-08-07T08:24:32Z, size = 402058, hashes = { sha256 = "db8a6313dbac934193fc17fe7610f70cd8181c542a91382531bef5ed785e5615" } },
+    { url = "https://files.pythonhosted.org/packages/88/11/5e36096d474cb10f2a2d68b22af60a3bc4164fd8db15078769a568d9d3ac/rpds_py-0.27.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-07T08:24:33Z, size = 383474, hashes = { sha256 = "ce96ab0bdfcef1b8c371ada2100767ace6804ea35aacce0aef3aeb4f3f499ca8" } },
+    { url = "https://files.pythonhosted.org/packages/db/a2/3dff02805b06058760b5eaa6d8cb8db3eb3e46c9e452453ad5fc5b5ad9fe/rpds_py-0.27.0-cp313-cp313t-manylinux_2_31_riscv64.whl", upload-time = 2025-08-07T08:24:35Z, size = 400067, hashes = { sha256 = "7451ede3560086abe1aa27dcdcf55cd15c96b56f543fb12e5826eee6f721f858" } },
+    { url = "https://files.pythonhosted.org/packages/67/87/eed7369b0b265518e21ea836456a4ed4a6744c8c12422ce05bce760bb3cf/rpds_py-0.27.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", upload-time = 2025-08-07T08:24:36Z, size = 412085, hashes = { sha256 = "32196b5a99821476537b3f7732432d64d93a58d680a52c5e12a190ee0135d8b5" } },
+    { url = "https://files.pythonhosted.org/packages/8b/48/f50b2ab2fbb422fbb389fe296e70b7a6b5ea31b263ada5c61377e710a924/rpds_py-0.27.0-cp313-cp313t-musllinux_1_2_aarch64.whl", upload-time = 2025-08-07T08:24:37Z, size = 555928, hashes = { sha256 = "a029be818059870664157194e46ce0e995082ac49926f1423c1f058534d2aaa9" } },
+    { url = "https://files.pythonhosted.org/packages/98/41/b18eb51045d06887666c3560cd4bbb6819127b43d758f5adb82b5f56f7d1/rpds_py-0.27.0-cp313-cp313t-musllinux_1_2_i686.whl", upload-time = 2025-08-07T08:24:39Z, size = 585527, hashes = { sha256 = "3841f66c1ffdc6cebce8aed64e36db71466f1dc23c0d9a5592e2a782a3042c79" } },
+    { url = "https://files.pythonhosted.org/packages/be/03/a3dd6470fc76499959b00ae56295b76b4bdf7c6ffc60d62006b1217567e1/rpds_py-0.27.0-cp313-cp313t-musllinux_1_2_x86_64.whl", upload-time = 2025-08-07T08:24:40Z, size = 554211, hashes = { sha256 = "42894616da0fc0dcb2ec08a77896c3f56e9cb2f4b66acd76fc8992c3557ceb1c" } },
+    { url = "https://files.pythonhosted.org/packages/bf/d1/ee5fd1be395a07423ac4ca0bcc05280bf95db2b155d03adefeb47d5ebf7e/rpds_py-0.27.0-cp313-cp313t-win32.whl", upload-time = 2025-08-07T08:24:42Z, size = 216624, hashes = { sha256 = "b1fef1f13c842a39a03409e30ca0bf87b39a1e2a305a9924deadb75a43105d23" } },
+    { url = "https://files.pythonhosted.org/packages/1c/94/4814c4c858833bf46706f87349c37ca45e154da7dbbec9ff09f1abeb08cc/rpds_py-0.27.0-cp313-cp313t-win_amd64.whl", upload-time = 2025-08-07T08:24:43Z, size = 230007, hashes = { sha256 = "183f5e221ba3e283cd36fdfbe311d95cd87699a083330b4f792543987167eff1" } },
+    { url = "https://files.pythonhosted.org/packages/0e/a5/8fffe1c7dc7c055aa02df310f9fb71cfc693a4d5ccc5de2d3456ea5fb022/rpds_py-0.27.0-cp314-cp314-macosx_10_12_x86_64.whl", upload-time = 2025-08-07T08:24:44Z, size = 362595, hashes = { sha256 = "f3cd110e02c5bf17d8fb562f6c9df5c20e73029d587cf8602a2da6c5ef1e32cb" } },
+    { url = "https://files.pythonhosted.org/packages/bc/c7/4e4253fd2d4bb0edbc0b0b10d9f280612ca4f0f990e3c04c599000fe7d71/rpds_py-0.27.0-cp314-cp314-macosx_11_0_arm64.whl", upload-time = 2025-08-07T08:24:45Z, size = 347252, hashes = { sha256 = "8d0e09cf4863c74106b5265c2c310f36146e2b445ff7b3018a56799f28f39f6f" } },
+    { url = "https://files.pythonhosted.org/packages/f3/c8/3d1a954d30f0174dd6baf18b57c215da03cf7846a9d6e0143304e784cddc/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-07T08:24:46Z, size = 384886, hashes = { sha256 = "64f689ab822f9b5eb6dfc69893b4b9366db1d2420f7db1f6a2adf2a9ca15ad64" } },
+    { url = "https://files.pythonhosted.org/packages/e0/52/3c5835f2df389832b28f9276dd5395b5a965cea34226e7c88c8fbec2093c/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", upload-time = 2025-08-07T08:24:48Z, size = 399716, hashes = { sha256 = "e36c80c49853b3ffda7aa1831bf175c13356b210c73128c861f3aa93c3cc4015" } },
+    { url = "https://files.pythonhosted.org/packages/40/73/176e46992461a1749686a2a441e24df51ff86b99c2d34bf39f2a5273b987/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", upload-time = 2025-08-07T08:24:49Z, size = 517030, hashes = { sha256 = "6de6a7f622860af0146cb9ee148682ff4d0cea0b8fd3ad51ce4d40efb2f061d0" } },
+    { url = "https://files.pythonhosted.org/packages/79/2a/7266c75840e8c6e70effeb0d38922a45720904f2cd695e68a0150e5407e2/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", upload-time = 2025-08-07T08:24:50Z, size = 408448, hashes = { sha256 = "4045e2fc4b37ec4b48e8907a5819bdd3380708c139d7cc358f03a3653abedb89" } },
+    { url = "https://files.pythonhosted.org/packages/e6/5f/a7efc572b8e235093dc6cf39f4dbc8a7f08e65fdbcec7ff4daeb3585eef1/rpds_py-0.27.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-07T08:24:52Z, size = 387320, hashes = { sha256 = "9da162b718b12c4219eeeeb68a5b7552fbc7aadedf2efee440f88b9c0e54b45d" } },
+    { url = "https://files.pythonhosted.org/packages/a2/eb/9ff6bc92efe57cf5a2cb74dee20453ba444b6fdc85275d8c99e0d27239d1/rpds_py-0.27.0-cp314-cp314-manylinux_2_31_riscv64.whl", upload-time = 2025-08-07T08:24:53Z, size = 407414, hashes = { sha256 = "0665be515767dc727ffa5f74bd2ef60b0ff85dad6bb8f50d91eaa6b5fb226f51" } },
+    { url = "https://files.pythonhosted.org/packages/fb/bd/3b9b19b00d5c6e1bd0f418c229ab0f8d3b110ddf7ec5d9d689ef783d0268/rpds_py-0.27.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", upload-time = 2025-08-07T08:24:55Z, size = 420766, hashes = { sha256 = "203f581accef67300a942e49a37d74c12ceeef4514874c7cede21b012613ca2c" } },
+    { url = "https://files.pythonhosted.org/packages/17/6b/521a7b1079ce16258c70805166e3ac6ec4ee2139d023fe07954dc9b2d568/rpds_py-0.27.0-cp314-cp314-musllinux_1_2_aarch64.whl", upload-time = 2025-08-07T08:24:57Z, size = 562409, hashes = { sha256 = "7873b65686a6471c0037139aa000d23fe94628e0daaa27b6e40607c90e3f5ec4" } },
+    { url = "https://files.pythonhosted.org/packages/8b/bf/65db5bfb14ccc55e39de8419a659d05a2a9cd232f0a699a516bb0991da7b/rpds_py-0.27.0-cp314-cp314-musllinux_1_2_i686.whl", upload-time = 2025-08-07T08:24:58Z, size = 590793, hashes = { sha256 = "249ab91ceaa6b41abc5f19513cb95b45c6f956f6b89f1fe3d99c81255a849f9e" } },
+    { url = "https://files.pythonhosted.org/packages/db/b8/82d368b378325191ba7aae8f40f009b78057b598d4394d1f2cdabaf67b3f/rpds_py-0.27.0-cp314-cp314-musllinux_1_2_x86_64.whl", upload-time = 2025-08-07T08:24:59Z, size = 558178, hashes = { sha256 = "d2f184336bc1d6abfaaa1262ed42739c3789b1e3a65a29916a615307d22ffd2e" } },
+    { url = "https://files.pythonhosted.org/packages/f6/ff/f270bddbfbc3812500f8131b1ebbd97afd014cd554b604a3f73f03133a36/rpds_py-0.27.0-cp314-cp314-win32.whl", upload-time = 2025-08-07T08:25:01Z, size = 222355, hashes = { sha256 = "d3c622c39f04d5751408f5b801ecb527e6e0a471b367f420a877f7a660d583f6" } },
+    { url = "https://files.pythonhosted.org/packages/bf/20/fdab055b1460c02ed356a0e0b0a78c1dd32dc64e82a544f7b31c9ac643dc/rpds_py-0.27.0-cp314-cp314-win_amd64.whl", upload-time = 2025-08-07T08:25:02Z, size = 234007, hashes = { sha256 = "cf824aceaeffff029ccfba0da637d432ca71ab21f13e7f6f5179cd88ebc77a8a" } },
+    { url = "https://files.pythonhosted.org/packages/4d/a8/694c060005421797a3be4943dab8347c76c2b429a9bef68fb2c87c9e70c7/rpds_py-0.27.0-cp314-cp314-win_arm64.whl", upload-time = 2025-08-07T08:25:03Z, size = 223527, hashes = { sha256 = "86aca1616922b40d8ac1b3073a1ead4255a2f13405e5700c01f7c8d29a03972d" } },
+    { url = "https://files.pythonhosted.org/packages/1e/f9/77f4c90f79d2c5ca8ce6ec6a76cb4734ee247de6b3a4f337e289e1f00372/rpds_py-0.27.0-cp314-cp314t-macosx_10_12_x86_64.whl", upload-time = 2025-08-07T08:25:04Z, size = 359469, hashes = { sha256 = "341d8acb6724c0c17bdf714319c393bb27f6d23d39bc74f94221b3e59fc31828" } },
+    { url = "https://files.pythonhosted.org/packages/c0/22/b97878d2f1284286fef4172069e84b0b42b546ea7d053e5fb7adb9ac6494/rpds_py-0.27.0-cp314-cp314t-macosx_11_0_arm64.whl", upload-time = 2025-08-07T08:25:05Z, size = 343960, hashes = { sha256 = "6b96b0b784fe5fd03beffff2b1533dc0d85e92bab8d1b2c24ef3a5dc8fac5669" } },
+    { url = "https://files.pythonhosted.org/packages/b1/b0/dfd55b5bb480eda0578ae94ef256d3061d20b19a0f5e18c482f03e65464f/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-07T08:25:07Z, size = 380201, hashes = { sha256 = "0c431bfb91478d7cbe368d0a699978050d3b112d7f1d440a41e90faa325557fd" } },
+    { url = "https://files.pythonhosted.org/packages/28/22/e1fa64e50d58ad2b2053077e3ec81a979147c43428de9e6de68ddf6aff4e/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", upload-time = 2025-08-07T08:25:09Z, size = 392111, hashes = { sha256 = "20e222a44ae9f507d0f2678ee3dd0c45ec1e930f6875d99b8459631c24058aec" } },
+    { url = "https://files.pythonhosted.org/packages/49/f9/43ab7a43e97aedf6cea6af70fdcbe18abbbc41d4ae6cdec1bfc23bbad403/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", upload-time = 2025-08-07T08:25:10Z, size = 515863, hashes = { sha256 = "184f0d7b342967f6cda94a07d0e1fae177d11d0b8f17d73e06e36ac02889f303" } },
+    { url = "https://files.pythonhosted.org/packages/38/9b/9bd59dcc636cd04d86a2d20ad967770bf348f5eb5922a8f29b547c074243/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", upload-time = 2025-08-07T08:25:11Z, size = 402398, hashes = { sha256 = "a00c91104c173c9043bc46f7b30ee5e6d2f6b1149f11f545580f5d6fdff42c0b" } },
+    { url = "https://files.pythonhosted.org/packages/71/bf/f099328c6c85667aba6b66fa5c35a8882db06dcd462ea214be72813a0dd2/rpds_py-0.27.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2025-08-07T08:25:13Z, size = 384665, hashes = { sha256 = "f7a37dd208f0d658e0487522078b1ed68cd6bce20ef4b5a915d2809b9094b410" } },
+    { url = "https://files.pythonhosted.org/packages/a9/c5/9c1f03121ece6634818490bd3c8be2c82a70928a19de03467fb25a3ae2a8/rpds_py-0.27.0-cp314-cp314t-manylinux_2_31_riscv64.whl", upload-time = 2025-08-07T08:25:14Z, size = 400405, hashes = { sha256 = "92f3b3ec3e6008a1fe00b7c0946a170f161ac00645cde35e3c9a68c2475e8156" } },
+    { url = "https://files.pythonhosted.org/packages/b5/b8/e25d54af3e63ac94f0c16d8fe143779fe71ff209445a0c00d0f6984b6b2c/rpds_py-0.27.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", upload-time = 2025-08-07T08:25:15Z, size = 413179, hashes = { sha256 = "a1b3db5fae5cbce2131b7420a3f83553d4d89514c03d67804ced36161fe8b6b2" } },
+    { url = "https://files.pythonhosted.org/packages/f9/d1/406b3316433fe49c3021546293a04bc33f1478e3ec7950215a7fce1a1208/rpds_py-0.27.0-cp314-cp314t-musllinux_1_2_aarch64.whl", upload-time = 2025-08-07T08:25:17Z, size = 556895, hashes = { sha256 = "5355527adaa713ab693cbce7c1e0ec71682f599f61b128cf19d07e5c13c9b1f1" } },
+    { url = "https://files.pythonhosted.org/packages/5f/bc/3697c0c21fcb9a54d46ae3b735eb2365eea0c2be076b8f770f98e07998de/rpds_py-0.27.0-cp314-cp314t-musllinux_1_2_i686.whl", upload-time = 2025-08-07T08:25:18Z, size = 585464, hashes = { sha256 = "fcc01c57ce6e70b728af02b2401c5bc853a9e14eb07deda30624374f0aebfe42" } },
+    { url = "https://files.pythonhosted.org/packages/63/09/ee1bb5536f99f42c839b177d552f6114aa3142d82f49cef49261ed28dbe0/rpds_py-0.27.0-cp314-cp314t-musllinux_1_2_x86_64.whl", upload-time = 2025-08-07T08:25:20Z, size = 555090, hashes = { sha256 = "3001013dae10f806380ba739d40dee11db1ecb91684febb8406a87c2ded23dae" } },
+    { url = "https://files.pythonhosted.org/packages/7d/2c/363eada9e89f7059199d3724135a86c47082cbf72790d6ba2f336d146ddb/rpds_py-0.27.0-cp314-cp314t-win32.whl", upload-time = 2025-08-07T08:25:21Z, size = 218001, hashes = { sha256 = "0f401c369186a5743694dd9fc08cba66cf70908757552e1f714bfc5219c655b5" } },
+    { url = "https://files.pythonhosted.org/packages/e2/3f/d6c216ed5199c9ef79e2a33955601f454ed1e7420a93b89670133bca5ace/rpds_py-0.27.0-cp314-cp314t-win_amd64.whl", upload-time = 2025-08-07T08:25:23Z, size = 230993, hashes = { sha256 = "8a1dca5507fa1337f75dcd5070218b20bc68cf8844271c923c1b79dfcbc20391" } },
+]
+
+[[packages]]
+name = "scikit-learn"
+version = "1.7.1"
+dependencies = [
+    { name = "joblib", version = "1.5.1" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "scipy", version = "1.16.1" },
+    { name = "threadpoolctl", version = "3.6.0" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/41/84/5f4af978fff619706b8961accac84780a6d298d82a8873446f72edb4ead0/scikit_learn-1.7.1.tar.gz", upload-time = 2025-07-18T08:01:54Z, size = 7190445, hashes = { sha256 = "24b3f1e976a4665aa74ee0fcaac2b8fccc6ae77c8e07ab25da3ba6d3292b9802" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/cb/16/57f176585b35ed865f51b04117947fe20f130f78940c6477b6d66279c9c2/scikit_learn-1.7.1-cp312-cp312-macosx_10_13_x86_64.whl", upload-time = 2025-07-18T08:01:22Z, size = 9260431, hashes = { sha256 = "3cee419b49b5bbae8796ecd690f97aa412ef1674410c23fc3257c6b8b85b8087" } },
+    { url = "https://files.pythonhosted.org/packages/67/4e/899317092f5efcab0e9bc929e3391341cec8fb0e816c4789686770024580/scikit_learn-1.7.1-cp312-cp312-macosx_12_0_arm64.whl", upload-time = 2025-07-18T08:01:24Z, size = 8637191, hashes = { sha256 = "2fd8b8d35817b0d9ebf0b576f7d5ffbbabdb55536b0655a8aaae629d7ffd2e1f" } },
+    { url = "https://files.pythonhosted.org/packages/f3/1b/998312db6d361ded1dd56b457ada371a8d8d77ca2195a7d18fd8a1736f21/scikit_learn-1.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-07-18T08:01:26Z, size = 9486346, hashes = { sha256 = "588410fa19a96a69763202f1d6b7b91d5d7a5d73be36e189bc6396bfb355bd87" } },
+    { url = "https://files.pythonhosted.org/packages/ad/09/a2aa0b4e644e5c4ede7006748f24e72863ba2ae71897fecfd832afea01b4/scikit_learn-1.7.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-07-18T08:01:28Z, size = 9290988, hashes = { sha256 = "e3142f0abe1ad1d1c31a2ae987621e41f6b578144a911ff4ac94781a583adad7" } },
+    { url = "https://files.pythonhosted.org/packages/15/fa/c61a787e35f05f17fc10523f567677ec4eeee5f95aa4798dbbbcd9625617/scikit_learn-1.7.1-cp312-cp312-win_amd64.whl", upload-time = 2025-07-18T08:01:30Z, size = 8735568, hashes = { sha256 = "3ddd9092c1bd469acab337d87930067c87eac6bd544f8d5027430983f1e1ae88" } },
+    { url = "https://files.pythonhosted.org/packages/52/f8/e0533303f318a0f37b88300d21f79b6ac067188d4824f1047a37214ab718/scikit_learn-1.7.1-cp313-cp313-macosx_10_13_x86_64.whl", upload-time = 2025-07-18T08:01:32Z, size = 9213143, hashes = { sha256 = "b7839687fa46d02e01035ad775982f2470be2668e13ddd151f0f55a5bf123bae" } },
+    { url = "https://files.pythonhosted.org/packages/71/f3/f1df377d1bdfc3e3e2adc9c119c238b182293e6740df4cbeac6de2cc3e23/scikit_learn-1.7.1-cp313-cp313-macosx_12_0_arm64.whl", upload-time = 2025-07-18T08:01:34Z, size = 8591977, hashes = { sha256 = "a10f276639195a96c86aa572ee0698ad64ee939a7b042060b98bd1930c261d10" } },
+    { url = "https://files.pythonhosted.org/packages/99/72/c86a4cd867816350fe8dee13f30222340b9cd6b96173955819a5561810c5/scikit_learn-1.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-07-18T08:01:37Z, size = 9436142, hashes = { sha256 = "13679981fdaebc10cc4c13c43344416a86fcbc61449cb3e6517e1df9d12c8309" } },
+    { url = "https://files.pythonhosted.org/packages/e8/66/277967b29bd297538dc7a6ecfb1a7dce751beabd0d7f7a2233be7a4f7832/scikit_learn-1.7.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-07-18T08:01:39Z, size = 9282996, hashes = { sha256 = "4f1262883c6a63f067a980a8cdd2d2e7f2513dddcef6a9eaada6416a7a7cbe43" } },
+    { url = "https://files.pythonhosted.org/packages/e2/47/9291cfa1db1dae9880420d1e07dbc7e8dd4a7cdbc42eaba22512e6bde958/scikit_learn-1.7.1-cp313-cp313-win_amd64.whl", upload-time = 2025-07-18T08:01:42Z, size = 8707418, hashes = { sha256 = "ca6d31fb10e04d50bfd2b50d66744729dbb512d4efd0223b864e2fdbfc4cee11" } },
+    { url = "https://files.pythonhosted.org/packages/61/95/45726819beccdaa34d3362ea9b2ff9f2b5d3b8bf721bd632675870308ceb/scikit_learn-1.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", upload-time = 2025-07-18T08:01:44Z, size = 9561466, hashes = { sha256 = "781674d096303cfe3d351ae6963ff7c958db61cde3421cd490e3a5a58f2a94ae" } },
+    { url = "https://files.pythonhosted.org/packages/ee/1c/6f4b3344805de783d20a51eb24d4c9ad4b11a7f75c1801e6ec6d777361fd/scikit_learn-1.7.1-cp313-cp313t-macosx_12_0_arm64.whl", upload-time = 2025-07-18T08:01:46Z, size = 9040467, hashes = { sha256 = "10679f7f125fe7ecd5fad37dd1aa2daae7e3ad8df7f3eefa08901b8254b3e12c" } },
+    { url = "https://files.pythonhosted.org/packages/6f/80/abe18fe471af9f1d181904203d62697998b27d9b62124cd281d740ded2f9/scikit_learn-1.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-07-18T08:01:48Z, size = 9532052, hashes = { sha256 = "1f812729e38c8cb37f760dce71a9b83ccfb04f59b3dca7c6079dcdc60544fa9e" } },
+    { url = "https://files.pythonhosted.org/packages/14/82/b21aa1e0c4cee7e74864d3a5a721ab8fcae5ca55033cb6263dca297ed35b/scikit_learn-1.7.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-07-18T08:01:50Z, size = 9361575, hashes = { sha256 = "88e1a20131cf741b84b89567e1717f27a2ced228e0f29103426102bc2e3b8ef7" } },
+    { url = "https://files.pythonhosted.org/packages/f2/20/f4777fcd5627dc6695fa6b92179d0edb7a3ac1b91bcd9a1c7f64fa7ade23/scikit_learn-1.7.1-cp313-cp313t-win_amd64.whl", upload-time = 2025-07-18T08:01:52Z, size = 9277310, hashes = { sha256 = "b1bd1d919210b6a10b7554b717c9000b5485aa95a1d0f177ae0d7ee8ec750da5" } },
+]
+
+[[packages]]
+name = "scipy"
+version = "1.16.1"
+dependencies = [{ name = "numpy", version = "2.1.2" }]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/f5/4a/b927028464795439faec8eaf0b03b011005c487bb2d07409f28bf30879c4/scipy-1.16.1.tar.gz", upload-time = 2025-07-27T16:33:30Z, size = 30580861, hashes = { sha256 = "44c76f9e8b6e8e488a586190ab38016e4ed2f8a038af7cd3defa903c0a2238b3" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/f8/d9/ec4864f5896232133f51382b54a08de91a9d1af7a76dfa372894026dfee2/scipy-1.16.1-cp312-cp312-macosx_10_14_x86_64.whl", upload-time = 2025-07-27T16:27:41Z, size = 36575194, hashes = { sha256 = "81b433bbeaf35728dad619afc002db9b189e45eebe2cd676effe1fb93fef2b9c" } },
+    { url = "https://files.pythonhosted.org/packages/5c/6d/40e81ecfb688e9d25d34a847dca361982a6addf8e31f0957b1a54fbfa994/scipy-1.16.1-cp312-cp312-macosx_12_0_arm64.whl", upload-time = 2025-07-27T16:27:49Z, size = 28594590, hashes = { sha256 = "886cc81fdb4c6903a3bb0464047c25a6d1016fef77bb97949817d0c0d79f9e04" } },
+    { url = "https://files.pythonhosted.org/packages/0e/37/9f65178edfcc629377ce9a64fc09baebea18c80a9e57ae09a52edf84880b/scipy-1.16.1-cp312-cp312-macosx_14_0_arm64.whl", upload-time = 2025-07-27T16:27:54Z, size = 20866458, hashes = { sha256 = "15240c3aac087a522b4eaedb09f0ad061753c5eebf1ea430859e5bf8640d5919" } },
+    { url = "https://files.pythonhosted.org/packages/2c/7b/749a66766871ea4cb1d1ea10f27004db63023074c22abed51f22f09770e0/scipy-1.16.1-cp312-cp312-macosx_14_0_x86_64.whl", upload-time = 2025-07-27T16:28:01Z, size = 23539318, hashes = { sha256 = "65f81a25805f3659b48126b5053d9e823d3215e4a63730b5e1671852a1705921" } },
+    { url = "https://files.pythonhosted.org/packages/c4/db/8d4afec60eb833a666434d4541a3151eedbf2494ea6d4d468cbe877f00cd/scipy-1.16.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", upload-time = 2025-07-27T16:28:09Z, size = 33292899, hashes = { sha256 = "6c62eea7f607f122069b9bad3f99489ddca1a5173bef8a0c75555d7488b6f725" } },
+    { url = "https://files.pythonhosted.org/packages/51/1e/79023ca3bbb13a015d7d2757ecca3b81293c663694c35d6541b4dca53e98/scipy-1.16.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-07-27T16:28:17Z, size = 35162637, hashes = { sha256 = "f965bbf3235b01c776115ab18f092a95aa74c271a52577bcb0563e85738fd618" } },
+    { url = "https://files.pythonhosted.org/packages/b6/49/0648665f9c29fdaca4c679182eb972935b3b4f5ace41d323c32352f29816/scipy-1.16.1-cp312-cp312-musllinux_1_2_aarch64.whl", upload-time = 2025-07-27T16:28:25Z, size = 35490507, hashes = { sha256 = "f006e323874ffd0b0b816d8c6a8e7f9a73d55ab3b8c3f72b752b226d0e3ac83d" } },
+    { url = "https://files.pythonhosted.org/packages/62/8f/66cbb9d6bbb18d8c658f774904f42a92078707a7c71e5347e8bf2f52bb89/scipy-1.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", upload-time = 2025-07-27T16:28:34Z, size = 37923998, hashes = { sha256 = "e8fd15fc5085ab4cca74cb91fe0a4263b1f32e4420761ddae531ad60934c2119" } },
+    { url = "https://files.pythonhosted.org/packages/14/c3/61f273ae550fbf1667675701112e380881905e28448c080b23b5a181df7c/scipy-1.16.1-cp312-cp312-win_amd64.whl", upload-time = 2025-07-27T16:28:43Z, size = 38508060, hashes = { sha256 = "f7b8013c6c066609577d910d1a2a077021727af07b6fab0ee22c2f901f22352a" } },
+    { url = "https://files.pythonhosted.org/packages/93/0b/b5c99382b839854a71ca9482c684e3472badc62620287cbbdab499b75ce6/scipy-1.16.1-cp313-cp313-macosx_10_14_x86_64.whl", upload-time = 2025-07-27T16:28:51Z, size = 36533717, hashes = { sha256 = "5451606823a5e73dfa621a89948096c6528e2896e40b39248295d3a0138d594f" } },
+    { url = "https://files.pythonhosted.org/packages/eb/e5/69ab2771062c91e23e07c12e7d5033a6b9b80b0903ee709c3c36b3eb520c/scipy-1.16.1-cp313-cp313-macosx_12_0_arm64.whl", upload-time = 2025-07-27T16:28:57Z, size = 28570009, hashes = { sha256 = "89728678c5ca5abd610aee148c199ac1afb16e19844401ca97d43dc548a354eb" } },
+    { url = "https://files.pythonhosted.org/packages/f4/69/bd75dbfdd3cf524f4d753484d723594aed62cfaac510123e91a6686d520b/scipy-1.16.1-cp313-cp313-macosx_14_0_arm64.whl", upload-time = 2025-07-27T16:29:01Z, size = 20841942, hashes = { sha256 = "e756d688cb03fd07de0fffad475649b03cb89bee696c98ce508b17c11a03f95c" } },
+    { url = "https://files.pythonhosted.org/packages/ea/74/add181c87663f178ba7d6144b370243a87af8476664d5435e57d599e6874/scipy-1.16.1-cp313-cp313-macosx_14_0_x86_64.whl", upload-time = 2025-07-27T16:29:05Z, size = 23498507, hashes = { sha256 = "5aa2687b9935da3ed89c5dbed5234576589dd28d0bf7cd237501ccfbdf1ad608" } },
+    { url = "https://files.pythonhosted.org/packages/1d/74/ece2e582a0d9550cee33e2e416cc96737dce423a994d12bbe59716f47ff1/scipy-1.16.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", upload-time = 2025-07-27T16:29:10Z, size = 33286040, hashes = { sha256 = "0851f6a1e537fe9399f35986897e395a1aa61c574b178c0d456be5b1a0f5ca1f" } },
+    { url = "https://files.pythonhosted.org/packages/e4/82/08e4076df538fb56caa1d489588d880ec7c52d8273a606bb54d660528f7c/scipy-1.16.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-07-27T16:29:17Z, size = 35176096, hashes = { sha256 = "fedc2cbd1baed37474b1924c331b97bdff611d762c196fac1a9b71e67b813b1b" } },
+    { url = "https://files.pythonhosted.org/packages/fa/79/cd710aab8c921375711a8321c6be696e705a120e3011a643efbbcdeeabcc/scipy-1.16.1-cp313-cp313-musllinux_1_2_aarch64.whl", upload-time = 2025-07-27T16:29:22Z, size = 35490328, hashes = { sha256 = "2ef500e72f9623a6735769e4b93e9dcb158d40752cdbb077f305487e3e2d1f45" } },
+    { url = "https://files.pythonhosted.org/packages/71/73/e9cc3d35ee4526d784520d4494a3e1ca969b071fb5ae5910c036a375ceec/scipy-1.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", upload-time = 2025-07-27T16:29:29Z, size = 37939921, hashes = { sha256 = "978d8311674b05a8f7ff2ea6c6bce5d8b45a0cb09d4c5793e0318f448613ea65" } },
+    { url = "https://files.pythonhosted.org/packages/21/12/c0efd2941f01940119b5305c375ae5c0fcb7ec193f806bd8f158b73a1782/scipy-1.16.1-cp313-cp313-win_amd64.whl", upload-time = 2025-07-27T16:30:24Z, size = 38479462, hashes = { sha256 = "81929ed0fa7a5713fcdd8b2e6f73697d3b4c4816d090dd34ff937c20fa90e8ab" } },
+    { url = "https://files.pythonhosted.org/packages/7a/19/c3d08b675260046a991040e1ea5d65f91f40c7df1045fffff412dcfc6765/scipy-1.16.1-cp313-cp313t-macosx_10_14_x86_64.whl", upload-time = 2025-07-27T16:29:35Z, size = 36938832, hashes = { sha256 = "bcc12db731858abda693cecdb3bdc9e6d4bd200213f49d224fe22df82687bdd6" } },
+    { url = "https://files.pythonhosted.org/packages/81/f2/ce53db652c033a414a5b34598dba6b95f3d38153a2417c5a3883da429029/scipy-1.16.1-cp313-cp313t-macosx_12_0_arm64.whl", upload-time = 2025-07-27T16:29:40Z, size = 29093084, hashes = { sha256 = "744d977daa4becb9fc59135e75c069f8d301a87d64f88f1e602a9ecf51e77b27" } },
+    { url = "https://files.pythonhosted.org/packages/a9/ae/7a10ff04a7dc15f9057d05b33737ade244e4bd195caa3f7cc04d77b9e214/scipy-1.16.1-cp313-cp313t-macosx_14_0_arm64.whl", upload-time = 2025-07-27T16:29:44Z, size = 21365098, hashes = { sha256 = "dc54f76ac18073bcecffb98d93f03ed6b81a92ef91b5d3b135dcc81d55a724c7" } },
+    { url = "https://files.pythonhosted.org/packages/36/ac/029ff710959932ad3c2a98721b20b405f05f752f07344622fd61a47c5197/scipy-1.16.1-cp313-cp313t-macosx_14_0_x86_64.whl", upload-time = 2025-07-27T16:29:48Z, size = 23896858, hashes = { sha256 = "367d567ee9fc1e9e2047d31f39d9d6a7a04e0710c86e701e053f237d14a9b4f6" } },
+    { url = "https://files.pythonhosted.org/packages/71/13/d1ef77b6bd7898720e1f0b6b3743cb945f6c3cafa7718eaac8841035ab60/scipy-1.16.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", upload-time = 2025-07-27T16:29:54Z, size = 33438311, hashes = { sha256 = "4cf5785e44e19dcd32a0e4807555e1e9a9b8d475c6afff3d21c3c543a6aa84f4" } },
+    { url = "https://files.pythonhosted.org/packages/2d/e0/e64a6821ffbb00b4c5b05169f1c1fddb4800e9307efe3db3788995a82a2c/scipy-1.16.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-07-27T16:30:00Z, size = 35279542, hashes = { sha256 = "3d0b80fb26d3e13a794c71d4b837e2a589d839fd574a6bbb4ee1288c213ad4a3" } },
+    { url = "https://files.pythonhosted.org/packages/57/59/0dc3c8b43e118f1e4ee2b798dcc96ac21bb20014e5f1f7a8e85cc0653bdb/scipy-1.16.1-cp313-cp313t-musllinux_1_2_aarch64.whl", upload-time = 2025-07-27T16:30:05Z, size = 35667665, hashes = { sha256 = "8503517c44c18d1030d666cb70aaac1cc8913608816e06742498833b128488b7" } },
+    { url = "https://files.pythonhosted.org/packages/45/5f/844ee26e34e2f3f9f8febb9343748e72daeaec64fe0c70e9bf1ff84ec955/scipy-1.16.1-cp313-cp313t-musllinux_1_2_x86_64.whl", upload-time = 2025-07-27T16:30:11Z, size = 38045210, hashes = { sha256 = "30cc4bb81c41831ecfd6dc450baf48ffd80ef5aed0f5cf3ea775740e80f16ecc" } },
+    { url = "https://files.pythonhosted.org/packages/8d/d7/210f2b45290f444f1de64bc7353aa598ece9f0e90c384b4a156f9b1a5063/scipy-1.16.1-cp313-cp313t-win_amd64.whl", upload-time = 2025-07-27T16:30:17Z, size = 38593661, hashes = { sha256 = "c24fa02f7ed23ae514460a22c57eca8f530dbfa50b1cfdbf4f37c05b5309cc39" } },
+    { url = "https://files.pythonhosted.org/packages/81/ea/84d481a5237ed223bd3d32d6e82d7a6a96e34756492666c260cef16011d1/scipy-1.16.1-cp314-cp314-macosx_10_14_x86_64.whl", upload-time = 2025-07-27T16:30:30Z, size = 36525921, hashes = { sha256 = "796a5a9ad36fa3a782375db8f4241ab02a091308eb079746bc0f874c9b998318" } },
+    { url = "https://files.pythonhosted.org/packages/4e/9f/d9edbdeff9f3a664807ae3aea383e10afaa247e8e6255e6d2aa4515e8863/scipy-1.16.1-cp314-cp314-macosx_12_0_arm64.whl", upload-time = 2025-07-27T16:30:35Z, size = 28564152, hashes = { sha256 = "3ea0733a2ff73fd6fdc5fecca54ee9b459f4d74f00b99aced7d9a3adb43fb1cc" } },
+    { url = "https://files.pythonhosted.org/packages/3b/95/8125bcb1fe04bc267d103e76516243e8d5e11229e6b306bda1024a5423d1/scipy-1.16.1-cp314-cp314-macosx_14_0_arm64.whl", upload-time = 2025-07-27T16:30:39Z, size = 20836028, hashes = { sha256 = "85764fb15a2ad994e708258bb4ed8290d1305c62a4e1ef07c414356a24fcfbf8" } },
+    { url = "https://files.pythonhosted.org/packages/77/9c/bf92e215701fc70bbcd3d14d86337cf56a9b912a804b9c776a269524a9e9/scipy-1.16.1-cp314-cp314-macosx_14_0_x86_64.whl", upload-time = 2025-07-27T16:30:43Z, size = 23489666, hashes = { sha256 = "ca66d980469cb623b1759bdd6e9fd97d4e33a9fad5b33771ced24d0cb24df67e" } },
+    { url = "https://files.pythonhosted.org/packages/5e/00/5e941d397d9adac41b02839011594620d54d99488d1be5be755c00cde9ee/scipy-1.16.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", upload-time = 2025-07-27T16:30:48Z, size = 33358318, hashes = { sha256 = "e7cc1ffcc230f568549fc56670bcf3df1884c30bd652c5da8138199c8c76dae0" } },
+    { url = "https://files.pythonhosted.org/packages/0e/87/8db3aa10dde6e3e8e7eb0133f24baa011377d543f5b19c71469cf2648026/scipy-1.16.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-07-27T16:30:54Z, size = 35185724, hashes = { sha256 = "3ddfb1e8d0b540cb4ee9c53fc3dea3186f97711248fb94b4142a1b27178d8b4b" } },
+    { url = "https://files.pythonhosted.org/packages/89/b4/6ab9ae443216807622bcff02690262d8184078ea467efee2f8c93288a3b1/scipy-1.16.1-cp314-cp314-musllinux_1_2_aarch64.whl", upload-time = 2025-07-27T16:30:59Z, size = 35554335, hashes = { sha256 = "4dc0e7be79e95d8ba3435d193e0d8ce372f47f774cffd882f88ea4e1e1ddc731" } },
+    { url = "https://files.pythonhosted.org/packages/9c/9a/d0e9dc03c5269a1afb60661118296a32ed5d2c24298af61b676c11e05e56/scipy-1.16.1-cp314-cp314-musllinux_1_2_x86_64.whl", upload-time = 2025-07-27T16:31:06Z, size = 37960310, hashes = { sha256 = "f23634f9e5adb51b2a77766dac217063e764337fbc816aa8ad9aaebcd4397fd3" } },
+    { url = "https://files.pythonhosted.org/packages/5e/00/c8f3130a50521a7977874817ca89e0599b1b4ee8e938bad8ae798a0e1f0d/scipy-1.16.1-cp314-cp314-win_amd64.whl", upload-time = 2025-07-27T16:31:59Z, size = 39319239, hashes = { sha256 = "57d75524cb1c5a374958a2eae3d84e1929bb971204cc9d52213fb8589183fc19" } },
+    { url = "https://files.pythonhosted.org/packages/f2/f2/1ca3eda54c3a7e4c92f6acef7db7b3a057deb135540d23aa6343ef8ad333/scipy-1.16.1-cp314-cp314t-macosx_10_14_x86_64.whl", upload-time = 2025-07-27T16:31:11Z, size = 36939460, hashes = { sha256 = "d8da7c3dd67bcd93f15618938f43ed0995982eb38973023d46d4646c4283ad65" } },
+    { url = "https://files.pythonhosted.org/packages/80/30/98c2840b293a132400c0940bb9e140171dcb8189588619048f42b2ce7b4f/scipy-1.16.1-cp314-cp314t-macosx_12_0_arm64.whl", upload-time = 2025-07-27T16:31:17Z, size = 29093322, hashes = { sha256 = "cc1d2f2fd48ba1e0620554fe5bc44d3e8f5d4185c8c109c7fbdf5af2792cfad2" } },
+    { url = "https://files.pythonhosted.org/packages/c1/e6/1e6e006e850622cf2a039b62d1a6ddc4497d4851e58b68008526f04a9a00/scipy-1.16.1-cp314-cp314t-macosx_14_0_arm64.whl", upload-time = 2025-07-27T16:31:21Z, size = 21365329, hashes = { sha256 = "21a611ced9275cb861bacadbada0b8c0623bc00b05b09eb97f23b370fc2ae56d" } },
+    { url = "https://files.pythonhosted.org/packages/8e/02/72a5aa5b820589dda9a25e329ca752842bfbbaf635e36bc7065a9b42216e/scipy-1.16.1-cp314-cp314t-macosx_14_0_x86_64.whl", upload-time = 2025-07-27T16:31:25Z, size = 23897544, hashes = { sha256 = "8dfbb25dffc4c3dd9371d8ab456ca81beeaf6f9e1c2119f179392f0dc1ab7695" } },
+    { url = "https://files.pythonhosted.org/packages/2b/dc/7122d806a6f9eb8a33532982234bed91f90272e990f414f2830cfe656e0b/scipy-1.16.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", upload-time = 2025-07-27T16:31:30Z, size = 33442112, hashes = { sha256 = "f0ebb7204f063fad87fc0a0e4ff4a2ff40b2a226e4ba1b7e34bf4b79bf97cd86" } },
+    { url = "https://files.pythonhosted.org/packages/24/39/e383af23564daa1021a5b3afbe0d8d6a68ec639b943661841f44ac92de85/scipy-1.16.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", upload-time = 2025-07-27T16:31:36Z, size = 35286594, hashes = { sha256 = "f1b9e5962656f2734c2b285a8745358ecb4e4efbadd00208c80a389227ec61ff" } },
+    { url = "https://files.pythonhosted.org/packages/95/47/1a0b0aff40c3056d955f38b0df5d178350c3d74734ec54f9c68d23910be5/scipy-1.16.1-cp314-cp314t-musllinux_1_2_aarch64.whl", upload-time = 2025-07-27T16:31:42Z, size = 35665080, hashes = { sha256 = "5e1a106f8c023d57a2a903e771228bf5c5b27b5d692088f457acacd3b54511e4" } },
+    { url = "https://files.pythonhosted.org/packages/64/df/ce88803e9ed6e27fe9b9abefa157cf2c80e4fa527cf17ee14be41f790ad4/scipy-1.16.1-cp314-cp314t-musllinux_1_2_x86_64.whl", upload-time = 2025-07-27T16:31:48Z, size = 38050306, hashes = { sha256 = "709559a1db68a9abc3b2c8672c4badf1614f3b440b3ab326d86a5c0491eafae3" } },
+    { url = "https://files.pythonhosted.org/packages/6e/6c/a76329897a7cae4937d403e623aa6aaea616a0bb5b36588f0b9d1c9a3739/scipy-1.16.1-cp314-cp314t-win_amd64.whl", upload-time = 2025-07-27T16:31:53Z, size = 39427705, hashes = { sha256 = "c0c804d60492a0aad7f5b2bb1862f4548b990049e27e828391ff2bf6f7199998" } },
+]
+
+[[packages]]
+name = "setuptools"
+version = "70.2.0"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/setuptools-70.2.0-py3-none-any.whl", hashes = { sha256 = "b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05" } }]
+
+[[packages]]
+name = "six"
+version = "1.17.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", upload-time = 2024-12-04T17:35:28Z, size = 34031, hashes = { sha256 = "ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", upload-time = 2024-12-04T17:35:26Z, size = 11050, hashes = { sha256 = "4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274" } }]
+
+[[packages]]
+name = "sortedcontainers"
+version = "2.4.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", upload-time = 2021-05-16T22:03:42Z, size = 30594, hashes = { sha256 = "25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", upload-time = 2021-05-16T22:03:41Z, size = 29575, hashes = { sha256 = "a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0" } }]
+
+[[packages]]
+name = "sympy"
+version = "1.13.1"
+dependencies = [{ name = "mpmath", version = "1.3.0" }]
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/sympy-1.13.1-py3-none-any.whl", hashes = { sha256 = "db36cdc64bf61b9b24578b6f7bab1ecdd2452cf008f34faa33776680c26d66f8" } }]
+
+[[packages]]
+name = "tblib"
+version = "3.1.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/54/95/4b3044ec4bf248186769629bbfb495a458deb6e4c1f9eff7f298ae1e336e/tblib-3.1.0.tar.gz", upload-time = 2025-03-31T12:58:27Z, size = 30766, hashes = { sha256 = "06404c2c9f07f66fee2d7d6ad43accc46f9c3361714d9b8426e7f47e595cd652" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/27/44/aa5c8b10b2cce7a053018e0d132bd58e27527a0243c4985383d5b6fd93e9/tblib-3.1.0-py3-none-any.whl", upload-time = 2025-03-31T12:58:26Z, size = 12552, hashes = { sha256 = "670bb4582578134b3d81a84afa1b016128b429f3d48e6cbbaecc9d15675e984e" } }]
+
+[[packages]]
+name = "threadpoolctl"
+version = "3.6.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", upload-time = 2025-03-13T13:49:23Z, size = 21274, hashes = { sha256 = "8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", upload-time = 2025-03-13T13:49:21Z, size = 18638, hashes = { sha256 = "43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb" } }]
+
+[[packages]]
+name = "toolz"
+version = "1.0.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/8a/0b/d80dfa675bf592f636d1ea0b835eab4ec8df6e9415d8cfd766df54456123/toolz-1.0.0.tar.gz", upload-time = 2024-10-04T16:17:04Z, size = 66790, hashes = { sha256 = "2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/03/98/eb27cc78ad3af8e302c9d8ff4977f5026676e130d28dd7578132a457170c/toolz-1.0.0-py3-none-any.whl", upload-time = 2024-10-04T16:17:01Z, size = 56383, hashes = { sha256 = "292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236" } }]
+
+[[packages]]
+name = "torch"
+version = "2.6.0+cu124"
+dependencies = [
+    { name = "filelock", version = "3.13.1" },
+    { name = "fsspec", version = "2024.6.1" },
+    { name = "jinja2", version = "3.1.4" },
+    { name = "networkx", version = "3.3" },
+    { name = "nvidia-cublas-cu12", version = "12.4.5.8" },
+    { name = "nvidia-cuda-cupti-cu12", version = "12.4.127" },
+    { name = "nvidia-cuda-nvrtc-cu12", version = "12.4.127" },
+    { name = "nvidia-cuda-runtime-cu12", version = "12.4.127" },
+    { name = "nvidia-cudnn-cu12", version = "9.1.0.70" },
+    { name = "nvidia-cufft-cu12", version = "11.2.1.3" },
+    { name = "nvidia-curand-cu12", version = "10.3.5.147" },
+    { name = "nvidia-cusolver-cu12", version = "11.6.1.9" },
+    { name = "nvidia-cusparse-cu12", version = "12.3.1.170" },
+    { name = "nvidia-cusparselt-cu12", version = "0.6.2" },
+    { name = "nvidia-nccl-cu12", version = "2.21.5" },
+    { name = "nvidia-nvjitlink-cu12", version = "12.4.127" },
+    { name = "nvidia-nvtx-cu12", version = "12.4.127" },
+    { name = "setuptools", version = "70.2.0" },
+    { name = "sympy", version = "1.13.1" },
+    { name = "triton", version = "3.2.0" },
+    { name = "typing-extensions", version = "4.12.2" },
+]
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/cu124/torch-2.6.0%2Bcu124-cp312-cp312-linux_x86_64.whl", hashes = { sha256 = "a393b506844035c0dac2f30ea8478c343b8e95a429f06f3b3cadfc7f53adb597" } },
+    { url = "https://download.pytorch.org/whl/cu124/torch-2.6.0%2Bcu124-cp312-cp312-win_amd64.whl", hashes = { sha256 = "3313061c1fec4c7310cf47944e84513dcd27b6173b72a349bb7ca68d0ee6e9c0" } },
+    { url = "https://download.pytorch.org/whl/cu124/torch-2.6.0%2Bcu124-cp313-cp313-linux_x86_64.whl", hashes = { sha256 = "0f3bc53c988ce9568cd876a2a5316761e84a8704135ec8068f5f81b4417979cb" } },
+    { url = "https://download.pytorch.org/whl/cu124/torch-2.6.0%2Bcu124-cp313-cp313-win_amd64.whl", hashes = { sha256 = "519330eef09534acad8110b6f423d2fe58c1d8e9ada999ed077a637a0021f908" } },
+    { url = "https://download.pytorch.org/whl/cu124/torch-2.6.0%2Bcu124-cp313-cp313t-linux_x86_64.whl", hashes = { sha256 = "35cba404c0d742406cdcba1609085874bc60facdfbc50e910c47a92405fef44c" } },
+]
+
+[[packages]]
+name = "tornado"
+version = "6.5.2"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/09/ce/1eb500eae19f4648281bb2186927bb062d2438c2e5093d1360391afd2f90/tornado-6.5.2.tar.gz", upload-time = 2025-08-08T18:27:00Z, size = 510821, hashes = { sha256 = "ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/f6/48/6a7529df2c9cc12efd2e8f5dd219516184d703b34c06786809670df5b3bd/tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", upload-time = 2025-08-08T18:26:42Z, size = 442563, hashes = { sha256 = "2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6" } },
+    { url = "https://files.pythonhosted.org/packages/f2/b5/9b575a0ed3e50b00c40b08cbce82eb618229091d09f6d14bce80fc01cb0b/tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", upload-time = 2025-08-08T18:26:44Z, size = 440729, hashes = { sha256 = "583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef" } },
+    { url = "https://files.pythonhosted.org/packages/1b/4e/619174f52b120efcf23633c817fd3fed867c30bff785e2cd5a53a70e483c/tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", upload-time = 2025-08-08T18:26:46Z, size = 444295, hashes = { sha256 = "b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e" } },
+    { 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", upload-time = 2025-08-08T18:26:47Z, size = 443644, hashes = { sha256 = "b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882" } },
+    { 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", upload-time = 2025-08-08T18:26:50Z, size = 443878, hashes = { sha256 = "e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108" } },
+    { url = "https://files.pythonhosted.org/packages/11/92/fe6d57da897776ad2e01e279170ea8ae726755b045fe5ac73b75357a5a3f/tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", upload-time = 2025-08-08T18:26:51Z, size = 444549, hashes = { sha256 = "06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c" } },
+    { url = "https://files.pythonhosted.org/packages/9b/02/c8f4f6c9204526daf3d760f4aa555a7a33ad0e60843eac025ccfd6ff4a93/tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", upload-time = 2025-08-08T18:26:53Z, size = 443973, hashes = { sha256 = "74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4" } },
+    { url = "https://files.pythonhosted.org/packages/ae/2d/f5f5707b655ce2317190183868cd0f6822a1121b4baeae509ceb9590d0bd/tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", upload-time = 2025-08-08T18:26:55Z, size = 443954, hashes = { sha256 = "b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04" } },
+    { url = "https://files.pythonhosted.org/packages/e8/59/593bd0f40f7355806bf6573b47b8c22f8e1374c9b6fd03114bd6b7a3dcfd/tornado-6.5.2-cp39-abi3-win32.whl", upload-time = 2025-08-08T18:26:56Z, size = 445023, hashes = { sha256 = "c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0" } },
+    { url = "https://files.pythonhosted.org/packages/c7/2a/f609b420c2f564a748a2d80ebfb2ee02a73ca80223af712fca591386cafb/tornado-6.5.2-cp39-abi3-win_amd64.whl", upload-time = 2025-08-08T18:26:57Z, size = 445427, hashes = { sha256 = "e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f" } },
+    { url = "https://files.pythonhosted.org/packages/5e/4f/e1f65e8f8c76d73658b33d33b81eed4322fb5085350e4328d5c956f0c8f9/tornado-6.5.2-cp39-abi3-win_arm64.whl", upload-time = 2025-08-08T18:26:59Z, size = 444456, hashes = { sha256 = "d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af" } },
+]
+
+[[packages]]
+name = "treelite"
+version = "4.4.1"
+dependencies = [
+    { name = "numpy", version = "2.1.2" },
+    { name = "packaging", version = "24.1" },
+    { name = "scipy", version = "1.16.1" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/8c/46/9e4ff3f11f04d31eb8b9bef1eb3b140d7ce272bbeb6ea1804c5ea7ea3299/treelite-4.4.1.tar.gz", upload-time = 2024-11-22T19:14:33Z, size = 109293, hashes = { sha256 = "de9c28ff481317d9f4286ea781ba404e2506caa6995cdcb1867a7036124263de" } }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/1c/66/64850a5ec924a14e9517daaa21eb081a5883bb01ef16ffe3e08fda24d43f/treelite-4.4.1-py3-none-macosx_10_15_x86_64.macosx_11_0_x86_64.macosx_12_0_x86_64.whl", upload-time = 2024-11-22T19:14:17Z, size = 733602, hashes = { sha256 = "876ecdbb20783c2f7cfa483996bcc450db6b931184cc1bf22bad28d7f069bfe7" } },
+    { url = "https://files.pythonhosted.org/packages/19/e2/1d7ae9bd1eabe68e237ebd394ef673b9f39172f352a1b9bb3befeddeee59/treelite-4.4.1-py3-none-macosx_12_0_arm64.whl", upload-time = 2024-11-22T19:14:19Z, size = 631437, hashes = { sha256 = "1473d7bb3e1e0eb525265a38cacb3f01e4c2136a1c85f40b512316b5776eb97f" } },
+    { url = "https://files.pythonhosted.org/packages/aa/6d/0def3f702f0d3a10f4ba9b161bed68551094fc6dda0a89e61a40ea2425c5/treelite-4.4.1-py3-none-manylinux2014_aarch64.whl", upload-time = 2024-11-22T19:14:24Z, size = 904552, hashes = { sha256 = "ffc80da72201399ebe48944d231083cf190918297c37fd43814bb9635890cebc" } },
+    { url = "https://files.pythonhosted.org/packages/16/4c/9cfa4cfac89944066bcc042546782235544f5427a257c1f5bfd1700b0838/treelite-4.4.1-py3-none-manylinux2014_x86_64.whl", upload-time = 2024-11-22T19:14:28Z, size = 922796, hashes = { sha256 = "b3299e6c3bc3afa51641b651d8c3b2084ceec44d1913de89bfa7e98d4caf7607" } },
+    { url = "https://files.pythonhosted.org/packages/8f/d2/9b7467b797493b06cc66b44a37053894b94af6ad2fbad1f6f4879b14213f/treelite-4.4.1-py3-none-win_amd64.whl", upload-time = 2024-11-22T19:14:31Z, size = 502713, hashes = { sha256 = "77b5c9b7f80fdab2efa43b4ace2fb76d61d584f7af7373c406dea95c230464f9" } },
+]
+
+[[packages]]
+name = "triton"
+version = "3.2.0"
+marker = "platform_machine == 'x86_64' and sys_platform == 'linux'"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [
+    { url = "https://download.pytorch.org/whl/triton-3.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hashes = { sha256 = "8d9b215efc1c26fa7eefb9a157915c92d52e000d2bf83e5f69704047e63f125c" } },
+    { url = "https://download.pytorch.org/whl/triton-3.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hashes = { sha256 = "0fc1217eed33c7695272f981f5a8874ce3cb0195bbb2bfed16d58edd0aefef04" } },
+    { url = "https://download.pytorch.org/whl/triton-3.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hashes = { sha256 = "e5dfa23ba84541d7c0a531dfce76d8bcd19159d50a4a8b14ad01e91734a5c1b0" } },
+    { url = "https://download.pytorch.org/whl/triton-3.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hashes = { sha256 = "d528960c898f74596d5a8af1d70a7f0899c05a0781205eab51407b67f1644652" } },
+    { url = "https://download.pytorch.org/whl/triton-3.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hashes = { sha256 = "142dd3a9ac2fc3433768eeb4a4cd120655e2f658f4bf42726d2ea7f3748abffa" } },
+    { url = "https://download.pytorch.org/whl/triton-3.2.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hashes = { sha256 = "f24212d12744266f6229f90f820f34c43a538a69d6511b8e92ee392d2dc0d38b" } },
+]
+
+[[packages]]
+name = "typing-extensions"
+version = "4.12.2"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/typing_extensions-4.12.2-py3-none-any.whl", hashes = { sha256 = "04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d" } }]
+
+[[packages]]
+name = "tzdata"
+version = "2025.2"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", upload-time = 2025-03-23T13:54:43Z, size = 196380, hashes = { sha256 = "b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", upload-time = 2025-03-23T13:54:41Z, size = 347839, hashes = { sha256 = "1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8" } }]
+
+[[packages]]
+name = "ucx-py-cu12"
+version = "0.45.0"
+dependencies = [
+    { name = "libucx-cu12", version = "1.18.1" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "pynvml", version = "12.0.0" },
+]
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/de/c6/6646c3acdef21fea5a38e7f1adc3befa8cf59e796f31c44fda9eece534ce/ucx_py_cu12-0.45.0.tar.gz", upload-time = 2025-08-07T12:46:57Z, size = 1512, hashes = { sha256 = "96ec34d86c54a6f4b7bdc8e8010db2b2c7681e682c59498f680777cb3aba6fa9" } }
+
+[[packages]]
+name = "ucxx-cu12"
+version = "0.45.1"
+dependencies = [
+    { name = "libucxx-cu12", version = "0.45.1" },
+    { name = "numpy", version = "2.1.2" },
+    { name = "pynvml", version = "12.0.0" },
+    { name = "rmm-cu12", version = "25.8.0" },
+]
+index = "https://pypi.org/simple"
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/4c/fe/4af356bc85e523ff3247dee83d3f5a71d0d322425987040f94c0301e337f/ucxx_cu12-0.45.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T15:02:27Z, size = 669505, hashes = { sha256 = "5489fad6de6b80ce972ac7ff6c94471d1d92705711acfca1c7e8e1c42e498d68" } },
+    { url = "https://files.pythonhosted.org/packages/31/aa/b977a999dcff564f39cff5c0e3cdef032f7278771137ed761425a1e18640/ucxx_cu12-0.45.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T15:06:04Z, size = 689855, hashes = { sha256 = "a296efcccb194fb01a058e034c72ffa42bbbdc2d9f4796611ffc807e4e1c2ccb" } },
+    { url = "https://files.pythonhosted.org/packages/b4/c1/47395fa21382f6b77344206805e787c981d03a04825a5de199437ddf8ad0/ucxx_cu12-0.45.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", upload-time = 2025-08-07T15:01:38Z, size = 671894, hashes = { sha256 = "92a13dd0d2732c1dee2dd9eefa669d63ae636ef59b6b834548160ee8994db1da" } },
+    { url = "https://files.pythonhosted.org/packages/7e/fc/b07383eb85b50f5e29057a5473ccfc47b44bc3d39194a0feae1eba654bef/ucxx_cu12-0.45.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", upload-time = 2025-08-07T15:05:41Z, size = 689713, hashes = { sha256 = "79807a553d5ef2502d7bd4705b5eed15f5911c1e13aaec4a065c305094b9f7be" } },
+]
+
+[[packages]]
+name = "urllib3"
+version = "1.26.13"
+index = "https://download.pytorch.org/whl/cu124"
+wheels = [{ url = "https://download.pytorch.org/whl/urllib3-1.26.13-py2.py3-none-any.whl", hashes = { sha256 = "47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc" } }]
+
+[[packages]]
+name = "zict"
+version = "3.0.0"
+index = "https://pypi.org/simple"
+sdist = { url = "https://files.pythonhosted.org/packages/d1/ac/3c494dd7ec5122cff8252c1a209b282c0867af029f805ae9befd73ae37eb/zict-3.0.0.tar.gz", upload-time = 2023-04-17T21:41:16Z, size = 33238, hashes = { sha256 = "e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5" } }
+wheels = [{ url = "https://files.pythonhosted.org/packages/80/ab/11a76c1e2126084fde2639514f24e6111b789b0bfa4fc6264a8975c7e1f1/zict-3.0.0-py2.py3-none-any.whl", upload-time = 2023-04-17T21:41:13Z, size = 43332, hashes = { sha256 = "5796e36bd0e0cc8cf0fbc1ace6a68912611c1dbd74750a3f3026b9b9d6a327ae" } }]
diff --git a/tests/resolve/lockfile/test_issue_2887.py b/tests/resolve/lockfile/test_issue_2887.py
new file mode 100644
index 000000000..9e7cf8646
--- /dev/null
+++ b/tests/resolve/lockfile/test_issue_2887.py
@@ -0,0 +1,45 @@
+# Copyright 2025 Pex project contributors.
+# Licensed under the Apache License, Version 2.0 (see LICENSE).
+
+from __future__ import absolute_import
+
+import re
+
+import pytest
+
+from pex.dist_metadata import Requirement
+from pex.pep_440 import Version
+from pex.pep_503 import ProjectName
+from pex.pex_warnings import PEXWarning
+from pex.resolve import abbreviated_platforms
+from pex.resolve.lockfile.pep_751 import Pylock
+from pex.result import try_
+from pex.targets import AbbreviatedPlatform
+from testing import data
+
+
+def test_package_with_no_artifacts():
+    # type: () -> None
+
+    pylock_path = data.path("locks", "pylock.issue-2887.toml")
+    with pytest.warns(
+        PEXWarning,
+        match=re.escape(
+            'Skipping package at packages[47]{{name = "nvidia-cublas-cu12"}} in {lock} since it '
+            "defines no artifacts.".format(lock=pylock_path)
+        ),
+    ):
+        pylock = try_(Pylock.parse(pylock_path))
+
+    resolved_packages = try_(
+        pylock.resolve(
+            target=AbbreviatedPlatform.create(
+                abbreviated_platforms.create("linux-x86_64-cp-313-cp313", manylinux="manylinux2014")
+            ),
+            requirements=[Requirement.parse("nvidia-cudnn-cu12")],
+        )
+    )
+    assert [
+        (ProjectName("nvidia-cudnn-cu12"), Version("9.1.0.70")),
+        (ProjectName("nvidia-cublas-cu12"), Version("12.4.5.8")),
+    ] == [(package.project_name, package.version) for package in resolved_packages.packages]
diff --git a/tests/resolve/lockfile/test_pep_751.py b/tests/resolve/lockfile/test_pep_751.py
index 96bf4f188..8bca6625b 100644
--- a/tests/resolve/lockfile/test_pep_751.py
+++ b/tests/resolve/lockfile/test_pep_751.py
@@ -708,18 +708,6 @@ def test_pylock_parse_errors(tmpdir):
         ),
     )
 
-    assert_pylock_error(
-        "Failed to parse the PEP-751 lock at {lock_path}. "
-        'Error parsing content at packages[0]{{name = "foo"}}.\n'
-        "Package must define an artifact.".format(lock_path=lock_path),
-        dedent(
-            """\
-            [[packages]]
-            name = "foo"
-            """
-        ),
-    )
-
     assert_pylock_error(
         "Failed to parse the PEP-751 lock at {lock_path}. "
         'Error parsing content at packages[0]{{name = "foo"}}.\n'