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.scm1056
1 files changed, 829 insertions, 227 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index cfd2d68219..42670f34c3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26,7 +26,7 @@
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; 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-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016, 2017, 2021 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2016, 2017, 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2021 Arun Isaac <arunisaac@systemreboot.net>
@@ -80,7 +80,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, 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021, 2022 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>
@@ -92,8 +92,8 @@
;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2019 Kristian Trandem <kristian@devup.no>
;;; 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, 2022 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Ellis Kenyő <me@elken.dev>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
@@ -113,6 +113,9 @@
;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be>
;;; Copyright © 2021 ZmnSCPxj <ZmnSCPxj@protonmail.com>
;;; Copyright © 2021 Filip Lajszczak <filip@lajszczak.dev>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -768,21 +771,24 @@ implementation for the Telegram Bot API.")
(define-public python-colorlog
(package
(name "python-colorlog")
- (version "4.1.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "colorlog" version))
- (sha256
- (base32
- "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih"))))
+ (version "6.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "colorlog" version))
+ (sha256
+ (base32 "1s7x0v872h8aks8xp01wmv6hzisxqjrh1svbbcycir0980h76krl"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-pytest))
- (arguments
- `(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "pytest" "-p" "no:logging"))))))
(home-page "https://github.com/borntyping/python-colorlog")
(synopsis "Log formatting with colors for python")
(description "The @code{colorlog.ColoredFormatter} is a formatter for use
@@ -1400,7 +1406,7 @@ approximate nearest neighbor search with Python bindings.")
(define-public python-pyls-black
(package
(name "python-pyls-black")
- (version "0.4.6")
+ (version "0.4.7")
(source
(origin
;; There are no tests in the PyPI tarball.
@@ -1410,12 +1416,27 @@ approximate nearest neighbor search with Python bindings.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0cjf0mjn156qp0x6md6mncs31hdpzfim769c2lixaczhyzwywqnj"))))
+ (base32 "0bkhfnlik89j3yamr20br4wm8975f20v33wabi2nyxvj10whr5dj"))
+ ;; Patch to work with python-lsp-server. Taken from
+ ;; <https://github.com/rupert/pyls-black/pull/37>.
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* "setup.cfg"
+ (("python-language-server")
+ "python-lsp-server"))
+ (substitute* '("pyls_black/plugin.py" "tests/test_plugin.py")
+ (("pyls_format_document")
+ "pylsp_format_document")
+ (("pyls_format_range")
+ "pylsp_format_range")
+ (("from pyls([ \\.])" _ char)
+ (string-append "from pylsp" char)))))))
(build-system python-build-system)
(arguments
`(#:test-target "pytest"))
(propagated-inputs
- (list python-black python-language-server python-toml))
+ (list python-black python-lsp-server python-tomli))
(native-inputs
(list python-flake8 python-isort python-mypy python-pytest
python-pytest-runner))
@@ -1455,26 +1476,31 @@ approximate nearest neighbor search with Python bindings.")
(define-public python-cftime
(package
(name "python-cftime")
- (version "1.0.4.2")
+ (version "1.5.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cftime" version))
(sha256
- (base32 "0w0gi6jnch38hiygl62j4xkcirv4y3dcwrvxl9p7bsk6j27lzihs"))))
+ (base32 "0l1a22zlhdpgaisibvvm7dhij4vzfm661rnv00y2snpyqxpdgi3d"))))
(build-system python-build-system)
(propagated-inputs
(list python-numpy))
(native-inputs
- (list python-coveralls python-cython python-pytest-cov))
- (home-page "https://github.com/Unidata/cftime")
+ (list python-check-manifest
+ python-coverage
+ python-coveralls
+ python-cython
+ python-pytest-cov
+ python-sphinx
+ python-twine
+ python-wheel))
+ (home-page "https://unidata.github.io/cftime/")
(synopsis "Library for time handling")
(description
"This package provides time-handling functionality that used to be part
of the netcdf4 package before.")
- ;; This package claims to include code under the GPLv3 but is released
- ;; under ISC.
- (license (list license:isc license:gpl3+))))
+ (license license:expat)))
(define-public python-netcdf4
(package
@@ -4024,6 +4050,33 @@ logic-free templating system Mustache.")
(lambda _
(invoke "python" "test_pystache.py")))))))))
+(define-public python-pystitcher
+ (package
+ (name "python-pystitcher")
+ (version "1.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/captn3m0/pystitcher")
+ (commit
+ (string-append "v" version))))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "03yrzqhcsjdj5zprrk3bh5bbyqfy3vfhxra9974vmkir3m121394"))))
+ (build-system python-build-system)
+ (inputs
+ (list python-html5lib python-importlib-metadata python-markdown
+ python-pypdf3 python-validators))
+ (home-page "https://github.com/captn3m0/pystitcher")
+ (synopsis "Declaratively stitch together a PDF file from multiple sources")
+ (description
+ "This package stitches your PDF files together, generating customizable
+bookmarks using a declarative input in the form of a markdown file.")
+ (license license:expat)))
+
(define-public python-joblib
(package
(name "python-joblib")
@@ -4149,6 +4202,77 @@ important tasks for becoming a daemon process:
structure for Python.")
(license license:asl2.0)))
+(define-public autokey
+ (package
+ (name "autokey")
+ (version "0.95.10")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/autokey/autokey")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f0cqfnb49wwdy7zl2f2ypcnd5pc8r8n7z7ssxkq20d4xfxlgamr"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ ;; Tests are deprecated and broken until next version, see
+ ;; https://github.com/autokey/autokey/issues/327
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/autokey/scripting.py"
+ (("\"wmctrl\"")
+ (string-append "\"" (search-input-file inputs "bin/wmctrl") "\""))
+ (("\"zenity\"")
+ (string-append "\"" (search-input-file inputs "bin/zenity") "\"")))
+ (substitute* "autokey-shell"
+ (("'ipython3'")
+ (string-append "'" (search-input-file inputs "bin/ipython3") "'"))
+ (("'python3'")
+ (string-append "'" (search-input-file inputs "bin/python3") "'")))))
+ ;; Use 'prefix' instead of '=' to allow the user to use additional
+ ;; GI paths from their autokey scripts. GUIX_PYTHONPATH is already
+ ;; wrapped with prefix in python-build-system's wrap.
+ (add-before 'wrap 'wrap-autokey-gi
+ (lambda _
+ (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (for-each
+ (lambda (program)
+ (wrap-program program
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+ (map (lambda (name)
+ (string-append #$output "/bin/" name))
+ '("autokey-gtk"
+ "autokey-shell")))))))))
+ (inputs
+ (list bash-minimal ; for wrap-program
+ gtksourceview-3
+ libappindicator
+ libnotify
+ python-dbus
+ python-ipython
+ python-pygobject
+ python-pyinotify
+ python-pyqt+qscintilla
+ python-xlib
+ wmctrl
+ zenity))
+ (home-page "https://github.com/autokey/autokey")
+ (synopsis
+ "Keyboard and GUI automation utility")
+ (description
+ "AutoKey is a desktop automation utility for X11. It allows the automation of
+virtually any task by responding to typed abbreviations and hotkeys. It
+offers a full-featured GUI (GTK and QT versions) that makes it highly
+accessible for novices, as well as a scripting interface offering the full
+flexibility and power of the Python language.")
+ (license license:gpl3+)))
+
(define-public python-docutils
(package
(name "python-docutils")
@@ -5084,14 +5208,14 @@ and integrated feature-set for programming Python effectively.")
(define-public python-pathspec
(package
(name "python-pathspec")
- (version "0.7.0")
+ (version "0.9.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pathspec" version))
(sha256
(base32
- "15lvs4awlg8xzl0l4gk9y53xx4yqmqvsv44pglv39m70y85afajn"))))
+ "1cdbdb3s6ldnjpwbi0bgl0xlmw4mbfxk08bbdxc3srx26na4jr75"))))
(build-system python-build-system)
(home-page "https://github.com/cpburnz/python-path-specification")
(synopsis "Utility library for gitignore style pattern matching of file paths")
@@ -5103,74 +5227,68 @@ matching of file paths.")
(define-public python-black
(package
(name "python-black")
- (version "20.8b1")
+ (version "21.12b0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "black" version))
(sha256
(base32
- "1spv6sldp3mcxr740dh3ywp25lly9s8qlvs946fin44rl1x5a0hw"))))
+ "1czjwr1bx9ax5l64xfi54sxb1ycdy4s9ciaqg592x7jn79lhzf3p"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'patch-source-shebangs 'patch-extra-shebangs
- (lambda _
- (let ((python3 (which "python3")))
- (substitute* '("tests/data/fmtonoff.py"
- "tests/data/string_prefixes.py"
- "tests/data/function.py"
- "tests/data/python37.py")
+ (add-after 'patch-source-shebangs 'use-absolute-file-names
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let* ((inpts (or native-inputs inputs))
+ (python3 (search-input-file inpts "/bin/python3"))
+ (/bin/false (search-input-file inpts "/bin/false"))
+ (/bin/sleep (search-input-file inpts "/bin/sleep")))
+ (substitute* (find-files "tests" "\\.py$")
(("#!/usr/bin/env python3(\\.[0-9]+)?" _ minor-version)
(string-append "#!" python3 (if (string? minor-version)
minor-version
- "")))))
- #t))
+ ""))))
+ (substitute* "tests/test_primer.py"
+ (("/bin/false") /bin/false)
+ (("/bin/sleep") /bin/sleep)))))
(add-after 'unpack 'disable-broken-tests
(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"
- (("( *)class BlackDTestCase.*" match indent)
- (string-append indent "@unittest.skip(\"no blackd deps\")\n"
- indent "class BlackDTestCase(unittest.TestCase):\n"))
- (("web.Application") "False")
- (("@unittest_run_loop") ""))
-
- ;; Patching the above file breaks the self test
- (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))
+ ;; The source formatting test fails because we patch various
+ ;; files; just disable it.
+ (substitute* "tests/test_format.py"
+ (("def test_source_is_formatted" all)
+ (format #f "@pytest.mark.skip(\"Disabled by Guix.\")\n~a"
+ all)))))
;; Remove blackd, because it depends on python-aiohttp and
;; python-aiohttp-cors.
(add-after 'unpack 'remove-entrypoint
(lambda _
(substitute* "setup.py"
(("\\s*\"blackd=blackd:patched_main \\[d\\]\",\n") "")
- (("\"blackd\", ") "")))))))
+ (("\"blackd\", ") ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv")))))))
(propagated-inputs
(list python-click
python-attrs
python-appdirs
python-pathspec
python-mypy-extensions
+ python-platformdirs
python-regex
- python-toml
+ python-tomli
python-typed-ast
python-typing-extensions))
(native-inputs
- (list python-setuptools-scm))
- (home-page "https://github.com/ambv/black")
+ (list python-pytest python-pytest-aiohttp python-setuptools-scm))
+ (home-page "https://github.com/psf/black")
(synopsis "The uncompromising code formatter")
(description "Black is the uncompromising Python code formatter.")
(license license:expat)))
@@ -6898,6 +7016,27 @@ the OleFileIO module from PIL, the Python Image Library.")
(define-public python2-olefile
(package-with-python2 python-olefile))
+(define-public python-pypdf3
+ (package
+ (name "python-pypdf3")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyPDF3" version))
+ (sha256
+ (base32 "018hlq9q2qa96vw4j7ppq352znykldwy98h2w9qcpkvpi93sjqhc"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-tqdm))
+ (home-page "https://github.com/sfneal/PyPDF3")
+ (synopsis "Utility to read and write PDFs with Python")
+ (description "PyPDF3 is a pure-python PDF library capable of splitting,
+merging together, cropping, and transforming the pages of PDF files. It can
+also add custom data, viewing options, and passwords to PDF files. It can
+retrieve text and metadata from PDFs as well as merge entire files together.")
+ (license license:bsd-3)))
+
(define-public python-pikepdf
(package
(name "python-pikepdf")
@@ -7097,8 +7236,10 @@ def customize_build(EXTENSIONS, OPTIONS):
del EXTENSIONS['zfp']
del EXTENSIONS['zopfli']
OPTIONS['cythonize']
-")))
- #t)))))
+")))))
+ ;; XXX: The installed scripts import packages that depend on
+ ;; this package; disable import check to avoid the cycle.
+ (delete 'sanity-check))))
(inputs
(list c-blosc
giflib
@@ -7113,6 +7254,7 @@ def customize_build(EXTENSIONS, OPTIONS):
zlib
`(,zstd "lib")))
(propagated-inputs
+ ;; For the Python library.
(list python-numpy))
(native-inputs
;; For building.
@@ -7131,6 +7273,27 @@ buffer transformation, compression, and decompression functions for use in the
tifffile, czifile, and other scientific image input/output modules.")
(license license:bsd-3)))
+(define-public python-executing
+ (package
+ (name "python-executing")
+ (version "0.8.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "executing" version))
+ (sha256
+ (base32 "08q0xh9fd8k41sqpp23q6fb9bf7yj4y2q6sv30pj36vvk8pg8fy2"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; TODO: tests require python-asttokens
+ (native-inputs
+ (list python-setuptools-scm python-toml))
+ (home-page "https://github.com/alexmojaki/executing")
+ (synopsis "Get information about what a Python frame is currently doing")
+ (description "This package lets you get information about what a frame is
+currently doing, particularly the AST node being executed.")
+ (license license:expat)))
+
(define-public python-roifile
(package
(name "python-roifile")
@@ -7315,14 +7478,14 @@ formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
(define-public python-pywavelets
(package
(name "python-pywavelets")
- (version "1.1.1")
+ (version "1.2.0")
(home-page "https://github.com/PyWavelets/pywt")
(source (origin
(method url-fetch)
(uri (pypi-uri "PyWavelets" version))
(sha256
(base32
- "1j88c0r4j1d4mb3f8qhz6nalyx21qrzmsm70rjngnkybd87v8r0s"))))
+ "13csbr6ls9q9ww53z2xwwsj0hpsz88rj2iwp623h0kmv8yq6kgbc"))))
(build-system python-build-system)
(arguments
'(#:modules ((ice-9 ftw)
@@ -8319,6 +8482,41 @@ profile, launches a cluster and returns a view. On program exit it shuts the
cluster down and deletes the throwaway profile.")
(license license:expat)))
+(define-public python-ipython-sql
+ (package
+ (name "python-ipython-sql")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ipython-sql" version))
+ (sha256
+ (base32 "0v74ayc6vw98f4jljmwy45qpqbcbhlrb4g1qdyypq9sppxcqx21y"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda _
+ ;; The "NEWS.rst" file is missing from the PyPI distribution.
+ ;; (see: https://github.com/catherinedevlin/ipython-sql/issues/164)
+ (substitute* "setup.py"
+ (("NEWS = [^\n]*") "")
+ (("long_description=README \\+ '\\\\n\\\\n' \\+ NEWS,")
+ "long_description=README,")))))))
+ (propagated-inputs
+ (list python-ipython
+ python-ipython-genutils
+ python-prettytable
+ python-six
+ python-sqlalchemy
+ python-sqlparse))
+ (home-page "https://github.com/catherinedevlin/ipython-sql")
+ (synopsis "RDBMS access via IPython")
+ (description "This library connects to a database, using SQLAlchemy URL
+connect strings, then issue SQL commands within IPython or IPython Notebook.")
+ (license license:expat)))
+
(define-public python-traitlets
(package
(name "python-traitlets")
@@ -8534,23 +8732,21 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
(define-public python-pari-jupyter
(package
(name "python-pari-jupyter")
- (version "1.3.2")
+ (version "1.4.0")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "pari_jupyter" version))
+ (uri (pypi-uri "pari-jupyter" version))
(sha256
(base32
- "1yash0p422nnin7z58b99d0p23nx79f5m0mainc9hsjg72jhdhr6"))))
+ "1hwjr66vfjsx28qmxrgsp3z0px1xqwxv53byvsrbwbjp4pbp79sz"))))
(build-system python-build-system)
+ (arguments '(#:tests? #f)) ;no test suite
(propagated-inputs
(list python-ipykernel))
(inputs
(list pari-gp readline))
- (arguments
- `(#:tests? #f)) ; no test suite
- (home-page
- "https://github.com/jdemeyer/pari_jupyter")
+ (home-page "https://github.com/jdemeyer/pari-jupyter")
(synopsis "Jupyter kernel for PARI/GP")
(description "The package provides a PARI/GP kernel for Jupyter.")
(license license:gpl3+)))
@@ -8936,6 +9132,26 @@ parsing (browser/HTTP) user agent strings.")
(define-public python2-user-agents
(package-with-python2 python-user-agents))
+(define-public python-pydbus
+ (package
+ (name "python-pydbus")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pydbus" version))
+ (sha256
+ (base32 "0b0gipvz7vcfa9ddmwq2jrx16d4apb0hdnl5q4i3h8jlzwp1c1s2"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-pygobject))
+ (home-page "https://github.com/LEW21/pydbus")
+ (synopsis "Pythonic D-Bus library")
+ (description "Pydbus provides a pythonic interface to the D-Bus
+message bus system. Pydbus can be used to access remote objects and
+also for object publication. It is based on PyGI, the Python GObject
+Introspection bindings, which is the recommended way to use GLib from Python.")
+ (license license:lgpl2.1+)))
+
(define-public python-dbus
(package
(name "python-dbus")
@@ -9116,14 +9332,14 @@ some are not yet implemented).")
(define-public python-netifaces
(package
(name "python-netifaces")
- (version "0.10.9")
+ (version "0.11.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "netifaces" version))
(sha256
(base32
- "1wxby874kcr3pp4ygzk5aiarbzhg1yi093d56s1qg4k2s7yrzvid"))))
+ "0cnajf5rl4w1sa72j921scbigr6zndig56cq8ggpx45jdqa7jfh4"))))
(build-system python-build-system)
(home-page "https://github.com/al45tair/netifaces")
(synopsis
@@ -9820,6 +10036,113 @@ entire set of Emoji codes as defined by the Unicode Consortium is supported in
addition to a bunch of aliases.")
(license license:bsd-3)))
+(define-public python-sarge
+ (package
+ (name "python-sarge")
+ (version "0.1.7.post1") ; post release only to correct errors in metadata
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "sarge" version))
+ (sha256
+ (base32 "0g9a53mfnp96877n1yq2jdk1mcv3xm0d93iisvgcn2prdsp45zv4"))))
+ (build-system python-build-system)
+ (home-page "https://docs.red-dove.com/sarge/")
+ (synopsis "Subprocess wrapper with command pipeline functionality")
+ (description "@code{sarge} is a wrapper for subprocess which provides
+command pipeline functionality.")
+ (license license:bsd-3)))
+
+(define-public python-zipstream-new
+ (package
+ (name "python-zipstream-new")
+ (version "1.1.8")
+ (source
+ (origin
+ (method git-fetch) ; no tests in PyPI release
+ (uri (git-reference
+ (url "https://github.com/arjan-s/python-zipstream")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14vhgg8mcjqi8cpzrw8qzbij2fr2a63l2a8fhil21k2r8vzv92cv"))))
+ (build-system python-build-system)
+ (native-inputs
+ (list python-nose))
+ (home-page "https://github.com/arjan-s/python-zipstream")
+ (synopsis "Zipfile generator that takes input files as well as streams")
+ (description "@code{zipstream.py} is a zip archive generator based on
+@code{zipfile.py}. It was created to generate a zip file generator for
+streaming. This is beneficial for when you want to provide a downloadable
+archive of a large collection of regular files, which would be infeasible
+to generate the archive prior to downloading or of a very large file that
+you do not want to store entirely on disk or on memory.")
+ ;; No copyright headers in the source. The LICENSE file indicates GPL3.
+ (license license:gpl3)))
+
+(define-public python-sentry-sdk
+ (package
+ (name "python-sentry-sdk")
+ (version "1.5.1")
+ (source
+ (origin
+ (method git-fetch) ; no tests in PyPI release
+ (uri (git-reference
+ (url "https://github.com/getsentry/sentry-python")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "128bm136l5zprr3sqqb8j3d6k5i1fhz853mzvh3w8g0w1dw763mx"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest" "-k"
+ (string-append
+ ;; This test requires extra dependencies.
+ "not test_auto_enabling_integrations"
+ "_catches_import_error"
+ ;; Tests below run pip command.
+ " and not test_unhandled_exception"
+ " and not test_timeout_error"
+ " and not test_performance_no_error"
+ " and not test_performance_error"
+ " and not test_traces_sampler_gets_correct"
+ "_values_in_sampling_context"
+ " and not test_handled_exception"
+ ;; Tests below require network.
+ " and not test_crumb_capture"
+ " and not test_crumb_capture"
+ " and not test_crumb_capture_hint"
+ " and not test_httplib_misuse"
+ ;; Fails with IndexError.
+ " and not test_session_mode_defaults_to"
+ "_request_mode_in_wsgi_handler"))))))))
+ (native-inputs
+ (list python-django
+ python-executing
+ python-gevent
+ python-jsonschema
+ python-mock
+ python-pyrsistent
+ python-pytest
+ python-pytest-cov
+ python-pytest-django
+ python-pytest-forked
+ python-pytest-localserver
+ python-werkzeug))
+ (propagated-inputs
+ (list python-certifi python-urllib3))
+ (home-page "https://github.com/getsentry/sentry-python")
+ (synopsis "Python SDK for Sentry")
+ (description "This package provides a Python SDK for the Sentry
+application monitoring and error tracking software.")
+ (license license:bsd-2)))
+
(define-public python-pep8
;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
@@ -10080,6 +10403,14 @@ These should be used in preference to using a backslash for line continuation.
(sha256
(base32 "1v0y29xlmbr2q12a4nnpm1dm9aw1mjiys1x8jif4z8c90d63cqm6"))))
(build-system python-build-system)
+ (arguments
+ '(#:tests? #f ;no tests
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ ;; Permit newer versions of attrs. Remove for >0.2.
+ (substitute* "setup.py"
+ ((", <21") "")))))))
(propagated-inputs
(list python-attrs python-more-itertools))
(home-page "https://github.com/keisheiled/flake8-implicit-str-concat")
@@ -10786,6 +11117,40 @@ reading and writing MessagePack data.")
(home-page "https://pypi.org/project/msgpack/")
(license license:asl2.0)))
+;; This msgpack library's name changed from "python-msgpack" to "msgpack" with
+;; release 0.5. Some packages like borg still call it by the old name for now.
+;; <https://bugs.gnu.org/30662>
+(define-public python-msgpack-transitional
+ (package
+ (inherit python-msgpack)
+ (name "python-msgpack-transitional")
+ (version "0.5.6")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "msgpack" version))
+ (sha256
+ (base32
+ "1hz2dba1nvvn52afg34liijsm7kn65cmn06dl0xbwld6bb4cis0f"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-msgpack)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'configure-transitional
+ (lambda _
+ ;; Keep using the old name.
+ (substitute* "setup.py"
+ (("TRANSITIONAL = False")
+ "TRANSITIONAL = 1"))
+ ;; This old version is not compatible with Python 3.9
+ (substitute* '("test/test_buffer.py" "test/test_extension.py")
+ ((".tostring\\(") ".tobytes("))
+ (substitute* '("test/test_buffer.py" "test/test_extension.py")
+ ((".fromstring\\(") ".frombytes("))
+ #t))))))))
+
+(define-public python2-msgpack
+ (package-with-python2 python-msgpack))
+
(define-public python-netaddr
(package
(name "python-netaddr")
@@ -11340,6 +11705,35 @@ signature of a file or buffer.")
provides a collection of cache libraries in the same API interface.")
(license license:bsd-3)))
+(define-public python-pylru
+ (package
+ (name "python-pylru")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pylru" version))
+ (sha256
+ (base32 "15yj46307sw703vjfkgnr04dqvaicmfcj0hc6yrciildp55r6bs9"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "test.py")))))))
+ (home-page "https://github.com/jlhutch/pylru")
+ (synopsis "Least recently used (LRU) cache implementation")
+ (description
+ "Pylru implements a true LRU cache along with several support classes.
+Pylru provides a cache class with a simple dict interface. It also provides
+classes to wrap any object that has a dict interface with a cache. Both
+write-through and write-back semantics are supported. Pylru also provides
+classes to wrap functions in a similar way, including a function decorator.")
+ (license license:gpl2+)))
+
(define-public python-legacy-api-wrap
(package
(name "python-legacy-api-wrap")
@@ -11979,26 +12373,28 @@ systems, as a command line tool, and as a Python library.")
(define-public python-bleach
(package
(name "python-bleach")
- (version "3.1.5")
+ (version "4.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bleach" version))
(sha256
- (base32 "0jqa8f1ni10cyf4h7sjpf8mbqlcbkyvmsnli77qrxdcxvc7m4k1w"))))
+ (base32 "1nkibazmw1ry4cfxs9qrkkidxdf2z1hh1b20xq1ahqdsgsrxh009"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv")))))))
(propagated-inputs
- (list python-webencodings python-six))
+ (list python-packaging python-six python-webencodings))
(native-inputs
- (list python-datrie python-genshi python-lxml python-pytest))
+ (list python-pytest))
(home-page "https://github.com/mozilla/bleach")
(synopsis "Whitelist-based HTML-sanitizing tool")
(description "Bleach is an easy whitelist-based HTML-sanitizing tool.")
(license license:asl2.0)))
-(define-public python2-bleach
- (package-with-python2 python-bleach))
-
(define-public python-entrypoints
(package
(name "python-entrypoints")
@@ -12423,32 +12819,30 @@ Jupyter kernels such as IJulia and IRKernel.")
(define-public python-qtconsole
(package
(name "python-qtconsole")
- (version "4.4.3")
+ (version "4.7.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "qtconsole" version))
(sha256
- (base32
- "1b03n1ixzscm0jw97l4dq5iy4fslnqxq5bb8287xb7n2a1gs26xw"))))
+ (base32 "013qgpsm8jzcz3prhq7sxs36l8f7fgagmn3xa010gfhxf7cfldpj"))))
(build-system python-build-system)
(arguments
- ;; XXX: Tests are disabled, because this package needs python-ipython 7,
- ;; but we only have the LTS version 5.x. This means that there might be
- ;; runtime errors, but since this is a dependency of the Jupyter package,
- ;; and Jupyter can be used without the qtconsole we can overlook this for
- ;; now.
- `(#:tests? #f
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda _
(setenv "QT_QPA_PLATFORM" "offscreen")
- #t)))))
+ (setenv "HOME" "/tmp")
+ ;; FIXME: skip a failing test.
+ (substitute* "qtconsole/tests/test_jupyter_widget.py"
+ (("def test_other_output") "def _test_other_output")))))))
(propagated-inputs
- (list python-ipykernel python-ipython python-pyqt))
+ (list python-ipykernel python-ipython-genutils python-jupyter-client
+ python-jupyter-core python-pygments python-pyqt python-pyzmq
+ python-qtpy python-traitlets))
(native-inputs
- (list python-pytest))
+ (list python-flaky python-pytest))
(home-page "https://jupyter.org")
(synopsis "Jupyter Qt console")
(description "This package provides a Qt-based console for Jupyter with
@@ -12828,20 +13222,21 @@ the standard library.")
(define-public python-texttable
(package
(name "python-texttable")
- (version "1.6.2")
+ (version "1.6.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "texttable" version))
(sha256
(base32
- "1x5l77akfc20x52jma9573qp8l8r07q103pm4l0pbizvh4vp1wzg"))))
+ "1sbn821394rix6xgj3zqk743pj6nqm1qz81zgis2bcpp2ng7pvj2"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (invoke "pytest" "tests.py"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv" "tests.py")))))))
(native-inputs
(list python-pytest))
(home-page "https://github.com/foutaise/texttable/")
@@ -14304,13 +14699,13 @@ ISO 8859, etc.).")
(define-public python-anyqt
(package
(name "python-anyqt")
- (version "0.0.11")
+ (version "0.0.13")
(source
(origin
(method url-fetch)
(uri (pypi-uri "AnyQt" version))
(sha256
- (base32 "0gl2czirzjvhbq963i2awxp8kwbc1grh67lpcwfipyn9w3kdwdj4"))))
+ (base32 "0z7myf0mp1qx4gza6ncqyq9whk67vblmh9n3klk19dv4aakjml2f"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ;there are no tests
@@ -14320,8 +14715,7 @@ ISO 8859, etc.).")
;; Delete files related to other operating systems.
(lambda _
(delete-file "AnyQt/QtMacExtras.py")
- (delete-file "AnyQt/QtWinExtras.py")
- #t)))))
+ (delete-file "AnyQt/QtWinExtras.py"))))))
(home-page "https://github.com/ales-erjavec/anyqt")
(synopsis "PyQt4/PyQt5 compatibility layer")
(description "AnyQt is a PyQt4/PyQt5 compatibility layer.")
@@ -14382,7 +14776,7 @@ applications.")
(define-public python-qasync
(package
(name "python-qasync")
- (version "0.15.0")
+ (version "0.22.0")
(source
(origin
;; There are no tests in the PyPI tarball.
@@ -14392,7 +14786,7 @@ applications.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0va9h6v102d7mxz608banjc0l0v02dq3ywhr5i4nqaxx3qkazc2l"))))
+ (base32 "1q9cllrwf94whr0f6mipa0hdq1rcyqvklwx19g35g2dav8f3xkjl"))))
(build-system python-build-system)
(arguments
`(#:test-target "pytest"
@@ -14400,8 +14794,7 @@ applications.")
(modify-phases %standard-phases
(add-before 'check 'set-qpa
(lambda _
- (setenv "QT_QPA_PLATFORM" "offscreen")
- #t)))))
+ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
(native-inputs
(list python-pytest python-pytest-runner))
(propagated-inputs
@@ -15016,7 +15409,24 @@ development version of CPython that are not available in older releases.")
;; Many tests connect to the network or are otherwise flawed.
;; https://github.com/PythonCharmers/python-future/issues/210
(arguments
- `(#:tests? #f))
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'sanity-check
+ (let ((sanity-check (assoc-ref %standard-phases 'sanity-check)))
+ (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+ (let* ((files (find-files (site-packages inputs outputs)
+ "top_level\\.txt"))
+ (backups (map (lambda (f) (string-append f ".bak"))
+ files)))
+ (for-each copy-file files backups)
+ (substitute* files
+ ;; Nobody be usin' winreg on Guix
+ ;; Also, don't force users to have tkinter when they don't
+ ;; need it
+ (("(winreg|tkinter)") ""))
+ (apply sanity-check args)
+ (for-each rename-file backups files))))))))
(home-page "https://python-future.org")
(synopsis "Single-source support for Python 3 and 2")
(description
@@ -15905,10 +16315,13 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.")
(list python-cachecontrol
python-cachy
python-cleo
- python-clikit
+ python-crashtest
+ python-entrypoints
python-html5lib
python-keyring
- python-msgpack
+ ; Use of deprecated version of msgpack reported upstream:
+ ; https://github.com/python-poetry/poetry/issues/3607
+ python-msgpack-transitional
python-packaging
python-pexpect
python-pip
@@ -18234,7 +18647,7 @@ multitouch applications.")
(define-public python-isort
(package
(name "python-isort")
- (version "5.7.0")
+ (version "5.10.1")
(source
(origin
(method git-fetch)
@@ -18247,11 +18660,17 @@ multitouch applications.")
(snippet '(for-each delete-file (find-files "." "\\.whl$")))
(sha256
(base32
- "0phq4s911mjjdyr5h5siz93jnpkqb2qgphgcfk6axncgxr8i7vi1"))))
+ "09spgl2k9xrprr5gbpfc91a8p7mx7a0c64ydgc91b3jhrmnd9jg1"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ ;; Permit newer versions of black.
+ (substitute* "example_isort_formatting_plugin/pyproject.toml"
+ (("\\^20\\.08b1")
+ ">= 20.08b1"))))
;; A foretaste of what our future python-build-system will need to
;; do.
(replace 'build
@@ -18268,6 +18687,7 @@ multitouch applications.")
(let ((out (assoc-ref outputs "out")))
;; Patch to use the core poetry API.
(substitute* '("example_isort_formatting_plugin/pyproject.toml"
+ "example_isort_sorting_plugin/pyproject.toml"
"example_shared_isort_profile/pyproject.toml")
(("poetry>=0.12")
"poetry-core>=1.0.0")
@@ -18279,6 +18699,7 @@ multitouch applications.")
"--no-isolation" "--outdir=dist"
source-directory))
'("example_isort_formatting_plugin"
+ "example_isort_sorting_plugin"
"example_shared_isort_profile"))
;; Install them to temporary storage, for the test.
(setenv "HOME" (getcwd))
@@ -18292,18 +18713,19 @@ multitouch applications.")
(setenv "PATH" (string-append (getenv "PATH") ":" bin)))
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv" "tests/unit/"
+ "-k" "not test_gitignore" ;requires git
"--ignore=tests/unit/test_deprecated_finders.py")))))))
(native-inputs
- `(("git" ,git-minimal)
- ("python-black" ,python-black)
- ("python-colorama" ,python-colorama)
- ("python-hypothesmith" ,python-hypothesmith)
- ("python-libcst" ,python-libcst-minimal)
- ("python-poetry-core" ,python-poetry-core)
- ("python-pylama" ,python-pylama)
- ("python-pypa-build" ,python-pypa-build)
- ("python-pytest-mock" ,python-pytest-mock)
- ("python-pytest" ,python-pytest)))
+ (list python-black
+ python-colorama
+ python-hypothesmith
+ python-libcst-minimal
+ python-natsort
+ python-poetry-core
+ python-pylama
+ python-pypa-build
+ python-pytest-mock
+ python-pytest))
(home-page "https://github.com/PyCQA/isort")
(synopsis "Python utility/library to sort python imports")
(description "@code{python-isort} is a python utility/library to sort
@@ -18749,6 +19171,19 @@ multitouch applications.")
(define-public python2-packaging
(package-with-python2 python-packaging))
+;; TODO(staging): merge with python-packaging-bootstrap.
+(define-public python-packaging-next
+ (package
+ (inherit python-packaging)
+ (version "21.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "packaging" version))
+ (sha256
+ (base32
+ "1sygirdrqgv4f1ckh9nhpcw1yfidrh3qjl86wq8vk6nq4wlw8iyx"))))))
+
(define-public python-relatorio
(package
(name "python-relatorio")
@@ -19211,13 +19646,13 @@ multitouch applications.")
(define-public python-validators
(package
(name "python-validators")
- (version "0.14.2")
+ (version "0.18.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "validators" version))
(sha256
(base32
- "024m15j33szd0v8k5l4ccish6n0b4knq81gmb4fq25ynwyyyd4mi"))))
+ "19lypf7hm7p203ay3v8zmckc5rv6889zkfdm16nki1972f99mk9p"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@@ -19310,17 +19745,6 @@ multitouch applications.")
complex datatypes to and from native Python datatypes.")
(license license:expat)))
-(define-public python-marshmallow-3.2
- (package
- (inherit python-marshmallow)
- (version "3.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "marshmallow" version))
- (sha256
- (base32 "1w18klwj0z9bqxj252qpj1hz8l46nl27sbc89rkajc7mln73wbws"))))))
-
(define-public python-marshmallow-jsonapi
(package
(name "python-marshmallow-jsonapi")
@@ -19333,7 +19757,7 @@ multitouch applications.")
(base32 "1d9pxcgmln4gls99vwj1h24qv0lz7fb2jqmqrsiv1pid1snc125x"))))
(build-system python-build-system)
(propagated-inputs
- (list python-marshmallow-3.2))
+ (list python-marshmallow))
(native-inputs
(list python-faker
python-flake8
@@ -19458,26 +19882,24 @@ multitouch applications.")
"1b28j265kvibgxrgxx0gwfm6cmv252c8ph1j2vb0cpms8ph5if5v"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ '(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-ssh
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "libcloud/compute/ssh.py"
- (("'ssh'") (string-append "'" (assoc-ref inputs "openssh")
- "/bin/ssh" "'")))
- #t))
+ (("'ssh'")
+ (string-append "'" (search-input-file inputs "/bin/ssh")
+ "'")))))
(add-after 'unpack 'patch-tests
(lambda _
(substitute* "libcloud/test/compute/test_ssh_client.py"
- (("class ShellOutSSHClientTests")
+ (("^class ShellOutSSHClientTests")
"@unittest.skip(\"Guix container doesn't have ssh service\")
- class ShellOutSSHClientTests"))
- #t))
+class ShellOutSSHClientTests"))))
(add-before 'check 'copy-secret
(lambda _
(copy-file "libcloud/test/secrets.py-dist"
- "libcloud/test/secrets.py")
- #t)))))
+ "libcloud/test/secrets.py"))))))
(inputs
(list openssh))
(propagated-inputs
@@ -19797,14 +20219,13 @@ design and layout.")
(define-public python-pkginfo
(package
(name "python-pkginfo")
- (version "1.7.0")
+ (version "1.8.2")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pkginfo" version))
- (sha256
- (base32
- "1d1xn1xmfvz0jr3pj8irdwnwby3r13g0r2gwklr1q5y68p5p16h2"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pkginfo" version))
+ (sha256
+ (base32 "1zrbn2gblb1q1rx0jlbd0vc9h1dm1bj0760p40ff5qjhcw5hsbjl"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -19813,14 +20234,13 @@ design and layout.")
(lambda _
(substitute* "pkginfo/tests/test_installed.py"
(("test_ctor_w_package_no_PKG_INFO")
- "_test_ctor_w_package_no_PKG_INFO"))
- #t)))))
- (home-page
- "https://code.launchpad.net/~tseaver/pkginfo/trunk")
- (synopsis
- "Query metadatdata from sdists, bdists, and installed packages")
+ "_test_ctor_w_package_no_PKG_INFO")))))))
+ (native-inputs
+ (list python-wheel))
+ (home-page "https://code.launchpad.net/~tseaver/pkginfo/trunk")
+ (synopsis "Query metadatdata from sdists, bdists, and installed packages")
(description
- "API to query the distutils metadata written in @file{PKG-INFO} inside a
+ "API to query the distutils metadata written in @file{PKG-INFO} inside a
source distriubtion (an sdist) or a binary distribution (e.g., created by
running bdist_egg). It can also query the EGG-INFO directory of an installed
distribution, and the *.egg-info stored in a \"development checkout\" (e.g,
@@ -19856,9 +20276,6 @@ distributions. It authenticates the user over HTTPS, allows them to pre-sign
their files and supports any packaging format (including wheels).")
(license license:asl2.0)))
-(define-public python2-twine
- (package-with-python2 python-twine))
-
(define-public python-linecache2
(package
(name "python-linecache2")
@@ -23292,34 +23709,40 @@ enumeration library in Python.")
(define-public python-zeroconf
(package
(name "python-zeroconf")
- (version "0.28.8")
+ (version "0.38.1")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "zeroconf" version))
+ (method git-fetch) ; no tests in PyPI release
+ (uri (git-reference
+ (url "https://github.com/jstasiak/python-zeroconf")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb"))))
+ (base32 "1p1a0ywlg5sq0ilcphmz9h4kayscz0q1lyfk57j7mwxyx4gl9cpi"))))
(build-system python-build-system)
- (native-inputs
- (list python-nose))
- (propagated-inputs
- (list python-ifaddr))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ ;; Networking isn't available for these tests.
- (invoke "nosetests" "-v"
- "--exclude" "test_integration_with_listener_ipv6"
- "--exclude" "test_launch_and_close_v6_only"
- "--exclude" "test_launch_and_close_v4_v6"
- "--exclude" "test_launch_and_close"))))))
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest" "-k"
+ (string-append
+ ;; Networking isn't available for these tests.
+ "not test_integration_with_listener_ipv6"
+ " and not test_launch_and_close_v4_v6"
+ " and not test_launch_and_close_context_manager"
+ " and not test_launch_and_close"
+ " and not test_close_multiple_times"))))))))
+ (native-inputs
+ (list python-pytest))
+ (propagated-inputs
+ (list python-ifaddr))
(home-page "https://github.com/jstasiak/python-zeroconf")
(synopsis "Pure Python mDNS service discovery")
- (description
- "Pure Python multicast DNS (mDNS) service discovery library (Bonjour/Avahi
-compatible).")
+ (description "Pure Python multicast DNS (mDNS) service discovery library
+(Bonjour/Avahi compatible).")
(license license:lgpl2.1+)))
(define-public python2-zeroconf
@@ -24333,23 +24756,24 @@ files. These files are used to translate strings in android apps.")
(define-public python-watchdog
(package
(name "python-watchdog")
- (version "0.9.0")
+ (version "2.1.6")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "watchdog" version))
- (sha256
- (base32
- "07cnvvlpif7a6cg4rav39zq8fxa5pfqawchr46433pij0y6napwn"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "watchdog" version))
+ (sha256
+ (base32 "1rx2nyl0cyj0v4ja795cl3gi26577c5wg48syr3byz3ndkgpavm3"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-before 'check 'remove-failing
- (lambda _
- (delete-file "tests/test_inotify_buffer.py")
- (delete-file "tests/test_snapshot_diff.py")
- #t)))))
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest" "-k"
+ ;; This test failed.
+ "not test_kill_auto_restart")))))))
(propagated-inputs
(list python-argh python-pathtools python-pyyaml))
(native-inputs
@@ -24639,14 +25063,14 @@ content models.")
(define-public python-xattr
(package
(name "python-xattr")
- (version "0.9.7")
+ (version "0.9.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xattr" version))
(sha256
(base32
- "0i4xyiqbhjz2g16zbim17zjdbjkw79xsw8k59942vvq4is1cmfxh"))))
+ "0ipkfblyvp5hylahjkw9zss1ii9xnwjypr3b3ncv989szcg7xjq9"))))
(build-system python-build-system)
(propagated-inputs
(list python-cffi))
@@ -24705,14 +25129,14 @@ logging in Python. It also provides some custom formatters and handlers.")
(define-public python-pifpaf
(package
(name "python-pifpaf")
- (version "2.5.0")
+ (version "3.1.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pifpaf" version))
(sha256
(base32
- "1gy9p4nqf70fh38wn4icyfm7i9wrvx22wnjpg71g89wxbz27igaa"))))
+ "19bdmxldc2m570isl7hbqgbb20si4sin7pi5fw8sv9py8dyv2s4n"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -24728,7 +25152,6 @@ logging in Python. It also provides some custom formatters and handlers.")
python-jinja2
python-pbr
python-psutil
- python-six
python-xattr))
(native-inputs
(list python-mock python-os-testr python-requests
@@ -25273,27 +25696,20 @@ cryptographically signed ones).")
(define-public python-dictdiffer
(package
(name "python-dictdiffer")
- (version "0.8.1")
+ (version "0.9.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "dictdiffer" version))
(sha256
(base32
- "1lk3qmy1hkaphk4n7ayfk0wl6m2yvd6r7qkam6yncqfzgkbc1phs"))))
+ "0y3mk74qm2q9hsm37892i1wzn8bbdrvbs4nmnvqwq4z6pxgwzfhp"))))
(build-system python-build-system)
+ (arguments
+ ;; XXX: The PyPI tarball lacks tests and the git repository
+ ;; fails to determine version.
+ '(#:tests? #f))
(native-inputs
- (list python-check-manifest
- python-coverage
- python-isort
- python-mock
- python-pydocstyle
- python-pytest-cache
- python-pytest-cov
- python-pytest-pep8
- python-pytest-runner
- python-pytest
- python-setuptools-scm
- python-tox))
+ (list python-pytest-runner python-setuptools-scm))
(home-page "https://github.com/inveniosoftware/dictdiffer")
(synopsis "Diff and patch Python dictionary objects")
(description
@@ -25382,34 +25798,35 @@ intended for validating data coming into Python as JSON, YAML, etc.")
(define-public python-cmd2
(package
(name "python-cmd2")
- (version "1.0.2")
+ (version "2.3.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cmd2" version))
(sha256
(base32
- "1f18plbc9yyvhn0js3d2bii9yld8zfl775gxsaw9jza5pmlg9ss2"))))
+ "0h1naik558qh48gx2iyy0a0khvw5fz0in69y84mbrhsm9nq7w3bm"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (invoke "pytest" "-vv" "-k"
+ ;; These tests fail because no EDITOR is in PATH.
+ "not test_find_editor_not_specified \
+and not test_transcript")
+ (format #t "test suite not run~%")))))))
(propagated-inputs
(list python-attrs python-colorama python-pyperclip python-wcwidth))
(native-inputs
- (list python-codecov
- python-coverage
- python-doc8
- python-flake8
- python-invoke
+ (list python-invoke
python-mock
python-pytest
python-pytest-cov
python-pytest-mock
- python-setuptools-scm
- python-sphinx
- python-sphinx-autobuild
- python-sphinx-rtd-theme
- python-tox
- python-twine
- which))
+ python-setuptools-scm))
(home-page "https://github.com/python-cmd2/cmd2")
(synopsis "Tool for building interactive command line applications")
(description
@@ -25591,17 +26008,31 @@ positioning, and keyboard input.")
(define-public python-readme-renderer
(package
(name "python-readme-renderer")
- (version "26.0")
+ (version "32.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "readme_renderer" version))
(sha256
(base32
- "13fnrv7z3y0yfafzcjbl55cqxncvbxadr72ql4l29pgyvrqxpsfb"))))
+ "11av194kgq6mvp2afpapkb6vyn3y14gingmgsp3n10krlspvw4mm"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'loosen-cmarkgfm-dependency
+ (lambda _
+ ;; Permit newer versions of cmarkgfm.
+ (substitute* "setup.py"
+ (("cmarkgfm>=0\\.5\\.0,<0\\.7\\.0")
+ "cmarkgfm>=0.5.0"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv")))))))
(propagated-inputs
- (list python-bleach python-docutils python-pygments python-six))
+ (list python-bleach python-docutils python-pygments
+
+ ;; Optional dependencies.
+ python-cmarkgfm)) ;required by postorius
(native-inputs
(list python-mock python-pytest))
(home-page "https://github.com/pypa/readme_renderer")
@@ -27584,13 +28015,13 @@ compatible with a wide range of versions of the Stripe API.")
(define-public python-platformdirs
(package
(name "python-platformdirs")
- (version "2.4.0")
+ (version "2.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "platformdirs" version))
(sha256
- (base32 "1whycrymqpsl7nsaknmcybzyh4fg4kqk6vd7zwl28kfhnf05wyin"))))
+ (base32 "1njz0h4iky8iglrb85cd07hpa3lp1a2dfr934dj65hxwzvfk61j4"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -27986,3 +28417,174 @@ keyboard-friendly package.")
"This package auto-generates API documentation from Python projects
already existing modules and objects docstrings.")
(license license:agpl3+)))
+
+(define-public python-piexif
+ (package
+ (name "python-piexif")
+ (version "1.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "piexif" version ".zip"))
+ (sha256
+ (base32 "06sz58q4mrw472p8fbnq7wsj8zpi5js5r8phm2hiwfmz0v33bjw3"))
+ (patches
+ (search-patches "python-piexif-fix-tests-with-pillow-7.2.patch"))))
+ (build-system python-build-system)
+ (native-inputs
+ (list unzip python-pillow))
+ (home-page "https://github.com/hMatoba/Piexif")
+ (synopsis "Simplify exif manipulations with Python")
+ (description "Piexif simplifies interacting with EXIF data in
+Python. It includes the tools necessary for extracting, creating,
+manipulating, converting and writing EXIF data to JPEG, WebP and TIFF files.")
+ (license license:expat)))
+
+(define-public python-pyrss2gen
+ (package
+ (name "python-pyrss2gen")
+ (version "1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyRSS2Gen" version))
+ (sha256
+ (base32 "1rvf5jw9hknqz02rp1vg8abgb1lpa0bc65l7ylmlillqx7bswq3r"))))
+ (build-system python-build-system)
+ (home-page "http://dalkescientific.com/Python/PyRSS2Gen.html")
+ (synopsis "Generate RSS 2.0 feeds using a Python data structure")
+ (description "PyRSS2Gen is the interface to generate RSS 2.0 feeds.
+PyRSS2Gen builds the feed up by using a XML generator.")
+ (license license:bsd-3)))
+
+(define-public python-yapsy
+ (package
+ (name "python-yapsy")
+ (version "1.12.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Yapsy" version))
+ (sha256
+ (base32 "12rznbnswfw0w7qfbvmmffr9r317gl1rqg36nijwzsklkjgks4fq"))))
+ (build-system python-build-system)
+ (home-page "http://yapsy.sourceforge.net")
+ (synopsis "Simple plugin system for Python applications")
+ (description "Yapsy, or Yet Another Plugin SYstem, is a small library
+implementing the core mechanisms needed to build a plugin system into a wider
+application.
+
+The main purpose is to depend only on Python's standard libraries and to
+implement only the basic functionalities needed to detect, load and keep track
+of several plugins.")
+ (license license:bsd-3)))
+
+(define-public python-doit
+ (package
+ (name "python-doit")
+ (version "0.34.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "doit" version))
+ (sha256
+ (base32 "0bf0m9n0hyjvjpv051zd26725j8jr23gyvc37v3kkadwbh8dxwcf"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-cloudpickle python-pyinotify))
+ (native-inputs
+ (list python-pytest))
+ (home-page "https://pydoit.org")
+ (synopsis "Automation tool to execute any kind of task in a build-tools
+fashion")
+ (description "doit is an automation tool that brings the power of
+build-tools to execute any kind of task.
+
+A task describes some computation to be done (actions), and contains some
+extra meta-data. The actions can be external programs or Python functions. A
+single task may define more than one action.doit uses the task’s meta-data
+to:
+
+@itemize
+@item cache task results
+@item correct execution order
+@item parallel execution
+@item powerful dependency system
+@end itemize")
+ (license license:expat)))
+
+(define-public python-phpserialize
+ (package
+ (name "python-phpserialize")
+ (version "1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "phpserialize" version))
+ (sha256
+ (base32 "19qgkb9z4zjbjxlpwh2w6pxkz2j3iymnydi69jl0jg905lqjsrxz"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ ;; tests missing in pypi archive, anhow they are quite simple and not worth any hassle
+ #:tests? #f))
+ (home-page "http://github.com/mitsuhiko/phpserialize")
+ (synopsis "Python port of the serialize and unserialize functions of PHP")
+ (description
+ "This package provides a port of the serialize and unserialize functions of PHP for Python")
+ (license license:bsd-3)))
+
+(define-public nikola
+ (package
+ (name "nikola")
+ (version "8.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Nikola" version))
+ (sha256
+ (base32 "1vspzvi4039zgjc93bspqjb384r6c9ksvmidbp8csws2pdbc7sh5"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-babel
+ python-blinker
+ python-dateutil
+ python-docutils
+ python-doit
+ python-jinja2 ;; for themes
+ python-lxml
+ python-mako
+ python-markdown
+ python-natsort
+ python-notebook ;; for ipynb
+ python-phpserialize ;; for wordpress import
+ python-piexif
+ python-pillow
+ python-pygments
+ python-pyrss2gen
+ python-requests
+ python-ruamel.yaml ;; for YAML metadata
+ python-unidecode
+ python-yapsy))
+ (native-inputs
+ (list python-coverage
+ python-flake8
+ python-freezegun
+ python-pytest
+ python-pytest-cov))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;;(add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "tests" "--no-cov"
+ "-k" "not test_compiling_markdown[hilite]")))))))
+ (home-page "https://getnikola.com/")
+ (synopsis "Modular, fast and simple static website and blog generator")
+ (description "Nikola generates static websites and blogs. Out of the box,
+it supports reStructuredText, Markdown, IPython (Jupyter) Notebooks and HTML,
+and has plugins for many other formats.")
+ (license license:expat)))