diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index a40b580417..26b9d03a73 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018, 2019, 2020, 2022, 2023 Ricardo Wurmus +;;; Copyright © 2017-2024 Ricardo Wurmus ;;; Copyright © 2018 Joshua Sierles, Nextjournal ;;; Copyright © 2018, 2020, 2022 Tobias Geerinckx-Rice ;;; Copyright © 2019, 2021, 2022 Efraim Flashner @@ -426,6 +426,48 @@ (define-public python-vtraag-louvain large networks.") (license license:gpl3+))) +(define-public python-louvain-igraph + (package + (name "python-louvain-igraph") + (version "0.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vtraag/louvain-igraph") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1j2ybihvvzggwjb9zvm829aqb5b94q10h8bw6v0h42xd9w75z9sv")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'find-igraph + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) + (substitute* "setup.py" + (("/usr/include/igraph") + (string-append #$(this-package-input "igraph") + "/include/igraph")))))))) + (propagated-inputs (list python-igraph)) + (inputs (list igraph)) + (native-inputs + (list python-ddt + python-setuptools-scm + pkg-config)) + (home-page "https://github.com/vtraag/louvain-igraph") + (synopsis "Implementation of the Louvain algorithm") + (description "This package implements the Louvain algorithm for community +detection 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 louvain +algorithm for a number of different methods.") + (license license:gpl3+))) + (define-public faiss (package (name "faiss") @@ -449,8 +491,8 @@ (define-public faiss (build-system cmake-build-system) (arguments `(#:configure-flags - (list "-DBUILD_WITH_GPU=OFF" ; thanks, but no thanks, CUDA. - "-DBUILD_TUTORIAL=OFF") ; we don't need those + (list "-DBUILD_WITH_GPU=OFF" ; thanks, but no thanks, CUDA. + "-DBUILD_TUTORIAL=OFF") ; we don't need those #:phases (modify-phases %standard-phases (add-after 'unpack 'prepare-build @@ -466,7 +508,7 @@ (define-public faiss '())))))) (substitute* "CMakeLists.txt" (("-m64") "") - (("-mpopcnt") "") ; only some architectures + (("-mpopcnt") "") ; only some architectures (("-msse4") (string-append (string-join features)