Skip to content

Commit 86c33f2

Browse files
committed
Merge branch 'master' into feat_cluster_selection_epsilon_max
2 parents 7a7fba6 + 356722f commit 86c33f2

File tree

3 files changed

+46
-11
lines changed

3 files changed

+46
-11
lines changed

azure-pipelines.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,6 @@ stages:
112112
container: quay.io/pypa/manylinux2014_x86_64:latest
113113
strategy:
114114
matrix:
115-
linux_py37:
116-
python.version: 'cp37-cp37m'
117115
linux_py38:
118116
python.version: 'cp38-cp38'
119117
linux_py39:
@@ -122,6 +120,8 @@ stages:
122120
python.version: 'cp310-cp310'
123121
linux_py311:
124122
python.version: 'cp311-cp311'
123+
linux_py312:
124+
python.version: 'cp312-cp312'
125125
steps:
126126
- script: |
127127
"${PYBIN}/python" -m pip install --upgrade pip
@@ -157,13 +157,7 @@ stages:
157157
- job: BuildWindowsAndMacOSArtifacts
158158
displayName: Build source dists and wheels for windows and macOS
159159
strategy:
160-
matrix:
161-
mac_py37:
162-
imageName: 'macOS-latest'
163-
python.version: '3.7'
164-
windows_py37:
165-
imageName: 'windows-latest'
166-
python.version: '3.7'
160+
matrix:
167161
mac_py38:
168162
imageName: 'macOS-latest'
169163
python.version: '3.8'
@@ -188,6 +182,12 @@ stages:
188182
windows_py311:
189183
imageName: 'windows-latest'
190184
python.version: '3.11'
185+
mac_py312:
186+
imageName: 'macOS-latest'
187+
python.version: '3.12'
188+
windows_py312:
189+
imageName: 'windows-latest'
190+
python.version: '3.12'
191191
pool:
192192
vmImage: $(imageName)
193193

@@ -202,6 +202,7 @@ stages:
202202
pip install wheel
203203
pip install -r requirements.txt
204204
pip install cython
205+
pip install setuptools
205206
displayName: 'Install dependencies'
206207
207208
- script: |

hdbscan/hdbscan_.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1464,13 +1464,21 @@ def prediction_data_(self):
14641464
raise AttributeError("No prediction data was generated")
14651465
else:
14661466
return self._prediction_data
1467+
1468+
@prediction_data_.setter
1469+
def prediction_data_(self, value):
1470+
self._prediction_data = value
14671471

14681472
@property
14691473
def branch_detection_data_(self):
14701474
if self._branch_detection_data is None:
14711475
raise AttributeError("No branch detection data was generated")
14721476
else:
14731477
return self._branch_detection_data
1478+
1479+
@branch_detection_data_.setter
1480+
def branch_detection_data_(self, value):
1481+
self._branch_detection_data = value
14741482

14751483
@property
14761484
def outlier_scores_(self):
@@ -1484,6 +1492,10 @@ def outlier_scores_(self):
14841492
raise AttributeError(
14851493
"No condensed tree was generated; try running fit first."
14861494
)
1495+
1496+
@outlier_scores_.setter
1497+
def outlier_scores_(self, value):
1498+
self._outlier_scores = value
14871499

14881500
@property
14891501
def condensed_tree_(self):
@@ -1497,6 +1509,10 @@ def condensed_tree_(self):
14971509
raise AttributeError(
14981510
"No condensed tree was generated; try running fit first."
14991511
)
1512+
1513+
@condensed_tree_.setter
1514+
def condensed_tree_(self, value):
1515+
self._condensed_tree = value
15001516

15011517
@property
15021518
def single_linkage_tree_(self):
@@ -1506,6 +1522,10 @@ def single_linkage_tree_(self):
15061522
raise AttributeError(
15071523
"No single linkage tree was generated; try running fit" " first."
15081524
)
1525+
1526+
@single_linkage_tree_.setter
1527+
def single_linkage_tree_(self, value):
1528+
self._single_linkage_tree = value
15091529

15101530
@property
15111531
def minimum_spanning_tree_(self):
@@ -1525,6 +1545,10 @@ def minimum_spanning_tree_(self):
15251545
"This may be due to optimized algorithm variations that skip"
15261546
" explicit generation of the spanning tree."
15271547
)
1548+
1549+
@minimum_spanning_tree_.setter
1550+
def minimum_spanning_tree_(self, value):
1551+
self._min_spanning_tree = value
15281552

15291553
@property
15301554
def exemplars_(self):
@@ -1540,6 +1564,10 @@ def exemplars_(self):
15401564
"future, but for now no exemplars can be provided"
15411565
)
15421566

1567+
@exemplars_.setter
1568+
def exemplars_(self, value):
1569+
self._exemplars = value
1570+
15431571
@property
15441572
def relative_validity_(self):
15451573
if self._relative_validity is not None:
@@ -1625,3 +1653,7 @@ def relative_validity_(self):
16251653
)
16261654
self._relative_validity = score
16271655
return self._relative_validity
1656+
1657+
@relative_validity_.setter
1658+
def relative_validity_(self, value):
1659+
self._relative_validity = value

setup.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import warnings
22

33
try:
4-
from Cython.Distutils import build_ext
4+
# from Cython.Distutils import build_ext
5+
from Cython.Build import cythonize
56
from setuptools import setup, Extension
7+
from setuptools.command.build_ext import build_ext
68
HAVE_CYTHON = True
79
except ImportError as e:
810
warnings.warn(e.args[0])
@@ -51,7 +53,7 @@ def requirements():
5153

5254
configuration = {
5355
'name': 'hdbscan',
54-
'version': '0.8.38-1',
56+
'version': '0.8.39',
5557
'description': 'Clustering based on density with variable density clusters',
5658
'long_description': readme(),
5759
'classifiers': [

0 commit comments

Comments
 (0)