darabos commited on
Commit
0087ef0
·
unverified ·
2 Parent(s): 63c2e3e ac9f9c5

Merge pull request #57 from biggraph/darabos-tweaks

Browse files
lynxkite-app/src/lynxkite/app/main.py CHANGED
@@ -1,6 +1,9 @@
1
- # TODO: Make this conditional. Until then just comment/uncomment it to use cuDF Pandas.
2
- # import cudf.pandas
3
- # cudf.pandas.install()
 
 
 
4
  import dataclasses
5
  import fastapi
6
  import importlib
 
1
+ import os
2
+
3
+ if os.environ.get("NX_CUGRAPH_AUTOCONFIG", "").strip().lower() == "true":
4
+ import cudf.pandas
5
+
6
+ cudf.pandas.install()
7
  import dataclasses
8
  import fastapi
9
  import importlib
lynxkite-graph-analytics/pyproject.toml CHANGED
@@ -13,5 +13,10 @@ dependencies = [
13
  "polars[gpu]>=1.14.0",
14
  ]
15
 
 
 
 
 
 
16
  [tool.uv.sources]
17
  lynxkite-core = { path = "../lynxkite-core" }
 
13
  "polars[gpu]>=1.14.0",
14
  ]
15
 
16
+ [project.optional-dependencies]
17
+ gpu = [
18
+ "nx-cugraph-cu12>=24.12.0",
19
+ ]
20
+
21
  [tool.uv.sources]
22
  lynxkite-core = { path = "../lynxkite-core" }
lynxkite-graph-analytics/src/lynxkite_plugins/graph_analytics/lynxkite_ops.py CHANGED
@@ -73,11 +73,14 @@ class Bundle:
73
 
74
  def to_nx(self):
75
  # TODO: Use relations.
76
- graph = nx.from_pandas_edgelist(self.dfs["edges"])
77
  if "nodes" in self.dfs:
78
- nx.set_node_attributes(
79
- graph, self.dfs["nodes"].set_index("id").to_dict("index")
80
  )
 
 
 
81
  return graph
82
 
83
  def copy(self):
@@ -250,7 +253,7 @@ def organize_bundle(bundle: Bundle, *, code: ops.LongStr):
250
  def sample_graph(graph: nx.Graph, *, nodes: int = 100):
251
  """Takes a (preferably connected) subgraph."""
252
  sample = set()
253
- to_expand = deque([0])
254
  while to_expand and len(sample) < nodes:
255
  node = to_expand.pop()
256
  for n in graph.neighbors(node):
@@ -336,12 +339,12 @@ def collect(df: pd.DataFrame):
336
 
337
 
338
  @op("View tables", view="table_view")
339
- def view_tables(bundle: Bundle):
340
  v = {
341
  "dataframes": {
342
  name: {
343
  "columns": [str(c) for c in df.columns],
344
- "data": collect(df),
345
  }
346
  for name, df in bundle.dfs.items()
347
  },
 
73
 
74
  def to_nx(self):
75
  # TODO: Use relations.
76
+ graph = nx.DiGraph()
77
  if "nodes" in self.dfs:
78
+ graph.add_nodes_from(
79
+ self.dfs["nodes"].set_index("id").to_dict("index").items()
80
  )
81
+ graph.add_edges_from(
82
+ self.dfs["edges"][["source", "target"]].itertuples(index=False, name=None)
83
+ )
84
  return graph
85
 
86
  def copy(self):
 
253
  def sample_graph(graph: nx.Graph, *, nodes: int = 100):
254
  """Takes a (preferably connected) subgraph."""
255
  sample = set()
256
+ to_expand = deque([next(graph.nodes.keys().__iter__())])
257
  while to_expand and len(sample) < nodes:
258
  node = to_expand.pop()
259
  for n in graph.neighbors(node):
 
339
 
340
 
341
  @op("View tables", view="table_view")
342
+ def view_tables(bundle: Bundle, *, limit: int = 100):
343
  v = {
344
  "dataframes": {
345
  name: {
346
  "columns": [str(c) for c in df.columns],
347
+ "data": collect(df)[:limit],
348
  }
349
  for name, df in bundle.dfs.items()
350
  },
lynxkite-graph-analytics/uv.lock CHANGED
@@ -9,6 +9,29 @@ resolution-markers = [
9
  "python_full_version >= '3.12' and platform_machine != 'aarch64' and platform_machine != 'x86_64'",
10
  ]
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  [[package]]
13
  name = "contourpy"
14
  version = "1.3.1"
@@ -76,13 +99,30 @@ wheels = [
76
  [[package]]
77
  name = "cudf-polars-cu12"
78
  version = "24.12.0"
79
- source = { registry = "https://pypi.org/simple" }
80
  dependencies = [
81
  { name = "polars" },
82
  { name = "pylibcudf-cu12" },
83
  ]
84
  wheels = [
85
- { url = "https://files.pythonhosted.org/packages/0f/6e/3d0b2d19ac853347f435f49815d471d461315d8f6e74f165624f16ddc7db/cudf_polars_cu12-24.12.0-py3-none-any.whl", hash = "sha256:3d2058f75251fd4921618bb1d4cfba0c99b670a12756df0d3f51559aca2298fa", size = 79456 },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  ]
87
 
88
  [[package]]
@@ -94,6 +134,34 @@ wheels = [
94
  { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 },
95
  ]
96
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  [[package]]
98
  name = "fonttools"
99
  version = "4.55.3"
@@ -147,6 +215,52 @@ dependencies = [
147
  ]
148
  sdist = { url = "https://files.pythonhosted.org/packages/65/c6/27400e2d81bd769ebe65c695cead44c8efb55ac3769826a01c9223d65709/grandiso-2.2.0.tar.gz", hash = "sha256:66f292d27328e13122065c7905ad0ac79c4649f69a35e7b98a3631654a0bf77c", size = 16277 }
149
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  [[package]]
151
  name = "kiwisolver"
152
  version = "1.4.8"
@@ -225,23 +339,23 @@ wheels = [
225
  [[package]]
226
  name = "libcudf-cu12"
227
  version = "24.12.0"
228
- source = { registry = "https://pypi.org/simple" }
229
  dependencies = [
230
  { name = "libkvikio-cu12" },
231
  { name = "nvidia-nvcomp-cu12" },
232
  ]
233
  wheels = [
234
- { url = "https://files.pythonhosted.org/packages/fa/ea/efccbbeb4012cdd247e3d12ed19c4cd70a770e6c22c1456d8cb569818083/libcudf_cu12-24.12.0-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:1e78a247f31c6045221f3142a5fd15210d53c91043c5a4e260b67b5ddff43164", size = 454436993 },
235
- { url = "https://files.pythonhosted.org/packages/88/93/dc3a27c3904aa12a32def0df330f15a85d0f01e0420b18bc0efa8b3245ba/libcudf_cu12-24.12.0-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:47b7537a314b4462c24938f4e9118ea65bfe2de7440e99ecf278a38a14abf9ab", size = 457847164 },
236
  ]
237
 
238
  [[package]]
239
  name = "libkvikio-cu12"
240
  version = "24.12.1"
241
- source = { registry = "https://pypi.org/simple" }
242
  wheels = [
243
- { url = "https://files.pythonhosted.org/packages/24/17/8dbef99dc5a73dbf56dea090ba1c345cc4343bf8d13f331a8091d0e1c362/libkvikio_cu12-24.12.1-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:7ed5d27263204a237ea7a14ce176ed885888c8daf47341ae0fbcecd55fb2c694", size = 1875299 },
244
- { url = "https://files.pythonhosted.org/packages/0a/31/3be8facaf2f15849629a030e8fb1696ec80228270860b9ffd869a17a6a71/libkvikio_cu12-24.12.1-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:c4f333dbbffc35ba94a028db3b24ddb1c3dfddff9c6fb0f17488dc662a86f481", size = 1989095 },
245
  ]
246
 
247
  [[package]]
@@ -276,16 +390,24 @@ dependencies = [
276
  { name = "lynxkite-core" },
277
  { name = "matplotlib" },
278
  { name = "networkx" },
 
279
  { name = "pandas" },
280
  { name = "polars", extra = ["gpu"] },
281
  ]
282
 
 
 
 
 
 
283
  [package.metadata]
284
  requires-dist = [
285
  { name = "grand-cypher", specifier = ">=0.12.0" },
 
286
  { name = "lynxkite-core", virtual = "../lynxkite-core" },
287
  { name = "matplotlib", specifier = ">=3.10.0" },
288
  { name = "networkx", specifier = ">=3.4.2" },
 
289
  { name = "pandas", specifier = ">=2.2.3" },
290
  { name = "polars", extras = ["gpu"], specifier = ">=1.14.0" },
291
  ]
@@ -392,14 +514,72 @@ wheels = [
392
  { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179 },
393
  ]
394
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
395
  [[package]]
396
  name = "nvidia-nvcomp-cu12"
397
  version = "4.1.0.6"
398
- source = { registry = "https://pypi.org/simple" }
 
 
 
 
 
 
 
 
 
 
399
  wheels = [
400
- { url = "https://files.pythonhosted.org/packages/91/51/17e3acc3b53e5a6d97db7ed79035e8b5f13aefa1f5a8e703287418eac2b4/nvidia_nvcomp_cu12-4.1.0.6-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:3bff6267fa6aae59a98155262e5e9da6142e798dac5afd01f7389b23bce89803", size = 28724365 },
401
- { url = "https://files.pythonhosted.org/packages/f6/3e/c90004db47c527c4f253c1c866facefbd2a5059ba50035a6967712b3b125/nvidia_nvcomp_cu12-4.1.0.6-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:aaff831f0fdbf20631df32e411ede37ddf5fd7297f78e77346441cd0d72cb787", size = 28944826 },
402
- { url = "https://files.pythonhosted.org/packages/ef/97/be4151c26d13741237e1b58d6fac097b79b552bee4a9c89d7f150c4959fb/nvidia_nvcomp_cu12-4.1.0.6-py3-none-win_amd64.whl", hash = "sha256:df24bedfe9df8be67ae7c59f5d21223f082c5ce689679909ee4985c563a0a89f", size = 75296662 },
403
  ]
404
 
405
  [[package]]
@@ -414,6 +594,20 @@ wheels = [
414
  { url = "https://files.pythonhosted.org/packages/53/6d/81a1da3a1e7b216412f768add33799a8f73de906cd78118d0e57c82c951c/nvtx-0.2.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:552ee32cadd7a8205833e157f3e161670200b213eb2816fd8631182c3e97c0dc", size = 695537 },
415
  ]
416
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
  [[package]]
418
  name = "packaging"
419
  version = "24.2"
@@ -569,7 +763,7 @@ wheels = [
569
  [[package]]
570
  name = "pylibcudf-cu12"
571
  version = "24.12.0"
572
- source = { registry = "https://pypi.org/simple" }
573
  dependencies = [
574
  { name = "cuda-python" },
575
  { name = "libcudf-cu12" },
@@ -580,10 +774,49 @@ dependencies = [
580
  { name = "typing-extensions" },
581
  ]
582
  wheels = [
583
- { url = "https://files.pythonhosted.org/packages/ee/0f/5a78a8bb72726de1ea50735c2e02588564542b8a0ad1069a067d9fe8e301/pylibcudf_cu12-24.12.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c61587a6d9e9f392745b9b238f3eebcfacbbf21e3c7d9fedf7a1a672284fcce", size = 36400678 },
584
- { url = "https://files.pythonhosted.org/packages/98/c9/66fe3954244f809b5b9a201e33d7cf8c663b09b0911443374b01333fe28a/pylibcudf_cu12-24.12.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6459baed065bc76fbc7ef34e14912982971c1a9d4bffb2699909d78a95b0b8a3", size = 37259282 },
585
- { url = "https://files.pythonhosted.org/packages/fa/1b/5f43e550262de73dfab17bbc8b2ee3f0add116be28c7ed6ba61a53135859/pylibcudf_cu12-24.12.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd130e347c28716912b89a1f7ff653ca6e202bfbc79f5abbedd7918bb9124f34", size = 36317440 },
586
- { url = "https://files.pythonhosted.org/packages/8e/2c/653ca775cefafeea2158d0c94296e6b78e050af2892f89fe21697bb737af/pylibcudf_cu12-24.12.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e2bb951f1a2fddf1976b84aa4e6d1280689da22014d6d1d5f48364cc1b32e2d", size = 37180377 },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
587
  ]
588
 
589
  [[package]]
@@ -619,17 +852,17 @@ wheels = [
619
  [[package]]
620
  name = "rmm-cu12"
621
  version = "24.12.1"
622
- source = { registry = "https://pypi.org/simple" }
623
  dependencies = [
624
  { name = "cuda-python" },
625
  { name = "numba" },
626
  { name = "numpy" },
627
  ]
628
  wheels = [
629
- { url = "https://files.pythonhosted.org/packages/0e/c3/b08d5282116dd930e68a0ccbdecd750880efc451e0d2150e764793f03070/rmm_cu12-24.12.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d509d735201d1b0bc05b3e148e23a6216eabcfec67006a4e9311b6c25766023f", size = 1933478 },
630
- { url = "https://files.pythonhosted.org/packages/c7/ce/c32c1a95d53b1a22aeb258af7afa68a73a995c6c2f533fb774d2078d3cca/rmm_cu12-24.12.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c1d6b166aaf9b81495ff33f2fe5a29ad12dc1ed6089daf9f387160e7734fc901", size = 1984701 },
631
- { url = "https://files.pythonhosted.org/packages/c2/4b/32f7920f130536e7e1a8ea7feb591cab7fcb85aaff28311c4e8057ec23da/rmm_cu12-24.12.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:317a6641fb37f3efa6e8eb76eeb568970a8c439e0090529520861fd139ef6f0c", size = 1923807 },
632
- { url = "https://files.pythonhosted.org/packages/1d/f2/56faa578aefdab498f6eb73dde3316f99390769786e0cdbb6c7a6abbbf86/rmm_cu12-24.12.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9460a386e34f1921c8d06204f320d705511de899ababb45302d314da036da5a", size = 1975053 },
633
  ]
634
 
635
  [[package]]
@@ -641,6 +874,15 @@ wheels = [
641
  { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 },
642
  ]
643
 
 
 
 
 
 
 
 
 
 
644
  [[package]]
645
  name = "typing-extensions"
646
  version = "4.12.2"
 
9
  "python_full_version >= '3.12' and platform_machine != 'aarch64' and platform_machine != 'x86_64'",
10
  ]
11
 
12
+ [[package]]
13
+ name = "anyio"
14
+ version = "4.8.0"
15
+ source = { registry = "https://pypi.org/simple" }
16
+ dependencies = [
17
+ { name = "idna" },
18
+ { name = "sniffio" },
19
+ { name = "typing-extensions", marker = "python_full_version < '3.13'" },
20
+ ]
21
+ sdist = { url = "https://files.pythonhosted.org/packages/a3/73/199a98fc2dae33535d6b8e8e6ec01f8c1d76c9adb096c6b7d64823038cde/anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a", size = 181126 }
22
+ wheels = [
23
+ { url = "https://files.pythonhosted.org/packages/46/eb/e7f063ad1fec6b3178a3cd82d1a3c4de82cccf283fc42746168188e1cdd5/anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a", size = 96041 },
24
+ ]
25
+
26
+ [[package]]
27
+ name = "certifi"
28
+ version = "2025.1.31"
29
+ source = { registry = "https://pypi.org/simple" }
30
+ sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577 }
31
+ wheels = [
32
+ { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393 },
33
+ ]
34
+
35
  [[package]]
36
  name = "contourpy"
37
  version = "1.3.1"
 
99
  [[package]]
100
  name = "cudf-polars-cu12"
101
  version = "24.12.0"
102
+ source = { registry = "https://pypi.nvidia.com/" }
103
  dependencies = [
104
  { name = "polars" },
105
  { name = "pylibcudf-cu12" },
106
  ]
107
  wheels = [
108
+ { url = "https://pypi.nvidia.com/cudf-polars-cu12/cudf_polars_cu12-24.12.0-py3-none-any.whl", hash = "sha256:3d2058f75251fd4921618bb1d4cfba0c99b670a12756df0d3f51559aca2298fa" },
109
+ ]
110
+
111
+ [[package]]
112
+ name = "cupy-cuda12x"
113
+ version = "13.3.0"
114
+ source = { registry = "https://pypi.org/simple" }
115
+ dependencies = [
116
+ { name = "fastrlock" },
117
+ { name = "numpy" },
118
+ ]
119
+ wheels = [
120
+ { url = "https://files.pythonhosted.org/packages/95/c9/0b88c015e98aad808c18f938267585d79e6211fe08650e0de7132e235e40/cupy_cuda12x-13.3.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:c0cc095b9a3835fd5db66c45ed3c58ecdc5a3bb14e53e1defbfd4a0ce5c8ecdb", size = 104925909 },
121
+ { url = "https://files.pythonhosted.org/packages/8c/1f/596803c35833c01a41da21c6a7bb552f1ed56d807090ddc6727c8f396d7d/cupy_cuda12x-13.3.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:a0e3bead04e502ebde515f0343444ca3f4f7aed09cbc3a316a946cba97f2ea66", size = 91172049 },
122
+ { url = "https://files.pythonhosted.org/packages/d0/a8/5b5929830d2da94608d8126bafe2c52d69929a197fd8698ac09142c068ba/cupy_cuda12x-13.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:5f11df1149c7219858b27e4c8be92cb4eaf7364c94af6b78c40dffb98050a61f", size = 69564719 },
123
+ { url = "https://files.pythonhosted.org/packages/0d/02/e94f7c26a5f446888d8753d4b6642e5107f9fde166d1ac23b7de95ccea7b/cupy_cuda12x-13.3.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:bbd0d916310391faf0d7dc9c58fff7a6dc996b67e5768199160bbceb5ebdda8c", size = 103894953 },
124
+ { url = "https://files.pythonhosted.org/packages/90/dc/da09e5184d94146b8cbf240c2bef1c4851cbafd7e2d60cc71b1530c766ec/cupy_cuda12x-13.3.0-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:e206bd8664f0763732b6012431f484ee535bffd77a5ae95e9bfe1c7c72396625", size = 90980377 },
125
+ { url = "https://files.pythonhosted.org/packages/14/11/8bc53cab1466605ba88ba3c7243078a784ee2cd8974f5602a491882af9af/cupy_cuda12x-13.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:88ef1478f00ae252da0026e7f04f70c9bb6a2dc130ba5f1e5bc5e8069a928bf5", size = 69499349 },
126
  ]
127
 
128
  [[package]]
 
134
  { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 },
135
  ]
136
 
137
+ [[package]]
138
+ name = "fastrlock"
139
+ version = "0.8.3"
140
+ source = { registry = "https://pypi.org/simple" }
141
+ sdist = { url = "https://files.pythonhosted.org/packages/73/b1/1c3d635d955f2b4bf34d45abf8f35492e04dbd7804e94ce65d9f928ef3ec/fastrlock-0.8.3.tar.gz", hash = "sha256:4af6734d92eaa3ab4373e6c9a1dd0d5ad1304e172b1521733c6c3b3d73c8fa5d", size = 79327 }
142
+ wheels = [
143
+ { url = "https://files.pythonhosted.org/packages/90/9e/647951c579ef74b6541493d5ca786d21a0b2d330c9514ba2c39f0b0b0046/fastrlock-0.8.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:f68c551cf8a34b6460a3a0eba44bd7897ebfc820854e19970c52a76bf064a59f", size = 55233 },
144
+ { url = "https://files.pythonhosted.org/packages/be/91/5f3afba7d14b8b7d60ac651375f50fff9220d6ccc3bef233d2bd74b73ec7/fastrlock-0.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:55d42f6286b9d867370af4c27bc70d04ce2d342fe450c4a4fcce14440514e695", size = 48911 },
145
+ { url = "https://files.pythonhosted.org/packages/d5/7a/e37bd72d7d70a8a551b3b4610d028bd73ff5d6253201d5d3cf6296468bee/fastrlock-0.8.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:bbc3bf96dcbd68392366c477f78c9d5c47e5d9290cb115feea19f20a43ef6d05", size = 50357 },
146
+ { url = "https://files.pythonhosted.org/packages/0d/ef/a13b8bab8266840bf38831d7bf5970518c02603d00a548a678763322d5bf/fastrlock-0.8.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:77ab8a98417a1f467dafcd2226718f7ca0cf18d4b64732f838b8c2b3e4b55cb5", size = 50222 },
147
+ { url = "https://files.pythonhosted.org/packages/01/e2/5e5515562b2e9a56d84659377176aef7345da2c3c22909a1897fe27e14dd/fastrlock-0.8.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:04bb5eef8f460d13b8c0084ea5a9d3aab2c0573991c880c0a34a56bb14951d30", size = 54553 },
148
+ { url = "https://files.pythonhosted.org/packages/c0/8f/65907405a8cdb2fc8beaf7d09a9a07bb58deff478ff391ca95be4f130b70/fastrlock-0.8.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c9d459ce344c21ff03268212a1845aa37feab634d242131bc16c2a2355d5f65", size = 53362 },
149
+ { url = "https://files.pythonhosted.org/packages/ec/b9/ae6511e52738ba4e3a6adb7c6a20158573fbc98aab448992ece25abb0b07/fastrlock-0.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33e6fa4af4f3af3e9c747ec72d1eadc0b7ba2035456c2afb51c24d9e8a56f8fd", size = 52836 },
150
+ { url = "https://files.pythonhosted.org/packages/88/3e/c26f8192c93e8e43b426787cec04bb46ac36e72b1033b7fe5a9267155fdf/fastrlock-0.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:5e5f1665d8e70f4c5b4a67f2db202f354abc80a321ce5a26ac1493f055e3ae2c", size = 31046 },
151
+ { url = "https://files.pythonhosted.org/packages/00/df/56270f2e10c1428855c990e7a7e5baafa9e1262b8e789200bd1d047eb501/fastrlock-0.8.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:8cb2cf04352ea8575d496f31b3b88c42c7976e8e58cdd7d1550dfba80ca039da", size = 55727 },
152
+ { 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", hash = "sha256:85a49a1f1e020097d087e1963e42cea6f307897d5ebe2cb6daf4af47ffdd3eed", size = 52201 },
153
+ { 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", hash = "sha256:5f13ec08f1adb1aa916c384b05ecb7dbebb8df9ea81abd045f60941c6283a670", size = 53924 },
154
+ { url = "https://files.pythonhosted.org/packages/88/6d/59c497f8db9a125066dd3a7442fab6aecbe90d6fec344c54645eaf311666/fastrlock-0.8.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0ea4e53a04980d646def0f5e4b5e8bd8c7884288464acab0b37ca0c65c482bfe", size = 52140 },
155
+ { url = "https://files.pythonhosted.org/packages/62/04/9138943c2ee803d62a48a3c17b69de2f6fa27677a6896c300369e839a550/fastrlock-0.8.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:38340f6635bd4ee2a4fb02a3a725759fe921f2ca846cb9ca44531ba739cc17b4", size = 53261 },
156
+ { url = "https://files.pythonhosted.org/packages/e2/4b/db35a52589764c7745a613b6943bbd018f128d42177ab92ee7dde88444f6/fastrlock-0.8.3-cp312-cp312-win_amd64.whl", hash = "sha256:da06d43e1625e2ffddd303edcd6d2cd068e1c486f5fd0102b3f079c44eb13e2c", size = 31235 },
157
+ { url = "https://files.pythonhosted.org/packages/92/74/7b13d836c3f221cff69d6f418f46c2a30c4b1fe09a8ce7db02eecb593185/fastrlock-0.8.3-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:5264088185ca8e6bc83181dff521eee94d078c269c7d557cc8d9ed5952b7be45", size = 54157 },
158
+ { 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", hash = "sha256:4a98ba46b3e14927550c4baa36b752d0d2f7387b8534864a8767f83cce75c160", size = 50954 },
159
+ { 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", hash = "sha256:dbdea6deeccea1917c6017d353987231c4e46c93d5338ca3e66d6cd88fbce259", size = 52535 },
160
+ { url = "https://files.pythonhosted.org/packages/7d/a7/ee82bb55b6c0ca30286dac1e19ee9417a17d2d1de3b13bb0f20cefb86086/fastrlock-0.8.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c6e5bfecbc0d72ff07e43fed81671747914d6794e0926700677ed26d894d4f4f", size = 50942 },
161
+ { url = "https://files.pythonhosted.org/packages/63/1d/d4b7782ef59e57dd9dde69468cc245adafc3674281905e42fa98aac30a79/fastrlock-0.8.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:2a83d558470c520ed21462d304e77a12639859b205759221c8144dd2896b958a", size = 52044 },
162
+ { url = "https://files.pythonhosted.org/packages/28/a3/2ad0a0a69662fd4cf556ab8074f0de978ee9b56bff6ddb4e656df4aa9e8e/fastrlock-0.8.3-cp313-cp313-win_amd64.whl", hash = "sha256:8d1d6a28291b4ace2a66bd7b49a9ed9c762467617febdd9ab356b867ed901af8", size = 30472 },
163
+ ]
164
+
165
  [[package]]
166
  name = "fonttools"
167
  version = "4.55.3"
 
215
  ]
216
  sdist = { url = "https://files.pythonhosted.org/packages/65/c6/27400e2d81bd769ebe65c695cead44c8efb55ac3769826a01c9223d65709/grandiso-2.2.0.tar.gz", hash = "sha256:66f292d27328e13122065c7905ad0ac79c4649f69a35e7b98a3631654a0bf77c", size = 16277 }
217
 
218
+ [[package]]
219
+ name = "h11"
220
+ version = "0.14.0"
221
+ source = { registry = "https://pypi.org/simple" }
222
+ sdist = { url = "https://files.pythonhosted.org/packages/f5/38/3af3d3633a34a3316095b39c8e8fb4853a28a536e55d347bd8d8e9a14b03/h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", size = 100418 }
223
+ wheels = [
224
+ { url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 },
225
+ ]
226
+
227
+ [[package]]
228
+ name = "httpcore"
229
+ version = "1.0.7"
230
+ source = { registry = "https://pypi.org/simple" }
231
+ dependencies = [
232
+ { name = "certifi" },
233
+ { name = "h11" },
234
+ ]
235
+ sdist = { url = "https://files.pythonhosted.org/packages/6a/41/d7d0a89eb493922c37d343b607bc1b5da7f5be7e383740b4753ad8943e90/httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c", size = 85196 }
236
+ wheels = [
237
+ { url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd", size = 78551 },
238
+ ]
239
+
240
+ [[package]]
241
+ name = "httpx"
242
+ version = "0.28.1"
243
+ source = { registry = "https://pypi.org/simple" }
244
+ dependencies = [
245
+ { name = "anyio" },
246
+ { name = "certifi" },
247
+ { name = "httpcore" },
248
+ { name = "idna" },
249
+ ]
250
+ sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 }
251
+ wheels = [
252
+ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 },
253
+ ]
254
+
255
+ [[package]]
256
+ name = "idna"
257
+ version = "3.10"
258
+ source = { registry = "https://pypi.org/simple" }
259
+ sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 }
260
+ wheels = [
261
+ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
262
+ ]
263
+
264
  [[package]]
265
  name = "kiwisolver"
266
  version = "1.4.8"
 
339
  [[package]]
340
  name = "libcudf-cu12"
341
  version = "24.12.0"
342
+ source = { registry = "https://pypi.nvidia.com/" }
343
  dependencies = [
344
  { name = "libkvikio-cu12" },
345
  { name = "nvidia-nvcomp-cu12" },
346
  ]
347
  wheels = [
348
+ { url = "https://pypi.nvidia.com/libcudf-cu12/libcudf_cu12-24.12.0-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:1e78a247f31c6045221f3142a5fd15210d53c91043c5a4e260b67b5ddff43164" },
349
+ { url = "https://pypi.nvidia.com/libcudf-cu12/libcudf_cu12-24.12.0-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:47b7537a314b4462c24938f4e9118ea65bfe2de7440e99ecf278a38a14abf9ab" },
350
  ]
351
 
352
  [[package]]
353
  name = "libkvikio-cu12"
354
  version = "24.12.1"
355
+ source = { registry = "https://pypi.nvidia.com/" }
356
  wheels = [
357
+ { url = "https://pypi.nvidia.com/libkvikio-cu12/libkvikio_cu12-24.12.1-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:7ed5d27263204a237ea7a14ce176ed885888c8daf47341ae0fbcecd55fb2c694" },
358
+ { url = "https://pypi.nvidia.com/libkvikio-cu12/libkvikio_cu12-24.12.1-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:c4f333dbbffc35ba94a028db3b24ddb1c3dfddff9c6fb0f17488dc662a86f481" },
359
  ]
360
 
361
  [[package]]
 
390
  { name = "lynxkite-core" },
391
  { name = "matplotlib" },
392
  { name = "networkx" },
393
+ { name = "nx-cugraph-cu12" },
394
  { name = "pandas" },
395
  { name = "polars", extra = ["gpu"] },
396
  ]
397
 
398
+ [package.optional-dependencies]
399
+ gpu = [
400
+ { name = "httpx" },
401
+ ]
402
+
403
  [package.metadata]
404
  requires-dist = [
405
  { name = "grand-cypher", specifier = ">=0.12.0" },
406
+ { name = "httpx", marker = "extra == 'gpu'" },
407
  { name = "lynxkite-core", virtual = "../lynxkite-core" },
408
  { name = "matplotlib", specifier = ">=3.10.0" },
409
  { name = "networkx", specifier = ">=3.4.2" },
410
+ { name = "nx-cugraph-cu12", specifier = ">=24.12.0" },
411
  { name = "pandas", specifier = ">=2.2.3" },
412
  { name = "polars", extras = ["gpu"], specifier = ">=1.14.0" },
413
  ]
 
514
  { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179 },
515
  ]
516
 
517
+ [[package]]
518
+ name = "nvidia-cublas-cu12"
519
+ version = "12.8.3.14"
520
+ source = { registry = "https://pypi.nvidia.com/" }
521
+ wheels = [
522
+ { url = "https://pypi.nvidia.com/nvidia-cublas-cu12/nvidia_cublas_cu12-12.8.3.14-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:93a4e0e386cc7f6e56c822531396de8170ed17068a1e18f987574895044cd8c3" },
523
+ { url = "https://pypi.nvidia.com/nvidia-cublas-cu12/nvidia_cublas_cu12-12.8.3.14-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:3f0e05e7293598cf61933258b73e66a160c27d59c4422670bf0b79348c04be44" },
524
+ { url = "https://pypi.nvidia.com/nvidia-cublas-cu12/nvidia_cublas_cu12-12.8.3.14-py3-none-win_amd64.whl", hash = "sha256:9ae5eae500aead01fc4bdfc458209df638b1a3551557ce11a78eea9ece602ae9" },
525
+ ]
526
+
527
+ [[package]]
528
+ name = "nvidia-curand-cu12"
529
+ version = "10.3.9.55"
530
+ source = { registry = "https://pypi.nvidia.com/" }
531
+ wheels = [
532
+ { url = "https://pypi.nvidia.com/nvidia-curand-cu12/nvidia_curand_cu12-10.3.9.55-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:b6bb90c044fa9b07cedae2ef29077c4cf851fb6fdd6d862102321f359dca81e9" },
533
+ { url = "https://pypi.nvidia.com/nvidia-curand-cu12/nvidia_curand_cu12-10.3.9.55-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:8387d974240c91f6a60b761b83d4b2f9b938b7e0b9617bae0f0dafe4f5c36b86" },
534
+ { url = "https://pypi.nvidia.com/nvidia-curand-cu12/nvidia_curand_cu12-10.3.9.55-py3-none-win_amd64.whl", hash = "sha256:570d82475fe7f3d8ed01ffbe3b71796301e0e24c98762ca018ff8ce4f5418e1f" },
535
+ ]
536
+
537
+ [[package]]
538
+ name = "nvidia-cusolver-cu12"
539
+ version = "11.7.2.55"
540
+ source = { registry = "https://pypi.nvidia.com/" }
541
+ dependencies = [
542
+ { name = "nvidia-cublas-cu12" },
543
+ { name = "nvidia-cusparse-cu12" },
544
+ { name = "nvidia-nvjitlink-cu12" },
545
+ ]
546
+ wheels = [
547
+ { url = "https://pypi.nvidia.com/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.7.2.55-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:0fd9e98246f43c15bee5561147ad235dfdf2d037f5d07c9d41af3f7f72feb7cc" },
548
+ { url = "https://pypi.nvidia.com/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.7.2.55-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4d1354102f1e922cee9db51920dba9e2559877cf6ff5ad03a00d853adafb191b" },
549
+ { url = "https://pypi.nvidia.com/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.7.2.55-py3-none-win_amd64.whl", hash = "sha256:a5a516c55da5c5aba98420d9bc9bcab18245f21ec87338cc1f930eb18dd411ac" },
550
+ ]
551
+
552
+ [[package]]
553
+ name = "nvidia-cusparse-cu12"
554
+ version = "12.5.7.53"
555
+ source = { registry = "https://pypi.nvidia.com/" }
556
+ dependencies = [
557
+ { name = "nvidia-nvjitlink-cu12" },
558
+ ]
559
+ wheels = [
560
+ { url = "https://pypi.nvidia.com/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.5.7.53-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d869c6146ca80f4305b62e02d924b4aaced936f8173e3cef536a67eed2a91af1" },
561
+ { url = "https://pypi.nvidia.com/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.5.7.53-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3c1b61eb8c85257ea07e9354606b26397612627fdcd327bfd91ccf6155e7c86d" },
562
+ { url = "https://pypi.nvidia.com/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.5.7.53-py3-none-win_amd64.whl", hash = "sha256:82c201d6781bacf6bb7c654f0446728d0fe596dfdd82ef4a04c204ce3e107441" },
563
+ ]
564
+
565
  [[package]]
566
  name = "nvidia-nvcomp-cu12"
567
  version = "4.1.0.6"
568
+ source = { registry = "https://pypi.nvidia.com/" }
569
+ wheels = [
570
+ { url = "https://pypi.nvidia.com/nvidia-nvcomp-cu12/nvidia_nvcomp_cu12-4.1.0.6-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:3bff6267fa6aae59a98155262e5e9da6142e798dac5afd01f7389b23bce89803" },
571
+ { url = "https://pypi.nvidia.com/nvidia-nvcomp-cu12/nvidia_nvcomp_cu12-4.1.0.6-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:aaff831f0fdbf20631df32e411ede37ddf5fd7297f78e77346441cd0d72cb787" },
572
+ { url = "https://pypi.nvidia.com/nvidia-nvcomp-cu12/nvidia_nvcomp_cu12-4.1.0.6-py3-none-win_amd64.whl", hash = "sha256:df24bedfe9df8be67ae7c59f5d21223f082c5ce689679909ee4985c563a0a89f" },
573
+ ]
574
+
575
+ [[package]]
576
+ name = "nvidia-nvjitlink-cu12"
577
+ version = "12.8.61"
578
+ source = { registry = "https://pypi.nvidia.com/" }
579
  wheels = [
580
+ { url = "https://pypi.nvidia.com/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.8.61-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:45fd79f2ae20bd67e8bc411055939049873bfd8fac70ff13bd4865e0b9bdab17" },
581
+ { url = "https://pypi.nvidia.com/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.8.61-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9b80ecab31085dda3ce3b41d043be0ec739216c3fc633b8abe212d5a30026df0" },
582
+ { url = "https://pypi.nvidia.com/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.8.61-py3-none-win_amd64.whl", hash = "sha256:1166a964d25fdc0eae497574d38824305195a5283324a21ccb0ce0c802cbf41c" },
583
  ]
584
 
585
  [[package]]
 
594
  { url = "https://files.pythonhosted.org/packages/53/6d/81a1da3a1e7b216412f768add33799a8f73de906cd78118d0e57c82c951c/nvtx-0.2.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:552ee32cadd7a8205833e157f3e161670200b213eb2816fd8631182c3e97c0dc", size = 695537 },
595
  ]
596
 
597
+ [[package]]
598
+ name = "nx-cugraph-cu12"
599
+ version = "24.12.0"
600
+ source = { registry = "https://pypi.nvidia.com/" }
601
+ dependencies = [
602
+ { name = "cupy-cuda12x" },
603
+ { name = "networkx" },
604
+ { name = "numpy" },
605
+ { name = "pylibcugraph-cu12" },
606
+ ]
607
+ wheels = [
608
+ { url = "https://pypi.nvidia.com/nx-cugraph-cu12/nx_cugraph_cu12-24.12.0-py3-none-any.whl", hash = "sha256:a6bd906e498aefb7cfb0f7ec36d1fd776a72baee275da1452888ea82970956b6" },
609
+ ]
610
+
611
  [[package]]
612
  name = "packaging"
613
  version = "24.2"
 
763
  [[package]]
764
  name = "pylibcudf-cu12"
765
  version = "24.12.0"
766
+ source = { registry = "https://pypi.nvidia.com/" }
767
  dependencies = [
768
  { name = "cuda-python" },
769
  { name = "libcudf-cu12" },
 
774
  { name = "typing-extensions" },
775
  ]
776
  wheels = [
777
+ { url = "https://pypi.nvidia.com/pylibcudf-cu12/pylibcudf_cu12-24.12.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c61587a6d9e9f392745b9b238f3eebcfacbbf21e3c7d9fedf7a1a672284fcce" },
778
+ { url = "https://pypi.nvidia.com/pylibcudf-cu12/pylibcudf_cu12-24.12.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6459baed065bc76fbc7ef34e14912982971c1a9d4bffb2699909d78a95b0b8a3" },
779
+ { url = "https://pypi.nvidia.com/pylibcudf-cu12/pylibcudf_cu12-24.12.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd130e347c28716912b89a1f7ff653ca6e202bfbc79f5abbedd7918bb9124f34" },
780
+ { url = "https://pypi.nvidia.com/pylibcudf-cu12/pylibcudf_cu12-24.12.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e2bb951f1a2fddf1976b84aa4e6d1280689da22014d6d1d5f48364cc1b32e2d" },
781
+ ]
782
+
783
+ [[package]]
784
+ name = "pylibcugraph-cu12"
785
+ version = "24.12.0"
786
+ source = { registry = "https://pypi.nvidia.com/" }
787
+ dependencies = [
788
+ { name = "nvidia-cublas-cu12" },
789
+ { name = "nvidia-curand-cu12" },
790
+ { name = "nvidia-cusolver-cu12" },
791
+ { name = "nvidia-cusparse-cu12" },
792
+ { name = "pylibraft-cu12" },
793
+ { name = "rmm-cu12" },
794
+ ]
795
+ wheels = [
796
+ { url = "https://pypi.nvidia.com/pylibcugraph-cu12/pylibcugraph_cu12-24.12.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:314d0c35cf2fadee224577e23c141fae4c59532c7a4a9a9ccfbcfac0bfdd75a7" },
797
+ { url = "https://pypi.nvidia.com/pylibcugraph-cu12/pylibcugraph_cu12-24.12.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:bcc370b63c3b7da535c4c33658bbd8dde8ccef1dc63a5d6454afb462b8316de4" },
798
+ { url = "https://pypi.nvidia.com/pylibcugraph-cu12/pylibcugraph_cu12-24.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fa100594d5d7f1d4d1405e1628d879bf3a39431169a6bd65619cb73f8ffe99fc" },
799
+ { url = "https://pypi.nvidia.com/pylibcugraph-cu12/pylibcugraph_cu12-24.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3ffdf0788aec9791b2483de45db0eeb2a1bafc0ae9ca8d34c8a5998a36b3120e" },
800
+ ]
801
+
802
+ [[package]]
803
+ name = "pylibraft-cu12"
804
+ version = "24.12.0"
805
+ source = { registry = "https://pypi.nvidia.com/" }
806
+ dependencies = [
807
+ { name = "cuda-python" },
808
+ { name = "numpy" },
809
+ { name = "nvidia-cublas-cu12" },
810
+ { name = "nvidia-curand-cu12" },
811
+ { name = "nvidia-cusolver-cu12" },
812
+ { name = "nvidia-cusparse-cu12" },
813
+ { name = "rmm-cu12" },
814
+ ]
815
+ wheels = [
816
+ { url = "https://pypi.nvidia.com/pylibraft-cu12/pylibraft_cu12-24.12.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:f3102f3b7886ad9583672fa2d47c3a941215e34d0ee3a8d3a32cebc2dfcc8606" },
817
+ { url = "https://pypi.nvidia.com/pylibraft-cu12/pylibraft_cu12-24.12.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:47d3915fd3cdf4022acbd0315f88b12155399ef0b0e77fcac050c459ab6b31b0" },
818
+ { url = "https://pypi.nvidia.com/pylibraft-cu12/pylibraft_cu12-24.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:af4c259b275ce36f998b5adb16fd55582f90a20c5223029e02c9a59dc7ce5331" },
819
+ { url = "https://pypi.nvidia.com/pylibraft-cu12/pylibraft_cu12-24.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:291b804ba21c34bbab17da34d6cc6ee86b9750f2714dfbd339c5906fefb7201e" },
820
  ]
821
 
822
  [[package]]
 
852
  [[package]]
853
  name = "rmm-cu12"
854
  version = "24.12.1"
855
+ source = { registry = "https://pypi.nvidia.com/" }
856
  dependencies = [
857
  { name = "cuda-python" },
858
  { name = "numba" },
859
  { name = "numpy" },
860
  ]
861
  wheels = [
862
+ { url = "https://pypi.nvidia.com/rmm-cu12/rmm_cu12-24.12.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d509d735201d1b0bc05b3e148e23a6216eabcfec67006a4e9311b6c25766023f" },
863
+ { url = "https://pypi.nvidia.com/rmm-cu12/rmm_cu12-24.12.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c1d6b166aaf9b81495ff33f2fe5a29ad12dc1ed6089daf9f387160e7734fc901" },
864
+ { url = "https://pypi.nvidia.com/rmm-cu12/rmm_cu12-24.12.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:317a6641fb37f3efa6e8eb76eeb568970a8c439e0090529520861fd139ef6f0c" },
865
+ { url = "https://pypi.nvidia.com/rmm-cu12/rmm_cu12-24.12.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9460a386e34f1921c8d06204f320d705511de899ababb45302d314da036da5a" },
866
  ]
867
 
868
  [[package]]
 
874
  { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 },
875
  ]
876
 
877
+ [[package]]
878
+ name = "sniffio"
879
+ version = "1.3.1"
880
+ source = { registry = "https://pypi.org/simple" }
881
+ sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 }
882
+ wheels = [
883
+ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
884
+ ]
885
+
886
  [[package]]
887
  name = "typing-extensions"
888
  version = "4.12.2"