aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r--gnu/packages/python.scm514
1 files changed, 311 insertions, 203 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index f0eb376217..8c239c3f11 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -26,7 +26,7 @@
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
@@ -138,7 +138,7 @@
(define-public python-2.7
(package
(name "python")
- (version "2.7.13")
+ (version "2.7.14")
(source
(origin
(method url-fetch)
@@ -146,12 +146,12 @@
version "/Python-" version ".tar.xz"))
(sha256
(base32
- "0cgpk3zk0fgpji59pb4zy9nzljr70qzgv1vpz5hq5xw2d2c47m9m"))
+ "0rka541ys16jwzcnnvjp2v12m4cwgd2jp6wj4kj511p715pb5zvi"))
(patches (search-patches "python-2.7-search-paths.patch"
"python-2-deterministic-build-info.patch"
"python-2.7-site-prefixes.patch"
"python-2.7-source-date-epoch.patch"
- "python-2.7-getentropy-on-old-kernels.patch"))
+ "python-2.7-adjust-tests.patch"))
(modules '((guix build utils)))
;; suboptimal to delete failing tests here, but if we delete them in the
;; arguments then we need to make sure to strip out that phase when it
@@ -209,6 +209,7 @@
'("Lib/subprocess.py"
"Lib/popen2.py"
"Lib/distutils/tests/test_spawn.py"
+ "Lib/test/support/__init__.py"
"Lib/test/test_subprocess.py"))
(("/bin/sh") (which "sh")))
@@ -334,28 +335,28 @@ data types.")
;; Current 2.x version.
(define-public python-2 python-2.7)
-(define-public python-3.5
+(define-public python-3.6
(package (inherit python-2)
- (version "3.5.3")
+ (version "3.6.3")
(source (origin
(method url-fetch)
(uri (string-append "https://www.python.org/ftp/python/"
version "/Python-" version ".tar.xz"))
(patches (search-patches
"python-fix-tests.patch"
- "python-3.5-fix-tests.patch"
- "python-3.5-getentropy-on-old-kernels.patch"
+ "python-3-fix-tests.patch"
"python-3-deterministic-build-info.patch"
"python-3-search-paths.patch"))
(patch-flags '("-p0"))
(sha256
(base32
- "1c6v1n9nz4mlx9mw1125fxpmbrgniqdbbx9hnqx44maqazb2mzpf"))
+ "1nl1raaagr4car787a2hmjv2dw6gqny53xfd6wisbgx4r5kxk9yd"))
(snippet
'(begin
(for-each delete-file
- '("Lib/ctypes/test/test_win32.py" ; fails on aarch64
- "Lib/test/test_fcntl.py"))
+ '("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
#t))))
(arguments (substitute-keyword-arguments (package-arguments python-2)
((#:tests? _) #t)))
@@ -367,7 +368,7 @@ data types.")
"/site-packages"))))))))
;; Current 3.x version.
-(define-public python-3 python-3.5)
+(define-public python-3 python-3.6)
;; Current major version.
(define-public python python-3)
@@ -1004,18 +1005,24 @@ from the Python interpreter, or as a small part of a larger application.")
(define-public python-six
(package
(name "python-six")
- (version "1.10.0")
+ (version "1.11.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "six" version))
(sha256
(base32
- "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh"))))
+ "1scqzwc51c875z23phj48gircqjgnn3af8zy2izjwmnlxrxsgs3h"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (zero? (system* "py.test" "-v")))))))
(native-inputs
`(("python-py" ,python-py)
- ("python-pytest" ,python-pytest)))
+ ("python-pytest" ,python-pytest-bootstrap)))
(home-page "https://pypi.python.org/pypi/six/")
(synopsis "Python 2 and 3 compatibility utilities")
(description
@@ -1059,24 +1066,48 @@ human-friendly syntax.")
(define-public python-pandas
(package
(name "python-pandas")
- (version "0.19.2")
+ (version "0.22.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pandas" version))
(sha256
- (base32 "0540cnbwy2hc4hv2sxfs8i47xi91qzvzxfn80dl785ibiicly3vg"))
- (patches
- (search-patches "python-pandas-skip-failing-tests.patch"))))
+ (base32 "0v0fi2i10kwnmlpsl6f1fgajcpx3q6766qf6xqi5kw3ivn8l1aa4"))))
(build-system python-build-system)
+ (arguments
+ `(#:modules ((guix build utils)
+ (guix build python-build-system)
+ (ice-9 ftw)
+ (srfi srfi-26))
+ #:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (let ((build-directory
+ (string-append
+ (getcwd) "/build/"
+ (car (scandir "build"
+ (cut string-prefix? "lib." <>))))))
+ (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/test_excel.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")))))))))
(propagated-inputs
`(("python-numpy" ,python-numpy)
("python-pytz" ,python-pytz)
("python-dateutil" ,python-dateutil)))
(native-inputs
- `(("python-nose" ,python-nose)
- ("python-cython" ,python-cython)))
- (home-page "http://pandas.pydata.org")
+ `(("python-cython" ,python-cython)
+ ("python-lxml" ,python-lxml)
+ ("python-nose" ,python-nose)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://pandas.pydata.org")
(synopsis "Data structures for data analysis, time series, and statistics")
(description
"Pandas is a Python package providing fast, flexible, and expressive data
@@ -1307,6 +1338,28 @@ bug tracker.")
(home-page "http://www.liquidx.net/pybugz/")
(license license:gpl2)))
+(define-public python2-enum
+ (package
+ (name "python2-enum")
+ (version "0.4.6")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "enum" version))
+ (sha256
+ (base32
+ "13lk3yrwj42vl30kw3c194f739nrfrdg64s6i0v2p636n4k8brsl"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2))
+ (home-page "http://pypi.python.org/pypi/enum/")
+ (synopsis "Robust enumerated type support in Python")
+ (description
+ "This provides a module for robust enumerations in Python. It has
+been superseded by the Python standard library and is provided only for
+compatibility.")
+ ;; Choice of either license.
+ (license (list license:gpl3+ license:psfl))))
+
(define-public python-enum34
(package
(name "python-enum34")
@@ -1532,17 +1585,62 @@ matching them against a list of media-ranges.")
"@code{pafy} is a python library to retrieve YouTube content and metadata.")
(license license:lgpl3+)))
+(define-public python2-funcsigs
+ (package
+ (name "python2-funcsigs")
+ (version "1.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "funcsigs" version))
+ (sha256
+ (base32
+ "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2))
+ (native-inputs
+ `(("python2-unittest2" ,python2-unittest2)))
+ (home-page "http://funcsigs.readthedocs.org")
+ (synopsis "Python function signatures from PEP362")
+ (description
+ "Backport of @code{funcsigs} which was introduced in Python 3.3.")
+ (license license:asl2.0)))
+
+(define-public python-pafy
+ (package
+ (name "python-pafy")
+ (version "0.5.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pafy" version))
+ (sha256
+ (base32
+ "1a7dxi95m1043rxx1r5x3ngb66nwlq6aqcasyqqjzmmmjps4zrim"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; Currently pafy can not find itself in the tests
+ (propagated-inputs
+ ;; Youtube-dl is a python package which is imported in the file
+ ;; "backend_youtube_dl.py", therefore it needs to be propagated.
+ `(("youtube-dl" ,youtube-dl)))
+ (home-page "https://np1.github.io/pafy/")
+ (synopsis "Retrieve YouTube content and metadata")
+ (description
+ "@code{pafy} is a python library to retrieve YouTube content and metadata.")
+ (license license:lgpl3+)))
+
(define-public python-py
(package
(name "python-py")
- (version "1.4.32")
+ (version "1.4.34")
(source
(origin
(method url-fetch)
(uri (pypi-uri "py" version))
(sha256
(base32
- "19s1pql9pq85h1qzsdwgyb8a3k1qgkvh33b02m8kfqhizz8rzf64"))))
+ "1qyd5z0hv8ymxy84v5vig3vps2fvhcf4bdlksb3r03h549fmhb8g"))))
(build-system python-build-system)
(arguments
;; FIXME: "ImportError: 'test' module incorrectly imported from
@@ -1679,7 +1777,10 @@ files.")
"02qkfpykbq35id8glfgwc38yc430427yd05z1wc5cnld8zgicmgi"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ `(;; The tests are fragile, depending on a specific version of pytest:
+ ;; <https://github.com/pallets/click/issues/823>
+ #:tests? #f
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
@@ -1688,10 +1789,7 @@ files.")
(substitute* "click/_unicodefun.py"
(("'locale'")
(string-append "'" glibc "/bin/locale'"))))
- #t))
- (replace 'check
- (lambda _
- (zero? (system* "make" "test")))))))
+ #t)))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "http://click.pocoo.org")
@@ -1912,7 +2010,7 @@ somewhat intelligible.")
#t))))
(build-system python-build-system)
(native-inputs
- `(("python-pytest" ,python-pytest-3.0)
+ `(("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov)
("python-pytest-runner" ,python-pytest-runner)))
(home-page "https://github.com/progrium/pyjwt")
@@ -2074,18 +2172,6 @@ for Python.")
(base32
"1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx"))))
(build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- ;; These files cannot be built with Python < 3.6. See
- ;; https://github.com/pallets/jinja/issues/655
- ;; FIXME: Remove this when the "python" package is upgraded.
- (add-after 'unpack 'delete-incompatible-files
- (lambda _
- (for-each delete-file
- '("jinja2/asyncsupport.py"
- "jinja2/asyncfilters.py"))
- #t)))))
(propagated-inputs
`(("python-markupsafe" ,python-markupsafe)))
(home-page "http://jinja.pocoo.org/")
@@ -2336,7 +2422,7 @@ sources.")
`(("python-sphinxcontrib-websupport" ,python-sphinxcontrib-websupport)
,@(package-propagated-inputs python-sphinx)))
(native-inputs
- `(("python-pytest" ,python-pytest-3.0)
+ `(("python-pytest" ,python-pytest)
("imagemagick" ,imagemagick) ; for "convert"
,@(package-native-inputs python-sphinx)))
(properties '())))
@@ -2354,7 +2440,7 @@ sources.")
(base32
"0kw1axswbvaavr8ggyf4qr6hnisnrzlbkkcdada69vk1x9xjassg"))))
(native-inputs
- `(("python-pytest" ,python-pytest-3.0)
+ `(("python-pytest" ,python-pytest)
,@(package-native-inputs python-sphinx)))))
(define-public python2-sphinx
@@ -2648,16 +2734,16 @@ between language specification and implementation aspects.")
(define-public python-numpy
(package
(name "python-numpy")
- (version "1.12.0")
+ (version "1.14.0")
(source
(origin
(method url-fetch)
(uri (string-append
- "https://github.com/numpy/numpy/archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ "https://github.com/numpy/numpy/releases/download/v"
+ version "/numpy-" version ".tar.gz"))
(sha256
(base32
- "025d4j4aakcp8w5i5diqh812cbbjgac7jszx1j56ivrbi1i8vv7d"))))
+ "1kh7y2ay21s9mcc11mq59g2f1yc75v152z2k2vlh0xmh9c9rjpf4"))))
(build-system python-build-system)
(inputs
`(("openblas" ,openblas)
@@ -2724,26 +2810,6 @@ capabilities.")
(define-public python2-numpy
(package-with-python2 python-numpy))
-(define-public python-numpy-next
- (package (inherit python-numpy)
- (name "python-numpy-next")
- (version "1.13.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "numpy" version ".zip"))
- (sha256
- (base32
- "1fsgkhh1vdkhmlz8vmdgxnj9n9yaanckxxzz9s0b4p08fqvjic69"))))
- (native-inputs
- `(("unzip" ,unzip)
- ("python-cython" ,python-cython)
- ("python-nose" ,python-nose)
- ("gfortran" ,gfortran)))))
-
-(define-public python2-numpy-next
- (package-with-python2 python-numpy-next))
-
;; 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
;; Numeric.
@@ -2811,14 +2877,14 @@ objects.")
(define-public python-colormath
(package
(name "python-colormath")
- (version "2.1.1")
+ (version "3.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "colormath" version))
(sha256
(base32
- "01wp5xwm0a89wdm1dc9rr1ij90idzdiiipxdj1yslhqzkhnjnfh0"))))
+ "05qjycgxp3p2f9n6lmic68sxmsyvgnnlyl4z9w7dl9s56jphaiix"))))
(build-system python-build-system)
(propagated-inputs
`(("python-networkx" ,python-networkx)
@@ -2835,14 +2901,14 @@ objects.")
(define-public python-spectra
(package
(name "python-spectra")
- (version "0.0.8")
+ (version "0.0.11")
(source
(origin
(method url-fetch)
(uri (pypi-uri "spectra" version))
(sha256
(base32
- "0n87kzhpkml2s2q91rdkl8wz2kkv5b0bkrgww45lxa5vq34qh6w5"))))
+ "1f322x914bhkg6r5gv1vmnir3iy0k5kih0fd2gp3rdkw32jn5cwf"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -3491,14 +3557,14 @@ functions.")
(define-public python-scipy
(package
(name "python-scipy")
- (version "0.19.1")
+ (version "1.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scipy" version))
(sha256
(base32
- "1rl411bvla6q7qfdb47fpdnyjhfgzl6smpha33n9ar1klykjr6m1"))))
+ "043djb3vyk6qripmyw30jhl0g8qza0fmar6wck10iv79l08izsl7"))))
(build-system python-build-system)
(propagated-inputs
`(("python-numpy" ,python-numpy)
@@ -3509,11 +3575,12 @@ functions.")
("openblas" ,openblas)))
(native-inputs
`(("python-cython" ,python-cython)
- ("python-nose" ,python-nose)
+ ("python-pytest" ,python-pytest)
("python-sphinx" ,python-sphinx)
("python-numpydoc" ,python-numpydoc)
("gfortran" ,gfortran)
- ("perl" ,perl)))
+ ("perl" ,perl)
+ ("which" ,which)))
(outputs '("out" "doc"))
(arguments
`(#:phases
@@ -3542,7 +3609,11 @@ atlas_libs = openblas
(let* ((data (string-append (assoc-ref outputs "doc") "/share"))
(doc (string-append data "/doc/" ,name "-" ,version))
(html (string-append doc "/html"))
- (pyver ,(string-append "PYVER=")))
+ (pyver ,(string-append "PYVER=" (version-major+minor
+ (package-version python))))
+ ;; By default it tries to run sphinx-build through the Python
+ ;; interpreter which won't work with our shell wrapper.
+ (sphinxbuild "SPHINXBUILD=LANG=C sphinx-build"))
;; Make installed package available for building the
;; documentation
(add-installed-pythonpath inputs outputs)
@@ -3552,7 +3623,7 @@ atlas_libs = openblas
(("pngmath_use_preview = True")
"pngmath_use_preview = False"))
(mkdir-p html)
- (system* "make" "html" pyver)
+ (invoke "make" "html" pyver sphinxbuild)
(with-directory-excursion "build/html"
(for-each (lambda (file)
(let* ((dir (dirname file))
@@ -3560,21 +3631,15 @@ atlas_libs = openblas
(install-file file html)))
(find-files "." ".*")))))
#t))
- (add-after 'unpack 'fix-tests
- (lambda _
- (substitute* "scipy/integrate/tests/test_quadpack.py"
- (("libm.so") "libm.so.6"))
- #t))
- ;; Tests can only be run after the library has been installed and not
- ;; within the source directory.
+ ;; 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 inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(with-directory-excursion "/tmp"
- (zero? (system* "python" "-c"
- "import scipy; scipy.test('full')")))
- #t)))))
+ (invoke "python" "-c"
+ "import scipy; scipy.test('full', verbose=2)")))))))
(home-page "https://www.scipy.org/")
(synopsis "The Scipy library provides efficient numerical routines")
(description "The SciPy library is one of the core packages that make up
@@ -4052,7 +4117,7 @@ Python language binding specification.")
(arguments '(#:tests? #f)) ; Test file 'grako.ebnf' is missing from archive.
(native-inputs
`(("unzip" ,unzip)
- ("python-pytest" ,python-pytest-3.0)
+ ("python-pytest" ,python-pytest)
("python-pytest-runner" ,python-pytest-runner)))
(home-page "https://bitbucket.org/neogeny/grako")
(synopsis "EBNF parser generator")
@@ -4110,7 +4175,7 @@ cluster without needing to write any wrapper code yourself.")
(base32 "0zizn61n5z5hq421hkypk9pw8s6fpxw30f4hsg7k4ivwzy3gjw9j"))))
(build-system python-build-system)
(native-inputs
- `(("python-pytest" ,python-pytest-3.0)
+ `(("python-pytest" ,python-pytest)
("python-mock" ,python-mock)
("python-tox" ,python-tox)
("which" ,which))) ;for tests
@@ -4173,7 +4238,7 @@ displayed.")
(replace 'check (lambda _ (zero? (system* "nosetests" "-v")))))))
(native-inputs
`(("python-nose" ,python-nose)
- ("python-pytest" ,python-pytest-3.0)
+ ("python-pytest" ,python-pytest)
("man-db" ,man-db)
("which" ,which)
("bash-full" ,bash))) ;full Bash for 'test_replwrap.py'
@@ -4194,13 +4259,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.0")
+ (version "1.15.6")
(source (origin
(method url-fetch)
(uri (pypi-uri "setuptools_scm" version))
(sha256
(base32
- "0bwyc5markib0i7i2qlyhdzxhiywzxbkfiapldma8m91m82jvwfs"))))
+ "0pzvfmx8s20yrgkgwfbxaspz2x1g38qv61jpm0ns91lrb22ldas9"))))
(build-system python-build-system)
(home-page "https://github.com/pypa/setuptools_scm/")
(synopsis "Manage Python package versions in SCM metadata")
@@ -4820,19 +4885,20 @@ interfaces in an easy and portable manner.")
(define-public python-networkx
(package
(name "python-networkx")
- (version "1.11")
+ (version "2.1")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "networkx" version))
+ (uri (pypi-uri "networkx" version ".zip"))
(sha256
- (base32 "1f74s56xb4ggixiq0vxyfxsfk8p20c7a099lpcf60izv1php03hd"))))
+ (base32 "1ccb8mfz4m821k9y0cigkbq42q2sbb4dj5fbjshp0awp32j2q9v4"))))
(build-system python-build-system)
;; python-decorator is needed at runtime
(propagated-inputs
`(("python-decorator" ,python-decorator)))
(native-inputs
- `(("python-nose" ,python-nose)))
+ `(("python-nose" ,python-nose)
+ ("unzip" ,unzip)))
(home-page "http://networkx.github.io/")
(synopsis "Python module for creating and manipulating graphs and networks")
(description
@@ -5253,14 +5319,14 @@ PEP 8.")
(define-public python-pyflakes
(package
(name "python-pyflakes")
- (version "1.0.0")
+ (version "1.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyflakes" version))
(sha256
(base32
- "0qs2sgqszq7wcplis8509wk2ygqcrwzbs1ghfj3svvivq2j377pk"))))
+ "1x1pcca4a24k4pw8x1c77sgi58cg1wl2k38mp8a25k608pzls3da"))))
(build-system python-build-system)
(home-page
"https://github.com/pyflakes/pyflakes")
@@ -5275,17 +5341,17 @@ PEP 8.")
(define-public python-mccabe
(package
(name "python-mccabe")
- (version "0.4.0")
+ (version "0.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "mccabe" version))
(sha256
(base32
- "0yr08a36h8lqlif10l4xcikbbig7q8f41gqywir7rrvnv3mi4aws"))))
+ "07w3p1qm44hgxf3vvwz84kswpsx6s7kvaibzrsx5dzm0hli1i3fx"))))
(build-system python-build-system)
(native-inputs
- `(("python-pytest" ,python-pytest)
+ `(("python-pytest" ,python-pytest-bootstrap)
("python-pytest-runner" ,python-pytest-runner)))
(home-page "https://github.com/flintwork/mccabe")
(synopsis "McCabe checker, plugin for flake8")
@@ -5358,51 +5424,60 @@ complexity of Python source code.")
(define-public python-flake8
(package
(name "python-flake8")
- (version "2.5.4")
+ (version "3.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "flake8" version))
(sha256
(base32
- "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Remove pre-compiled .pyc files from source.
- (for-each delete-file-recursively
- (find-files "." "__pycache__" #:directories? #t))
- (for-each delete-file (find-files "." "\\.pyc$"))
- #t))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-pep8" ,python-pep8)
+ "1n0i38592vy3q0x2a9bf8z6rhhn04i30wsn5i5zzcj7qkxvl8062"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (zero? (system* "pytest" "-v")))))))
+ (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)))
(native-inputs
`(("python-mock" ,python-mock) ; TODO: only required for < 3.3
- ("python-nose" ,python-nose)))
+ ("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")
(description
"Flake8 is a wrapper around PyFlakes, pep8 and python-mccabe.")
+ (properties `((python2-variant . ,(delay python2-flake8))))
(license license:expat)))
(define-public python2-flake8
- (package-with-python2 python-flake8))
+ (let ((base (package-with-python2 (strip-python2-variant python-flake8))))
+ (package (inherit base)
+ (propagated-inputs
+ `(("python2-configparser" ,python2-configparser)
+ ("python2-enum" ,python2-enum)
+ ,@(package-propagated-inputs base))))))
(define-public python-flake8-polyfill
(package
(name "python-flake8-polyfill")
- (version "1.0.1")
+ (version "1.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "flake8-polyfill" version))
(sha256
(base32
- "02gn2wxvh9vnf7m7dld7ca4l60mg5c370hv3swwppkngwaqmcw67"))))
+ "1nlf1mkqw856vi6782qcglqhaacb23khk9wkcgn55npnjxshhjz4"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -5416,6 +5491,7 @@ complexity of Python source code.")
(native-inputs
`(("python-flake8" ,python-flake8)
("python-mock" ,python-mock)
+ ("python-pep8" ,python-pep8)
("python-pycodestyle" ,python-pycodestyle)
("python-pytest" ,python-pytest)))
(home-page "https://gitlab.com/pycqa/flake8-polyfill")
@@ -7163,6 +7239,10 @@ Python at your fingertips, in Lisp form.")
(build-system python-build-system)
(arguments
`(#:python ,python-2
+ ;; The test suite fails with Python > 2.7.13:
+ ;; import test.support
+ ;; ImportError: No module named support
+ #:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-/bin/sh
@@ -7170,15 +7250,7 @@ Python at your fingertips, in Lisp form.")
(substitute* '("subprocess32.py"
"test_subprocess32.py")
(("/bin/sh") (which "sh")))
- #t))
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- ;; For some reason this package fails to import
- ;; _posixsubprocess.so when PYTHONPATH is set to the build
- ;; directory. Running tests after install is easier.
- (add-installed-pythonpath inputs outputs)
- (zero? (system* "python" "test_subprocess32.py")))))))
+ #t)))))
(home-page "https://github.com/google/python-subprocess32")
(synopsis "Backport of the subprocess module from Python 3.2")
(description
@@ -8512,28 +8584,73 @@ are synchronized with data exchanges on \"channels\".")
(define-public python-gevent
(package
(name "python-gevent")
- (version "1.1.1")
+ (version "1.2.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "gevent" version))
(sha256
(base32
- "1smf3kvidpdiyi2c81alal74p2zm0clrm6xbyy6y1k9a3f2vkrbf"))
+ "0bbbjvi423y9k9xagrcsimnayaqymg6f2dj76m9z3mjpkjpci4a7"))
(modules '((guix build utils)))
(snippet
'(begin
;; unbunding libev and c-ares
- (for-each delete-file-recursively '("libev" "c-ares"))
- ;; fixing testsuite
- (call-with-output-file "greentest/__init__.py" noop)
- (substitute* "greentest/testrunner.py"
- (("import util") "from . import util")
- (("from util import log") "from .util import log"))))))
+ (delete-file-recursively "deps")
+ #t))))
(build-system python-build-system)
+ (arguments
+ `(#:modules ((ice-9 ftw)
+ (srfi srfi-26)
+ (guix build utils)
+ (guix build python-build-system))
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-libev
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p "deps/libev")
+ ;; FIXME: gevent requires building libev, even though
+ ;; it only links against the proper one.
+ (invoke "tar" "-xf" (assoc-ref inputs "libev-source")
+ "--strip-components=1" "-C" "deps/libev")))
+ (add-before 'patch-source-shebangs 'patch-hard-coded-paths
+ (lambda _
+ (substitute* "src/gevent/subprocess.py"
+ (("/bin/sh") (which "sh")))
+ (for-each (lambda (file)
+ (substitute* file
+ (("/bin/sh") (which "sh"))
+ (("/bin/true") (which "true"))))
+ (find-files "src/greentest" "\\.py$"))
+ #t))
+ (add-before 'build 'do-not-use-bundled-sources
+ (lambda _
+ (setenv "CONFIG_SHELL" (which "bash"))
+ (setenv "LIBEV_EMBED" "false")
+ (setenv "CARES_EMBED" "false")
+ (setenv "EMBED" "false")
+ #t))
+ (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." <>)))))
+ (with-directory-excursion "src/greentest"
+ ;; XXX: Many tests require network access. Instead we only
+ ;; run known-good tests. Unfortunately we cannot use
+ ;; recursion here since this directory also contains
+ ;; Python-version-specific subfolders.
+ (apply invoke "python" "testrunner.py" "--config"
+ "known_failures.py"
+ (scandir "." (cut regexp-exec
+ (make-regexp "test_+(subprocess|core)")
+ <>)))))))))
(propagated-inputs
`(("python-greenlet" ,python-greenlet)))
(native-inputs
- `(("python-six" ,python-six)))
+ `(("libev-source" ,(package-source libev))
+ ("python-six" ,python-six)))
(inputs
`(("c-ares" ,c-ares)
("libev" ,libev)))
@@ -9403,8 +9520,8 @@ interface for programs.")
(base32
"0rfyxcy4cr3x848vhx876ifalxd5ghq6l5x813m49h4vq2d4jiq8"))))
(build-system python-build-system)
- (native-inputs
- `(("python-pytest" ,python-pytest)))
+ (arguments
+ '(#:tests? #f)) ; The tests are not distributed
(propagated-inputs
`(("python-requests" ,python-requests)
("python-six" ,python-six)))
@@ -9608,8 +9725,8 @@ to Python.")
(base32
"1nv5dxcj59zv31qvl8bd142njmxcmymny2dz3br1l2cpbljbf5i7"))))
(build-system python-build-system)
- (native-inputs
- `(("python-pytest" ,python-pytest)))
+ (arguments
+ '(#:tests? #f)) ; The tests are not distributed
(propagated-inputs
`(("python-graphql-core" ,python-graphql-core)
("python-promise" ,python-promise)
@@ -10731,49 +10848,31 @@ in other versions.")
(define-public python-mando
(package
- (name "python-mando")
- (version "0.5")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "mando" version))
- (sha256
- (base32
- "0q05h66439gqdmlk4jqm6xrwrzfdgs4mwk70barxhr2y83qbbdc0"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-rst2ansi" ,python-rst2ansi)))
- (native-inputs
- `(("python-sphinx" ,python-sphinx-1.5.3)
- ("python-paramunittest" ,python-paramunittest)))
- (home-page "https://mando.readthedocs.org/")
- (synopsis
- "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.")
- (license license:expat)))
+ (name "python-mando")
+ (version "0.6.4")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "mando" version))
+ (sha256
+ (base32
+ "0q6rl085q1hw1wic52pqfndr0x3nirbxnhqj9akdm5zhq2fv3zkr"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-rst2ansi" ,python-rst2ansi)
+ ("python-six" ,python-six)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://mando.readthedocs.org/")
+ (synopsis
+ "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.")
+ (license license:expat)))
(define-public python2-mando
(package-with-python2 python-mando))
-(define-public python-mando-0.3.1
- ;; python-radon (version 1.5.0) has a requirement
- ;; for mando<0.4,>=0.3
- (package
- (inherit python-mando)
- (name "python-mando")
- (version "0.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/rubik/mando/archive/v"
- version
- ".tar.gz"))
- (sha256
- (base32
- "17jlkdpqw22z1nyml5ybslilqkzmnk0dxxjml8bfghav1l5hbwd2"))))))
-
(define-public python-fudge
(package
(name "python-fudge")
@@ -11144,24 +11243,27 @@ for more filetypes can be easily added by creating plugins for them.")
(define-public python-radon
(package
(name "python-radon")
- (version "1.5.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "radon" version))
(sha256
(base32
- "1h6jv36am0i827182a04ki6291lyx4kp957xfr5njgprj4nd0qsl"))))
+ "07gq5hq4nrffxnlnksws9hrx7fd001gam63j62i82gyfr23gvdym"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "python" "radon/tests/run.py"))))))
(propagated-inputs
`(("python-colorama" ,python-colorama)
("python-flake8-polyfill" ,python-flake8-polyfill)
- ("python-mando" ,python-mando-0.3.1)))
+ ("python-mando" ,python-mando)))
(native-inputs
- `(("python-flake8" ,python-flake8)
- ("python-tox" ,python-tox)
- ("python-pytest" ,python-pytest)
- ("python-paramunittest" ,python-paramunittest)))
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-mock" ,python-pytest-mock)))
(home-page "https://radon.readthedocs.org/")
(synopsis "Code Metrics in Python")
(description "Radon is a Python tool which computes various code metrics.
@@ -11452,7 +11554,7 @@ address is valid and really exists.")
`(("python-dateutil" ,python-dateutil)
("python-simplejson" ,python-simplejson)))
(native-inputs
- `(("python-pytest-3.0" ,python-pytest-3.0)
+ `(("python-pytest" ,python-pytest)
("python-pytz" ,python-pytz)))
(home-page "https://github.com/marshmallow-code/marshmallow")
(synopsis "Convert complex datatypes to and from native
@@ -11479,7 +11581,7 @@ complex datatypes to and from native Python datatypes.")
(propagated-inputs
`(("python-pyyaml" ,python-pyyaml)))
(native-inputs
- `(("python-pytest-3.0" ,python-pytest-3.0)
+ `(("python-pytest" ,python-pytest)
("python-flask" ,python-flask)
("python-marshmallow" ,python-marshmallow)
("python-tornado" ,python-tornado)
@@ -11532,7 +11634,7 @@ Swagger 2.0).")
("python-flake8" ,python-flake8)
("python-flask-restful" ,python-flask-restful)
("python-flex" ,python-flex)
- ("python-pytest-3.0" ,python-pytest-3.0)
+ ("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov)
("python-marshmallow" ,python-marshmallow)
("python-apispec" ,python-apispec)))
@@ -11830,31 +11932,37 @@ ignoring formatting changes.")
(define-public python-tqdm
(package
(name "python-tqdm")
- (version "4.15.0")
+ (version "4.19.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tqdm" version))
(sha256
(base32
- "0lwrmby8qz23gvqwkpivfrv4q8nfh90cz9ml6slwvwmcxxsdrhbf"))))
+ "0xvkffm77nqckk29xjy5fkqvig5b97vk7nzafp3cn36w4zqyccnz"))))
(build-system python-build-system)
(native-inputs
`(("python-flake8" ,python-flake8)
("python-nose" ,python-nose)
- ("python-nose-timer" ,python-nose-timer)
- ("python-coverage" ,python-coverage)
- ("python-virtualenv" ,python-virtualenv)))
+ ("python-coverage" ,python-coverage)))
(home-page "https://github.com/tqdm/tqdm")
(synopsis "Fast, extensible progress meter")
(description
"Make loops show a progress bar on the console by just wrapping any
iterable with @code{|tqdm(iterable)|}. Offers many options to define
design and layout.")
- (license (list license:mpl2.0 license:expat))))
+ (license (list license:mpl2.0 license:expat))
+ (properties `((python2-variant . ,(delay python2-tqdm))))))
(define-public python2-tqdm
- (package-with-python2 python-tqdm))
+ (let ((tqdm (package-with-python2
+ (strip-python2-variant python-tqdm))))
+ (package
+ (inherit tqdm)
+ (native-inputs
+ ;; FIXME: This should be propagated from python2-flake8 instead.
+ `(("python2-enum34" ,python2-enum34)
+ ,@(package-native-inputs tqdm))))))
(define-public python-pkginfo
(package
@@ -11930,7 +12038,7 @@ their files and supports any packaging format (including wheels).")
`(;; The tests depend on unittest2, and our version is a bit too old.
#:tests? #f))
(native-inputs
- `(("python-pbr" ,python-pbr)))
+ `(("python-pbr" ,python-pbr-minimal)))
(home-page
"https://github.com/testing-cabal/linecache2")
(synopsis "Backports of the linecache module")
@@ -11959,7 +12067,7 @@ lines are read from a single file.")
`(;; python-traceback2 and python-unittest2 depend on one another.
#:tests? #f))
(native-inputs
- `(("python-pbr" ,python-pbr)))
+ `(("python-pbr" ,python-pbr-minimal)))
(propagated-inputs
`(("python-linecache2" ,python-linecache2)))
(home-page
@@ -12060,7 +12168,7 @@ services.")
"1nii1sz5jq75ilf18bjnr11l9rz1lvdmyk66bxl7q90qan85yhjj"))))
(build-system python-build-system)
(native-inputs
- `(("python-pytest-3.0" ,python-pytest-3.0)))
+ `(("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://github.com/Changaco/setuptools_scm_git_archive/")
@@ -12118,7 +12226,7 @@ belong to tagged versions.")
`(#:python ,python-2))
(native-inputs
`(("unzip" ,unzip)
- ("python2-pytest-3.0" ,python2-pytest-3.0)
+ ("python2-pytest" ,python2-pytest)
("python2-pytest-runner" ,python2-pytest-runner)))
(propagated-inputs
`(("python-fonttools" ,python2-fonttools)
@@ -12470,7 +12578,7 @@ files, and Makefiles.")
(lambda _
(invoke "py.test"))))))
(native-inputs
- `(("python-pytest-3.0" ,python-pytest-3.0)))
+ `(("python-pytest" ,python-pytest)))
(home-page "http://github.com/Suor/whatever")
(synopsis "Make anonymous functions by partial application of operators")
(description "@code{whatever} provides an easy way to make anonymous
@@ -12501,7 +12609,7 @@ functions by partial application of operators.")
(lambda _
(invoke "py.test"))))))
(native-inputs
- `(("python-pytest-3.0" ,python-pytest-3.0)
+ `(("python-pytest" ,python-pytest)
("python-pytest-warnings" ,python-pytest-warnings)
("python-whatever" ,python-whatever)))
(home-page "http://github.com/Suor/funcy")