From 5b359e4ba58daee0e08857cfe3a2296a2ac6fca6 Mon Sep 17 00:00:00 2001 From: Alexandre Hannud Abdo Date: Fri, 14 May 2021 22:47:30 +0200 Subject: [PATCH] gnu: Add python-graph-tool. * gnu/packages/graph.scm (python-graph-tool): New variable. Signed-off-by: Marius Bakke --- gnu/packages/graph.scm | 61 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 95506c69a9..552a8a7848 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2020 Alexander Krotov ;;; Copyright © 2020 Pierre Langlois ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 Alexandre Hannud Abdo ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,13 +39,18 @@ (define-module (gnu packages graph) #:use-module (gnu packages autotools) #:use-module (gnu packages bioconductor) #:use-module (gnu packages bioinformatics) + #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cran) + #:use-module (gnu packages datastructures) #:use-module (gnu packages gd) + #:use-module (gnu packages graphics) #:use-module (gnu packages graphviz) + #:use-module (gnu packages gtk) #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-science) @@ -532,3 +538,58 @@ (define-public mscgen text language that is clear to create, edit and understand, which can also be transformed into common image formats for display or printing.") (license license:gpl2+))) + +(define-public python-graph-tool + (package + (name "python-graph-tool") + (version "2.37") + (source (origin + (method url-fetch) + (uri (string-append + "https://downloads.skewed.de/graph-tool/graph-tool-" + version ".tar.bz2")) + (sha256 + (base32 + "0w2i4d4zyk051zkykcg0ksngspajznwmp523hbsx50xnxc6jliyz")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-boost=" + (assoc-ref %build-inputs "boost")) + (string-append "--with-python-module-path=" + (assoc-ref %outputs "out") + "/lib/python" + ,(version-major+minor + (package-version + (car (assoc-ref + (package-inputs this-package) + "python")))) + "/site-packages/")))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gcc-10" ,gcc-10) + ("ncurses" ,ncurses))) + (inputs + `(("python" ,python-wrapper) + ("boost" ,boost) + ("expat" ,expat) + ("gmp" ,gmp) + ("cgal" ,cgal) + ("sparsehash" ,sparsehash) + ("gtk+" ,gtk+) + ("cairomm" ,cairomm))) + (propagated-inputs + `(("python-scipy" ,python-scipy) + ("python-numpy" ,python-numpy) + ("python-pycairo" ,python-pycairo) + ("python-matplotlib" ,python-matplotlib))) + (synopsis "Manipulate and analyze graphs with Python efficiently") + (description "Graph-tool is an efficient Python module for manipulation +and statistical analysis of graphs (a.k.a. networks). Contrary to most other +Python modules with similar functionality, the core data structures and +algorithms are implemented in C++, making extensive use of template +metaprogramming, based heavily on the Boost Graph Library. This confers it a +level of performance that is comparable (both in memory usage and computation +time) to that of a pure C/C++ library.") + (home-page "https://graph-tool.skewed.de/") + (license license:lgpl3+)))