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.scm2683
1 files changed, 1289 insertions, 1394 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 81b99e1d2e..a1e7f609df 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>
@@ -149,6 +149,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)
@@ -226,6 +227,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)
@@ -777,12 +779,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
@@ -964,25 +961,22 @@ to CommonMark.")
(lambda _
(substitute* "pymediainfo/__init__.py"
(("libmediainfo.so.0")
- (string-append (assoc-ref %build-inputs "libmediainfo")
- "/lib/libmediainfo.so.0")))
- #t))
+ (search-input-file %build-inputs
+ "/lib/libmediainfo.so.0")))))
(replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
(when tests?
- ;; Extend PYTHONPATH so the built package will be found.
- (setenv "PYTHONPATH"
- (string-append (getcwd) "/build/lib:"
- (getenv "PYTHONPATH")))
- ;; Skip the only failing test "test_parse_url"
+ (add-installed-pythonpath inputs outputs)
+ ;; Skip the only failing test "test_parse_url" because it tries
+ ;; to access the internet.
(invoke "pytest" "-vv" "-k" "not test_parse_url")))))))
(home-page
"https://github.com/sbraz/pymediainfo")
(synopsis
"Python wrapper for the mediainfo library")
(description
- "Python wrapper for the mediainfo library to access the technical and tag
-data for video and audio files.")
+ "This package provides a Python wrapper for the mediainfo library to
+access the technical and tag data for video and audio files.")
(license license:expat)))
(define-public python-psutil
@@ -1156,15 +1150,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
@@ -1172,7 +1167,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
@@ -1224,7 +1219,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)
@@ -1324,14 +1319,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")
@@ -1994,9 +1981,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
@@ -2466,27 +2450,47 @@ standard.")
(sha256
(base32
"1qzjj8nwj4dn0mhq1j64f136afiqqb81lvqiikipz3g1g0b80lqx"))))
- (arguments '(#:tests? #f))))) ; No test suite.
+ (arguments
+ `(#:python ,python-2
+ #:tests? #f))))) ; No test suite.
(define-public python-eventlet
(package
(name "python-eventlet")
- (version "0.25.1")
+ (version "0.33.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "eventlet" version))
(sha256
(base32
- "1hgz8jq19wlz8vwqj900ry8cjv578nz4scc91mlc8944yid6573c"))))
+ "07qlyhcm0f28sxdizawvdf3d50m3hnbzz5kg3fjp7chvki44y540"))))
(build-system python-build-system)
(propagated-inputs
`(("python-dnspython" ,python-dnspython)
("python-greenlet" ,python-greenlet)
- ("python-monotonic" ,python-monotonic)))
+ ("python-monotonic" ,python-monotonic)
+ ("python-six" ,python-six)))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
(arguments
- ;; TODO: Requires unpackaged 'enum-compat'.
- '(#:tests? #f))
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'avoid-OSError
+ (lambda _
+ ;; If eventlet tries to load greendns, an OSError is thrown when
+ ;; getprotobyname is called. Thankfully there is an environment
+ ;; variable to disable the greendns import, so use it:
+ (setenv "EVENTLET_NO_GREENDNS" "yes")))
+ (add-after 'unpack 'delete-broken-tests
+ (lambda _
+ (delete-file "tests/greendns_test.py")
+ (delete-file "tests/socket_test.py")))
+ ;; See https://github.com/eventlet/eventlet/issues/562#issuecomment-714183009
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "nosetests" "-v" "tests/")))))))
(home-page "https://eventlet.net")
(synopsis "Concurrent networking library for Python")
(description
@@ -2497,7 +2501,7 @@ Coroutines ensure that the developer uses a blocking style of programming
that is similar to threading, but provide the benefits of non-blocking I/O.
The event dispatch is implicit, which means you can easily use @code{Eventlet}
from the Python interpreter, or as a small part of a larger application.")
- (license license:expat)))
+ (license license:expat)))
(define-public python-sinfo
(package
@@ -2519,48 +2523,20 @@ in the current session, Python, and the OS.")
(license license:bsd-3)))
(define-public python-six
- (package
+ (package/inherit python-six-bootstrap
(name "python-six")
- (version "1.14.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "six" version))
- (sha256
- (base32
- "02lw67hprv57hyg3cfy02y3ixjk3nzwc0dx3c4ynlvkfwkfdnsr3"))))
- (build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
- (invoke "py.test" "-v"))))))
+ (invoke "pytest" "-v"))))))
(native-inputs
- `(("python-pytest" ,python-pytest-bootstrap)))
- (home-page "https://pypi.org/project/six/")
- (synopsis "Python 2 and 3 compatibility utilities")
- (description
- "Six is a Python 2 and 3 compatibility library. It provides utility
-functions for smoothing over the differences between the Python versions with
-the goal of writing Python code that is compatible on both Python versions.
-Six supports every Python version since 2.5. It is contained in only one
-Python file, so it can be easily copied into your project.")
- (license license:x11)))
+ `(("python-pytest" ,python-pytest-bootstrap)))))
(define-public python2-six
(package-with-python2 python-six))
-(define-public python-six-bootstrap
- (package
- (inherit python-six)
- (name "python-six-bootstrap")
- (native-inputs `())
- (arguments `(#:tests? #f))))
-
-(define-public python2-six-bootstrap
- (package-with-python2 python-six-bootstrap))
-
(define-public python-schedule
(package
(name "python-schedule")
@@ -2666,16 +2642,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
@@ -2698,14 +2676,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)))
@@ -3229,14 +3207,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
@@ -3253,18 +3231,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))
@@ -3459,11 +3425,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)))
@@ -3602,16 +3566,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")
@@ -3746,9 +3709,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)))
@@ -3844,13 +3804,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
@@ -3879,14 +3839,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")
@@ -3895,9 +3855,6 @@ visualisation and class tracker statistics.")
environments and back.")
(license license:bsd-3)))
-(define-public python2-itsdangerous
- (package-with-python2 python-itsdangerous))
-
(define-public python-pyyaml
(package
(name "python-pyyaml")
@@ -3911,7 +3868,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
@@ -3951,64 +3909,56 @@ 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)
+ (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")
@@ -4024,27 +3974,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
@@ -4119,19 +4064,24 @@ logic-free templating system Mustache.")
(define-public python-joblib
(package
(name "python-joblib")
- (version "0.14.1")
+ (version "1.1.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "joblib" version))
(sha256
(base32
- "1j464w137w6s367gl697j1l63g52akydrxgv4czlck36ynjfwc06"))))
+ "0d8ypyhsw1bjr96zan9ms8wbvnzbjqxniq4vcszghcrps7ngqn21"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (invoke "pytest" "-v" "joblib"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "JOBLIB_MULTIPROCESSING" "0")
+ (invoke "pytest" "-v" "joblib"
+ ;; We disable this test to avoid having to depend on ipython/jupyter
+ "-k" "not test_parallel_call_cached_function_defined_in_jupyter")))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://joblib.readthedocs.io/")
@@ -4143,8 +4093,17 @@ and lazy re-evaluation (memoize pattern), easy simple parallel computing
logging and tracing of the execution.")
(license license:bsd-3)))
+;; Newer versions of joblib don't support Python 2.
(define-public python2-joblib
- (package-with-python2 python-joblib))
+ (package
+ (inherit (package-with-python2 python-joblib))
+ (version "0.14.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "joblib" version))
+ (sha256
+ (base32
+ "1j464w137w6s367gl697j1l63g52akydrxgv4czlck36ynjfwc06"))))))
(define-public python-daemon
(package
@@ -4226,14 +4185,14 @@ structure for Python.")
(define-public python-docutils
(package
(name "python-docutils")
- (version "0.16")
+ (version "0.17.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "docutils" version))
(sha256
(base32
- "1z3qliszqca9m719q3qhdkh0ghh90g500avzdgi7pl77x5h3mpn2"))))
+ "09gii36lp1bs26cpxqyfd20xahnpbrbjzcnba2xq08y3wk97frb8"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@@ -4259,6 +4218,20 @@ via commands such as @command{rst2man}, as well as supporting Python code.")
(define-public python2-docutils
(package-with-python2 python-docutils))
+;; awscli refuses to be built with docutils < 0.16.
+(define-public python-docutils-0.15
+ (package
+ (inherit python-docutils)
+ (version "0.15")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "docutils" version))
+ (sha256
+ (base32
+ "0ja8q6mdj6xv62jjw3phv8j5nfqi5x8hnfy4pqfcjcgz4b34k8sl"))))
+ ;; tests contain Python 2 syntax.
+ (arguments '(#:tests? #false))))
+
;; python2-sphinx fails its test suite with newer versions.
(define-public python2-docutils-0.14
(package
@@ -4345,15 +4318,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.
@@ -4365,18 +4337,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))))
@@ -4576,18 +4536,17 @@ ecosystem, but can naturally be used also by other projects.")
(copy-recursively "doc/libraries"
(string-append doc "/libraries")))))
(replace 'check
- (lambda* (#:key 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"
- (string-append (assoc-ref inputs "tzdata")
- "/share/zoneinfo"))
- (setenv "TZ" "Europe/Paris")
- (invoke "python" "utest/run.py")))))))
+ (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"))))))
(native-inputs
`(("python-docutils" ,python-docutils)
("python-jsonschema" ,python-jsonschema)
@@ -5147,7 +5106,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)
@@ -5280,13 +5246,13 @@ provides additional functionality on the produced Mallard documents.")
(define-public python-cython
(package
(name "python-cython")
- (version "0.29.22")
+ (version "0.29.24")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Cython" version))
(sha256
- (base32 "01jl3544qwsi8lp6anbl55566xqkjd53x452i7m6gnfilv3q6syz"))))
+ (base32 "0hw4gs18rh4slij1fg252argxhraypld9apbqbl60230qc3lvw6d"))))
(build-system python-build-system)
;; we need the full python package and not just the python-wrapper
;; because we need libpython3.3m.so
@@ -5297,21 +5263,24 @@ provides additional functionality on the produced Mallard documents.")
(modify-phases %standard-phases
(add-before 'check 'set-HOME
;; some tests require access to "$HOME/.cython"
- (lambda _ (setenv "HOME" "/tmp") #t))
+ (lambda _ (setenv "HOME" "/tmp")))
(replace 'check
- (lambda _
+ (lambda* (#:key tests? #:allow-other-keys)
;; Disable compiler optimizations to greatly reduce the running
;; time of the test suite.
(setenv "CFLAGS" "-O0")
- (invoke "python" "runtests.py" "-vv"
- "-j" (number->string (parallel-job-count))
- ;; XXX: On 32-bit architectures, running the parallel tests
- ;; fails on many-core systems, see
- ;; <https://github.com/cython/cython/issues/2807>.
- ,@(if (not (target-64bit?))
- '("-x" "run.parallel")
- '())))))))
+ (when tests?
+ (invoke "python" "runtests.py" "-vv"
+ "-j" (number->string (parallel-job-count))
+ ;; XXX: On 32-bit architectures, running the parallel tests
+ ;; fails on many-core systems, see
+ ;; <https://github.com/cython/cython/issues/2807>.
+ ,@(if (not (target-64bit?))
+ '("-x" "run.parallel")
+ '())
+ ;; This test fails when running on 24 cores.
+ "-x" "cpp_stl_conversion")))))))
(home-page "https://cython.org/")
(synopsis "C extensions for Python")
(description "Cython is an optimising static compiler for both the Python
@@ -5356,10 +5325,10 @@ writing C extensions for Python as easy as Python itself.")
;; NOTE: when upgrading numpy please make sure that python-pandas and
;; python-scipy still build, as these three packages are often used together.
-(define-public python-numpy
+(define-public python-numpy-next
(package
(name "python-numpy")
- (version "1.17.3")
+ (version "1.21.3")
(source
(origin
(method url-fetch)
@@ -5368,38 +5337,32 @@ writing C extensions for Python as easy as Python itself.")
version "/numpy-" version ".tar.gz"))
(sha256
(base32
- "1ak9dmjja0q90a7fsxli51ypcwssh8c4pb6f8wkrsnf2xgdk6dy9"))))
+ "0s6hy8828yr7fcjiwnym4l8lrknr21gqfkaiawsf86n0hd0a5fyh"))))
(build-system python-build-system)
(inputs
`(("openblas" ,openblas)))
(native-inputs
`(("python-cython" ,python-cython)
+ ("python-hypothesis" ,python-hypothesis)
("python-pytest" ,python-pytest)
+ ("python-pytest-xdist" ,python-pytest-xdist)
("gfortran" ,gfortran)))
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-before 'build 'configure-blas-lapack
+ (add-before 'build 'configure-blas
(lambda* (#:key inputs #:allow-other-keys)
(call-with-output-file "site.cfg"
(lambda (port)
(format port
- "[openblas]
+ "\
+[openblas]
libraries = openblas
library_dirs = ~a/lib
include_dirs = ~a/include
-
-# backslash-n to make emacs happy
-\n[lapack]
-lapack_libs = lapack
-library_dirs = ~a/lib
-include_dirs = ~a/include
"
(assoc-ref inputs "openblas")
- (assoc-ref inputs "openblas")
- (assoc-ref inputs "lapack")
- (assoc-ref inputs "lapack"))))
- #t))
+ (assoc-ref inputs "openblas"))))))
(add-before 'build 'fix-executable-paths
(lambda* (#:key inputs #:allow-other-keys)
;; Make /gnu/store/...-bash-.../bin/sh the default shell,
@@ -5410,21 +5373,17 @@ include_dirs = ~a/include
;; Use "gcc" executable, not "cc".
(substitute* "numpy/distutils/system_info.py"
(("c = distutils\\.ccompiler\\.new_compiler\\(\\)")
- "c = distutils.ccompiler.new_compiler(); c.set_executables(compiler='gcc',compiler_so='gcc',linker_exe='gcc',linker_so='gcc -shared')"))
- #t))
- ;; Tests can only be run after the library has been installed and not
- ;; within the source directory.
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key outputs inputs #:allow-other-keys)
- ;; Make installed package available for running the tests
- (add-installed-pythonpath inputs outputs)
- ;; Make sure "f2py" etc is found.
- (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
- ":" (getenv "PATH")))
- (with-directory-excursion "/tmp"
- (invoke "python" "-c"
- "import numpy; numpy.test(verbose=2)")))))))
+ "c = distutils.ccompiler.new_compiler(); c.set_executables(compiler='gcc',compiler_so='gcc',linker_exe='gcc',linker_so='gcc -shared')"))))
+ (replace 'check
+ (lambda* (#:key tests? outputs inputs #:allow-other-keys)
+ (when tests?
+ ;; Make installed package available for running the tests.
+ (add-installed-pythonpath inputs outputs)
+ ;; Make sure "f2py" etc is found.
+ (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
+ ":" (getenv "PATH")))
+ (invoke "./runtests.py"
+ "-j" (number->string (parallel-job-count)))))))))
(home-page "https://numpy.org")
(synopsis "Fundamental package for scientific computing with Python")
(description "NumPy is the fundamental package for scientific computing
@@ -5438,7 +5397,7 @@ capabilities.")
;; Numpy 1.16.x are the last versions that support Python 2.
(define-public python2-numpy
(let ((numpy (package-with-python2
- (strip-python2-variant python-numpy))))
+ (strip-python2-variant python-numpy-next))))
(package
(inherit numpy)
(version "1.16.5")
@@ -5449,7 +5408,42 @@ capabilities.")
version "/numpy-" version ".tar.gz"))
(sha256
(base32
- "0lg1cycxzi4rvvrd5zxinpdz0ni792fpx6xjd75z1923zcac8qrb")))))))
+ "0lg1cycxzi4rvvrd5zxinpdz0ni792fpx6xjd75z1923zcac8qrb"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments numpy)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'delete-failing-test
+ (lambda _
+ ;; There's just one failing test here.
+ (delete-file "numpy/linalg/tests/test_linalg.py")
+ ;; ...and this one depends on the previous one.
+ (delete-file "numpy/matrixlib/tests/test_matrix_linalg.py")))))))
+ (native-inputs
+ `(("python-cython" ,python2-cython)
+ ("python-pytest" ,python2-pytest)
+ ("gfortran" ,gfortran))))))
+
+;; Needed by python-numba, see https://github.com/numba/numba/issues/7176
+(define-public python-numpy-1.20
+ (package
+ (inherit python-numpy-next)
+ (version "1.20.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/numpy/numpy/releases/download/v"
+ version "/numpy-" version ".tar.gz"))
+ (sha256
+ (base32
+ "140zq9snx0di4id4g97vaw9zz8x2rfla5lp3a70j666f5030yd5p"))))
+ ;; 92 tests fail, many of them because parts of the temp file name
+ ;; accidentally ends up in a comparison.
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-numpy-next)
+ ((#:tests? _ #t) #f)))))
+
+(define-public python-numpy python-numpy-1.20)
;; NOTE: NumPy 1.8 is packaged only for Python 2 because it is of
;; interest only for legacy code going back to NumPy's predecessor
@@ -5471,21 +5465,18 @@ capabilities.")
(substitute-keyword-arguments (package-arguments python2-numpy)
((#:phases phases)
`(modify-phases ,phases
- (replace 'configure-blas-lapack
+ (replace 'configure-blas
(lambda* (#:key inputs #:allow-other-keys)
(call-with-output-file "site.cfg"
(lambda (port)
(format port
"[openblas]
-libraries = openblas,lapack
-library_dirs = ~a/lib:~a/lib
-include_dirs = ~a/include:~a/include
+libraries = openblas
+library_dirs = ~a/lib
+include_dirs = ~a/include
"
(assoc-ref inputs "openblas")
- (assoc-ref inputs "lapack")
- (assoc-ref inputs "openblas")
- (assoc-ref inputs "lapack"))))
- #t))))))
+ (assoc-ref inputs "openblas"))))))))))
(native-inputs
`(("python2-nose" ,python2-nose)))
(description "NumPy is the fundamental package for scientific computing
@@ -5539,9 +5530,6 @@ objects.")
"This is a Python library for color math and conversions.")
(license license:bsd-3)))
-(define-public python2-colormath
- (package-with-python2 python-colormath))
-
(define-public python-sparse
(package
(name "python-sparse")
@@ -5624,9 +5612,6 @@ color scales, and color space conversion easy. It has support for:
@end enumerate\n")
(license license:expat)))
-(define-public python2-spectra
- (package-with-python2 python-spectra))
-
(define-public python-pyspnego
(package
(name "python-pyspnego")
@@ -5675,16 +5660,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
@@ -5693,11 +5678,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
@@ -5706,7 +5691,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)
@@ -5741,7 +5726,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")
@@ -5778,13 +5763,13 @@ readable format.")
(define-public python-pygit2
(package
(name "python-pygit2")
- (version "1.6.0")
+ (version "1.7.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pygit2" version))
(sha256
- (base32 "0qjd5aqpmla64da4pb47vdnrmnqdbn7248a4fzs7f5q1ax7fmb3s"))))
+ (base32 "0p8n25bijirxh31cv99vd1mkdsvpcs6z6441wz1fqva3b2as5ynp"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; tests don't run correctly in our environment
@@ -5842,6 +5827,7 @@ humans, and implementation simplicity.")
(("'wmctrl")
(string-append "'" wmctrl "/bin/wmctrl")))))))))
(inputs `(("wmctrl" ,wmctrl)))
+ (propagated-inputs (list python-attrs))
(home-page "https://github.com/antocuni/wmctrl")
(synopsis "Tool to programmatically control Xorg windows")
(description "This package provides a library for programmatically
@@ -6018,61 +6004,6 @@ parse and apply unified diffs. It has features such as:
@end itemize")
(license license:expat)))
-(define-public python-pyparsing
- (package
- (name "python-pyparsing")
- (version "2.4.6")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pyparsing" version))
- (sha256
- (base32 "17wn5zlijc9m9zj26gy3f541y7smpj8rfhl51d025c2gm210b0sc"))))
- (build-system python-build-system)
- (outputs '("out" "doc"))
- (arguments
- `(#:tests? #f ; no test target
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'install-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((doc (string-append (assoc-ref outputs "doc")
- "/share/doc/" ,name "-" ,version))
- (html-doc (string-append doc "/html"))
- (examples (string-append doc "/examples")))
- (mkdir-p html-doc)
- (mkdir-p examples)
- (for-each
- (lambda (dir tgt)
- (map (lambda (file)
- (install-file file tgt))
- (find-files dir ".*")))
- (list "docs" "htmldoc" "examples")
- (list doc html-doc examples))
- #t))))))
- (home-page "https://github.com/pyparsing/pyparsing")
- (synopsis "Python parsing class library")
- (description
- "The pyparsing module is an alternative approach to creating and
-executing simple grammars, vs. the traditional lex/yacc approach, or the use
-of regular expressions. The pyparsing module provides a library of classes
-that client code uses to construct the grammar directly in Python code.")
- (license license:expat)))
-
-(define-public python2-pyparsing
- (package-with-python2 python-pyparsing))
-
-(define-public python-pyparsing-2.4.7
- (package
- (inherit python-pyparsing)
- (version "2.4.7")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pyparsing" version))
- (sha256
- (base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2"))))))
-
(define-public python-numpydoc
(package
(name "python-numpydoc")
@@ -6260,21 +6191,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)
@@ -6291,6 +6221,7 @@ comparison.
(inputs
`(("libpng" ,libpng)
("freetype" ,freetype)
+ ("qhull" ,qhull)
("cairo" ,cairo)
("glib" ,glib)
;; FIXME: Add backends when available.
@@ -6301,6 +6232,7 @@ comparison.
`(("pkg-config" ,pkg-config)
("python-pytest" ,python-pytest)
("python-mock" ,python-mock)
+ ("python-wheel" ,python-wheel)
("unzip" ,unzip)
("jquery-ui"
,(origin
@@ -6323,7 +6255,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)))
@@ -6332,7 +6265,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"
@@ -6347,9 +6282,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")
@@ -6372,7 +6309,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~%"
@@ -6414,9 +6354,9 @@ toolkits.")
(mkdir-p dir)
(invoke "unzip"
(assoc-ref inputs "jquery-ui")
- "-d" dir))
- #t))
+ "-d" dir))))
(delete 'fix-and-disable-failing-tests)
+ (delete 'sanity-check) ; This fails because mpl_toolkits is not an actual module
(delete 'check))))) ; These tests weren't run the the past.
;; Make sure to use special packages for Python 2 instead
;; of those automatically rewritten by package-with-python2.
@@ -6451,7 +6391,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
@@ -6463,8 +6403,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
@@ -6477,9 +6417,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.*")
@@ -6514,13 +6452,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")
@@ -6749,24 +6710,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)))
@@ -6833,14 +6782,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
@@ -6864,19 +6813,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")
@@ -6971,7 +6907,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)))
@@ -7053,7 +6989,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
@@ -7564,22 +7504,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 _
@@ -7912,36 +7846,37 @@ 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 "6.3.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "setuptools_scm" version))
(sha256
- (base32
- "083k93wi7mrmp1cn28hcbnr6sivbgls0y7zz2m5qzn1wg04a3f16"))))
+ (base32 "1wm0i27siyy1yqr9rv7lqvb65agay9051yi8jzmi8dgb3q4ai6m4"))))
(build-system python-build-system)
+ (propagated-inputs
+ `(("python-packaging",python-packaging-bootstrap)
+ ("python-tomli" ,python-tomli)))
(home-page "https://github.com/pypa/setuptools_scm/")
(synopsis "Manage Python package versions in SCM metadata")
(description
"Setuptools_scm handles managing your Python package versions in
@dfn{software configuration management} (SCM) metadata instead of declaring
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"))))))
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-setuptools-scm))))))
(define-public python2-setuptools-scm
- (package-with-python2 python-setuptools-scm))
+ (let ((base (package-with-python2
+ (strip-python2-variant python-setuptools-scm))))
+ (package/inherit base
+ (version "5.0.2") ;no python 2 support in version 6
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "setuptools_scm" version))
+ (sha256
+ (base32
+ "1j75i8avp9fhrkpbabsa8vyvbi49kmxlq6l10xir9qs96kfwx843"))))
+ (propagated-inputs '()))))
(define-public python-sexpdata
(package
@@ -7965,14 +7900,14 @@ functions like pickle, json or PyYAML module.")
(define-public python-pathlib2
(package
(name "python-pathlib2")
- (version "2.3.3")
+ (version "2.3.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pathlib2" version))
(sha256
(base32
- "0hpp92vqqgcd8h92msm9slv161b1q160igjwnkf2ag6cx0c96695"))))
+ "0psyg60vk8wca473djrh0v9gb853z8wcawi8im5dyg00amawp2vx"))))
(build-system python-build-system)
(propagated-inputs
`(("python-scandir" ,python-scandir)
@@ -8406,7 +8341,6 @@ cluster down and deletes the throwaway profile.")
("python-six" ,python-six)))
(native-inputs
`(("python-pytest" ,python-pytest)))
- (properties `((python2-variant . ,(delay python2-traitlets))))
(home-page "https://ipython.org")
(synopsis "Configuration system for Python applications")
(description
@@ -8418,13 +8352,6 @@ is a distinct layer on top of traitlets, so you can use traitlets in your code
without using the configuration machinery.")
(license license:bsd-3)))
-(define-public python2-traitlets
- (let ((traitlets (package-with-python2 (strip-python2-variant python-traitlets))))
- (package/inherit traitlets
- (propagated-inputs
- `(("python2-enum34" ,python2-enum34)
- ,@(package-propagated-inputs traitlets))))))
-
(define-public python-jupyter-core
(package
(name "python-jupyter-core")
@@ -8451,12 +8378,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
@@ -8527,7 +8454,6 @@ without using the configuration machinery.")
("python-traitlets" ,python-traitlets)))
(native-inputs
`(("python-pytest" ,python-pytest)
- ("python-pytest-asyncio" ,python-pytest-asyncio)
("python-pytest-timeout" ,python-pytest-timeout)
("python-async-generator" ,python-async-generator)
("python-mock" ,python-mock)
@@ -8572,10 +8498,10 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _
- (setenv "HOME" "/tmp")
- (invoke "pytest" "-v")
- #t))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "HOME" "/tmp")
+ (invoke "pytest" "-v"))))
(add-after 'install 'set-python-file-name
(lambda* (#:key outputs #:allow-other-keys)
;; Record the absolute file name of the 'python' executable in
@@ -8665,13 +8591,13 @@ callback signature using a prototype function.")
(define-public python-ipython
(package
(name "python-ipython")
- (version "7.20.0")
+ (version "7.27.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ipython" version ".tar.gz"))
(sha256
- (base32 "17pzzyfh6z7il1j49fb32glad04pqppqjsymj67gb30ah80ay8qr"))))
+ (base32 "04xgymypnbfgf2q0d5b0hanjbjsp53f055sh1p8xlq52vyzmxdaq"))))
(build-system python-build-system)
(propagated-inputs
`(("python-backcall" ,python-backcall)
@@ -8679,6 +8605,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)
@@ -8734,7 +8661,10 @@ callback signature using a prototype function.")
;; (which depends on ipython).
(delete-file "IPython/core/tests/test_display.py")
;; AttributeError: module 'IPython.core' has no attribute 'formatters'
- (delete-file "IPython/core/tests/test_interactiveshell.py"))))))
+ (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"))))))
(home-page "https://ipython.org")
(synopsis "IPython is a tool for interactive computing in Python")
(description
@@ -8789,15 +8719,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
@@ -8806,11 +8736,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
@@ -8819,7 +8749,7 @@ computing.")
texlive-latex-trimspaces
texlive-latex-ucs
texlive-latex-upquote
- texlive-latex-url
+ texlive-url
texlive-latex-varwidth
texlive-latex-wrapfig)))
("texinfo" ,texinfo)))))
@@ -8836,6 +8766,15 @@ computing.")
(base32
"1bky2bra6673xx8jy0826znw6cmxs89wcwwzda8d025j3jffx2sq"))))
(build-system python-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-vterm-tests
+ ;; According to Debian these tests are cursed.
+ ;; https://salsa.debian.org/python-team/packages/urwid/-/blob/debian/2.1.2-2/debian/changelog#L141
+ (lambda _
+ (delete-file "urwid/tests/test_vterm.py"))))))
(home-page "http://urwid.org")
(synopsis "Console user interface library for Python")
(description
@@ -9012,14 +8951,14 @@ parsing (browser/HTTP) user agent strings.")
(define-public python-dbus
(package
(name "python-dbus")
- (version "1.2.16")
+ (version "1.2.18")
(source
(origin
(method url-fetch)
(uri (string-append "https://dbus.freedesktop.org/releases/dbus-python/"
"dbus-python-" version ".tar.gz"))
(sha256
- (base32 "196m5rk3qzw5nkmgzjl7wmq0v7vpwfhh8bz2sapdi5f9hqfqy8qi"))))
+ (base32 "0q3jrw515z98mqdk9x822nd95rky455zz9876f1nqna5igkd3gcj"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -9030,6 +8969,7 @@ parsing (browser/HTTP) user agent strings.")
(description "python-dbus provides bindings for libdbus, the reference
implementation of D-Bus.")
(home-page "https://www.freedesktop.org/wiki/Software/DBusBindings/")
+ (properties `((python2-variant . ,(delay python2-dbus))))
(license license:expat)))
(define-public python2-dbus
@@ -9037,8 +8977,9 @@ implementation of D-Bus.")
(name "python2-dbus")
(inputs `(("python" ,python-2)
,@(alist-delete "python"
- (package-inputs python-dbus)
- equal?)))))
+ (package-inputs python-dbus))))
+ (arguments
+ `(#:configure-flags '("PYTHON_VERSION=2")))))
(define-public python-dbus-next
(package
@@ -9078,7 +9019,7 @@ mobile environments.")
"0z8rrv9rsg1r2qgh2dxj3dfj5xnki98kgi3w839kqby4a26i1yik"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ; tests depend on system state
- (native-inputs
+ (propagated-inputs
`(("python-dbus" ,python-dbus)))
(home-page "https://bitbucket.org/takluyver/pynotify2")
(synopsis "Python interface to D-Bus notifications")
@@ -9149,10 +9090,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
@@ -9452,13 +9398,13 @@ SVG, EPS, PNG and terminal output.")
(define-public python-seaborn
(package
(name "python-seaborn")
- (version "0.11.1")
+ (version "0.11.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "seaborn" version))
(sha256
- (base32 "1b81p9s6li3b606ivgbynrh102fclwlw74m8qxzsii9pv6p8xrs4"))
+ (base32 "1xpl3zb945sihsiwm9q1yyx84sakk1phcg0fprj6i0j0dllfjifg"))
(patches (search-patches "python-seaborn-kde-test.patch"))))
(build-system python-build-system)
(arguments
@@ -9507,31 +9453,41 @@ and statistical routines from scipy and statsmodels.")
(define-public python-mpmath
(package
- (name "python-mpmath")
- (version "1.1.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "mpmath" version))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1xlrcja213jpfhw25q1jl5pl10w1a2cc68x1c4mkicxsbzhan5zw"))))
- (build-system python-build-system)
- (native-inputs
- `(("python-pytest" ,python-pytest)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "python" "mpmath/tests/runtests.py" "-local"))))))
- (home-page "https://mpmath.org")
- (synopsis "Arbitrary-precision floating-point arithmetic in python")
- (description
- "@code{mpmath} can be used as an arbitrary-precision substitute for
+ (name "python-mpmath")
+ (version "1.2.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fredrik-johansson/mpmath")
+ (commit "c6a35f9ee7c294bcf4e0517bc76b268843db9499")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ifw59fjjls3mas104rh0frilvab2fhk1dkjraxlqni5n9l676im"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'set-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" ,version)
+ ;; ZIP does not support timestamps before 1980.
+ (setenv "SOURCE_DATE_EPOCH" "315532800")))
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv")))))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://mpmath.org")
+ (synopsis "Arbitrary-precision floating-point arithmetic in python")
+ (description
+ "@code{mpmath} can be used as an arbitrary-precision substitute for
Python's float/complex types and math/cmath modules, but also does much
more advanced mathematics.")
- (license license:bsd-3)))
+ (license license:bsd-3)))
(define-public python2-mpmath
(package-with-python2 python-mpmath))
@@ -9731,7 +9687,14 @@ Python 2 and Python 3.")
(license license:psfl)))
(define-public python2-backports-csv
- (package-with-python2 python-backports-csv))
+ (package
+ (inherit (package-with-python2 python-backports-csv))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; The sanity-check attempts attempts to import the non-existent
+ ;; module "backports".
+ (delete 'sanity-check))))))
(define-public python2-backports-shutil-get-terminal-size
(package
@@ -9751,8 +9714,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)))
@@ -9979,11 +9940,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.")
@@ -10008,21 +9968,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
@@ -10199,14 +10159,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)))
@@ -10245,14 +10202,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)
@@ -10378,6 +10335,20 @@ Python.")
(define-public python2-mistune
(package-with-python2 python-mistune))
+;; 2.0 is not released yet, but some packages have started using it.
+(define-public python-mistune-next
+ (package
+ (inherit python-mistune)
+ (name "python-mistune-next")
+ (version "2.0.0rc1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "mistune" version))
+ (sha256
+ (base32
+ "1nd7iav1ixh9hlj4hxn6lmpava88d86ys8rqm30wgvr7gjlxnas5"))))
+ (native-inputs (list python-nose))))
+
(define-public python-markdown
(package
(name "python-markdown")
@@ -10720,14 +10691,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")
@@ -11029,9 +10993,9 @@ Unicode-aware. It is not intended as an end-user tool.")
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
- (setenv "PYTHONPATH"
+ (setenv "GUIX_PYTHONPATH"
(string-append (getcwd) "/build/lib:"
- (getenv "PYTHONPATH")))
+ (getenv "GUIX_PYTHONPATH")))
(invoke "nosetests" "-v")))))))
(native-inputs
`(("nose" ,python-nose)))
@@ -11586,6 +11550,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)
@@ -11902,7 +11867,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)
@@ -12168,31 +12133,33 @@ 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-grffile
+ texlive-hyperref
texlive-latex-jknapltx
texlive-latex-ms
- texlive-latex-oberdiek
+ 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
@@ -12245,6 +12212,18 @@ convert an @code{.ipynb} notebook file into various static formats including:
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'use-our-home-for-tests
+ (lambda _
+ ;; The 'get_patch_env' function in this file reads:
+ ;; 'HOME': cls.home_dir
+ ;; but for some reason, that definition of HOME is not what the
+ ;; GLib/GIO trash mechanism honors, which would cause test
+ ;; failures. Instead, set 'HOME' here to an existing directory
+ ;; and let the tests honor it.
+ (substitute* "notebook/tests/launchnotebook.py"
+ (("'HOME': .*," all)
+ (string-append "# " all "\n")))
+ (setenv "HOME" (getcwd))))
(replace 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
;; These tests require a browser
@@ -12254,13 +12233,10 @@ convert an @code{.ipynb} notebook file into various static formats including:
;; Some tests do not expect all files to be installed in the
;; same directory, but JUPYTER_PATH contains multiple entries.
(unsetenv "JUPYTER_PATH")
- ;; Some tests need HOME
- (setenv "HOME" "/tmp")
- (with-directory-excursion "/tmp"
- (invoke "pytest" "-vv"
- ;; TODO: This tests fails because nbconvert does not
- ;; list "python" as a format.
- "-k" "not test_list_formats"))))))))
+ (invoke "pytest" "-vv"
+ ;; TODO: This tests fails because nbconvert does not
+ ;; list "python" as a format.
+ "-k" "not test_list_formats")))))))
(propagated-inputs
`(("python-argon2-cffi" ,python-argon2-cffi)
("python-ipykernel" ,python-ipykernel)
@@ -12344,14 +12320,14 @@ in the data.")
(define-public python-jupyter-console
(package
(name "python-jupyter-console")
- (version "6.1.0")
+ (version "6.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jupyter_console" version))
(sha256
(base32
- "06s3kr5vx0l1y1b7fxb04dmrppscl7q69sl9yyfr0d057d1ssvkg"))))
+ "1iqrxhd8hvlyf8cqbc731ssnwm61wrycnbiczy5wsfahd3hlh8i4"))))
(build-system python-build-system)
(propagated-inputs
`(("python-ipykernel" ,python-ipykernel)
@@ -12359,7 +12335,8 @@ in the data.")
("python-prompt-toolkit" ,python-prompt-toolkit-2)
("python-pygments" ,python-pygments)))
(native-inputs
- `(("python-nose" ,python-nose)))
+ `(("python-nose" ,python-nose)
+ ("python-pytest" ,python-pytest)))
(home-page "https://jupyter.org")
(synopsis "Jupyter terminal console")
(description "This package provides a terminal-based console frontend for
@@ -12419,7 +12396,8 @@ Jupyter kernels such as IJulia and IRKernel.")
#t)))))
(propagated-inputs
`(("python-ipykernel" ,python-ipykernel)
- ("python-ipython" ,python-ipython)))
+ ("python-ipython" ,python-ipython)
+ ("python-pyqt" ,python-pyqt)))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://jupyter.org")
@@ -12559,7 +12537,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)))
@@ -12567,7 +12546,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
@@ -12781,14 +12762,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.")
@@ -12980,6 +12962,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
@@ -13350,6 +13337,18 @@ text.")
(define-public python2-colorama
(package-with-python2 python-colorama))
+;; awscli and botocore do not accept version 0.4.4
+(define-public python-colorama-for-awscli
+ (package
+ (inherit python-colorama)
+ (version "0.4.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "colorama" version))
+ (sha256
+ (base32 "189n8hpijy14jfan4ha9f5n06mnl33cxz7ay92wjqgkr639s0vg9"))))))
+
(define-public python-moto
(package
(name "python-moto")
@@ -13375,8 +13374,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 \
@@ -13731,14 +13728,14 @@ This software is unmaintained, and new projects should use @code{boto3} instead.
;; are compatible.
(package
(name "python-botocore")
- (version "1.19.22")
+ (version "1.21.64")
(source
(origin
(method url-fetch)
(uri (pypi-uri "botocore" version))
(sha256
(base32
- "0iim86x7c6hqmvd61ygz6x6x9glnsfbnyzv2y67qjdcdx8jpkmw7"))))
+ "0z8cdv3lyr8vw452zqm1r8k4gz4sbzlsqwg6avc3zm6pvajdqc0a"))))
(build-system python-build-system)
(arguments
;; FIXME: Many tests are failing.
@@ -13759,7 +13756,7 @@ interface to the Amazon Web Services (AWS) API.")
(define-public python-boto3
(package
(name "python-boto3")
- (version "1.16.22")
+ (version "1.18.64")
(home-page "https://github.com/boto/boto3")
(source (origin
(method git-fetch)
@@ -13767,19 +13764,19 @@ interface to the Amazon Web Services (AWS) API.")
(file-name (git-file-name name version))
(sha256
(base32
- "0h20hgl4yfl58g75qhb6ibrdmzn47md3srgar7hask14cjmfhfy3"))))
+ "02hy80xfyxln5yr43cbrmq3kpkdijv8v228alz1x92y4gghnb8cj"))))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'delete-network-tests
;; Deleting integration tests because they are trying to connect to AWS.
(lambda _
- (delete-file-recursively "tests/integration")
- #t)))))
+ (delete-file-recursively "tests/integration"))))))
(build-system python-build-system)
(native-inputs
`(("python-nose" ,python-nose)
- ("python-mock" ,python-mock)))
+ ("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-botocore" ,python-botocore)
("python-jmespath" ,python-jmespath)
@@ -14295,15 +14292,20 @@ ISO 8859, etc.).")
(lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv" "-k"
- ;; These tests try to download online data.
- (string-append "not test_PolyLineROI"
- " and not test_getArrayRegion_axisorder"
- " and not test_getArrayRegion"
- " and not test_PlotCurveItem"
- " and not test_NonUniformImage_colormap"
- " and not test_NonUniformImage_lut"
- " and not test_ImageItem_axisorder"
- " and not test_ImageItem")))))))
+ (string-append
+ ;; These tests try to download online data.
+ "not test_PolyLineROI"
+ " and not test_getArrayRegion_axisorder"
+ " and not test_getArrayRegion"
+ " and not test_PlotCurveItem"
+ " and not test_NonUniformImage_colormap"
+ " and not test_NonUniformImage_lut"
+ " and not test_ImageItem_axisorder"
+ " and not test_ImageItem"
+ ;; The test_reload test fails and suggests adding
+ ;; "--assert=plain" to the pytest command, but it
+ ;; doesn't solve the failure.
+ " and not test_reload")))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov)
@@ -14453,9 +14455,6 @@ algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm),
useful for solving the Assignment Problem.")
(license license:bsd-3)))
-(define-public python2-munkres
- (package-with-python2 python-munkres))
-
(define-public python-whoosh
(package
(name "python-whoosh")
@@ -14810,31 +14809,19 @@ syntax highlighting, markdown and more to the terminal.")
(define-public python-magic
(package
(name "python-magic")
- (version "0.4.15")
+ (version "0.4.24")
+ (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"))))
+ "17jalhjbfd600lzfz296m0nvgp6c7vx1mgz82jbzn8hgdzknf4w0"))))
(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
@@ -14844,24 +14831,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"
+ (("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
@@ -15156,12 +15141,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)
@@ -15355,13 +15334,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)))
@@ -15419,7 +15391,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)
@@ -15631,7 +15610,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")
@@ -15640,9 +15620,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")
@@ -15979,17 +15956,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)))
@@ -16014,6 +15989,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")
@@ -16023,7 +16006,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)
@@ -16069,8 +16053,21 @@ until the object is actually required, and caches the result of said call.")
(base32
"1m0xvyby8baaxp6pfm0fgq8d2pq5dd8qm8bzfbrs009jaw5pza74"))))
(build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; XXX: requires internet access
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-getprotobyname-calls
+ ;; These calls are problematic in the build environment as there is
+ ;; no /etc/protocols. This breaks the sanity-check phase of any
+ ;; package depnding on this one.
+ (lambda _
+ (substitute* "dns/rdtypes/IN/WKS.py"
+ (("socket.getprotobyname\\('tcp'\\)")
+ "6")
+ (("socket.getprotobyname\\('udp'\\)")
+ "17")))))))
(native-inputs `(("unzip" ,unzip)))
- (arguments '(#:tests? #f)) ; XXX: requires internet access
(home-page "https://www.dnspython.org")
(synopsis "DNS toolkit for Python")
(description
@@ -16224,29 +16221,7 @@ parsing UK postcodes.")
(description
"Faker is a Python package that generates fake data such as names,
addresses, and phone numbers.")
- (license license:expat)
- (properties `((python2-variant . ,(delay python2-faker))))))
-
-;; Faker 4.0 dropped Python 2 support, so we stick with this older version here.
-(define-public python2-faker
- (let ((base (package-with-python2 (strip-python2-variant
- python-faker))))
- (package
- (inherit base)
- (version "3.0.1")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "Faker" version))
- (sha256
- (base32
- "11cr0qvspkdh6198rqy56qildk7bnp6llj8kyy1dan5sp5n4dxy7"))))
- (native-inputs
- `(("python-mock" ,python2-mock)
- ,@(package-native-inputs base)))
- (propagated-inputs
- `(("python2-ipaddress" ,python2-ipaddress)
- ("python2-six" ,python2-six)
- ,@(package-propagated-inputs base))))))
+ (license license:expat)))
(define-public python-pyaml
(package
@@ -16287,7 +16262,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")
@@ -16376,10 +16352,15 @@ characters, mouse support, and auto suggestions.")
(version "0.18.1")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "jedi" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/davidhalter/jedi")
+ (commit (string-append "v" version))
+ (recursive? #true)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1as9v6kv49j11al2mzjh72dd5mxxnfcjv0z5dbmwi6aalqk7c4vl"))))
+ (base32
+ "07drmi3ai49jw5n23ibkambcgijqcw073ihypjgxfnks5lv4yqy1"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -16391,8 +16372,8 @@ characters, mouse support, and auto suggestions.")
(invoke "python" "-m" "pytest" "-vv"))
#t)))))
(native-inputs
- `(("python-docopt" ,python-docopt)
- ("python-colorama" ,python-colorama)
+ `(("python-colorama" ,python-colorama)
+ ("python-docopt" ,python-docopt)
("python-django" ,python-django-2.2)
("python-pytest" ,python-pytest)))
(propagated-inputs
@@ -16404,8 +16385,8 @@ characters, mouse support, and auto suggestions.")
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.")
+Jedi understands docstrings and you can use Jedi autocompletion in your REPL
+as well.")
(license license:expat)))
(define-public ptpython
@@ -16431,9 +16412,9 @@ well.")
(synopsis "Python Read-Eval-Print-Loop with nice IDE-like features")
(description
"ptpython is a Python read-eval-print loop with IDE-like features.
-It supports syntax highlighting, multiline editing, autocompletion, mouse,
-color schemes, bracketed paste, Vi and Emacs keybindings, Chinese characters
-etc.")
+ It supports syntax highlighting, multiline editing, autocompletion, mouse,
+ color schemes, bracketed paste, Vi and Emacs keybindings, Chinese characters
+ etc.")
(license license:bsd-3)
(properties `((python2-variant . ,(delay ptpython-2))))))
@@ -16483,8 +16464,8 @@ etc.")
(synopsis "Command-line interface for Python modules")
(description
"@code{entrypoint2} is an easy to use command-line interface for Python
-modules based on @code{argparse}. It translates function signature and
-documentation to argparse configuration.")
+ modules based on @code{argparse}. It translates function signature and
+ documentation to argparse configuration.")
(license license:bsd-3)))
(define-public python-pyvirtualdisplay
@@ -16531,6 +16512,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")
@@ -16544,8 +16531,8 @@ documentation to argparse configuration.")
"Python controller library that allows applications to interact with Tor")
(description
"Stem is a Python controller library for Tor. With it you can use Tor's
-control protocol to script against the Tor process and read descriptor data
-relays publish about themselves.")
+ control protocol to script against the Tor process and read descriptor data
+ relays publish about themselves.")
(license license:lgpl3)))
(define-public python-pyserial
@@ -16571,8 +16558,8 @@ relays publish about themselves.")
"https://github.com/pyserial/pyserial")
(synopsis "Python Serial Port Bindings")
(description "@code{pyserial} provide serial port bindings for Python. It
-supports different byte sizes, stop bits, parity and flow control with RTS/CTS
-and/or Xon/Xoff. The port is accessed in RAW mode.")
+ supports different byte sizes, stop bits, parity and flow control with RTS/CTS
+ and/or Xon/Xoff. The port is accessed in RAW mode.")
(license license:bsd-3)))
(define-public python2-pyserial
@@ -16593,13 +16580,13 @@ and/or Xon/Xoff. The port is accessed in RAW mode.")
(home-page "https://github.com/pyserial/pyserial-asyncio")
(synopsis "Pyserial asynchronous I/O extension")
(description "This package extends Pyserial with asynchronous I/O
-support.")
+ support.")
(license license:bsd-3)))
(define-public python-pymodbus
(package
(name "python-pymodbus")
- (version "2.5.2")
+ (version "2.5.3")
(source
(origin
(method git-fetch)
@@ -16609,24 +16596,28 @@ support.")
(file-name (git-file-name name version))
(sha256
(base32
- "009blvzi56434f0qfjdg3r8q1flb1jcx2786wi0i0xf81025z9cf"))))
+ "0kjjrx7xrlx0pf3y67hhr4xvqrly3xzmvf6ic5as61m6z19m7zd5"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'disable-problematic-tests
(lambda _
- ;; The following test module rely on Python's own 'test'
- ;; module, which is not distributed in the Python
+ ;; The following test modules rely on Python's own
+ ;; 'test' module, which is not distributed in the Python
;; package of Guix.
(delete-file "test/test_client_async_asyncio.py")
- (delete-file "test/test_client_sync_diag.py")))
+ (delete-file "test/test_client_sync_diag.py")
+ ;; The following test module requires the asynctest
+ ;; library, abandoned without support for Python 3.9+
+ ;; (see:
+ ;; https://github.com/riptideio/pymodbus/issues/681).
+ (delete-file "test/test_server_asyncio.py")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "python" "-m" "pytest")))))))
(native-inputs
- `(("python-asynctest" ,python-asynctest)
- ("python-mock" ,python-mock)
+ `(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)
("python-redis" ,python-redis)
("python-sqlalchemy" ,python-sqlalchemy)
@@ -16644,24 +16635,24 @@ support.")
(home-page "https://github.com/riptideio/pymodbus/")
(synopsis "Modbus protocol stack in Python")
(description "Pymodbus is a full Modbus protocol implementation using
-@code{asyncio}, @code{tornado} or @code{twisted} for its asynchronous
-communications core. It includes the following @emph{client} features:
-@itemize
-@item full read/write protocol on discrete and register
-@item most of the extended protocol (diagnostic/file/pipe/setting/information)
-@item TCP, UDP, Serial ASCII, Serial RTU, and Serial Binary
-@item asynchronous and synchronous versions
-@item payload builder/decoder utilities
-@item pymodbus read eval print loop (REPL).
-@end itemize
-It also includes the following @emph{server} features:
-@itemize
-@item can function as a fully implemented Modbus server
-@item TCP, UDP, Serial ASCII, Serial RTU, and Serial Binary
-@item asynchronous and synchronous versions
-@item full server control context (device information, counters, etc)
-@item a number of backing contexts (database, redis, sqlite, a slave device).
-@end itemize")
+ @code{asyncio}, @code{tornado} or @code{twisted} for its asynchronous
+ communications core. It includes the following @emph{client} features:
+ @itemize
+ @item full read/write protocol on discrete and register
+ @item most of the extended protocol (diagnostic/file/pipe/setting/information)
+ @item TCP, UDP, Serial ASCII, Serial RTU, and Serial Binary
+ @item asynchronous and synchronous versions
+ @item payload builder/decoder utilities
+ @item pymodbus read eval print loop (REPL).
+ @end itemize
+ It also includes the following @emph{server} features:
+ @itemize
+ @item can function as a fully implemented Modbus server
+ @item TCP, UDP, Serial ASCII, Serial RTU, and Serial Binary
+ @item asynchronous and synchronous versions
+ @item full server control context (device information, counters, etc)
+ @item a number of backing contexts (database, redis, sqlite, a slave device).
+ @end itemize")
(license license:bsd-3)))
(define-public python-kivy
@@ -16684,9 +16675,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)))
@@ -16700,7 +16689,7 @@ It also includes the following @emph{server} features:
"Multitouch application framework")
(description
"A software library for rapid development of
-hardware-accelerated multitouch applications.")
+ hardware-accelerated multitouch applications.")
(license license:expat)))
(define-public python2-kivy
@@ -16733,7 +16722,7 @@ hardware-accelerated multitouch applications.")
(home-page "https://github.com/audreyr/binaryornot")
(synopsis "Package to check if a file is binary or text")
(description "Ultra-lightweight pure Python package to check if a file is
-binary or text.")
+ binary or text.")
(license license:bsd-3)
(properties `((python2-variant . ,(delay python2-binaryornot))))))
@@ -16761,12 +16750,8 @@ 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" ""))))))
(native-inputs
`(("python-coverage" ,python-coverage)
@@ -16774,7 +16759,7 @@ binary or text.")
(home-page "https://github.com/ReFirmLabs/binwalk")
(synopsis "Firmware analysis tool")
(description "Binwalk is a tool for analyzing, reverse engineering, and
-extracting firmware images")
+ extracting firmware images")
(license license:expat)))
(define-public python-binwalk
@@ -16805,9 +16790,9 @@ extracting firmware images")
(home-page "http://nltk.org/")
(synopsis "Natural Language Toolkit")
(description "It provides interfaces to over 50 corpora and lexical
-resources such as WordNet, along with a suite of text processing libraries
-for classification, tokenization, stemming, tagging, parsing, and semantic
-reasoning, wrappers for natural language processing libraries.")
+ resources such as WordNet, along with a suite of text processing libraries
+ for classification, tokenization, stemming, tagging, parsing, and semantic
+ reasoning, wrappers for natural language processing libraries.")
(license license:asl2.0)))
;; Versions >=3.5 breaks backward-compatibility,
@@ -16869,7 +16854,7 @@ reasoning, wrappers for natural language processing libraries.")
(synopsis "Python client for Consul")
(description
"Python client for @url{http://www.consul.io/,Consul}, a tool for service
-discovery, monitoring and configuration.")
+ discovery, monitoring and configuration.")
(license license:expat)))
(define-public python2-consul
@@ -16918,8 +16903,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
@@ -16929,7 +16912,7 @@ discovery, monitoring and configuration.")
(home-page "https://github.com/eea/odfpy")
(synopsis "Python API and tools to manipulate OpenDocument files")
(description "Collection of libraries and utility programs written in
-Python to manipulate OpenDocument 1.2 files.")
+ Python to manipulate OpenDocument 1.2 files.")
(license
;; The software is mainly dual GPL2+ and ASL2.0, but includes a
;; number of files with other licenses.
@@ -16950,24 +16933,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)
@@ -16979,13 +16949,13 @@ Python to manipulate OpenDocument 1.2 files.")
(synopsis "Natural sorting for python and shell")
(description
"Natsort lets you apply natural sorting on lists instead of
-lexicographical. If you use the built-in @code{sorted} method in python
-on a list such as @code{[@code{a20}, @code{a9}, @code{a1}, @code{a4},
-@code{a10}]}, it would be returned as @code{[@code{a1}, @code{a10}, @code{a20},
-@code{a4}, @code{a9}]}. Natsort provides a function @code{natsorted} that
-identifies numbers and sorts them separately from strings. It can also sort
-version numbers, real numbers, mixed types and more, and comes with a shell
-command @command{natsort} that exposes this functionality in the command line.")
+ lexicographical. If you use the built-in @code{sorted} method in python
+ on a list such as @code{[@code{a20}, @code{a9}, @code{a1}, @code{a4},
+ @code{a10}]}, it would be returned as @code{[@code{a1}, @code{a10}, @code{a20},
+ @code{a4}, @code{a9}]}. Natsort provides a function @code{natsorted} that
+ identifies numbers and sorts them separately from strings. It can also sort
+ version numbers, real numbers, mixed types and more, and comes with a shell
+ command @command{natsort} that exposes this functionality in the command line.")
(license license:expat)))
(define-public glances
@@ -17017,8 +16987,8 @@ command @command{natsort} that exposes this functionality in the command line.")
(synopsis "Cross-platform curses-based monitoring tool")
(description
"Glances is a curses-based monitoring tool for a wide variety of platforms.
-Glances uses the PsUtil library to get information from your system. It
-monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
+ Glances uses the PsUtil library to get information from your system. It
+ monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
(license license:lgpl3+)))
(define-public python-graphql-core
@@ -17053,9 +17023,9 @@ monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
(synopsis "GraphQL implementation for Python")
(description
"GraphQL implementation for Python. GraphQL is a data query language and
-runtime designed and used to request and deliver data to mobile and web apps.
-This library is a port of @url{https://github.com/graphql/graphql-js,graphql-js}
-to Python.")
+ runtime designed and used to request and deliver data to mobile and web apps.
+ This library is a port of @url{https://github.com/graphql/graphql-js,graphql-js}
+ to Python.")
(license license:expat)))
(define-public python-graphql-relay
@@ -17071,35 +17041,44 @@ 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")
(synopsis "Relay implementation for Python")
(description
"This is a library to allow the easy creation of Relay-compliant servers
-using the GraphQL Python reference implementation of a GraphQL server. It
-should be noted that the code is a exact port of the original
-@url{https://github.com/graphql/graphql-relay-js,graphql-relay js implementation}
-from Facebook.")
+ using the GraphQL Python reference implementation of a GraphQL server. It
+ should be noted that the code is a exact port of the original
+ @url{https://github.com/graphql/graphql-relay-js,graphql-relay js implementation}
+ from Facebook.")
(license license:expat)))
(define-public python-graphene
(package
(name "python-graphene")
- (version "0.10.2")
+ (version "3.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "graphene" version))
(sha256
(base32
- "09zhac7igh9ixdz0ay6csy35b40l1jwbf2wrbxmgxwfhy51iy06q"))))
+ "08m1n2ydk48c18cvl8474v3pwwacjl1vgq61m9qs00122mp0cj5g"))))
(build-system python-build-system)
(propagated-inputs
`(("python-graphql-core" ,python-graphql-core)
("python-graphql-relay" ,python-graphql-relay)
- ("python-iso8601" ,python-iso8601)
+ ("python-aniso8601" ,python-aniso8601)
("python-promise" ,python-promise)
("python-six" ,python-six)))
(arguments
@@ -17108,41 +17087,8 @@ from Facebook.")
(synopsis "GraphQL Framework for Python")
(description
"Graphene is a Python library for building GraphQL schemas/types.
-A GraphQL schema describes your data model, and provides a GraphQL server
-with an associated set of resolve methods that know how to fetch data.")
- (license license:expat)))
-
-(define-public python-nautilus
- (package
- (name "python-nautilus")
- (version "0.4.9")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "nautilus" version))
- (sha256
- (base32
- "01hwzjc1zshk4vvxrcghm398fpy4jls66dyz06g07mrwqif8878p"))))
- (build-system python-build-system)
- (arguments `(#:tests? #f)) ; fails to import test modules
- (propagated-inputs
- `(("python-bcrypt" ,python-bcrypt)
- ("python-click" ,python-click)
- ("python-consul" ,python-consul)
- ("python-graphene" ,python-graphene)
- ("python-jinja2" ,python-jinja2)
- ("python-peewee" ,python-peewee)
- ("python-pika" ,python-pika)
- ("python-tornado" ,python-tornado)
- ("python-wtforms" ,python-wtforms)))
- (native-inputs
- `(("python-nose2" ,python-nose2)))
- (home-page "https://github.com/AlecAivazis/nautilus")
- (synopsis "Library for creating microservice applications")
- (description
- "Nautilus is a framework for flux based microservices that looks to
-provide extendible implementations of common aspects of a cloud so that you can
-focus on building massively scalable web applications.")
+ A GraphQL schema describes your data model, and provides a GraphQL server
+ with an associated set of resolve methods that know how to fetch data.")
(license license:expat)))
(define-public python-random2
@@ -17154,20 +17100,22 @@ 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")
(synopsis "Python 3 version of the Python 2 @code{random} module")
(description
"This package provides a Python 3 ported version of Python 2.7’s
-@code{random} module. It has also been back-ported to work in Python 2.6.
+ @code{random} module. It has also been back-ported to work in Python 2.6.
-In Python 3, the implementation of @code{randrange()} was changed, so that
-even with the same seed you get different sequences in Python 2 and 3.
+ In Python 3, the implementation of @code{randrange()} was changed, so that
+ even with the same seed you get different sequences in Python 2 and 3.
-This package closes that gap, allowing stable random number generation
-between the different Python versions.")
+ This package closes that gap, allowing stable random number generation
+ between the different Python versions.")
(license license:psfl)))
(define-public python2-random2
@@ -17190,8 +17138,8 @@ between the different Python versions.")
(home-page "https://github.com/shibukawa/snowball_py")
(synopsis "Snowball stemming library collection for Python")
(description "This package provides 16 word stemmer algorithms generated
-from Snowball algorithms. It includes the 15 original ones plus the Poerter
-English stemmer.")
+ from Snowball algorithms. It includes the 15 original ones plus the Poerter
+ English stemmer.")
(license license:bsd-3)))
(define-public python2-snowballstemmer
@@ -17239,12 +17187,12 @@ English stemmer.")
(synopsis
"Setproctitle implementation for Python to customize the process title")
(description "The library allows a process to change its title (as displayed
-by system tools such as ps and top).
+ by system tools such as ps and top).
-Changing the title is mostly useful in multi-process systems, for
-example when a master process is forked: changing the children's title
-allows identifying the task each process is busy with. The technique
-is used by PostgreSQL and the OpenSSH Server for example.")
+ Changing the title is mostly useful in multi-process systems, for
+ example when a master process is forked: changing the children's title
+ allows identifying the task each process is busy with. The technique
+ is used by PostgreSQL and the OpenSSH Server for example.")
(license license:bsd-3)
(properties `((python2-variant . ,(delay python2-setproctitle))))))
@@ -17278,10 +17226,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)))
@@ -17290,9 +17234,9 @@ is used by PostgreSQL and the OpenSSH Server for example.")
(synopsis "General purpose Python data validator")
(description "It allows validation of arbitrary Python data structures.
-The schema format is based on the JSON Schema
-proposal (http://json-schema.org), so combined with json the library is also
-useful as a validator for JSON data.")
+ The schema format is based on the JSON Schema
+ proposal (http://json-schema.org), so combined with json the library is also
+ useful as a validator for JSON data.")
(license license:expat)))
(define-public python2-validictory
@@ -17310,24 +17254,14 @@ 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
"Analyze binary and library file information")
(description "This Python library provides interfaces for parsing and
-analyzing two binary and library file formats; the Executable and Linking
-Format (ELF), and debugging information in the Debugging With Attributed
-Record Format (DWARF).")
+ analyzing two binary and library file formats ; the Executable and Linking
+ Format (ELF), and debugging information in the Debugging With Attributed
+ Record Format (DWARF).")
(license license:public-domain)))
(define-public python-pyev
@@ -17348,8 +17282,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 "\"")))))))))
@@ -17379,7 +17312,7 @@ Record Format (DWARF).")
(synopsis "Gets image size of files in various formats in Python")
(description
"This package allows determination of image size from
-PNG, JPEG, JPEG2000 and GIF files in pure Python.")
+ PNG, JPEG, JPEG2000 and GIF files in pure Python.")
(license license:expat)))
(define-public python2-imagesize
@@ -17432,10 +17365,10 @@ PNG, JPEG, JPEG2000 and GIF files in pure Python.")
(home-page "https://github.com/kislyuk/argcomplete")
(synopsis "Shell tab completion for Python argparse")
(description "argcomplete provides extensible command line tab completion
-of arguments and options for Python scripts using @code{argparse}. It's
-particularly useful for programs with many options or sub-parsers that can
-dynamically suggest completions; for example, when browsing resources over the
-network.")
+ of arguments and options for Python scripts using @code{argparse}. It's
+ particularly useful for programs with many options or sub-parsers that can
+ dynamically suggest completions ; for example, when browsing resources over the
+ network.")
(license license:asl2.0)
(properties `((python2-variant . ,(delay python2-argcomplete))))))
@@ -17500,7 +17433,7 @@ network.")
(home-page "http://opensource.perlig.de/rcssmin/")
(synopsis "CSS Minifier")
(description "The minifier is based on the semantics of the YUI compressor,
-which itself is based on the rule list by Isaac Schlueter.")
+ which itself is based on the rule list by Isaac Schlueter.")
(license license:asl2.0)))
(define-public python-rjsmin
@@ -17535,32 +17468,32 @@ which itself is based on the rule list by Isaac Schlueter.")
(home-page "http://opensource.perlig.de/rjsmin/")
(synopsis "Javascript Minifier")
(description "@code{rJSmin} is a javascript minifier written in Python. The
-minifier is based on the semantics of jsmin.c by Douglas Crockford. The module
-is a re-implementation aiming for speed, so it can be used at runtime (rather
-than during a preprocessing step).")
+ minifier is based on the semantics of jsmin.c by Douglas Crockford. The module
+ is a re-implementation aiming for speed, so it can be used at runtime (rather
+ than during a preprocessing step).")
(license license:asl2.0)))
(define-public python-xopen
(package
(name "python-xopen")
- (version "0.5.0")
+ (version "0.8.2")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "xopen" version))
- (sha256
- (base32
- "17xbrgi23l87yg6h0qcknssp2q812miiy33qw6v45v5gx0jwv5xh"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "xopen" version))
+ (sha256
+ (base32
+ "1xrlcnd6fri3w97zzzp6vyk4l21yq1lc8r4wksi06hgpkbh4jdq0"))))
(build-system python-build-system)
(propagated-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://github.com/marcelm/xopen/")
(synopsis "Open compressed files transparently")
(description "This module provides an @code{xopen} function that works like
-Python's built-in @code{open} function, but can also deal with compressed files.
-Supported compression formats are gzip, bzip2 and, xz, and are automatically
-recognized by their file extensions. The focus is on being as efficient as
-possible on all supported Python versions.")
+ Python's built-in @code{open} function, but can also deal with compressed files.
+ Supported compression formats are gzip, bzip2 and, xz, and are automatically
+ recognized by their file extensions. The focus is on being as efficient as
+ possible on all supported Python versions.")
(license license:expat)))
(define-public python2-xopen
@@ -17583,71 +17516,53 @@ 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/")
(synopsis "Template engine")
(description "Cheetah is a text-based template engine and Python code
-generator.
-
-Cheetah can be used as a standalone templating utility or referenced as
-a library from other Python applications. It has many potential uses,
-but web developers looking for a viable alternative to ASP, JSP, PHP and
-PSP are expected to be its principle user group.
-
-Features:
-@enumerate
-@item Generates HTML, SGML, XML, SQL, Postscript, form email, LaTeX, or any other
- text-based format.
-@item Cleanly separates content, graphic design, and program code.
-@item Blends the power and flexibility of Python with a simple template language
- that non-programmers can understand.
-@item Gives template writers full access to any Python data structure, module,
- function, object, or method in their templates.
-@item Makes code reuse easy by providing an object-orientated interface to
- templates that is accessible from Python code or other Cheetah templates.
- One template can subclass another and selectively reimplement sections of it.
-@item Provides a simple, yet powerful, caching mechanism that can dramatically
- improve the performance of a dynamic website.
-@item Compiles templates into optimized, yet readable, Python code.
-@end enumerate")
+ generator.
+
+ Cheetah can be used as a standalone templating utility or referenced as
+ a library from other Python applications. It has many potential uses,
+ but web developers looking for a viable alternative to ASP, JSP, PHP and
+ PSP are expected to be its principle user group.
+
+ Features:
+ @enumerate
+ @item Generates HTML, SGML, XML, SQL, Postscript, form email, LaTeX, or any other
+ text-based format.
+ @item Cleanly separates content, graphic design, and program code.
+ @item Blends the power and flexibility of Python with a simple template language
+ that non-programmers can understand.
+ @item Gives template writers full access to any Python data structure, module,
+ function, object, or method in their templates.
+ @item Makes code reuse easy by providing an object-orientated interface to
+ templates that is accessible from Python code or other Cheetah templates.
+ One template can subclass another and selectively reimplement sections of it.
+ @item Provides a simple, yet powerful, caching mechanism that can dramatically
+ improve the performance of a dynamic website.
+ @item Compiles templates into optimized, yet readable, Python code.
+ @end enumerate")
(license (license:x11-style "file://LICENSE"))))
(define-public python2-cheetah
@@ -17694,7 +17609,7 @@ Features:
(home-page "https://www.dulwich.io/")
(synopsis "Git implementation in Python")
(description "Dulwich is an implementation of the Git file formats and
-protocols written in pure Python.")
+ protocols written in pure Python.")
;; Can be used with either license.
(license (list license:asl2.0 license:gpl2+))))
@@ -17715,22 +17630,19 @@ 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
(home-page "https://www.dlitz.net/software/python-pbkdf2/")
(synopsis "Password-based key derivation")
(description "This module implements the password-based key derivation
-function, PBKDF2, specified in RSA PKCS#5 v2.0.
+ function, PBKDF2, specified in RSA PKCS#5 v2.0.
-PKCS#5 v2.0 Password-Based Key Derivation is a key derivation function which
-is part of the RSA Public Key Cryptography Standards series. The provided
-implementation takes a password or a passphrase and a salt value (and
-optionally a iteration count, a digest module, and a MAC module) and provides
-a file-like object from which an arbitrarily-sized key can be read.")
+ PKCS#5 v2.0 Password-Based Key Derivation is a key derivation function which
+ is part of the RSA Public Key Cryptography Standards series. The provided
+ implementation takes a password or a passphrase and a salt value (and
+ optionally a iteration count, a digest module, and a MAC module) and provides
+ a file-like object from which an arbitrarily-sized key can be read.")
(license license:expat)))
(define-public python2-pbkdf2
@@ -17757,12 +17669,12 @@ a file-like object from which an arbitrarily-sized key can be read.")
(home-page "https://github.com/lincolnloop/python-qrcode")
(synopsis "QR Code image generator")
(description "This package provides a pure Python QR Code generator
-module. It uses the Python Imaging Library (PIL) to allow for the generation
-of QR Codes.
+ module. It uses the Python Imaging Library (PIL) to allow for the generation
+ of QR Codes.
-In addition this package provides a command line tool to generate QR codes and
-either write these QR codes to a file or do the output as ascii art at the
-console.")
+ In addition this package provides a command line tool to generate QR codes and
+ either write these QR codes to a file or do the output as ascii art at the
+ console.")
(license license:bsd-3)))
(define-public python2-qrcode
@@ -17786,7 +17698,7 @@ console.")
(synopsis "Convert RST to ANSI-decorated console output")
(description
"Python module dedicated to rendering RST (reStructuredText) documents
-to ansi-escaped strings suitable for display in a terminal.")
+ to ansi-escaped strings suitable for display in a terminal.")
(license license:expat)))
(define-public python-ansi2html
@@ -17810,7 +17722,7 @@ to ansi-escaped strings suitable for display in a terminal.")
(synopsis "Convert ANSI-decorated console output to HTML")
(description
"@command{ansi2html} is a Python library and command line utility for
-converting text with ANSI color codes to HTML or LaTeX.")
+ converting text with ANSI color codes to HTML or LaTeX.")
(license license:gpl3+)))
(define-public python2-ansi2html
@@ -17834,10 +17746,10 @@ converting text with ANSI color codes to HTML or LaTeX.")
(synopsis "Terminal framework API")
(description
"Easy ANSI is a terminal framework API to give you an easy way to use
-colors, cursor control movements, and line/box drawing. It is not meant as a
-replacement to more full-featured frameworks (such as curses or urwid), but as
-a tool to quickly create nice-looking screens in your terminal window. You
-can even create animations with the cursor controls.")
+ colors, cursor control movements, and line/box drawing. It is not meant as a
+ replacement to more full-featured frameworks (such as curses or urwid), but as
+ a tool to quickly create nice-looking screens in your terminal window. You
+ can even create animations with the cursor controls.")
(license license:expat)))
(define-public python-ddt
@@ -17860,8 +17772,8 @@ can even create animations with the cursor controls.")
(synopsis "Data-Driven Tests")
(description
"Data-Driven Tests (@dfn{DDT}) allow you to multiply one test case by
-running it with different test data, and make it appear as multiple test
-cases.")
+ running it with different test data, and make it appear as multiple test
+ cases.")
(license license:expat)))
(define-public python-pycountry
@@ -17880,16 +17792,16 @@ cases.")
(synopsis "ISO databases for languages, countries, currencies, etc.")
(description
"@code{pycountry} provides the ISO databases for the standards:
-@enumerate
-@item 639-3 (Languages)
-@item 3166 (Countries)
-@item 3166-3 (Deleted Countries)
-@item 3166-2 (Subdivisions of countries)
-@item 4217 (Currencies)
-@item 15924 (Scripts)
-@end enumerate
-It includes a copy from Debian’s pkg-isocodes and makes the data accessible
-through a Python API.")
+ @enumerate
+ @item 639-3 (Languages)
+ @item 3166 (Countries)
+ @item 3166-3 (Deleted Countries)
+ @item 3166-2 (Subdivisions of countries)
+ @item 4217 (Currencies)
+ @item 15924 (Scripts)
+ @end enumerate
+ It includes a copy from Debian’s pkg-isocodes and makes the data accessible
+ through a Python API.")
(license license:lgpl2.1+)))
(define-public python2-pycountry
@@ -17914,9 +17826,9 @@ through a Python API.")
(synopsis "Bindings to picosat (a SAT solver)")
(description
"This package provides efficient Python bindings to @code{picosat} on
-the C level. When importing pycosat, the @code{picosat} solver becomes part
-of the Python process itself. @code{picosat} is a @dfn{Boolean Satisfiability
-Problem} (SAT) solver.")
+ the C level. When importing pycosat, the @code{picosat} solver becomes part
+ of the Python process itself. @code{picosat} is a @dfn{Boolean Satisfiability
+ Problem} (SAT) solver.")
(license license:expat)))
(define-public python2-pycosat
@@ -17947,13 +17859,13 @@ Problem} (SAT) solver.")
(synopsis "Version of dict that keeps keys in insertion order")
(description
"This is an implementation of an ordered dictionary with @dfn{Key
-Insertion Order} (KIO: updates of values do not affect the position of the
-key), @dfn{Key Value Insertion Order} (KVIO, an existing key's position is
-removed and put at the back). The standard library module @code{OrderedDict},
-implemented later, implements a subset of @code{ordereddict} functionality.
-Sorted dictionaries are also provided. Currently only with @dfn{Key Sorted
-Order} (KSO, no sorting function can be specified, but a transform can be
-specified to apply on the key before comparison (e.g. @code{string.lower})).")
+ Insertion Order} (KIO: updates of values do not affect the position of the
+ key), @dfn{Key Value Insertion Order} (KVIO, an existing key's position is
+ removed and put at the back). The standard library module @code{OrderedDict},
+ implemented later, implements a subset of @code{ordereddict} functionality.
+ Sorted dictionaries are also provided. Currently only with @dfn{Key Sorted
+ Order} (KSO, no sorting function can be specified, but a transform can be
+ specified to apply on the key before comparison (e.g. @code{string.lower})).")
(license license:expat)))
(define-public python-pypeg2
@@ -17975,8 +17887,8 @@ specified to apply on the key before comparison (e.g. @code{string.lower})).")
(home-page "https://fdik.org/pyPEG/")
(synopsis "Parsing Expression Grammars in Python")
(description "PyPEG is an intrinsic parser interpreter framework for
-Python. It is based on Parsing Expression Grammars, PEG. With pyPEG you can
-parse many formal languages.")
+ Python. It is based on Parsing Expression Grammars, PEG. With pyPEG you can
+ parse many formal languages.")
(license license:gpl2)))
(define-public python-incremental
@@ -17994,7 +17906,7 @@ parse many formal languages.")
(home-page "https://github.com/hawkowl/incremental")
(synopsis "Library for versioning Python projects")
(description "Incremental is a small library that versions your Python
-projects.")
+ projects.")
(license license:expat)))
(define-public python2-incremental
@@ -18004,39 +17916,50 @@ projects.")
(package
(name "python-invoke")
(home-page "https://www.pyinvoke.org/")
- (version "1.5.0")
+ (version "1.6.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "invoke" version))
(sha256
(base32
- "0l16v7zcbgi36z6pvmdrs5q4ks8lalcafi5d9nhrpcjzbc3n1igh"))))
+ "1lsql9daabfr31c7syva5myc5bka45k57ygs9fliv63qrwp1wk9p"))))
(build-system python-build-system)
(arguments
;; XXX: Requires many dependencies that are not yet in Guix.
`(#:tests? #f
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'delete-python2-code
+ (lambda _
+ (delete-file-recursively "invoke/vendor/yaml2")))
(add-after 'unpack 'fix-bash-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash")))
(substitute* "invoke/config.py"
(("shell = \"/bin/bash\"")
- (string-append "shell = \"" bash "/bin/bash\""))
- )
- #t))))))
+ (string-append "shell = \"" bash "/bin/bash\"")))))))))
(inputs
`(("bash" ,bash-minimal)))
(synopsis "Pythonic task execution")
(description
"Invoke is a Python task execution tool and library, drawing inspiration
-from various sources to arrive at a powerful and clean feature set. It is
-evolved from the Fabric project, but focuses on local and abstract concerns
-instead of servers and network commands.")
+ from various sources to arrive at a powerful and clean feature set. It is
+ evolved from the Fabric project, but focuses on local and abstract concerns
+ instead of servers and network commands.")
(license license:bsd-3)))
(define-public python2-invoke
- (package-with-python2 python-invoke))
+ (let ((parent (package-with-python2 python-invoke)))
+ (package
+ (inherit parent)
+ (arguments
+ (substitute-keyword-arguments (package-arguments parent)
+ ((#:phases phases #t)
+ `(modify-phases ,phases
+ (delete 'delete-python2-code)
+ (add-after 'unpack 'delete-python3-code
+ (lambda _
+ (delete-file-recursively "invoke/vendor/yaml3"))))))))))
(define-public python-automat
(package
@@ -18053,7 +17976,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)
@@ -18064,8 +17995,8 @@ instead of servers and network commands.")
(home-page "https://github.com/glyph/Automat")
(synopsis "Self-service finite-state machines")
(description "Automat is a library for concise, idiomatic Python
-expression of finite-state automata (particularly deterministic finite-state
-transducers).")
+ expression of finite-state automata (particularly deterministic finite-state
+ transducers).")
(license license:expat)))
(define-public python2-automat
@@ -18091,7 +18022,7 @@ transducers).")
(home-page "https://github.com/miyakogi/m2r")
(synopsis "Markdown to reStructuredText converter")
(description "M2R converts a markdown file including reST markups to valid
-reST format.")
+ reST format.")
(license license:expat)))
(define-public python2-m2r
@@ -18111,8 +18042,8 @@ reST format.")
(home-page "https://github.com/twisted/constantly")
(synopsis "Symbolic constants in Python")
(description "Constantly is a Python library that provides symbolic
-constant support. It includes collections and constants with text, numeric,
-and bit flag values.")
+ constant support. It includes collections and constants with text, numeric,
+ and bit flag values.")
(license license:expat)))
(define-public python2-constantly
@@ -18130,38 +18061,22 @@ 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
-ease the chores of implementing the most common attribute-related object
-protocols.")
+ ease the chores of implementing the most common attribute-related object
+ protocols.")
(license license:expat)))
(define-public python2-attrs
@@ -18171,13 +18086,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))))
@@ -18210,8 +18118,8 @@ protocols.")
(home-page "https://liw.fi/cliapp/")
(synopsis "Python framework for command line programs")
(description "@code{cliapp} is a Python framework for command line
-programs. It contains the typical stuff such programs need to do, such
-as parsing the command line for options, and iterating over input files.")
+ programs. It contains the typical stuff such programs need to do, such
+ as parsing the command line for options, and iterating over input files.")
(license license:gpl2+)))
(define-public python2-cliapp
@@ -18246,11 +18154,11 @@ as parsing the command line for options, and iterating over input files.")
(lambda _ (invoke "make" "check"))))))
(home-page "https://liw.fi/ttystatus/")
(synopsis "Python library for showing progress reporting and
-status updates on terminals")
+ status updates on terminals")
(description "@code{ttystatus} is a Python library for showing progress
-reporting and status updates on terminals, for command line programs.
-Output is automatically adapted to the width of the terminal: truncated
-if it does not fit, and resized if the terminal size changes.")
+ reporting and status updates on terminals, for command line programs.
+ Output is automatically adapted to the width of the terminal: truncated
+ if it does not fit, and resized if the terminal size changes.")
(license license:gpl3+)))
(define-public python2-ttystatus
@@ -18275,51 +18183,45 @@ if it does not fit, and resized if the terminal size changes.")
(home-page "https://liw.fi/tracing/")
(synopsis "Python debug logging helper")
(description "@code{python2-tracing} is a python library for
-logging debug messages. It provides a way to turn debugging messages
-on and off, based on the filename they occur in. It is much faster
-than using @code{logging.Filter} to accomplish the same thing, which
-matters when code is run in production mode. The actual logging still
-happens using the @code{logging} library.")
+ logging debug messages. It provides a way to turn debugging messages
+ on and off, based on the filename they occur in. It is much faster
+ than using @code{logging.Filter} to accomplish the same thing, which
+ matters when code is run in production mode. The actual logging still
+ happens using the @code{logging} library.")
(license license:gpl3+)))
(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
-other projects")
+ other projects")
(description "@code{python-astroid} provides a common base representation
-of python source code for projects such as pychecker, pyreverse, pylint, etc.
-
-It provides a compatible representation which comes from the _ast module. It
-rebuilds the tree generated by the builtin _ast module by recursively walking
-down the AST and building an extended ast. The new node classes have
-additional methods and attributes for different usages. They include some
-support for static inference and local name scopes. Furthermore, astroid
-builds partial trees by inspecting living objects.")
+ of python source code for projects such as pychecker, pyreverse, pylint, etc.
+
+ It provides a compatible representation which comes from the _ast module. It
+ rebuilds the tree generated by the builtin _ast module by recursively walking
+ down the AST and building an extended ast. The new node classes have
+ additional methods and attributes for different usages. They include some
+ support for static inference and local name scopes. Furthermore, astroid
+ builds partial trees by inspecting living objects.")
(license license:lgpl2.1+)
(properties `((python2-variant . ,(delay python2-astroid))))))
@@ -18337,26 +18239,27 @@ builds partial trees by inspecting living objects.")
(base32
"0fir4b67sm7shcacah9n61pvq313m523jb4q80sycrh3p8nmi6zw"))))
(arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'remove-spurious-test
- (lambda _
- ;; https://github.com/PyCQA/astroid/issues/276
- (delete-file "astroid/tests/unittest_brain.py")
- #t))
- (replace 'check
- (lambda _
- (invoke"python" "-m" "unittest" "discover"
- "-p" "unittest*.py")))))))
+ `(#:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-spurious-test
+ (lambda _
+ ;; https://github.com/PyCQA/astroid/issues/276
+ (delete-file "astroid/tests/unittest_brain.py")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "python" "-m" "unittest" "discover"
+ "-p" "unittest*.py")))))))
(native-inputs `())
(propagated-inputs
- `(("python2-backports-functools-lru-cache"
- ,python2-backports-functools-lru-cache)
- ("python2-enum34" ,python2-enum34)
- ("python2-singledispatch" ,python2-singledispatch)
- ,@(alist-delete "python-typed-ast"
- (package-propagated-inputs base)))))))
+ `(("python2-backports-functools-lru-cache"
+ ,python2-backports-functools-lru-cache)
+ ("python2-enum34" ,python2-enum34)
+ ("python2-lazy-object-proxy" ,python2-lazy-object-proxy)
+ ("python2-singledispatch" ,python2-singledispatch)
+ ("python2-six" ,python2-six)
+ ("python2-wrapt" ,python2-wrapt))))))
(define-public python-isbnlib
(package
@@ -18374,36 +18277,90 @@ builds partial trees by inspecting living objects.")
(home-page "https://github.com/xlcnd/isbnlib")
(synopsis "Python library to work with ISBN strings")
(description "@code{python-isbnlib} is a (pure) python library that provides
-several useful methods and functions to validate, clean, transform, hyphenate and
-get metadata for ISBN strings. Its origin was as the core of isbntools. This short
-version, is suitable to be include as a dependency in other projects.")
+ several useful methods and functions to validate, clean, transform, hyphenate and
+ get metadata for ISBN strings. Its origin was as the core of isbntools. This short
+ version, is suitable to be include as a dependency in other projects.")
(license license:lgpl3+)))
(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
-provides a command line utility, a python library and plugins for various
-editors.")
+ imports alphabetically, and automatically separated into sections. It
+ provides a command line utility, a python library and plugins for various
+ editors.")
(license license:expat)
(properties `((python2-variant . ,(delay python2-isort))))))
@@ -18435,7 +18392,7 @@ editors.")
(home-page "https://github.com/jaraco/backports.functools_lru_cache")
(synopsis "Backport of functools.lru_cache from Python 3.3")
(description "@code{python2-backports-functools-lru-cache} is a backport
-of @code{functools.lru_cache} from python 3.3.")
+ of @code{functools.lru_cache} from python 3.3.")
(license license:expat)))
(define-public python-configparser
@@ -18455,8 +18412,8 @@ of @code{functools.lru_cache} from python 3.3.")
(home-page "https://github.com/jaraco/configparser/")
(synopsis "Backport of configparser from python 3.5")
(description "@code{python-configparser} is a backport of
-@code{configparser} from Python 3.5 so that it can be used directly
-in other versions.")
+ @code{configparser} from Python 3.5 so that it can be used directly
+ in other versions.")
(license license:expat)))
(define-public python2-configparser
@@ -18477,14 +18434,14 @@ in other versions.")
(home-page "https://github.com/RonnyPfannschmidt/iniconfig")
(synopsis "Simple INI-file parser")
(description "The @code{iniconfig} package provides a small and simple
-INI-file parser module having a unique set of features; @code{iniconfig}
-@itemize
-@item maintains the order of sections and entries;
-@item supports multi-line values with or without line-continuations;
-@item supports \"#\" comments everywhere;
-@item raises errors with proper line-numbers;
-@item raises an error when two sections have the same name.
-@end itemize")
+ INI-file parser module having a unique set of features ; @code{iniconfig}
+ @itemize
+ @item maintains the order of sections and entries ;
+ @item supports multi-line values with or without line-continuations ;
+ @item supports \"#\" comments everywhere ;
+ @item raises errors with proper line-numbers ;
+ @item raises an error when two sections have the same name.
+ @end itemize")
(license license:expat)))
(define-public python-mamba
@@ -18506,7 +18463,7 @@ INI-file parser module having a unique set of features; @code{iniconfig}
(synopsis "Test runner for Python")
(description
"Mamba is a Behaviour-Driven Development tool for Python developers.
-Is heavily influenced from RSpec, Mocha, Jasmine or Ginkgo.")
+ Is heavily influenced from RSpec, Mocha, Jasmine or Ginkgo.")
(license license:expat)))
(define-public python-mando
@@ -18530,7 +18487,7 @@ Is heavily influenced from RSpec, Mocha, Jasmine or Ginkgo.")
"Wrapper around argparse, allowing creation of complete CLI applications")
(description
"This package is a wrapper around argparse, allowing you to write complete CLI
-applications in seconds while maintaining all the flexibility.")
+ applications in seconds while maintaining all the flexibility.")
(license license:expat)))
(define-public python2-mando
@@ -18554,7 +18511,7 @@ applications in seconds while maintaining all the flexibility.")
(synopsis "Python command-line parsing library")
(description
"This package is mostly for people who want to have @code{argparse} on
-older Pythons because it was not part of the standard library back then.")
+ older Pythons because it was not part of the standard library back then.")
(license license:psfl)))
(define-public python-mwclient
@@ -18613,7 +18570,7 @@ older Pythons because it was not part of the standard library back then.")
(synopsis "Convenient utilities not included with the standard Python install")
(description
"Python Utils is a collection of small Python functions and classes which
-make common patterns shorter and easier.")
+ make common patterns shorter and easier.")
(license license:bsd-2)))
(define-public python-diff-match-patch
@@ -18631,7 +18588,7 @@ make common patterns shorter and easier.")
(home-page "https://code.google.com/p/google-diff-match-patch")
(synopsis "Synchronize plain text")
(description "Diff Match and Patch libraries offer robust algorithms to
-perform the operations required for synchronizing plain text.")
+ perform the operations required for synchronizing plain text.")
(license license:asl2.0)))
(define-public python2-diff-match-patch
@@ -18675,13 +18632,13 @@ perform the operations required for synchronizing plain text.")
(synopsis "Fast computation of Levenshtein distance and string similarity")
(description
"The Levenshtein Python C extension module contains functions for fast computation of
-@enumerate
-@item Levenshtein (edit) distance, and edit operations
-@item string similarity
-@item approximate median strings, and generally string averaging
-@item string sequence and set similarity
-@end enumerate
-It supports both normal and Unicode strings.")
+ @enumerate
+ @item Levenshtein (edit) distance, and edit operations
+ @item string similarity
+ @item approximate median strings, and generally string averaging
+ @item string sequence and set similarity
+ @end enumerate
+ It supports both normal and Unicode strings.")
(license license:gpl2+)))
(define-public python2-levenshtein
@@ -18707,12 +18664,12 @@ It supports both normal and Unicode strings.")
(synopsis "Directory iteration function")
(description
"Directory iteration function like os.listdir(), except that instead of
-returning a list of bare filenames, it yields DirEntry objects that include
-file type and stat information along with the name. Using scandir() increases
-the speed of os.walk() by 2-20 times (depending on the platform and file
-system) by avoiding unnecessary calls to os.stat() in most cases.
+ returning a list of bare filenames, it yields DirEntry objects that include
+ file type and stat information along with the name. Using scandir() increases
+ the speed of os.walk() by 2-20 times (depending on the platform and file
+ system) by avoiding unnecessary calls to os.stat() in most cases.
-This package is part of the Python standard library since version 3.5.")
+ This package is part of the Python standard library since version 3.5.")
(license license:bsd-3)))
(define-public python2-scandir
@@ -18735,10 +18692,10 @@ This package is part of the Python standard library since version 3.5.")
(synopsis "Python implementations of various stemming algorithms")
(description
"Python implementations of the Porter, Porter2, Paice-Husk, and Lovins
-stemming algorithms for English. These implementations are straightforward and
-efficient, unlike some Python versions of the same algorithms available on the
-Web. This package is an extraction of the stemming code included in the Whoosh
-search engine.")
+ stemming algorithms for English. These implementations are straightforward and
+ efficient, unlike some Python versions of the same algorithms available on the
+ Web. This package is an extraction of the stemming code included in the Whoosh
+ search engine.")
(license license:public-domain)))
(define-public python-factory-boy
@@ -18762,17 +18719,14 @@ search engine.")
(description
"Factory_boy is a fixtures replacement based on thoughtbot’s factory_girl.
-As a fixtures replacement tool, it aims to replace static, hard to maintain
-fixtures with easy-to-use factories for complex object.
+ As a fixtures replacement tool, it aims to replace static, hard to maintain
+ fixtures with easy-to-use factories for complex object.
-Instead of building an exhaustive test setup with every possible combination
-of corner cases, factory_boy allows you to use objects customized for the
-current test, while only declaring the test-specific fields")
+ Instead of building an exhaustive test setup with every possible combination
+ 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")
@@ -18807,7 +18761,7 @@ current test, while only declaring the test-specific fields")
(synopsis "Tools and API for translation and localization engineering")
(description
"Tools and API for translation and localization engineering. It contains
-several utilities, as well as an API for building localization tools.")
+ several utilities, as well as an API for building localization tools.")
(license license:gpl2+)))
;; Required for virtaal, newer versions do not build with python2
@@ -18824,28 +18778,15 @@ several utilities, as well as an API for building localization tools.")
(base32 "1vlkwrg83vb17jc36pmwh2b7jphwf390lz0jw8hakcg16qhwypvq")))))))
(define-public python-packaging
- (package
+ (package/inherit python-packaging-bootstrap
(name "python-packaging")
- (version "20.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "packaging" version))
- ;; XXX: The URL in the patch file is wrong, it should be
- ;; <https://github.com/pypa/packaging/pull/256>.
- (patches (search-patches "python-packaging-test-arch.patch"))
- (sha256
- (base32
- "1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy"))))
- (build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
- (invoke "py.test" "-vv")
- (format #t "test suite not run~%"))
- #t)))))
+ (invoke "pytest" "-vv")
+ (format #t "test suite not run~%")))))))
(native-inputs
`(("python-pretend" ,python-pretend)
("python-pytest" ,python-pytest)))
@@ -18855,8 +18796,8 @@ several utilities, as well as an API for building localization tools.")
(home-page "https://github.com/pypa/packaging")
(synopsis "Core utilities for Python packages")
(description "Packaging is a Python module for dealing with Python packages.
-It offers an interface for working with package versions, names, and dependency
-information.")
+ It offers an interface for working with package versions, names, and dependency
+ information.")
;; From 'LICENSE': This software is made available under the terms of
;; *either* of the licenses found in LICENSE.APACHE or LICENSE.BSD.
;; Contributions to this software is made under the terms of *both* these
@@ -18866,29 +18807,6 @@ information.")
(define-public python2-packaging
(package-with-python2 python-packaging))
-;; Variants with minimal dependencies, for bootstrapping Pytest.
-(define-public python-packaging-bootstrap
- (hidden-package
- (package/inherit
- python-packaging
- (name "python-packaging-bootstrap")
- (native-inputs '())
- (propagated-inputs
- `(("python-pyparsing" ,python-pyparsing)))
- (arguments '(#:tests? #f)))))
-
-(define-public python2-packaging-bootstrap
- (hidden-package
- (package/inherit
- python2-packaging
- (name "python2-packaging-bootstrap")
- (native-inputs '())
- (propagated-inputs
- `(("python-pyparsing" ,python2-pyparsing)))
- (arguments
- `(#:tests? #f
- ,@(package-arguments python2-packaging))))))
-
(define-public python-relatorio
(package
(name "python-relatorio")
@@ -18909,13 +18827,10 @@ information.")
(home-page "https://relatorio.tryton.org/")
(synopsis "Templating library able to output ODT and PDF files")
(description "Relatorio is a templating library which provides a way to
-easily output ODT, ODS, PNG, SVG and several other kinds of files. Support
-for more filetypes can be easily added by creating plugins for them.")
+ easily output ODT, ODS, PNG, SVG and several other kinds of files. Support
+ for more filetypes can be easily added by creating plugins for them.")
(license license:gpl3+)))
-(define-public python2-relatorio
- (package-with-python2 python-relatorio))
-
(define-public python-radon
(package
(name "python-radon")
@@ -18930,6 +18845,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"))))))
@@ -18943,13 +18865,13 @@ for more filetypes can be easily added by creating plugins for them.")
(home-page "https://radon.readthedocs.org/")
(synopsis "Code Metrics in Python")
(description "Radon is a Python tool which computes various code metrics.
-Supported metrics are:
-@itemize @bullet
-@item raw metrics: SLOC, comment lines, blank lines, &c.
-@item Cyclomatic Complexity (i.e. McCabe’s Complexity)
-@item Halstead metrics (all of them)
-@item the Maintainability Index (a Visual Studio metric)
-@end itemize")
+ Supported metrics are:
+ @itemize @bullet
+ @item raw metrics: SLOC, comment lines, blank lines, &c.
+ @item Cyclomatic Complexity (i.e. McCabe’s Complexity)
+ @item Halstead metrics (all of them)
+ @item the Maintainability Index (a Visual Studio metric)
+ @end itemize")
(properties `((python2-variant . ,(delay python2-radon))))
(license license:expat)))
@@ -18982,7 +18904,7 @@ Supported metrics are:
(synopsis "Automated testing library in python for python")
(description
"Sure is a python library that leverages a DSL for writing assertions.
-Sure is heavily inspired by @code{RSpec Expectations} and @code{should.js}.")
+ Sure is heavily inspired by @code{RSpec Expectations} and @code{should.js}.")
(license license:gpl3+)))
(define-public python2-sure
@@ -19009,7 +18931,7 @@ Sure is heavily inspired by @code{RSpec Expectations} and @code{should.js}.")
"ANSI terminal tool for python, colored shell and other handy fancy features")
(description
"@code{Couleur} provides python programs a way to use the ANSI features in a unix
-terminal such as coloured output in the shell, overwriting output, indentation, etc.")
+ terminal such as coloured output in the shell, overwriting output, indentation, etc.")
;; README.md says ASL2.0, but all source code headers are LGPL3+.
;; https://github.com/gabrielfalcao/couleur/issues/11
(license license:lgpl3+)))
@@ -19039,8 +18961,8 @@ terminal such as coloured output in the shell, overwriting output, indentation,
(synopsis "Python binding for Hoedown")
(description
"@code{Misaka} is a CFFI-based binding for @code{Hoedown}, a fast markdown processing
-library written in C. It features a fast HTML renderer and functionality to make custom
-renderers (e.g. man pages or LaTeX).")
+ library written in C. It features a fast HTML renderer and functionality to make custom
+ renderers (e.g. man pages or LaTeX).")
(license license:expat)))
(define-public python2-misaka
@@ -19080,9 +19002,9 @@ renderers (e.g. man pages or LaTeX).")
(synopsis "Markdown-based test runner for python")
(description
"@code{Steadymark} allows documentation to be written in github-flavoured
-markdown. The documentation may contain snippets of code surrounded by python
-code blocks and @code{Steadymark} will find these snippets and run them, making
-sure that there are no old malfunctional examples in the documentation examples.")
+ markdown. The documentation may contain snippets of code surrounded by python
+ code blocks and @code{Steadymark} will find these snippets and run them, making
+ sure that there are no old malfunctional examples in the documentation examples.")
(license license:expat)))
(define-public python-jsonpointer
@@ -19100,7 +19022,7 @@ sure that there are no old malfunctional examples in the documentation examples.
(home-page "https://github.com/stefankoegl/python-json-pointer")
(synopsis "Identify specific nodes in a JSON document")
(description "@code{jsonpointer} allows you to access specific nodes
-by path in a JSON document (see RFC 6901).")
+ by path in a JSON document (see RFC 6901).")
(license license:bsd-3)))
(define-public python2-jsonpointer
@@ -19127,7 +19049,7 @@ by path in a JSON document (see RFC 6901).")
(home-page "https://github.com/stefankoegl/python-json-patch")
(synopsis "Applying JSON Patches in Python 2.6+ and 3.x")
(description "@code{jsonpatch} is a library and program that allows
-applying JSON Patches according to RFC 6902.")
+ applying JSON Patches according to RFC 6902.")
(license license:bsd-3)))
(define-public python2-jsonpatch
@@ -19163,31 +19085,19 @@ 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/")
(synopsis "Parse and validate URI references")
(description
"@code{rfc3986} is a Python implementation of RFC@tie{}3986 including
-validation and authority parsing. This module also supports RFC@tie{}6874
-which adds support for zone identifiers to IPv6 addresses.")
+ validation and authority parsing. This module also supports RFC@tie{}6874
+ which adds support for zone identifiers to IPv6 addresses.")
(license license:asl2.0)))
(define-public python2-rfc3986
@@ -19208,7 +19118,7 @@ which adds support for zone identifiers to IPv6 addresses.")
(home-page "https://pypi.org/project/rfc3987/")
(synopsis "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)")
(description "@code{rfc3987} provides routines for parsing and
-validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
+ validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
(license license:gpl3+)))
(define-public python2-rfc3987
@@ -19246,8 +19156,8 @@ validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
(synopsis "Python implementation of RFC 6555")
(description
"Python implementation of the Happy Eyeballs Algorithm described in RFC
-6555. Provided with a single file and dead-simple API to allow easy vendoring
-and integration into other projects.")
+ 6555. Provided with a single file and dead-simple API to allow easy vendoring
+ and integration into other projects.")
(license license:asl2.0))))
(define-public python-bagit
@@ -19269,8 +19179,8 @@ and integration into other projects.")
(home-page "https://libraryofcongress.github.io/bagit-python/")
(synopsis "Create and validate BagIt packages")
(description "Bagit is a Python library and command line utility for working
-with BagIt style packages. BagIt is a minimalist packaging format for digital
-preservation.")
+ with BagIt style packages. BagIt is a minimalist packaging format for digital
+ preservation.")
(license license:cc0)))
(define-public python-prov
@@ -19298,7 +19208,7 @@ preservation.")
"W3C Provenance Data Model supporting PROV-JSON, PROV-XML and PROV-O (RDF)")
(description
"This package provides a library for W3C Provenance Data Model supporting
-PROV-O (RDF), PROV-XML, PROV-JSON import/export.")
+ PROV-O (RDF), PROV-XML, PROV-JSON import/export.")
(license license:expat)))
(define-public python-arcp
@@ -19320,17 +19230,17 @@ PROV-O (RDF), PROV-XML, PROV-JSON import/export.")
"Archive and Package URI parser and generator")
(description
"@acronym{arcp, Archive and Package} provides functions for creating
-@code{arcp_} URIs, which can be used for identifying or parsing hypermedia files
-packaged in an archive or package, like a ZIP file. arcp URIs can be used to
-consume or reference hypermedia resources bundled inside a file archive or an
-application package, as well as to resolve URIs for archive resources within a
-programmatic framework. This URI scheme provides mechanisms to generate a
-unique base URI to represent the root of the archive, so that relative URI
-references in a bundled resource can be resolved within the archive without
-having to extract the archive content on the local file system. An arcp URI can
-be used for purposes of isolation (e.g. when consuming multiple archives),
-security constraints (avoiding \"climb out\" from the archive), or for
-externally identiyfing sub-resources referenced by hypermedia formats.")
+ @code{arcp_} URIs, which can be used for identifying or parsing hypermedia files
+ packaged in an archive or package, like a ZIP file. arcp URIs can be used to
+ consume or reference hypermedia resources bundled inside a file archive or an
+ application package, as well as to resolve URIs for archive resources within a
+ programmatic framework. This URI scheme provides mechanisms to generate a
+ unique base URI to represent the root of the archive, so that relative URI
+ references in a bundled resource can be resolved within the archive without
+ having to extract the archive content on the local file system. An arcp URI can
+ be used for purposes of isolation (e.g. when consuming multiple archives),
+ security constraints (avoiding \"climb out\" from the archive), or for
+ externally identiyfing sub-resources referenced by hypermedia formats.")
(license license:asl2.0)))
(define-public python-shellescape
@@ -19364,9 +19274,9 @@ externally identiyfing sub-resources referenced by hypermedia formats.")
"Shell escape a string to safely use it as a token in a shell command")
(description
"The shellescape Python module defines the @code{shellescape.quote()}
-function that returns a shell-escaped version of a Python string. This is a
-backport of the @code{shlex.quote()} function from Python 3.8 that makes it
-accessible to users of Python 3 versions < 3.3 and all Python 2.x versions.")
+ function that returns a shell-escaped version of a Python string. This is a
+ backport of the @code{shlex.quote()} function from Python 3.8 that makes it
+ accessible to users of Python 3 versions < 3.3 and all Python 2.x versions.")
(license license:expat)))
(define-public python-validators
@@ -19396,14 +19306,11 @@ accessible to users of Python 3 versions < 3.3 and all Python 2.x versions.")
(synopsis "Data validation library")
(description
"This package contains validators for different things such as email
-addresses, IP addresses, URLs, hashes and more. It has been designed to
-be easy to use and not require defining a schema or form just to validate
-some input.")
+ addresses, IP addresses, URLs, hashes and more. It has been designed to
+ be easy to use and not require defining a schema or form just to validate
+ some input.")
(license license:expat)))
-(define-public python2-validators
- (package-with-python2 python-validators))
-
(define-public python-validate-email
(package
(name "python-validate-email")
@@ -19419,7 +19326,7 @@ some input.")
(home-page "https://github.com/syrusakbary/validate_email")
(synopsis "Verifies if an email address is valid and really exists")
(description "@code{validate_email} can be used to verify if an email
-address is valid and really exists.")
+ address is valid and really exists.")
(license license:lgpl3+)))
(define-public python2-validate-email
@@ -19474,9 +19381,9 @@ address is valid and really exists.")
("python-pytz" ,python-pytz)))
(home-page "https://github.com/marshmallow-code/marshmallow")
(synopsis "Convert complex datatypes to and from native
-Python datatypes")
+ Python datatypes")
(description "@code{marshmallow} provides a library for converting
-complex datatypes to and from native Python datatypes.")
+ complex datatypes to and from native Python datatypes.")
(license license:expat)))
(define-public python-marshmallow-3.2
@@ -19516,8 +19423,8 @@ complex datatypes to and from native Python datatypes.")
(synopsis "JSON:API 1.0 formatting with Marshmallow")
(description
"The marshmallow-jsonapi package provides a simple way to produce
-@uref{https://jsonapi.org, JSON:API}-compliant data in any Python Web framework.
-It includes optional utilities to integrate with Flask.")
+ @uref{https://jsonapi.org, JSON:API}-compliant data in any Python Web framework.
+ It includes optional utilities to integrate with Flask.")
(license license:expat)))
(define-public python-apispec
@@ -19534,19 +19441,13 @@ It includes optional utilities to integrate with Flask.")
(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
@@ -19555,8 +19456,8 @@ It includes optional utilities to integrate with Flask.")
(home-page "https://github.com/marshmallow-code/apispec")
(synopsis "Swagger/OpenAPI specification generator")
(description "@code{python-apispec} is a pluggable API specification
-generator. It currently supports the OpenAPI specification, formerly known
-as Swagger.")
+ generator. It currently supports the OpenAPI specification, formerly known
+ as Swagger.")
(license license:expat)))
(define-public python-flasgger
@@ -19581,9 +19482,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)
@@ -19603,7 +19501,7 @@ as Swagger.")
(home-page "https://github.com/rochacbruno/flasgger/")
(synopsis "Extract Swagger specs from your Flask project")
(description "@code{python-flasgger} allows extracting Swagger specs
-from your Flask project. It is a fork of Flask-Swagger.")
+ from your Flask project. It is a fork of Flask-Swagger.")
(license license:expat)))
(define-public python-swagger-spec-validator
@@ -19626,7 +19524,7 @@ from your Flask project. It is a fork of Flask-Swagger.")
"https://github.com/Yelp/swagger_spec_validator")
(synopsis "Validation of Swagger specifications")
(description "@code{swagger_spec_validator} provides a library for
-validating Swagger API specifications.")
+ validating Swagger API specifications.")
(license license:asl2.0)))
(define-public python-apache-libcloud
@@ -19655,7 +19553,7 @@ validating Swagger API specifications.")
(substitute* "libcloud/test/compute/test_ssh_client.py"
(("class ShellOutSSHClientTests")
"@unittest.skip(\"Guix container doesn't have ssh service\")
-class ShellOutSSHClientTests"))
+ class ShellOutSSHClientTests"))
#t))
(add-before 'check 'copy-secret
(lambda _
@@ -19676,7 +19574,7 @@ class ShellOutSSHClientTests"))
(home-page "https://libcloud.apache.org/")
(synopsis "Unified Cloud API")
(description "@code{libcloud} is a Python library for interacting with
-many of the popular cloud service providers using a unified API.")
+ many of the popular cloud service providers using a unified API.")
(license license:asl2.0)))
(define-public python-smmap
@@ -19695,7 +19593,7 @@ many of the popular cloud service providers using a unified API.")
(home-page "https://github.com/Byron/smmap")
(synopsis "Python sliding window memory map manager")
(description "@code{smmap} is a pure Python implementation of a sliding
-window memory map manager.")
+ window memory map manager.")
(license license:bsd-3)))
(define-public python2-smmap
@@ -19719,13 +19617,13 @@ window memory map manager.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(invoke "python" "-c"
- "from regex.test_regex import test_main; test_main()"))))))
- (home-page "https://bitbucket.org/mrabarnett/mrab-regex")
- (synopsis "Alternative regular expression module")
- (description "This regular expression implementation is backwards-
+ "from regex.test_regex import test_main ; test_main()"))))))
+ (home-page "https://bitbucket.org/mrabarnett/mrab-regex")
+ (synopsis "Alternative regular expression module")
+ (description "This regular expression implementation is backwards-
compatible with the standard @code{re} module, but offers additional
functionality like full case-folding for case-insensitive matches in Unicode.")
- (license license:psfl)))
+ (license license:psfl)))
(define-public python2-regex
(package-with-python2 python-regex))
@@ -19961,25 +19859,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
@@ -20103,7 +20002,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")
@@ -20690,9 +20590,8 @@ user's @file{~/Trash} directory.")
`(modify-phases ,phases
(add-before 'check 'setenv
(lambda _
- (setenv "PYTHONPATH"
- (string-append (getcwd) ":" (getenv "PYTHONPATH")))
- #t)))))))))
+ (setenv "GUIX_PYTHONPATH"
+ (string-append (getcwd) ":" (getenv "GUIX_PYTHONPATH"))))))))))))
(define-public python-pyfavicon
(package
@@ -21043,7 +20942,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)
@@ -21051,28 +20950,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")
@@ -21103,30 +20989,31 @@ based on the CPython 2.7 and 3.7 parsers.")
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-before 'check 'disable-failing-tests
+ ;; Unfortunately, this doesn't seem to be enough to fix these two
+ ;; tests, but we'll patch this anyway.
+ (add-after 'unpack 'patch-shell-reference
(lambda _
(substitute* "tests/test_completion/test_completion.py"
- (("def test_show_completion")
- "def _test_show_completion")
- (("def test_install_completion")
- "def _test_install_completion"))
- (substitute* "tests/test_completion/test_completion_install.py"
- (("def test_completion_install_bash")
- "def _test_completion_install_bash")
- (("def test_completion_install_zsh")
- "def _test_completion_install_zsh")
- (("def test_completion_install_fish")
- "def _test_completion_install_fish")
- (("def test_completion_install_powershell")
- "def _test_completion_install_powershell"))
- #t))
+ (("\"bash\"") (string-append "\"" (which "bash") "\""))
+ (("\"/bin/bash\"") (string-append "\"" (which "bash") "\"")))))
(replace 'check
- (lambda _
- (setenv "PYTHONPATH"
- (string-append (getcwd) ":"
- (getenv "PYTHONPATH")))
- (invoke "python" "-m" "pytest" "tests/")
- #t)))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "HOME" "/tmp") ; some tests need it
+
+ ;; This is for completion tests
+ (with-output-to-file "/tmp/.bashrc" (lambda _ (display "# dummy")))
+
+ (setenv "GUIX_PYTHONPATH"
+ (string-append (getcwd) ":"
+ (getenv "GUIX_PYTHONPATH")))
+ (let ((disabled-tests (list "test_show_completion"
+ "test_install_completion")))
+ (invoke "python" "-m" "pytest" "tests/"
+ "-k"
+ (string-append "not "
+ (string-join disabled-tests
+ " and not "))))))))))
(propagated-inputs
`(("python-click" ,python-click)))
(native-inputs
@@ -21206,13 +21093,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
@@ -21238,14 +21125,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
@@ -21735,6 +21625,25 @@ interface to FUSE on various operating systems. It's just one file and is
implemented using @code{ctypes}.")
(license license:isc)))
+(define-public python-update-checker
+ (package
+ (name "python-update-checker")
+ (version "0.18.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "update-checker" version))
+ (sha256
+ (base32 "04yb5a9mi45ax50m2m0ih6gdvkk1j7gfmy83dd58i1f59axlabba"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-requests))
+ (native-inputs (list python-black python-flake8 python-pytest))
+ (home-page "https://github.com/bboe/update_checker")
+ (synopsis "Python module that will check for package updates")
+ (description "This package provides a Python module that will check for
+package updates.")
+ (license license:bsd-2)))
+
(define-public python-userspacefs
(package
(name "python-userspacefs")
@@ -21778,8 +21687,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?
@@ -21787,11 +21695,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)))
@@ -21954,9 +21858,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)))
@@ -22190,14 +22097,14 @@ validation testing and application logic.")
(define-public python-numba
(package
(name "python-numba")
- (version "0.51.2")
+ (version "0.54.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "numba" version))
(sha256
(base32
- "0s0777m8kq4l96i88zj78np7283v1n4878qfc1gvzb8l45bmkg8n"))))
+ "0gzl2hz9azav9mny4mga19096rrnpw5816r1h4iwrvb4r01wipzr"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -22205,17 +22112,23 @@ validation testing and application logic.")
(add-after 'unpack 'disable-proprietary-features
(lambda _
(setenv "NUMBA_DISABLE_HSA" "1")
- (setenv "NUMBA_DISABLE_CUDA" "1")
- #t))
+ (setenv "NUMBA_DISABLE_CUDA" "1")))
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ ;; This one test fails because a deprecation warning is printed.
+ (substitute* "numba/tests/test_import.py"
+ (("def test_no_accidental_warnings")
+ "def disabled_test_no_accidental_warnings"))))
(replace 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- ;; Something is wrong with the PYTHONPATH when running the
- ;; tests from the build directory, as it complains about not being
- ;; able to import certain modules.
- (with-directory-excursion "/tmp"
- (setenv "HOME" (getcwd))
- (invoke "python3" "-m" "numba.runtests" "-v" "-m")))))))
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ ;; Something is wrong with the PYTHONPATH when running the
+ ;; tests from the build directory, as it complains about not being
+ ;; able to import certain modules.
+ (with-directory-excursion "/tmp"
+ (setenv "HOME" (getcwd))
+ (invoke "python3" "-m" "numba.runtests" "-v" "-m"))))))))
(propagated-inputs
`(("python-llvmlite" ,python-llvmlite)
("python-numpy" ,python-numpy)
@@ -22647,13 +22560,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?
@@ -23076,13 +22982,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)))
@@ -23221,13 +23127,13 @@ project.")
(define-public python-trio
(package
(name "python-trio")
- (version "0.17.0")
+ (version "0.19.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "trio" version))
(sha256
- (base32 "0zcxirpdvvl54pbfkgw7vz984879xwvdygqfpggnam24is2zjp78"))))
+ (base32 "1qgg4zhca81dxc1nlmcr5pl1bclmvdp3niqbyslwxs65bs732pl9"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -23238,23 +23144,27 @@ project.")
(setenv "HOME" "/tmp")
#t))
(replace 'check
- (lambda _
- (invoke "pytest" "-vv" "-k"
- (string-append
- ;; This test times out.
- "not test_ki_protection_works"
- ;; Assertion errors.
- " and not test_guest_mode_ki"
- " and not test_run_in_trio_thread_ki"
- ;; These try to raise KeyboardInterrupt which does not work
- ;; in the build environment.
- " and not test_ki_self"
- " and not test_ki_wakes_us_up"
- ;; Failure in name resolution.
- " and not test_getnameinfo"
- " and not test_SocketType_resolve"
- ;; OSError: protocol not found.
- " and not test_getprotobyname")))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv" "-k"
+ (string-append
+ ;; This test times out.
+ "not test_ki_protection_works"
+ ;; Assertion errors.
+ " and not test_guest_mode_ki"
+ " and not test_run_in_trio_thread_ki"
+ " and not test_simple_cancel_scope_usage_doesnt_create_cyclic_garbage"
+ " and not test_nursery_cancel_doesnt_create_cyclic_garbage"
+ " and not test_locals_destroyed_promptly_on_cancel"
+ ;; These try to raise KeyboardInterrupt which does not work
+ ;; in the build environment.
+ " and not test_ki_self"
+ " and not test_ki_wakes_us_up"
+ ;; Failure in name resolution.
+ " and not test_getnameinfo"
+ " and not test_SocketType_resolve"
+ ;; OSError: protocol not found.
+ " and not test_getprotobyname"))))))))
(native-inputs
`(("python-astor" ,python-astor)
("python-ipython" ,python-ipython)
@@ -23265,7 +23175,8 @@ project.")
("python-pytest-cov" ,python-pytest-cov)
("python-trustme" ,python-trustme)))
(propagated-inputs
- `(("python-attrs" ,python-attrs)
+ `(("python-async-generator" ,python-async-generator)
+ ("python-attrs" ,python-attrs)
("python-idna" ,python-idna)
("python-outcome" ,python-outcome)
("python-sniffio" ,python-sniffio)
@@ -23574,14 +23485,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)))
@@ -23768,14 +23678,14 @@ for manual interpretation.")
(define-public python-distro
(package
(name "python-distro")
- (version "1.4.0")
+ (version "1.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "distro" version))
(sha256
(base32
- "0mrg75w4ap7mdzyga75yaid9n8bgb345ih5mwjp3plj6v1jxwb9n"))))
+ "09441261dd3c8b2gv15vhw1cryzg60lmgpkk07v6hpwwkyhfbxc3"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
@@ -23898,28 +23808,33 @@ for YAML and JSON.")
(define-public python-dbusmock
(package
(name "python-dbusmock")
- (version "0.18.3")
+ (version "0.24.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-dbusmock" version))
(sha256
(base32
- "0hp2kyac88nh9iv6l8hlmv7s1sa1s5f1a3wc2pmlmmxnd211fjlr"))))
+ "0kvjwn5sdp3rqcbclvxljkmk988l12dvppzfn3ldy3jxbyyn1mjn"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'patch-shell-path
- (lambda _
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
(substitute* "tests/test_code.py"
(("/bin/bash") (which "bash")))
- #t)))))
+ (substitute* "dbusmock/testcase.py"
+ (("'dbus-daemon'")
+ (string-append "'" (assoc-ref inputs "dbus")
+ "/bin/dbus-daemon'"))))))))
(native-inputs
`(;; For tests.
("dbus" ,dbus) ; for dbus-daemon
("python-nose" ,python-nose)
("which" ,which)))
+ (inputs
+ `(("dbus" ,dbus)))
(propagated-inputs
`(("python-dbus" ,python-dbus)
("python-pygobject" ,python-pygobject)))
@@ -24238,8 +24153,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)
@@ -24262,7 +24175,7 @@ the syntactic logic to configure and launch jobs in an execution environment.")
(define-public python-flit
(package
(name "python-flit")
- (version "3.2.0")
+ (version "3.3.0")
;; We fetch the sources via git because on pypi the package is split into
;; two parts: flit and flit_core; flit_core cannot be built without flit.
(source (origin
@@ -24273,7 +24186,7 @@ the syntactic logic to configure and launch jobs in an execution environment.")
(file-name (git-file-name name version))
(sha256
(base32
- "0fpqxpz5bv2xpv1akmc0c8yfss6sj09wdzxrlf3qw1lp1jhbzpyc"))))
+ "0mvyymw3zqsnip4x4ca6anr5rbx30hcmpqwrnhjwcm7s8mycd01x"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -24462,50 +24375,6 @@ memoization.")
Notation (CSON).")
(license license:expat)))
-(define-public python-asynctest
- (package
- (name "python-asynctest")
- (version "0.13.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "asynctest" version))
- (sha256
- (base32
- "1b3zsy7p84gag6q8ai2ylyrhx213qdk2h2zb6im3xn0m5n264y62"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "python" "-X" "dev" "-m" "unittest" "-v" "test")))
- (add-after 'unpack 'disable-tests
- (lambda* _
- ;; XXX: 7 tests fail out of 220. Disable them for now.
- (substitute* (list "test/test_selector.py"
- "test/test_mock.py")
- (("def test_events_watched_outside_test_are_ignored")
- "@unittest.skip('disabled by guix')
- def test_events_watched_outside_test_are_ignored")
- (("def test_awaited_from_autospec_mock.*" line)
- (string-append line " return True\n"))
- (("def test_create_autospec_on_coroutine_and_using_assert_methods.*" line)
- (string-append line " return True\n"))
- (("def test_patch_coroutine_with_multiple_scopes.*" line)
- (string-append line " return True\n"))
- (("def test_multiple_patches_on_coroutine.*" line)
- (string-append line " return True\n"))
- (("def test_patch_coroutine_only_when_running.*" line)
- (string-append line " return True\n")))
- #t)))))
- (home-page "https://github.com/Martiusweb/asynctest")
- (synopsis "Extension of unittest for testing asyncio libraries")
- (description
- "The package asynctest is built on top of the standard unittest module
-and cuts down boilerplate code when testing libraries for asyncio.")
- (license license:asl2.0)))
-
(define-public python-aionotify
(package
(name "python-aionotify")
@@ -24706,7 +24575,7 @@ but portable.")
(define-public python-watchgod
(package
(name "python-watchgod")
- (version "0.6")
+ (version "0.7")
(source
(origin
;; There are no tests in the PyPI tarball.
@@ -24716,7 +24585,7 @@ but portable.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1lqx44wkryakgpyqj3m0hsz61bqr07vc7smgzh188374hwvscp66"))))
+ (base32 "1w2xsidwp9n4giqhja0bzw7rwrh01db0kdxf2n54mv3dkx545jpq"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -24727,15 +24596,10 @@ but portable.")
(invoke "pytest" "-vv")))))))
(native-inputs
`(("python-coverage" ,python-coverage)
- ("python-docutils" ,python-docutils)
- ("python-flake8" ,python-flake8)
- ("python-isort" ,python-isort)
- ("python-pycodestyle" ,python-pycodestyle)
- ("python-pyflakes" ,python-pyflakes)
("python-pygments" ,python-pygments)
("python-pytest" ,python-pytest)
+ ("python-pytest-asyncio" ,python-pytest-asyncio)
("python-pytest-cov" ,python-pytest-cov)
- ("python-pytest-aiohttp" ,python-pytest-aiohttp)
("python-pytest-mock" ,python-pytest-mock)
("python-pytest-sugar" ,python-pytest-sugar)
("python-pytest-toolbox" ,python-pytest-toolbox)))
@@ -24947,7 +24811,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
@@ -25809,8 +25676,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)))
@@ -26218,9 +26084,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")
@@ -26337,11 +26202,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
@@ -26353,8 +26218,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")
@@ -26674,10 +26537,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.")
@@ -27135,10 +27004,9 @@ and frame grabber interface.")
(lambda* (#:key outputs #:allow-other-keys)
(wrap-program
(string-append (assoc-ref outputs "out") "/bin/screenkey")
- `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
+ `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
`("GI_TYPELIB_PATH"
- ":" prefix (,(getenv "GI_TYPELIB_PATH"))))
- #t)))))
+ ":" prefix (,(getenv "GI_TYPELIB_PATH")))))))))
(inputs
`(("python-distutils-extra" ,python-distutils-extra)
("python-tokenize-rt" ,python-tokenize-rt)
@@ -27153,7 +27021,8 @@ and frame grabber interface.")
(synopsis
"Screencast tool to display pressed keys")
(description
- "A screencast tool to display your keys inspired by Screenflick.")
+ "Screenkey is a screencast tool to display your keys inspired by
+Screenflick.")
(license license:gpl3+)))
(define-public python-jinja2-cli
@@ -27533,6 +27402,56 @@ 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 packages provides an unmaintained port of sgmllib to
+Python 3. It is used to parse text files formatted in @acronym{SGML,Standard
+Generalized Mark-up Language}.")
+ (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")
@@ -27558,8 +27477,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)
@@ -27844,9 +27763,9 @@ pythonic way.")
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
- (setenv "PYTHONPATH"
+ (setenv "GUIX_PYTHONPATH"
(string-append (getcwd) "/build/lib:"
- (getenv "PYTHONPATH")))
+ (getenv "GUIX_PYTHONPATH")))
(invoke "pytest")))))))
(native-inputs
`(("python-pandas" ,python-pandas) ;; required for test-suite
@@ -28234,30 +28153,6 @@ interfaces.")
"This package is a Python module for reading Emacs Org mode files.")
(license license:bsd-3)))
-(define-public python-sgmllib3k
- (package
- (name "python-sgmllib3k")
- (version "1.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "sgmllib3k" version))
- (sha256
- (base32 "1s8jm3dgqabgf8x96931scji679qkhvczlv3qld4qxpsicfgns3q"))))
- (build-system python-build-system)
- ;; Requires a test.html input that is not supplied
- (arguments
- `(#:tests? #f))
- (home-page "https://pypi.org/project/sgmllib3k/")
- ;; Actual homepage seems to be down
- ;; (home-page "https://hg.hardcoded.net/sgmllib")
- (synopsis "Python 3 port of sgmllib")
- (description
- "This package provides an unmaintained port of sgmllib to Python 3.
-It is used to parse text files formatted in @acronym{SGML,Standard Generalized
-Mark-up Language}.")
- (license license:bsd-3)))
-
(define-public dynaconf
(package
(name "dynaconf")