diff mbox series

[bug#60941,1/2] gnu: Add python-pypdf.

Message ID 87edrrz4nd.fsf@contorta
State New
Headers show
Series [bug#60941,1/2] gnu: Add python-pypdf. | expand

Commit Message

Vagrant Cascadian Jan. 19, 2023, 1:36 a.m. UTC

Comments

Maxim Cournoyer Jan. 19, 2023, 1:42 a.m. UTC | #1
Hello,

Vagrant Cascadian <vagrant@reproducible-builds.org> writes:

> From e2082819efee20a72b026eebcfc14af279e424c7 Mon Sep 17 00:00:00 2001
> From: Vagrant Cascadian <vagrant@reproducible-builds.org>
> Date: Wed, 18 Jan 2023 16:26:41 -0800
> Subject: [PATCH 1/2] gnu: Add python-pypdf.
>
> * gnu/packages/pdf.scm (python-pypdf): New varaible.
> ---
>  gnu/packages/pdf.scm | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>
> diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
> index 4b9d0623fe..cb94c29bde 100644
> --- a/gnu/packages/pdf.scm
> +++ b/gnu/packages/pdf.scm
> @@ -1260,6 +1260,45 @@ (define-public pdf2svg
>  converter using the Poppler and Cairo libraries.")
>      (license license:gpl2+)))
>  
> +(define-public python-pypdf
> +  (package
> +    (name "python-pypdf")
> +    (version "3.2.1")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (pypi-uri "pypdf" version))
> +              (sha256
> +               (base32
> +                "1pdq4nbkknx61pk8w75jvx5j921m2676wfkyizsrap5mj92cssxc"))))
> +    (build-system python-build-system)

You should use pyproject-build-system, which knows how to build a
project from a PEP 517 build system.

> +    (arguments
> +     (list #:tests? #f ;pypi source does not contains tests

When this occurs, you can fetch from git instead.  Typically Python
packages come with test suites, and this one is no exception.

> +           #:phases #~(modify-phases %standard-phases
> +                        (replace 'build
> +                          (lambda _
> +                            (invoke "flit" "build")))
> +                        (replace 'install
> +                          (lambda* (#:key inputs outputs #:allow-other-keys)
> +                            (add-installed-pythonpath inputs outputs)
> +                            (for-each (lambda (wheel)
> +                                        (invoke "python"
> +                                                "-m"
> +                                                "pip"
> +                                                "install"
> +                                                wheel
> +                                                (string-append "--prefix="
> +                                                               #$output)))
> +                                      (find-files "dist" "\\.whl$")))))))
> +    (native-inputs (list python-flit))
> +    (propagated-inputs (list python-typing-extensions))
> +    (home-page "https://github.com/py-pdf/pypdf")
> +    (synopsis
> +     "A pure-python PDF library")

guix lint should complain about the leading determinant ("A").

> +    (description
> +     "This package provides a pure-python PDF library capable of splitting, merging,
> +cropping, and transforming PDF files")

Missing period, and "pure-python" is odd.  Perhaps just "This package
provides a Python PDF library [...]"
diff mbox series

Patch

From e2082819efee20a72b026eebcfc14af279e424c7 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Wed, 18 Jan 2023 16:26:41 -0800
Subject: [PATCH 1/2] gnu: Add python-pypdf.

* gnu/packages/pdf.scm (python-pypdf): New varaible.
---
 gnu/packages/pdf.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 4b9d0623fe..cb94c29bde 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1260,6 +1260,45 @@  (define-public pdf2svg
 converter using the Poppler and Cairo libraries.")
     (license license:gpl2+)))
 
+(define-public python-pypdf
+  (package
+    (name "python-pypdf")
+    (version "3.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pypdf" version))
+              (sha256
+               (base32
+                "1pdq4nbkknx61pk8w75jvx5j921m2676wfkyizsrap5mj92cssxc"))))
+    (build-system python-build-system)
+    (arguments
+     (list #:tests? #f ;pypi source does not contains tests
+           #:phases #~(modify-phases %standard-phases
+                        (replace 'build
+                          (lambda _
+                            (invoke "flit" "build")))
+                        (replace 'install
+                          (lambda* (#:key inputs outputs #:allow-other-keys)
+                            (add-installed-pythonpath inputs outputs)
+                            (for-each (lambda (wheel)
+                                        (invoke "python"
+                                                "-m"
+                                                "pip"
+                                                "install"
+                                                wheel
+                                                (string-append "--prefix="
+                                                               #$output)))
+                                      (find-files "dist" "\\.whl$")))))))
+    (native-inputs (list python-flit))
+    (propagated-inputs (list python-typing-extensions))
+    (home-page "https://github.com/py-pdf/pypdf")
+    (synopsis
+     "A pure-python PDF library")
+    (description
+     "This package provides a pure-python PDF library capable of splitting, merging,
+cropping, and transforming PDF files")
+    (license license:bsd-3)))
+
 (define-public python-pypdf2
   (package
     (name "python-pypdf2")
-- 
2.39.0