From 0b1a7d721b6a63fd280e83268eb72116bb7442ea Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Mon, 13 Apr 2026 15:20:50 -0400 Subject: [PATCH 01/11] Issues 5397 - drooped batched_ego_graph --- .../cugraph/tests/sampling/test_egonet_mg.py | 47 +++++++++++++++++-- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/python/cugraph/cugraph/tests/sampling/test_egonet_mg.py b/python/cugraph/cugraph/tests/sampling/test_egonet_mg.py index 480b5f6c76f..b4be50aee95 100644 --- a/python/cugraph/cugraph/tests/sampling/test_egonet_mg.py +++ b/python/cugraph/cugraph/tests/sampling/test_egonet_mg.py @@ -5,6 +5,7 @@ import pytest +import cudf import cugraph import dask_cudf import cugraph.dask as dcg @@ -12,7 +13,8 @@ from cugraph.dask.common.mg_utils import is_single_gpu from pylibcugraph.testing import gen_fixture_params_product from cudf.testing.testing import assert_frame_equal, assert_series_equal - +from pylibcugraph import ego_graph as pylibcugraph_ego_graph +from pylibcugraph import ResourceHandle # ============================================================================= # Pytest Setup / Teardown - called for each test function @@ -70,13 +72,52 @@ def input_expected_output(input_combo): input_data_path, directed=directed, edgevals=True ) - sg_cugraph_ego_graphs = cugraph.batched_ego_graphs(G, seeds=seeds, radius=radius) + if isinstance(seeds, (int, list)): + seeds = cudf.Series(seeds) + if isinstance(seeds, cudf.Series): + if G.renumbered is True: + seeds = G.lookup_internal_vertex_id(seeds) + elif isinstance(seeds, cudf.DataFrame): + if G.renumbered is True: + seeds = G.lookup_internal_vertex_id(seeds, seeds.columns) + + + # Match the seed to the vertex dtype + n_type = G.edgelist.edgelist_df["src"].dtype + n = seeds.astype(n_type) + do_expensive_check = False + + source, destination, weight, offset = pylibcugraph_ego_graph( + resource_handle=ResourceHandle(), + graph=G._plc_graph, + source_vertices=n, + radius=radius, + do_expensive_check=do_expensive_check, + ) + + df = cudf.DataFrame() + df["src"] = source + df["dst"] = destination + if weight is not None: + df["weight"] = weight + + if G.renumbered: + df, src_names = G.unrenumber(df, "src", get_column_names=True) + df, dst_names = G.unrenumber(df, "dst", get_column_names=True) + else: + # FIXME: The original 'src' and 'dst' are not stored in 'simpleGraph' + src_names = "src" + dst_names = "dst" + + offset = cudf.Series(offset) + sg_cugraph_ego_graphs = (df, offset) # Save the results back to the input_combo dictionary to prevent redundant # cuGraph runs. Other tests using the input_combo fixture will look for # them, and if not present they will have to re-run the same cuGraph call. - input_combo["sg_cugraph_results"] = sg_cugraph_ego_graphs + + chunksize = dcg.get_chunksize(input_data_path) ddf = dask_cudf.read_csv( input_data_path, From 75ca8acba0c5759d35ab6ee5321826c56b1732e1 Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Mon, 13 Apr 2026 15:23:53 -0400 Subject: [PATCH 02/11] dropping batch betweenness --- .../test_batch_betweenness_centrality_mg.py | 83 ------------------- ...st_batch_edge_betweenness_centrality_mg.py | 74 ----------------- 2 files changed, 157 deletions(-) delete mode 100644 python/cugraph/cugraph/tests/centrality/test_batch_betweenness_centrality_mg.py delete mode 100644 python/cugraph/cugraph/tests/centrality/test_batch_edge_betweenness_centrality_mg.py diff --git a/python/cugraph/cugraph/tests/centrality/test_batch_betweenness_centrality_mg.py b/python/cugraph/cugraph/tests/centrality/test_batch_betweenness_centrality_mg.py deleted file mode 100644 index 4dc2f0c2218..00000000000 --- a/python/cugraph/cugraph/tests/centrality/test_batch_betweenness_centrality_mg.py +++ /dev/null @@ -1,83 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2021-2025, NVIDIA CORPORATION. -# SPDX-License-Identifier: Apache-2.0 - -import gc - -import pytest -import numpy as np - -from cugraph.dask.common.mg_utils import is_single_gpu -from cugraph.datasets import karate - -from test_betweenness_centrality import ( - calc_betweenness_centrality, - compare_scores, -) - -# ============================================================================= -# Parameters -# ============================================================================= -DATASETS = [karate] -DEFAULT_EPSILON = 0.0001 -IS_DIRECTED = [False, True] -ENDPOINTS = [False, True] -IS_NORMALIZED = [False, True] -RESULT_DTYPES = [np.float64] -SUBSET_SIZES = [4, None] -SUBSET_SEEDS = [42] -IS_WEIGHTED = [False, True] - - -# ============================================================================= -# Pytest Setup / Teardown - called for each test function -# ============================================================================= - - -def setup_function(): - gc.collect() - - -# ============================================================================= -# Tests -# ============================================================================= - - -@pytest.mark.mg -@pytest.mark.requires_nx(min_ver="3.5") -@pytest.mark.skipif(is_single_gpu(), reason="skipping MG testing on Single GPU system") -@pytest.mark.parametrize("dataset", DATASETS) -@pytest.mark.parametrize("directed", IS_DIRECTED) -@pytest.mark.parametrize("subset_size", SUBSET_SIZES) -@pytest.mark.parametrize("normalized", IS_NORMALIZED) -@pytest.mark.parametrize("weight", [None]) -@pytest.mark.parametrize("endpoints", ENDPOINTS) -@pytest.mark.parametrize("subset_seed", SUBSET_SEEDS) -@pytest.mark.parametrize("result_dtype", RESULT_DTYPES) -def test_mg_betweenness_centrality( - dataset, - directed, - subset_size, - normalized, - weight, - endpoints, - subset_seed, - result_dtype, - dask_client, -): - sorted_df = calc_betweenness_centrality( - dataset, - directed=directed, - normalized=normalized, - k=subset_size, - weight=weight, - endpoints=endpoints, - seed=subset_seed, - result_dtype=result_dtype, - multi_gpu_batch=True, - ) - compare_scores( - sorted_df, - first_key="cu_bc", - second_key="ref_bc", - epsilon=DEFAULT_EPSILON, - ) diff --git a/python/cugraph/cugraph/tests/centrality/test_batch_edge_betweenness_centrality_mg.py b/python/cugraph/cugraph/tests/centrality/test_batch_edge_betweenness_centrality_mg.py deleted file mode 100644 index de896c1fe1c..00000000000 --- a/python/cugraph/cugraph/tests/centrality/test_batch_edge_betweenness_centrality_mg.py +++ /dev/null @@ -1,74 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2019-2025, NVIDIA CORPORATION. -# SPDX-License-Identifier: Apache-2.0 - -import gc - -import pytest -import numpy as np - -from cugraph.dask.common.mg_utils import is_single_gpu -from cugraph.datasets import karate, netscience - -from test_edge_betweenness_centrality import ( - calc_edge_betweenness_centrality, - compare_scores, -) - -# ============================================================================= -# Parameters -# ============================================================================= -DATASETS = [karate, netscience] -IS_DIRECTED = [True, False] -IS_NORMALIZED = [True, False] -DEFAULT_EPSILON = 0.0001 -SUBSET_SIZES = [4, None] -RESULT_DTYPES = [np.float32, np.float64] - - -# ============================================================================= -# Pytest Setup / Teardown - called for each test function -# ============================================================================= - - -def setup_function(): - gc.collect() - - -# ============================================================================= -# Tests -# ============================================================================= - - -# FIXME: Fails for directed = False(bc score twice as much) and normalized = True. -@pytest.mark.mg -@pytest.mark.requires_nx(min_ver="3.5") -@pytest.mark.skipif(is_single_gpu(), reason="skipping MG testing on Single GPU system") -@pytest.mark.parametrize("dataset", DATASETS) -@pytest.mark.parametrize("directed", IS_DIRECTED) -@pytest.mark.parametrize("subset_size", SUBSET_SIZES) -@pytest.mark.parametrize("normalized", IS_NORMALIZED) -@pytest.mark.parametrize("result_dtype", RESULT_DTYPES) -def test_mg_edge_betweenness_centrality( - dataset, - directed, - subset_size, - normalized, - result_dtype, - dask_client, -): - sorted_df = calc_edge_betweenness_centrality( - dataset, - directed=directed, - normalized=normalized, - k=subset_size, - weight=None, - seed=42, - result_dtype=result_dtype, - multi_gpu_batch=True, - ) - compare_scores( - sorted_df, - first_key="cu_bc", - second_key="ref_bc", - epsilon=DEFAULT_EPSILON, - ) From 7e294ab08880c1567a6d2a62d288aee29c28b37b Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Tue, 14 Apr 2026 08:59:40 -0400 Subject: [PATCH 03/11] issue 5384 - dropped python-louvain --- .../cugraph/tests/community/test_louvain.py | 42 +++---------------- 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/python/cugraph/cugraph/tests/community/test_louvain.py b/python/cugraph/cugraph/tests/community/test_louvain.py index 41fc3fe04f1..07f7e5182c1 100644 --- a/python/cugraph/cugraph/tests/community/test_louvain.py +++ b/python/cugraph/cugraph/tests/community/test_louvain.py @@ -4,7 +4,6 @@ import gc import pytest -import networkx as nx import cugraph import cupyx @@ -13,18 +12,6 @@ from cugraph.datasets import karate_asymmetric -try: - import community -except ModuleNotFoundError: - pytest.exit( - "community module not found\n" - "The python-louvain module needs to be installed\n" - "please run `pip install python-louvain`" - ) - - -print("Networkx version : {} ".format(nx.__version__)) - # ============================================================================= # Pytest Setup / Teardown - called for each test function @@ -42,40 +29,21 @@ def cugraph_call(graph_file, edgevals=False, directed=False): return parts, mod -def networkx_call(M): - # z = {k: 1.0/M.shape[0] for k in range(M.shape[0])} - Gnx = nx.from_pandas_edgelist( - M, source="0", target="1", edge_attr="weight", create_using=nx.Graph() - ) - parts = community.best_partition(Gnx) - - return parts - +# The goal is to just test that the code runs and returns a result. +# The C/C++ test perform a check for accuracy, but the python test +# is not designed to be a 1:1 comparison with the C/C++ test. @pytest.mark.sg @pytest.mark.parametrize("graph_file", UNDIRECTED_DATASETS) def test_louvain(graph_file): dataset_path = graph_file.get_path() M = utils.read_csv_for_nx(dataset_path) cu_parts, cu_mod = cugraph_call(graph_file, edgevals=True) - nx_parts = networkx_call(M) - - # Calculating modularity scores for comparison - Gnx = nx.from_pandas_edgelist( - M, source="0", target="1", edge_attr="weight", create_using=nx.Graph() - ) - - cu_parts = cu_parts.to_pandas() - cu_map = dict(zip(cu_parts["vertex"], cu_parts["partition"])) - assert set(nx_parts.keys()) == set(cu_map.keys()) + assert len(cu_parts) > 0 + assert cu_mod > 0.0 - cu_mod_nx = community.modularity(cu_map, Gnx) - nx_mod = community.modularity(nx_parts, Gnx) - assert len(cu_parts) == len(nx_parts) - assert cu_mod > (0.82 * nx_mod) - assert abs(cu_mod - cu_mod_nx) < 0.0001 @pytest.mark.sg From b304177cfa8ab10b59c2c4dbc88afea7bda4ae35 Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Tue, 14 Apr 2026 10:02:31 -0400 Subject: [PATCH 04/11] style fix --- python/cugraph/cugraph/tests/community/test_louvain.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/python/cugraph/cugraph/tests/community/test_louvain.py b/python/cugraph/cugraph/tests/community/test_louvain.py index 07f7e5182c1..1db9046dfb1 100644 --- a/python/cugraph/cugraph/tests/community/test_louvain.py +++ b/python/cugraph/cugraph/tests/community/test_louvain.py @@ -37,15 +37,12 @@ def cugraph_call(graph_file, edgevals=False, directed=False): @pytest.mark.parametrize("graph_file", UNDIRECTED_DATASETS) def test_louvain(graph_file): dataset_path = graph_file.get_path() - M = utils.read_csv_for_nx(dataset_path) cu_parts, cu_mod = cugraph_call(graph_file, edgevals=True) assert len(cu_parts) > 0 assert cu_mod > 0.0 - - @pytest.mark.sg def test_louvain_directed_graph(): with pytest.raises(ValueError): From fc3b78aa9b1958668281d24a7ff50aa71c5d28e3 Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Tue, 14 Apr 2026 10:07:49 -0400 Subject: [PATCH 05/11] style --- .../cugraph/pytest-based/bench_algos.py | 30 ++++++++++++++----- .../cugraph/tests/community/test_louvain.py | 2 +- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/benchmarks/cugraph/pytest-based/bench_algos.py b/benchmarks/cugraph/pytest-based/bench_algos.py index 457906eed12..8d129b6e279 100644 --- a/benchmarks/cugraph/pytest-based/bench_algos.py +++ b/benchmarks/cugraph/pytest-based/bench_algos.py @@ -4,6 +4,8 @@ import pytest import numpy as np +import gc + import rmm import dask_cudf from pylibcugraph.testing import gen_fixture_params_product @@ -197,32 +199,46 @@ def dataset(request, rmm_config): @pytest.fixture(scope="module") def edgelist(request, dataset): df = dataset.get_edgelist() - return df + yield df + del df + gc.collect() @pytest.fixture(scope="module") def graph(request, dataset): G = dataset.get_graph() - return G + yield G + del G + gc.collect() @pytest.fixture(scope="module") def unweighted_graph(request, dataset): G = dataset.get_graph(ignore_weights=True) - return G + yield G + del G + gc.collect() +@pytest.fixture(scope="module") +def unweighted_graph(request, dataset): + G = dataset.get_graph(ignore_weights=True) + yield G + del G + gc.collect() @pytest.fixture(scope="module") def directed_graph(request, dataset): G = dataset.get_graph(create_using=cugraph.Graph(directed=True)) - return G - + yield G + del G + gc.collect() @pytest.fixture(scope="module") def transposed_graph(request, dataset): G = dataset.get_graph(store_transposed=True) - return G - + yield G + del G + gc.collect() ############################################################################### def is_graph_distributed(graph): diff --git a/python/cugraph/cugraph/tests/community/test_louvain.py b/python/cugraph/cugraph/tests/community/test_louvain.py index 1db9046dfb1..604fd2ac600 100644 --- a/python/cugraph/cugraph/tests/community/test_louvain.py +++ b/python/cugraph/cugraph/tests/community/test_louvain.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2019-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2019-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 import gc From a6e725d1f7e6f8f698bf52a3ea9d23111f9255d1 Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Tue, 14 Apr 2026 10:18:33 -0400 Subject: [PATCH 06/11] pre-commit fixes --- .../cugraph/cugraph/tests/community/test_louvain.py | 8 +++----- .../cugraph/cugraph/tests/sampling/test_egonet_mg.py | 12 +++--------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/python/cugraph/cugraph/tests/community/test_louvain.py b/python/cugraph/cugraph/tests/community/test_louvain.py index 604fd2ac600..7c75d6ecb88 100644 --- a/python/cugraph/cugraph/tests/community/test_louvain.py +++ b/python/cugraph/cugraph/tests/community/test_louvain.py @@ -8,11 +8,10 @@ import cugraph import cupyx import cudf -from cugraph.testing import utils, UNDIRECTED_DATASETS +from cugraph.testing import UNDIRECTED_DATASETS from cugraph.datasets import karate_asymmetric - # ============================================================================= # Pytest Setup / Teardown - called for each test function # ============================================================================= @@ -29,9 +28,8 @@ def cugraph_call(graph_file, edgevals=False, directed=False): return parts, mod - -# The goal is to just test that the code runs and returns a result. -# The C/C++ test perform a check for accuracy, but the python test +# The goal is to just test that the code runs and returns a result. +# The C/C++ test perform a check for accuracy, but the python test # is not designed to be a 1:1 comparison with the C/C++ test. @pytest.mark.sg @pytest.mark.parametrize("graph_file", UNDIRECTED_DATASETS) diff --git a/python/cugraph/cugraph/tests/sampling/test_egonet_mg.py b/python/cugraph/cugraph/tests/sampling/test_egonet_mg.py index b4be50aee95..a3c419bbd1f 100644 --- a/python/cugraph/cugraph/tests/sampling/test_egonet_mg.py +++ b/python/cugraph/cugraph/tests/sampling/test_egonet_mg.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 import gc @@ -81,7 +81,6 @@ def input_expected_output(input_combo): if G.renumbered is True: seeds = G.lookup_internal_vertex_id(seeds, seeds.columns) - # Match the seed to the vertex dtype n_type = G.edgelist.edgelist_df["src"].dtype n = seeds.astype(n_type) @@ -102,12 +101,8 @@ def input_expected_output(input_combo): df["weight"] = weight if G.renumbered: - df, src_names = G.unrenumber(df, "src", get_column_names=True) - df, dst_names = G.unrenumber(df, "dst", get_column_names=True) - else: - # FIXME: The original 'src' and 'dst' are not stored in 'simpleGraph' - src_names = "src" - dst_names = "dst" + df, _ = G.unrenumber(df, "src", get_column_names=True) + df, _ = G.unrenumber(df, "dst", get_column_names=True) offset = cudf.Series(offset) sg_cugraph_ego_graphs = (df, offset) @@ -117,7 +112,6 @@ def input_expected_output(input_combo): # them, and if not present they will have to re-run the same cuGraph call. input_combo["sg_cugraph_results"] = sg_cugraph_ego_graphs - chunksize = dcg.get_chunksize(input_data_path) ddf = dask_cudf.read_csv( input_data_path, From 2ac3ecee370840b794514d8a66faf3aefbea904f Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Tue, 14 Apr 2026 10:25:27 -0400 Subject: [PATCH 07/11] fixes --- benchmarks/cugraph/pytest-based/bench_algos.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/benchmarks/cugraph/pytest-based/bench_algos.py b/benchmarks/cugraph/pytest-based/bench_algos.py index 8d129b6e279..59466da4ffa 100644 --- a/benchmarks/cugraph/pytest-based/bench_algos.py +++ b/benchmarks/cugraph/pytest-based/bench_algos.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2020-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2020-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 import pytest @@ -219,6 +219,7 @@ def unweighted_graph(request, dataset): del G gc.collect() + @pytest.fixture(scope="module") def unweighted_graph(request, dataset): G = dataset.get_graph(ignore_weights=True) @@ -226,6 +227,7 @@ def unweighted_graph(request, dataset): del G gc.collect() + @pytest.fixture(scope="module") def directed_graph(request, dataset): G = dataset.get_graph(create_using=cugraph.Graph(directed=True)) @@ -233,6 +235,7 @@ def directed_graph(request, dataset): del G gc.collect() + @pytest.fixture(scope="module") def transposed_graph(request, dataset): G = dataset.get_graph(store_transposed=True) @@ -240,6 +243,7 @@ def transposed_graph(request, dataset): del G gc.collect() + ############################################################################### def is_graph_distributed(graph): """ From c2c4c23efddc3c233113f5e29a8e780fa64a23a5 Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Tue, 14 Apr 2026 10:34:09 -0400 Subject: [PATCH 08/11] typos --- benchmarks/cugraph/pytest-based/bench_algos.py | 8 -------- python/cugraph/cugraph/tests/community/test_louvain.py | 1 - 2 files changed, 9 deletions(-) diff --git a/benchmarks/cugraph/pytest-based/bench_algos.py b/benchmarks/cugraph/pytest-based/bench_algos.py index 59466da4ffa..b9a43e6ed28 100644 --- a/benchmarks/cugraph/pytest-based/bench_algos.py +++ b/benchmarks/cugraph/pytest-based/bench_algos.py @@ -220,14 +220,6 @@ def unweighted_graph(request, dataset): gc.collect() -@pytest.fixture(scope="module") -def unweighted_graph(request, dataset): - G = dataset.get_graph(ignore_weights=True) - yield G - del G - gc.collect() - - @pytest.fixture(scope="module") def directed_graph(request, dataset): G = dataset.get_graph(create_using=cugraph.Graph(directed=True)) diff --git a/python/cugraph/cugraph/tests/community/test_louvain.py b/python/cugraph/cugraph/tests/community/test_louvain.py index 7c75d6ecb88..f12ae837caa 100644 --- a/python/cugraph/cugraph/tests/community/test_louvain.py +++ b/python/cugraph/cugraph/tests/community/test_louvain.py @@ -34,7 +34,6 @@ def cugraph_call(graph_file, edgevals=False, directed=False): @pytest.mark.sg @pytest.mark.parametrize("graph_file", UNDIRECTED_DATASETS) def test_louvain(graph_file): - dataset_path = graph_file.get_path() cu_parts, cu_mod = cugraph_call(graph_file, edgevals=True) assert len(cu_parts) > 0 From ccc9e321e92ed703c86350eb9eb7bd02ae2f7c0c Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Tue, 21 Apr 2026 10:36:54 -0400 Subject: [PATCH 09/11] dropped using python-louvain --- dependencies.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/dependencies.yaml b/dependencies.yaml index c19d4dba879..fd57a65f6dc 100755 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -494,7 +494,6 @@ dependencies: - networkx>=2.5.1 - *numpy - packaging - - python-louvain - scikit-learn>=0.23.1 test_python_pylibcugraph: common: From ab62991fcfe79946027a3ae73ee6afa7fd17ea0e Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Tue, 21 Apr 2026 10:37:02 -0400 Subject: [PATCH 10/11] cleanup --- benchmarks/cugraph/pytest-based/bench_algos.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/benchmarks/cugraph/pytest-based/bench_algos.py b/benchmarks/cugraph/pytest-based/bench_algos.py index b9a43e6ed28..ae5f2e225b3 100644 --- a/benchmarks/cugraph/pytest-based/bench_algos.py +++ b/benchmarks/cugraph/pytest-based/bench_algos.py @@ -4,8 +4,6 @@ import pytest import numpy as np -import gc - import rmm import dask_cudf from pylibcugraph.testing import gen_fixture_params_product @@ -200,40 +198,30 @@ def dataset(request, rmm_config): def edgelist(request, dataset): df = dataset.get_edgelist() yield df - del df - gc.collect() @pytest.fixture(scope="module") def graph(request, dataset): G = dataset.get_graph() yield G - del G - gc.collect() @pytest.fixture(scope="module") def unweighted_graph(request, dataset): G = dataset.get_graph(ignore_weights=True) yield G - del G - gc.collect() @pytest.fixture(scope="module") def directed_graph(request, dataset): G = dataset.get_graph(create_using=cugraph.Graph(directed=True)) yield G - del G - gc.collect() @pytest.fixture(scope="module") def transposed_graph(request, dataset): G = dataset.get_graph(store_transposed=True) yield G - del G - gc.collect() ############################################################################### From b582ca67d341b4ed5e0fed53381a8c070db45bae Mon Sep 17 00:00:00 2001 From: BradReesWork Date: Mon, 27 Apr 2026 12:47:45 -0400 Subject: [PATCH 11/11] regenerated after dependency update --- conda/environments/all_cuda-129_arch-aarch64.yaml | 1 - conda/environments/all_cuda-129_arch-x86_64.yaml | 1 - conda/environments/all_cuda-131_arch-aarch64.yaml | 1 - conda/environments/all_cuda-131_arch-x86_64.yaml | 1 - python/cugraph/pyproject.toml | 1 - 5 files changed, 5 deletions(-) diff --git a/conda/environments/all_cuda-129_arch-aarch64.yaml b/conda/environments/all_cuda-129_arch-aarch64.yaml index 02b6ba3c826..71632215415 100644 --- a/conda/environments/all_cuda-129_arch-aarch64.yaml +++ b/conda/environments/all_cuda-129_arch-aarch64.yaml @@ -55,7 +55,6 @@ dependencies: - pytest-benchmark - pytest-cov - pytest-xdist -- python-louvain - pytorch>=2.4.1 - raft-dask==26.6.*,>=0.0.0a0 - rapids-build-backend>=0.4.0,<0.5.0 diff --git a/conda/environments/all_cuda-129_arch-x86_64.yaml b/conda/environments/all_cuda-129_arch-x86_64.yaml index 8259a6b0922..9a6a15d5f26 100644 --- a/conda/environments/all_cuda-129_arch-x86_64.yaml +++ b/conda/environments/all_cuda-129_arch-x86_64.yaml @@ -55,7 +55,6 @@ dependencies: - pytest-benchmark - pytest-cov - pytest-xdist -- python-louvain - pytorch>=2.4.1 - raft-dask==26.6.*,>=0.0.0a0 - rapids-build-backend>=0.4.0,<0.5.0 diff --git a/conda/environments/all_cuda-131_arch-aarch64.yaml b/conda/environments/all_cuda-131_arch-aarch64.yaml index 8fdc36ae59e..b6eb6265579 100644 --- a/conda/environments/all_cuda-131_arch-aarch64.yaml +++ b/conda/environments/all_cuda-131_arch-aarch64.yaml @@ -55,7 +55,6 @@ dependencies: - pytest-benchmark - pytest-cov - pytest-xdist -- python-louvain - pytorch>=2.4.1 - raft-dask==26.6.*,>=0.0.0a0 - rapids-build-backend>=0.4.0,<0.5.0 diff --git a/conda/environments/all_cuda-131_arch-x86_64.yaml b/conda/environments/all_cuda-131_arch-x86_64.yaml index e453bf42040..3c32269e95f 100644 --- a/conda/environments/all_cuda-131_arch-x86_64.yaml +++ b/conda/environments/all_cuda-131_arch-x86_64.yaml @@ -55,7 +55,6 @@ dependencies: - pytest-benchmark - pytest-cov - pytest-xdist -- python-louvain - pytorch>=2.4.1 - raft-dask==26.6.*,>=0.0.0a0 - rapids-build-backend>=0.4.0,<0.5.0 diff --git a/python/cugraph/pyproject.toml b/python/cugraph/pyproject.toml index f6515477779..9fb4fa26e1d 100644 --- a/python/cugraph/pyproject.toml +++ b/python/cugraph/pyproject.toml @@ -59,7 +59,6 @@ test = [ "pytest-benchmark", "pytest-cov", "pytest-xdist", - "python-louvain", "scikit-learn>=0.23.1", "scipy", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.