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.scm1171
1 files changed, 896 insertions, 275 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f8f0a6552d..f4cba62777 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -56,6 +56,7 @@
;;; Copyright © 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
+;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2019 Sam <smbaines8@gmail.com>
;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
@@ -87,6 +88,11 @@
;;; Copyright © 2020 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
+;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com>
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;; Copyright © 2020 Diego N. Barbato <dnbarbato@posteo.de>
+;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2019 Kristian Trandem <kristian@devup.no>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -118,6 +124,8 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
+ #:use-module (gnu packages djvu)
+ #:use-module (gnu packages docker)
#:use-module (gnu packages enchant)
#:use-module (gnu packages file)
#:use-module (gnu packages fontutils)
@@ -136,7 +144,6 @@
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
- #:use-module (gnu packages imagemagick)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
@@ -161,6 +168,7 @@
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages search)
@@ -176,6 +184,7 @@
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
+ #:use-module (gnu packages wxwidgets)
#:use-module (gnu packages base)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
@@ -946,9 +955,6 @@ to users of that module.")
;; by the Expat license.
(license (list license:isc license:expat))))
-(define-public python2-netcdf4
- (package-with-python2 python-netcdf4))
-
(define-public python-license-expression
(package
(name "python-license-expression")
@@ -1783,6 +1789,32 @@ human-friendly syntax.")
(define-public python2-schedule
(package-with-python2 python-schedule))
+(define-public python-scour
+ (package
+ (name "python-scour")
+ (version "038.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/scour-project/scour")
+ (commit
+ (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0rgiypb9ig8x4rl3hfzpy7kwnx1q3064nvlrv4fk0dnp84girn0v"))))
+ (propagated-inputs
+ `(("python-six" ,python-six)))
+ (build-system python-build-system)
+ (home-page "https://github.com/scour-project/scour")
+ (synopsis "Scour is an SVG optimizer/cleaner written in Python")
+ (description "The goal of Scour is to output a file that renderes
+identically at a fraction of the size by removing a lot of redundant
+information created by most SVG editors. Optimization options are typically
+lossless but can be tweaked for more aggressive cleaning.")
+ (license license:asl2.0)))
+
(define-public python-mechanize
(package
(name "python-mechanize")
@@ -1808,6 +1840,30 @@ after Andy Lester’s Perl module WWW::Mechanize.")
(define-public python2-mechanize
(package-with-python2 python-mechanize))
+(define-public python-simpleaudio
+ (package
+ (name "python-simpleaudio")
+ (version "1.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "simpleaudio" version))
+ (sha256
+ (base32
+ "07glihg0fpca0gvbbvqs9q815w8xhflzdvg72yvlsm23j9j8h739"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)))
+ (home-page
+ "https://github.com/hamiltron/py-simple-audio")
+ (synopsis "Simple, asynchronous audio playback for Python 3")
+ (description
+ "The @code{simplaudio} package provides cross-platform, dependency-free
+audio playback capability for Python 3 on OSX, Windows, and Linux.")
+ (license license:expat))) ; MIT license
+
(define-public python-simplejson
(package
(name "python-simplejson")
@@ -3398,8 +3454,11 @@ structure for Python.")
(synopsis "Python Documentation Utilities")
(description
"Docutils is a modular system for processing documentation into useful
-formats, such as HTML, XML, and LaTeX. For input Docutils supports
-reStructuredText.")
+formats, such as HTML, XML, and LaTeX. It uses @dfn{reStructuredText}, an
+easy to use markup language, for input.
+
+This package provides tools for converting @file{.rst} files to other formats
+via commands such as @command{rst2man}, as well as supporting Python code.")
;; Most of the source code is public domain, but some source files are
;; licensed under the PFSL, BSD 2-clause, and GPLv3+ licenses.
(license (list license:public-domain license:psfl license:bsd-2 license:gpl3+))))
@@ -3648,7 +3707,7 @@ ecosystem, but can naturally be used also by other projects.")
(define-public python-robotframework
(package
(name "python-robotframework")
- (version "3.1.2")
+ (version "3.2.2")
;; There are no tests in the PyPI archive.
(source
(origin
@@ -3658,9 +3717,9 @@ ecosystem, but can naturally be used also by other projects.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "16gnxy0qinh8fhs0qvhff5z2xh49c3cqgm0d7bfjw120df6x7fym"))
+ (base32 "0if0h3myb9m3hgmn1phrhq8pfp89kfqsaq32vmfdjkyjdj7y59ds"))
(patches (search-patches
- "python-robotframework-honor-source-date-epoch.patch"))))
+ "python-robotframework-source-date-epoch.patch"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -3675,12 +3734,23 @@ ecosystem, but can naturally be used also by other projects.")
(string-append doc "/libraries"))
#t)))
(replace 'check
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Some tests require timezone data. Otherwise, they
+ ;; look up /etc/localtime, which doesn't exist, and fail
+ ;; with:
+ ;;
+ ;; OverflowError: mktime argument out of range
+ (setenv "TZDIR"
+ (string-append (assoc-ref inputs "tzdata")
+ "/share/zoneinfo"))
+ (setenv "TZ" "Europe/Paris")
+
(invoke "python" "utest/run.py"))))))
(native-inputs
`(("python-invoke" ,python-invoke)
("python-rellu" ,python-rellu)
- ("python:tk" ,python "tk"))) ;used when building the HTML doc
+ ("python:tk" ,python "tk") ;used when building the HTML doc
+ ("tzdata" ,tzdata-for-tests)))
(outputs '("out" "doc"))
(home-page "https://robotframework.org")
(synopsis "Generic automation framework")
@@ -3694,11 +3764,12 @@ process automation (RPA).")
;; to the 0.9 stable release available from PyPI. The tests are not
;; included in the PyPI archive, so we fetch the sources from the upstream
;; Git repo.
- (let ((commit "e851879bab1f63e4e53b34a4dc8a67ed95102830")
- (revision "1"))
+ (let ((commit "b0619ac58a8b1be125f9c98856a664594614570f")
+ (revision "0"))
(package
(name "python-robotframework-lint")
- (version (git-version "0.9.0" revision commit))
+ (version (git-version "1.1" ;version taken from 'rflint/version.py'
+ revision commit))
(source
(origin
(method git-fetch)
@@ -3708,7 +3779,7 @@ process automation (RPA).")
(file-name (git-file-name name version))
(sha256
(base32
- "1p6fknqg5sb9qz5857ji4a877657vgfjm5v3zn45994parx6ml1m"))))
+ "180npmvzqync25b2scs878gv8q4y17dsinxyjcc10bw22msfap6b"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -3810,14 +3881,13 @@ outside the standard library.")
(define-public python-scp
(package
(name "python-scp")
- (version "0.13.2")
+ (version "0.13.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scp" version))
(sha256
- (base32
- "1crlpw9lnn58fs1c1rmh7s7s9y5gkgpgjsqlvg9qa51kq1knx7gg"))))
+ (base32 "1m2v09m407p097cy3xy5rxicqfzrqjwf8v5rd4qhfqkk7lllimwb"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ;tests require an SSH server
@@ -3859,6 +3929,30 @@ augment the changelog, but it can be used for other documents, too.")
(define-public python2-rst.linker
(package-with-python2 python-rst.linker))
+(define-public python-sshpubkeys
+ (package
+ (name "python-sshpubkeys")
+ (version "3.1.0")
+ (home-page "https://github.com/ojarva/python-sshpubkeys")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1h4gwmcfn84kkqh83km1vfz8sc5kr2g4gzgzmr8gz704jmqiv7nq"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-cryptography" ,python-cryptography)
+ ("python-ecdsa" ,python-ecdsa)))
+ (synopsis "OpenSSH public key parser")
+ (description
+ "This package provides a library for parsing and validating OpenSSH
+public key files.")
+ (license license:bsd-3)))
+
(define-public python-feedgenerator
(package
(name "python-feedgenerator")
@@ -3917,19 +4011,19 @@ Language (TOML) configuration files.")
(define-public python-jsonrpc-server
(package
(name "python-jsonrpc-server")
- (version "0.3.4")
+ (version "0.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-jsonrpc-server" version))
(sha256
(base32
- "0dzya99nbi4mw7q85vmyw1wfgbx5dpmysnvm0bwx5m4xbi4zafy7"))))
+ "1585ybn3djvx5r5zbxkzlhz2wb1d47y4wrfwaxdyq0gi87jl7ib2"))))
(build-system python-build-system)
(propagated-inputs
`(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)
- ("python-ujson" ,python-ujson-1)))
+ ("python-ujson" ,python-ujson)))
(home-page
"https://github.com/palantir/python-jsonrpc-server")
(synopsis "JSON RPC 2.0 server library")
@@ -4000,28 +4094,39 @@ Server (PLS).")
(define-public python-language-server
(package
(name "python-language-server")
- (version "0.34.1")
+ (version "0.36.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-language-server" version))
(sha256
(base32
- "0gfjjlj7yg2nf8wkbrshwaljkwlqja4n7s1x949f495anmkg8vxr"))))
+ "0ljzc50z5v08is8fis1fg2dk9sb6275jlvzxb6nij0w6ys772pf8"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-pluggy" ,python-pluggy)
- ("python-jsonrpc-server" ,python-jsonrpc-server)
- ("python-jedi" ,python-jedi)
- ("python-yapf" ,python-yapf)
- ("python-pyflakes" ,python-pyflakes)
+ `(("python-autopep8" ,python-autopep8)
+ ("python-configparser" ,python-configparser)
("python-pydocstyle" ,python-pydocstyle)
+ ("python-future" ,python-future)
+ ("python-jedi" ,python-jedi)
+ ("python-jsonrpc-server" ,python-jsonrpc-server)
+ ("python-pluggy" ,python-pluggy)
("python-pycodestyle" ,python-pycodestyle)
- ("python-mccabe" ,python-mccabe)
+ ("python-pyflakes" ,python-pyflakes)
("python-rope" ,python-rope)
- ("python-autopep8" ,python-autopep8)
- ("python-flake8" ,python-flake8)
- ("python-pylint" ,python-pylint)))
+ ("python-ujson" ,python-ujson)
+ ("python-yapf" ,python-yapf)))
+ (native-inputs
+ `(("python-coverage" ,python-coverage)
+ ("python-flaky" ,python-flaky)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-mock" ,python-mock)
+ ("python-numpy" ,python-numpy)
+ ("python-pandas" ,python-pandas)
+ ("python-pylint" ,python-pylint)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-versioneer" ,python-versioneer)))
(home-page "https://github.com/palantir/python-language-server")
(synopsis "Python implementation of the Language Server Protocol")
(description
@@ -4053,14 +4158,14 @@ matching of file paths.")
(define-public python-black
(package
(name "python-black")
- (version "19.10b0")
+ (version "20.8b1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "black" version))
(sha256
(base32
- "0f8mr0yzj78q1dx7v6ggbgfir2wv0n5z2shfbbvfdq7910xbgvf2"))))
+ "1spv6sldp3mcxr740dh3ywp25lly9s8qlvs946fin44rl1x5a0hw"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -4078,7 +4183,11 @@ matching of file paths.")
"")))))
#t))
(add-after 'unpack 'disable-broken-tests
- (lambda _
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ ;; Make installed package available for running the tests
+ (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
+ ":" (getenv "PATH")))
+
;; These tests are supposed to be skipped when the blackd
;; dependencies are missing, but this doesn't quite work.
(substitute* "tests/test_black.py"
@@ -4092,15 +4201,21 @@ matching of file paths.")
(substitute* "tests/test_black.py"
(("( *)def test_self" match indent)
(string-append indent "@unittest.skip(\"guix\")\n" match)))
+
+ (substitute* "tests/test_black.py"
+ (("( *)def test_python38" match indent)
+ (string-append indent "@unittest.skip(\"guix\")\n" match)))
#t)))))
(propagated-inputs
`(("python-click" ,python-click)
("python-attrs" ,python-attrs)
("python-appdirs" ,python-appdirs)
("python-pathspec" ,python-pathspec)
+ ("python-mypy-extensions" ,python-mypy-extensions)
("python-regex" ,python-regex)
("python-toml" ,python-toml)
- ("python-typed-ast" ,python-typed-ast)))
+ ("python-typed-ast" ,python-typed-ast)
+ ("python-typing-extensions" ,python-typing-extensions)))
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://github.com/ambv/black")
@@ -4916,7 +5031,6 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
("python-cairocffi" ,python-cairocffi)))
(inputs
`(("libpng" ,libpng)
- ("imagemagick" ,imagemagick)
("freetype" ,freetype)
("cairo" ,cairo)
("glib" ,glib)
@@ -4991,6 +5105,9 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
;; has not effect.
(setenv "LD_LIBRARY_PATH" (string-append cairo "/lib"))
(setenv "HOME" (getcwd))
+ ;; Fix rounding errors when using the x87 FPU.
+ (when (string-prefix? "i686" ,(%current-system))
+ (setenv "CFLAGS" "-ffloat-store"))
(call-with-output-file "setup.cfg"
(lambda (port)
(format port "[directories]~%
@@ -5550,14 +5667,14 @@ the OleFileIO module from PIL, the Python Image Library.")
(define-public python-pillow
(package
(name "python-pillow")
- (version "6.2.1")
+ (version "8.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Pillow" version))
(sha256
(base32
- "1c8wkzc58f5wdh006jvmwdk3wxld1xgagcbdvj7iv17qi0m9fkmz"))))
+ "17pv0flaqqfld9m4lz8ayxyqb11gbbmr7w04mw4ar79cn3lwdi8i"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
@@ -5597,12 +5714,24 @@ efficient internal representation, and fairly powerful image processing
capabilities. The core image library is designed for fast access to data
stored in a few basic pixel formats. It should provide a solid foundation for
a general image processing tool.")
+ (properties `((python2-variant . ,(delay python2-pillow))))
(license (license:x11-style
"http://www.pythonware.com/products/pil/license.htm"
"The PIL Software License"))))
(define-public python2-pillow
- (package-with-python2 python-pillow))
+ (package-with-python2
+ (package
+ (inherit (strip-python2-variant python-pillow))
+ ;; Version 6 is the last series with Python 2 support.
+ (version "6.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Pillow" version))
+ (sha256
+ (base32
+ "0l5rv8jkdrb5q846v60v03mcq64yrhklidjkgwv6s1pda71g17yv")))))))
(define-public python-pillow-2.9
(package
@@ -5776,6 +5905,28 @@ a front-end for C compilers or analysis tools.")
(define-public python2-pycparser
(package-with-python2 python-pycparser))
+(define-public python-xlsxwriter
+ (package
+ (name "python-xlsxwriter")
+ (version "1.3.7")
+ (source
+ (origin
+ ;; There are no tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jmcnamara/XlsxWriter")
+ (commit (string-append "RELEASE_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1qg40r2mwrqfmhaxnary1cfgi0dwwazp5qga7c9p2cdji2v0x5rm"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/jmcnamara/XlsxWriter")
+ (synopsis "Python module for creating Excel XLSX files")
+ (description
+ "XlsxWriter is a Python module that can be used to write text, numbers,
+formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
+ (license license:bsd-2)))
+
(define-public python-pywavelets
(package
(name "python-pywavelets")
@@ -8062,27 +8213,6 @@ PEP 8.")
(define-public python2-pyflakes
(package-with-python2 python-pyflakes))
-;; Flake8 2.6 requires an older version of pyflakes.
-;; This should be removed ASAP.
-(define-public python-pyflakes-1.2
- (package (inherit python-pyflakes)
- (version "1.2.3")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pyflakes" version))
- (sha256
- (base32
- "17hkw8yd44cr8fz13phy4aih3r5j2p7ild4zlvqdh2c8dmiinjif"))))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; This one test fails.
- (replace 'check
- (lambda _ (invoke "pytest" "-vv" "-k" "not test_f_string"))))))
- (native-inputs
- `(("python-pytest" ,python-pytest)))))
-
(define-public python-mccabe
(package
(name "python-mccabe")
@@ -8108,39 +8238,6 @@ complexity of Python source code.")
(define-public python2-mccabe
(package-with-python2 python-mccabe))
-(define-public python-mccabe-0.2.1
- (package (inherit python-mccabe)
- (version "0.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "mccabe" version))
- (sha256
- (base32
- "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs"))))))
-
-(define-public python2-mccabe-0.2.1
- (package-with-python2 python-mccabe-0.2.1))
-
-;; Flake8 2.4.1 requires an older version of pep8.
-;; This should be removed ASAP.
-(define-public python-pep8-1.5.7
- (package (inherit python-pep8)
- (version "1.5.7")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pep8" version))
- (sha256
- (base32
- "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m"))))
- (arguments
- ;; XXX Tests not compatible with Python 3.5.
- '(#:tests? #f))))
-
-(define-public python2-pep8-1.5.7
- (package-with-python2 python-pep8-1.5.7))
-
(define-public python-flake8
(package
(name "python-flake8")
@@ -8187,40 +8284,6 @@ complexity of Python source code.")
("python2-typing" ,python2-typing)
,@(package-propagated-inputs base))))))
-;; python-hacking requires flake8 <2.7.0.
-(define-public python-flake8-2.6
- (package
- (inherit python-flake8)
- (version "2.6.2")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "flake8" version))
- (sha256
- (base32
- "0y57hzal0j84dh9i1g1g6dc4aywvrnhy2fjmmbglpv5ajihxh713"))))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'use-later-pycodestyles
- (lambda __
- (substitute* '("flake8.egg-info/requires.txt"
- "setup.py")
- (("pycodestyle >= 2.0, < 2.1")
- "pycodestyle >= 2.0"))
- #t))
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (invoke "pytest" "-v")
- #t)))))
- (propagated-inputs
- `(("python-pep8" ,python-pep8)
- ("python-pycodestyle" ,python-pycodestyle)
- ("python-entrypoints" ,python-entrypoints)
- ("python-pyflakes" ,python-pyflakes-1.2)
- ("python-mccabe" ,python-mccabe)))))
-
(define-public python-flake8-bugbear
(package
(name "python-flake8-bugbear")
@@ -8648,6 +8711,26 @@ should be stored on various operating systems.")
(define-public python2-appdirs
(package-with-python2 python-appdirs))
+(define-public python-gorilla
+ (package
+ (name "python-gorilla")
+ (version "0.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "gorilla" version))
+ (sha256
+ (base32
+ "0b40blcp6fih4nvqbilra4qw1dfccv1ahjmr41ac4d9rjadqkcpy"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/christophercrouzet/gorilla")
+ (synopsis "Convenient monkey patching with Python")
+ (description
+ "Gorilla is a Python library that provides a convenient approach to
+monkey patching. Monkey patching is the process of modifying module and
+class attributes at runtime with the purpose of replacing or extending
+third-party code.")
+ (license license:expat)))
+
(define-public python-llfuse
(package
(name "python-llfuse")
@@ -8844,6 +8927,32 @@ Supported netlink families and protocols include:
(define-public python2-wrapt
(package-with-python2 python-wrapt))
+(define-public python-commonmark
+ (package
+ (name "python-commonmark")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "commonmark" version))
+ (sha256
+ (base32 "0q7d39lm8kcingpmykk5r959hrwwj6v2icyw3mihczxyb749sbs5"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "setup.py" "test"))))))
+ (home-page "https://github.com/readthedocs/commonmark.py")
+ (synopsis "Python parser for the CommonMark Markdown spec")
+ (description
+ "This module is a pure Python port of jgm's @code{commonmark.js}, a
+Markdown parser and renderer for the CommonMark specification, using only
+native modules.")
+ (license license:bsd-3)))
+
(define-public python-xlrd
(package
(name "python-xlrd")
@@ -10820,14 +10929,13 @@ for the module to work under Python 3.3.")
(define-public python-colorama
(package
(name "python-colorama")
- (version "0.4.3")
+ (version "0.4.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "colorama" version))
(sha256
- (base32
- "189n8hpijy14jfan4ha9f5n06mnl33cxz7ay92wjqgkr639s0vg9"))))
+ (base32 "16w62sm95hmh55rqxn4zwdz0bkh3fqm1qnz9cwi3s510iasb4har"))))
(build-system python-build-system)
(synopsis "Colored terminal text rendering for Python")
(description "Colorama is a Python library for rendering colored terminal
@@ -10838,6 +10946,73 @@ text.")
(define-public python2-colorama
(package-with-python2 python-colorama))
+(define-public python-moto
+ (package
+ (name "python-moto")
+ ;; XXX: Use a pre-release for compatibility with latest botocore & friends.
+ (version "1.3.16.dev134")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "moto" version))
+ (sha256
+ (base32
+ "1pix0c7zszjwzfy88n1rpih9vkdm25nqcvz93z850xvgwb4v81bd"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-hardcoded-executable-names
+ (lambda _
+ (substitute* "moto/batch/models.py"
+ (("/bin/sh")
+ (which "sh")))
+ (substitute* (find-files "tests" "\\.py$")
+ (("#!/bin/bash")
+ (string-append "#!" (which "bash"))))
+ #t))
+ (replace 'check
+ (lambda _
+ (setenv "PYTHONPATH" (string-append "./build/lib:"
+ (getenv "PYTHONPATH")))
+ (invoke "pytest" "-vv" "-m" "not network"
+ ;; These tests require Docker.
+ "-k" "not test_terminate_job \
+and not test_invoke_function_from_sqs_exception"))))))
+ (native-inputs
+ `(("python-flask" ,python-flask)
+ ("python-flask-cors" ,python-flask-cors)
+ ("python-freezegun" ,python-freezegun)
+ ("python-parameterized" ,python-parameterized)
+ ("python-pytest" ,python-pytest)
+ ("python-sure" ,python-sure)))
+ (propagated-inputs
+ `(("python-aws-xray-sdk" ,python-aws-xray-sdk)
+ ("python-boto" ,python-boto)
+ ("python-boto3" ,python-boto3)
+ ("python-botocore" ,python-botocore)
+ ("python-cfn-lint" ,python-cfn-lint)
+ ("python-cryptography" ,python-cryptography)
+ ("python-dateutil" ,python-dateutil)
+ ("python-docker" ,python-docker)
+ ("python-idna" ,python-idna)
+ ("python-jinja2" ,python-jinja2)
+ ("python-jose" ,python-jose)
+ ("python-jsondiff" ,python-jsondiff)
+ ("python-mock" ,python-mock)
+ ("python-pytz" ,python-pytz)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-requests" ,python-requests)
+ ("python-responses" ,python-responses)
+ ("python-six" ,python-six)
+ ("python-sshpubkeys" ,python-sshpubkeys)
+ ("python-werkzeug" ,python-werkzeug)
+ ("python-xmltodict" ,python-xmltodict)))
+ (home-page "https://github.com/spulec/moto")
+ (synopsis "Mock out the boto library")
+ (description
+ "@code{moto} is a library designed to easily mock out the
+@code{boto} library.")
+ (license license:asl2.0)))
+
(define-public python-rsa
(package
(name "python-rsa")
@@ -10993,32 +11168,55 @@ document.")
manipulation library.")
(license license:expat)))
+(define-public python-boto
+ (package
+ (name "python-boto")
+ (version "2.49.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "boto" version))
+ (sha256
+ (base32
+ "0njy09c4wjx7ipxhwi6vv404nflyiasl78vwwxxpclnql903n3ga"))))
+ (build-system python-build-system)
+ (arguments
+ ;; XXX: This package is unmaintained and has problems with newer versions
+ ;; of Python 3 as well as test libraries. 'python-moto' still uses a
+ ;; subset of this library, so keep it around for now, but disable tests.
+ '(#:tests? #f))
+ (propagated-inputs
+ `(("python-paramiko" ,python-paramiko)
+ ("python-requests" ,python-requests)))
+ (home-page "https://github.com/boto/boto")
+ (synopsis "Python interfaces for Amazon Web Services")
+ (description
+ "This package provides various facilities for interacting with Amazon
+Web Services through Python.
+
+This software is unmaintained, and new projects should use @code{boto3} instead.")
+ (license license:expat)))
+
(define-public python-botocore
+ ;; Note: When updating botocore, also make sure that boto3 and awscli
+ ;; are compatible.
(package
(name "python-botocore")
- (version "1.15.26")
+ (version "1.19.22")
(source
(origin
(method url-fetch)
(uri (pypi-uri "botocore" version))
(sha256
(base32
- "1a87pbwkk5vlwz92hy1wizfnpiwn11bhaicr6bmji1i5ybwdhnr8"))))
+ "0iim86x7c6hqmvd61ygz6x6x9glnsfbnyzv2y67qjdcdx8jpkmw7"))))
(build-system python-build-system)
(arguments
;; FIXME: Many tests are failing.
'(#:tests? #f))
(propagated-inputs
`(("python-dateutil" ,python-dateutil)
- ("python-docutils" ,python-docutils)
- ("python-jmespath" ,python-jmespath)))
- (native-inputs
- `(("python-mock" ,python-mock)
- ("python-nose" ,python-nose)
- ("behave" ,behave)
- ("python-tox" ,python-tox)
- ("python-urllib3" ,python-urllib3)
- ("python-wheel" ,python-wheel)))
+ ("python-jmespath" ,python-jmespath)
+ ("python-urllib3" ,python-urllib3)))
(home-page "https://github.com/boto/botocore")
(synopsis "Low-level interface to AWS")
(description "Botocore is a Python library that provides a low-level
@@ -11028,6 +11226,40 @@ interface to the Amazon Web Services (AWS) API.")
(define-public python2-botocore
(package-with-python2 python-botocore))
+(define-public python-boto3
+ (package
+ (name "python-boto3")
+ (version "1.16.22")
+ (home-page "https://github.com/boto/boto3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page) (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0h20hgl4yfl58g75qhb6ibrdmzn47md3srgar7hask14cjmfhfy3"))))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'delete-network-tests
+ ;; Deleting integration tests because they are trying to connect to AWS.
+ (lambda _
+ (delete-file-recursively "tests/integration")
+ #t)))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)
+ ("python-mock" ,python-mock)))
+ (propagated-inputs
+ `(("python-botocore" ,python-botocore)
+ ("python-jmespath" ,python-jmespath)
+ ("python-s3transfer" ,python-s3transfer)))
+ (synopsis "AWS SDK for Python")
+ (description
+ "Boto3 is a Python library for writing programs that interact with
+@acronym{AWS,Amazon Web Services}.")
+ (license license:asl2.0)))
+
(define-public python-pyfiglet
(package
(name "python-pyfiglet")
@@ -14635,22 +14867,20 @@ converting text with ANSI color codes to HTML or LaTeX.")
(define-public python-ddt
(package
(name "python-ddt")
- (version "1.1.3")
+ (version "1.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ddt" version))
(sha256
(base32
- "1lw17420iimhghkgzgax85nn8d1an2d6k2cfvb7j5kwn2dqlr1vk"))))
+ "1niqpzc26sxdbyi46r07n4pma5fjx6crww2539vpfmsf0w6yg585"))))
(build-system python-build-system)
(native-inputs
- `(("python-mock" ,python-mock)
- ("python-nose" ,python-nose)))
+ `(("python-pytest" ,python-pytest)))
(propagated-inputs
- `(("python-six" ,python-six)
- ("python-pyyaml" ,python-pyyaml)))
- (home-page "https://github.com/txels/ddt")
+ `(("python-pyyaml" ,python-pyyaml)))
+ (home-page "https://github.com/datadriventests/ddt")
(synopsis "Data-Driven Tests")
(description
"Data-Driven Tests (@dfn{DDT}) allow you to multiply one test case by
@@ -14658,9 +14888,6 @@ running it with different test data, and make it appear as multiple test
cases.")
(license license:expat)))
-(define-public python2-ddt
- (package-with-python2 python-ddt))
-
(define-public python-pycountry
(package
(name "python-pycountry")
@@ -14801,13 +15028,13 @@ projects.")
(package
(name "python-invoke")
(home-page "https://www.pyinvoke.org/")
- (version "1.3.0")
+ (version "1.4.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "invoke" version))
(sha256
(base32
- "1nn7gad0rvy492acpyhkrp01zsk86acf34qhsvq4xmm6x39788n5"))))
+ "0pg1lpl4583z83i12262v72y1a4cxdcxi7vqhl8dpqv9wszj6gyy"))))
(build-system python-build-system)
(arguments
;; XXX: Requires many dependencies that are not yet in Guix.
@@ -15188,14 +15415,14 @@ builds partial trees by inspecting living objects.")
(define-public python-isbnlib
(package
(name "python-isbnlib")
- (version "3.10.3")
+ (version "3.10.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "isbnlib" version))
(sha256
(base32
- "07qhykv0x60d5rsx5pj6s4q15ri4znczscll3xmpf6gyclac1592"))))
+ "0iin0x2xqwyphyyzd0mzrq5v5xm7b6dlbb294k4dywra5qvbrgzm"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; No test
(home-page "https://github.com/xlcnd/isbnlib")
@@ -15292,13 +15519,13 @@ in other versions.")
(define-public python-mamba
(package
(name "python-mamba")
- (version "0.11.1")
+ (version "0.11.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "mamba" version))
(sha256
(base32
- "1jxy3bva94ac02a0wjsms79rp5104zmalxh8rhqqg6mw95cp6xpr"))))
+ "15m4dpnpv9m60pdaygvwgi43fwqaivs3qxfxhspwrp47sbgwdkvm"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ; No test
(propagated-inputs
@@ -15954,7 +16181,7 @@ by path in a JSON document (see RFC 6901).")
(base32
"0k9pff06lxama3nhsc7cdxbp83422bdy8ifs52i6xkas8hpyzfzr"))))
(build-system python-build-system)
- (native-inputs
+ (propagated-inputs
`(("python-jsonpointer" ,python-jsonpointer)))
(home-page "https://github.com/stefankoegl/python-json-patch")
(synopsis "Applying JSON Patches in Python 2.6+ and 3.x")
@@ -16091,6 +16318,125 @@ and integration into other projects.")
(propagated-inputs
`(("python2-selectors2" ,python2-selectors2))))))
+(define-public python-bagit
+ (package
+ (name "python-bagit")
+ (version "1.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "bagit" version))
+ (sha256
+ (base32
+ "1m6y04qmig0b5hzb35lnaw3d2yfydb7alyr1579yblvgs3da6j7j"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-coverage" ,python-coverage)
+ ("python-mock" ,python-mock)))
+ (home-page "https://libraryofcongress.github.io/bagit-python/")
+ (synopsis "Create and validate BagIt packages")
+ (description "Bagit is a Python library and command line utility for working
+with BagIt style packages. BagIt is a minimalist packaging format for digital
+preservation.")
+ (license license:cc0)))
+
+(define-public python-prov
+ (package
+ (name "python-prov")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "prov" version))
+ (sha256
+ (base32
+ "1vi2fj31vygfcqrkimdmk52q2ldw08g9fn4v4zlgdfgcjlhqyhxn"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-dateutil" ,python-dateutil)
+ ("python-lxml" ,python-lxml)
+ ("python-networkx" ,python-networkx)
+ ("python-rdflib" ,python-rdflib)))
+ (native-inputs
+ `(("graphviz" ,graphviz)
+ ("python-pydot" ,python-pydot)))
+ (home-page "https://github.com/trungdong/prov")
+ (synopsis
+ "W3C Provenance Data Model supporting PROV-JSON, PROV-XML and PROV-O (RDF)")
+ (description
+ "This package provides a library for W3C Provenance Data Model supporting
+PROV-O (RDF), PROV-XML, PROV-JSON import/export.")
+ (license license:expat)))
+
+(define-public python-arcp
+ (package
+ (name "python-arcp")
+ (version "0.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "arcp" version))
+ (sha256
+ (base32
+ "1p8mfyjssa6pbn5dp6pyzv9yy6kwm2rz5jn2kjbq5vy9f9wsq5sw"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "http://arcp.readthedocs.io/")
+ (synopsis
+ "Archive and Package URI parser and generator")
+ (description
+ "@acronym{arcp, Archive and Package} provides functions for creating
+@code{arcp_} URIs, which can be used for identifying or parsing hypermedia files
+packaged in an archive or package, like a ZIP file. arcp URIs can be used to
+consume or reference hypermedia resources bundled inside a file archive or an
+application package, as well as to resolve URIs for archive resources within a
+programmatic framework. This URI scheme provides mechanisms to generate a
+unique base URI to represent the root of the archive, so that relative URI
+references in a bundled resource can be resolved within the archive without
+having to extract the archive content on the local file system. An arcp URI can
+be used for purposes of isolation (e.g. when consuming multiple archives),
+security constraints (avoiding \"climb out\" from the archive), or for
+externally identiyfing sub-resources referenced by hypermedia formats.")
+ (license license:asl2.0)))
+
+(define-public python-shellescape
+ (package
+ (name "python-shellescape")
+ (version "3.8.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/chrissimpkins/shellescape")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0wzccxk139qx1lb2g70f5b2yh9zq15nr2mgvqdbfabg5zm0vf1qw"))))
+ (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 "python" "tests/test_shellescape.py"))
+ #t)))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/chrissimpkins/shellescape")
+ (synopsis
+ "Shell escape a string to safely use it as a token in a shell command")
+ (description
+ "The shellescape Python module defines the @code{shellescape.quote()}
+function that returns a shell-escaped version of a Python string. This is a
+backport of the @code{shlex.quote()} function from Python 3.8 that makes it
+accessible to users of Python 3 versions < 3.3 and all Python 2.x versions.")
+ (license license:expat)))
+
(define-public python-validators
(package
(name "python-validators")
@@ -16179,14 +16525,14 @@ address is valid and really exists.")
(define-public python-marshmallow
(package
(name "python-marshmallow")
- (version "3.0.0b14")
+ (version "3.9.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "marshmallow" version))
(sha256
(base32
- "1digk3f5cfk7wmlka65mc7bzsd96pbsgcsvp6pimd5b4ff9zb5p3"))))
+ "0kizhh3mnhpa08wfnsv1gagy22bpxzxszgbiylkhpz1d8qvwrykk"))))
(build-system python-build-system)
(propagated-inputs
`(("python-dateutil" ,python-dateutil)
@@ -16201,40 +16547,45 @@ Python datatypes.")
complex datatypes to and from native Python datatypes.")
(license license:expat)))
-(define-public python2-marshmallow
- (package-with-python2 python-marshmallow))
-
(define-public python-apispec
(package
(name "python-apispec")
- (version "0.25.3")
+ (version "4.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "apispec" version))
(sha256
(base32
- "0kxa8723zbisx10363yh4mmmn4higxrspymbjfz5zq8f644zagm9"))))
+ "12n4w5zkn4drcn8izq68vmixmqvz6abviqkdn4ip0kaax3jjh3in"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'disable-prance-tests
+ (lambda _
+ ;; Disable validation tests since they require the
+ ;; optional 'prance' library which is not yet in Guix.
+ (substitute* "tests/test_ext_marshmallow_openapi.py"
+ (("def test_openapi_tools_validate.*" all)
+ (string-append "@pytest.mark.xfail\n" all)))))
+ (replace 'check
+ (lambda _
+ (setenv "PYTHONPATH"
+ (string-append "./build/lib:"
+ (getenv "PYTHONPATH")))
+ (invoke "pytest" "-vv"))))))
(propagated-inputs
`(("python-pyyaml" ,python-pyyaml)))
(native-inputs
`(("python-pytest" ,python-pytest)
- ("python-flask" ,python-flask)
- ("python-marshmallow" ,python-marshmallow)
- ("python-tornado" ,python-tornado)
- ("python-bottle" ,python-bottle)
- ("python-mock" ,python-mock)))
+ ("python-marshmallow" ,python-marshmallow)))
(home-page "https://github.com/marshmallow-code/apispec")
- (synopsis "Swagger 2.0 API specification generator")
+ (synopsis "Swagger/OpenAPI specification generator")
(description "@code{python-apispec} is a pluggable API specification
-generator. Currently supports the OpenAPI specification (f.k.a.
-Swagger 2.0).")
+generator. It currently supports the OpenAPI specification, formerly known
+as Swagger.")
(license license:expat)))
-(define-public python2-apispec
- (package-with-python2 python-apispec))
-
(define-public python-flasgger
(package
(name "python-flasgger")
@@ -16282,9 +16633,6 @@ Swagger 2.0).")
from your Flask project. It is a fork of Flask-Swagger.")
(license license:expat)))
-(define-public python2-flasgger
- (package-with-python2 python-flasgger))
-
(define-public python-swagger-spec-validator
(package
(name "python-swagger-spec-validator")
@@ -16614,6 +16962,44 @@ ignoring formatting changes.")
(define-public python2-pydiff
(package-with-python2 python-pydiff))
+(define-public python-pydub
+ (package
+ (name "python-pydub")
+ (version "0.24.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pydub" version))
+ (sha256
+ (base32
+ "0sfwfq7yjv4bl3yqbmizszscafvwf4zr40hzbsy7rclvzyznh333"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-ffmpeg-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((ffmpeg (assoc-ref inputs "ffmpeg")))
+ (substitute* '("pydub/utils.py")
+ (("return \"ffmpeg\"")
+ (string-append "return \"" ffmpeg "/bin/ffmpeg\""))
+ (("return \"ffplay\"")
+ (string-append "return \"" ffmpeg "/bin/ffplay\""))
+ (("return \"ffprobe\"")
+ (string-append "return \"" ffmpeg "/bin/ffprobe\""))
+ (("warn\\(\"Couldn't find ff") "# warn\\(\"Couldn't find ff"))
+ #t))))))
+ (home-page "https://pydub.com")
+ (inputs
+ `(("ffmpeg" ,ffmpeg)))
+ (propagated-inputs
+ `(("python-scipy" ,python-scipy)))
+ (synopsis "Manipulate audio with a high level interface in Python")
+ (description
+ "@code{pydub} makes it easy to manipulate audio in Python. It relies on
+@code{ffmpeg} to open various audio formats.")
+ (license license:expat))) ; MIT license
+
(define-public python-tqdm
(package
(name "python-tqdm")
@@ -17079,14 +17465,14 @@ such as figshare or Zenodo.")
(base32
"183kg1rhzz3hqizvphkd8hlbf1zxfx8737zhfkmqzxi71jmdw7pd"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (delete-file "setup.cfg")
+ (invoke "py.test"))))))
(native-inputs
- `(("python-appdirs" ,python-appdirs)
- ("python-distlib" ,python-distlib)
- ("python-importlib-metadata" ,python-importlib-metadata)
- ("python-filelock" ,python-filelock)
- ("python-six" ,python-six)
- ("python-tox" ,python-tox)
- ("python-virtualenv" ,python-virtualenv)))
+ `(("python-pytest" ,python-pytest)))
(home-page "https://github.com/k-bx/python-semver")
(synopsis "Python helper for Semantic Versioning")
(description "This package provides a Python library for
@@ -17348,6 +17734,47 @@ style guide, even if the original code didn't violate the style guide.")
(define-public python2-yapf
(package-with-python2 python-yapf))
+(define-public python-yq
+ (package
+ (name "python-yq")
+ (version "2.11.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "yq" version))
+ (sha256
+ (base32
+ "1q4rky0a6n4izmq7slb91a54g8swry1xrbfqxwc8lkd3hhvlxxkl"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "yq/__init__.py"
+ (("Popen\\(\\[\"jq")
+ (string-append
+ "Popen([\""
+ (assoc-ref inputs "jq")
+ "/bin/jq")))
+ #t)))))
+ (inputs
+ `(("python-argcomplete" ,python-argcomplete)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-xmltodict" ,python-xmltodict)
+ ("jq" ,jq)))
+ (native-inputs
+ `(("python-coverage" ,python-coverage)
+ ("python-flake8" ,python-flake8)
+ ("python-wheel" ,python-wheel)))
+ (home-page "https://github.com/kislyuk/yq")
+ (synopsis "Command-line YAML/XML processor")
+ (description
+ "This package provides @command{yq} and @command{xq} for processing YAML
+and XML respectively. The processing is done through @{jq}, @command{jq}
+filters can be used to process the data as it passes through.")
+ (license license:asl2.0)))
+
(define-public python-gyp
(let ((commit "5e2b3ddde7cda5eb6bc09a5546a76b00e49d888f")
(revision "0"))
@@ -18084,6 +18511,109 @@ gevent-powered application.")
(define-public python2-gipc
(package-with-python2 python-gipc))
+(define-public python-beautifultable
+ (package
+ (name "python-beautifultable")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "beautifultable" version))
+ (sha256
+ (base32
+ "0wwlbifcbpzy3wfv6yzsxncarsngzizmmxbn6cy5gazlcq7h4k5x"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-wcwidth" ,python-wcwidth)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-setup.py
+ (lambda _
+ (substitute* "setup.py"
+ (("setup\\(")
+ "setup(\n test_suite=\"test\",")))))))
+ (home-page "https://github.com/pri22296/beautifultable")
+ (synopsis "Print ASCII tables for terminals")
+ (description "@code{python-beautifultable} provides a class for easily
+printing tabular data in a visually appealing ASCII format to a terminal.
+
+Features include, but are not limited to:
+@itemize
+@item Full customization of the look and feel of the table
+@item Row and column accessors.
+@item Full support for colors using ANSI sequences or any library.
+@item Plenty of predefined styles and option to create custom ones.
+@item Support for Unicode characters.
+@item Supports streaming table when data is slow to retrieve.
+@end itemize")
+ (license license:expat)))
+
+(define-public python-globber
+ (package
+ (name "python-globber")
+ (version "0.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/asharov/globber")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "055xf7ja7zjhxis0ab5fnfsx16fsvr5fvc6mixqybanwxh8sgfjk"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/asharov/globber")
+ (synopsis "Library for string matching with glob patterns")
+ (description
+ "Globber is a Python library for matching file names against glob patterns.
+In contrast to other glob-matching libraries, it matches arbitrary strings and
+doesn't require the matched names to be existing files. In addition, it
+supports the globstar @code{**} operator to match an arbitrary number of
+path components.")
+ (license license:asl2.0)))
+
+(define-public python-git-hammer
+ (package
+ (name "python-git-hammer")
+ (version "0.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/asharov/git-hammer")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f9xlk86ijzpdj25hr1q4wcy8k72v3w470ngwm9mpdkfj8ng84wr"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-setup.py
+ (lambda _
+ (substitute* "setup.py"
+ (("setup\\(")
+ "setup(\n test_suite=\"test\",")))))))
+ (propagated-inputs
+ `(("python-beautifultable" ,python-beautifultable)
+ ("python-dateutil" ,python-dateutil)
+ ("python-gitpython" ,python-gitpython)
+ ("python-globber" ,python-globber)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-sqlalchemy" ,python-sqlalchemy)
+ ("python-sqlalchemy-utils"
+ ,python-sqlalchemy-utils)))
+ (home-page "https://github.com/asharov/git-hammer")
+ (synopsis "Provide statistics for git repositories")
+ (description
+ "Git Hammer is a statistics tool for projects in git repositories.
+Its major feature is tracking the number of lines authored by each person for every
+commit, but it also includes some other useful statistics.")
+ (license license:asl2.0)))
+
(define-public python-fusepy
(package
(name "python-fusepy")
@@ -18543,79 +19073,37 @@ validation testing and application logic.")
(define-public python-numba
(package
(name "python-numba")
- (version "0.46.0")
+ (version "0.51.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "numba" version))
(sha256
(base32
- "1vnfzcq6fcnkmdms6114d49awvvj5181fl7z1wlha27qc2paxjy2"))))
+ "0s0777m8kq4l96i88zj78np7283v1n4878qfc1gvzb8l45bmkg8n"))))
(build-system python-build-system)
(arguments
- `(#:modules ((guix build utils)
- (guix build python-build-system)
- (ice-9 ftw)
- (srfi srfi-1)
- (srfi srfi-26))
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-proprietary-features
(lambda _
(setenv "NUMBA_DISABLE_HSA" "1")
(setenv "NUMBA_DISABLE_CUDA" "1")
#t))
- (add-after 'unpack 'remove-failing-tests
- (lambda _
- ;; FIXME: These tests fail for unknown reasons:
- ;; test_non_writable_pycache, test_non_creatable_pycache, and
- ;; test_frozen (all in numba.tests.test_dispatcher.TestCache).
- (substitute* "numba/tests/test_dispatcher.py"
- (("def test(_non_writable_pycache)" _ m)
- (string-append "def guix_skip" m))
- (("def test(_non_creatable_pycache)" _ m)
- (string-append "def guix_skip" m))
- (("def test(_frozen)" _ m)
- (string-append "def guix_skip" m)))
-
- ;; These tests fail because we don't run the tests from the build
- ;; directory: test_setup_py_distutils, test_setup_py_setuptools
- ;; They are in numba.tests.test_pycc.TestDistutilsSupport.
- (substitute* "numba/tests/test_pycc.py"
- (("def test(_setup_py_distutils|_setup_py_setuptools)" _ m)
- (string-append "def guix_skip" m)))
-
- ;; These tests fail because our version of Python does not have
- ;; a recognizable front-end for the Numba distribution to use
- ;; to check against.
- (substitute* "numba/tests/test_entrypoints.py"
- (("def test(_init_entrypoint)" _ m)
- (string-append "def guix_skip" m)))
- (substitute* "numba/tests/test_jitclasses.py"
- (("def test(_jitclass_longlabel_not_truncated)" _ m)
- (string-append "def guix_skip" m)))
- #t))
(replace 'check
- (lambda _
- (let ((cwd (getcwd)))
- (setenv "PYTHONPATH"
- (string-append cwd "/build/"
- (find (cut string-prefix? "lib" <>)
- (scandir (string-append cwd "/build")))
- ":"
- (getenv "PYTHONPATH")))
- ;; Something is wrong with the PYTHONPATH when running the
- ;; tests from the build directory, as it complains about not being
- ;; able to import certain modules.
- (with-directory-excursion "/tmp"
- (invoke "python3" "-m" "numba.runtests" "-v" "-m")))
- #t)))))
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ ;; Something is wrong with the PYTHONPATH when running the
+ ;; tests from the build directory, as it complains about not being
+ ;; able to import certain modules.
+ (with-directory-excursion "/tmp"
+ (setenv "HOME" (getcwd))
+ (invoke "python3" "-m" "numba.runtests" "-v" "-m")))))))
(propagated-inputs
`(("python-llvmlite" ,python-llvmlite)
("python-numpy" ,python-numpy)
("python-singledispatch" ,python-singledispatch)))
- ;; Needed for tests.
- (inputs
+ (native-inputs ;for tests
`(("python-jinja2" ,python-jinja2)
("python-pygments" ,python-pygments)))
(home-page "https://numba.pydata.org")
@@ -20131,14 +20619,14 @@ register custom encoders and decoders.")
(define-public python-ujson
(package
(name "python-ujson")
- (version "2.0.3")
+ (version "4.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ujson" version))
(sha256
(base32
- "18z9gb9ggy1r464b9q1gqs078mqgrkj6dys5a47529rqk3yfybdx"))
+ "1lr9lbm76y3ah1463jggwg2hjcb709mpns5f752wxxbgnd0n5kr6"))
(modules '((guix build utils)))
(snippet
'(begin (delete-file-recursively "deps") #t))))
@@ -20172,28 +20660,6 @@ register custom encoders and decoders.")
bindings for Python 3.")
(license license:bsd-3)))
-(define-public python-ujson-1
- (package
- (inherit python-ujson)
- (version "1.35")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "ujson" version))
- (sha256
- (base32
- "11jz5wi7mbgqcsz52iqhpyykiaasila4lq8cmc2d54bfa3jp6q7n"))))
- (arguments
- '(#:phases %standard-phases))
- (native-inputs '())
- (home-page "http://www.esn.me")
- (description
- "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with
-bindings for Python 2.5+ and 3.")))
-
-(define-public python2-ujson-1
- (package-with-python2 python-ujson-1))
-
(define-public python-iocapture
;; The latest release is more than a year older than this commit.
(let ((commit "fdc021c431d0840303908dfc3ca8769db383595c")
@@ -21289,13 +21755,13 @@ information for your operating system.")
(define-public python-canonicaljson
(package
(name "python-canonicaljson")
- (version "1.1.4")
+ (version "1.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "canonicaljson" version))
(sha256
- (base32 "09cpacc8yvcc74i63pdmlfaahh77dnvbyw9zf29wml2zzwqfbg25"))))
+ (base32 "0c86g0vvzdcg3nrcsqnbzlfhpprc2i894p8i14hska56yl27d6w9"))))
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six)
@@ -21717,13 +22183,13 @@ dictionaries.")
(define-public pyzo
(package
(name "pyzo")
- (version "4.10.2")
+ (version "4.11.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyzo" version))
(sha256
- (base32 "1zplxcb78qy8qibifmnsx5i9gnlfmw9n6nr4yflsabpxw57mx4m1"))))
+ (base32 "1jk5f79lj09vnsdk9h01w21p9h49z2hhf8xhkx8471pjbg9vrlzr"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -21733,8 +22199,8 @@ dictionaries.")
;; Tests fail with "Permission denied: '/homeless-shelter'".
(setenv "HOME" "/tmp")
#t)))
- ;; Tests fail with "Uncaught Python exception: invalid literal for
- ;; int() with base 10: 'test'".
+ ;; Tests fail with "Uncaught Python exception: python: undefined
+ ;; symbol: objc_getClass".
#:tests? #f))
(propagated-inputs
`(("python-pyqt" ,python-pyqt)))
@@ -21886,7 +22352,7 @@ allows you, from Python code, to “fix” invalid (X)HTML markup.")
(build-system python-build-system)
(home-page "https://github.com/mattgiles/mujson")
(synopsis "Use the fastest JSON functions available at import time")
- (description "This packages selects the fastest JSON functions available
+ (description "This package selects the fastest JSON functions available
at import time.")
(license license:expat)))
@@ -22223,8 +22689,6 @@ It adds a simple and readable way to print stuff during development.")
(base32
"1ypbyqxlk7n6zibk90js3ybz37xmin3kk0i35g8c51bwqpcfyxg8"))))
(build-system python-build-system)
- (inputs
- `(("tzdata" ,tzdata)))
(propagated-inputs
`(("python-dateutil" ,python-dateutil)
("python-pytz" ,python-pytz)
@@ -22233,7 +22697,8 @@ It adds a simple and readable way to print stuff during development.")
("python-tzlocal" ,python-tzlocal)))
(native-inputs
`(("python-mock" ,python-mock)
- ("python-parameterized" ,python-parameterized)))
+ ("python-parameterized" ,python-parameterized)
+ ("tzdata" ,tzdata-for-tests)))
(arguments
`(;; TODO: Of 23320 tests, 6 fail and 53 error.
#:tests? #f
@@ -22414,6 +22879,41 @@ a Python library to convert RELAX NG schemata in Compact syntax (rnc) to
equivalent schemata in the XML-based default RELAX NG syntax.")
(license license:expat)))
+(define-public python-telethon
+ (package
+ (name "python-telethon")
+ (version "1.17.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LonamiWebs/Telethon")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0l9fhdrq576vllgi9aam45xzw5xi6jhgdv5zz8i4ygssdp7cm8jl"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "py.test" "-v"))
+ #t)))))
+ (propagated-inputs
+ `(("python-rsa" ,python-rsa)
+ ("python-pyaes" ,python-pyaes)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-asyncio" ,python-pytest-asyncio)
+ ("python-pytest-trio" ,python-pytest-trio)))
+ (home-page "https://docs.telethon.dev")
+ (synopsis "Full-featured Telegram client library for Python 3")
+ (description "This library is designed to make it easy to write Python
+programs that can interact with Telegram.")
+ (license license:expat)))
+
(define-public python-citeproc-py
(package
(name "python-citeproc-py")
@@ -22495,3 +22995,124 @@ NestedText is both simple and natural. Only a small number of concepts and rule
be kept in mind when creating it. It is easily created, modified, or viewed with
a text editor and easily understood and used by both programmers and non-programmers.")
(license license:expat))) ; MIT license
+
+(define-public python-parallel
+ (package
+ (name "python-parallel")
+ (version "1.6.4.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.parallelpython.com/downloads/pp/pp-"
+ version ".zip"))
+ (sha256
+ (base32
+ "1mzk4yabxj6r149fswhis18hd8dnag5sj8i4wb06450zq3pi8dh7"))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ; No test suite.
+ (home-page "https://www.parallelpython.com")
+ (synopsis "Parallel and distributed programming for Python")
+ (description "Parallel Python module (PP) provides an easy and efficient
+way to create parallel-enabled applications for SMP computers and clusters.
+PP module features cross-platform portability and dynamic load balancing.
+Thus applications written with PP will parallelize efficiently even on
+heterogeneous and multi-platform clusters (including clusters running other
+applications with variable CPU loads).")
+ (license license:bsd-3)))
+
+(define-public python2-parallel
+ (package-with-python2 python-parallel))
+
+(define-public python-djvulibre
+ (package
+ (name "python-djvulibre")
+ (version "0.8.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-djvulibre" version))
+ (sha256
+ (base32 "1c0lvpg7j2525cv52s3q5sg7hfnakkb8rmghg0jc02gshsxmrj4f"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("ghostscript" ,ghostscript)
+ ("pkg-config" ,pkg-config)
+ ("python-nose" ,python-nose)))
+ (inputs
+ `(("djvulibre" ,djvulibre)
+ ("python-cython" ,python-cython)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ ;; Unit tests try to load the 'dllpath.py' and fail, because it
+ ;; doesn't make sense on GNU/Linux.
+ (delete-file "djvu/dllpath.py")
+ #t)))))
+ (synopsis "Python bindings for DjVuLibre")
+ (description "This is a set of Python bindings for the DjVuLibre library.")
+ (home-page "https://jwilk.net/software/python-djvulibre")
+ (license license:gpl2)))
+
+(define-public python2-djvulibre
+ (package-with-python2 python-djvulibre))
+
+(define-public python-versioneer
+ (package
+ (name "python-versioneer")
+ (version "0.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "versioneer" version))
+ (sha256
+ (base32
+ "1bmg8y78am371rd9b4clf11b8g1h7xvq8q58z03jvgdwpsdx7zm4"))))
+ (build-system python-build-system)
+ (home-page
+ "https://github.com/python-versioneer/python-versioneer")
+ (synopsis
+ "Version-string management for VCS-controlled trees")
+ (description
+ "@code{versioneer} is a tool for managing a recorded version number in
+distutils-based python projects. The goal is to remove the tedious and
+error-prone \"update the embedded version string\" step from your release
+process.")
+ (license license:public-domain)))
+
+(define-public python2-gamera
+ (package
+ (name "python2-gamera")
+ (version "3.4.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://gamera.informatik.hsnr.de/download/"
+ "gamera-" version ".tar.gz"))
+ (sha256
+ (base32 "1g4y1kxk1hmxfsiz682hbxvwryqilnb21ci509m559yp7hcliiyy"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove bundled libraries.
+ (for-each delete-file-recursively
+ '("src/libpng-1.2.5"
+ "src/libtiff"
+ "src/zlib-1.2.8"))))))
+ (build-system python-build-system)
+ (inputs
+ `(("libpng" ,libpng)
+ ("libtiff" ,libtiff)
+ ("python2-wxpython" ,python2-wxpython)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:python ,python-2))
+ (synopsis "Framework for building document analysis applications")
+ (description
+ "Gamera is a toolkit for building document image recognition systems.")
+ (home-page "https://gamera.informatik.hsnr.de/")
+ (license license:gpl2+)))