diff mbox series

[bug#57099] Add python-hdbscan

Message ID 20220810051851.329112-1-me@kiranshila.com
State New
Headers show
Series [bug#57099] Add python-hdbscan | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Kiran Shila Aug. 10, 2022, 5:18 a.m. UTC
---
 gnu/packages/python-science.scm | 41 +++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

Comments

Sharlatan Hellseher Jan. 29, 2024, 11:02 p.m. UTC | #1
Modifications applied:
  - simplify package by using pyproject-build-system
  - add 'build-extensions to pass 'check phase
  - update to the lates upstream version 0.8.33
  - python-cython moved to native-inputs
  - fix all lint wrnings
  - use HTTPS for home-page

Pushed as cdadef64093fc12fd335a2b7b54d4b05c829107e to master.

Thanks,
Oleg
diff mbox series

Patch

diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 95f60aae7b..758079c8b6 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -20,6 +20,7 @@ 
 ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2022 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;; Copyright © 2022 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2022 Kiran Shila <me@kiranshila.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1478,3 +1479,43 @@  (define-public python-opt-einsum
 well as potentially any library which conforms to a standard API. See the
 documentation for more information.")
     (license license:expat)))
+
+(define-public python-hdbscan
+  (package
+    (name "python-hdbscan")
+    (version "0.8.28")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "hdbscan" version))
+              (sha256
+               (base32
+                "0nn0xm9ji74pkil1lbkrskmyak25jx4av8cdqg2dzgiv5wgzgnpf"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:modules ((ice-9 ftw)
+                  (srfi srfi-1)
+                  (guix build utils)
+                  (guix build python-build-system))
+       #:phases (modify-phases
+                    %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (let ((outdir (string-append
+                                       (getcwd) "/build/"
+                                       (car (filter (lambda (s) (string-contains s "lib"))
+                                                    (scandir "build"))))))
+                          (invoke "pytest" "-vv" outdir))))))))
+    (propagated-inputs (list python-cython python-joblib python-numpy
+                             python-scikit-learn python-scipy))
+    (native-inputs (list python-nose python-pytest python-pandas python-networkx))
+    (home-page "http://github.com/scikit-learn-contrib/hdbscan")
+    (synopsis "Clustering based on density with variable density clusters")
+    (description "HDBSCAN - Hierarchical Density-Based Spatial Clustering of
+Applications with Noise. Performs DBSCAN over varying epsilon values and
+integrates the result to find a clustering that gives the best stability over
+epsilon. This allows HDBSCAN to find clusters of varying densities (unlike
+DBSCAN), and be more robust to parameter selection. HDBSCAN is ideal for
+exploratory data analysis; it's a fast and robust algorithm that you can trust
+to return meaningful clusters (if there are any).")
+    (license license:bsd-3)))