GNU bug report logs - #47966
[PATCH] gnu: Add python-graph-tool.

Previous Next

Package: guix-patches;

Reported by: Alexandre Hannud Abdo <abdo <at> member.fsf.org>

Date: Fri, 23 Apr 2021 06:19:02 UTC

Severity: normal

Tags: patch

Done: Marius Bakke <marius <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 47966 in the body.
You can then email your comments to 47966 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#47966; Package guix-patches. (Fri, 23 Apr 2021 06:19:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Alexandre Hannud Abdo <abdo <at> member.fsf.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Fri, 23 Apr 2021 06:19:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Alexandre Hannud Abdo <abdo <at> member.fsf.org>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add python-graph-tool.
Date: Fri, 23 Apr 2021 08:17:52 +0200
* gnu/packages/graph.scm (python-graph-tool): New variable.
---
 gnu/packages/graph.scm | 62 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index d2e4c875a1..94125ebdba 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2019 Andreas Enge <andreas <at> enge.fr>
 ;;; Copyright © 2020 Alexander Krotov <krotov <at> iitp.ru>
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlos <at> gmx.com>
+;;; Copyright © 2021 Alexandre Hannud Abdo <abdo <at> member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,13 +38,18 @@
   #: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)
@@ -510,3 +516,59 @@ MSCs need not be complicated to create or use.  Mscgen aims to provide a simple
 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 '("--disable-openmp")))
+    (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"
+                            ((lambda (version)
+                               (substring version 0 (string-rindex version #\.)))
+                             ,(package-version
+                               (car (assoc-ref
+                                     (package-propagated-inputs this-package)
+                                     "python"))))
+                            "/site-packages/"))))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("gcc-10" ,gcc-10)
+                     ("ncurses" ,ncurses)))
+    (inputs `(("boost" ,boost)
+              ("expat" ,expat)
+              ("gmp" ,gmp)
+              ("cgal" ,cgal)
+              ("sparsehash" ,sparsehash)
+              ("gtk+" ,gtk+)
+              ("cairomm" ,cairomm)))
+    (propagated-inputs `(("python" ,python-wrapper)
+                         ("python-scipy" ,python-scipy)
+                         ("python-numpy" ,python-numpy)
+                         ("python-pycairo" ,python-pycairo)
+                         ("python-matplotlib" ,python-matplotlib)))
+    (synopsis "Efficient python module for analysis of graphs")
+    (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+)))





Information forwarded to guix-patches <at> gnu.org:
bug#47966; Package guix-patches. (Thu, 13 May 2021 17:05:01 GMT) Full text and rfc822 format available.

Message #8 received at 47966 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <marius <at> gnu.org>
To: Alexandre Hannud Abdo <abdo <at> member.fsf.org>, 47966 <at> debbugs.gnu.org
Subject: Re: [bug#47966] [PATCH] gnu: Add python-graph-tool.
Date: Thu, 13 May 2021 19:04:25 +0200
[Message part 1 (text/plain, inline)]
Hi Alexandre,

Alexandre Hannud Abdo <abdo <at> member.fsf.org> skriver:

> * gnu/packages/graph.scm (python-graph-tool): New variable.

Thanks for the patch.

[...]

> +(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 '("--disable-openmp")))

This comment can probably be removed?

> +    (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"
> +                            ((lambda (version)
> +                               (substring version 0 (string-rindex version #\.)))
> +                             ,(package-version
> +                               (car (assoc-ref
> +                                     (package-propagated-inputs this-package)
> +                                     "python"))))
> +                            "/site-packages/"))))

That's clever.  :-)

(guix utils) has a handy (version-major+minor ...) procedure that can be
accessed in the unquoted context.  Thus the expression above can be
simplified to:

  (string-append "--with-python-module-path="
                 (assoc-ref %outputs "out")
                 "/lib/python"
                 ,(version-major+minor
                   (package-version
                    (car (assoc-ref
                          (package-propagated-inputs this-package)
                          "python"))))
                 "/site-packages/")


> +    (native-inputs `(("pkg-config" ,pkg-config)
> +                     ("gcc-10" ,gcc-10)
> +                     ("ncurses" ,ncurses)))

The indentation here and below is unusual.  :-)

> +    (inputs `(("boost" ,boost)
> +              ("expat" ,expat)
> +              ("gmp" ,gmp)
> +              ("cgal" ,cgal)
> +              ("sparsehash" ,sparsehash)
> +              ("gtk+" ,gtk+)
> +              ("cairomm" ,cairomm)))
> +    (propagated-inputs `(("python" ,python-wrapper)

Python should be a regular input.  It will be available in just about
any context where this package is used, and propagating it can cause
conflicts if users have custom variants in their
profile/manifests/packages.

> +                         ("python-scipy" ,python-scipy)
> +                         ("python-numpy" ,python-numpy)
> +                         ("python-pycairo" ,python-pycairo)
> +                         ("python-matplotlib" ,python-matplotlib)))
> +    (synopsis "Efficient python module for analysis of graphs")

Perhaps just 'Analyze graphs with Python' to avoid overlapping with the
description which has more detail?

> +    (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+)))

Otherwise LGTM.  Can you send an updated patch?

TIA,
Marius
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#47966; Package guix-patches. (Fri, 14 May 2021 20:48:02 GMT) Full text and rfc822 format available.

Message #11 received at 47966 <at> debbugs.gnu.org (full text, mbox):

From: Alexandre Hannud Abdo <abdo <at> member.fsf.org>
To: 47966 <at> debbugs.gnu.org
Subject: [PATCH] gnu: Add python-graph-tool.
Date: Fri, 14 May 2021 22:47:30 +0200
* gnu/packages/graph.scm (python-graph-tool): New variable.
---
 gnu/packages/graph.scm | 62 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 95506c69a9..10b1b91e41 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2020 Alexander Krotov <krotov <at> iitp.ru>
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlos <at> gmx.com>
 ;;; Copyright © 2021 Vinicius Monego <monego <at> posteo.net>
+;;; Copyright © 2021 Alexandre Hannud Abdo <abdo <at> member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,13 +39,18 @@
   #: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,59 @@ MSCs need not be complicated to create or use.  Mscgen aims to provide a simple
 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+)))





Information forwarded to guix-patches <at> gnu.org:
bug#47966; Package guix-patches. (Fri, 14 May 2021 20:55:01 GMT) Full text and rfc822 format available.

Message #14 received at 47966 <at> debbugs.gnu.org (full text, mbox):

From: Alexandre Hannud Abdo <abdo <at> member.fsf.org>
To: 47966 <at> debbugs.gnu.org
Subject: [PATCH] gnu: Add python-graph-tool.
Date: Fri, 14 May 2021 22:53:54 +0200
Ni! Thanks for the tips, Marius.
The new patch should have those issues fixed.
Let me know if there's anything else!
Cheers,
ale .~´





Reply sent to Marius Bakke <marius <at> gnu.org>:
You have taken responsibility. (Sat, 15 May 2021 17:27:02 GMT) Full text and rfc822 format available.

Notification sent to Alexandre Hannud Abdo <abdo <at> member.fsf.org>:
bug acknowledged by developer. (Sat, 15 May 2021 17:27:02 GMT) Full text and rfc822 format available.

Message #19 received at 47966-done <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <marius <at> gnu.org>
To: Alexandre Hannud Abdo <abdo <at> member.fsf.org>, 47966-done <at> debbugs.gnu.org
Subject: Re: [bug#47966] [PATCH] gnu: Add python-graph-tool.
Date: Sat, 15 May 2021 19:26:07 +0200
[Message part 1 (text/plain, inline)]
Alexandre Hannud Abdo <abdo <at> member.fsf.org> skriver:

> * gnu/packages/graph.scm (python-graph-tool): New variable.

Pushed as 5b359e4ba58daee0e08857cfe3a2296a2ac6fca6, thank you!
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 13 Jun 2021 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 312 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.