diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-04-08 15:47:00 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-04-08 15:47:00 -0400 |
commit | 533a893cc6b03f100566760d6e0c8e0500ed7082 (patch) | |
tree | 0ecbf89895a400c43d16bb1f6539f1a88aeaa4cf /gnu/packages/python-xyz.scm | |
parent | 6a2546f92d07df04e5d700924edd027ed1e2ef11 (diff) | |
parent | c762df54786fd6f005f3b5307323f1d2df3cbf0b (diff) | |
download | guix-533a893cc6b03f100566760d6e0c8e0500ed7082.tar.gz |
Merge branch 'master' into staging
Conflicts: .guix-authorizations gnu/ci.scm gnu/packages/base.scm gnu/packages/databases.scm gnu/packages/gnome.scm gnu/packages/gtk.scm gnu/packages/imagemagick.scm gnu/packages/password-utils.scm gnu/packages/python-xyz.scm gnu/packages/web-browsers.scm
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 1201 |
1 files changed, 910 insertions, 291 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index b50683f943..79289b1c23 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2014, 2017 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2014, 2017, 2021 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Omar Radwan <toxemicsquire4@gmail.com> ;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu> @@ -27,7 +27,7 @@ ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org> -;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at> +;;; Copyright © 2016, 2017, 2021 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2016, 2017, 2019 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Julien Lepiller <julien@lepiller.eu> @@ -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,9 @@ ;;; 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> +;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -179,6 +182,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) @@ -549,35 +553,34 @@ 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))) (define-public python2-psutil (let ((base (package-with-python2 (strip-python2-variant python-psutil)))) - (package - (inherit base) + (package/inherit base (propagated-inputs `(("python2-enum34" ,python2-enum34) ;optional ,@(package-propagated-inputs base)))))) @@ -659,25 +662,31 @@ module and then similar looking characters are removed.") (define-public python-logwrap (package (name "python-logwrap") - (version "3.2.1") + (version "8.2.0.post0") (source (origin (method url-fetch) - (uri (pypi-uri "logwrap" version ".zip")) + (uri (pypi-uri "logwrap" version)) (sha256 (base32 - "1d2k0hvpbi51vl410y8fbs5m0nxnlh2k7gr2nrh3k81ibhzscsra")))) + "1dv7gny3rfci5cal2ipr6d0pcz3yhka7af96dfsd3ir1mxy8p1j9")))) (build-system python-build-system) - (propagated-inputs - `(("python-six" ,python-six) - ("python-typing" ,python-typing))) + (arguments + `(#:tests? #f ; Tests not included in pypi release. + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest")) + #t))))) (native-inputs - `(("unzip" ,unzip) - ("python-cython" ,python-cython) + `(("python-cython" ,python-cython) ("python-pytest" ,python-pytest) - ("python-pytest-cov" ,python-pytest-cov) - ("python-pytest-runner" ,python-pytest-runner))) - (home-page "https://github.com/penguinolog/logwrap") + ("python-setuptools-scm" ,python-setuptools-scm) + ("python-toml" ,python-toml) + ("python-wheel" ,python-wheel))) + (home-page "https://github.com/python-useful-helpers/logwrap") (synopsis "Decorator for logging function arguments") (description "This package provides a decorator to log function arguments and function call return values in a human-readable way.") @@ -769,6 +778,47 @@ certificate returned by the server to which a connection has been established, and verifies that it matches the intended target hostname.") (license license:psfl))) +(define-public python-bidict + (package + (name "python-bidict") + (version "0.21.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bidict" version)) + (sha256 + (base32 + "02dy0b1k7qlhn7ajyzkrvxhyhjj0hzcq6ws3zjml9hkdz5znz92g")))) + (build-system python-build-system) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-hypothesis" ,python-hypothesis-5.23) ; use_true_random=... from >=5.19.0 + ("python-pre-commit" ,python-pre-commit) + ("python-py" ,python-py) + ("python-pytest" ,python-pytest) + ("python-pytest-benchmark" ,python-pytest-benchmark) + ("python-pytest-cov" ,python-pytest-cov) + ("python-setuptools-scm" ,python-setuptools-scm) + ("python-sortedcollections" ,python-sortedcollections) + ("python-sortedcontainers" ,python-sortedcontainers) + ("python-sphinx" ,python-sphinx) + ("python-sphinx-autodoc-typehints" ,python-sphinx-autodoc-typehints) + ("python-tox" ,python-tox))) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'relax-reqs + (lambda _ + (substitute* "setup.py" + (("sortedcollections < 2") "sortedcollections")) + #t)) + (replace 'check + (lambda _ (invoke "./run_tests.py")))))) + (home-page "https://bidict.readthedocs.io") + (synopsis "Bidirectional mapping library") + (description "The @code{bidict} library provides several data structures +for working with bidirectional mappings in Python.") + (license license:mpl2.0))) + (define-public python-bitarray (package (name "python-bitarray") @@ -942,9 +992,6 @@ concepts.") @code{subprocess} feature.") (license license:expat))) -(define-public python2-sh - (package-with-python2 python-sh)) - (define-public python-cftime (package (name "python-cftime") @@ -1132,8 +1179,7 @@ other machines, such as over the network.") (define-public python2-serpent (let ((base (package-with-python2 (strip-python2-variant python-serpent)))) - (package - (inherit base) + (package/inherit base (propagated-inputs `(("python-enum34" ,python2-enum34) ,@(package-propagated-inputs base)))))) @@ -1306,7 +1352,7 @@ helpers.") (define-public python2-humanfriendly (let ((base (package-with-python2 (strip-python2-variant python-humanfriendly)))) - (package (inherit base) + (package/inherit base (propagated-inputs `(("python2-monotonic" ,python2-monotonic) ,@(package-propagated-inputs base)))))) @@ -1831,7 +1877,9 @@ standard.") "1hgz8jq19wlz8vwqj900ry8cjv578nz4scc91mlc8944yid6573c")))) (build-system python-build-system) (propagated-inputs - `(("python-greenlet" ,python-greenlet))) + `(("python-dnspython" ,python-dnspython) + ("python-greenlet" ,python-greenlet) + ("python-monotonic" ,python-monotonic))) (arguments ;; TODO: Requires unpackaged 'enum-compat'. '(#:tests? #f)) @@ -2131,8 +2179,7 @@ commands.") (define-public python2-empy (let ((base (package-with-python2 (strip-python2-variant python-empy)))) - (package - (inherit base) + (package/inherit base (arguments `(,@(package-arguments base) #:tests? #t))))) @@ -2261,7 +2308,7 @@ backported for previous versions of Python from 2.4 to 3.3.") (define-public python2-parse-type (let ((base (package-with-python2 (strip-python2-variant python-parse-type)))) - (package (inherit base) + (package/inherit base (propagated-inputs `(("python2-enum34" ,python2-enum34) ,@(package-propagated-inputs base)))))) @@ -2310,8 +2357,7 @@ existing ones.") (define-public python2-polib (let ((base (package-with-python2 (strip-python2-variant python-polib)))) - (package - (inherit base) + (package/inherit base (arguments `(,@(package-arguments base) ;; Tests don't work with python2. #:tests? #f))))) @@ -2382,6 +2428,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") @@ -2885,7 +2955,7 @@ compare, diff, and patch JSON and JSON-like structures in Python.") (define-public python2-jsonschema (let ((jsonschema (package-with-python2 (strip-python2-variant python-jsonschema)))) - (package (inherit jsonschema) + (package/inherit jsonschema (propagated-inputs `(("python2-functools32" ,python2-functools32) ,@(package-propagated-inputs jsonschema)))))) @@ -3382,15 +3452,16 @@ logic-free templating system Mustache.") (properties `((python2-variant . ,(delay python2-pystache)))))) (define-public python2-pystache - (package (inherit (package-with-python2 - (strip-python2-variant python-pystache))) - (arguments - `(#:python ,python-2 - #:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "python" "test_pystache.py")))))))) + (let ((base (package-with-python2 + (strip-python2-variant python-pystache)))) + (package/inherit base + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "python" "test_pystache.py"))))))))) (define-public python-joblib (package @@ -3729,7 +3800,7 @@ to deprecate classes, functions or methods.") (define-public python-pygithub (package (name "python-pygithub") - (version "1.43.8") + (version "1.54.1") (source ;; We fetch from the Git repo because there are no tests in the PyPI ;; archive. @@ -3740,30 +3811,24 @@ to deprecate classes, functions or methods.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1625v558xga5mwhl9jqmibywy5qafmg1vqrirqz6zfq1la1d22mw")))) + (base32 "1nl74bp5ikdnrc8xq0qr25ryl1mvarf0xi43k8w5jzlrllhq0nkq")))) (build-system python-build-system) (arguments - `(#:phases (modify-phases %standard-phases - ;; Some tests rely on the network. - (add-after 'unpack 'disable-failing-tests - (lambda _ - (substitute* "tests/Issue142.py" - (("testDecodeJson") "disabled_testDecodeJson")) - #t)) - (add-before 'check 'prepare-for-tests - (lambda _ - (for-each (lambda (f) - (chmod f #o666)) - (find-files "./tests")) - (system* "python" "-m" "lib2to3" "-w" "-n" "tests") - (setenv "PYTHONPATH" - (string-append "./tests:" (getenv "PYTHONPATH"))) - #t))))) + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest")) + #t))))) (propagated-inputs - `(("python-deprecated" ,python-deprecated) + `(("python-cryptography" ,python-cryptography) + ("python-deprecated" ,python-deprecated) ("python-pyjwt" ,python-pyjwt) ("python-requests" ,python-requests))) - (native-inputs `(("python-httpretty" ,python-httpretty))) + (native-inputs + `(("python-httpretty" ,python-httpretty) + ("python-pytest" ,python-pytest))) (home-page "https://pygithub.readthedocs.io/en/latest/") (synopsis "Python library for the GitHub API") (description "This library allows managing GitHub resources such as @@ -3959,8 +4024,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, @@ -4448,8 +4512,7 @@ writing C extensions for Python as easy as Python itself.") (define-public python2-cython (let ((base (package-with-python2 (strip-python2-variant python-cython)))) - (package - (inherit base) + (package/inherit base (name "python2-cython") (inputs `(("python-2" ,python-2))) ;this is not automatically changed @@ -4999,8 +5062,7 @@ that client code uses to construct the grammar directly in Python code.") (define-public python2-numpydoc (let ((base (package-with-python2 (strip-python2-variant python-numpydoc)))) - (package - (inherit base) + (package/inherit base (propagated-inputs `(("python2-jinja2" ,python2-jinja2) ,@(package-propagated-inputs base)))))) @@ -5051,7 +5113,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 @@ -5106,8 +5168,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) @@ -5520,14 +5583,14 @@ a simple netcat replacement with chaining support.") (define-public python-pycodestyle (package (name "python-pycodestyle") - (version "2.6.0") + (version "2.7.0") (source (origin (method url-fetch) (uri (pypi-uri "pycodestyle" version)) (sha256 (base32 - "0bhr6ia0hmgx3nhgibc9pmkzhlh1zcqk707i5fbxgs702ll7v2n5")))) + "1vqwmzmjdv331kmfq3q9j3as2x7r2r49lf83r9w4147pdg8c32f3")))) (build-system python-build-system) (arguments `(#:phases @@ -5781,13 +5844,13 @@ the OleFileIO module from PIL, the Python Image Library.") (define-public python-pikepdf (package (name "python-pikepdf") - (version "2.5.2") + (version "2.10.0") (source (origin (method url-fetch) (uri (pypi-uri "pikepdf" version)) (sha256 - (base32 "1wwfspm912388a61lailbpjpqihq9ha8yz05mjqx9yys4ixykhwg")))) + (base32 "09wfj1hjvj3r9gv7ywrqd7h3d0bz64bvils8sm3ghj90jhalb03s")))) (build-system python-build-system) (arguments `(#:tests? #false)) ;require python-xmp-toolkit @@ -5812,14 +5875,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))) @@ -5894,6 +5957,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") @@ -6314,9 +6410,6 @@ graphics library with support for multiple backends including image buffers, PNG, PostScript, PDF, and SVG file output.") (license license:bsd-3))) -(define-public python2-cairocffi - (package-with-python2 python-cairocffi)) - (define-public python-decorator (package (name "python-decorator") @@ -7010,8 +7103,7 @@ CLI scripts: (define-public python2-ipyparallel (let ((ipyparallel (package-with-python2 python-ipyparallel))) - (package - (inherit ipyparallel) + (package/inherit ipyparallel (propagated-inputs `(("python2-futures" ,python2-futures) ,@(package-propagated-inputs ipyparallel)))))) @@ -7099,8 +7191,7 @@ without using the configuration machinery.") (define-public python2-traitlets (let ((traitlets (package-with-python2 (strip-python2-variant python-traitlets)))) - (package - (inherit traitlets) + (package/inherit traitlets (propagated-inputs `(("python2-enum34" ,python2-enum34) ,@(package-propagated-inputs traitlets)))))) @@ -7121,7 +7212,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.") @@ -7162,7 +7253,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 @@ -7277,14 +7368,14 @@ installing @code{kernelspec}s for use with Jupyter frontends.") (define-public python-backcall (package (name "python-backcall") - (version "0.1.0") + (version "0.2.0") (source (origin (method url-fetch) (uri (pypi-uri "backcall" version)) (sha256 (base32 - "1r01dqch3f8fdj3n6fviw8hxqrs6w5v0qw4izmvqzry1w9dxiv1q")))) + "07jy4562lvnhkk6kfr3cphmizy88anlhmbwb8kdzlz2ypqkvzgaw")))) (build-system python-build-system) (home-page "https://github.com/takluyver/backcall/") (synopsis "Specifications for callback functions passed in to an API") @@ -7528,24 +7619,69 @@ computing.") (define-public python-urwid (package (name "python-urwid") - (version "2.1.0") + (version "2.1.2") (source (origin (method url-fetch) (uri (pypi-uri "urwid" version)) (sha256 (base32 - "11ndnhxd41m13darf5s0c6bafdpkzq1l6mfb04wbzdmyc1hg75h8")))) + "1bky2bra6673xx8jy0826znw6cmxs89wcwwzda8d025j3jffx2sq")))) (build-system python-build-system) (home-page "http://urwid.org") (synopsis "Console user interface library for Python") (description "Urwid is a curses-based UI/widget library for Python. It includes many features useful for text console applications.") + (properties `((python2-variant . ,(delay python2-urwid)))) (license license:lgpl2.1+))) (define-public python2-urwid - (package-with-python2 python-urwid)) + (let ((base (package-with-python2 + (strip-python2-variant python-urwid)))) + (package/inherit base + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "urwid" version)) + (sha256 + (base32 + "11ndnhxd41m13darf5s0c6bafdpkzq1l6mfb04wbzdmyc1hg75h8"))))))) + +(define-public python-urwid-readline + (package + (name "python-urwid-readline") + (version "0.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rr-/urwid_readline") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0sq5qgxj7gcfww3ww7idr87isnmp0hi36n241b3q395x1zafdv22")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "-m" "pytest")) + #t))))) + (propagated-inputs + `(("python-urwid" ,python-urwid))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/rr-/urwid_readline") + (synopsis "Text input widget for urwid that supports readline shortcuts") + (description + "This package provides a textbox edit widget for @code{python-urwid} that +supports @code{readline} shortcuts.") + (license license:expat))) (define-public python-urwidtrees (package @@ -7652,7 +7788,7 @@ implementation of D-Bus.") (license license:expat))) (define-public python2-dbus - (package (inherit python-dbus) + (package/inherit python-dbus (name "python2-dbus") (inputs `(("python" ,python-2) ,@(alist-delete "python" @@ -7691,14 +7827,14 @@ the GObject Introspection bindings to libnotify for non-GTK applications.") (define-public python-beautifulsoup4 (package (name "python-beautifulsoup4") - (version "4.9.1") + (version "4.9.3") (source (origin (method url-fetch) (uri (pypi-uri "beautifulsoup4" version)) (sha256 (base32 - "1mvzlw3pzbhsvl3z8784s5h7iiflm2hggiy1fxyrrxwnbc8lvk3k")))) + "09gbd49mwz86k572r1231x2rdp82p42zlnw0bz9b9mfi58r9wwl4")))) (build-system python-build-system) (arguments `(#:phases @@ -7726,22 +7862,22 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.") (properties `((python2-variant . ,(delay python2-beautifulsoup4)))))) (define-public python2-beautifulsoup4 - (package - (inherit (package-with-python2 - (strip-python2-variant python-beautifulsoup4))) - (arguments `(#:python ,python-2)))) + (let ((base (package-with-python2 + (strip-python2-variant python-beautifulsoup4)))) + (package/inherit base + (arguments `(#:python ,python-2))))) (define-public python-soupsieve (package (name "python-soupsieve") - (version "2.0.1") + (version "2.2.1") (source (origin (method url-fetch) (uri (pypi-uri "soupsieve" version)) (sha256 (base32 - "0ch2rhvsbwfpvzm4kzy81rclbzr533yv83hzg1gx55byfa0w37d5")))) + "1k70gpn2d3vgdyxbdy536dgm4kchcraxz6lmgsfg3324iy2789q5")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;;XXX: 2 tests fail currently despite claming they were to be @@ -7873,16 +8009,81 @@ of the structure, dynamics, and functions of complex networks.") Python.") (license license:lgpl2.1+))) +(define-public python-amply + (package + (name "python-amply") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "amply" version)) + (sha256 + (base32 + "0f1db9zp0rsfzxvaz55xwh8h5rfdgr9a2a715g06ic8nknsdq4nb")))) + (build-system python-build-system) + (propagated-inputs + `(("python-docutils" ,python-docutils) + ("python-pyparsing" ,python-pyparsing))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm))) + (home-page "https://github.com/willu47/amply") + (synopsis "Load and manipulate AMPL/GLPK data as Python data structures") + (description + "Amply allows you to load and manipulate AMPL/GLPK data as Python data +structures.") + (license license:epl1.0))) + +(define-public python-pulp + (package + (name "python-pulp") + (version "2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PuLP" version)) + (sha256 + (base32 + "1dammrg0f1v0r028i3rpxbf2bsyxmjq0q6ihb4x2wsdki44z3bxj")))) + (build-system python-build-system) + (propagated-inputs + `(("python-amply" ,python-amply))) + (home-page "https://github.com/coin-or/pulp") + (synopsis "Linear Programming modeler") + (description + "PuLP is a Linear Programming modeler written in Python. PuLP can +generate MPS or LP files and call GLPK, COIN CLP/CBC, CPLEX, and GUROBI to +solve linear problems.") + (license license:expat))) + +(define-public python-toposort + (package + (name "python-toposort") + (version "1.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "toposort" version)) + (sha256 + (base32 + "1b2hppzjg3p006qya3yfdnp76dwq8frl97lypdam0kw4xxb8yhm7")))) + (build-system python-build-system) + (home-page "https://gitlab.com/ericvsmith/toposort") + (synopsis "Topological sort algorithm") + (description + "This package provides an implementation of a topological sort +algorithm.") + (license license:asl2.0))) + (define-public snakemake (package (name "snakemake") - (version "5.7.1") + (version "5.32.2") (source (origin (method url-fetch) (uri (pypi-uri "snakemake" version)) (sha256 - (base32 "1pnpvvn8n2a78cg360wz3ldmpqrsm2wzi0c0dmvki9fnsw6fxdas")))) + (base32 "13013gdavwvyj1qr9xfi9fpwhb3km8c3z53bja5b7ic3sb2z6dgz")))) (build-system python-build-system) (arguments ;; TODO: Package missing test dependencies. @@ -7894,7 +8095,7 @@ Python.") ;; this by calling the snakemake wrapper instead. (add-after 'unpack 'call-wrapper-not-wrapped-snakemake (lambda* (#:key outputs #:allow-other-keys) - (substitute* "snakemake/executors.py" + (substitute* "snakemake/executors/__init__.py" (("\\{sys.executable\\} -m snakemake") (string-append (assoc-ref outputs "out") "/bin/snakemake"))) @@ -7907,11 +8108,14 @@ Python.") ("python-gitpython" ,python-gitpython) ("python-jinja2" ,python-jinja2) ("python-jsonschema" ,python-jsonschema) + ("python-nbformat" ,python-nbformat) ("python-networkx" ,python-networkx) ("python-psutil" ,python-psutil) + ("python-pulp" ,python-pulp) ("python-pyyaml" ,python-pyyaml) ("python-ratelimiter" ,python-ratelimiter) ("python-requests" ,python-requests) + ("python-toposort" ,python-toposort) ("python-wrapt" ,python-wrapt))) (home-page "https://snakemake.readthedocs.io") (synopsis "Python-based execution environment for make-like workflows") @@ -8015,7 +8219,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 @@ -8304,13 +8508,13 @@ applications.") (define-public python-pyzmq (package (name "python-pyzmq") - (version "17.1.2") + (version "22.0.3") (source (origin (method url-fetch) (uri (pypi-uri "pyzmq" version)) (sha256 - (base32 "1pyxxrz60f88ffm0y6vpbx3q8jcr9ybz8fcilihwzwhh36n84ax7")))) + (base32 "0bgrn65cxfz1c1sjrgyq5dy1mkhppxxbizd5wvrl03cq4zhkrxpp")))) (build-system python-build-system) (arguments `(#:configure-flags @@ -8383,8 +8587,7 @@ PEP 8.") (define-public python2-pep517 (let ((base (package-with-python2 (strip-python2-variant python-pep517)))) - (package - (inherit base) + (package/inherit base (name "python2-pep517") (arguments `(#:tests? #f @@ -8394,14 +8597,14 @@ PEP 8.") (define-public python-pyflakes (package (name "python-pyflakes") - (version "2.2.0") + (version "2.3.1") (source (origin (method url-fetch) (uri (pypi-uri "pyflakes" version)) (sha256 (base32 - "1j3zqbiwkyicvww499bblq33x0bjpzdrxajhaysr7sk7x5gdgcim")))) + "1ny10364ciqh4ripasj4zzv4145l21l3s85m3qlrvfq5pk58xg7m")))) (build-system python-build-system) (home-page "https://github.com/pyflakes/pyflakes") @@ -8441,13 +8644,13 @@ complexity of Python source code.") (define-public python-flake8 (package (name "python-flake8") - (version "3.8.4") + (version "3.9.0") (source (origin (method url-fetch) (uri (pypi-uri "flake8" version)) (sha256 (base32 - "0fvcrsbyzjpcli8ldbpsdbpmf238nkvwc1dy4hy82lf63rvfinma")))) + "1w65iyjnrwipv4dbcqxh725ri7mdx01d6pjyggd97c0j5cvkx1vq")))) (build-system python-build-system) (arguments `(#:phases @@ -8476,7 +8679,7 @@ complexity of Python source code.") (define-public python2-flake8 (let ((base (package-with-python2 (strip-python2-variant python-flake8)))) - (package (inherit base) + (package/inherit base (propagated-inputs `(("python2-configparser" ,python2-configparser) ("python2-enum34" ,python2-enum34) @@ -8520,6 +8723,34 @@ design problems in your program. It contains warnings that don't belong in pyflakes and pycodestyle.") (license license:expat))) +(define-public python-flake8-continuation + (package + (name "python-flake8-continuation") + (version "1.0.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flake8-continuation" version)) + (sha256 + (base32 + "0dzaw8jr7yhlabxhrblnrizxx17xa9ngjnbr1kidg5lapq6b9q1y")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flake8" ,python-flake8) + ("python-pycodestyle" ,python-pycodestyle) + ("python-six" ,python-six))) + (home-page "https://github.com/planetlabs/flake8-continuation") + (synopsis "Flake8 Line Continuation Plugin") + (description "A Flake8 plugin that checks for the line continuation +style to be in the preferred method according to PEP-8, specifically: +@quotation +The preferred way of wrapping long lines is by using Python's implied +line continuation inside parentheses, brackets and braces. Long lines +can be broken over multiple lines by wrapping expressions in parentheses. +These should be used in preference to using a backslash for line continuation. +@end quotation") + (license license:asl2.0))) + (define-public python-flake8-implicit-str-concat (package (name "python-flake8-implicit-str-concat") @@ -8658,6 +8889,25 @@ first-class forward references that stub files use.") lints.") (license license:bsd-2))) +(define-public python-flake8-quotes + (package + (name "python-flake8-quotes") + (version "3.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flake8-quotes" version)) + (sha256 + (base32 + "0ph5s6lxgpzz4an0ax6s5xjqypqmngwr5b1i0h9pqhzghplic49z")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flake8" ,python-flake8))) + (home-page "https://github.com/zheller/flake8-quotes/") + (synopsis "Flake8 lint for quotes") + (description "This package provides a Flake8 lint for quotes.") + (license license:expat))) + (define-public python-autoflake (package (name "python-autoflake") @@ -9002,9 +9252,10 @@ third-party code.") (properties `((python2-variant . ,(delay python2-llfuse)))))) (define-public python2-llfuse - (package (inherit (package-with-python2 - (strip-python2-variant python-llfuse))) - (propagated-inputs `(("python2-contextlib2" ,python2-contextlib2))))) + (let ((base (package-with-python2 + (strip-python2-variant python-llfuse)))) + (package/inherit base + (propagated-inputs `(("python2-contextlib2" ,python2-contextlib2)))))) (define-public python-msgpack (package @@ -9357,9 +9608,6 @@ tasks, sockets, files, locks, and queues.") designed to efficiently cope with extremely large amounts of data.") (license license:bsd-3))) -(define-public python2-tables - (package-with-python2 python-tables)) - (define-public python-sniffio (package (name "python-sniffio") @@ -9516,13 +9764,13 @@ implementations of ASN.1-based codecs and protocols.") (define-public python-ipaddress (package (name "python-ipaddress") - (version "1.0.22") + (version "1.0.23") (source (origin (method url-fetch) (uri (pypi-uri "ipaddress" version)) (sha256 (base32 - "0b570bm6xqpjwqis15pvdy6lyvvzfndjvkynilcddjj5x98wfimi")))) + "1qp743h30s04m3cg3yk3fycad930jv17q7dsslj4mfw0jlvf1y5p")))) (build-system python-build-system) (home-page "https://github.com/phihag/ipaddress") (synopsis "IP address manipulation library") @@ -9752,8 +10000,7 @@ a hash value.") (license license:asl2.0))) (define-public python2-tlsh - (package - (inherit python-tlsh) + (package/inherit python-tlsh (name "python2-tlsh") (inputs `(("python" ,python-2))))) @@ -9842,8 +10089,7 @@ Python's @code{ctypes} foreign function interface (FFI).") (package-with-python2 python-libarchive-c)) (define-public python-file - (package - (inherit file) + (package/inherit file (name "python-file") (build-system python-build-system) (arguments @@ -9944,7 +10190,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.") @@ -10133,7 +10379,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 @@ -10190,7 +10436,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 @@ -10201,7 +10447,7 @@ interactive computing.") (define-public python2-notebook (let ((base (package-with-python2 (strip-python2-variant python-notebook)))) - (package (inherit base) + (package/inherit base (native-inputs `(("python2-mock" ,python2-mock) ,@(package-native-inputs base))) @@ -10242,9 +10488,6 @@ interactive computing.") notebooks.") (license license:bsd-3))) -(define-public python2-widgetsnbextension - (package-with-python2 python-widgetsnbextension)) - (define-public python-ipywidgets (package (name "python-ipywidgets") @@ -10272,9 +10515,6 @@ widgets are used. Users gain control of their data and can visualize changes in the data.") (license license:bsd-3))) -(define-public python2-ipywidgets - (package-with-python2 python-ipywidgets)) - (define-public python-jupyter-console (package (name "python-jupyter-console") @@ -10335,8 +10575,7 @@ Jupyter kernels such as IJulia and IRKernel.") ;; the functionality in both packages working, strip down the ;; python-jupyter-console package when using it as an input to python-ipython. (define python-jupyter-console-minimal - (package - (inherit python-jupyter-console) + (package/inherit python-jupyter-console (name "python-jupyter-console-minimal") (arguments (substitute-keyword-arguments @@ -10387,7 +10626,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.") @@ -10676,8 +10915,7 @@ the standard library.") (define-public python2-contextlib2 (let ((base (package-with-python2 (strip-python2-variant python-contextlib2)))) - (package - (inherit base) + (package/inherit base (arguments (substitute-keyword-arguments (package-arguments base) ((#:phases phases) @@ -10785,6 +11023,62 @@ applications.") (home-page "https://github.com/click-contrib/click-log") (license license:expat))) +(define-public python-click-default-group + (package + (name "python-click-default-group") + (version "1.2.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "click-default-group" version)) + (sha256 + (base32 + "015r78jk8gznfw0dphpwaqcx5mhg5822b55w5xbb6i7sin70wmnr")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ; no target + (propagated-inputs + `(("python-click" ,python-click))) + (synopsis "Extends click.Group") + (description "This package extends click.Group to invoke a command without +explicit subcommand name.") + (home-page "https://github.com/click-contrib/click-default-group") + (license license:bsd-3))) + +(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") @@ -10846,13 +11140,13 @@ minimal and fast API targeting the following uses: (define-public python-icalendar (package (name "python-icalendar") - (version "4.0.5") + (version "4.0.7") (source (origin (method url-fetch) (uri (pypi-uri "icalendar" version)) (sha256 (base32 - "14ynjj65kfmlcvpb7k097w789wvxncd3cr3xz5m1jz9yl9v6vv5q")))) + "19574j3jwssm2dkqykih4568xqfgjsa3hcd79yl5s2vfys3qvh8g")))) (build-system python-build-system) (propagated-inputs `(("python-dateutil" ,python-dateutil) @@ -11091,7 +11385,7 @@ concurrent.futures package from Python 3.2") (define-public python2-promise (let ((promise (package-with-python2 (strip-python2-variant python-promise)))) - (package (inherit promise) + (package/inherit promise (arguments (substitute-keyword-arguments (package-arguments promise) ((#:tests? _) #t))) (native-inputs @@ -11392,6 +11686,85 @@ document.") manipulation library.") (license license:expat))) +(define-public python-uncertainties + (package + (name "python-uncertainties") + (version "3.1.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "uncertainties" version)) + (sha256 + (base32 + "00z9xl40czmqk0vmxjvmjvwb41r893l4dad7nj1nh6blw3kw28li")))) + (build-system python-build-system) + ;; While there are test files, there is no "tests" directory, so the tests + ;; fail. + (arguments '(#:tests? #false)) + (propagated-inputs + `(("python-future" ,python-future))) + (native-inputs + `(("python-nose" ,python-nose) + ("python-numpy" ,python-numpy))) + (home-page "https://uncertainties-python-package.readthedocs.io/") + (synopsis "Calculations with uncertainties") + (description + "The uncertainties package transparently handles calculations with +numbers with uncertainties. It can also yield the derivatives of any +expression.") + (license license:bsd-3))) + +(define-public python-asteval + (package + (name "python-asteval") + (version "0.9.23") + (source + (origin + (method url-fetch) + (uri (pypi-uri "asteval" version)) + (sha256 + (base32 + "0f54sd4w1a72ij1bcxs2x7dk9xf8bzclawijf1z18bqx9f96l2gm")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/newville/asteval") + (synopsis "Minimalistic evaluator of Python expressions") + (description + "This package provides a minimalistic evaluator of Python expression +using the @code{ast} module") + (license license:expat))) + +(define-public python-lmfit + (package + (name "python-lmfit") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "lmfit" version)) + (sha256 + (base32 + "0iab33jjb60f8kn0k0cqb0vjp1mdskks2n3kpn97zkw5cvjhq2b7")))) + (build-system python-build-system) + (propagated-inputs + `(("python-asteval" ,python-asteval) + ("python-numpy" ,python-numpy) + ("python-scipy" ,python-scipy) + ("python-uncertainties" ,python-uncertainties))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://lmfit.github.io/lmfit-py/") + (synopsis "Least-Squares minimization with bounds and constraints") + (description + "Lmfit provides a high-level interface to non-linear optimization and +curve fitting problems for Python. It builds on and extends many of the +optimization methods of @code{scipy.optimize}. Initially inspired by (and +named for) extending the Levenberg-Marquardt method from +@code{scipy.optimize.leastsq}, lmfit now provides a number of useful +enhancements to optimization and data fitting problems.") + (license license:bsd-3))) + (define-public python-boto (package (name "python-boto") @@ -11716,8 +12089,7 @@ and provides a uniform API regardless of which JSON implementation is used.") (define-public python2-anyjson (let ((anyjson (package-with-python2 (strip-python2-variant python-anyjson)))) - (package - (inherit anyjson) + (package/inherit anyjson (arguments `(;; Unlike the python 3 variant, we do run tests. See above! #:tests? #t ,@(package-arguments anyjson))) @@ -11754,8 +12126,7 @@ alternative when librabbitmq is not available.") (define-public python2-amqp (let ((amqp (package-with-python2 (strip-python2-variant python-amqp)))) - (package - (inherit amqp) + (package/inherit amqp (arguments `(;; Tries to run coverage tests with nose-cover3, which seems ;; unmaintained. Weirdly, does not do this on the python 3 ;; version? @@ -11827,8 +12198,7 @@ RabbitMQ messaging server is the most popular implementation.") (define-public python2-kombu (let ((kombu (package-with-python2 (strip-python2-variant python-kombu)))) - (package - (inherit kombu) + (package/inherit kombu (arguments `(;; FIXME: 'TestTransport.test_del_sync' fails on python2. ;; It works fine on the python3 variant. #:tests? #f @@ -11865,8 +12235,7 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.") (define-public python2-billiard (let ((billiard (package-with-python2 (strip-python2-variant python-billiard)))) - (package - (inherit billiard) + (package/inherit billiard (native-inputs `(("python2-unittest2" ,python2-unittest2) ("python2-mock" ,python2-mock) ,@(package-native-inputs billiard)))))) @@ -11916,8 +12285,7 @@ synchronously (wait until ready).") (define-public python2-celery (let ((celery (package-with-python2 (strip-python2-variant python-celery)))) - (package - (inherit celery) + (package/inherit celery (native-inputs `(("python2-unittest2" ,python2-unittest2) ("python2-mock" ,python2-mock) ,@(package-native-inputs celery)))))) @@ -12071,7 +12439,7 @@ checking library.") (define-public python2-whoosh (let ((whoosh (package-with-python2 (strip-python2-variant python-whoosh)))) - (package (inherit whoosh) + (package/inherit whoosh (propagated-inputs `(("python2-backport-ssl-match-hostname" ,python2-backport-ssl-match-hostname) @@ -12185,7 +12553,7 @@ encoding algorithms to do fuzzy string matching.") (define-public python2-jellyfish (let ((jellyfish (package-with-python2 (strip-python2-variant python-jellyfish)))) - (package (inherit jellyfish) + (package/inherit jellyfish (native-inputs `(("python2-unicodecsv" ,python2-unicodecsv) ,@(package-native-inputs jellyfish)))))) @@ -12216,6 +12584,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") @@ -12552,8 +12968,7 @@ to occurrences in strings and comments.") (license license:gpl2))) (define-public python-rope - (package - (inherit python2-rope) + (package/inherit python2-rope (name "python-rope") (arguments `(#:python ,python-wrapper ;; XXX: Only partial python3 support, results in some failing @@ -12663,13 +13078,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") @@ -12710,19 +13125,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) @@ -12739,8 +13153,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") @@ -12748,8 +13161,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 @@ -12762,16 +13174,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 @@ -12803,8 +13213,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 _ ;; Make sure the build directory is on PYTHONPATH. @@ -12940,13 +13349,13 @@ It uses LR parsing and does extensive error checking.") (define-public python-tabulate (package (name "python-tabulate") - (version "0.8.7") + (version "0.8.9") (source (origin (method url-fetch) (uri (pypi-uri "tabulate" version)) (sha256 (base32 - "01shi7bmj09f0bcm5s0c9skys063lzp76p0n4a2xmg041ni269yv")))) + "19qkdz8xwk5jxa5xn53mnk76qnh4ysm81vzj664jw1b0azr167gb")))) (build-system python-build-system) (arguments ;; FIXME: The pypi release tarball is missing a 'test/common.py' @@ -13279,7 +13688,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 @@ -13327,7 +13736,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") (define-public poetry (package (name "poetry") - (version "1.1.4") + (version "1.1.5") ;; Poetry can only be built from source with Poetry. (source (origin @@ -13335,7 +13744,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") (uri (pypi-uri "poetry" version)) (sha256 (base32 - "1a2kgfiw66fvxhlqk5qc83s6l38czfh5hcsrbiy7qq5yfc8mlsll")))) + "1dvx08ksv5wnsj45db23921rj136akmcnxa0kmlsddf3wbh6wcka")))) (build-system python-build-system) (arguments `(#:tests? #f ;; Pypi does not have tests. @@ -13344,9 +13753,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")) @@ -13809,9 +14217,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))) @@ -13861,8 +14271,7 @@ etc.") (define-public ptpython-2 (let ((base (package-with-python2 (strip-python2-variant ptpython)))) - (package - (inherit base) + (package/inherit base (name "ptpython2")))) (define-public python-stem @@ -13897,20 +14306,17 @@ control protocol to script against the Tor process and read descriptor data relays publish about themselves.") (license license:lgpl3))) -(define-public python2-stem - (package-with-python2 python-stem)) - (define-public python-pyserial (package (name "python-pyserial") - (version "3.4") + (version "3.5") (source (origin (method url-fetch) (uri (pypi-uri "pyserial" version)) (sha256 (base32 - "09y68bczw324a4jb9a1cfwrbjhq179vnfkkkrybbksp0vqgl0bbf")))) + "1nyd4m4mnrz8scbfqn4zpq8gnbl4x42w5zz62vcgpzqd2waf0xrw")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; FIXME: 3/49 tests are failing. @@ -14005,7 +14411,7 @@ binary or text.") (define-public python2-binaryornot (let ((base (package-with-python2 (strip-python2-variant python-binaryornot)))) - (package (inherit base) + (package/inherit base (propagated-inputs `(("python2-enum34" ,python2-enum34) ,@(package-propagated-inputs base)))))) @@ -14254,13 +14660,13 @@ command @command{natsort} that exposes this functionality in the command line.") (define-public glances (package (name "glances") - (version "3.1.4") + (version "3.1.6") (source (origin (method url-fetch) (uri (pypi-uri "Glances" version)) (sha256 - (base32 "0dc47gbvp9a3wxppdqihxpglxxaxbj3hcvzgcxxq8zcsciah3plq")) + (base32 "11xbm8jgcxha191ly7q76nab1ilabiz14mqf6i3y6aw5xvgg017c")) (modules '((guix build utils))) (snippet '(begin @@ -14324,9 +14730,6 @@ This library is a port of @url{https://github.com/graphql/graphql-js,graphql-js} to Python.") (license license:expat))) -(define-public python2-graphql-core - (package-with-python2 python-graphql-core)) - (define-public python-graphql-relay (package (name "python-graphql-relay") @@ -14522,8 +14925,7 @@ is used by PostgreSQL and the OpenSSH Server for example.") (define-public python2-setproctitle (let ((base (package-with-python2 (strip-python2-variant python-setproctitle)))) - (package - (inherit base) + (package/inherit base (native-inputs `(("python2-nose" ,python2-nose) ,@(package-native-inputs base)))))) @@ -14627,7 +15029,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))) @@ -14714,8 +15116,7 @@ network.") (define-public python2-argcomplete (let ((variant (package-with-python2 (strip-python2-variant python-argcomplete)))) - (package - (inherit variant) + (package/inherit variant (arguments (substitute-keyword-arguments (package-arguments variant) ((#:phases phases '%standard-phases) @@ -14839,8 +15240,7 @@ possible on all supported Python versions.") (define-public python2-xopen (let ((base (package-with-python2 (strip-python2-variant python-xopen)))) - (package - (inherit base) + (package/inherit base (propagated-inputs `(("python2-bz2file" ,python2-bz2file) ,@(package-propagated-inputs base)))))) @@ -14972,9 +15372,6 @@ protocols written in pure Python.") ;; Can be used with either license. (license (list license:asl2.0 license:gpl2+)))) -(define-public python2-dulwich - (package-with-python2 python-dulwich)) - (define-public python-pbkdf2 (package (name "python-pbkdf2") @@ -15705,7 +16102,7 @@ editors.") (define-public python2-isort (let ((base (package-with-python2 (strip-python2-variant python-isort)))) - (package (inherit base) + (package/inherit base (native-inputs `(("python2-futures" ,python2-futures) ,@(package-native-inputs base)))))) @@ -15944,9 +16341,6 @@ exception message with a traceback that points to the culprit.") make common patterns shorter and easier.") (license license:bsd-2))) -(define-public python2-utils - (package-with-python2 python-utils)) - (define-public python-diff-match-patch (package (name "python-diff-match-patch") @@ -16276,8 +16670,7 @@ Supported metrics are: (define-public python2-radon (let ((base (package-with-python2 (strip-python2-variant python-radon)))) - (package - (inherit base) + (package/inherit base (propagated-inputs `(("python-configparser" ,python2-configparser) ("python-future" ,python2-future) @@ -16576,8 +16969,7 @@ and integration into other projects.") (define-public python2-rfc6555 (let ((base (package-with-python2 (strip-python2-variant python-rfc6555)))) - (package - (inherit base) + (package/inherit base (propagated-inputs `(("python2-selectors2" ,python2-selectors2)))))) @@ -17702,8 +18094,7 @@ such as figshare or Zenodo.") (define-public python2-activepapers (let ((base (package-with-python2 (strip-python2-variant python-activepapers)))) - (package - (inherit base) + (package/inherit base (arguments (substitute-keyword-arguments (package-arguments base) ((#:phases phases) @@ -17937,17 +18328,18 @@ user's @file{~/Trash} directory.") (license license:bsd-3))) (define-public python2-send2trash - (package - (inherit (package-with-python2 (strip-python2-variant python-send2trash))) - (arguments - (substitute-keyword-arguments (package-arguments python-send2trash) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'check 'setenv - (lambda _ - (setenv "PYTHONPATH" - (string-append (getcwd) ":" (getenv "PYTHONPATH"))) - #t)))))))) + (let ((base (package-with-python2 + (strip-python2-variant python-send2trash)))) + (package/inherit base + (arguments + (substitute-keyword-arguments (package-arguments python-send2trash) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'check 'setenv + (lambda _ + (setenv "PYTHONPATH" + (string-append (getcwd) ":" (getenv "PYTHONPATH"))) + #t))))))))) (define-public python-pyfavicon (package @@ -19110,6 +19502,31 @@ library: to minimize boilerplate code in traditional extension modules by inferring type information using compile-time introspection.") (license license:bsd-3))) +(define-public python-pooch + (package + (name "python-pooch") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pooch" version)) + (sha256 + (base32 "1618adsg9r8fsv422sv35z1i723q3a1iir5v7dv2sklh4pl4im1h")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;requires online data + (propagated-inputs + `(("python-appdirs" ,python-appdirs) + ("python-packaging" ,python-packaging) + ("python-requests" ,python-requests))) + (home-page "https://github.com/fatiando/pooch") + (synopsis "Manage your Python library's sample data files") + (description + "Pooch manages your Python library's sample data files: it automatically +downloads and stores them in a local directory, with support for versioning +and corruption checks.") + (license license:bsd-3))) + (define-public python-fasteners (package (name "python-fasteners") @@ -19686,6 +20103,26 @@ main differences are that @code{cytoolz} is faster and cytoolz offers a C API that is accessible to other projects developed in Cython.") (license license:bsd-3))) +(define-public python-sortedcollections + (package + (name "python-sortedcollections") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sortedcollections" version)) + (sha256 + (base32 + "1kfabpnjyjm5ml2zspry9jy3xq49aybchgaa4ahic2jqdjfn1sfq")))) + (build-system python-build-system) + (propagated-inputs + `(("python-sortedcontainers" ,python-sortedcontainers))) + (arguments '(#:tests? #f)) ; Tests not included in release tarball. + (home-page "http://www.grantjenks.com/docs/sortedcollections/") + (synopsis "Python Sorted Collections") + (description "Sorted Collections is a Python sorted collections library.") + (license license:asl2.0))) + (define-public python-sortedcontainers (package (name "python-sortedcontainers") @@ -19763,8 +20200,7 @@ data.") (define-public python2-cloudpickle (let ((base (package-with-python2 (strip-python2-variant python-cloudpickle)))) - (package - (inherit base) + (package/inherit base (native-inputs `(("python-mock" ,python2-mock) ,@(package-native-inputs base))) @@ -20004,7 +20440,7 @@ on regular expressions.") (define-public python2-reparser (let ((reparser (package-with-python2 (strip-python2-variant python-reparser)))) - (package (inherit reparser) + (package/inherit reparser (propagated-inputs `(("python2-enum34" ,python2-enum34) ,@(package-propagated-inputs reparser)))))) @@ -20116,14 +20552,14 @@ of Python libraries for building Python applications.") (define-public python-astor (package (name "python-astor") - (version "0.7.1") + (version "0.8.1") (source (origin (method url-fetch) (uri (pypi-uri "astor" version)) (sha256 (base32 - "13gv6f2xz9i564byp21gcpc0l3w4cs23k1wbcam8kky2ls3hvhwm")))) + "0ppscdzzvxpznclkmhhj53iz314x3pfv4yc7c6gwxqgljgdgyvka")))) (build-system python-build-system) ;; FIXME: There are two errors and two test failures. (arguments `(#:tests? #f)) @@ -20531,7 +20967,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.") @@ -20965,14 +21401,14 @@ register custom encoders and decoders.") (define-public python-ujson (package (name "python-ujson") - (version "4.0.1") + (version "4.0.2") (source (origin (method url-fetch) (uri (pypi-uri "ujson" version)) (sha256 (base32 - "1lr9lbm76y3ah1463jggwg2hjcb709mpns5f752wxxbgnd0n5kr6")) + "0k9w0kypy7vlskzzp2vsjswaw8lbqdrplzkbflxki9vqwglsj5f6")) (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "deps") #t)))) @@ -21412,29 +21848,6 @@ and cuts down boilerplate code when testing libraries for asyncio.") (description "This project allows Python code to extend built-in types.") (license (list license:gpl3+ license:expat)))) -(define-public python-shouldbe - (package - (name "python-shouldbe") - (version "0.1.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "shouldbe" version)) - (sha256 - (base32 - "16zbvjxf71dl4yfbgcr6idyim3mdrfvix1dv8b95p0s9z07372pj")) - (patches (search-patches "python-shouldbe-0.1.2-cpy3.8.patch")))) - (build-system python-build-system) - (propagated-inputs - `(("python-forbiddenfruit" ,python-forbiddenfruit))) - (native-inputs - `(("python-nose" ,python-nose))) - (home-page "https://github.com/directxman12/should_be") - (synopsis "Python Assertion Helpers inspired by Shouldly") - (description - "Python Assertion Helpers inspired by Shouldly.") - (license license:isc))) - (define-public python-k5test (package (name "python-k5test") @@ -21472,31 +21885,15 @@ tests.") (define-public python-gssapi (package (name "python-gssapi") - (version "1.6.9") + (version "1.6.12") (source (origin (method url-fetch) (uri (pypi-uri "gssapi" version)) (sha256 (base32 - "1fa78pn5jzfbwf3y6mj4fc8sh11wjf1hwh5qv39cdlxb71qsq2hb")))) + "1j2idrbrbczykzlb56q1bn0ivc9c0rjjljpk4yz86xn3gxfkpv8n")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; Work around - ;; https://github.com/pythongssapi/python-gssapi/issues/220. - (add-before 'check 'disable-failing-tests - (lambda _ - (let ((reason "Disabled failing test (see: \ -https://github.com/pythongssapi/python-gssapi/issues/220).")) - (substitute* "gssapi/tests/test_high_level.py" - ((".*def test_add_with_impersonate.*" all) - (string-append all " self.skipTest('" reason "')\n"))) - (substitute* "gssapi/tests/test_raw.py" - ((".*def test_.*impersonate_name.*" all) - (string-append all " self.skipTest('" reason "')\n"))) - #t)))))) (propagated-inputs `(("python-decorator" ,python-decorator) ("python-six" ,python-six))) @@ -21504,8 +21901,7 @@ https://github.com/pythongssapi/python-gssapi/issues/220).")) `(("mit-krb5" ,mit-krb5))) ;; for tests (native-inputs - `(("python-shouldbe" ,python-shouldbe) - ("python-parameterized" ,python-parameterized) + `(("python-parameterized" ,python-parameterized) ("python-k5test" ,python-k5test) ("python-nose" ,python-nose))) (home-page "https://github.com/pythongssapi/python-gssapi") @@ -22422,23 +22818,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 @@ -23487,14 +23886,14 @@ process.") (define-public python-aiofiles (package (name "python-aiofiles") - (version "0.5.0") + (version "0.6.0") (source (origin (method url-fetch) (uri (pypi-uri "aiofiles" version)) (sha256 (base32 - "1bqmv019x16qa3zah0z915cw6z4va3fjs60fk2s7vyah3gyvrrlq")))) + "14m01kjxm2j7zyljjj6xlhlgygcsriymbx730gc5jp9xglaina70")))) (build-system python-build-system) (home-page "https://github.com/Tinche/aiofiles") (synopsis "File support for @code{asyncio}") @@ -23772,3 +24171,223 @@ 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))) + +(define-public python-readability + (package + (name "python-readability") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "readability" version)) + (sha256 + (base32 + "1b8gq3g2zwvx0aivvdg56cc0bn7xw6f2v6psmxdx9aiipkw0s0zr")))) + (build-system python-build-system) + (home-page + "https://github.com/andreasvc/readability/") + (synopsis + "Measure the readability of a given text using surface +characteristics") + (description + "This package provides a Python library that is an implementation of +traditional readability measures based on simple surface +characteristics. These measures are basically linear regressions based on the +number of words, syllables, and sentences.") + (license license:asl2.0))) + +(define-public python-listparser + (package + (name "python-listparser") + (version "0.18") + (source + (origin + (method url-fetch) + (uri (pypi-uri "listparser" version)) + (sha256 + (base32 + "0hdqs1mmayw1r8yla43hgb4d9y3zqs5483vgf8j9ygczkd2wrq2b")))) + (build-system python-build-system) + (home-page + "https://github.com/kurtmckee/listparser") + (synopsis + "Parse subscription lists in Python") + (description + "This package provides a Python library that can parse OPML, FOAF, and +iGoogle subscription lists.") + (license license:expat))) + +(define-public python-smartypants + (package + (name "python-smartypants") + (version "2.0.1") + (source + (origin + ;; There's no source tarball for 2.0.1 on PyPI. + (method git-fetch) + (uri (git-reference + (url "https://github.com/leohemsted/smartypants.py") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00p1gnb9pzb3svdq3c5b9b332gsp50wrqqa39gj00m133zadanjp")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + ;; Its `setup.py test` doesn't report failure with exit status, so + ;; we use `nose` instead. + (lambda _ + (invoke "nosetests" "-v" "--exclude=^load_tests$")))))) + (native-inputs + ;; For tests. + `(("python-docutils" ,python-docutils) + ("python-nose" ,python-nose) + ("python-pygments" ,python-pygments))) + (home-page "https://github.com/leohemsted/smartypants.py") + (synopsis "Translate punctuation characters into smart quotes") + (description + "@command{smartpants} can perform the following transformations: +@enumerate +@item Straight quotes ( \" and ' ) into \"curly\" quote HTML entities +@item Backticks-style quotes (``like this'') into \"curly\" quote HTML +entities +@item Dashes (-- and ---) into en- and em-dash entities +@item Three consecutive dots (... or . . .) into an ellipsis entity +@end enumerate") + (license license:bsd-3))) + +(define-public python-typogrify + (package + (name "python-typogrify") + (version "2.0.7") + (source (origin + (method url-fetch) + (uri (pypi-uri "typogrify" version)) + (sha256 + (base32 + "0f6b2gnnxjbx1fbmkcscc6qjr4hi78kwm1wx4b766ha3va66dr4b")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "nosetests" "-v")))))) + (propagated-inputs + `(("python-smartypants" ,python-smartypants))) + (native-inputs + ;; For tests. + `(("python-nose" ,python-nose))) + (home-page "https://github.com/mintchaos/typogrify") + (synopsis "Filters to transform text into typographically-improved HTML") + (description + "@code{typogrify} provides a set of custom filters that automatically +apply various transformations to plain text in order to yield +typographically-improved HTML. While often used in conjunction with Jinja and +Django template systems, the filters can be used in any environment.") + (license license:bsd-3))) |