X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/2ecbba24082c6cf9e8ea40563433fe94f905ad07..28ac442b0e3853605ce47ebc332b1d9fe97ce0d4:/gnu/packages/python-xyz.scm diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 3d1f8c0e01..a4f36c42cf 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari ;;; Copyright © 2015, 2017 Ben Woodcroft ;;; Copyright © 2015, 2016 Erik Edrosa -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner ;;; Copyright © 2015, 2017 Kyle Meyer ;;; Copyright © 2015, 2016 Chris Marusich ;;; Copyright © 2016 Danny Milosavljevic @@ -32,7 +32,7 @@ ;;; Copyright © 2016, 2017, 2019 Alex Vong ;;; Copyright © 2016, 2017, 2018 Arun Isaac ;;; Copyright © 2016, 2017, 2018 Julien Lepiller -;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2016, 2017 Thomas Danckaert ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Frederick M. Muriithi @@ -57,7 +57,7 @@ ;;; Copyright © 2018, 2019 Maxim Cournoyer ;;; Copyright © 2018 Luther Thompson ;;; Copyright © 2018 Vagrant Cascadian -;;; Copyright © 2019 Brett Gilio +;;; Copyright © 2019, 2020 Brett Gilio ;;; Copyright © 2019 Sam ;;; Copyright © 2019 Jack Hill ;;; Copyright © 2019 Guillaume Le Vaillant @@ -67,6 +67,7 @@ ;;; Copyright © 2019 Giacomo Leidi ;;; Copyright © 2019 Wiktor Żelazny ;;; Copyright © 2019 Tanguy Le Carrour +;;; Copyright © 2019 Mădălin Ionel Patrașcu ;;; ;;; This file is part of GNU Guix. ;;; @@ -1051,21 +1052,21 @@ standard.") (define-public python-eventlet (package (name "python-eventlet") - (version "0.20.1") + (version "0.25.1") (source (origin (method url-fetch) (uri (pypi-uri "eventlet" version)) (sha256 (base32 - "0f3q55mq4n021wb7qa53pz3ix6i2py64sap66vsaqm2scjw83m9s")))) + "1hgz8jq19wlz8vwqj900ry8cjv578nz4scc91mlc8944yid6573c")))) (build-system python-build-system) (propagated-inputs `(("python-greenlet" ,python-greenlet))) (arguments ;; TODO: Requires unpackaged 'enum-compat'. '(#:tests? #f)) - (home-page "http://eventlet.net") + (home-page "https://eventlet.net") (synopsis "Concurrent networking library for Python") (description "Eventlet is a concurrent networking library for Python that @@ -3054,14 +3055,14 @@ Server (PLS).") (define-public python-language-server (package (name "python-language-server") - (version "0.31.2") + (version "0.31.4") (source (origin (method url-fetch) (uri (pypi-uri "python-language-server" version)) (sha256 (base32 - "1iq69wc1fyhirfyq25ih41wq9yvr7bchiw0i116adpdgcq6m9idq")))) + "1nrs56jpx7dvghaas0kc5k9lxas5vr3awj3k87p4akki43nsblb8")))) (build-system python-build-system) (propagated-inputs `(("python-pluggy" ,python-pluggy) @@ -3145,42 +3146,30 @@ interested parties to subscribe to events, or \"signals\".") (define-public pelican (package (name "pelican") - (version "4.0.1") + (version "4.2.0") (source (origin (method url-fetch) (uri (pypi-uri "pelican" version)) (sha256 (base32 - "05yda7n6r0ll18fpdjzkzyr0ls8hbb86fnjyb33k9jvv5avah2lr")))) + "0mp7hjyhs38ag1hyfcy882g400z0babqi72pnli46dqijfhajzmy")))) (build-system python-build-system) (propagated-inputs - `(("python-feedgenerator" ,python-feedgenerator) + `(("python-blinker" ,python-blinker) + ("python-dateutil" ,python-dateutil) + ("python-docutils" ,python-docutils) + ("python-feedgenerator" ,python-feedgenerator) ("python-jinja2" ,python-jinja2) + ("python-markdown" ,python-markdown) ("python-pygments" ,python-pygments) - ("python-docutils" ,python-docutils) ("python-pytz" ,python-pytz) - ("python-blinker" ,python-blinker) - ("python-unidecode" ,python-unidecode) ("python-six" ,python-six) - ("python-dateutil" ,python-dateutil) - ("python-markdown" ,python-markdown))) + ("python-unidecode" ,python-unidecode))) (home-page "https://getpelican.com/") (arguments `(;; XXX Requires a lot more packages to do unit tests :P - #:tests? #f - #:phases (modify-phases %standard-phases - (add-before - 'install 'adjust-requires - ;; Since feedgenerator is installed from git, it doesn't - ;; conform to the version requirements. - ;; - ;; We *do have* "feedgenerator >= 1.6", but strip off the - ;; version requirement so setuptools doesn't get confused. - (lambda _ - (substitute* "setup.py" - (("['\"]feedgenerator.*?['\"]") - "'feedgenerator'"))))))) + #:tests? #f)) (synopsis "Python-based static site publishing system") (description "Pelican is a tool to generate a static blog from reStructuredText, @@ -3441,13 +3430,14 @@ capabilities.") (version "1.8.2") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/numpy/numpy/archive/v" version ".tar.gz")) - (file-name (string-append "python2-numpy-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/numpy/numpy") + (commit (string-append "v" version)))) + (file-name (git-file-name "numpy" version)) (sha256 (base32 - "0sc20gz1b17xnyrkp5frca3ql5qfalpv916hfg2kqxpwr6jg0f1g")))) + "0ikgi15rsqwbkfsjjxrwh40lqyal2wvyp3923y6w6ch3dcr82sfk")))) (arguments (substitute-keyword-arguments (package-arguments python2-numpy) ((#:phases phases) @@ -5631,18 +5621,20 @@ features useful for text console applications.") (version "1.0.2") (source (origin - (method url-fetch) + (method git-fetch) ;; package author intends on distributing via github rather than pypi: ;; https://github.com/pazz/alot/issues/877#issuecomment-230173331 - (uri (string-append "https://github.com/pazz/urwidtrees/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/pazz/urwidtrees") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0d30lyd3s2a97rhqfax5w9ssqds2z6aydqx3c6j2c2lk3cb4ngvh")))) + "1n1kpidvkdnsqyb82vlvk78gmly96kh8351lqxn2pzgwwns6fml2")))) (build-system python-build-system) (arguments - '(#:tests? #f)) ; no tests + '(#:use-setuptools? #f + #:tests? #f)) ; no tests (propagated-inputs `(("python-urwid" ,python-urwid))) (home-page "https://github.com/pazz/urwidtrees") (synopsis "Tree widgets for urwid") @@ -5765,14 +5757,13 @@ the GObject Introspection bindings to libnotify for non-GTK applications.") (define-public python-lxml (package (name "python-lxml") - (version "4.4.1") + (version "4.4.2") (source (origin (method url-fetch) (uri (pypi-uri "lxml" version)) (sha256 - (base32 - "14jnpfcpgqr9sx8ppd286jzcbk0b36hbqsvd8jkvffipzw5v8768")))) + (base32 "01nvb5j8vs9nk4z5s3250b1m22b4d08kffa36if3g1mdygdrvxpg")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -5782,9 +5773,8 @@ the GObject Introspection bindings to libnotify for non-GTK applications.") (inputs `(("libxml2" ,libxml2) ("libxslt" ,libxslt))) - (home-page "http://lxml.de/") - (synopsis - "Python XML processing library") + (home-page "https://lxml.de/") + (synopsis "Python XML processing library") (description "The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt.") @@ -6331,21 +6321,26 @@ so it might be a tiny bit slower.") (define-public python-waf (package (name "python-waf") - (version "2.0.11") + (version "2.0.19") (source (origin (method url-fetch) (uri (string-append "https://waf.io/" "waf-" version ".tar.bz2")) (sha256 (base32 - "13zrniwkmfqgsgzi9v5m1367fppp9yzrz6z2ny6hy8dmpb8mj4z4")))) + "19dvqbsvxz7ch03dh1v0znklrwxlz6yzddc3k9smzrrgny4jch6q")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases (replace 'build (lambda _ - (invoke "python" "waf-light" "configure" "build"))) + ;; XXX: Find a way to add all extra tools. + (let ((tools '("gccdeps" + "clang_compilation_database"))) + (invoke "python" "waf-light" "configure" "build" + (string-append "--tools=" + (string-join tools ",")))))) (replace 'check (lambda _ (invoke "python" "waf" "--version"))) @@ -6817,7 +6812,7 @@ add functionality and customization to your projects with their own plugins.") `(("unzip" ,unzip) ("python-pytest" ,python-pytest) ("python-pytest-runner" ,python-pytest-runner))) - (home-page "https://github.com/behdad/fonttools") + (home-page "https://github.com/fonttools/fonttools") (synopsis "Tools to manipulate font files") (description "FontTools/TTX is a library to manipulate font files from Python. It @@ -8069,15 +8064,15 @@ automatically detect a wide range of file encodings.") (version "0.6.2") (source (origin - (method url-fetch) + (method git-fetch) ;; The release on PyPI does not include tests. - (uri (string-append - "https://github.com/docopt/docopt/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/docopt/docopt") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "16bf890xbdz3m30rsv2qacklh2rdn1zrfspfnwzx9g7vwz8yw4r1")))) + "0aad9gbswnnhssin2q0m5lmpm0ahyf80ahs2zjigbn5y7fvljnd0")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) @@ -8243,36 +8238,22 @@ be set via config files and/or environment variables.") provides utilities for common tasks involving decorators and context managers. It also contains additional features that are not part of the standard library.") + (properties `((python2-variant . ,(delay python2-contextlib2)))) (license license:psfl))) (define-public python2-contextlib2 - (package - (name "python2-contextlib2") - (version "0.5.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "contextlib2" version)) - (sha256 - (base32 - "0j6ad6lwwyc9kv71skj098v5l7x5biyj2hs4lc5x1kcixqcr97sh")))) - (build-system python-build-system) - (arguments - `(#:python ,python-2 - #:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ (invoke "python" "test_contextlib2.py" "-v")))))) - (native-inputs - `(("python2-unittest2" ,python2-unittest2))) - (home-page "http://contextlib2.readthedocs.org/") - (synopsis "Tools for decorators and context managers") - (description "This module is primarily a backport of the Python -3.2 contextlib to earlier Python versions. Like contextlib, it -provides utilities for common tasks involving decorators and context -managers. It also contains additional features that are not part of -the standard library.") - (license license:psfl))) + (let ((base (package-with-python2 + (strip-python2-variant python-contextlib2)))) + (package + (inherit base) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (replace 'check + (lambda _ (invoke "python" "test_contextlib2.py" "-v"))))))) + (native-inputs + `(("python2-unittest2" ,python2-unittest2)))))) (define-public python-texttable (package @@ -8512,13 +8493,13 @@ with a new public API, and RPython support.") (define-public python-hy (package (name "python-hy") - (version "0.13.0") + (version "0.17.0") (source (origin (method url-fetch) (uri (pypi-uri "hy" version)) (sha256 (base32 - "19sfymaksx9jhksfnb15ahid46mzrhdfzz6yy2craz2qnzvpmky8")))) + "1gdbqsirsdxj320wnp7my5awzs1kfs6m4fqmkzbd1zd47qzj0zfi")))) (build-system python-build-system) (arguments '(#:phases @@ -8537,7 +8518,11 @@ with a new public API, and RPython support.") (propagated-inputs `(("python-astor" ,python-astor) ("python-clint" ,python-clint) - ("python-rply" ,python-rply))) + ("python-rply" ,python-rply) + ("python-fastentrypoints" + ,python-fastentrypoints) + ("python-funcparserlib" + ,python-funcparserlib))) (home-page "http://hylang.org/") (synopsis "Lisp frontend to Python") (description @@ -9522,15 +9507,16 @@ encoding algorithms to do fuzzy string matching.") (name "python2-unicodecsv") (version "0.14.1") (source (origin - (method url-fetch) + (method git-fetch) ;; The test suite is not included in the PyPi release. ;; https://github.com/jdunck/python-unicodecsv/issues/19 - (uri (string-append "https://github.com/jdunck/python-unicodecsv/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/jdunck/python-unicodecsv") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "087nqanfcyp6mlfbbr5lva5f3w6iz1bybls9xlrb8icmc474wh4w")))) + "15hx2k41a2lpv4hcml9zp4cvlx1171mnb5s4s13xc1pxkq3vgdjy")))) (build-system python-build-system) (arguments `(;; It supports Python 3, but Python 3 can already do Unicode CSV. @@ -9910,7 +9896,7 @@ to occurrences in strings and comments.") (lambda* (#:key inputs #:allow-other-keys) (let ((file-path (assoc-ref inputs "file"))) (substitute* "py3status/parse_config.py" - (("\\['file', '-b'") + (("\\[\"file\", \"-b\"") (string-append "['" file-path "/bin/file', '-b'"))) #t)))) #:tests? #f)) ; TODO: Requires many libraries not in Guix. @@ -10303,25 +10289,24 @@ are optionally backed by a C extension built on librdkafka.") (package-with-python2 python-pykafka)) (define-public python-wcwidth - (package - (name "python-wcwidth") - (version "0.1.7") - (source - (origin - (method url-fetch) - (uri (pypi-uri "wcwidth" version)) - (sha256 - (base32 - "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx")))) - (build-system python-build-system) - (home-page "https://github.com/jquast/wcwidth") - (synopsis "Measure number of terminal column cells of wide-character codes") - (description "Wcwidth measures the number of terminal column cells of + (package + (name "python-wcwidth") + (version "0.1.7") + (source (origin + (method url-fetch) + (uri (pypi-uri "wcwidth" version)) + (sha256 + (base32 + "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx")))) + (build-system python-build-system) + (home-page "https://github.com/jquast/wcwidth") + (synopsis "Measure number of terminal column cells of wide-character codes") + (description "Wcwidth measures the number of terminal column cells of wide-character codes. It is useful for those implementing a terminal emulator, or programs that carefully produce output to be interpreted by one. It is a Python implementation of the @code{wcwidth} and @code{wcswidth} C functions specified in POSIX.1-2001 and POSIX.1-2008.") - (license license:expat))) + (license license:expat))) (define-public python2-wcwidth (package-with-python2 python-wcwidth)) @@ -11001,14 +10986,14 @@ relays publish about themselves.") (define-public python-pyserial (package (name "python-pyserial") - (version "3.1.1") + (version "3.4") (source (origin (method url-fetch) (uri (pypi-uri "pyserial" version)) (sha256 (base32 - "0k1nfdrxxkdlv4zgaqsdv8li0pj3gbh2pyxw8q2bsg6f9490amyn")))) + "09y68bczw324a4jb9a1cfwrbjhq179vnfkkkrybbksp0vqgl0bbf")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; FIXME: 3/49 tests are failing. @@ -11353,14 +11338,13 @@ command @command{natsort} that exposes this functionality in the command line.") (define-public python-glances (package (name "python-glances") - (version "3.1.1") + (version "3.1.2") (source (origin (method url-fetch) (uri (pypi-uri "Glances" version)) (sha256 - (base32 - "07j1ggzsqiskyz1i4mrnyr9i95v0dqi0i0hibnv1l188km8shmi8")) + (base32 "15384pbvw9wj4sb8zgvd9v1812vrypbyjg0acicjf1hdb3p30fkk")) (modules '((guix build utils))) (snippet '(begin @@ -11376,8 +11360,7 @@ command @command{natsort} that exposes this functionality in the command line.") (propagated-inputs `(("python-future" ,python-future) ("python-psutil" ,python-psutil))) - (home-page - "https://github.com/nicolargo/glances") + (home-page "https://github.com/nicolargo/glances") (synopsis "Cross-platform curses-based monitoring tool") (description "Glances is a curses-based monitoring tool for a wide variety of platforms. @@ -12811,29 +12794,27 @@ exception message with a traceback that points to the culprit.") (define-public python-mwclient (package (name "python-mwclient") - (version "0.8.4") + (version "0.10.0") (source (origin - (method url-fetch) + (method git-fetch) ;; The PyPI version wouldn't contain tests. - (uri (string-append "https://github.com/mwclient/mwclient/archive/" - "v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/mwclient/mwclient") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1jj0yhilkjir00719fc7w133x7hdyhkxhk6xblla4asig45klsfv")))) + "1c3q6lwmb05yqywc4ya98ca7hsl15niili8rccl4n1yqp77c103v")))) (build-system python-build-system) (propagated-inputs - `(("python-requests" ,python-requests) - ("python-requests-oauthlib" - ,python-requests-oauthlib) + `(("python-requests-oauthlib" ,python-requests-oauthlib) ("python-six" ,python-six))) (native-inputs `(("python-mock" ,python-mock) ("python-pytest" ,python-pytest) - ("python-pytest-pep8" ,python-pytest-pep8) - ("python-pytest-cache" ,python-pytest-cache) ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-runner" ,python-pytest-runner) ("python-responses" ,python-responses))) (home-page "https://github.com/btongminh/mwclient") (synopsis "MediaWiki API client") @@ -13068,14 +13049,14 @@ several utilities, as well as an API for building localization tools.") (define-public python-packaging (package (name "python-packaging") - (version "19.2") + (version "20.0") (source (origin (method url-fetch) (uri (pypi-uri "packaging" version)) (sha256 (base32 - "0izwlz9h0bw171a1chr311g2y7n657zjaf4mq4rgm8pp9lbj9f98")))) + "1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -13318,14 +13299,15 @@ by path in a JSON document (see RFC 6901).") (version "1.16") (source (origin - (method url-fetch) + (method git-fetch) ;; pypi version lacks tests.js - (uri (string-append "https://github.com/stefankoegl/python-json-patch/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/stefankoegl/python-json-patch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "085ykisl8v7mv9h7hvhdy3l2fjzs4214gx32r5k6nx4f76hbv6y5")))) + "0k9pff06lxama3nhsc7cdxbp83422bdy8ifs52i6xkas8hpyzfzr")))) (build-system python-build-system) (native-inputs `(("python-jsonpointer" ,python-jsonpointer))) @@ -13344,13 +13326,14 @@ applying JSON Patches according to RFC 6902.") (version "0.4") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/stefankoegl/python-json-patch/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/stefankoegl/python-json-patch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0j0cd9z9zyp8kppp464jxrfgrnbgkzl1yi10i5gsv8yz6d95929d")))))) + "1fq02y57kinyknxjcav0slcb0k9mwdffqw2hnlhdkpj7palh2mwk")))))) (define-public python2-jsonpatch-0.4 (package-with-python2 python-jsonpatch-0.4)) @@ -13671,14 +13654,13 @@ many of the popular cloud service providers using a unified API.") (define-public python-smmap2 (package (name "python-smmap2") - (version "2.0.3") + (version "2.0.5") (source (origin (method url-fetch) (uri (pypi-uri "smmap2" version)) (sha256 - (base32 - "1hvn28p3zvxa98sbi9lrqvv2ps4q284j4jq9a619zw0m7yv0sly7")))) + (base32 "16k03pcnxd3lgzwgbd7nl4jwzm1wmahirvd09kljnzvy96hgza99")))) (build-system python-build-system) (native-inputs `(("python-nosexcover" ,python-nosexcover))) @@ -14555,14 +14537,14 @@ user's @file{~/Trash} directory.") (define-public python-yapf (package (name "python-yapf") - (version "0.24.0") + (version "0.29.0") (source (origin (method url-fetch) (uri (pypi-uri "yapf" version)) (sha256 (base32 - "0anwby0ydmyzcsgjc5dn1ryddwvii4dq61vck447q0n96npnzfyf")))) + "1pj3xzblmbssshi889b6n9hwqbjpabw6j0fimlng2sshd3226bki")))) (build-system python-build-system) (home-page "https://github.com/google/yapf") (synopsis "Formatter for Python code") @@ -14613,12 +14595,13 @@ files, and Makefiles.") (version "0.6") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/Suor/whatever/archive/" version - ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Suor/whatever") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "1rchg9hrlvw4sn20lq1zspczr4x1pv57c02gv73igiqx1hqpy2nc")) - (file-name (string-append name "-" version ".tar.gz")))) + (base32 "1q7ajgqjfivxqsqgnhp4lc4p6jxyh4zprcsdbpd6dw54inaf0av5")))) (build-system python-build-system) (arguments `(#:phases @@ -15543,14 +15526,14 @@ validation testing and application logic.") (define-public python-numba (package (name "python-numba") - (version "0.42.0") + (version "0.46.0") (source (origin (method url-fetch) (uri (pypi-uri "numba" version)) (sha256 (base32 - "03rqdfx0512lcri2bcpngx5k3jwfbqnanqj3n19c7d6h6hqxvq9x")))) + "1vnfzcq6fcnkmdms6114d49awvvj5181fl7z1wlha27qc2paxjy2")))) (build-system python-build-system) (arguments `(#:modules ((guix build utils) @@ -15567,7 +15550,7 @@ validation testing and application logic.") #t)) (add-after 'unpack 'remove-failing-tests (lambda _ - ;; FIXME: these tests fail for unknown reasons: + ;; FIXME: These tests fail for unknown reasons: ;; test_non_writable_pycache, test_non_creatable_pycache, and ;; test_frozen (all in numba.tests.test_dispatcher.TestCache). (substitute* "numba/tests/test_dispatcher.py" @@ -15580,10 +15563,20 @@ validation testing and application logic.") ;; These tests fail because we don't run the tests from the build ;; directory: test_setup_py_distutils, test_setup_py_setuptools - ;; They ar in numba.tests.test_pycc.TestDistutilsSupport. + ;; They are in numba.tests.test_pycc.TestDistutilsSupport. (substitute* "numba/tests/test_pycc.py" (("def test(_setup_py_distutils|_setup_py_setuptools)" _ m) (string-append "def guix_skip" m))) + + ;; These tests fail because our version of Python does not have + ;; a recognizable front-end for the Numba distribution to use + ;; to check against. + (substitute* "numba/tests/test_entrypoints.py" + (("def test(_init_entrypoint)" _ m) + (string-append "def guix_skip" m))) + (substitute* "numba/tests/test_jitclasses.py" + (("def test(_jitclass_longlabel_not_truncated)" _ m) + (string-append "def guix_skip" m))) #t)) (replace 'check (lambda _ @@ -15650,17 +15643,25 @@ object-oriented library such as @code{scikit-learn}.") (define-public python-dill (package (name "python-dill") - (version "0.2.9") + (version "0.3.1.1") (source (origin (method url-fetch) (uri (pypi-uri "dill" version)) (sha256 - (base32 "0vwqyi6hyz2r29zydc78dqymkbc5y7gia16xcdh215cikxph9mpn")))) + (base32 "1704g8z70d210ksgbccs2v545v9w0wc6lx15m296alb7jf0yzn22")))) (build-system python-build-system) - ;; FIXME: The check phase fails with "don't know how to make test from: …". - (arguments '(#:tests? #f)) - (home-page "https://pypi.org/project/dill") + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (with-directory-excursion "/tmp" + (invoke "nosetests" "-v")) + #t))))) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "https://pypi.org/project/dill/") (synopsis "Serialize all of Python") (description "Dill extends Python's @code{pickle} module for serializing and de-serializing Python objects to the majority of the built-in Python @@ -15676,18 +15677,38 @@ the saved state of the original interpreter session.") (define-public python-multiprocess (package (name "python-multiprocess") - (version "0.70.6.1") + (version "0.70.9") (source (origin (method url-fetch) (uri (pypi-uri "multiprocess" version)) (sha256 (base32 - "1ip5caz67b3q0553mr8gm8xwsb8x500jn8ml0gihgyfy52m2ypcq")))) + "1r882nvd44xqwbrclwqx5rhs80l6809rcvpc7pkpgnij06cvvmcz")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-broken-tests + (lambda _ + ;; This test is broken as there is no keyboard interrupt. + (substitute* "py3.7/multiprocess/tests/__init__.py" + (("^(.*)def test_wait_result" + line indent) + (string-append indent + "@unittest.skip(\"Disabled by Guix\")\n" + line))) + #t)) + ;; Tests must be run after installation. + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "python" "-m" "multiprocess.tests") + #t))))) (propagated-inputs `(("python-dill" ,python-dill))) - (home-page "https://pypi.org/project/multiprocess") + (home-page "https://pypi.org/project/multiprocess/") (synopsis "Multiprocessing and multithreading in Python") (description "This package is a fork of the multiprocessing Python package, a package @@ -15889,41 +15910,63 @@ append on old values. Partd excels at shuffling operations.") (define-public python2-partd (package-with-python2 python-partd)) +(define-public python-fsspec + (package + (name "python-fsspec") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fsspec" version)) + (sha256 + (base32 + "1g9ba8v04s1nrh7pvzfm2md7ivl2mrz3hcq3y9d1a44gd62h17zj")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; there are none + (home-page "https://github.com/intake/filesystem_spec") + (synopsis "File-system specification") + (description "The purpose of this package is to produce a template or +specification for a file-system interface, that specific implementations +should follow, so that applications making use of them can rely on a common +behavior and not have to worry about the specific internal implementation +decisions with any given backend.") + (license license:bsd-3))) + (define-public python-dask (package (name "python-dask") - (version "1.2.2") + (version "2.9.0") (source (origin (method url-fetch) (uri (pypi-uri "dask" version)) (sha256 - (base32 "0b29gvf96gmp20wicly3v3mhyc93zbm3mdv935fka6x0wax7cy2y")))) + (base32 "1w1hqr8vyx6ygwflj2737dcy0mmgvrc0s602gnny8pzlcbs9m76b")))) (build-system python-build-system) - ;; A single test out of 5000+ fails. This test is marked as xfail when - ;; pytest-xdist is used. (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'disable-broken-test + (add-after 'unpack 'disable-broken-tests (lambda _ + ;; This test is marked as xfail when pytest-xdist is used. (substitute* "dask/tests/test_threaded.py" (("def test_interrupt\\(\\)" m) (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n" m))) - (when (which "python2") - ;; This test fails with recent Pandas: - ;; . - (substitute* "dask/dataframe/tests/test_dataframe.py" - (("def test_info\\(\\)" m) - (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n" - m)))) + ;; This one fails with a type error: + ;; TypeError: Already tz-aware, use tz_convert to convert. + (substitute* "dask/dataframe/tests/test_shuffle.py" + (("def test_set_index_timestamp\\(\\)" m) + (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n" + m))) #t)) (replace 'check (lambda _ (invoke "pytest" "-vv")))))) (propagated-inputs `(("python-cloudpickle" ,python-cloudpickle) + ("python-fsspec" ,python-fsspec) ("python-numpy" ,python-numpy) + ("python-packaging" ,python-packaging) ("python-pandas" ,python-pandas) ("python-partd" ,python-partd) ("python-toolz" ,python-toolz) @@ -15942,9 +15985,6 @@ larger-than-memory or distributed environments. These parallel collections run on top of the dynamic task schedulers. ") (license license:bsd-3))) -(define-public python2-dask - (package-with-python2 python-dask)) - (define-public python-ilinkedlist (package (name "python-ilinkedlist") @@ -16479,14 +16519,14 @@ time-or-computationally-expensive properties quick and easy and works in Python (define-public python-folium (package (name "python-folium") - (version "0.10.0") + (version "0.10.1") (source (origin (method url-fetch) (uri (pypi-uri "folium" version)) (sha256 (base32 - "18fzxijsgrb95r0a8anc9ba5ijyw3nlnv3rpavfbkqa5v878x84f")))) + "0gcc267wxwxr57ry86pqpbiyfvl0g48hfvgy0f2mz9s58g87kgzd")))) (build-system python-build-system) (propagated-inputs `(("python-branca" ,python-branca) @@ -16786,3 +16826,274 @@ services to what you expect in your tests.") (define-public python2-ujson (package-with-python2 python-ujson)) + +(define-public python-iocapture + ;; The latest release is more than a year older than this commit. + (let ((commit "fdc021c431d0840303908dfc3ca8769db383595c") + (revision "1")) + (package + (name "python-iocapture") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oinume/iocapture.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mkbhqibxvgwg0p7slr8dfraa3g2s6bsayladhax2jccwj4kcndz")))) + (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) + (invoke "py.test" "-v" "tests") + #t))))) + (propagated-inputs + `(("python-flexmock" ,python-flexmock) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-six" ,python-six))) + (home-page "https://github.com/oinume/iocapture") + (synopsis "Python capturing tool for stdout and stderr") + (description + "This package helps you to capture the standard out (stdout) and the +standard error channel (stderr) in your program.") + (license license:expat)))) + +(define-public python-argh + ;; There are 21 commits since the latest release containing important + ;; improvements. + (let ((commit "dcd3253f2994400a6a58a700c118c53765bc50a4") + (revision "1")) + (package + (name "python-argh") + (version (git-version "0.26.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/neithere/argh.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1p5h3dnpbsjmqrvil96s71asc6i3gpinmbrabqmwnrsxprz7r3ns")))) + (build-system python-build-system) + (propagated-inputs + `(("python-iocapture" ,python-iocapture) + ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-xdist" ,python-pytest-xdist) + ("python-tox" ,python-tox))) + (home-page "https://github.com/neithere/argh/") + (synopsis "Argparse wrapper with natural syntax") + (description + "python-argh is a small library that provides several layers of +abstraction on top of @code{python-argparse}. The layers can be mixed. It is +always possible to declare a command with the highest possible (and least +flexible) layer and then tune the behaviour with any of the lower layers +including the native API of @code{python-argparse}.") + (license license:lgpl3+)))) + +(define-public python-ppft + (package + (name "python-ppft") + (version "1.6.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ppft" version)) + (sha256 + (base32 + "1z1invkhszc5d2mvgr221v7cszzifcc77mz0pv3wjp6x5q2768cy")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; there are none + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://pypi.org/project/ppft/") + (synopsis "Fork of Parallel Python") + (description + "This package is a fork of Parallel Python. The Parallel Python +module (@code{pp}) provides an easy and efficient way to create +parallel-enabled applications for @dfn{symmetric multiprocessing} (SMP) +computers and clusters. It features cross-platform portability and dynamic +load balancing.") + (license license:bsd-3))) + +(define-public python-pox + (package + (name "python-pox") + (version "0.2.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pox" version)) + (sha256 + (base32 + "0y17ckc2p6i6709s279sjdj4q459mpcc38ymg9zv9y6vl6jf3bq6")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (mkdir-p "/tmp/guix") + (setenv "SHELL" "bash") + (setenv "USERNAME" "guix") + (setenv "HOME" "/tmp/guix") ; must end on USERNAME... + (invoke "py.test" "-vv") + #t))))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("which" ,which))) + (home-page "https://pypi.org/project/pox/") + (synopsis "Python utilities for filesystem exploration and automated builds") + (description + "Pox provides a collection of utilities for navigating and manipulating +filesystems. This module is designed to facilitate some of the low level +operating system interactions that are useful when exploring a filesystem on a +remote host. Pox provides Python equivalents of several shell commands such +as @command{which} and @command{find}. These commands allow automated +discovery of what has been installed on an operating system, and where the +essential tools are located.") + (license license:bsd-3))) + +(define-public python-pathos + (package + (name "python-pathos") + (version "0.2.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pathos" version)) + (sha256 + (base32 + "0in8hxdz7k081ijn6q94gr39ycy7363sx4zysmbwyvd7snqjrbi1")))) + (build-system python-build-system) + (arguments + '(#:phases + (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) + ("python-multiprocess" ,python-multiprocess) + ("python-pox" ,python-pox) + ("python-ppft" ,python-ppft))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://pypi.org/project/pathos/") + (synopsis + "Parallel graph management and execution in heterogeneous computing") + (description + "Python-pathos is a framework for heterogenous computing. It provides a +consistent high-level interface for configuring and launching parallel +computations across heterogenous resources. Python-pathos provides configurable +launchers for parallel and distributed computing, where each launcher contains +the syntactic logic to configure and launch jobs in an execution environment.") + (license license:bsd-3))) + +(define-public python-flit + (package + (name "python-flit") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flit" version)) + (sha256 + (base32 + "0h5vvmqinqzn97mr3ix7zx53af9ad4fimjjwqpx88yp8qhz4r5bc")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ; XXX: Check requires network access. + (home-page "https://flit.readthedocs.io/") + (synopsis + "Simple packaging tool for simple packages") + (description + "Flit is a simple way to put Python packages and modules on PyPI. Flit +packages a single importable module or package at a time, using the import +name as the name on PyPI. All subpackages and data files within a package +are included automatically.") + (license license:bsd-3))) + +(define-public python-pathtools + (package + (name "python-pathtools") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pathtools" version)) + (sha256 + (base32 + "1h7iam33vwxk8bvslfj4qlsdprdnwf8bvzhqh3jq5frr391cadbw")))) + (build-system python-build-system) + (home-page + "https://github.com/gorakhargosh/pathtools") + (synopsis "Path utilities for Python") + (description "Pattern matching and various utilities for file systems +paths.") + (license license:expat))) + +(define-public python-fastentrypoints + (package + (name "python-fastentrypoints") + (version "0.12") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fastentrypoints" version)) + (sha256 + (base32 + "02s1j8i2dzbpbwgq2a3fiqwm3cnmhii2qzc0k42l0rdxd4a4ya7z")))) + (build-system python-build-system) + (home-page + "https://github.com/ninjaaron/fast-entry_points") + (synopsis + "Makes entry_points specified in setup.py load more quickly") + (description + "Using entry_points in your setup.py makes scripts that start really +slowly because it imports pkg_resources. This package allows such setup +scripts to load entry points more quickly.") + (license license:bsd-3))) + +(define-public python-funcparserlib + (package + (name "python-funcparserlib") + (version "0.3.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "funcparserlib" version)) + (sha256 + (base32 + "07f9cgjr3h4j2m67fhwapn8fja87vazl58zsj4yppf9y3an2x6dp")))) + (native-inputs + `(("python-tox" ,python-tox))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "tox")))))) + (build-system python-build-system) + (home-page + "https://github.com/vlasovskikh/funcparserlib") + (synopsis + "Recursive descent parsing library based on functional combinators") + (description + "This package is a recursive descent parsing library for Python based on +functional combinators. Parser combinators are just higher-order functions +that take parsers as their arguments and return them as result values.") + (license license:expat)))