Skip to content

Commit 4d97c46

Browse files
authored
Merge pull request #11 from lias-laboratory/quentin-patch-buffers
Quentin patch buffers
2 parents 1496eeb + dbaf47d commit 4d97c46

File tree

14 files changed

+23
-9
lines changed

14 files changed

+23
-9
lines changed

pyproject.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,14 @@ doc = [
7979
]
8080

8181
[tool.setuptools]
82-
packages = ["radius_clustering"]
82+
packages.find = {where = ["src"], include = ["radius_clustering", "radius_clustering.*"]}
83+
84+
[tool.pytest.ini_options]
85+
pythonpath = "src"
86+
testpaths = ["tests"]
87+
addopts = [
88+
"--import-mode=importlib",
89+
]
8390

8491
[tool.ruff]
8592
# Exclude a variety of commonly ignored directories.

setup.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,18 @@
2121
extensions = [
2222
Extension(
2323
"radius_clustering.utils._emos",
24-
["radius_clustering/utils/emos.pyx", "radius_clustering/utils/main-emos.c"],
25-
include_dirs=[np.get_include(), "radius_clustering/utils"],
24+
["src/radius_clustering/utils/emos.pyx", "src/radius_clustering/utils/main-emos.c"],
25+
include_dirs=[np.get_include(), "src/radius_clustering/utils"],
2626
extra_compile_args=C_COMPILE_ARGS,
2727
),
2828
Extension(
2929
"radius_clustering.utils._mds_approx",
3030
[
31-
"radius_clustering/utils/mds.pyx",
32-
"radius_clustering/utils/mds_core.cpp",
33-
"radius_clustering/utils/random_manager.cpp",
31+
"src/radius_clustering/utils/mds.pyx",
32+
"src/radius_clustering/utils/mds_core.cpp",
33+
"src/radius_clustering/utils/random_manager.cpp",
3434
],
35-
include_dirs=[np.get_include(), "radius_clustering/utils"],
35+
include_dirs=[np.get_include(), "src/radius_clustering/utils"],
3636
language="c++",
3737
extra_compile_args=CXX_COMPILE_ARGS,
3838
extra_link_args=CXX_LINK_ARGS,
File renamed without changes.

radius_clustering/radius_clustering.py renamed to src/radius_clustering/radius_clustering.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ def __init__(self, manner="approx", threshold=0.5):
5151
self.threshold = threshold
5252

5353
def _check_symmetric(self, a, tol=1e-8):
54+
if a.ndim != 2:
55+
raise ValueError("Input must be a 2D array.")
56+
if a.shape[0] != a.shape[1]:
57+
return False
5458
return np.allclose(a, a.T, atol=tol)
5559

5660
def fit(self, X, y=None):
@@ -172,7 +176,7 @@ def _clustering_approx(self, n):
172176
This function uses the approximation method to solve the MDS problem.
173177
See [casado]_ for more details.
174178
"""
175-
result = solve_mds(n, self.edges.flatten(), self.nb_edges, "test")
179+
result = solve_mds(n, self.edges.flatten().astype(np.int32), self.nb_edges, "test")
176180
self.centers_ = [x for x in result["solution_set"]]
177181
self._mds_exec_time = result["Time"]
178182

radius_clustering/utils/mds.pyx renamed to src/radius_clustering/utils/mds.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ cdef extern from "mds_core.cpp":
3939

4040
cdef Result iterated_greedy_wrapper(int numNodes, const vector[int]& edges_list, int nb_edges, string name) nogil
4141

42-
def solve_mds(int num_nodes, np.ndarray[int, ndim=1, mode="c"] edges not None, int nb_edges, str name):
42+
def solve_mds(int num_nodes, np.ndarray[np.uint32_t, ndim=1, mode="c"] edges not None, int nb_edges, str name):
4343
"""
4444
Solve the Minimum Dominating Set problem for a given graph.
4545

0 commit comments

Comments
 (0)