summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/graph.scm31
1 files changed, 31 insertions, 0 deletions
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 738ba6c455..36d0467175 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -415,3 +415,34 @@ CPUFLAGS = ~{~a ~}~%"
(description "Faiss is a library for efficient similarity search and
clustering of dense vectors. This package provides Python bindings to the
Faiss library.")))
+
+(define-public python-leidenalg
+ (package
+ (name "python-leidenalg")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "leidenalg" version))
+ (sha256
+ (base32
+ "15fwld9hdw357rd026mzcwpah5liy4f33vc9x9kwy37g71b2rjf1"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ; tests are not included
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("igraph" ,igraph)))
+ (propagated-inputs
+ `(("python-igraph" ,python-igraph)))
+ (home-page "https://github.com/vtraag/leidenalg")
+ (synopsis "Community detection in large networks")
+ (description
+ "Leiden is a general algorithm for methods of community detection in
+large networks. This package implements the Leiden algorithm in C++ and
+exposes it to Python. Besides the relative flexibility of the implementation,
+it also scales well, and can be run on graphs of millions of nodes (as long as
+they can fit in memory). The core function is @code{find_partition} which
+finds the optimal partition using the Leiden algorithm, which is an extension
+of the Louvain algorithm, for a number of different methods.")
+ (license license:gpl3+)))