[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/03: gnu: Add python-pypdf2.
From: |
Hartmut Goebel |
Subject: |
01/03: gnu: Add python-pypdf2. |
Date: |
Thu, 10 Nov 2016 13:26:12 +0000 (UTC) |
htgoebel pushed a commit to branch master
in repository guix.
commit ad5a7d49c3e63045199c20a1988199ba52be8d70
Author: Hartmut Goebel <address@hidden>
Date: Tue Nov 8 22:31:32 2016 +0100
gnu: Add python-pypdf2.
* gnu/packages/pdf.scm (python-pypdf2, python2-pypdf2): New variables.
---
gnu/packages/pdf.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index ee33e3c..d064aaa 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -784,3 +784,52 @@ the framebuffer.")
(description "@command{pdf2svg} is a simple command-line PDF to SVG
converter using the Poppler and Cairo libraries.")
(license license:gpl2+)))
+
+(define-public python-pypdf2
+ (package
+ (name "python-pypdf2")
+ (version "1.26.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyPDF2" version))
+ (sha256
+ (base32
+ "11a3aqljg4sawjijkvzhs3irpw0y67zivqpbjpm065ha5wpr13z2"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after
+ 'unpack 'patch-test-suite
+ (lambda _
+ ;; The text-file needs to be opened in binary mode for Python 3,
+ ;; so patch in the "b"
+ (substitute* "Tests/tests.py"
+ (("pdftext_file = open\\(.* 'crazyones.txt'\\), 'r" line)
+ (string-append line "b")))
+ #t))
+ (replace 'check
+ (lambda _
+ (zero? (system* "python" "-m" "unittest" "Tests.tests")))))))
+ (home-page "http://mstamy2.github.com/PyPDF2")
+ (synopsis "Pure Python PDF toolkit")
+ (description "PyPDF2 is a pure Python PDF library capable of:
+
address@hidden
address@hidden extracting document information (title, author, …)
address@hidden splitting documents page by page
address@hidden merging documents page by page
address@hidden cropping pages
address@hidden merging multiple pages into a single page
address@hidden encrypting and decrypting PDF files
address@hidden enumerate
+
+By being pure Python, it should run on any Python platform without any
+dependencies on external libraries. It can also work entirely on
address@hidden objects rather than file streams, allowing for PDF
+manipulation in memory. It is therefore a useful tool for websites that
+manage or manipulate PDFs.")
+ (license license:bsd-3)))
+
+(define-public python2-pypdf2
+ (package-with-python2 python-pypdf2))