summaryrefslogtreecommitdiff
path: root/gnu/packages/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r--gnu/packages/python.scm520
1 files changed, 223 insertions, 297 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 8c7c9d3c33..56176529c9 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -146,7 +146,7 @@
(define-public python-2.7
(package
(name "python2")
- (version "2.7.14")
+ (version "2.7.15")
(source
(origin
(method url-fetch)
@@ -154,7 +154,7 @@
version "/Python-" version ".tar.xz"))
(sha256
(base32
- "0rka541ys16jwzcnnvjp2v12m4cwgd2jp6wj4kj511p715pb5zvi"))
+ "0x2mvz9dp11wj7p5ccvmk9s0hzjk2fa1m462p395l4r6bfnb3n92"))
(patches (search-patches "python-2.7-search-paths.patch"
"python-2-deterministic-build-info.patch"
"python-2.7-site-prefixes.patch"
@@ -179,23 +179,7 @@
"tk")) ;tkinter; adds 50 MiB to the closure
(build-system gnu-build-system)
(arguments
- `(;; 356 tests OK.
- ;; 6 tests failed:
- ;; test_compileall test_distutils test_import test_shutil test_socket
- ;; test_subprocess
- ;; 39 tests skipped:
- ;; test_aepack test_al test_applesingle test_bsddb test_bsddb185
- ;; test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk
- ;; test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses
- ;; test_dl test_gdb test_gl test_imageop test_imgfile test_ioctl
- ;; test_kqueue test_linuxaudiodev test_macos test_macostools
- ;; test_msilib test_ossaudiodev test_scriptpackages test_smtpnet
- ;; test_socketserver test_startfile test_sunaudiodev test_timeout
- ;; test_tk test_ttk_guionly test_urllib2net test_urllibnet
- ;; test_winreg test_winsound test_zipfile64
- ;; 4 skips unexpected on linux2:
- ;; test_bsddb test_bsddb3 test_gdb test_ioctl
- #:test-target "test"
+ `(#:test-target "test"
#:configure-flags
(list "--enable-shared" ;allow embedding
"--with-system-ffi" ;build ctypes
@@ -220,11 +204,6 @@
"Lib/test/support/__init__.py"
"Lib/test/test_subprocess.py"))
(("/bin/sh") (which "sh")))
-
- ;; Use zero as the timestamp in .pyc files so that builds are
- ;; deterministic. TODO: Remove it when this variable is set in
- ;; gnu-build-system.scm.
- (setenv "SOURCE_DATE_EPOCH" "1")
#t))
(add-before 'configure 'do-not-record-configure-flags
(lambda* (#:key configure-flags #:allow-other-keys)
@@ -282,15 +261,6 @@
file))))))
(call-with-output-file "__init__.py" (const #t))
#t)))))))
- (add-before 'strip 'make-libraries-writable
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Make .so files writable so they can be stripped.
- (let ((out (assoc-ref outputs "out")))
- (for-each (lambda (file)
- (chmod file #o755))
- (find-files (string-append out "/lib")
- "\\.so"))
- #t)))
(add-after 'install 'move-tk-inter
(lambda* (#:key outputs #:allow-other-keys)
;; When Tkinter support is built move it to a separate output so
@@ -352,10 +322,10 @@ data types.")
(name "python")
(properties `((superseded . ,python-2)))))
-(define-public python-3.6
+(define-public python-3.7
(package (inherit python-2)
(name "python")
- (version "3.6.5")
+ (version "3.7.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.python.org/ftp/python/"
@@ -368,66 +338,33 @@ data types.")
(patch-flags '("-p0"))
(sha256
(base32
- "19l7inxm056jjw33zz97z0m02hsi7jnnx5kyb76abj5ml4xhad7l"))
+ "0j9mic5c9lbd2b20wka7hily7szz740wy9ilfrczxap63rnrk0h3"))
(snippet
'(begin
(for-each delete-file
- '("Lib/ctypes/test/test_structures.py" ; fails on aarch64
- "Lib/ctypes/test/test_win32.py" ; fails on aarch64
- "Lib/test/test_fcntl.py")) ; fails on aarch64
+ '("Lib/ctypes/test/test_win32.py" ; fails on aarch64
+ "Lib/test/test_fcntl.py" ; fails on aarch64
+ "Lib/test/test_posix.py")) ; fails on aarch64
#t))))
(arguments
(substitute-keyword-arguments (package-arguments python-2)
- ((#:tests? _) #t)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'patch-timestamp-for-pyc-files
- (lambda _
- ;; We set DETERMINISTIC_BUILD to only override the mtime when
- ;; building with Guix, lest we break auto-compilation in
- ;; environments.
- (setenv "DETERMINISTIC_BUILD" "1")
- (substitute* "Lib/py_compile.py"
- (("source_stats\\['mtime'\\]")
- "(1 if 'DETERMINISTIC_BUILD' in os.environ else source_stats['mtime'])"))
-
- ;; Use deterministic hashes for strings, bytes, and datetime
- ;; objects.
- (setenv "PYTHONHASHSEED" "0")
-
- ;; Reset mtime when validating bytecode header.
- (substitute* "Lib/importlib/_bootstrap_external.py"
- (("source_mtime = int\\(source_stats\\['mtime'\\]\\)")
- "source_mtime = 1"))
- #t))
- ;; These tests fail because of our change to the bytecode
- ;; validation. They fail because expected exceptions do not get
- ;; thrown. This seems to be no problem.
- (add-after 'unpack 'disable-broken-bytecode-tests
- (lambda _
- (substitute* "Lib/test/test_importlib/source/test_file_loader.py"
- (("test_bad_marshal")
- "disable_test_bad_marshal")
- (("test_no_marshal")
- "disable_test_no_marshal")
- (("test_non_code_marshal")
- "disable_test_non_code_marshal"))
- #t))
- ;; Unset DETERMINISTIC_BUILD to allow for tests that check that
- ;; stale pyc files are rebuilt.
- (add-before 'check 'allow-non-deterministic-compilation
- (lambda _ (unsetenv "DETERMINISTIC_BUILD") #t))
- ;; We need to rebuild all pyc files for three different
- ;; optimization levels to replace all files that were not built
- ;; deterministically.
-
- ;; FIXME: Without this phase we have close to 2000 files that
+ `(modify-phases ,phases
+ ;; Unset SOURCE_DATE_EPOCH while running the test-suite and set it
+ ;; again afterwards. See <https://bugs.python.org/issue34022>.
+ (add-before 'check 'unset-SOURCE_DATE_EPOCH
+ (lambda _ (unsetenv "SOURCE_DATE_EPOCH") #t))
+ (add-after 'check 'reset-SOURCE_DATE_EPOCH
+ (lambda _ (setenv "SOURCE_DATE_EPOCH" "1") #t))
+ ;; FIXME: Without this phase we have close to 400 files that
;; differ across different builds of this package. With this phase
- ;; there are about 500 files left that differ.
- (add-after 'install 'rebuild-bytecode
+ ;; there are 44 files left that differ.
+ (add-after 'remove-tests 'rebuild-bytecode
(lambda* (#:key outputs #:allow-other-keys)
- (setenv "DETERMINISTIC_BUILD" "1")
(let ((out (assoc-ref outputs "out")))
+ ;; Disable hash randomization to ensure the generated .pycs
+ ;; are reproducible.
+ (setenv "PYTHONHASHSEED" "0")
(for-each
(lambda (opt)
(format #t "Compiling with optimization level: ~a\n"
@@ -439,8 +376,7 @@ data types.")
"-m" "compileall"
"-f" ; force rebuild
;; Don't build lib2to3, because it's Python 2 code.
- ;; Also don't build obviously broken test code.
- "-x" "(lib2to3|test/bad.*)"
+ "-x" "lib2to3/.*"
,file)))
(find-files out "\\.py$")))
(list '() '("-O") '("-OO")))
@@ -453,7 +389,7 @@ data types.")
"/site-packages"))))))))
;; Current 3.x version.
-(define-public python-3 python-3.6)
+(define-public python-3 python-3.7)
;; Current major version.
(define-public python python-3)
@@ -682,18 +618,24 @@ by @code{binstar}, @code{binstar-build} and @code{chalmers}.")
(define-public python-babel
(package
(name "python-babel")
- (version "2.3.4")
+ (version "2.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Babel" version))
(sha256
(base32
- "0x98qqqw35xllpcama013a9788ly84z8dm1w2wwfpxh2710c8df5"))))
+ "08rxmbx2s4irp0w0gmn498vns5xy0fagm0fg33xa772jiks51flc"))))
(build-system python-build-system)
+ (native-inputs
+ `(("python-freezegun" ,python-freezegun)
+ ("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-pytz" ,python-pytz)))
- (arguments `(#:tests? #f)) ; no test target
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ (invoke "pytest" "-vv"))))))
(home-page "http://babel.pocoo.org/")
(synopsis
"Tools for internationalizing Python applications")
@@ -909,14 +851,14 @@ API for locking files.")
(define-public python-setuptools
(package
(name "python-setuptools")
- (version "31.0.0")
+ (version "40.0.0")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "setuptools" version))
+ (uri (pypi-uri "setuptools" version ".zip"))
(sha256
(base32
- "0ypybh4hx3bv4vhg2dc74xpj1g56ggnaffm87k4abhwjwq6wq608"))
+ "0pq116lr14gnc62v76nk0npkm6krb2mpp7p9ab369zgv4n7dnah1"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1212,13 +1154,13 @@ human-friendly syntax.")
(define-public python-pandas
(package
(name "python-pandas")
- (version "0.23.1")
+ (version "0.23.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pandas" version))
(sha256
- (base32 "142nvwb01r2wv42y2cz40bx33hd8ffh6s6gynapg859fmzr2mdah"))))
+ (base32 "1x54pd7hr3y7qahx6b5bf2wzj54xvl8r3s1h4pl254pnmi3wl92v"))))
(build-system python-build-system)
(arguments
`(#:modules ((guix build utils)
@@ -1233,18 +1175,23 @@ human-friendly syntax.")
(getcwd) "/build/"
(car (scandir "build"
(cut string-prefix? "lib." <>))))))
+ ;; Disable the "strict data files" option which causes
+ ;; the build to error out if required data files are not
+ ;; available (as is the case with PyPI archives).
+ (substitute* "setup.cfg"
+ (("addopts = --strict-data-files") "addopts = "))
(with-directory-excursion build-directory
;; Delete tests that require "moto" which is not yet in Guix.
(for-each delete-file
'("pandas/tests/io/conftest.py"
"pandas/tests/io/json/test_compression.py"
+ "pandas/tests/io/parser/test_network.py"
"pandas/tests/io/test_excel.py"
"pandas/tests/io/test_parquet.py"))
- (invoke "pytest" "-v" "pandas" "-k"
- (string-append
- "not network and not disabled"
- ;; XXX: Due to the deleted tests above.
- " and not test_read_s3_jsonl")))))))))
+ (invoke "pytest" "-vv" "pandas" "--skip-slow"
+ "--skip-network" "-k"
+ ;; XXX: Due to the deleted tests above.
+ "not test_read_s3_jsonl"))))))))
(propagated-inputs
`(("python-numpy" ,python-numpy)
("python-pytz" ,python-pytz)
@@ -1751,14 +1698,14 @@ matching them against a list of media-ranges.")
(define-public python-py
(package
(name "python-py")
- (version "1.5.3")
+ (version "1.5.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "py" version))
(sha256
(base32
- "10gq2lckvgwlk9w6yzijhzkarx44hsaknd0ypa08wlnpjnsgmj99"))))
+ "1xxvwfn82457djf55f5n2c94699rfqnk43br8fif2r2q8gvrmm9z"))))
(build-system python-build-system)
(arguments
;; FIXME: "ImportError: 'test' module incorrectly imported from
@@ -1766,7 +1713,9 @@ matching them against a list of media-ranges.")
;; Expected '/tmp/guix-build-python-py-1.4.31.drv-0/py-1.4.31/py'.
;; Is this module globally installed?"
'(#:tests? #f))
- (home-page "https://pylib.readthedocs.io/")
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://github.com/pytest-dev/py")
(synopsis "Python library for parsing, I/O, instrospection, and logging")
(description
"Py is a Python library for file name parsing, .ini file parsing, I/O,
@@ -2256,7 +2205,7 @@ object.")
(define-public python-markupsafe
(package
(name "python-markupsafe")
- (version "0.23")
+ (version "1.0")
(source
(origin
(method url-fetch)
@@ -2265,7 +2214,7 @@ object.")
version ".tar.gz"))
(sha256
(base32
- "1hvip33wva3fnmvfp9x5klqri7hpl1hkgqmjbss18nmrb7zimv54"))))
+ "0rdn1s8x9ni7ss8rfiacj7x1085lx8mh2zdwqslnw8xc3l4nkgm6"))))
(build-system python-build-system)
(home-page "https://github.com/mitsuhiko/markupsafe")
(synopsis "XML/HTML/XHTML markup safe string implementation for Python")
@@ -2280,14 +2229,14 @@ for Python.")
(define-public python-jinja2
(package
(name "python-jinja2")
- (version "2.9.6")
+ (version "2.10")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Jinja2" version))
(sha256
(base32
- "1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx"))))
+ "190l36hfw3wb2n3n68yacjabxyb1pnxwn7vjx96cmjj002xy2jzq"))))
(build-system python-build-system)
(propagated-inputs
`(("python-markupsafe" ,python-markupsafe)))
@@ -2443,26 +2392,17 @@ reStructuredText.")
(define-public python-sphinxcontrib-websupport
(package
(name "python-sphinxcontrib-websupport")
- (version "1.0.1")
+ (version "1.1.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "sphinxcontrib-websupport" version))
(sha256
(base32
- "1f9f0wjpi9nhikbyaz6d19s7qvzdf1nq2g5dsh640fma4q9rd1bs"))))
+ "1ff3ix76xi1y6m99qxhaq5161ix9swwzydilvdya07mgbcvpzr4x"))))
(build-system python-build-system)
- (propagated-inputs
- `(("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest)
- ("python-xapian-bindings" ,python-xapian-bindings)))
- ;; Needed for running the test suite
- (native-inputs
- `(("python-six" ,python-six)
- ("python-jinja2" ,python-jinja2)
- ("python-docutils" ,python-docutils)
- ("python-sphinx" ,python-sphinx)
- ("python-sqlalchemy" ,python-sqlalchemy)
- ("python-whoosh" ,python-whoosh)))
+ (arguments
+ ;; FIXME: Tests depend on Sphinx, which depends on this.
+ `(#:tests? #f))
(home-page "http://sphinx-doc.org/")
(synopsis "Sphinx API for web applications")
(description "This package provides a Python API to easily integrate
@@ -2470,17 +2410,20 @@ Sphinx documentation into your web application. It provides tools to
integrate Sphinx documents in web templates and to handle searches.")
(license license:bsd-3)))
+(define-public python2-sphinxcontrib-websupport
+ (package-with-python2 python-sphinxcontrib-websupport))
+
(define-public python-sphinx
(package
(name "python-sphinx")
- (version "1.5.1")
+ (version "1.7.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Sphinx" version))
(sha256
(base32
- "1i8p9idnli4gr0y4x67yakbdk5w6a0xjzhrg6bg51y9d1fi7fslf"))))
+ "0pkkbfj7cl157q550gcs45am5y78ps0h7q6455d64s1zmw01jlvi"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -2489,7 +2432,15 @@ integrate Sphinx documents in web templates and to handle searches.")
(lambda _
;; Requires Internet access.
(delete-file "tests/test_build_linkcheck.py")
- (zero? (system* "make" "test")))))))
+ (substitute* "tests/test_build_latex.py"
+ (("@pytest.mark.sphinx\\('latex', testroot='images'\\)")
+ "@pytest.mark.skip()"))
+ (when (which "python")
+ ;; XXX: These tests are broken when using Python2:
+ ;; <https://github.com/sphinx-doc/sphinx/issues/4710>.
+ (delete-file "tests/test_api_translator.py")
+ (delete-file "tests/test_setup_command.py"))
+ (invoke "make" "test"))))))
(propagated-inputs
`(("python-imagesize" ,python-imagesize)
("python-sphinx-alabaster-theme"
@@ -2498,14 +2449,18 @@ integrate Sphinx documents in web templates and to handle searches.")
("python-snowballstemmer" ,python-snowballstemmer)
("python-docutils" ,python-docutils)
("python-jinja2" ,python-jinja2)
+ ("python-packaging" ,python-packaging)
("python-pygments" ,python-pygments)
("python-requests" ,python-requests)
- ("python-six" ,python-six)))
+ ("python-six" ,python-six)
+ ("python-sphinxcontrib-websupport" ,python-sphinxcontrib-websupport)))
(native-inputs
`(("graphviz" ,graphviz)
+ ("imagemagick" ,imagemagick) ;for "convert"
("python-html5lib" ,python-html5lib)
("python-mock" ,python-mock)
- ("python-nose" ,python-nose)))
+ ("python-nose" ,python-nose)
+ ("python-pytest" ,python-pytest)))
(home-page "http://sphinx-doc.org/")
(synopsis "Python documentation generator")
(description "Sphinx is a tool that makes it easy to create documentation
@@ -2514,62 +2469,6 @@ sources.")
(license license:bsd-3)
(properties `((python2-variant . ,(delay python2-sphinx))))))
-(define-public python-sphinx-1.6
- (package (inherit python-sphinx)
- (name "python-sphinx")
- (version "1.6.4")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "Sphinx" version))
- (sha256
- (base32
- "0gjakw9fv5pwqb5yyclxycs36sapxizk1vx6mkcdizmzgzcfy0gi"))))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- ;; Requires Internet access.
- (delete-file "tests/test_build_linkcheck.py")
- (substitute* "tests/test_build_latex.py"
- (("@pytest.mark.sphinx\\('latex', testroot='images'\\)")
- "@pytest.mark.skip()"))
- (zero? (system* "make" "test")))))))
- (propagated-inputs
- `(("python-sphinxcontrib-websupport" ,python-sphinxcontrib-websupport)
- ,@(package-propagated-inputs python-sphinx)))
- (native-inputs
- `(("python-pytest" ,python-pytest)
- ("imagemagick" ,imagemagick) ; for "convert"
- ,@(package-native-inputs python-sphinx)))
- (properties `((python2-variant . ,(delay python2-sphinx-1.6))))))
-
-(define-public python2-sphinx-1.6
- (let ((base (package-with-python2 (strip-python2-variant python-sphinx-1.6))))
- (package
- (inherit base)
- (propagated-inputs
- `(("python2-typing" ,python2-typing)
- ,@(package-propagated-inputs base)))
- (native-inputs `(("python2-enum34" ,python2-enum34)
- ,@(package-native-inputs base))))))
-
-(define-public python-sphinx-1.5.3
- (package
- (inherit python-sphinx)
- (name "python-sphinx")
- (version "1.5.3")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "Sphinx" version))
- (sha256
- (base32
- "0kw1axswbvaavr8ggyf4qr6hnisnrzlbkkcdada69vk1x9xjassg"))))
- (native-inputs
- `(("python-pytest" ,python-pytest)
- ,@(package-native-inputs python-sphinx)))))
-
(define-public python2-sphinx
(let ((base (package-with-python2 (strip-python2-variant python-sphinx))))
(package
@@ -2578,6 +2477,7 @@ sources.")
("python2-enum34" ,python2-enum34)
,@(package-native-inputs base)))
(propagated-inputs `(("python2-pytz" ,python2-pytz)
+ ("python2-typing" ,python2-typing)
,@(package-propagated-inputs base))))))
(define-public python-sphinx-gallery
@@ -2865,7 +2765,11 @@ and is very extensible.")
'())
(replace 'check
- (lambda _ (invoke "python" "runtests.py" "-vv"))))))
+ (lambda _
+ ;; The "with_outer_raising" test fails with Python 3.7. See
+ ;; https://github.com/cython/cython/issues/2454
+ (delete-file "tests/run/generators_py.py")
+ (invoke "python" "runtests.py" "-vv"))))))
(home-page "http://cython.org/")
(synopsis "C extensions for Python")
(description "Cython is an optimising static compiler for both the Python
@@ -2909,7 +2813,7 @@ between language specification and implementation aspects.")
(define-public python-numpy
(package
(name "python-numpy")
- (version "1.14.5")
+ (version "1.15.1")
(source
(origin
(method url-fetch)
@@ -2918,14 +2822,14 @@ between language specification and implementation aspects.")
version "/numpy-" version ".tar.gz"))
(sha256
(base32
- "0admjpkih63lm19zbbilq8ck4f6ny5kqi03dk3m6b2mnixsh4jhv"))))
+ "1yp75fkqk7abq3mrbqdf0pdmr2phkr2mnng0dbqqvvrmv7jwq71w"))))
(build-system python-build-system)
(inputs
`(("openblas" ,openblas)
("lapack" ,lapack)))
(native-inputs
`(("python-cython" ,python-cython)
- ("python-nose" ,python-nose)
+ ("python-pytest" ,python-pytest)
("gfortran" ,gfortran)))
(arguments
`(#:phases
@@ -2970,9 +2874,12 @@ include_dirs = ~a/include
(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"
- (zero? (system* "python" "-c"
- "import numpy; numpy.test(verbose=2)"))))))))
+ (invoke "python" "-c"
+ "import numpy; numpy.test(verbose=2)")))))))
(home-page "http://www.numpy.org/")
(synopsis "Fundamental package for scientific computing with Python")
(description "NumPy is the fundamental package for scientific computing
@@ -3340,25 +3247,14 @@ that client code uses to construct the grammar directly in Python code.")
(define-public python-numpydoc
(package
(name "python-numpydoc")
- (version "0.5")
+ (version "0.8.0")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/n/numpydoc/numpydoc-"
- version ".tar.gz"))
+ (uri (pypi-uri "numpydoc" version))
(sha256
(base32
- "0d4dnifaxkll50jx6czj05y8cb4ny60njd2wz299sj2jxfy51w4k"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Drop a test requiring matplotlib, which we cannot add as an
- ;; input since it would create a circular dependency: Extend the
- ;; test for Python 3, where it is already dropped, to Python 2.
- (substitute* "numpydoc/tests/test_plot_directive.py"
- (("3") "2"))
- #t))))
+ "1zazxg3m8j4fksv3f7v7vpf4bj9qb1vj3r326am0vdip141vzx31"))))
(build-system python-build-system)
(propagated-inputs
`(("python-sphinx" ,python-sphinx)))
@@ -3578,7 +3474,7 @@ toolkits.")
(native-inputs
`(("python-matplotlib" ,python-matplotlib)
("python-colorspacious" ,python-colorspacious)
- ("python-sphinx" ,python-sphinx-1.6)
+ ("python-sphinx" ,python-sphinx)
("python-sphinx-gallery" ,python-sphinx-gallery)
("python-numpydoc" ,python-numpydoc)
("python-ipython" ,python-ipython)
@@ -3865,14 +3761,14 @@ as the original project seems to have been abandoned circa 2007.")
(define-public python-pycodestyle
(package
(name "python-pycodestyle")
- (version "2.3.1")
+ (version "2.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pycodestyle" version))
(sha256
(base32
- "0rk78b66p57ala26mdldl9lafr48blv5s659sah9q50qnfjmc8k8"))))
+ "0fhy4vnlgpjq4qd1wdnl6pvdw7rah0ypmn8c9mkhz8clsndskz6b"))))
(build-system python-build-system)
(home-page "https://pycodestyle.readthedocs.io/")
(synopsis "Python style guide checker")
@@ -4025,7 +3921,7 @@ services for your Python modules and applications.")
(define-public python-olefile
(package
(name "python-olefile")
- (version "0.44")
+ (version "0.45.1")
(source
(origin
(method url-fetch)
@@ -4034,7 +3930,7 @@ services for your Python modules and applications.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1wmxbrhyqjry2000zx0zdhqdqxhgi06nz7sbzjlh222q2zjv1gpj"))))
+ "18ai19zwagm6nli14k8bii31ipbab2rp7plrvsm6gmfql551a8ai"))))
(build-system python-build-system)
(home-page
"https://www.decalage.info/python/olefileio")
@@ -4051,19 +3947,17 @@ the OleFileIO module from PIL, the Python Image Library.")
(define-public python-pillow
(package
(name "python-pillow")
- (version "4.3.0")
+ (version "5.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Pillow" version))
(sha256
(base32
- "09xmn7rl6840sli2iz1k3fgxfgmri2nqz6vkinmb9mgg8ifp2z59"))
- (patch-flags '("-p1" "--binary"))
- (patches (search-patches "python-pillow-fix-failing-tests.patch"))))
+ "1ary9mj2ddllq3lkxgn6aac7qxqiwbcg2pacrl94py58ql9x9czq"))))
(build-system python-build-system)
(native-inputs
- `(("python-nose" ,python-nose)))
+ `(("python-pytest" ,python-pytest)))
(inputs
`(("freetype" ,freetype)
("lcms" ,lcms)
@@ -4084,9 +3978,8 @@ the OleFileIO module from PIL, the Python Image Library.")
;; Make installed package available for running the
;; tests
(add-installed-pythonpath inputs outputs)
- (and (zero? (system* "python" "selftest.py"
- "--installed"))
- (zero? (system* "python" "test-installed.py"))))))
+ (invoke "python" "selftest.py" "--installed")
+ (invoke "python" "-m" "pytest" "-vv"))))
(delete 'check))))
(home-page "https://pypi.python.org/pypi/Pillow")
(synopsis "Fork of the Python Imaging Library")
@@ -4107,14 +4000,14 @@ a general image processing tool.")
(define-public python-pycparser
(package
(name "python-pycparser")
- (version "2.17")
+ (version "2.18")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pycparser" version))
(sha256
(base32
- "1dkkjri0miidqb1zcqhqljfa34fcy9k5akasgwsv6k622zlk3b0a"))))
+ "09mjyw82ibqzl449g7swy8bfxnfpmas0815d2rkdjlcqw81wma4r"))))
(outputs '("out" "doc"))
(build-system python-build-system)
(native-inputs
@@ -4151,14 +4044,14 @@ a front-end for C compilers or analysis tools.")
(define-public python-xcffib
(package
(name "python-xcffib")
- (version "0.5.1")
+ (version "0.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xcffib" version))
(sha256
(base32
- "09gbnmr5vn58mm8xi3fmd7fz6743cks6c46dphnxzwax6zsxmy60"))))
+ "04k91yxyb3pgc5lvxmivh8w71yjrap2g57yk3s73x4rm4nvjq51n"))))
(build-system python-build-system)
(inputs
`(("libxcb" ,libxcb)))
@@ -4197,17 +4090,14 @@ support for Python 3 and PyPy. It is based on cffi.")
(define-public python-cairocffi
(package
(name "python-cairocffi")
- (version "0.8.0")
+ (version "0.9.0")
(source
(origin
(method url-fetch)
- ;; The archive on pypi is missing the 'utils' directory!
- (uri (string-append "https://github.com/Kozea/cairocffi/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (pypi-uri "cairocffi" version))
(sha256
(base32
- "1rk2dvy3fxrga6bvvxc2fi5lbaynm5h4a0w0aaxyn3bc77rszjg9"))
+ "0dq3k4zhqd8cwsf3nyjqvjqm8wkvrjn1wjf44rl3v0h8kqx6qf0m"))
(patches (search-patches "python-cairocffi-dlopen-path.patch"))))
(build-system python-build-system)
(outputs '("out" "doc"))
@@ -4220,14 +4110,14 @@ support for Python 3 and PyPy. It is based on cffi.")
(native-inputs
`(("pkg-config" ,pkg-config)
("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-runner" ,python-pytest-runner)
("python-sphinx" ,python-sphinx)
("python-docutils" ,python-docutils)))
(propagated-inputs
`(("python-xcffib" ,python-xcffib))) ; used at run time
(arguments
- `(;; FIXME: Tests cannot find 'libcairo.so.2'.
- #:tests? #t
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -4493,13 +4383,13 @@ child application and control it as if a human were typing commands.")
(define-public python-setuptools-scm
(package
(name "python-setuptools-scm")
- (version "1.15.6")
+ (version "3.1.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "setuptools_scm" version))
(sha256
(base32
- "0pzvfmx8s20yrgkgwfbxaspz2x1g38qv61jpm0ns91lrb22ldas9"))))
+ "0h4bglwfz8b9prqljv8z3w9rgydfyxzaj05bm1y6zs5m6shz548i"))))
(build-system python-build-system)
(home-page "https://github.com/pypa/setuptools_scm/")
(synopsis "Manage Python package versions in SCM metadata")
@@ -4952,15 +4842,15 @@ toolkit. Use it to build trees of widgets.")
(define-public python-dbus
(package
(name "python-dbus")
- (version "1.2.0")
+ (version "1.2.8")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://dbus.freedesktop.org/releases/dbus-python/dbus-python-"
- version ".tar.gz"))
+ (uri (string-append "https://dbus.freedesktop.org/releases/dbus-python/"
+ "dbus-python-" version ".tar.gz"))
(sha256
- (base32 "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71"))))
+ (base32
+ "0vvvjmiwnc9cjlks3gcdk43ap7llhlpz7cm1wbw0nc2yfsxjpwdb"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -4976,7 +4866,7 @@ toolkit. Use it to build trees of widgets.")
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
- `(("python" ,python)
+ `(("python" ,python-wrapper)
("dbus-glib" ,dbus-glib)))
(synopsis "Python bindings for D-bus")
(description "python-dbus provides bindings for libdbus, the reference
@@ -4998,14 +4888,14 @@ implementation of D-Bus.")
(define-public python-lxml
(package
(name "python-lxml")
- (version "3.8.0")
+ (version "4.2.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "lxml" version))
(sha256
(base32
- "15nvf6n285n282682qyw3wihsncb0x5amdhyi4b83bfa2nz74vvk"))))
+ "1jk336k0kw616gfhqk1wwxsjjwz0flld0n294lz8kxch610bxbz2"))))
(build-system python-build-system)
(inputs
`(("libxml2" ,libxml2)
@@ -5026,14 +4916,14 @@ libxml2 and libxslt.")
(define-public python-beautifulsoup4
(package
(name "python-beautifulsoup4")
- (version "4.5.3")
+ (version "4.6.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "beautifulsoup4" version))
(sha256
(base32
- "0glaw1vyxnbp03fni7h5496n6iib0n5iim4gax1n0ngscs9s075j"))))
+ "041dhalzjciw6qyzzq7a2k4h1yvyk76xigp35hv5ibnn448ydy4h"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -5530,14 +5420,14 @@ so it might be a tiny bit slower.")
(define-public python-waf
(package
(name "python-waf")
- (version "1.9.8")
+ (version "2.0.10")
(source (origin
(method url-fetch)
(uri (string-append "https://waf.io/"
"waf-" version ".tar.bz2"))
(sha256
(base32
- "0wl4cnmp06lfxqjxaan58bqxn27smhydz0sg5prrfbl3bsw4gv6q"))))
+ "1v832jljl5wwqyimz40zgksf5ws1w3d2niz3qxamyp5dnyvzjl35"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -5621,14 +5511,14 @@ PEP 8.")
(define-public python-pyflakes
(package
(name "python-pyflakes")
- (version "1.5.0")
+ (version "2.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyflakes" version))
(sha256
(base32
- "1x1pcca4a24k4pw8x1c77sgi58cg1wl2k38mp8a25k608pzls3da"))))
+ "0jba28czyvimdc72llms3f17swp3i8jdcabf5w0j00adfbn64xls"))))
(build-system python-build-system)
(home-page
"https://github.com/pyflakes/pyflakes")
@@ -5726,33 +5616,44 @@ complexity of Python source code.")
(define-public python-flake8
(package
(name "python-flake8")
- (version "3.4.1")
+ (version "3.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "flake8" version))
(sha256
(base32
- "1n0i38592vy3q0x2a9bf8z6rhhn04i30wsn5i5zzcj7qkxvl8062"))))
+ "184b33grvvjmiwlv9kyd7yng9qv5ld24154j70z332xxg9gjclvj"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
+ ;; Two errors don't seem to have assigned codes.
+ (add-after 'unpack 'delete-broken-test
+ (lambda _ (delete-file "tests/unit/test_pyflakes_codes.py") #t))
+ (add-after 'unpack 'fix-problem-with-pycodestyle
+ (lambda _
+ ;; See https://gitlab.com/pycqa/flake8/merge_requests/230
+ ;; This should no longer be needed with the next release.
+ (substitute* "setup.py"
+ (("PEP8_PLUGIN\\('break_around_binary_operator'\\),")
+ "PEP8_PLUGIN('break_after_binary_operator'),\
+PEP8_PLUGIN('break_before_binary_operator'),"))
+ #t))
(delete 'check)
(add-after 'install 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (zero? (system* "pytest" "-v")))))))
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-v")
+ #t)))))
(propagated-inputs
- `(("python-pycodestyle" ,python-pycodestyle)
- ("python-pyflakes" ,python-pyflakes)
- ;; flake8 depends on a newer setuptools than provided by python.
- ("python-setuptools" ,python-setuptools)
- ("python-mccabe" ,python-mccabe)))
+ `(("python-pycodestyle" ,python-pycodestyle)
+ ("python-pyflakes" ,python-pyflakes)
+ ("python-mccabe" ,python-mccabe)))
(native-inputs
- `(("python-mock" ,python-mock) ; TODO: only required for < 3.3
- ("python-pytest" ,python-pytest-bootstrap)
- ("python-pytest-runner" ,python-pytest-runner)))
+ `(("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest-bootstrap)
+ ("python-pytest-runner" ,python-pytest-runner)))
(home-page "https://gitlab.com/pycqa/flake8")
(synopsis
"The modular source code checker: pep8, pyflakes and co")
@@ -6003,28 +5904,18 @@ add functionality and customization to your projects with their own plugins.")
(define-public python-fonttools
(package
(name "python-fonttools")
- (version "3.15.1")
+ (version "3.28.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "fonttools" version ".zip"))
(sha256
(base32
- "1hhj97izwliy0vybmza72d90l5d4mcn50y8akq7kyccfl82vdx4d"))))
+ "0vsvjhidpb5kywpjgz1j3fywzkddxkb0afqai18qa3h6lqjyxwpb"))))
(build-system python-build-system)
- (arguments
- '(#:test-target "check"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-setuppy
- ;; Remove the undocumented "extra_path" argument, which adds an
- ;; intervening directories between site-packages and the package
- ;; directory.
- (lambda _
- (substitute* "setup.py"
- (("^[ \t]*extra_path *= *'FontTools',") ""))
- #t)))))
(native-inputs
- `(("unzip" ,unzip)))
+ `(("unzip" ,unzip)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)))
(home-page "https://github.com/behdad/fonttools")
(synopsis "Tools to manipulate font files")
(description
@@ -6033,9 +5924,7 @@ supports reading and writing of TrueType/OpenType fonts, reading and writing
of AFM files, reading (and partially writing) of PS Type 1 fonts. The package
also contains a tool called “TTX” which converts TrueType/OpenType fonts to and
from an XML-based format.")
- (license (license:non-copyleft
- "file://LICENSE.txt"
- "See LICENSE.txt in the distribution."))))
+ (license license:expat)))
(define-public python2-fonttools
(package-with-python2 python-fonttools))
@@ -6407,13 +6296,13 @@ implementations of ASN.1-based codecs and protocols.")
(define-public python-ipaddress
(package
(name "python-ipaddress")
- (version "1.0.19")
+ (version "1.0.22")
(source (origin
(method url-fetch)
(uri (pypi-uri "ipaddress" version))
(sha256
(base32
- "10agaa1cys1bk1ycpl2w8lky9vjx8h1xh1z29mg0niqx0638c390"))))
+ "0b570bm6xqpjwqis15pvdy6lyvvzfndjvkynilcddjj5x98wfimi"))))
(build-system python-build-system)
(home-page "https://github.com/phihag/ipaddress")
(synopsis "IP address manipulation library")
@@ -6459,14 +6348,14 @@ versions of Python.")
(define-public python-idna
(package
(name "python-idna")
- (version "2.6")
+ (version "2.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "idna" version))
(sha256
(base32
- "13qaab6d0s15gknz8v3zbcfmbj6v86hn9pjxgkdf62ch13imssic"))))
+ "05jam7d31767dr12x0rbvvs8lxnpb1mhdb2zdlfxgh83z6k3hjk8"))))
(build-system python-build-system)
(home-page "https://github.com/kjd/idna")
(synopsis "Internationalized domain names in applications")
@@ -7773,15 +7662,17 @@ library as well as on the command line.")
(define-public python-pluggy
(package
(name "python-pluggy")
- (version "0.6.0")
+ (version "0.7.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pluggy" version))
(sha256
(base32
- "1zqckndfn85l1cd8pndw212zg1bq9fkg1nnj32kp2mppppsyg2kz"))))
+ "1qbn70mksmr03hac6jgp6fiqc4l7859z8dchx2x950vhlij87swm"))))
(build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)))
(synopsis "Plugin and hook calling mechanism for Python")
(description "Pluggy is an extraction of the plugin manager as used by
Pytest but stripped of Pytest specific details.")
@@ -8489,6 +8380,15 @@ ambiguities (forward vs. backward slashes, etc.).
@end enumerate")
(license license:expat)))
+(define-public python2-pathlib2-bootstrap
+ (hidden-package
+ (package
+ (inherit python2-pathlib2)
+ (name "python2-pathlib2-bootstrap")
+ (propagated-inputs
+ `(("python2-scandir" ,python2-scandir)
+ ("python2-six" ,python2-six-bootstrap))))))
+
(define-public python-jellyfish
(package
(name "python-jellyfish")
@@ -8970,13 +8870,13 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc).
(define-public python-greenlet
(package
(name "python-greenlet")
- (version "0.4.11")
+ (version "0.4.14")
(source (origin
(method url-fetch)
(uri (pypi-uri "greenlet" version))
(sha256
(base32
- "1xhik26j4f3kc4qw9xmj0c567rb5h1zryb4ijwqnqwwjvfhbv59h"))))
+ "1bsij3bwdhz2chq4ar2v6jqbh69yc7k9ymh41jd8vrdd2n52dk7i"))))
(build-system python-build-system)
(home-page "https://greenlet.readthedocs.io/")
(synopsis "Lightweight in-process concurrent programming")
@@ -10444,21 +10344,17 @@ useful as a validator for JSON data.")
(define-public python-imagesize
(package
(name "python-imagesize")
- (version "0.7.1")
+ (version "1.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "imagesize" version))
(sha256
(base32
- "0qk07k0z4241lkzzjji7z4da04pcvg7bfc4xz1934zlqhwmwdcha"))))
+ "05b3p62r7rbcvvbk5vknr3bhcq9b2airysn6ric534mng136wcjv"))))
(build-system python-build-system)
- (arguments
- '(;; Test files are not distributed on PyPi:
- ;; https://github.com/shibukawa/imagesize_py/issues/7
- #:tests? #f))
(home-page "https://github.com/shibukawa/imagesize_py")
- (synopsis "Gets image size of files in variaous formats in Python")
+ (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.")
@@ -10894,6 +10790,32 @@ projects.")
(define-public python2-incremental
(package-with-python2 python-incremental))
+(define-public python-invoke
+ (package
+ (name "python-invoke")
+ (home-page "http://www.pyinvoke.org/")
+ (version "1.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "invoke" version))
+ (sha256
+ (base32
+ "0aiy1xvk1f91246zxd1zqrm679vdvd10h843a2na41cqr3cflpi6"))))
+ (build-system python-build-system)
+ (arguments
+ ;; XXX: Requires many dependencies that are not yet in Guix.
+ `(#:tests? #f))
+ (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.")
+ (license license:bsd-3)))
+
+(define-public python2-invoke
+ (package-with-python2 python-invoke))
+
(define-public python-automat
(package
(name "python-automat")
@@ -11510,13 +11432,13 @@ It supports both normal and Unicode strings.")
(define-public python-scandir
(package
(name "python-scandir")
- (version "1.7")
+ (version "1.9.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scandir" version))
(sha256
- (base32 "0gbnhjzg42rj87ljv9kb648rfxph69ly3c8r9841dxy4d7l5pmdj"))))
+ (base32 "0r3hvf1a9jm1rkqgx40gxkmccknkaiqjavs8lccgq9s8khh5x5s4"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -11636,15 +11558,19 @@ several utilities, as well as an API for building localization tools.")
(define-public python-packaging
(package
(name "python-packaging")
- (version "16.8")
+ (version "17.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "packaging" version))
(sha256
(base32
- "17k1xbjshackwvbsnxqixbph8rbqhz4bf4g3al5xyzhavxgq6l2x"))))
+ "0nrpayk8kij1zm9sjnk38ldz3a6705ggvw8ljylqbrb4vmqbf6gh"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ (invoke "py.test" "-vv"))))))
(native-inputs
`(("python-pretend" ,python-pretend)
("python-pytest" ,python-pytest)))
@@ -13426,14 +13352,14 @@ file system events on Linux.")
(define-public python-more-itertools
(package
(name "python-more-itertools")
- (version "4.1.0")
+ (version "4.3.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "more-itertools" version))
(sha256
(base32
- "0i3ch700g5fyjp692gprlnzbysl8w0sa2vijbp3s40drvk67xkn9"))))
+ "17h3na0rdh8xq30w4b9pizgkdxmm51896bxw600x84jflg9vaxn4"))))
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six-bootstrap)))