summaryrefslogtreecommitdiff
path: root/gnu/packages/python-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r--gnu/packages/python-xyz.scm374
1 files changed, 315 insertions, 59 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f8afa13f33..25f5fb33e2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -74,7 +74,7 @@
;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
-;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2020, 2021 Alexandros Theodotou <alex@zrythm.org>
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com>
;;; Copyright © 2020 Matthew Kraai <kraai@ftbfs.org>
@@ -82,7 +82,7 @@
;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw>
;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
;;; Copyright © 2020 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
@@ -96,6 +96,8 @@
;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2020 EuAndreh <eu@euandre.org>
+;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Ellis Kenyő <me@elken.dev>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -179,6 +181,7 @@
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages search)
+ #:use-module (gnu packages scanner)
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
@@ -539,28 +542,28 @@ data for video and audio files.")
(define-public python-psutil
(package
(name "python-psutil")
- (version "5.7.2")
+ (version "5.8.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "psutil" version))
(sha256
- (base32 "1svv985vmqsls35kmvp3vhh26nsgz229324s9k29awf6qgqhm6ch"))))
+ (base32 "1immnj532bnnrh1qmk5q3lsw3san8qfk9kxy1cpmy0knmfcwp70c"))))
(build-system python-build-system)
(arguments
;; FIXME: some tests do not return and time out. Some tests fail because
;; some processes survive kill().
'(#:tests? #f))
- (home-page "https://www.github.com/giampaolo/psutil")
+ (home-page "https://github.com/giampaolo/psutil")
(synopsis "Library for retrieving information on running processes")
(description
- "psutil (Python system and process utilities) is a library for retrieving
-information on running processes and system utilization (CPU, memory, disks,
-network) in Python. It is useful mainly for system monitoring, profiling and
-limiting process resources and management of running processes. It implements
-many functionalities offered by command line tools such as: ps, top, lsof,
-netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime,
-pidof, tty, taskset, pmap.")
+ "@code{psutil} (Python system and process utilities) is a library for
+retrieving information on running processes and system utilization (CPU,
+memory, disks, network) in Python. It is useful mainly for system monitoring,
+profiling and limiting process resources and management of running processes.
+It implements many functionalities offered by command line tools such as: ps,
+top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat,
+iotop, uptime, pidof, tty, taskset, pmap.")
(properties `((python2-variant . ,(delay python2-psutil))))
(license license:bsd-3)))
@@ -2364,6 +2367,30 @@ software.")
(inherit (package-with-python2 scons))
(name "scons-python2")))
+(define-public python-extension-helpers
+(package
+ (name "python-extension-helpers")
+ (version "0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "extension-helpers" version))
+ (sha256
+ (base32 "10iqjzmya2h4sk765dlm1pbqypwlqyh8rw59a5m9i63d3klnz2mc"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("coverage" ,python-coverage)
+ ("pytest" ,python-pytest-astropy)
+ ("pytest-cov" ,python-pytest-cov)
+ ("setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://github.com/astropy/astropy-helpers")
+ (synopsis
+ "Utilities for building and installing packages in the Astropy ecosystem")
+ (description
+ "The extension-helpers package includes many build, installation, and
+documentation-related tools used by the Astropy project.")
+ (license license:bsd-3)))
+
(define-public python-extras
(package
(name "python-extras")
@@ -3928,8 +3955,7 @@ for SSH and SFTP. It has the following main usages:
(base32
"197dw8mbq0pjjz1l6h1ksi62vgn7x55d373ch74y06744qiq5sjx"))))
(build-system python-build-system)
- (home-page
- "http://bitbucket.org/leapfrogdevelopment/rstr/overview")
+ (home-page "https://github.com/leapfrogonline/rstr")
(synopsis "Generate random strings in Python")
(description "This package provides a python module for generating
random strings of various types. It could be useful for fuzz testing,
@@ -5027,7 +5053,7 @@ transcendental functions).")
'(#:tests? #f))
(propagated-inputs
`(("python-six" ,python-six)))
- (home-page "http://matplotlib.org/cycler/")
+ (home-page "https://matplotlib.org/cycler/")
(synopsis "Composable keyword argument iterator")
(description
"When using @code{matplotlib} and plotting more than one line, it is
@@ -5082,8 +5108,9 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
(method url-fetch)
(uri (pypi-uri "matplotlib" version))
(sha256
- (base32
- "1nmshfqh7wyg15i16hx1yiylcvzkws29ivn66n3i0wyqwcpjr3lf"))))
+ (base32 "1nmshfqh7wyg15i16hx1yiylcvzkws29ivn66n3i0wyqwcpjr3lf"))
+ (patches
+ (search-patches "python-matplotlib-run-under-wayland-gtk3.patch"))))
(build-system python-build-system)
(propagated-inputs ; the following packages are all needed at run time
`(("python-cycler" ,python-cycler)
@@ -5742,13 +5769,13 @@ the OleFileIO module from PIL, the Python Image Library.")
(define-public python-pikepdf
(package
(name "python-pikepdf")
- (version "2.5.2")
+ (version "2.8.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pikepdf" version))
(sha256
- (base32 "1wwfspm912388a61lailbpjpqihq9ha8yz05mjqx9yys4ixykhwg"))))
+ (base32 "1dfc8a7gp6ib6a2gdx6fz2zvvk4yx8vr2m7b6044rk91vpyrdzvl"))))
(build-system python-build-system)
(arguments
`(#:tests? #false)) ;require python-xmp-toolkit
@@ -5773,14 +5800,14 @@ the OleFileIO module from PIL, the Python Image Library.")
(define-public python-pillow
(package
(name "python-pillow")
- (version "8.0.1")
+ (version "8.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Pillow" version))
(sha256
(base32
- "17pv0flaqqfld9m4lz8ayxyqb11gbbmr7w04mw4ar79cn3lwdi8i"))))
+ "086g7nhv52wclrwnzbzs2x3nvyzs2hfq1bvgivsrp5f7r7wiiz7n"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
@@ -5855,6 +5882,39 @@ a general image processing tool.")
((#:tests? _ #f) #f)))
(properties '((hidden? #t)))))
+(define-public python-pillow-simd
+ (package
+ (inherit python-pillow)
+ (name "python-pillow-simd")
+ (version "7.1.2")
+ ;; The PyPI tarball does not include test files.
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/uploadcare/pillow-simd")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0w11np4cybamry3jsg70x747c79zwjzfq0xiprfp6c186rd6nzp9"))))
+ (arguments
+ (substitute-keyword-arguments
+ (package-arguments python-pillow)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'make-tests-writable
+ (lambda _
+ (for-each make-file-writable (find-files "Tests"))
+ #t))))))
+ (inputs
+ `(("libraqm" ,libraqm)
+ ("libimagequant" ,libimagequant)
+ ,@(package-inputs python-pillow)))
+ (home-page "https://github.com/uploadcare/pillow-simd")
+ (synopsis "Fork of the Python Imaging Library (Pillow)")
+ (description "This package is a fork of Pillow which adds support for SIMD
+parallelism.")))
+
(define-public python-roifile
(package
(name "python-roifile")
@@ -7083,7 +7143,7 @@ without using the configuration machinery.")
(arguments `(#:tests? #f))
(propagated-inputs
`(("python-traitlets" ,python-traitlets)))
- (home-page "http://jupyter.org/")
+ (home-page "https://jupyter.org/")
(synopsis "Jupyter base package")
(description
"Jupyter core is the base package on which Jupyter projects rely.")
@@ -7124,7 +7184,7 @@ without using the configuration machinery.")
`(("python-pyzmq" ,python-pyzmq)
("python-traitlets" ,python-traitlets)
("python-jupyter-core" ,python-jupyter-core)))
- (home-page "http://jupyter.org/")
+ (home-page "https://jupyter.org/")
(synopsis "Jupyter protocol implementation and client libraries")
(description
"The @code{jupyter_client} package contains the reference implementation
@@ -7977,7 +8037,7 @@ and statistical routines from scipy and statsmodels.")
(replace 'check
(lambda _
(invoke "python" "mpmath/tests/runtests.py" "-local"))))))
- (home-page "http://mpmath.org")
+ (home-page "https://mpmath.org")
(synopsis "Arbitrary-precision floating-point arithmetic in python")
(description
"@code{mpmath} can be used as an arbitrary-precision substitute for
@@ -9895,7 +9955,7 @@ Debian-related files, such as:
("python-jsonschema" ,python-jsonschema)
("python-jupyter-core" ,python-jupyter-core)
("python-traitlets" ,python-traitlets)))
- (home-page "http://jupyter.org")
+ (home-page "https://jupyter.org")
(synopsis "Jupyter Notebook format")
(description "This package provides the reference implementation of the
Jupyter Notebook format and Python APIs for working with notebooks.")
@@ -10084,7 +10144,7 @@ time.")
("python-nbformat" ,python-nbformat)
("python-pygments" ,python-pygments)
("python-traitlets" ,python-traitlets)))
- (home-page "http://jupyter.org")
+ (home-page "https://jupyter.org")
(synopsis "Converting Jupyter Notebooks")
(description "The @code{nbconvert} tool, @{jupyter nbconvert}, converts
notebooks to various other formats via Jinja templates. It allows you to
@@ -10141,7 +10201,7 @@ convert an @code{.ipynb} notebook file into various static formats including:
`(("python-nose" ,python-nose)
("python-sphinx" ,python-sphinx)
("python-requests" ,python-requests)))
- (home-page "http://jupyter.org/")
+ (home-page "https://jupyter.org/")
(synopsis "Web-based notebook environment for interactive computing")
(description
"The Jupyter HTML notebook is a web-based notebook environment for
@@ -10338,7 +10398,7 @@ Jupyter kernels such as IJulia and IRKernel.")
("python-ipython" ,python-ipython)))
(native-inputs
`(("python-pytest" ,python-pytest)))
- (home-page "http://jupyter.org")
+ (home-page "https://jupyter.org")
(synopsis "Jupyter Qt console")
(description "This package provides a Qt-based console for Jupyter with
support for rich media output.")
@@ -10737,6 +10797,41 @@ applications.")
(home-page "https://github.com/click-contrib/click-log")
(license license:expat)))
+(define-public python-structlog
+ (package
+ (name "python-structlog")
+ (version "20.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "structlog" version))
+ (sha256
+ (base32
+ "0x1i21vn3xjfa3j9ijbblia5z0jlzc9aqvpqc26sy16i8yjxyydg"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest"))
+ #t)))))
+ (native-inputs
+ `(("python-coverage" ,python-coverage)
+ ("python-freezegun" ,python-freezegun)
+ ("python-pretend" ,python-pretend)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-asyncio" ,python-pytest-asyncio)
+ ("python-simplejson" ,python-simplejson)
+ ("python-twisted" ,python-twisted)))
+ (home-page "https://www.structlog.org/")
+ (synopsis "Structured Logging for Python")
+ (description "@code{structlog} changes logging in Python by adding structure
+to your log entries.")
+ (license (list license:asl2.0 license:expat))))
+
(define-public python-apipkg
(package
(name "python-apipkg")
@@ -12166,6 +12261,54 @@ encoding algorithms to do fuzzy string matching.")
module, adding support for Unicode strings.")
(license license:bsd-2)))
+(define-public python-pdfminer-six
+ (package
+ (name "python-pdfminer-six")
+ (version "20201018")
+ ;; There are no tests in the PyPI tarball.
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pdfminer/pdfminer.six")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1a2fxxnnjqbx344znpvx7cnv1881dk6585ibw01inhfq3w6yj2lr"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Tests write to the source tree.
+ (add-after 'unpack 'make-git-checkout-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "make" "test")))
+ (add-before 'reset-gzip-timestamps 'make-files-writable
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each make-file-writable
+ (find-files out "\\.gz$"))
+ #t))))))
+ (propagated-inputs
+ `(("python-chardet" ,python-chardet)
+ ("python-cryptography" ,python-cryptography)
+ ("python-sortedcontainers" ,python-sortedcontainers)))
+ (native-inputs
+ `(("python-nose" ,python-nose)
+ ("python-tox" ,python-tox)))
+ (home-page "https://github.com/pdfminer/pdfminer.six")
+ (synopsis "PDF parser and analyzer")
+ (description "@code{pdfminer.six} is a community maintained fork of
+the original PDFMiner. It is a tool for extracting information from PDF
+documents. It focuses on getting and analyzing text data. Pdfminer.six
+extracts the text from a page directly from the sourcecode of the PDF. It
+can also be used to get the exact location, font or color of the text.")
+ (license license:expat)))
+
(define-public python-rarfile
(package
(name "python-rarfile")
@@ -12607,13 +12750,13 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc).
(define-public python-greenlet
(package
(name "python-greenlet")
- (version "0.4.17")
+ (version "1.0.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "greenlet" version))
(sha256
(base32
- "0swdhrcq13bdszv3yz5645gi4ijbzmmhxpb6whcfg3d7d5f87n21"))))
+ "1y6wbg9yhm9dw6m768n4yslp56h85pnxkk3drz6icn15g6f1d7ki"))))
(build-system python-build-system)
(home-page "https://greenlet.readthedocs.io/")
(synopsis "Lightweight in-process concurrent programming")
@@ -12654,19 +12797,18 @@ graphviz.")
(define-public python-gevent
(package
(name "python-gevent")
- (version "20.9.0")
+ (version "21.1.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "gevent" version))
(sha256
(base32
- "13aw9x6imsy3b369kfjblqiwfni69pp32m4r13n62r9k3l2lhvaz"))
+ "10f9y899y9nmq51pv4r1zb51b4w5yxx00sz5whvg9vm956hc432j"))
(modules '((guix build utils)))
(snippet
'(begin
;; unbunding libev and c-ares
- (delete-file-recursively "deps")
- #t))))
+ (delete-file-recursively "deps")))))
(build-system python-build-system)
(arguments
`(#:modules ((ice-9 ftw)
@@ -12683,8 +12825,7 @@ graphviz.")
(substitute* file
(("/bin/sh") (which "sh"))
(("/bin/true") (which "true"))))
- (find-files "src/greentest" "\\.py$"))
- #t))
+ (find-files "src/greentest" "\\.py$"))))
(add-before 'build 'do-not-use-bundled-sources
(lambda _
(setenv "GEVENTSETUP_EMBED" "0")
@@ -12692,8 +12833,7 @@ graphviz.")
;; Prevent building bundled libev.
(substitute* "setup.py"
(("run_make=_BUILDING")
- "run_make=False"))
- #t))
+ "run_make=False"))))
(add-before 'build 'add-greenlet-on-C_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((greenlet (string-append
@@ -12706,16 +12846,14 @@ graphviz.")
(setenv "C_INCLUDE_PATH"
(string-append greenlet "/" python ":"
(or (getenv "C_INCLUDE_PATH")
- ""))))))
- #t))
+ ""))))))))
(add-before 'check 'pretend-to-be-CI
(lambda _
;; A few tests are skipped due to network constraints or
;; get longer timeouts when running in a CI environment.
;; Piggy-back on that, as we need the same adjustments.
(setenv "TRAVIS" "1")
- (setenv "APPVEYOR" "1")
- #t))
+ (setenv "APPVEYOR" "1")))
(add-before 'check 'adjust-tests
(lambda _
(let ((disabled-tests
@@ -12747,8 +12885,7 @@ graphviz.")
(call-with-output-file "skipped_tests.txt"
(lambda (port)
(format port "~a~%"
- (string-join disabled-tests "\n"))))
- #t)))
+ (string-join disabled-tests "\n")))))))
(replace 'check
(lambda _
;; Use the build daemons configured number of workers.
@@ -13223,7 +13360,7 @@ interfaces.")
(base32
"16wh8qgybmfh4pjp8vfv78mdlkxfmcasg78lzlnm6nslsfkci31p"))))
(build-system python-build-system)
- (home-page "http://msgpack.org/")
+ (home-page "https://msgpack.org/")
(synopsis "Package to deserialize messages in MessagePack binary format")
(description
"MessagePack is an efficient binary serialization format. It lets you
@@ -13288,9 +13425,8 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.")
(add-before 'build 'patch-setup-py
(lambda _
(substitute* "setup.py"
- ;; Newer versions of keyring produce a package with version "0.0.0"
- ;; Reported upstream: <https://github.com/jaraco/keyring/issues/469>
- (("keyring>=21.2.0,<22.0.0") "keyring>=21.0.0,<22.0.0")
+ ;; Allow newer versions of python-keyring.
+ (("(keyring>=21.2.0),<22.0.0" _ keyring) keyring)
;; TODO: remove after the next release cycle,
;; when packaging has been updated.
(("packaging>=20.4,<21.0") "packaging>=20.0,<21.0"))
@@ -13761,9 +13897,11 @@ characters, mouse support, and auto suggestions.")
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _
- (setenv "HOME" "/tmp")
- (invoke "python" "-m" "pytest" "-vv"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "HOME" "/tmp")
+ (invoke "python" "-m" "pytest" "-vv"))
+ #t)))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-docopt" ,python-docopt)))
@@ -14545,7 +14683,7 @@ Record Format (DWARF).")
(string-append "libev_dll_name = \"" libev "\"")))))))))
(inputs
`(("libev" ,libev)))
- (home-page "http://pythonhosted.org/pyev/")
+ (home-page "https://github.com/gabrielfalcao/pyev")
(synopsis "Python libev interface")
(description "Pyev provides a Python interface to libev.")
(license license:gpl3)))
@@ -15154,17 +15292,29 @@ projects.")
(package
(name "python-invoke")
(home-page "https://www.pyinvoke.org/")
- (version "1.4.1")
+ (version "1.5.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "invoke" version))
(sha256
(base32
- "0pg1lpl4583z83i12262v72y1a4cxdcxi7vqhl8dpqv9wszj6gyy"))))
+ "0l16v7zcbgi36z6pvmdrs5q4ks8lalcafi5d9nhrpcjzbc3n1igh"))))
(build-system python-build-system)
(arguments
;; XXX: Requires many dependencies that are not yet in Guix.
- `(#:tests? #f))
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-bash-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bash (assoc-ref inputs "bash")))
+ (substitute* "invoke/config.py"
+ (("shell = \"/bin/bash\"")
+ (string-append "shell = \"" bash "/bin/bash\""))
+ )
+ #t))))))
+ (inputs
+ `(("bash" ,bash-minimal)))
(synopsis "Pythonic task execution")
(description
"Invoke is a Python task execution tool and library, drawing inspiration
@@ -20410,7 +20560,7 @@ format.")
(base32
"074anvhyjgsv2iby2ql1ixfvjgmhnvcwjbdz8gk70xzkzcm1fx5q"))))
(build-system python-build-system)
- (home-page "http://www.joachim-bauch.de/projects/pylzma/")
+ (home-page "https://www.joachim-bauch.de/projects/pylzma/")
(synopsis "Python bindings for the LZMA library by Igor Pavlov.")
(description "This package provides Python bindings for the LZMA library
by Igor Pavlov.")
@@ -22299,23 +22449,26 @@ networking engine for Python.")
(define-public python-pysaml2
(package
(name "python-pysaml2")
- (version "5.0.0")
+ (version "6.5.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pysaml2" version))
(sha256
(base32
- "1h8cmxh9cvxhrdfmkh92wg6zpxmhi2fixq1cy4hxismmaar7bsny"))))
+ "1xk2x0slz1f8cqv7vn77qx99xfd1mshhswiwrljk9m72w2m9iivd"))))
(build-system python-build-system)
(propagated-inputs
`(("python-cryptography" ,python-cryptography)
("python-dateutil" ,python-dateutil)
("python-defusedxml" ,python-defusedxml)
+ ("python-importlib-resources"
+ ,python-importlib-resources)
("python-pyopenssl" ,python-pyopenssl)
("python-pytz" ,python-pytz)
("python-requests" ,python-requests)
- ("python-six" ,python-six)))
+ ("python-six" ,python-six)
+ ("python-xmlschema" ,python-xmlschema)))
(home-page "https://idpy.org")
(synopsis "Python implementation of SAML Version 2 Standard")
(description
@@ -23647,3 +23800,106 @@ Application Programming Interface based on the Open Inventor 2.1 API.")
Crayons automatically wraps a given string in the foreground color and
restores the original state after the string is printed.")
(license license:expat)))
+
+(define-public python-sane
+ (package
+ (name "python-sane")
+ (version "2.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri name version))
+ (sha256
+ (base32
+ "1pi597z94n2mkd821ln52fq0g727n2jxfskf280ip3kf7jw8w294"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (inputs
+ `(("sane-backends" ,sane-backends)))
+ (home-page "https://github.com/python-pillow/Sane")
+ (synopsis "Python interface to the SANE scanner")
+ (description "This package provides Python interface to the SANE scanner
+and frame grabber interface.")
+ (license (license:non-copyleft
+ ;; Yet another variant of the X/MIT license.
+ "https://github.com/python-pillow/Sane/blob/master/COPYING"))))
+
+(define-public python-screenkey
+ (package
+ (name "python-screenkey")
+ (version "1.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/screenkey/screenkey")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1rfngmkh01g5192pi04r1fm7vsz6hg9k3qd313sn9rl9xkjgp11l"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-dlopen-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((x11 (assoc-ref inputs "libx11"))
+ (xtst (assoc-ref inputs "libxtst")))
+ (substitute* "Screenkey/xlib.py"
+ (("libX11.so.6")
+ (string-append x11 "/lib/libX11.so.6")))
+ (substitute* "Screenkey/xlib.py"
+ (("libXtst.so.6")
+ (string-append xtst "/lib/libXtst.so.6")))
+ #t)))
+ (add-after 'install 'wrap-screenkey
+ (lambda* (#:key outputs #:allow-other-keys)
+ (wrap-program
+ (string-append (assoc-ref outputs "out") "/bin/screenkey")
+ `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
+ `("GI_TYPELIB_PATH"
+ ":" prefix (,(getenv "GI_TYPELIB_PATH"))))
+ #t)))))
+ (inputs
+ `(("python-distutils-extra" ,python-distutils-extra)
+ ("python-tokenize-rt" ,python-tokenize-rt)
+ ("libx11" ,libx11)
+ ("libxtst" ,libxtst)
+ ("gtk+" ,gtk+)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pycairo" ,python-pycairo)
+ ("python-setuptools-git" ,python-setuptools-git)
+ ("python-babel" ,python-babel)))
+ (home-page "https://www.thregr.org/~wavexx/software/screenkey/")
+ (synopsis
+ "Screencast tool to display pressed keys")
+ (description
+ "A screencast tool to display your keys inspired by Screenflick.")
+ (license license:gpl3+)))
+
+(define-public python-jinja2-cli
+ (package
+ (name "python-jinja2-cli")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jinja2-cli" version))
+ (sha256
+ (base32
+ "0vikx7v6fbvww6kfrv0k5a24jyv3ak7nindg60906pdd1m9qvkcw"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-jinja2" ,python-jinja2)))
+ (native-inputs
+ `(("python-flake8" ,python-flake8)
+ ("python-jinja2" ,python-jinja2)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/mattrobenolt/jinja2-cli")
+ (synopsis "Command-line interface to Jinja2")
+ (description
+ "This package provides a command-line interface (CLI) to the Jinja2
+template engine.")
+ (license license:bsd-3)))