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.scm1176
1 files changed, 593 insertions, 583 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 3abedc6ead..f89e554d6d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -37,7 +37,7 @@
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
;;; Copyright © 2017, 2018 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
-;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2018, 2019, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;; Copyright © 2017, 2020, 2021 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
@@ -145,6 +145,7 @@
#:use-module (gnu packages enchant)
#:use-module (gnu packages file)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages geo)
#:use-module (gnu packages ghostscript)
@@ -222,6 +223,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
+ #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
@@ -674,12 +676,7 @@ implementation for the Telegram Bot API.")
`(#:phases (modify-phases %standard-phases
(replace 'check
(lambda _
- ;; Extend PYTHONPATH so the built package will be found.
- (setenv "PYTHONPATH"
- (string-append (getcwd) "/build/lib:"
- (getenv "PYTHONPATH")))
- (invoke "pytest" "-p" "no:logging")
- #t)))))
+ (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
@@ -1053,15 +1050,16 @@ by @code{binstar}, @code{binstar-build}, and @code{chalmers}.")
(version "2.9.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "Babel" version))
- (sha256
- (base32
- "018yg7g2pa6vjixx1nx41cfispgfi0azzp0a1chlycbj8jsil0ys"))))
+ (method url-fetch)
+ (uri (pypi-uri "Babel" version))
+ (sha256
+ (base32
+ "018yg7g2pa6vjixx1nx41cfispgfi0azzp0a1chlycbj8jsil0ys"))))
(build-system python-build-system)
(native-inputs
`(("python-freezegun" ,python-freezegun)
- ("python-pytest" ,python-pytest)))
+ ("python-pytest" ,python-pytest)
+ ("tzdata" ,tzdata-for-tests)))
(propagated-inputs
`(("python-pytz" ,python-pytz)))
(arguments
@@ -1069,7 +1067,7 @@ by @code{binstar}, @code{binstar-build}, and @code{chalmers}.")
(replace 'check
(lambda _
(invoke "pytest" "-vv"))))))
- (home-page "http://babel.pocoo.org/")
+ (home-page "https://babel.pocoo.org/")
(synopsis
"Tools for internationalizing Python applications")
(description
@@ -1121,7 +1119,7 @@ and verifies that it matches the intended target hostname.")
(build-system python-build-system)
(native-inputs
`(("python-coverage" ,python-coverage)
- ("python-hypothesis" ,python-hypothesis-5.23) ; use_true_random=... from >=5.19.0
+ ("python-hypothesis" ,python-hypothesis)
("python-pre-commit" ,python-pre-commit)
("python-py" ,python-py)
("python-pytest" ,python-pytest)
@@ -1221,14 +1219,6 @@ Expressions are constructed from parsed strings or directly in Python.")
(modify-phases %standard-phases
(replace 'check
(lambda _
- ;; The 'runexamples' script sets PYTHONPATH to CWD, then goes
- ;; on to import numpy. Somehow this works on their CI system.
- ;; Let's just manage PYTHONPATH here instead.
- (substitute* "runexamples.sh"
- (("export PYTHONPATH=.*") ""))
- (setenv "PYTHONPATH"
- (string-append (getcwd) ":"
- (getenv "PYTHONPATH")))
(invoke "./runexamples.sh")
(invoke "nosetests" "-v"))))))
(home-page "https://github.com/fhs/python-hdf4")
@@ -1834,9 +1824,6 @@ language. It aims to be fast.")
`(#:phases (modify-phases %standard-phases
(replace 'check
(lambda _
- (format #t "current working dir ~s~%" (getcwd))
- (setenv "PYTHONPATH"
- (string-append ".:" (getenv "PYTHONPATH")))
;; We must run the test suite module directly, as it
;; fails to define the 'tempdir' variable in scope for
;; the tests otherwise
@@ -2361,14 +2348,14 @@ in the current session, Python, and the OS.")
(define-public python-six
(package
(name "python-six")
- (version "1.14.0")
+ (version "1.15.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "six" version))
(sha256
(base32
- "02lw67hprv57hyg3cfy02y3ixjk3nzwc0dx3c4ynlvkfwkfdnsr3"))))
+ "0n82108wxn5giff50hd9ykjhd3zl7cndabdasi6568yvbh1rqqrh"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -2506,16 +2493,18 @@ audio playback capability for Python 3 on OSX, Windows, and Linux.")
(define-public python-simplejson
(package
(name "python-simplejson")
- (version "3.17.0")
+ (version "3.17.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "simplejson" version))
(sha256
(base32
- "108yf3252fy4ndqab7h46raksxfhcn113bzy2yd8369vidrjnjrb"))))
+ "0hc8nqwdlll4a9cr1k9msn5kmb6kmbjirpgvhjh254nr4sgwgv3m"))))
(build-system python-build-system)
- (home-page "http://simplejson.readthedocs.org/en/latest/")
+ (native-inputs
+ `(("python-toml" ,python-toml)))
+ (home-page "https://simplejson.readthedocs.io/en/latest")
(synopsis
"Json library for Python")
(description
@@ -2538,14 +2527,14 @@ Python 3.3+.")
(define-public python-pyicu
(package
(name "python-pyicu")
- (version "2.4.3")
+ (version "2.7.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "PyICU" version))
(sha256
(base32
- "075bw66b3w0nw6mc5k32fwmrhyrmq3d7da3q2mw212qfmm0pgjn0"))))
+ "0mkz1673qxldxs4mrqg9882xgmz5fhpia17yrsd6z8dfw8156rf0"))))
(build-system python-build-system)
(inputs
`(("icu4c" ,icu4c)))
@@ -3047,14 +3036,14 @@ server.")
(define-public python-py
(package
(name "python-py")
- (version "1.8.1")
+ (version "1.10.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "py" version))
(sha256
(base32
- "1ajjazg3913n0sp3vjyva9c2qh5anx8ziryng935f89604a0h9sy"))))
+ "1lqvkqk3b440g9z82gqbzlzas84wrm6ir8kplzhzavmn2pd1pf11"))))
(build-system python-build-system)
(arguments
;; FIXME: "ImportError: 'test' module incorrectly imported from
@@ -3071,18 +3060,6 @@ server.")
code introspection, and logging.")
(license license:expat)))
-(define-public python-py-next
- (package
- (inherit python-py)
- (version "1.10.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "py" version))
- (sha256
- (base32
- "1lqvkqk3b440g9z82gqbzlzas84wrm6ir8kplzhzavmn2pd1pf11"))))))
-
(define-public python2-py
(package-with-python2 python-py))
@@ -3277,11 +3254,9 @@ interfaces.")
"cross-libc" "libc"))))
(substitute* "src/click/_unicodefun.py"
(("'locale'")
- (string-append "'" glibc "/bin/locale'"))))
- #t))
+ (string-append "'" glibc "/bin/locale'"))))))
(replace 'check
(lambda _
- (setenv "PYTHONPATH" (string-append "./src:" (getenv "PYTHONPATH")))
(invoke "python" "-m" "pytest"))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
@@ -3420,16 +3395,15 @@ compare, diff, and patch JSON and JSON-like structures in Python.")
'(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
- (invoke "trial" "jsonschema"))))))
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (setenv "JSON_SCHEMA_TEST_SUITE" "json")
+ (invoke "trial" "jsonschema")))))))
(native-inputs
`(("python-setuptools_scm" ,python-setuptools-scm)
("python-twisted" ,python-twisted)))
(propagated-inputs
`(("python-attrs" ,python-attrs)
- ("python-importlib-metadata" ,python-importlib-metadata) ;; python < 3.8
("python-pyrsistent" ,python-pyrsistent)
("python-six" ,python-six)))
(home-page "https://github.com/Julian/jsonschema")
@@ -3564,9 +3538,6 @@ somewhat intelligible.")
'(#:phases (modify-phases %standard-phases
(replace 'check
(lambda _
- (setenv "PYTHONPATH"
- (string-append "./build/lib:"
- (getenv "PYTHONPATH")))
(invoke "pytest" "-vv"))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
@@ -3662,13 +3633,13 @@ JavaScript-like message boxes. Types of dialog boxes include:
(package
(name "python-pympler")
(home-page "https://pythonhosted.org/Pympler/")
- (version "0.8")
+ (version "0.9")
(source (origin
(method url-fetch)
(uri (pypi-uri "Pympler" version))
(sha256
(base32
- "08mrpnb6cv2nvfncvr8a9a8bpwhnasa924anapnjvnaw5jcd4k7p"))))
+ "0ivfw2k86nbw9ck9swidl4422w7bhjldxwj90a4sy5r1cbgygjzj"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -3697,14 +3668,14 @@ visualisation and class tracker statistics.")
(define-public python-itsdangerous
(package
(name "python-itsdangerous")
- (version "1.1.0")
+ (version "2.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "itsdangerous" version))
(sha256
(base32
- "068zpbksq5q2z4dckh2k1zbcq43ay74ylqn77rni797j0wyh66rj"))))
+ "1w6gfb2zhbcmrfj6digwzw1z68w6zg1q87rm6la2m412zil4swly"))))
(build-system python-build-system)
(home-page "https://palletsprojects.com/p/itsdangerous/")
(synopsis "Python library for passing data to/from untrusted environments")
@@ -3729,7 +3700,8 @@ environments and back.")
"0pm440pmpvgv5rbbnm8hk4qga5a292kvlm1bh3x2nwr8pb5p8xv0"))))
(build-system python-build-system)
(inputs
- `(("libyaml" ,libyaml)))
+ `(("libyaml" ,libyaml)
+ ("python-cython" ,python-cython)))
(home-page "https://pyyaml.org")
(synopsis "YAML parser and emitter for Python")
(description
@@ -3769,64 +3741,79 @@ e.g. filters, callbacks and errbacks can all be promises.")
(define-public python-virtualenv
(package
(name "python-virtualenv")
- (version "20.2.1")
+ (version "20.3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "virtualenv" version))
(sha256
(base32
- "1rd6wmymsgv0cdsn50jwybcvbbslzym3mzffcjbl42l8br9cgap0"))))
+ "1nbhnpzswcf3lmzn5xabmfdd7ki8r2w2i37y6wml54di6qi1l48c"))))
(build-system python-build-system)
(native-inputs
`(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)
- ;; NOTE: guix lint remarks that "python-setuptools should probably not
- ;; be an input at all". However, removing the input makes the build error:
- ;; File "setup.py", line 4, in <module>
- ;; raise RuntimeError("setuptools >= 41 required to build")
- ("python-setuptools" ,python-setuptools)
("python-setuptools-scm" ,python-setuptools-scm)))
(propagated-inputs
`(("python-appdirs" ,python-appdirs)
- ("python-distlib" ,python-distlib/next)
+ ("python-distlib" ,python-distlib)
("python-filelock" ,python-filelock)
- ("python-six" ,python-six)
- ("python-importlib-metadata" ,python-importlib-metadata)))
+ ("python-six" ,python-six)))
(home-page "https://virtualenv.pypa.io/")
(synopsis "Virtual Python environment builder")
(description
"Virtualenv is a tool to create isolated Python environments.")
(license license:expat)))
+(define-public python2-virtualenv
+ (let ((base (package-with-python2 (strip-python2-variant python-virtualenv))))
+ (package
+ (inherit base)
+ (arguments
+ `(#:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'set-paths 'adjust-PYTHONPATH
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((python (assoc-ref inputs "python"))
+ (python-sitedir (string-append python "/lib/python2.7"
+ "/site-packages")))
+ ;; XXX: 'python2' always comes first on PYTHONPATH
+ ;; and shadows the 'setuptools' input. Move python2
+ ;; last: this should be fixed in python-build-system
+ ;; in a future rebuild cycle.
+ (setenv "PYTHONPATH"
+ (string-append (string-join (delete python-sitedir
+ (string-split
+ (getenv "PYTHONPATH")
+ #\:))
+ ":")
+ ":" python-sitedir))
+ (format #t "environment variable `PYTHONPATH' changed to `~a'~%"
+ (getenv "PYTHONPATH"))
+ #t))))))
+ (propagated-inputs
+ `(("python-contextlib2" ,python2-contextlib2)
+ ,@(package-propagated-inputs base))))))
+
(define-public python-markupsafe
(package
(name "python-markupsafe")
- (version "1.1.1")
+ (version "2.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "MarkupSafe" version))
(sha256
(base32
- "0sqipg4fk7xbixqd8kq6rlkxj664d157bdwbh93farcphf92x1r9"))))
+ "02k2ynmqvvd0z0gakkf8s4idyb606r7zgga41jrkhqmigy06fk2r"))))
(build-system python-build-system)
(arguments
- `(#:modules ((ice-9 ftw)
- (srfi srfi-1)
- (srfi srfi-26)
- (guix build utils)
- (guix build python-build-system))
- #:phases (modify-phases %standard-phases
+ `(#:phases (modify-phases %standard-phases
(replace 'check
- (lambda _
- (let ((cwd (getcwd))
- (libdir (find (cut string-prefix? "lib." <>)
- (scandir "build"))))
- (setenv "PYTHONPATH"
- (string-append cwd "/build/" libdir ":"
- (getenv "PYTHONPATH")))
- (invoke "pytest" "-vv")))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv")))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://github.com/mitsuhiko/markupsafe")
@@ -3842,27 +3829,22 @@ for Python.")
(define-public python-jinja2
(package
(name "python-jinja2")
- (version "2.11.2")
+ (version "3.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Jinja2" version))
(sha256
(base32
- "1c1v3djnr0ymp5xpy1h3h60abcaqxdlm4wsqmls9rxby88av5al9"))))
+ "197ms1wimxql650245v63wkv04n8bicj549wfhp51bx68x5lhgvh"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
- (begin
- (setenv "PYTHONPATH"
- (string-append "./build/lib:"
- (getenv "PYTHONPATH")))
- (invoke "pytest" "-vv"))
- (format #t "test suite not run~%"))
- #t)))))
+ (invoke "pytest" "-vv")
+ (format #t "test suite not run~%")))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(propagated-inputs
@@ -4161,15 +4143,14 @@ text styles of documentation.")
(define-public python-pygments
(package
(name "python-pygments")
- (version "2.7.3")
+ (version "2.8.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Pygments" version))
(sha256
(base32
- "05mps9r966r3dpqw6zrs1nlwjdf5y4960hl9m7abwb3qyfnarwyc"))))
- (replacement python-pygments/fixed)
+ "153zyxigm879sk2n71lfv03y2pgxb7dl0dlsbwkz9aydxnkf2mi6"))))
(build-system python-build-system)
(arguments
;; FIXME: Tests require sphinx, which depends on this.
@@ -4181,18 +4162,6 @@ text styles of documentation.")
(license license:bsd-2)
(properties `((python2-variant . ,(delay python2-pygments))))))
-(define python-pygments/fixed
- (package
- (inherit python-pygments)
- (version "2.7.4")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "Pygments" version))
- (sha256
- (base32
- "0dy35ry5qa8dpklk4fkj9kfpw2qb4mh5ha9866kw30wf96dx0jfz"))))))
-
;; Pygments 2.6 and later does not support Python 2.
(define-public python2-pygments
(let ((base (package-with-python2 (strip-python2-variant python-pygments))))
@@ -4399,8 +4368,7 @@ ecosystem, but can naturally be used also by other projects.")
;;
;; OverflowError: mktime argument out of range
(setenv "TZDIR"
- (string-append (assoc-ref inputs "tzdata")
- "/share/zoneinfo"))
+ (search-input-directory inputs "share/zoneinfo"))
(setenv "TZ" "Europe/Paris")
(invoke "python" "utest/run.py"))))))
@@ -4873,7 +4841,14 @@ matching of file paths.")
(substitute* "tests/test_black.py"
(("( *)def test_python38" match indent)
(string-append indent "@unittest.skip(\"guix\")\n" match)))
- #t)))))
+ #t))
+ ;; 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\", ") "")))))))
(propagated-inputs
`(("python-click" ,python-click)
("python-attrs" ,python-attrs)
@@ -5401,16 +5376,16 @@ readable format.")
("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx)
("python-numpydoc" ,python-numpydoc)
- ("texlive" ,(texlive-union (list texlive-fonts-cm-super
+ ("texlive" ,(texlive-updmap.cfg (list texlive-cm-super
texlive-fonts-ec
- texlive-generic-ifxetex
+ texlive-generic-iftex
texlive-pdftex
- texlive-amsfonts/patched
+ texlive-amsfonts
texlive-latex-capt-of
texlive-latex-cmap
texlive-latex-environ
texlive-latex-eqparbox
- texlive-latex-etoolbox
+ texlive-etoolbox
texlive-latex-expdlist
texlive-latex-fancyhdr
texlive-latex-fancyvrb
@@ -5419,11 +5394,11 @@ readable format.")
texlive-latex-framed
texlive-latex-geometry
texlive-latex-graphics
- texlive-latex-hyperref
+ texlive-hyperref
texlive-latex-mdwtools
texlive-latex-multirow
texlive-latex-needspace
- texlive-latex-oberdiek
+ texlive-oberdiek
texlive-latex-parskip
texlive-latex-preview
texlive-latex-tabulary
@@ -5432,7 +5407,7 @@ readable format.")
texlive-latex-trimspaces
texlive-latex-ucs
texlive-latex-upquote
- texlive-latex-url
+ texlive-url
texlive-latex-varwidth
texlive-latex-wrapfig)))
("texinfo" ,texinfo)
@@ -5467,7 +5442,7 @@ readable format.")
(sphinx-theme-checkout (assoc-ref inputs scipy-sphinx-theme))
(pyver ,(string-append "PYVER=")))
- ;; FIXME: this is needed to for texlive-union to generate
+ ;; FIXME: this is needed to for texlive-updmap.cfg to generate
;; fonts, which are not found.
(setenv "HOME" "/tmp")
@@ -5965,21 +5940,20 @@ comparison.
(define-public python-matplotlib
(package
(name "python-matplotlib")
- (version "3.1.2")
+ (version "3.4.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "matplotlib" version))
(sha256
- (base32 "1nmshfqh7wyg15i16hx1yiylcvzkws29ivn66n3i0wyqwcpjr3lf"))
- (patches
- (search-patches "python-matplotlib-run-under-wayland-gtk3.patch"))))
+ (base32 "06032j0ccjxldx4z9kf97qps2g36mfgvy1nap3b9n75kzmnm4kzw"))))
(build-system python-build-system)
(propagated-inputs ; the following packages are all needed at run time
`(("python-cycler" ,python-cycler)
("python-kiwisolver" ,python-kiwisolver)
("python-pyparsing" ,python-pyparsing)
("python-pygobject" ,python-pygobject)
+ ("python-certifi" ,python-certifi)
("gobject-introspection" ,gobject-introspection)
("python-tkinter" ,python "tk")
("python-dateutil" ,python-dateutil)
@@ -5996,6 +5970,7 @@ comparison.
(inputs
`(("libpng" ,libpng)
("freetype" ,freetype)
+ ("qhull" ,qhull)
("cairo" ,cairo)
("glib" ,glib)
;; FIXME: Add backends when available.
@@ -6006,6 +5981,7 @@ comparison.
`(("pkg-config" ,pkg-config)
("python-pytest" ,python-pytest)
("python-mock" ,python-mock)
+ ("python-wheel" ,python-wheel)
("unzip" ,unzip)
("jquery-ui"
,(origin
@@ -6028,7 +6004,8 @@ comparison.
"test_.*\\.py$"))
(("^from matplotlib" match)
(string-append "import pytest\n" match))
- (("( *)@image_comparison" match indent)
+ (("( *)@([^_]+_)*(image_comparison|check_figures_equal)" match
+ indent)
(string-append indent
"@pytest.mark.skip(reason=\"unknown minor image differences\")\n"
match)))
@@ -6037,7 +6014,9 @@ comparison.
(for-each delete-file
;; test_normal_axes, test_get_tightbbox_polar
'("lib/matplotlib/tests/test_axes.py"
- ;; We don't use the webagg backend and this test forces it.
+ "lib/matplotlib/tests/test_polar.py"
+ ;; We don't use the webagg backend and this test
+ ;; forces it.
"lib/matplotlib/tests/test_backend_webagg.py"
;; test_outward_ticks
"lib/matplotlib/tests/test_tightlayout.py"
@@ -6052,9 +6031,11 @@ comparison.
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((python-version (python-version
(assoc-ref inputs "python")))
- (dir (string-append (assoc-ref outputs "out")
- "/lib/python" python-version "/site-packages"
- "/matplotlib/backends/web_backend/")))
+ (dir
+ (string-append (assoc-ref outputs "out")
+ "/lib/python" python-version
+ "/site-packages"
+ "/matplotlib/backends/web_backend/")))
(mkdir-p dir)
(invoke "unzip"
(assoc-ref inputs "jquery-ui")
@@ -6077,7 +6058,10 @@ comparison.
(setenv "CFLAGS" "-ffloat-store"))
(call-with-output-file "setup.cfg"
(lambda (port)
- (format port "[directories]~%
+ (format port "[libs]~%
+system_freetype = true
+system_qhull = true
+[directories]~%
basedirlist = ~a,~a~%
[packages]~%
tests = True~%"
@@ -6156,7 +6140,7 @@ toolkits.")
("python-ipykernel" ,python-ipykernel)
("python-mock" ,python-mock)
("graphviz" ,graphviz)
- ("texlive" ,(texlive-union (list texlive-amsfonts/patched
+ ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-latex-amsmath
texlive-latex-enumitem
texlive-latex-expdlist
@@ -6168,8 +6152,8 @@ toolkits.")
texlive-pdftex
texlive-fonts-ec
- texlive-fonts-adobe-times
- texlive-fonts-txfonts)))
+ texlive-times
+ texlive-txfonts)))
("texinfo" ,texinfo)
,@(package-native-inputs python-matplotlib)))
(arguments
@@ -6182,9 +6166,7 @@ toolkits.")
(replace 'build
(lambda _
(chdir "doc")
- (setenv "PYTHONPATH"
- (string-append (getenv "PYTHONPATH")
- ":" (getcwd) "/../examples/units"))
+ (setenv "PYTHONPATH" "../examples/units")
(substitute* "conf.py"
;; Don't use git.
(("^SHA = check_output.*")
@@ -6219,13 +6201,36 @@ toolkits.")
"./matplotlib-figures")
(invoke "makeinfo" "--no-split"
"-o" "matplotlib.info" "matplotlib.texi"))
- (install-file "build/texinfo/matplotlib.info" info))
- #t)))))
+ (install-file "build/texinfo/matplotlib.info" info)))))))
(home-page (package-home-page python-matplotlib))
(synopsis "Documentation for the python-matplotlib package")
(description (package-description python-matplotlib))
(license (package-license python-matplotlib))))
+(define-public python-matplotlib-inline
+ (package
+ (name "python-matplotlib-inline")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "matplotlib-inline" version))
+ (sha256
+ (base32 "1vilzwj3xp00mxprmmn1hlafm3p23vn56s46kx3ra4qd5signjx0"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-matplotlib" ,python-matplotlib)
+ ("python-traitlets" ,python-traitlets)))
+ (arguments
+ ;; Tests disabled because of a circular dependency with ipython.
+ `(#:tests? #f))
+ (home-page "https://github.com/ipython/matplotlib-inline")
+ (synopsis "Inline Matplotlib backend for Jupyter")
+ (description
+ "This package provides a Matplotlib inline back-end for IPython and
+Jupyter.")
+ (license license:bsd-3)))
+
(define-public python-matplotlib-venn
(package
(name "python-matplotlib-venn")
@@ -6454,24 +6459,12 @@ Python code against some of the style conventions in
"07ikq2c72kd263hpldw55y0px2l3g34hjk66ml9lryh1jv287qmf"))))
(build-system python-build-system)
(arguments
- '(#:modules ((ice-9 ftw)
- (srfi srfi-1)
- (srfi srfi-26)
- (guix build utils)
- (guix build python-build-system))
- #:phases (modify-phases %standard-phases
+ '(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
- (begin
- (let ((libdir (find (cut string-prefix? "lib." <>)
- (scandir "build"))))
- (setenv "PYTHONPATH"
- (string-append "./build/" libdir ":"
- (getenv "PYTHONPATH")))
- (invoke "pytest" "-vv")))
- (format #t "test suite not run~%"))
- #t)))))
+ (invoke "pytest" "-vv")
+ (format #t "test suite not run~%")))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov)))
@@ -6550,14 +6543,14 @@ by pycodestyle.")
(define-public python-distlib
(package
(name "python-distlib")
- (version "0.3.0")
+ (version "0.3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "distlib" version ".zip"))
(sha256
(base32
- "08fyi2r246733vharl2yckw20rilci28r91mzrnnvcr638inw5if"))))
+ "1wdzv7fsjhrkhh1wfkarlhcwa8m00mgcpdsvknmf2qy8f9l13xpd"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -6581,19 +6574,6 @@ relate to packaging and distribution of Python software. It is intended to be
used as the basis for third-party packaging tools.")
(license license:psfl)))
-;; TODO: Merge with 'python-distlib' on the next rebuild cycle.
-(define-public python-distlib/next
- (package
- (inherit python-distlib)
- (version "0.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "distlib" version ".zip"))
- (sha256
- (base32
- "1wdzv7fsjhrkhh1wfkarlhcwa8m00mgcpdsvknmf2qy8f9l13xpd"))))))
-
(define-public python-distutils-extra
(package
(name "python-distutils-extra")
@@ -6688,7 +6668,7 @@ the OleFileIO module from PIL, the Python Image Library.")
(native-inputs
`(("pybind11" ,pybind11)
("python-setuptools" ,python-setuptools)
- ("python-setuptools-scm" ,python-setuptools-scm/next)
+ ("python-setuptools-scm" ,python-setuptools-scm)
("python-setuptools-scm-git-archive" ,python-setuptools-scm-git-archive)
("python-toml" ,python-toml)
("python-wheel" ,python-wheel)))
@@ -6770,7 +6750,11 @@ a general image processing tool.")
(uri (pypi-uri "Pillow" version))
(sha256
(base32
- "0l5rv8jkdrb5q846v60v03mcq64yrhklidjkgwv6s1pda71g17yv")))))))
+ "0l5rv8jkdrb5q846v60v03mcq64yrhklidjkgwv6s1pda71g17yv"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-pillow)
+ ;; FIXME: One of the tests is failing.
+ ((#:tests? _ #f) #f))))))
(define-public python-pillow-2.9
(package
@@ -7280,22 +7264,16 @@ support for Python 3 and PyPy. It is based on cffi.")
(("filenames = \\(library_filename,\\) \\+ filenames")
"pass")
(("libcairo.so.2")
- (string-append (assoc-ref inputs "cairo")
- "/lib/libcairo.so.2")))
+ (search-input-file inputs "/lib/libcairo.so.2")))
(substitute* "cairocffi/pixbuf.py"
(("libgdk_pixbuf-2.0.so.0")
- (string-append (assoc-ref inputs "gdk-pixbuf")
- "/lib/libgdk_pixbuf-2.0.so.0"))
+ (search-input-file inputs "/lib/libgdk_pixbuf-2.0.so.0"))
(("libgobject-2.0.so.0")
- (string-append (assoc-ref inputs "glib")
- "/lib/libgobject-2.0.so.0"))
+ (search-input-file inputs "/lib/libgobject-2.0.so.0"))
(("libglib-2.0.so.0")
- (string-append (assoc-ref inputs "glib")
- "/lib/libglib-2.0.so.0"))
+ (search-input-file inputs "/lib/libglib-2.0.so.0"))
(("libgdk-3.so.0")
- (string-append (assoc-ref inputs "gtk+")
- "/lib/libgdk-3.so.0")))
- #t))
+ (search-input-file inputs "/lib/libgdk-3.so.0")))))
(add-after 'unpack 'disable-linters
;; Their check fails; none of our business.
(lambda _
@@ -7617,13 +7595,13 @@ child application and control it as if a human were typing commands.")
(define-public python-setuptools-scm
(package
(name "python-setuptools-scm")
- (version "3.4.3")
+ (version "5.0.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "setuptools_scm" version))
(sha256
(base32
- "083k93wi7mrmp1cn28hcbnr6sivbgls0y7zz2m5qzn1wg04a3f16"))))
+ "0ahlrxxkx2xhmxskx57gc96w3bdndflxx30304ihvm7ds136nny8"))))
(build-system python-build-system)
(home-page "https://github.com/pypa/setuptools_scm/")
(synopsis "Manage Python package versions in SCM metadata")
@@ -7633,18 +7611,6 @@ child application and control it as if a human were typing commands.")
them as the version argument or in a SCM managed file.")
(license license:expat)))
-;; TODO: Merge with 'python-setuptools-scm' on the next rebuild cycle.
-(define-public python-setuptools-scm/next
- (package
- (inherit python-setuptools-scm)
- (version "5.0.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "setuptools_scm" version))
- (sha256
- (base32 "0ahlrxxkx2xhmxskx57gc96w3bdndflxx30304ihvm7ds136nny8"))))))
-
(define-public python2-setuptools-scm
(package-with-python2 python-setuptools-scm))
@@ -8156,12 +8122,12 @@ without using the configuration machinery.")
(add-after 'unpack 'patch-testsuite
(lambda _
;; test_not_on_path() and test_path_priority() try to run a test
- ;; that loads jupyter_core, so we need PYTHONPATH
+ ;; that loads jupyter_core, so we need GUIX_PYTHONPATH
(substitute* "jupyter_core/tests/test_command.py"
(("env = \\{'PATH': ''\\}")
- "env = {'PATH': '', 'PYTHONPATH': os.environ['PYTHONPATH']}")
+ "env = {'PATH': '', 'PYTHONPATH': os.environ['GUIX_PYTHONPATH']}")
(("env = \\{'PATH': str\\(b\\)\\}")
- "env = {'PATH': str(b), 'PYTHONPATH': os.environ['PYTHONPATH']}"))
+ "env = {'PATH': str(b), 'PYTHONPATH': os.environ['GUIX_PYTHONPATH']}"))
#t))
;; Migration is running whenever etc/jupyter exists, but the
;; Guix-managed directory will never contain any migratable IPython
@@ -8370,13 +8336,13 @@ callback signature using a prototype function.")
(define-public python-ipython
(package
(name "python-ipython")
- (version "7.9.0")
+ (version "7.27.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ipython" version ".tar.gz"))
(sha256
- (base32 "103jkw18z7fnwdal1mdbijjxi1fndzn31g887lmj7ddpf2r07lyz"))))
+ (base32 "04xgymypnbfgf2q0d5b0hanjbjsp53f055sh1p8xlq52vyzmxdaq"))))
(build-system python-build-system)
(propagated-inputs
`(("python-backcall" ,python-backcall)
@@ -8384,6 +8350,7 @@ callback signature using a prototype function.")
("python-prompt-toolkit" ,python-prompt-toolkit-2)
("python-terminado" ,python-terminado)
("python-matplotlib" ,python-matplotlib)
+ ("python-matplotlib-inline" ,python-matplotlib-inline)
("python-numpy" ,python-numpy)
("python-numpydoc" ,python-numpydoc)
("python-jedi" ,python-jedi)
@@ -8442,6 +8409,9 @@ callback signature using a prototype function.")
(delete-file "IPython/core/tests/test_display.py")
;; AttributeError: module 'IPython.core' has no attribute 'formatters'
(delete-file "IPython/core/tests/test_interactiveshell.py")
+ ;; AttributeError: module 'matplotlib_inline' has no
+ ;; attribute 'backend_inline'
+ (delete-file "IPython/core/tests/test_pylabtools.py")
#t)))))
(home-page "https://ipython.org")
(synopsis "IPython is a tool for interactive computing in Python")
@@ -8497,15 +8467,15 @@ computing.")
`(("python-sphinx" ,python-sphinx)
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
;; FIXME: It's possible that a smaller union would work just as well.
- ("texlive" ,(texlive-union (list texlive-amsfonts/patched
+ ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-fonts-ec
- texlive-generic-ifxetex
+ texlive-generic-iftex
texlive-pdftex
texlive-latex-capt-of
texlive-latex-cmap
texlive-latex-environ
texlive-latex-eqparbox
- texlive-latex-etoolbox
+ texlive-etoolbox
texlive-latex-expdlist
texlive-latex-fancyhdr
texlive-latex-fancyvrb
@@ -8514,11 +8484,11 @@ computing.")
texlive-latex-framed
texlive-latex-geometry
texlive-latex-graphics
- texlive-latex-hyperref
+ texlive-hyperref
texlive-latex-mdwtools
texlive-latex-multirow
texlive-latex-needspace
- texlive-latex-oberdiek
+ texlive-oberdiek
texlive-latex-parskip
texlive-latex-preview
texlive-latex-tabulary
@@ -8527,7 +8497,7 @@ computing.")
texlive-latex-trimspaces
texlive-latex-ucs
texlive-latex-upquote
- texlive-latex-url
+ texlive-url
texlive-latex-varwidth
texlive-latex-wrapfig)))
("texinfo" ,texinfo)))))
@@ -8833,10 +8803,15 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.")
(base32
"1k70gpn2d3vgdyxbdy536dgm4kchcraxz6lmgsfg3324iy2789q5"))))
(build-system python-build-system)
- (arguments `(#:tests? #f))
- ;;XXX: 2 tests fail currently despite claming they were to be
- ;;skipped. Also, beautifulsoup4 may depend on this in the future, so we
- ;;don't want to create a circular dependency.
+ (arguments
+ ;;XXX: 2 tests fail currently despite claming they were to be
+ ;;skipped. Also, beautifulsoup4 may depend on this in the future, so we
+ ;;don't want to create a circular dependency.
+ (list #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Circular dependency with python-beautifulsoup4.
+ (delete 'sanity-check))))
(home-page "https://github.com/facelessuser/soupsieve")
(synopsis "CSS selector library")
(description
@@ -9435,8 +9410,6 @@ Python 2 and Python 3.")
(modify-phases %standard-phases
(replace 'check
(lambda _
- (setenv "PYTHONPATH" (string-append "./build/lib:"
- (getenv "PYTHONPATH")))
(invoke "py.test" "-v"))))))
(native-inputs
`(("python2-pytest" ,python2-pytest)))
@@ -9613,11 +9586,10 @@ plugin for flake8 to check PEP-8 naming conventions.")
(method url-fetch)
(uri (pypi-uri "pyflakes" version))
(sha256
- (base32
- "1ny10364ciqh4ripasj4zzv4145l21l3s85m3qlrvfq5pk58xg7m"))))
+ (base32
+ "1ny10364ciqh4ripasj4zzv4145l21l3s85m3qlrvfq5pk58xg7m"))))
(build-system python-build-system)
- (home-page
- "https://github.com/pyflakes/pyflakes")
+ (home-page "https://github.com/PyCQA/pyflakes")
(synopsis "Passive checker of Python programs")
(description
"Pyflakes statically checks Python source code for common errors.")
@@ -9642,21 +9614,21 @@ plugin for flake8 to check PEP-8 naming conventions.")
(name "python-mccabe")
(version "0.6.1")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "mccabe" version))
- (sha256
- (base32
- "07w3p1qm44hgxf3vvwz84kswpsx6s7kvaibzrsx5dzm0hli1i3fx"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "mccabe" version))
+ (sha256
+ (base32
+ "07w3p1qm44hgxf3vvwz84kswpsx6s7kvaibzrsx5dzm0hli1i3fx"))))
(build-system python-build-system)
(native-inputs
- `(("python-pytest" ,python-pytest-bootstrap)
- ("python-pytest-runner" ,python-pytest-runner)))
- (home-page "https://github.com/flintwork/mccabe")
+ `(("python-toml", python-toml)
+ ("python-pytest" ,python-pytest-bootstrap)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (home-page "https://github.com/PyCQA/mccabe")
(synopsis "McCabe checker, plugin for flake8")
- (description
- "This package provides a Flake8 plug-in to compute the McCabe cyclomatic
-complexity of Python source code.")
+ (description "This package provides a Flake8 plug-in to compute the McCabe
+cyclomatic complexity of Python source code.")
(license license:expat)))
(define-public python2-mccabe
@@ -9833,14 +9805,11 @@ unnecessary plus operators for explicit string literal concatenation.")
(substitute* "setup.cfg"
(("\\[pytest\\]")
"[tool:pytest]"))
-
- (setenv "PYTHONPATH"
- (string-append (getcwd) "/build/lib:"
- (getenv "PYTHONPATH")))
(invoke "py.test" "-v"))))))
+ (propagated-inputs
+ `(("python-flake8" ,python-flake8)))
(native-inputs
- `(("python-flake8" ,python-flake8)
- ("python-mock" ,python-mock)
+ `(("python-mock" ,python-mock)
("python-pep8" ,python-pep8)
("python-pycodestyle" ,python-pycodestyle)
("python-pytest" ,python-pytest)))
@@ -9879,14 +9848,14 @@ files.")
(define-public python-flake8-pyi
(package
(name "python-flake8-pyi")
- (version "20.5.0")
+ (version "20.10.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "flake8-pyi" version))
(sha256
(base32
- "1zpq4s9kp8w95pccmhhyyx1ff2zhnidcf1zb3xs46lzcx9plvnzk"))))
+ "0b27n2pmrxcc7nva4wp2i7mrag0fnq0firvhg1ljq593a45b5qyf"))))
(build-system python-build-system)
(propagated-inputs
`(("python-attrs" ,python-attrs)
@@ -10354,14 +10323,7 @@ third-party code.")
(modify-phases %standard-phases
(replace 'check
(lambda _
- (let ((cwd (getcwd)))
- (setenv "PYTHONPATH"
- (string-append cwd "/build/"
- (find (cut string-prefix? "lib" <>)
- (scandir (string-append cwd "/build")))
- ":"
- (getenv "PYTHONPATH")))
- (invoke "pytest" "-v" "test")))))))
+ (invoke "pytest" "-v" "test"))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(synopsis "MessagePack (de)serializer")
@@ -11159,6 +11121,7 @@ is binding LibSass.")
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;circular dependency with python-aiohttp
+ (propagated-inputs `(("python-idna" ,python-idna)))
(home-page "https://github.com/aio-libs/idna-ssl")
(synopsis "Patch @code{ssl.match_hostname} for Unicode(idna) domains support")
(description "Patch @code{ssl.match_hostname} for Unicode(idna)
@@ -11475,7 +11438,7 @@ JSON Reference and JSON Pointer.")
("python-json-spec" ,python-json-spec)
("python-jsonschema" ,python-jsonschema)
("python-pylint" ,python-pylint)
- ("python-pytest" ,python-pytest-6)
+ ("python-pytest" ,python-pytest)
("python-pytest-benchmark"
,python-pytest-benchmark)
("python-pytest-cache" ,python-pytest-cache)
@@ -11741,25 +11704,25 @@ time.")
("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov)
("python-pytest-dependency" ,python-pytest-dependency)
- ("texlive" ,(texlive-union (list texlive-adjustbox
- texlive-amsfonts/patched
+ ("texlive" ,(texlive-updmap.cfg (list texlive-adjustbox
+ texlive-amsfonts
texlive-booktabs
texlive-caption
texlive-eurosym
texlive-fonts-rsfs
texlive-generic-ulem
- texlive-iftex
+ texlive-generic-iftex
texlive-jknappen
texlive-latex-amsmath
texlive-latex-enumitem
texlive-latex-fancyvrb
texlive-latex-float
- texlive-latex-fontspec
+ texlive-fontspec
texlive-latex-geometry
- texlive-latex-hyperref
+ texlive-hyperref
texlive-latex-jknapltx
texlive-latex-ms
- texlive-latex-oberdiek
+ texlive-oberdiek
texlive-latex-parskip
texlive-latex-trimspaces
texlive-latex-upquote
@@ -12132,7 +12095,8 @@ library provides codecs are supported.")
(file-name (git-file-name name version))
(sha256
(base32
- "0aad9gbswnnhssin2q0m5lmpm0ahyf80ahs2zjigbn5y7fvljnd0"))))
+ "0aad9gbswnnhssin2q0m5lmpm0ahyf80ahs2zjigbn5y7fvljnd0"))
+ (patches (search-patches "python-docopt-pytest6-compat.patch"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
@@ -12140,7 +12104,9 @@ library provides codecs are supported.")
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (invoke "py.test"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "py.test")))))))
(home-page "http://docopt.org")
(synopsis "Command-line interface description language for Python")
(description "This library allows the user to define a command-line
@@ -12354,14 +12320,15 @@ tables.")
(define-public python-atomicwrites
(package
(name "python-atomicwrites")
- (version "1.3.0")
+ (version "1.4.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "atomicwrites" version))
(sha256
(base32
- "19ngcscdf3jsqmpcxn6zl5b6anmsajb6izp1smcd1n02midl9abm"))))
+ "0yla2svfhfqrcj8qbyqzx7wi4jy0dwcxvlkg0k3zjd54s5m3jw5f"))))
(build-system python-build-system)
+ (arguments `(#:tests? #f)) ;avoid circular dependency with pytest
(synopsis "Atomic file writes in Python")
(description "Library for atomic file writes using platform dependent tools
for atomic file system operations.")
@@ -12542,6 +12509,11 @@ pure Python module that works on virtually all Python versions.")
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
+ ;; Unset PYTHONDONTWRITEBYTECODE to match the
+ ;; expectations of a test in
+ ;; 'testing/test_gateway.py'.
+ (unsetenv "PYTHONDONTWRITEBYTECODE")
+
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv")))))))
(native-inputs
@@ -12937,8 +12909,6 @@ text.")
#t))
(replace 'check
(lambda _
- (setenv "PYTHONPATH" (string-append "./build/lib:"
- (getenv "PYTHONPATH")))
(invoke "pytest" "-vv" "-m" "not network"
;; These tests require Docker.
"-k" "not test_terminate_job \
@@ -14325,31 +14295,19 @@ syntax highlighting, markdown and more to the terminal.")
(define-public python-magic
(package
(name "python-magic")
- (version "0.4.15")
+ (version "0.4.22")
+ (home-page "https://github.com/ahupp/python-magic")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "python-magic" version))
+ (method git-fetch)
+ (uri (git-reference (url home-page) (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1mgwig9pnzgkf86q9ji9pnc99bngms15lfszq5rgqb9db07mqxpk"))
- (file-name (string-append name "-" version "-checkout"))))
+ "0zbdjr5shijs0jayz7gycpx0kn6v2bh83dpanyajk2vmy47jvbd6"))))
(build-system python-build-system)
(arguments
- ;; The tests are unreliable, so don't run them. The tests fail
- ;; under Python3 because they were written for Python2 and
- ;; contain import statements that do not work in Python3. One of
- ;; the tests fails under Python2 because its assertions are
- ;; overly stringent; it relies on comparing output strings which
- ;; are brittle and can change depending on the version of
- ;; libmagic being used and the system on which the test is
- ;; running. In my case, under GuixSD 0.10.0, only one test
- ;; failed, and it seems to have failed only because the version
- ;; of libmagic that is packaged in Guix outputs a slightly
- ;; different (but not wrong) string than the one that the test
- ;; expected.
- '(#:tests? #f
- #:phases (modify-phases %standard-phases
+ '(#:phases (modify-phases %standard-phases
;; Replace a specific method call with a hard-coded
;; path to the necessary libmagic.so file in the
;; store. If we don't do this, then the method call
@@ -14359,24 +14317,22 @@ syntax highlighting, markdown and more to the terminal.")
(add-before 'build 'hard-code-path-to-libmagic
(lambda* (#:key inputs #:allow-other-keys)
(let ((file (assoc-ref inputs "file")))
- (substitute* "magic.py"
- (("ctypes.util.find_library\\('magic'\\)")
- (string-append "'" file "/lib/libmagic.so'")))
- #t)))
- (add-before 'install 'disable-egg-compression
- (lambda _
- (let ((port (open-file "setup.cfg" "a")))
- (display "\n[easy_install]\nzip_ok = 0\n"
- port)
- (close-port port)
- #t))))))
+ (substitute* "magic/loader.py"
+ (("ctypes\\.util\\.find_library\\('magic'\\)")
+ (string-append "'" file "/lib/libmagic.so'"))))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ ;; The test suite mandates this variable.
+ (setenv "LC_ALL" "en_US.UTF-8")
+ (if tests?
+ (invoke "python" "./test/test.py")
+ (format #t "test suite not run~%")))))))
+ (native-inputs
+ `(("which" ,which)))
(inputs
;; python-magic needs to be able to find libmagic.so.
`(("file" ,file)))
- (home-page
- "https://github.com/ahupp/python-magic")
- (synopsis
- "File type identification using libmagic")
+ (synopsis "File type identification using libmagic")
(description
"This module uses ctypes to access the libmagic file type
identification library. It makes use of the local magic database and
@@ -14671,12 +14627,6 @@ own code, responding to click events and updating clock every second.")
(modify-phases %standard-phases
(replace 'check
(lambda _
- ;; Upstream runs tests after installation and the package itself
- ;; resides in a subdirectory. Extend PYTHONPATH so it will be
- ;; found.
- (setenv "PYTHONPATH"
- (string-append (getcwd) "/build/lib:"
- (getenv "PYTHONPATH")))
(invoke "py.test" "-vv" "tests" "README.rst"))))))
(native-inputs
`(("python-pytest" ,python-pytest)
@@ -14870,13 +14820,6 @@ graphviz.")
(string-join disabled-tests "\n")))))))
(replace 'check
(lambda _
- ;; Make sure the build directory is on PYTHONPATH.
- (setenv "PYTHONPATH"
- (string-append
- (getenv "PYTHONPATH") ":"
- (getcwd) "/build/"
- (car (scandir "build" (cut string-prefix? "lib." <>)))))
-
;; Use the build daemons configured number of workers.
(setenv "NWORKERS" (number->string (parallel-job-count)))
@@ -14934,7 +14877,14 @@ format.")
"17d3hnxv9qndagzz63mdpyk99xj63p9gq586vjn0rxk8cl197nym"))))
(build-system python-build-system)
(arguments
- '(#:tests? #f)) ; FIXME: some tests fail
+ '(#:tests? #f ; FIXME: some tests fail
+ #:phases
+ (modify-phases %standard-phases
+ ;; Remove scripts, because they depend on [conch]
+ (add-after 'unpack 'remove-entrypoint
+ (lambda _
+ (substitute* "src/twisted/python/_setup.py"
+ (("\".+ = twisted\\.conch\\.scripts\\..+\",") "")))))))
(propagated-inputs
`(("python-zope-interface" ,python-zope-interface)
("python-pyhamcrest" ,python-pyhamcrest)
@@ -15146,7 +15096,8 @@ etc.")
(uri (pypi-uri "chai" version))
(sha256
(base32
- "1k6n6zbgrrs83crp6mr3yqj9zlv40b8rpisyrliwsq7naml2p3gz"))))
+ "1k6n6zbgrrs83crp6mr3yqj9zlv40b8rpisyrliwsq7naml2p3gz"))
+ (patches (search-patches "python-chai-drop-python2.patch"))))
(build-system python-build-system)
(home-page "https://github.com/agoragames/chai")
(synopsis "Mocking framework for Python")
@@ -15155,9 +15106,6 @@ etc.")
objects, patterned after the Mocha library for Ruby.")
(license license:bsd-3)))
-(define-public python2-chai
- (package-with-python2 python-chai))
-
(define-public python-inflection
(package
(name "python-inflection")
@@ -15494,17 +15442,15 @@ some degree most natural languages too.")
(delete-file "libcst/tests/test_pyre_integration.py")
(delete-file "libcst/codemod/tests/test_codemod_cli.py")
(delete-file "libcst/metadata/tests/test_full_repo_manager.py")
- (delete-file "libcst/metadata/tests/test_type_inference_provider.py")
- #t))
+ (delete-file "libcst/metadata/tests/test_type_inference_provider.py")))
(add-before 'check 'generate-test-data
(lambda _
- (setenv "PYTHONPATH" (string-append (getcwd) ":" (getenv "PYTHONPATH")))
(invoke "python" "-m" "libcst.codegen.generate" "visitors")
(invoke "python" "-m" "libcst.codegen.generate" "return_types")))
(replace 'check
- (lambda _
- (invoke "python" "-m" "unittest")
- #t)))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "python" "-m" "unittest")))))))
(native-inputs
`(("python-black" ,python-black)
("python-isort" ,python-isort)))
@@ -15529,6 +15475,14 @@ feels like an AST.")
;; libcst/_add_slots.py
license:asl2.0))))
+(define-public python-libcst-minimal
+ (hidden-package
+ (package
+ (inherit python-libcst)
+ (name "python-libcst-minimal")
+ (arguments '(#:tests? #f))
+ (native-inputs '()))))
+
(define-public python-typing-inspect
(package
(name "python-typing-inspect")
@@ -15538,7 +15492,8 @@ feels like an AST.")
(uri (pypi-uri "typing_inspect" version))
(sha256
(base32
- "1dzs9a1pr23dhbvmnvms2jv7l7jk26023g5ysf0zvnq8b791s6wg"))))
+ "1dzs9a1pr23dhbvmnvms2jv7l7jk26023g5ysf0zvnq8b791s6wg"))
+ (patches (search-patches "python-typing-inspect-fix.patch"))))
(build-system python-build-system)
(propagated-inputs
`(("python-mypy-extensions" ,python-mypy-extensions)
@@ -15696,13 +15651,13 @@ parsing UK postcodes.")
(define-public python-faker
(package
(name "python-faker")
- (version "4.0.2")
+ (version "8.12.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "Faker" version))
(sha256
(base32
- "13qq485ydxmdnqn3xbfv1xfyqbf9qfnfw33v1vw5l6jyy9p8cgrd"))))
+ "1f95g8adzdh97cbfq7j3482iy4yskbahhjma2cm2mrhrdmi5j241"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -15787,7 +15742,8 @@ YAML-serialized data.")
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)
- ("python-nose" ,python-nose)))
+ ("python-nose" ,python-nose)
+ ("python-toml" ,python-toml)))
(propagated-inputs
`(("python-simplejson" ,python-simplejson)))
(home-page "https://github.com/sdispater/backpack")
@@ -15871,40 +15827,77 @@ characters, mouse support, and auto suggestions.")
(package-with-python2 python-prompt-toolkit-1))
(define-public python-jedi
- (package
- (name "python-jedi")
- (version "0.17.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "jedi" version))
- (sha256
- (base32 "080xyf97ifabdz7jp8clg00b8zv5g33fva1fb2xf80q6fndpvvc6"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (setenv "HOME" "/tmp")
- (invoke "python" "-m" "pytest" "-vv"))
- #t)))))
- (native-inputs
- `(("python-pytest" ,python-pytest)
- ("python-docopt" ,python-docopt)))
- (propagated-inputs
- `(("python-parso" ,python-parso)))
- (home-page "https://github.com/davidhalter/jedi")
- (synopsis "Autocompletion and static analysis library for Python")
- (description
- "Jedi is a static analysis tool for Python that can be used in Integrated
+ ;; The 0.18.0 release tests do not work with Python 3.9.6. Use a more
+ ;; recent commit.
+ (let ((commit "1d944943c311b2d71655432f8870d68b2cf7d44b")
+ (revision "1"))
+ (package
+ (name "python-jedi")
+ (version
+ (git-version "0.18.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/davidhalter/jedi")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "052szkbv2pf9hy21any6zb4dhx3c5w1v6b9hn5grlc84zfm350vq"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-submodule-sources
+ (lambda* (#:key inputs #:allow-other-keys)
+ (copy-recursively (assoc-ref inputs "python-django-stubs")
+ "jedi/third_party/django-stubs")
+ (copy-recursively (assoc-ref inputs "python-typeshed")
+ "jedi/third_party/typeshed")
+ #t))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "HOME" "/tmp")
+ ;; Disable the pytest tests that fail with pytest 6. See:
+ ;; https://github.com/davidhalter/jedi/issues/1660.
+ (invoke "pytest" "-vv" "-k"
+ "not test_completion[pytest"))
+ #t)))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-docopt" ,python-docopt)
+ ("python-django-stubs"
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/davidhalter/django-stubs")
+ (commit "3d2534ea8d8300c4c9db8f18e300355d5fd5488b")))
+ (file-name "django-stubs-checkout")
+ (sha256
+ (base32 "1fpvn4lcqkd2q18z29rcnwakm649fccw2k6jik5d64j7p6xns08r"))))
+ ("python-typeshed"
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/davidhalter/typeshed")
+ (commit "ae9d4f4b21bb5e1239816c301da7b1ea904b44c3")))
+ (file-name "typeshed-checkout")
+ (sha256
+ (base32 "02xdip4amj0a7z9xph2mj46x1k55bjxl8d0gkpy25575acyx1kjq"))))))
+ (propagated-inputs
+ `(("python-parso" ,python-parso)))
+ (home-page "https://github.com/davidhalter/jedi")
+ (synopsis "Autocompletion and static analysis library for Python")
+ (description
+ "Jedi is a static analysis tool for Python that can be used in Integrated
Development Environments (@dfn{IDE}s) and text editors. It understands Python
on a deeper level than many other static analysis frameworks for Python.
Jedi understands docstrings and you can use Jedi autocompletion in your REPL as
well.")
- (license license:expat)))
+ (license license:expat))))
(define-public python2-jedi
(package-with-python2 python-jedi))
@@ -16032,6 +16025,12 @@ documentation to argparse configuration.")
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ ;; See https://github.com/torproject/stem/issues/56
+ (lambda _
+ (substitute* "run_tests.py"
+ (("test\\.task\\.MOCK_VERSION,")
+ ""))))
(replace 'check
(lambda _
(invoke "./run_tests.py" "--unit")
@@ -16185,9 +16184,7 @@ It also includes the following @emph{server} features:
(add-after 'patch-generated-file-shebangs 'set-sdl-paths
(lambda* (#:key inputs #:allow-other-keys)
(setenv "KIVY_SDL2_PATH"
- (string-append (assoc-ref inputs "sdl-union")
- "/include/SDL2"))
- #t)))))
+ (search-input-directory inputs "/include/SDL2")))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("python-cython" ,python-cython)))
@@ -16263,14 +16260,9 @@ binary or text.")
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-before 'check 'set-pythonpath
+ (add-before 'check 'set-home
(lambda _
- (setenv "PYTHONPATH"
- (string-append
- (getcwd) "/src/"
- ":" (getenv "PYTHONPATH")))
- (setenv "HOME" "")
- #t)))))
+ (setenv "HOME" ""))))))
(native-inputs
`(("python-coverage" ,python-coverage)
("python-nose" ,python-nose)))
@@ -16418,8 +16410,6 @@ discovery, monitoring and configuration.")
(modify-phases %standard-phases
(replace 'check
(lambda _
- (setenv "PYTHONPATH" (string-append "./build/lib:"
- (getenv "PYTHONPATH")))
(invoke "pytest" "-vv"))))))
(build-system python-build-system)
(native-inputs
@@ -16450,24 +16440,11 @@ Python to manipulate OpenDocument 1.2 files.")
"00y49bfsi7rrsd1s42gc2w95a6arl9ipdsx2493hr0v54fj07ih0"))))
(build-system python-build-system)
(arguments
- `(#:modules ((guix build utils)
- (guix build python-build-system)
- (srfi srfi-1)
- (srfi srfi-26)
- (ice-9 ftw))
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
- (let ((cwd (getcwd)))
- (setenv "PYTHONPATH"
- (string-append
- cwd "/build/"
- (find (cut string-prefix? "lib" <>)
- (scandir (string-append cwd "/build")))
- ":"
- (getenv "PYTHONPATH")))
- (invoke "pytest" "-v")))))))
+ (invoke "pytest" "-v"))))))
(native-inputs
`(("python-hypothesis" ,python-hypothesis)
("python-pytest-cov" ,python-pytest-cov)
@@ -16574,7 +16551,16 @@ to Python.")
"1d70vwam9gjhx7fqzsa03x7lc6ivcqki5r9pk8m7rslmb7pagmbh"))))
(build-system python-build-system)
(arguments
- '(#:tests? #f)) ; The tests are not distributed
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "tests")))))))
+ (native-inputs
+ (list
+ python-pytest
+ python-pytest-asyncio))
(propagated-inputs
`(("python-graphql-core" ,python-graphql-core)))
(home-page "https://github.com/graphql-python/graphql-relay-py")
@@ -16657,7 +16643,9 @@ focus on building massively scalable web applications.")
(uri (pypi-uri "random2" version ".zip"))
(sha256
(base32
- "01y0s4747plsx8fdnxy0nz83dp69naddz58m81r9h0s1qfm31b9l"))))
+ "01y0s4747plsx8fdnxy0nz83dp69naddz58m81r9h0s1qfm31b9l"))
+ (patches
+ (search-patches "python-random2-getrandbits-test.patch"))))
(build-system python-build-system)
(native-inputs `(("unzip" ,unzip)))
(home-page "http://pypi.python.org/pypi/random2")
@@ -16781,10 +16769,6 @@ is used by PostgreSQL and the OpenSSH Server for example.")
(delete-file "tests/__init__.py")))
(replace 'check
(lambda _
- ;; Extend PYTHONPATH so the built package will be found.
- (setenv "PYTHONPATH"
- (string-append (getcwd) "/build/lib:"
- (getenv "PYTHONPATH")))
(invoke "py.test" "-vv" ))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
@@ -16813,16 +16797,6 @@ useful as a validator for JSON data.")
(base32
"090vdksbz341f7ljvr0zswblw4lspa8qaiikzyjkf318arpxmil9"))))
(build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'set-pythonpath
- (lambda _
- (setenv "PYTHONPATH"
- (string-append
- (getcwd) "/test/"
- ":" (getenv "PYTHONPATH")))
- #t)))))
(home-page
"https://github.com/eliben/pyelftools")
(synopsis
@@ -16851,8 +16825,7 @@ Record Format (DWARF).")
(modify-phases %standard-phases
(add-after 'unpack 'patch
(lambda* (#:key inputs #:allow-other-keys)
- (let ((libev (string-append (assoc-ref inputs "libev")
- "/lib/libev.so.4")))
+ (let ((libev (search-input-file inputs "/lib/libev.so.4")))
(substitute* "setup.py"
(("libev_dll_name = find_library\\(\\\"ev\\\"\\)")
(string-append "libev_dll_name = \"" libev "\"")))))))))
@@ -17086,43 +17059,25 @@ possible on all supported Python versions.")
"0ar5dqjnqaw0c17mymd6xgd81jn9br9fblawr0x438v1571bkaya"))))
(build-system python-build-system)
(arguments
- `(#:modules ((guix build utils)
- (guix build python-build-system)
- (ice-9 ftw)
- (srfi srfi-1)
- (srfi srfi-26))
- #:phases (modify-phases %standard-phases
+ `(#:phases (modify-phases %standard-phases
(add-after 'unpack 'use-absolute-python
(lambda _
(substitute* "Cheetah/CheetahWrapper.py"
(("#!/usr/bin/env python")
- (string-append "#!" (which "python"))))
- #t))
+ (string-append "#!" (which "python"))))))
(add-after 'unpack 'fix-tests
(lambda _
(substitute* "Cheetah/Tests/ImportHooks.py"
(("os.path.dirname\\(__file__\\)")
- (string-append "'" (getcwd) "/Cheetah/Tests'")))
- #t))
+ (string-append "'" (getcwd) "/Cheetah/Tests'")))))
(replace 'check
(lambda _
- (let ((cwd (getcwd)))
- (setenv "PYTHONPATH"
- (string-append
- cwd "/build/"
- (find (cut string-prefix? "lib" <>)
- (scandir (string-append cwd "/build")))
- ":" (getenv "PYTHONPATH")))
- (setenv "PATH"
- (string-append (getenv "PATH")
- ":" cwd "/bin"))
- (setenv "TMPDIR" "/tmp")
-
- (substitute* "Cheetah/Tests/Test.py"
- (("unittest.TextTestRunner\\(\\)")
- "unittest.TextTestRunner(verbosity=2)"))
-
- (invoke "python" "Cheetah/Tests/Test.py")))))))
+ (setenv "TMPDIR" "/tmp")
+ (substitute* "Cheetah/Tests/Test.py"
+ (("unittest.TextTestRunner\\(\\)")
+ "unittest.TextTestRunner(verbosity=2)"))
+
+ (invoke "python" "Cheetah/Tests/Test.py"))))))
(propagated-inputs
`(("python-markdown" ,python-markdown))) ;optional
(home-page "https://cheetahtemplate.org/")
@@ -17218,9 +17173,6 @@ protocols written in pure Python.")
(modify-phases %standard-phases
(replace 'check
(lambda _
- (setenv "PYTHONPATH"
- (string-append (getcwd) "/build/lib:"
- (getenv "PYTHONPATH")))
(invoke "python" "test/test_pbkdf2.py"))))))
(propagated-inputs
`(("python-pycrypto" ,python-pycrypto))) ; optional
@@ -17556,7 +17508,15 @@ instead of servers and network commands.")
;; python-twisted depends on python-automat. Twisted is optional, but the
;; tests fail if it is not available. Also see
;; <https://github.com/glyph/automat/issues/71>.
- (arguments '(#:tests? #f))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; Remove script, because it depends on python-twisted.
+ (add-after 'unpack 'remove-entrypoint
+ (lambda _
+ (substitute* "setup.py"
+ (("\"automat-visualize = automat._visualize:tool\"") "")))))))
(native-inputs
`(("python-m2r" ,python-m2r)
("python-setuptools-scm" ,python-setuptools-scm)
@@ -17633,33 +17593,17 @@ and bit flag values.")
"1yzmwi5d197p0qhl7rl4xi9q1w8mk9i3zn6hrl22knbcrb1slspg"))))
(build-system python-build-system)
(arguments
- `(#:modules ((guix build utils)
- (guix build python-build-system)
- (ice-9 ftw)
- (srfi srfi-1)
- (srfi srfi-26))
- #:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (let ((cwd (getcwd)))
- (setenv "PYTHONPATH"
- (string-append
- cwd "/build/"
- (find (cut string-prefix? "lib" <>)
- (scandir (string-append cwd "/build")))
- ":"
- (getenv "PYTHONPATH")))
- (invoke "python" "-m" "pytest"))))))))
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest")))))))
(native-inputs
`(("python-coverage" ,python-coverage)
("python-hypothesis" ,python-hypothesis)
("python-pympler" ,python-pympler)
("python-pytest" ,python-pytest)
- ("python-six" ,python-six)
- ("python-sphinx" ,python-sphinx)
- ("python-zope-interface" ,python-zope-interface)))
+ ("python-six" ,python-six)))
(home-page "https://github.com/python-attrs/attrs/")
(synopsis "Attributes without boilerplate")
(description "@code{attrs} is a Python package with class decorators that
@@ -17674,13 +17618,6 @@ protocols.")
(package
(inherit python-attrs)
(name "python-attrs-bootstrap")
- (version "19.3.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "attrs" version))
- (sha256
- (base32
- "0wky4h28n7xnr6xv69p9z6kv8bzn50d10c3drmd9ds8gawbcxdzp"))))
(native-inputs `())
(arguments `(#:tests? #f))))
@@ -17788,28 +17725,22 @@ happens using the @code{logging} library.")
(define-public python-astroid
(package
(name "python-astroid")
- (version "2.4.2")
+ (version "2.6.6")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "astroid" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PyCQA/astroid")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "00xp5gqxidxvgg1bwd91myqzdf2fpb9cjwbdl3p7gwqvlk17hh1g"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Check to see if the version pinning has been removed.
- (substitute* "astroid/__pkginfo__.py"
- (("==1\\.4\\.\\*") ">=1.4.0"))
- #t))))
+ (base32 "1amzf996inwmh4r3mlpzmch60xs6lrg86vppfnwl1y0l8r0y7zxh"))))
(build-system python-build-system)
(propagated-inputs
`(("python-lazy-object-proxy" ,python-lazy-object-proxy)
- ("python-six" ,python-six)
("python-wrapt" ,python-wrapt)))
(native-inputs
- `(("python-dateutil" ,python-dateutil)
- ("python-pytest" ,python-pytest)
+ `(("python-pytest" ,python-pytest)
("python-pytest-runner" ,python-pytest-runner)))
(home-page "https://github.com/PyCQA/astroid")
(synopsis "Common base representation of python source code for pylint and
@@ -17885,23 +17816,77 @@ version, is suitable to be include as a dependency in other projects.")
(define-public python-isort
(package
(name "python-isort")
- (version "4.3.4")
+ (version "5.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- ;; Tests pass only from the Github sources
- (url "https://github.com/timothycrosley/isort")
- (commit version)))
+ ;; Tests pass only from the Github sources
+ (url "https://github.com/timothycrosley/isort")
+ (commit version)))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet '(for-each delete-file (find-files "." "\\.whl$")))
(sha256
(base32
- "1q0mlrpki5vjbgwxag5rghljjcfg7mvb0pbkwid80p0sqrxlm2p6"))))
+ "0phq4s911mjjdyr5h5siz93jnpkqb2qgphgcfk6axncgxr8i7vi1"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; A foretaste of what our future python-build-system will need to
+ ;; do.
+ (replace 'build
+ (lambda _
+ (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (whl (car (find-files "dist" "\\.whl$"))))
+ (invoke "pip" "--no-cache-dir" "--no-input"
+ "install" "--no-deps" "--prefix" out whl))))
+ (add-after 'install 'install-example-plugins
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; Patch to use the core poetry API.
+ (substitute* '("example_isort_formatting_plugin/pyproject.toml"
+ "example_shared_isort_profile/pyproject.toml")
+ (("poetry>=0.12")
+ "poetry-core>=1.0.0")
+ (("poetry.masonry.api")
+ "poetry.core.masonry.api"))
+ ;; Build the example plugins.
+ (for-each (lambda (source-directory)
+ (invoke "python" "-m" "build" "--wheel"
+ "--no-isolation" "--outdir=dist"
+ source-directory))
+ '("example_isort_formatting_plugin"
+ "example_shared_isort_profile"))
+ ;; Install them to temporary storage, for the test.
+ (setenv "HOME" (getcwd))
+ (let ((example-whls (find-files "dist" "^example.*\\.whl$")))
+ (apply invoke "pip" "--no-cache-dir" "--no-input"
+ "install" "--user" "--no-deps" example-whls)))))
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (setenv "PATH" (string-append (getenv "PATH") ":" bin)))
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv" "tests/unit/"
+ "--ignore=tests/unit/test_deprecated_finders.py")))))))
(native-inputs
- `(("python-mock" ,python-mock)
+ `(("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)))
- (home-page "https://github.com/timothycrosley/isort")
+ (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
imports alphabetically, and automatically separated into sections. It
@@ -18273,9 +18258,6 @@ of corner cases, factory_boy allows you to use objects customized for the
current test, while only declaring the test-specific fields")
(license license:expat)))
-(define-public python2-factory-boy
- (package-with-python2 python-factory-boy))
-
(define-public python-translate-toolkit
(package
(name "python-translate-toolkit")
@@ -18365,10 +18347,17 @@ information.")
(package/inherit
python-packaging
(name "python-packaging-bootstrap")
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-packaging)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'fix-dependencies
+ (lambda* (#:key tests? #:allow-other-keys)
+ (substitute* "setup.py" (("\"six\"") ""))))))
+ ((#:tests? _ #f) #f)))
(native-inputs '())
(propagated-inputs
- `(("python-pyparsing" ,python-pyparsing)))
- (arguments '(#:tests? #f)))))
+ `(("python-pyparsing" ,python-pyparsing))))))
(define-public python2-packaging-bootstrap
(hidden-package
@@ -18377,7 +18366,8 @@ information.")
(name "python2-packaging-bootstrap")
(native-inputs '())
(propagated-inputs
- `(("python-pyparsing" ,python2-pyparsing)))
+ `(("python-pyparsing" ,python2-pyparsing)
+ ("python-six" ,python2-six-bootstrap)))
(arguments
`(#:tests? #f
,@(package-arguments python2-packaging))))))
@@ -18423,6 +18413,13 @@ for more filetypes can be easily added by creating plugins for them.")
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "setup.py"
+ ((".*'future'.*")
+ "")
+ (("colorama==0.4.1")
+ "colorama>=0.4.1"))))
(replace 'check
(lambda _
(invoke "python" "radon/tests/run.py"))))))
@@ -18656,23 +18653,11 @@ applying JSON Patches according to RFC 6902.")
"17dvx15m3r49bmif5zlli8kzjd6bys6psixzbp14sd5367d9h8qi"))))
(build-system python-build-system)
(arguments
- `(#:modules ((guix build utils)
- (guix build python-build-system)
- (ice-9 ftw)
- (srfi srfi-1)
- (srfi srfi-26))
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
- (let ((cwd (getcwd)))
- (setenv "PYTHONPATH"
- (string-append cwd "/build/"
- (find (cut string-prefix? "lib" <>)
- (scandir (string-append cwd "/build")))
- ":"
- (getenv "PYTHONPATH")))
- (invoke "pytest" "-v")))))))
+ (invoke "pytest" "-v"))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://rfc3986.readthedocs.io/")
@@ -18986,19 +18971,13 @@ complex datatypes to and from native Python datatypes.")
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'disable-prance-tests
- (lambda _
- ;; Disable validation tests since they require the
- ;; optional 'prance' library which is not yet in Guix.
- (substitute* "tests/test_ext_marshmallow_openapi.py"
- (("def test_openapi_tools_validate.*" all)
- (string-append "@pytest.mark.xfail\n" all)))))
(replace 'check
(lambda _
- (setenv "PYTHONPATH"
- (string-append "./build/lib:"
- (getenv "PYTHONPATH")))
- (invoke "pytest" "-vv"))))))
+ (invoke "pytest" "-vv"
+ ;; Disable validation tests since they require
+ ;; the optional 'prance' library which is not
+ ;; yet in Guix.
+ "-k" "not openapi_tools_validate"))))))
(propagated-inputs
`(("python-pyyaml" ,python-pyyaml)))
(native-inputs
@@ -19033,9 +19012,6 @@ as Swagger.")
(substitute* "Makefile"
(("flake8 flasgger --ignore=F403")
"flake8 flasgger --ignore=E731,F403"))
- (setenv "PYTHONPATH" (string-append (getcwd)
- ":"
- (getenv "PYTHONPATH")))
(invoke "py.test"))))))
(propagated-inputs
`(("python-flask" ,python-flask)
@@ -19419,25 +19395,26 @@ ignoring formatting changes.")
(define-public python-tqdm
(package
(name "python-tqdm")
- (version "4.43.0")
+ (version "4.60.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tqdm" version))
(sha256
(base32
- "093v4c2x5hpigv47zvyxl8wh10y2yd2gvz3l9vchn0zsp8hv2pzk"))))
+ "1bjpy4mjg6ryp0ijvqi77vgs76l5hh3zrv3x4vmcwxrlbswvvppb"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(replace 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- ;; This invokation is taken from tox.ini.
- (invoke "nosetests" "--ignore-files=\"test_perf.py\""
- "-d" "-v" "tqdm/"))))))
+ (lambda _
+ (invoke "pytest" "-vv" "-k" "not perf"))))))
(native-inputs
- `(("python-nose" ,python-nose)))
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-asyncio" ,python-pytest-asyncio)
+ ("python-pytest-timeout" ,python-pytest-timeout)
+ ("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-toml" ,python-toml)))
(home-page "https://github.com/tqdm/tqdm")
(synopsis "Fast, extensible progress meter")
(description
@@ -19561,7 +19538,8 @@ lines are read from a single file.")
(native-inputs
`(("python-pbr" ,python-pbr-minimal)))
(propagated-inputs
- `(("python-linecache2" ,python-linecache2)))
+ `(("python-linecache2" ,python-linecache2)
+ ("python-six" ,python-six)))
(home-page
"https://github.com/testing-cabal/traceback2")
(synopsis "Backports of the traceback module")
@@ -20501,7 +20479,7 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style
(define-public python-typed-ast
(package
(name "python-typed-ast")
- (version "1.4.0")
+ (version "1.4.2")
(source
(origin
(method git-fetch)
@@ -20509,28 +20487,15 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style
(url "https://github.com/python/typed_ast")
(commit version)))
(sha256
- (base32 "0l0hz809f7i356kmqkvfsaswiidb98j9hs9rrjnfawzqcbffzgyb"))
+ (base32 "1wr6pkvvrq6rzjjw88pd5xy8fy06msam4hlxbkglvdmwh4c083l0"))
(file-name (git-file-name name version))))
(build-system python-build-system)
(arguments
- `(#:modules ((guix build utils)
- (guix build python-build-system)
- (ice-9 ftw)
- (srfi srfi-1)
- (srfi srfi-26))
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
- (let ((cwd (getcwd)))
- (setenv "PYTHONPATH"
- (string-append cwd "/build/"
- (find (cut string-prefix? "lib" <>)
- (scandir (string-append cwd "/build")))
- ":"
- (getenv "PYTHONPATH"))))
- (invoke "pytest")
- #t)))))
+ (invoke "pytest"))))))
(native-inputs `(("python-pytest" ,python-pytest)))
(home-page "https://github.com/python/typed_ast")
(synopsis "Fork of Python @code{ast} modules with type comment support")
@@ -20664,13 +20629,13 @@ Included are implementations of:
(define-public bpython
(package
(name "bpython")
- (version "0.20.1")
+ (version "0.21")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bpython" version))
(sha256
- (base32 "00vmkkc79mlnkyvwww1cr7bpwmf4p61704dhayz6kd0kc203hxvf"))))
+ (base32 "11wlf12nm6ggn9512y4yqs26s8gdgpx0h9ls94k7fsjgjy4rpal8"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -20696,14 +20661,17 @@ Included are implementations of:
("python-curtsies" ,python-curtsies)
("python-greenlet" ,python-greenlet)
("python-six" ,python-six)
- ("python-wcwidth" ,python-wcwidth)
+ ("python-cwcwidth" ,python-cwcwidth)
+ ("python-pyxdg" ,python-pyxdg)
;; optional dependencies
("python-urwid" ,python-urwid) ; for bpython-urwid only
("python-watchdog" ,python-watchdog)
("python-jedi" ,python-jedi)))
(native-inputs
`(("python-sphinx" ,python-sphinx)
- ("python-mock" ,python-mock)))
+ ("python-mock" ,python-mock)
+ ("python-tox" ,python-tox)
+ ("python-wheel" ,python-wheel)))
(home-page "https://bpython-interpreter.org/")
(synopsis "Fancy interface to the Python interpreter")
(description "Bpython is a fancy interface to the Python
@@ -20901,13 +20869,13 @@ time-based (TOTP) passwords.")
(define-public python-parso
(package
(name "python-parso")
- (version "0.7.1")
+ (version "0.8.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "parso" version))
(sha256
- (base32 "1f9fc99mjx0h2ad4mgsid728nnmw58hvnq3411g8ljlr9dr49fna"))))
+ (base32 "161k8771m7w60qakyvrwf9q62lvakmix7mpfylpy7713qs939f0j"))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(build-system python-build-system)
@@ -21236,8 +21204,7 @@ user-space file systems in Python.")
(("pytest < 5") "pytest < 7"))
;; We don't care about a coverage report.
(substitute* "test/requirements.txt"
- (("coverage.*") "coverage\n"))
- #t))
+ (("coverage.*") "coverage\n"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
@@ -21245,11 +21212,7 @@ user-space file systems in Python.")
(delete-file "test/test_js_client.py")
(delete-file "test/test_tsd_types.py")
(delete-file "test/test_python_gen.py")
- (setenv "PYTHONPATH"
- (string-append (getcwd) ":"
- (getenv "PYTHONPATH")))
- (invoke "pytest"))
- #t)))))
+ (invoke "pytest")))))))
(propagated-inputs
`(("python-ply" ,python-ply)
("python-six" ,python-six)))
@@ -21412,9 +21375,12 @@ library to allow local file system access via @code{file://} URLs.")
(arguments
`(#:phases
(modify-phases %standard-phases
+ ;; system-error "utime" "~A" ("No such file or directory")
+ (delete 'ensure-no-mtimes-pre-1980)
(replace 'check
- (lambda _
- (invoke "pytest" "-vv"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv")))))))
(native-inputs
`(("python-coverage" ,python-coverage)
("python-pytest" ,python-pytest)))
@@ -22065,13 +22031,6 @@ data.")
(arguments
'(#:phases
(modify-phases %standard-phases
- (add-before 'check 'do-not-override-PYTHONPATH
- (lambda _
- ;; Append to PYTHONPATH instead of overriding it so
- ;; that dependencies from Guix can be found.
- (substitute* "tests/testutils.py"
- (("env\\['PYTHONPATH'\\] = pythonpath")
- "env['PYTHONPATH'] += os.pathsep + pythonpath"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
@@ -22494,13 +22453,13 @@ distribution.")
(define-public python-gast
(package
(name "python-gast")
- (version "0.3.3")
+ (version "0.5.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "gast" version))
(sha256
- (base32 "0mrvvfzqafj1wzd0xxfmjf4vphnlxypbhpic1m283aj9i8lfz0dq"))))
+ (base32 "1xv77kzghiqfm4fnvlv0p878ma152dvcfkly3jij89lqigxcw7zq"))))
(build-system python-build-system)
(propagated-inputs
`(("python-astunparse" ,python-astunparse)))
@@ -22992,14 +22951,13 @@ compatible).")
(define-public python-bsddb3
(package
(name "python-bsddb3")
- (version "6.2.6")
+ (version "6.2.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bsddb3" version))
(sha256
- (base32
- "019db2y6bfmiqbrgg9x9f6h72qjmqh05czdn2v5sy9bl0gs23mj2"))))
+ (base32 "00bqdsfx8jgmfz5bgkx10nlw5bfsw11a86f91zkl53snvk45xl3h"))))
(build-system python-build-system)
(inputs
`(("bdb" ,bdb)))
@@ -23656,8 +23614,6 @@ essential tools are located.")
(modify-phases %standard-phases
(replace 'check
(lambda _
- (setenv "PYTHONPATH"
- (string-append (getcwd) ":" (getenv "PYTHONPATH")))
(invoke "python" "./tests/__main__.py"))))))
(propagated-inputs
`(("python-dill" ,python-dill)
@@ -24365,7 +24321,10 @@ Python.")
(base32 "0v8vg0naa9rywvd31cpq65ljbdclpsrx09788v4xj7lg10np8nk0"))))
(build-system python-build-system)
(arguments
- '(#:tests? #f)) ; TODO: package dependencies required for tests.
+ ;; TODO: package dependencies required for tests.
+ '(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ (delete 'sanity-check))))
(synopsis "Interface for Open Geospatial Consortium web service")
(description
"OWSLib is a Python package for client programming with Open Geospatial
@@ -25207,8 +25166,7 @@ be necessary when using @code{cmd}.")
(modify-phases %standard-phases
(add-before 'build 'qualify-libtidy
(lambda* (#:key inputs #:allow-other-keys)
- (let ((libtidy (string-append (assoc-ref inputs "tidy")
- "/lib/libtidy.so")))
+ (let ((libtidy (search-input-file inputs "/lib/libtidy.so")))
(substitute* "tidylib/tidy.py"
(("ctypes\\.util\\.find_library\\('tidy'\\)")
(format #f "'~a'" libtidy)))
@@ -25616,9 +25574,8 @@ It adds a simple and readable way to print stuff during development.")
(lambda* (#:key inputs #:allow-other-keys)
(setenv "TZ" "UTC")
(setenv "TZDIR"
- (string-append (assoc-ref inputs "tzdata")
- "/share/zoneinfo"))
- #t)))))
+ (search-input-directory inputs
+ "share/zoneinfo")))))))
(home-page "https://github.com/scrapinghub/dateparser")
(synopsis
"Date parsing library designed to parse dates from HTML pages")
@@ -25735,11 +25692,11 @@ By default it uses the open Python vulnerability database Safety DB.")
(propagated-inputs
`(("wheel" ,python-wheel)))
(native-inputs
- `(("texlive" ,(texlive-union (list texlive-amsfonts/patched
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-fonts-ec
- texlive-iftex
- texlive-latex-hyperref
- texlive-latex-oberdiek
+ texlive-generic-iftex
+ texlive-hyperref
+ texlive-oberdiek
texlive-lm
texlive-xcolor)))))
(arguments
@@ -25751,8 +25708,6 @@ By default it uses the open Python vulnerability database Safety DB.")
(substitute* "tests.py"
(("test_basic_conversion_from_http_url")
"skip_test_basic_conversion_from_http_url"))
- ;; Needed by texlive-union to generate fonts
- (setenv "HOME" "/tmp")
#t)))))
(home-page "https://github.com/bebraw/pypandoc")
(synopsis "Python wrapper for pandoc")
@@ -26072,10 +26027,16 @@ process.")
(inputs
`(("libpng" ,libpng)
("libtiff" ,libtiff)
- ("python2-wxpython" ,python2-wxpython)
("zlib" ,zlib)))
(arguments
- `(#:python ,python-2))
+ `(#:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-wx-support
+ (lambda _
+ (substitute* "setup.py"
+ (("no_wx = False")
+ "no_wx = True")))))))
(synopsis "Framework for building document analysis applications")
(description
"Gamera is a toolkit for building document image recognition systems.")
@@ -26930,6 +26891,55 @@ application binary interfaces (ABIs); it takes care of register allocation; it
supports x86_64 instructions up to AVX-512 and SHA.")
(license license:bsd-2))))
+(define-public python-sgmllib3k
+ (let ((commit "799964676f35349ca2dd04503e34c2b3ad522c0d")
+ (revision "1"))
+ (package
+ (name "python-sgmllib3k")
+ (version
+ (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hsoft/sgmllib")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0bzf6pv85dzfxfysm6zbj8m40hp0xzr9h8qlk4hp3nmy88rznqvr"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/hsoft/sgmllib")
+ (synopsis "Python 3 port of sgmllib")
+ (description "This package is a port of sgmllib that is no longer part
+of Python 3.")
+ (license license:bsd-3))))
+
+(define-public python-cwcwidth
+ (package
+ (name "python-cwcwidth")
+ (version "0.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cwcwidth" version))
+ (sha256
+ (base32
+ "1azrphpkcyggg38xvkfb9dpc4xmmm90p02kf8dkqd4d6j5w96aj8"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-cython" ,python-cython)
+ ("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-toml" ,python-toml)
+ ("python-wheel" ,python-wheel)))
+ (home-page
+ "https://github.com/sebastinas/cwcwidth")
+ (synopsis "Python bindings for wc(s)width")
+ (description "This package provides bindings for wcwidth and wcswidth
+functions defined in POSIX.1-2001 and POSIX.1-2008.")
+ (license license:expat)))
+
(define-public python-pyan3
(package
(name "python-pyan3")
@@ -26955,8 +26965,8 @@ supports x86_64 instructions up to AVX-512 and SHA.")
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; Extend PYTHONPATH so the built package will be found.
- (setenv "PYTHONPATH"
- (string-append (getcwd) ":" (getenv "PYTHONPATH")))
+ (setenv "GUIX_PYTHONPATH"
+ (string-append (getcwd) ":" (getenv "GUIX_PYTHONPATH")))
(invoke "pytest")))))))
(native-inputs
`(("python-pytest" ,python-pytest)