Patchwork [v2] gnu: Add python-odfpy.

login
register
mail settings
Submitter Marius Bakke
Date Sept. 1, 2016, 3:41 p.m.
Message ID <87h99zr5kb.fsf@ike.i-did-not-set--mail-host-address--so-tickle-me>
Download mbox | patch
Permalink /patch/15156/
State New
Headers show

Comments

Alex Kost - Sept. 2, 2016, 8:39 a.m.
Marius Bakke (2016-09-01 18:41 +0300) wrote:

> From f1bccf9bf26088107b6fec31eece30676d5a362f Mon Sep 17 00:00:00 2001
> From: Marius Bakke <mbakke@fastmail.com>
> Date: Wed, 17 Aug 2016 17:45:24 +0100
> Subject: [PATCH] gnu: Add python-odfpy.
>
> * gnu/packages/python.scm (python-odfpy, python2-odfpy): New variables.
[...]
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (replace 'check
> +           ;; The test runner invokes python2 and python3 for test*.py.
> +           ;; To avoid having both in inputs, we replicate it here.
> +           (lambda _
> +             (for-each (lambda (test-file)

'every' procedure should be used here instead: 'for-each' is for side
effects only, its returned value is unspecified; and with 'every', the
check phase will fail if any of the tests fails.

And since 'every' is from (srfi srfi-1) module, we need to use it in
'arguments', like this:

       #:modules ((srfi srfi-1)
                  (guix build python-build-system)
                  (guix build utils))

The rest looks good to me, so if there will be no other comments, I will
commit it in several days, thanks!

> +                         (zero? (system* "python" test-file)))
> +                       (find-files "tests" "^test.*\\.py$")))))))
> +    (build-system python-build-system)
> +    (home-page "https://github.com/eea/odfpy")
> +    (synopsis "Python API and tools to manipulate OpenDocument files")
> +    (description "Collection of libraries and utility programs written in
> +Python to manipulate OpenDocument 1.2 files.")
> +    (license
> +     ;; The software is mainly dual GPL2+ and ASL2.0, but includes a
> +     ;; number of files with different licenses.
> +     (list license:gpl2+ license:asl2.0 license:lgpl2.1+ license:cc-by-sa3.0))))
> +
> +(define-public python2-odfpy
> +  (package-with-python2 python-odfpy))

Patch

From f1bccf9bf26088107b6fec31eece30676d5a362f Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke@fastmail.com>
Date: Wed, 17 Aug 2016 17:45:24 +0100
Subject: [PATCH] gnu: Add python-odfpy.

* gnu/packages/python.scm (python-odfpy, python2-odfpy): New variables.
---
 gnu/packages/python.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 09fe627..f5c7498 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -26,6 +26,7 @@ 
 ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
+;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -10264,3 +10265,36 @@  time by mocking the datetime module.")
       (native-inputs
        `(("python2-setuptools" ,python2-setuptools)
          ,@(package-native-inputs base))))))
+
+(define-public python-odfpy
+  (package
+    (name "python-odfpy")
+    (version "1.3.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "odfpy" version))
+              (sha256
+               (base32
+                "1a6ms0w9zfhhkqhvrnynwwbxrivw6hgjc0s5k7j06npc7rq0blxw"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           ;; The test runner invokes python2 and python3 for test*.py.
+           ;; To avoid having both in inputs, we replicate it here.
+           (lambda _
+             (for-each (lambda (test-file)
+                         (zero? (system* "python" test-file)))
+                       (find-files "tests" "^test.*\\.py$")))))))
+    (build-system python-build-system)
+    (home-page "https://github.com/eea/odfpy")
+    (synopsis "Python API and tools to manipulate OpenDocument files")
+    (description "Collection of libraries and utility programs written in
+Python to manipulate OpenDocument 1.2 files.")
+    (license
+     ;; The software is mainly dual GPL2+ and ASL2.0, but includes a
+     ;; number of files with different licenses.
+     (list license:gpl2+ license:asl2.0 license:lgpl2.1+ license:cc-by-sa3.0))))
+
+(define-public python2-odfpy
+  (package-with-python2 python-odfpy))
-- 
2.9.3