summaryrefslogtreecommitdiff
path: root/gnu/packages/python-xyz.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-21 23:39:43 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-21 23:39:43 -0400
commita9429c8f2207841c649438187d6e19046d323a16 (patch)
treea06e4b8a87b6a42742cf6750276746a10b6c2139 /gnu/packages/python-xyz.scm
parentf0136b36ae8c1e9c174043bd50e0e24413c0f345 (diff)
parent49b350fafc2c3ea1db66461b73d4e304cd13ec92 (diff)
Merge branch 'staging' into core-updates.
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r--gnu/packages/python-xyz.scm924
1 files changed, 699 insertions, 225 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6317f5cd98..ba6f2cbcbb 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2017, 2021 Eric Bavier <bavier@posteo.net>
@@ -11,7 +11,7 @@
;;; Copyright © 2015, 2016, 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2015, 2016, 2017, 2019, 2022 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
@@ -27,7 +27,7 @@
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2016, 2017, 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2016, 2017, 2021, 2022 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>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Julien Lepiller <julien@lepiller.eu>
@@ -116,6 +116,8 @@
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2022 Evgeny Pisemsky <evgeny@pisemsky.com>
+;;; Copyright © 2022 drozdov <drozdov@portalenergy.tech>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -229,6 +231,7 @@
#:use-module (gnu packages serialization)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix gexp)
@@ -240,6 +243,24 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
+(define-public python-xmldiff
+ (package
+ (name "python-xmldiff")
+ (version "2.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "xmldiff" version))
+ (sha256
+ (base32 "0qygxi3z1jwb0471k7bh5gcqf7wqm4xhrkmwhf36gjgjw46a5gh5"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-lxml python-six))
+ (home-page "https://github.com/Shoobx/xmldiff")
+ (synopsis "Creates diffs of XML files")
+ (description "This Python tool figures out the differences between two
+similar XML files, in the same way the @command{diff} utility does it.")
+ (license license:expat)))
+
(define-public python-janus
(package
(name "python-janus")
@@ -984,13 +1005,13 @@ access the technical and tag data for video and audio files.")
(define-public python-psutil
(package
(name "python-psutil")
- (version "5.8.0")
+ (version "5.9.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "psutil" version))
(sha256
- (base32 "1immnj532bnnrh1qmk5q3lsw3san8qfk9kxy1cpmy0knmfcwp70c"))))
+ (base32 "09fa4vfhansixvxd3lv664xcrbnfdyfn53hm2wr0rf3bsvdl5646"))))
(build-system python-build-system)
(arguments
;; FIXME: some tests do not return and time out. Some tests fail because
@@ -2014,14 +2035,14 @@ class.")
(define-public python-can
(package
(name "python-can")
- (version "3.3.3")
+ (version "3.3.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-can" version))
(sha256
(base32
- "123lz1bl6xf3d0fvxzr4bg4884yg4m9s21z6xd2m68zhnbv9rmpc"))))
+ "0jclrvyxasaaxr0albq0kqrnrfqdgqxs7m2qw9nd8kfwg8xj4g1d"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -2030,7 +2051,8 @@ class.")
(substitute* "setup.py"
(("mock~=2\\.0") "mock")
(("coverage<5") "coverage")
- (("pytest~=4\\.3") "pytest")
+ (("pytest~=4\\.6") "pytest")
+ (("pytest-timeout~=1\\.3") "pytest-timeout")
(("hypothesis~=4\\.56") "hypothesis"))
#t))
(add-after 'unpack 'fix-broken-tests
@@ -2763,12 +2785,6 @@ system is highly configurable via command line options and embedded
commands.")
(license license:lgpl2.1+)))
-(define-public python2-empy
- (let ((base (package-with-python2 (strip-python2-variant python-empy))))
- (package/inherit base
- (arguments `(,@(package-arguments base)
- #:tests? #t)))))
-
(define-public python2-element-tree
(package
(name "python2-element-tree")
@@ -3155,6 +3171,41 @@ server.")
"@code{pafy} is a python library to retrieve YouTube content and metadata.")
(license license:lgpl3+)))
+(define-public python-miniupnpc
+ (package
+ (name "python-miniupnpc")
+ (version "2.2.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/miniupnp/miniupnp")
+ (commit
+ (string-append
+ "miniupnpc_" (string-replace-substring version "." "_")))))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "03q1rlzvfzm15g1bfw2zqzavlsyaypnaf2k3cz6ha7k5rirkdy0l"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'subdir
+ (lambda* (#:key inputs #:allow-other-keys)
+ (chdir "miniupnpc")
+ (setenv "CC" #$(cc-for-target))
+ (substitute* "Makefile"
+ (("/bin/sh") (search-input-file inputs "/bin/sh"))))))))
+ (inputs (list python)) ;we are building a Python extension
+ (synopsis "UPnP client for Python")
+ (description "Miniupnpc is a client library for Python programs to set up
+port forwards using @acronym{UPnP, Universal Plug and Play}.")
+ (home-page "http://miniupnp.free.fr")
+ (license license:bsd-3)))
+
(define-public python2-funcsigs
(package
(name "python2-funcsigs")
@@ -4620,7 +4671,7 @@ ecosystem, but can naturally be used also by other projects.")
(define-public python-robotframework
(package
(name "python-robotframework")
- (version "4.1.2")
+ (version "4.1.3")
;; There are no tests in the PyPI archive.
(source
(origin
@@ -4630,39 +4681,54 @@ ecosystem, but can naturally be used also by other projects.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0s6lakbd8h1pa4lfdj18sm13gpywszgpcns4hz026a4kam787kby"))
+ (base32 "0j71awmfkwk7prz82kr1zbcl3nrih3396sshrygnqlrdjmgivd3p"))
(patches (search-patches
- "python-robotframework-source-date-epoch.patch"))))
+ "python-robotframework-source-date-epoch.patch"
+ "python-robotframework-ug2html.patch"))))
(build-system python-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-before 'build 'build-and-install-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((doc-output (assoc-ref outputs "doc"))
- (doc (string-append doc-output "/share/"
- ,name "-" ,version "/")))
- (invoke "invoke" "library-docs" "all")
- (mkdir-p doc)
- (copy-recursively "doc/libraries"
- (string-append doc "/libraries")))))
- (replace 'check
- (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"
- (search-input-directory inputs "share/zoneinfo"))
- (setenv "TZ" "Europe/Paris")
-
- (invoke "python" "utest/run.py"))))))
+ `(#:modules ((guix build python-build-system)
+ (guix build utils)
+ (ice-9 ftw)
+ (ice-9 match)
+ (srfi srfi-26))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'build-and-install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "doc")
+ "/share/doc/robotframework")))
+ (invoke "invoke" "library-docs" "all")
+ (invoke "doc/userguide/ug2html.py" "dist") ;user guide
+ (mkdir-p doc)
+ (with-directory-excursion "dist"
+ (define user-guide-dir
+ (match (scandir "." (cut string-prefix?
+ "robotframework-userguide-" <>))
+ ((dir) dir)
+ (_ (error "could not find the user guide directory"))))
+ (copy-recursively user-guide-dir doc)))))
+ (replace 'check
+ (lambda* (#:key native-inputs inputs tests?
+ #:allow-other-keys)
+ (when tests?
+ ;; 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"
+ (search-input-directory
+ (or native-inputs inputs) "share/zoneinfo"))
+ (setenv "TZ" "Europe/Paris")
+ (invoke "python" "utest/run.py")))))))
(native-inputs
`(("python-docutils" ,python-docutils)
("python-jsonschema" ,python-jsonschema)
("python-invoke" ,python-invoke)
+ ("python-pygments" ,python-pygments)
("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")
@@ -4675,20 +4741,17 @@ process automation (RPA).")
(define-public python-robotframework-datadriver
(package
(name "python-robotframework-datadriver")
- (version "1.5.0")
+ (version "1.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "robotframework-datadriver" version))
(sha256
- (base32 "1kv6h47850gdqr8azknkh81z7hw6yz5pjn53mkn71ly4szw4pqb7"))))
+ (base32 "0qa2vry8jr49k5rbrvmkgggzsmis1wv06dp5dvwmp7afm7vjc51k"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-readme-file-name
- (lambda _
- (rename-file "Readme.rst" "README.rst")))
(add-before 'check 'skip-problematic-tests
(lambda _
;; The test file 'tab-csv-file-name.tsv' contains special
@@ -4783,7 +4846,7 @@ trace directly to the terminal to ease debugging.")
(define-public python-robotframework-sshlibrary
(package
(name "python-robotframework-sshlibrary")
- (version "3.7.0")
+ (version "3.8.0")
;; There are no tests in the PyPI archive.
(source
(origin
@@ -4794,16 +4857,18 @@ trace directly to the terminal to ease debugging.")
(file-name (git-file-name name version))
(sha256
(base32
- "09ak22rh9qa9wlpvhkliyybcp4xafjhxsps28wz0pf0030771xav"))))
+ "1fn72hw7xacjjpl4dd6wynh2x63i9rk8iqhj3v640db21qpcnbkw"))
+ (patches (search-patches
+ "python-robotframework-sshlibrary-rf5-compat.patch"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'build 'build-and-install-doc
(lambda* (#:key outputs #:allow-other-keys)
- (let* ((doc-output (assoc-ref outputs "doc"))
- (doc (string-append doc-output "/share/"
- ,name "-" ,version "/")))
+ (let ((doc (string-append
+ (assoc-ref outputs "doc")
+ "/share/doc/robotframework-sshlibrary")))
(invoke "chmod" "-R" "+w" "docs")
(invoke "invoke" "kw-docs" "project-docs")
(mkdir-p doc)
@@ -5075,7 +5140,7 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
(define-public python-pydantic
(package
(name "python-pydantic")
- (version "1.8.2")
+ (version "1.9.0")
(source
(origin
(method git-fetch)
@@ -5084,7 +5149,7 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "06162dss6mvi7wiy2lzxwvzajwxgy8b2fyym7qipaj7zibcqalq2"))))
+ (base32 "14wj3k9007fpbxk7593w6gdqrr68yzrsw4a41sj5ji4cv3r8z18b"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -5238,6 +5303,8 @@ matching of file paths.")
(arguments
`(#:phases
(modify-phases %standard-phases
+ ;; XXX Remove this when updating this package:
+ ;; https://github.com/psf/black/issues/2703#issuecomment-1004752142
(add-after 'unpack 'relax-version-requirements
(lambda _
(substitute* "setup.py"
@@ -5829,12 +5896,13 @@ readable format.")
("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx)
("python-numpydoc" ,python-numpydoc)
- ("texlive" ,(texlive-updmap.cfg (list texlive-cm-super
+ ("texlive" ,(texlive-updmap.cfg (list
+ texlive-capt-of
+ texlive-cm-super
texlive-fonts-ec
texlive-iftex
texlive-pdftex
texlive-amsfonts
- texlive-latex-capt-of
texlive-latex-cmap
texlive-latex-environ
texlive-latex-eqparbox
@@ -5862,7 +5930,7 @@ readable format.")
texlive-latex-upquote
texlive-url
texlive-latex-varwidth
- texlive-latex-wrapfig)))
+ texlive-wrapfig)))
("texinfo" ,texinfo)
("perl" ,perl)
("scipy-sphinx-theme"
@@ -6543,19 +6611,19 @@ toolkits.")
("python-mock" ,python-mock)
("graphviz" ,graphviz)
("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
- texlive-latex-amsmath
- texlive-latex-enumitem
- texlive-latex-expdlist
- texlive-latex-geometry
- texlive-latex-preview
- texlive-latex-type1cm
- texlive-latex-ucs
+ texlive-enumitem
+ texlive-latex-amsmath
+ texlive-latex-expdlist
+ texlive-latex-geometry
+ texlive-latex-preview
+ texlive-latex-type1cm
+ texlive-latex-ucs
- texlive-pdftex
+ texlive-pdftex
- texlive-fonts-ec
- texlive-times
- texlive-txfonts)))
+ texlive-fonts-ec
+ texlive-times
+ texlive-txfonts)))
("texinfo" ,texinfo)
,@(package-native-inputs python-matplotlib)))
(arguments
@@ -7423,26 +7491,22 @@ data, and scientific formats.")
(define-public python-pycparser
(package
(name "python-pycparser")
- (version "2.20")
+ (version "2.21")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pycparser" version))
(sha256
(base32
- "1w0m3xvlrzq4lkbvd1ngfm8mdw64r1yxy6n7djlw6qj5d0km6ird"))))
+ "01kjlyn5w2nn2saj8w1rhq7v26328pd91xwgqn32z1zp2bngsi76"))))
(outputs '("out" "doc"))
(build-system python-build-system)
- (native-inputs
- (list pkg-config))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
- (with-directory-excursion "tests"
- (invoke "python" "all_tests.py"))
- #t))
+ (invoke "python" "-m" "unittest" "discover")))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((data (string-append (assoc-ref outputs "doc") "/share"))
@@ -7453,8 +7517,7 @@ data, and scientific formats.")
(copy-file (string-append "." file)
(string-append doc file)))
'("/README.rst" "/CHANGES" "/LICENSE"))
- (copy-recursively "examples" examples)
- #t))))))
+ (copy-recursively "examples" examples)))))))
(home-page "https://github.com/eliben/pycparser")
(synopsis "C parser in Python")
(description
@@ -7788,9 +7851,12 @@ etc. The core of this module is a decorator factory.")
;; The test suite requires libdrmaa which is provided by the cluster
;; environment. At runtime the environment variable DRMAA_LIBRARY_PATH
;; should be set to the path of the libdrmaa library.
- (arguments '(#:tests? #f))
- (native-inputs
- (list python-nose))
+ (arguments
+ '(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ ;; Loading the library fails because DRMAA_LIBRARY_PATH
+ ;; is not configured.
+ (delete 'sanity-check))))
(home-page "https://pypi.org/project/drmaa/")
(synopsis "Python bindings for the DRMAA library")
(description
@@ -7896,7 +7962,10 @@ you to actually draw things with your favorite toolkit.")
(base32 "0v0sgpg6pz8h61f9aqjf5xk0ipr512bbz8dxzjjylksj135qr19l"))))
(build-system python-build-system)
(arguments
- '(#:tests? #f)) ; FIXME: Requires python-cherrypy.
+ '(#:tests? #f ;FIXME: Requires python-cherrypy.
+ #:phases (modify-phases %standard-phases
+ ;; Importing the web server module requires cherrypy, too.
+ (delete 'sanity-check))))
(propagated-inputs
(list python-psutil python-drmaa python-pyzmq))
(home-page "https://github.com/pygridtools/gridmap")
@@ -7910,7 +7979,7 @@ cluster without needing to write any wrapper code yourself.")
(define-public python-honcho
(package
(name "python-honcho")
- (version "1.0.1")
+ (version "1.1.0")
(source
(origin
(method git-fetch)
@@ -7919,7 +7988,7 @@ cluster without needing to write any wrapper code yourself.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "11bd87474qpif20xdcn0ra1idj5k16ka51i658wfpxwc6nzsn92b"))))
+ (base32 "1y0r8dw4pqcq7r4n58ixjdg1iy60lp0gxsd7d2jmhals16ij71rj"))))
(build-system python-build-system)
(native-inputs
(list python-pytest python-mock python-tox which)) ;for tests
@@ -7938,7 +8007,8 @@ cluster without needing to write any wrapper code yourself.")
;; It's easier to run tests after install.
;; Make installed package available for running the tests
(add-installed-pythonpath inputs outputs)
- (invoke "py.test" "-v"))))))
+ ;; Skip failing test_export
+ (invoke "py.test" "-v" "-k" "not test_export"))))))
(home-page "https://github.com/nickstenning/honcho")
(synopsis "Manage Procfile-based applications")
(description
@@ -8238,6 +8308,15 @@ need to use the older and less efficient @code{pkg_resources} package.")
(base32
"1n7qxa1snj06aw45mcfz7bxc46zp7fxj687140g2k6jcnyjmfxrz"))))
(build-system python-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-v")))))))
+ (native-inputs
+ (list python-pytest))
(home-page "https://github.com/alecthomas/importmagic")
(synopsis "Library for adding, removing and managing Python imports")
(description
@@ -8869,6 +8948,7 @@ callback signature using a prototype function.")
Powerful interactive shells, a browser-based notebook, support for interactive
data visualization, embeddable interpreters and tools for parallel
computing.")
+ (properties '((cpe-name . "ipython")))
(license license:bsd-3)))
(define-public python-ipython-documentation
@@ -8916,10 +8996,10 @@ computing.")
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
;; FIXME: It's possible that a smaller union would work just as well.
("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
+ texlive-capt-of
texlive-fonts-ec
texlive-iftex
texlive-pdftex
- texlive-latex-capt-of
texlive-latex-cmap
texlive-latex-environ
texlive-latex-eqparbox
@@ -8947,7 +9027,7 @@ computing.")
texlive-latex-upquote
texlive-url
texlive-latex-varwidth
- texlive-latex-wrapfig)))
+ texlive-wrapfig)))
("texinfo" ,texinfo)))))
(define-public python-urwid
@@ -9612,11 +9692,28 @@ SVG, EPS, PNG and terminal output.")
(uri (pypi-uri "seaborn" version))
(sha256
(base32 "1xpl3zb945sihsiwm9q1yyx84sakk1phcg0fprj6i0j0dllfjifg"))
- (patches (search-patches "python-seaborn-kde-test.patch"))))
+ (patches (search-patches "python-seaborn-kde-test.patch"
+ "python-seaborn-2690.patch"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-tests
+ (lambda _
+ (substitute* "seaborn/tests/test_distributions.py"
+ (("get_contour_color\\(ax\\.collections\\[0\\]\\)")
+ "get_contour_color(ax.collections[0])")
+ (("c\\.get_color\\(\\)") "get_contour_color(c)")
+
+ ;; These three are borked and have been fixed upstream, but
+ ;; there's no simple patch we could apply here, so we just
+ ;; disable them.
+ (("def test_hue_ignores_cmap")
+ "def skip_test_hue_ignores_cmap")
+ (("def test_fill_artists")
+ "def skip_test_fill_artists")
+ (("def test_with_rug")
+ "def skip_test_with_rug"))))
(add-before 'check 'start-xserver
(lambda _
;; There must be a running X server and make check doesn't
@@ -11085,30 +11182,23 @@ third-party code.")
(define-public python-llfuse
(package
(name "python-llfuse")
- (version "1.3.8")
+ (version "1.4.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "llfuse" version))
(sha256
(base32
- "1g2cdhdqrb6m7655qp61pn61pwj1ql61cdzhr2jvl3w4i8877ddr"))))
+ "1jaf790rsxvz3hs9fbr3hrnmg0xzl6a2bqfa10bbbsjsdbcpk762"))))
(build-system python-build-system)
(inputs
(list fuse attr))
(native-inputs
- (list pkg-config))
+ (list pkg-config python-pytest))
(synopsis "Python bindings for FUSE")
(description
"Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
(home-page "https://bitbucket.org/nikratio/python-llfuse/")
- (license license:lgpl2.0+)
- (properties `((python2-variant . ,(delay python2-llfuse))))))
-
-(define-public python2-llfuse
- (let ((base (package-with-python2
- (strip-python2-variant python-llfuse))))
- (package/inherit base
- (propagated-inputs `(("python2-contextlib2" ,python2-contextlib2))))))
+ (license license:lgpl2.0+)))
(define-public python-msgpack
(package
@@ -11416,6 +11506,32 @@ Unicode-aware. It is not intended as an end-user tool.")
(define-public python2-xlrd
(package-with-python2 python-xlrd))
+;; We need this for python-anndata
+(define-public python-xlrd-1
+ (package
+ (inherit python-xlrd)
+ (name "python-xlrd")
+ (version "1.2.0")
+ (source (origin
+ ;; The tests are not included in the PyPI archive.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/python-excel/xlrd")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0sm5p0ii5ayh52ak1jpw0n1kgsv72vdwwp8c3z13l8yf4irsb587"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Some tests depend on writing a temporary file to the user's home
+ ;; directory.
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (setenv "HOME" "/tmp"))))))))
+
;;; Note: this package is unmaintained since 2018 (archived on GitHub).
(define-public python-xlwt
(package
@@ -11641,6 +11757,73 @@ asyncio.")
Python code formatter \"black\".")
(license license:expat)))
+(define-public python-geojson
+ (package
+ (name "python-geojson")
+ (version "2.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "geojson" version))
+ (sha256
+ (base32 "12k5bzqskvq3gqzkryarhdjl0df47y5k9cf8r3clasi2wjnbfjvf"))))
+ (build-system python-build-system)
+ (arguments
+ ;; https://github.com/jazzband/geojson/issues/175
+ `(#:tests? #f))
+ (home-page "https://github.com/jazzband/geojson")
+ (synopsis "Python bindings and utilities for GeoJSON")
+ (description
+ "This package provides Python bindings and utilities for
+@uref{http://geojson.org/, GeoJSON}, a format for encoding geographic data
+structures.")
+ (license license:bsd-3)))
+
+(define-public wfetch
+ (let ((commit "e1cfa37814aebc9eb56ce994ebe877b6a6f9a715")
+ (revision "1"))
+ (package
+ (name "wfetch")
+ (version (git-version "0.1-pre" revision commit))
+ (home-page "https://github.com/Gcat101/Wfetch")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1dmr85plx8zr6s14ym3r32g6crwxghkval5a24ah90ijx4dbn5q5"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:use-setuptools? #f ; no setup.py
+ #:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (share (string-append out "/share")))
+ (mkdir-p share)
+ (substitute* "wfetch/wfetch.py"
+ (("os.sep, 'opt', 'wfetch'") (string-append "'" share "'")))
+ (install-file "wfetch/wfetch.py" bin)
+ (copy-recursively "wfetch/icons" share)))))))
+ (inputs (list python-pyowm python-fire python-termcolor python-requests))
+ (synopsis "Command-line tool to display weather info")
+ (description
+ "This package provides a tool similar to Neofetch/pfetch, but for
+weather: it can display the weather condition, temperature, humidity, etc.
+
+To use it, you must first run:
+
+@example
+export WEATHER_CLI_API=@var{your OpenWeatherMap API key}
+@end example\n")
+ (license license:gpl3+))))
+
(define-public python-get-version
(package
(name "python-get-version")
@@ -11920,14 +12103,14 @@ versions of Python.")
(define-public python-idna
(package
(name "python-idna")
- (version "2.10")
+ (version "3.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "idna" version))
(sha256
(base32
- "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk"))))
+ "0v8f6qjfi5i7qc5icsbv2pi24qy6k6m8wjqjvdf2sxjvlpq3yr4x"))))
(build-system python-build-system)
(home-page "https://github.com/kjd/idna")
(synopsis "Internationalized domain names in applications")
@@ -11939,21 +12122,20 @@ from the earlier standard from 2003. The library is also intended to act as a
suitable drop-in replacement for the “encodings.idna” module that comes with
the Python standard library but currently only supports the older 2003
specification.")
+ (properties `((python2-variant . ,(delay python2-idna))))
(license license:bsd-4)))
-(define-public python-idna-2.7
- (package (inherit python-idna)
- (version "2.7")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "idna" version))
- (sha256
- (base32
- "05jam7d31767dr12x0rbvvs8lxnpb1mhdb2zdlfxgh83z6k3hjk8"))))))
-
-
(define-public python2-idna
- (package-with-python2 python-idna))
+ (let ((base (package-with-python2 (strip-python2-variant python-idna))))
+ (package
+ (inherit base)
+ (version "2.10")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "idna" version))
+ (sha256
+ (base32
+ "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk")))))))
(define-public python-libsass
(package
@@ -11971,17 +12153,27 @@ specification.")
(base32 "1r0kgl7i6nnhgjl44sjw57k08gh2qr7l8slqih550dyxbf1akbxh"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ '(#:phases
(modify-phases %standard-phases
;; Use Guix package of libsass instead of compiling from a checkout.
(add-before 'build 'set-libsass
- (lambda _
- (setenv "SYSTEM_SASS" (assoc-ref %build-inputs "libsass"))
- #t))
+ (lambda _ (setenv "SYSTEM_SASS" "indeed")))
(replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "sasstests.py"))))
+ (add-after 'install 'delete-test
(lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (invoke "pytest" "sasstests.py"))))))
+ ;; Delete sasstests.py because it attempts to open a file
+ ;; that is not installed when loaded, which breaks the sanity
+ ;; check.
+ (delete-file (string-append
+ (assoc-ref outputs "out")
+ "/lib/python"
+ (python-version
+ (dirname (dirname
+ (search-input-file inputs "bin/python"))))
+ "/site-packages/sasstests.py")))))))
(native-inputs
(list python-pytest python-werkzeug))
(inputs
@@ -12607,38 +12799,39 @@ time.")
("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov)
("python-pytest-dependency" ,python-pytest-dependency)
- ("texlive" ,(texlive-updmap.cfg (list texlive-adjustbox
- texlive-amsfonts
- texlive-booktabs
- texlive-caption
- texlive-eurosym
- texlive-fonts-rsfs
- texlive-generic-ulem
- texlive-iftex
- texlive-jknappen
- texlive-latex-amsmath
- texlive-latex-enumitem
- texlive-fancyvrb
- texlive-latex-float
- texlive-fontspec
- texlive-latex-geometry
- texlive-grffile
- texlive-hyperref
- texlive-latex-jknapltx
- texlive-ms
- texlive-oberdiek
- texlive-latex-parskip
- texlive-latex-trimspaces
- texlive-latex-upquote
- texlive-latex-ucs
- texlive-lm
- texlive-mathpazo
- texlive-stringenc
- texlive-tcolorbox
- texlive-titling
- texlive-tools
- texlive-xcolor
- texlive-zapfding)))))
+ ("texlive" ,(texlive-updmap.cfg
+ (list texlive-adjustbox
+ texlive-amsfonts
+ texlive-booktabs
+ texlive-caption
+ texlive-eurosym
+ texlive-fancyvrb
+ texlive-fonts-rsfs
+ texlive-fontspec
+ texlive-generic-ulem
+ texlive-grffile
+ texlive-hyperref
+ texlive-iftex
+ texlive-jknappen
+ texlive-latex-amsmath
+ texlive-latex-enumitem
+ texlive-latex-float
+ texlive-latex-geometry
+ texlive-latex-jknapltx
+ texlive-latex-parskip
+ texlive-latex-trimspaces
+ texlive-latex-ucs
+ texlive-latex-upquote
+ texlive-lm
+ texlive-mathpazo
+ texlive-ms
+ texlive-oberdiek
+ texlive-stringenc
+ texlive-tcolorbox
+ texlive-titling
+ texlive-tools
+ texlive-xcolor
+ texlive-zapfding)))))
(propagated-inputs
(list python-bleach
python-defusedxml
@@ -12654,7 +12847,40 @@ time.")
python-testpath
python-traitlets
;; Required, even if [serve] is not used.
- python-tornado-6))
+ python-tornado-6
+ ;; Required at runtime for `jupyter nbconvert --to=pdf`.
+ (texlive-updmap.cfg (list texlive-adjustbox
+ texlive-amsfonts
+ texlive-booktabs
+ texlive-caption
+ texlive-enumitem
+ texlive-eurosym
+ texlive-fonts-rsfs
+ texlive-generic-iftex
+ texlive-jknappen
+ texlive-latex-amsmath
+ texlive-latex-fancyvrb
+ texlive-latex-float
+ texlive-fontspec
+ texlive-latex-geometry
+ texlive-grffile
+ texlive-hyperref
+ texlive-latex-jknapltx
+ texlive-latex-ms
+ texlive-oberdiek
+ texlive-latex-parskip
+ texlive-latex-trimspaces
+ texlive-latex-upquote
+ texlive-latex-ucs
+ texlive-lm
+ texlive-mathpazo
+ texlive-stringenc
+ texlive-tcolorbox
+ texlive-titling
+ texlive-tools
+ texlive-ulem
+ texlive-xcolor
+ texlive-zapfding))))
(home-page "https://jupyter.org")
(synopsis "Converting Jupyter Notebooks")
(description "The @code{nbconvert} tool, @{jupyter nbconvert}, converts
@@ -12943,19 +13169,40 @@ simulation, statistical modeling, machine learning and much more.")
(define-public python-chardet
(package
(name "python-chardet")
- (version "3.0.4")
+ (version "4.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "chardet" version))
(sha256
(base32
- "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4"))))
+ "1ykr04qyhgpc0h5b7dhqw4g92b1xv7ki2ky910mhy4mlbnhm6vqd"))))
(native-inputs
- (list python-hypothesis python-pytest python-pytest-runner))
+ (list python-pytest))
(build-system python-build-system)
- ;; XXX: Incompatible with Pytest 4: <https://github.com/chardet/chardet/issues/173>.
- (arguments `(#:tests? #f))
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv")))
+ ;; This package provides a 'chardetect' executable that only
+ ;; depends on Python, so customize the wrap phase to avoid
+ ;; adding pytest and friends in order to save size.
+ ;; (See also <https://bugs.gnu.org/25235>.)
+ (replace 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((sitedir (site-packages inputs outputs))
+ (python (dirname (dirname
+ (search-input-file
+ inputs "bin/python"))))
+ (python-sitedir
+ (string-append python "/lib/python"
+ (python-version python)
+ "/site-packages")))
+ (wrap-program (string-append #$output "/bin/chardetect")
+ `("GUIX_PYTHONPATH" ":" suffix
+ ,(list sitedir python-sitedir)))))))))
(home-page "https://github.com/chardet/chardet")
(synopsis "Universal encoding detector for Python 2 and 3")
(description
@@ -12969,14 +13216,34 @@ automatically detect a wide range of file encodings.")
(define-public python-charset-normalizer
(package
(name "python-charset-normalizer")
- (version "2.0.5")
+ (version "2.0.11")
(source
(origin
(method url-fetch)
(uri (pypi-uri "charset-normalizer" version))
(sha256
- (base32 "0rr3iv2xw4rz5ijnfqk229fw85cq6p6rhqqsilm0ldzncblfg63h"))))
+ (base32 "071pi2kd222rjjrjdllffqv3iz4bfaj93a9bfs65907fd6fqlfcq"))))
(build-system python-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ ;; This package provides a 'normalizer' executable that only
+ ;; depends on Python, so customize the wrap phase to avoid
+ ;; adding pytest and friends in order to save size.
+ ;; (See also <https://bugs.gnu.org/25235>.)
+ (replace 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((sitedir (site-packages inputs outputs))
+ (python (dirname (dirname
+ (search-input-file
+ inputs "bin/python"))))
+ (python-sitedir
+ (string-append python "/lib/python"
+ (python-version python)
+ "/site-packages")))
+ (wrap-program (string-append #$output "/bin/normalizer")
+ `("GUIX_PYTHONPATH" ":" suffix
+ ,(list sitedir python-sitedir)))))))))
(native-inputs
(list python-pytest))
(home-page "https://github.com/ousret/charset_normalizer")
@@ -13756,20 +14023,8 @@ concurrent.futures package from Python 3.2")
(synopsis "Promises/A+ implementation for Python")
(description
"Promises/A+ implementation for Python")
- (properties `((python2-variant . ,(delay python2-promise))))
(license license:expat)))
-(define-public python2-promise
- (let ((promise (package-with-python2
- (strip-python2-variant python-promise))))
- (package/inherit promise
- (arguments (substitute-keyword-arguments (package-arguments promise)
- ((#:tests? _) #t)))
- (native-inputs
- `(("python2-futures" ,python2-futures)
- ("python2-pytest" ,python2-pytest)
- ,@(package-native-inputs promise))))))
-
(define-public python-progressbar2
(package
(name "python-progressbar2")
@@ -13877,13 +14132,15 @@ text.")
(substitute* (find-files "tests" "\\.py$")
(("#!/bin/bash") (string-append "#!" bash-exec))))))
(replace 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (lambda* (#:key tests? #:allow-other-keys)
(when tests?
- (add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv" "-m" "not network" "-k"
(string-append
+ ;; XXX: This test is timing sensitive and may
+ ;; fail non-deterministically.
+ "not test_cancel_pending_job"
;; These tests require Docker.
- "not test_terminate_job"
+ " and not test_terminate_job"
" and not test_invoke_function_from_sqs_exception"
" and not test_rotate_secret_lambda_invocations"
;; These tests also require the network.
@@ -13900,7 +14157,7 @@ text.")
python-pytest
python-sure))
(inputs
- `(("bash" ,bash-minimal)))
+ (list bash-minimal))
(propagated-inputs
(list python-aws-xray-sdk
python-boto
@@ -14550,6 +14807,27 @@ It is maintained by the Celery project, and used by kombu as a pure python
alternative when librabbitmq is not available.")
(license license:lgpl2.1+)))
+(define-public python-beniget
+ (package
+ (name "python-beniget")
+ (version "0.4.1")
+ (home-page "https://github.com/serge-sans-paille/beniget")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "beniget" version))
+ (sha256
+ (base32 "035c4f78yllpw2c5p1w92520rilm7nnpsqh7yvi3qmfhi8xlnmbm"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-gast))
+ (synopsis "Extract semantic information about static Python code")
+ (description
+ "Beniget is a collection of analyzers for Python @acronym{AST,
+Abstract Syntax Tree}. It is a building block for writing a static analyzer
+or compiler for Python.")
+ (license license:bsd-3)))
+
(define-public python-txamqp
(package
(name "python-txamqp")
@@ -14793,7 +15071,7 @@ ISO 8859, etc.).")
(list qtbase-5))
(propagated-inputs
(list python-h5py python-numpy python-pyopengl python-scipy
- python-pyqt))
+ python-pyqt-without-qtwebkit))
(home-page "http://www.pyqtgraph.org")
(synopsis "Scientific graphics and GUI library for Python")
(description
@@ -15378,9 +15656,8 @@ CloudFront content delivery network.")
;; Hard-code the path to pkg-config.
(lambda _
(substitute* "pkgconfig/pkgconfig.py"
- (("cmd = 'pkg-config")
- (string-append "cmd = '" (which "pkg-config"))))
- #t))
+ (("'pkg-config'")
+ (string-append "'" (which "pkg-config") "'")))))
(replace 'check
(lambda _
(invoke "nosetests" "test.py"))))))
@@ -16810,7 +17087,7 @@ characters, mouse support, and auto suggestions.")
(invoke "python" "-m" "pytest" "-vv"))
#t)))))
(native-inputs
- (list python-colorama python-docopt python-django-2.2 python-pytest))
+ (list python-colorama python-docopt python-pytest))
(propagated-inputs
(list python-parso))
(home-page "https://github.com/davidhalter/jedi")
@@ -17362,9 +17639,6 @@ multitouch applications.")
;; number of files with other licenses.
(list license:gpl2+ license:asl2.0 license:lgpl2.1+ license:cc-by-sa3.0))))
-(define-public python2-odfpy
- (package-with-python2 python-odfpy))
-
(define-public python-natsort
(package
(name "python-natsort")
@@ -17680,17 +17954,29 @@ multitouch applications.")
(define-public python-pyelftools
(package
(name "python-pyelftools")
- (version "0.25")
+ (version "0.28")
+ (home-page "https://github.com/eliben/pyelftools")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "pyelftools" version))
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "090vdksbz341f7ljvr0zswblw4lspa8qaiikzyjkf318arpxmil9"))))
+ (base32 "1z4fx39c9rds0bd4d2fjjq7n05b1nfxl36pmy523x8knm38l4gpr"))
+ (snippet
+ ;; Delete bundled readelf executable.
+ '(delete-file "test/external_tools/readelf"))))
(build-system python-build-system)
- (home-page
- "https://github.com/eliben/pyelftools")
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Taken from tox.ini.
+ (invoke "python" "test/run_all_unittests.py")
+ (invoke "python" "test/run_examples_test.py")
+ (invoke "python" "test/run_readelf_tests.py")))))))
(synopsis
"Analyze binary and library file information")
(description "This Python library provides interfaces for parsing and
@@ -19135,7 +19421,12 @@ multitouch applications.")
;; TypeError: parse() missing 2 required positional arguments: 'tree' and
;; 'parse_funcs'
;; during test setup.
- `(#:tests? #f))
+ (list #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; translate-toolkit has many optional dependencies (see
+ ;; optional.txt), which the sanity check does not understand.
+ (delete 'sanity-check))))
(home-page "https://toolkit.translatehouse.org")
(synopsis "Tools and API for translation and localization engineering")
(description
@@ -19953,13 +20244,13 @@ class ShellOutSSHClientTests"))))
(define-public python-regex
(package
(name "python-regex")
- (version "2020.6.8")
+ (version "2022.1.18")
(source (origin
(method url-fetch)
(uri (pypi-uri "regex" version))
(sha256
(base32
- "1b3k0zi1pd99q5mk7ri7vcx2y1mq5inm9hk8dryqyhrpkmh4xdp9"))))
+ "05ir92d0cmv8wkafn3r05j5q47l6shg7cpdblp2a8m407b02vwwp"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -20374,32 +20665,6 @@ executed more than a given number of times during a given period.")
(define-public python2-ratelimiter
(package-with-python2 python-ratelimiter))
-(define-public python-dukpy
- (package
- (name "python-dukpy")
- (version "0.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/kovidgoyal/dukpy")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "13h21nqzasv4zj32xs61brmc106pr2cx243672crcmwxxnjgaxls"))))
- (build-system python-build-system)
- (home-page "https://github.com/kovidgoyal/dukpy")
- (synopsis "Run JavaScript in python")
- (description
- "dukpy is a JavaScript runtime environment for Python using the duktape
-embeddable JavaScript engine.")
- ;; Dukpy is licensed under MIT like the embedded duktape library,
- ;; with 'errors.c' as GPL3.
- (license (list license:expat license:gpl3))))
-
-(define-public python2-dukpy
- (package-with-python2 python-dukpy))
-
(define-public python-jsonrpclib-pelix
(package
(name "python-jsonrpclib-pelix")
@@ -21695,7 +21960,12 @@ working with iterables.")
(inputs
(list python-latexcodec python-pyyaml python-six))
(arguments
- `(#:test-target "nosetests"))
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "nosetests")))))))
(home-page "https://pybtex.org/")
(synopsis "BibTeX-compatible bibliography processor")
(description "Pybtex is a BibTeX-compatible bibliography processor written
@@ -22630,7 +22900,7 @@ N-dimensional arrays for Python.")
(define-public python-anndata
(package
(name "python-anndata")
- (version "0.7.6")
+ (version "0.7.8")
(source
(origin
;; The tarball from PyPi doesn't include tests.
@@ -22641,7 +22911,7 @@ N-dimensional arrays for Python.")
(file-name (git-file-name name version))
(sha256
(base32
- "1q30bsfsq9xfqm8nmabg3bjh9gix3yng0170xiiyw1lin4xncf0q"))))
+ "1rrr9xfdaf00ixj5gyym75bl78gkaj55yfw3wjhvx0pdwqpwp9py"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -22656,6 +22926,9 @@ N-dimensional arrays for Python.")
(replace 'build
(lambda _
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" ,version)
+ (substitute* "anndata/_metadata.py"
+ (("__version__ =.*")
+ (string-append "__version__ = \"" ,version "\"\n")))
;; ZIP does not support timestamps before 1980.
(setenv "SOURCE_DATE_EPOCH" "315532800")
(invoke "flit" "build")))
@@ -22667,8 +22940,7 @@ N-dimensional arrays for Python.")
(format #true wheel)
(invoke "python" "-m" "pip" "install"
wheel (string-append "--prefix=" out)))
- (find-files "dist" "\\.whl$")))
- #t)))))
+ (find-files "dist" "\\.whl$"))))))))
(propagated-inputs
(list python-h5py
python-importlib-metadata
@@ -22677,6 +22949,7 @@ N-dimensional arrays for Python.")
python-packaging
python-pandas
python-scipy
+ python-xlrd-1
python-zarr))
(native-inputs
(list python-joblib python-pytest python-toml python-flit
@@ -23600,6 +23873,40 @@ a mypy plugin that smooths over some limitations in the basic type hints.
;; Either license applies.
(license (list license:expat license:asl2.0))))
+(define-public python-trio-websocket
+ (package
+ (name "python-trio-websocket")
+ (version "0.9.2")
+ (source
+ (origin
+ (method git-fetch) ;no tests in pypi archive
+ (uri (git-reference
+ (url "https://github.com/HyperionGray/trio-websocket")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1yk2ak991kbl30xg8ldpggack1lwkizd7s5cpr28ir34z8iyjnpi"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv")))))))
+ (native-inputs (list python-pytest python-pytest-trio python-trustme))
+ (propagated-inputs (list python-async-generator python-trio python-wsproto))
+ (home-page "https://github.com/HyperionGray/trio-websocket")
+ (synopsis "WebSocket library for Trio")
+ (description "This library implements both server and client aspects of
+the @url{https://tools.ietf.org/html/rfc6455, the WebSocket protocol},
+striving for safety, correctness, and ergonomics. It is based on the
+@url{https://wsproto.readthedocs.io/en/latest/, wsproto project}, which is a
+@url{https://sans-io.readthedocs.io/, Sans-IO} state machine that implements
+the majority of the WebSocket protocol, including framing, codecs, and events.
+This library handles I/O using @url{https://trio.readthedocs.io/en/latest/,
+the Trio framework}.")
+ (license license:expat)))
+
(define-public python-humanize
(package
(name "python-humanize")
@@ -24421,6 +24728,22 @@ itself.")
(base32
"1p5h3dnpbsjmqrvil96s71asc6i3gpinmbrabqmwnrsxprz7r3ns"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-tests
+ (lambda _
+ ;; Fix test failures on Python 3.9.9+.
+ ;; Taken via <https://github.com/neithere/argh/issues/148>.
+ (substitute* "test/test_integration.py"
+ (("assert run\\(p, '(bar|orig-name|nest bar)', exit=True\\)\
+\\.startswith\\('invalid choice'\\)" _ name)
+ (string-append "assert 'invalid choice' in \
+run(p, '" name "', exit=True)")))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv")))))))
(propagated-inputs
(list python-iocapture python-mock python-pytest python-pytest-cov
python-pytest-xdist))
@@ -25808,7 +26131,7 @@ dictionaries.")
(define-public pyzo
(package
(name "pyzo")
- (version "4.12.0")
+ (version "4.12.3")
(source
(origin
(method git-fetch)
@@ -25818,7 +26141,7 @@ dictionaries.")
(file-name (git-file-name name version))
(sha256
(base32
- "0ndiplnz2d5qc6ppjhfwl4zswn79q6732s4vlkaw8xwc3kjrql5b"))))
+ "0v6rgp52bf9za2spxx9c1yc6wmskvlsj81iw0gipjy7y8vpypgn2"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -28086,13 +28409,13 @@ spreadsheet), CSV, TSV, XLS, XLSX (Microsoft Excel spreadsheet), and YAML.")
(define-public python-febelfin-coda
(package
(name "python-febelfin-coda")
- (version "0.1.0")
+ (version "0.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "febelfin-coda" version))
(sha256
- (base32 "10nf4hdwldqgdmh4g613vx55sbsw1x1yzpvs3crwlggbp75fjjfi"))))
+ (base32 "1isnf87gxlvfbmackv7b2c978vmnj7ij0v4svhyjl8pbb9hwjsvm"))))
(build-system python-build-system)
(home-page "https://coda.b2ck.com/")
(synopsis "Module to parse Belgian CODA files")
@@ -28784,3 +29107,154 @@ but not binary streams.")
"This package provides ECMAScript parsing infrastructure for
multipurpose analysis in Python.")
(license license:bsd-3)))
+
+(define-public python-types-dataclasses
+ (package
+ (name "python-types-dataclasses")
+ (version "0.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "types-dataclasses" version))
+ (sha256
+ (base32
+ "1mq6qd365m8ml889zl5dxj9kncjv71iq1d1fvgj59y0ixlpm6s35"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/python/typeshed")
+ (synopsis "Typing stubs for dataclasses")
+ (description
+ "This packages provides a collection of library stubs for Python, with
+static types.")
+ (license license:asl2.0)))
+
+(define-public python-pyfuse3
+ (package
+ (name "python-pyfuse3")
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyfuse3" version))
+ (sha256
+ (base32 "0cvybynv9igssfa4l13q09gb6m7afmwk34wsbq8jk14sqpd4dl92"))))
+ (build-system python-build-system)
+ (native-inputs (list pkg-config))
+ (inputs (list fuse-3))
+ (propagated-inputs (list python-pytest-trio))
+ (home-page "https://github.com/libfuse/pyfuse3")
+ (synopsis "Python bindings FUSE 3")
+ (description "This package provides Python 3 bindings for libfuse 3 with
+async I/O support.")
+ (license license:gpl2+)))
+
+(define-public python-ansicolors
+ (package
+ (name "python-ansicolors")
+ (version "1.1.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ansicolors" version ".zip"))
+ (sha256
+ (base32 "1q3jqglkq4z0f6nkkn8bswcwqg012i2grrc27kabr8286dg4zycr"))))
+ (build-system python-build-system)
+ (native-inputs
+ (list python-tox
+ python-pytest-cov
+ unzip))
+ (home-page "https://github.com/jonathaneunice/colors/")
+ (synopsis "ANSI colors for Python")
+ (description
+ "This package adds ANSI colors and decorations to your strings.")
+ (license license:isc)))
+
+(define-public python-types-ujson
+ (package
+ (name "python-types-ujson")
+ (version "4.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "types-ujson" version))
+ (sha256
+ (base32
+ "0k9n9hsq4k2zaakdwbkcsvi7m8d3mv2y9yl6f171y58ld4qpcxcy"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/python/typeshed")
+ (synopsis "Typing stubs for ujson")
+ (description
+ "This is a PEP 561 type stub package for the ujson package. It can be
+used by type-checking tools like mypy, PyCharm, pytype etc. to check code that
+uses ujson.")
+ (license license:asl2.0)))
+
+(define-public python-stltools
+ (package
+ (name "python-stltools")
+ (version "2022.01.20")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rsmith-nl/stltools")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1k6dhszza4lpy46qffaqx5zr70ikfqqysbacy7zabnrvz09fd4rs"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:use-setuptools? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((moddir (string-append (site-packages inputs outputs) "/stltools"))
+ (bindir (string-append (assoc-ref outputs "out") "/bin")))
+ (copy-recursively "stltools" moddir)
+ (mkdir-p bindir)
+ (for-each
+ (lambda (script)
+ (let ((source (string-append script ".py"))
+ (target (string-append bindir "/" script)))
+ (copy-file source target)
+ (chmod target #o555)))
+ '("stl2pov" "stl2ps" "stl2pdf" "stlinfo")))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "py.test" "-v")))))))
+ (propagated-inputs (list python-pycairo))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/rsmith-nl/stltools")
+ (synopsis "Python modules and scripts for handling STL files")
+ (description "This package consists of Python modules and scripts for
+manipulating stereolithography (STL) files. It can convert STL files into
+POV-ray meshes, PDF and PostScript. The Python modules allow for reading and
+writing STL files. It supports both the text and binary forms of STL.")
+ (license license:expat)))
+
+(define-public python-multipart
+ (package
+ (name "python-multipart")
+ (version "0.0.5")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-multipart" version))
+ (sha256
+ (base32
+ "0hzshd665rl1bkwvaj9va4j3gs8nmb478fbvligx20663xhmzfzp"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-six))
+ (native-inputs (list python-pyyaml python-mock python-pytest-cov))
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ ;; There is a bug in the test_suit specification.
+ (add-after 'unpack 'patch-test-suite
+ (lambda _
+ (substitute* "setup.py"
+ (("test_suite = 'multipart.tests.suite'")
+ "test_suite = 'multipart.tests.test_multipart.suite'")))))))
+ (home-page "https://github.com/andrew-d/python-multipart")
+ (synopsis "Streaming multipart parser for Python")
+ (description
+ "This package provides a streaming multipart parser for Python.")
+ (license license:asl2.0)))