X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/dd2d3ed2d30b5d705f9ed8695ab3171c29469f76..286a3d6f52398cf79eb8c211c830ced57064948c:/gnu/packages/python-xyz.scm diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index bf2e7de238..074ea394e1 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -61,7 +61,7 @@ ;;; Copyright © 2019 Jack Hill ;;; Copyright © 2019, 2020 Guillaume Le Vaillant ;;; Copyright © 2019, 2020 Alex Griffin -;;; Copyright © 2019 Pierre Langlois +;;; Copyright © 2019, 2020 Pierre Langlois ;;; Copyright © 2019 Jacob MacDonald ;;; Copyright © 2019, 2020 Giacomo Leidi ;;; Copyright © 2019 Wiktor Żelazny @@ -81,6 +81,8 @@ ;;; Copyright © 2020 Josh Holland ;;; Copyright © 2020 Yuval Kogman ;;; Copyright © 2020 Michael Rohleder +;;; Copyright © 2020 Vinicius Monego +;;; Copyright © 2020 Guy Fleury Iteriteka ;;; ;;; This file is part of GNU Guix. ;;; @@ -106,6 +108,7 @@ #:use-module (gnu packages backup) #:use-module (gnu packages bash) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) @@ -559,10 +562,10 @@ and function call return values in a human-readable way.") (build-system python-build-system) (native-inputs `(("python-mock" ,python-mock))) - (home-page "https://github.com/binstar/clyent") + (home-page "https://github.com/Anaconda-Platform/clyent") (synopsis "Command line client library") - (description "Clyent is a Python command line utiliy library. It is used -by @code{binstar}, @code{binstar-build} and @code{chalmers}.") + (description "Clyent is a Python command line utility library. It is used +by @code{binstar}, @code{binstar-build}, and @code{chalmers}.") (license license:bsd-3))) (define-public python2-clyent @@ -2389,6 +2392,36 @@ files.") (define-public python2-pyld (package-with-python2 python-pyld)) +(define-public python-cli-helpers + (package + (name "python-cli-helpers") + (version "2.0.1") + (source + (origin + ;; There's no source tarball on PyPI. + (method git-fetch) + (uri (git-reference + (url "https://github.com/dbcli/cli_helpers.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bg2iw9l5dip0kbs00hajdk2v18wvhssbnq8hdf71278qf0wks5l")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-wcwidth" ,python-wcwidth) + ("python-configobj" ,python-configobj) + ("python-tabulate" ,python-tabulate) + ("python-terminaltables" ,python-terminaltables))) + (home-page "https://github.com/dbcli/cli_helpers") + (synopsis "Helpers for building command-line apps") + (description + "CLI Helpers is a Python package that makes it easy to perform common +tasks when building command-line apps. It's a helper library for command-line +interfaces.") + (license license:bsd-3))) + (define-public python-click (package (name "python-click") @@ -2429,6 +2462,18 @@ with sensible defaults out of the box.") (define-public python2-click (package-with-python2 python-click)) +(define-public python-click-5 + (package (inherit python-click) + (name "python-click") + (version "5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "click" version)) + (sha256 + (base32 "0njsm0wn31l21bi118g5825ma5sa3rwn7v2x4wjd7yiiahkri337")))) + (arguments `()))) + (define-public python-wheel (package (name "python-wheel") @@ -4467,6 +4512,26 @@ library, libgit2 implements Git plumbing.") ;; GPL2.0 only, with linking exception. (license license:gpl2))) +(define-public python-patiencediff + (package + (name "python-patiencediff") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "patiencediff" version)) + (sha256 + (base32 + "0yjk50lsd4gnllxls925xbcdxwvmda37w2a1shk0p1nvl3fcha6q")))) + (build-system python-build-system) + (home-page "https://www.breezy-vcs.org/") + (synopsis "Python implementation of the patiencediff algorithm") + (description + "This package contains a Python implementation of the @code{patiencediff} +algorithm. Patiencediff provides a good balance of performance, nice output for +humans, and implementation simplicity.") + (license license:gpl2))) + (define-public python-pyparsing (package (name "python-pyparsing") @@ -4991,46 +5056,51 @@ as the original project seems to have been abandoned circa 2007.") (package-with-python2 python-socksipy-branch)) (define-public python-socksipychain - (let ((commit "eb5ee8741ce006ac0c5c3e2e83204062c348c155") - (revision "1") - (version "2.1.1")) - (package - (name "python-socksipychain") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pagekite/PySocksipyChain.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0fpphn6xnpm7qk8a914s4abycsbq9w6qkci07my632v0fylnm5n7")))) - (build-system python-build-system) - (arguments - `(#:tests? #f)) ; Tests try to access the network. - (home-page "http://pagekite.net/wiki/Floss/PySocksipyChain/") - (synopsis "Python SOCKS module with chained proxies support") - (description - "SocksiPyChain is a modified version of the SocksiPy SOCKS module, which + (package + (name "python-socksipychain") + (version "2.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pagekite/PySocksipyChain.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02pp994qmiivkdx4y6az5q80l6rzy8g6d2ipvp7kns7lsxvmc2y7")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ; Tests try to access the network. + (home-page "http://pagekite.net/wiki/Floss/PySocksipyChain/") + (synopsis "Python SOCKS module with chained proxies support") + (description + "SocksiPyChain is a modified version of the SocksiPy SOCKS module, which adds support for arbitrary chaining of proxy servers and various modes of TLS/SSL encryption. It was developed for use in PageKite, and also includes a simple netcat replacement with chaining support.") - (license license:bsd-3)))) + (license license:bsd-3))) (define-public python-pycodestyle (package (name "python-pycodestyle") - (version "2.5.0") + (version "2.6.0") (source (origin (method url-fetch) (uri (pypi-uri "pycodestyle" version)) (sha256 (base32 - "0v4prb05n21bm8650v0a01k1nyqjdmkrsm3zycfxh2j5k9n962p4")))) + "0bhr6ia0hmgx3nhgibc9pmkzhlh1zcqk707i5fbxgs702ll7v2n5")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest" "-vv")))))) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "https://pycodestyle.readthedocs.io/") (synopsis "Python style guide checker") (description "@code{pycodestyle} (formerly pep8) is a tool to check @@ -5121,17 +5191,18 @@ multivalue dictionary that retains the order of insertions and deletions.") (define-public python-autopep8 (package (name "python-autopep8") - (version "1.3.5") + (version "1.5.3") (source (origin (method url-fetch) (uri (pypi-uri "autopep8" version)) (sha256 (base32 - "192bvhzi4d0claqxgzymvv7k3qnj627742bc8sgxpzjj42pd9112")))) + "1w6vh627vrmgfbvrdcxrc3k4gxcldrb2lpgxv9irkdds851qrzb0")))) (build-system python-build-system) (propagated-inputs - `(("python-pycodestyle" ,python-pycodestyle))) + `(("python-pycodestyle" ,python-pycodestyle) + ("python-toml" ,python-toml))) (home-page "https://github.com/hhatto/autopep8") (synopsis "Format Python code according to the PEP 8 style guide") (description @@ -5315,6 +5386,132 @@ a general image processing tool.") (define-public python2-pillow (package-with-python2 python-pillow)) +(define-public python-pillow-2.9 + (package + (inherit python-pillow) + (version "2.9.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Pillow" version)) + (sha256 + (base32 + "0ada7lf3lmbdsqm3b7ja920p1pllyfhmqndr85ikpj77fmz9s5qg")))) + (arguments + (substitute-keyword-arguments (package-arguments python-pillow) + ((#:tests? _ #f) #f))) + (properties '((hidden? #t))))) + +(define-public python-roifile + (package + (name "python-roifile") + (version "2020.5.28") + (source + (origin + (method url-fetch) + (uri (pypi-uri "roifile" version)) + (sha256 + (base32 + "1vwbwfsw745gyqymff6dllc5zqjsgqmxaw245sw4an6yw9rcbzc0")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) ; there are none + (propagated-inputs + `(("python-numpy" ,python-numpy))) + (home-page "https://www.lfd.uci.edu/~gohlke/") + (synopsis "Read and write ImageJ ROI format") + (description "Roifile is a Python library to read, write, create, and plot +ImageJ ROIs, an undocumented and ImageJ application specific format to store +regions of interest, geometric shapes, paths, text, etc for image overlays.") + (license license:bsd-3))) + +(define-public python-tifffile + (package + (name "python-tifffile") + (version "2020.6.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tifffile" version)) + (sha256 + (base32 + "0xv3ynkbrsibqvx7250075idb7wm3canjd6lx2nzf3cbp6l07577")))) + (build-system python-build-system) + ;; Tests require lfdfiles, which depends on tifffile + (arguments `(#:tests? #f)) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ;;("python-lfdfiles" ,python-lfdfiles) + ("python-roifile" ,python-roifile))) + (home-page "https://www.lfd.uci.edu/~gohlke/") + (synopsis "Read and write TIFF(r) files") + (description "This package lets you read image and metadata from many +bio-scientific formats such as plain TIFF, BigTIFF, OME-TIFF, STK, LSM, SGI, +NIH, ImageJ, MicroManager, MD GEL, and FluoView files. It also lets you write +numpy arrays to TIFF, BigTIFF, and ImageJ hyperstack compatible files.") + (license license:bsd-3))) + +(define-public python-lfdfiles + (package + (name "python-lfdfiles") + (version "2020.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "lfdfiles" version)) + (sha256 + (base32 + "1n9bkfn4vxl0lbhzd0m35lq86ayx5fwcj3ghpfl2vbjbsnfp3h47")))) + (build-system python-build-system) + (propagated-inputs + `(("python-click" ,python-click) + ("python-numpy" ,python-numpy) + ("python-tifffile" ,python-tifffile))) + (home-page "https://www.lfd.uci.edu/~gohlke/") + (synopsis "Work with LFD data files") + (description + "Lfdfiles is a Python library and console script for reading, writing, +converting, and viewing many of the proprietary file formats used to store +experimental data and metadata at the Laboratory for Fluorescence Dynamics.") + (license license:bsd-3))) + +(define-public python-imageio + (package + (name "python-imageio") + (version "2.8.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "imageio" version)) + (sha256 + (base32 + "1ksjl523fm0fikrd85llxfba35rc1qsgwadgr6mbn9kis79xcpzv")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; many tests require online data + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key outputs inputs tests? #:allow-other-keys) + (if tests? + (begin + ;; Make installed package available for running the tests. + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-vv")) + #t)))))) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ("python-pillow" ,python-pillow) + ("python-psutil" ,python-psutil))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://imageio.github.io/") + (synopsis "Library for reading and writing a wide range of image data") + (description + "Imageio is a Python library that provides an easy interface to read and +write a wide range of image data, including animated images, video, volumetric +data, and scientific formats.") + (license license:bsd-2))) + (define-public python-pycparser (package (name "python-pycparser") @@ -5364,14 +5561,14 @@ a front-end for C compilers or analysis tools.") (define-public python-pywavelets (package (name "python-pywavelets") - (version "1.0.1") + (version "1.1.1") (home-page "https://github.com/PyWavelets/pywt") (source (origin (method url-fetch) (uri (pypi-uri "PyWavelets" version)) (sha256 (base32 - "1p3qv2v66ghnqrb1f98wyyhp9dz71jwcd6kfpsax65sfdpiyqp1w")))) + "1j88c0r4j1d4mb3f8qhz6nalyx21qrzmsm70rjngnkybd87v8r0s")))) (build-system python-build-system) (arguments '(#:modules ((ice-9 ftw) @@ -5379,17 +5576,18 @@ a front-end for C compilers or analysis tools.") (srfi srfi-26) (guix build utils) (guix build python-build-system)) - #:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - (let ((cwd (getcwd)) - (libdir (find (cut string-prefix? "lib." <>) - (scandir "build")))) - (with-directory-excursion (string-append cwd "/build/" libdir) - (invoke "nosetests" "-v" ".")))))))) + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (let ((cwd (getcwd)) + (libdir (find (cut string-prefix? "lib." <>) + (scandir "build")))) + (with-directory-excursion (string-append cwd "/build/" libdir) + (invoke "pytest" "-vv")))))))) (native-inputs `(("python-matplotlib" ,python-matplotlib) ;for tests - ("python-nose" ,python-nose))) + ("python-pytest" ,python-pytest))) (propagated-inputs `(("python-numpy" ,python-numpy))) (synopsis "Wavelet transforms in Python") @@ -5647,7 +5845,7 @@ memoizing PEG/Packrat parser in Python.") (define-public python-gridmap (package (name "python-gridmap") - (version "0.13.0") + (version "0.14.0") (source (origin (method git-fetch) @@ -5656,7 +5854,7 @@ memoizing PEG/Packrat parser in Python.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1478lbwsr1w24cii2x01m2910fvh8r43ghnb78nc972a96hqiknm")))) + (base32 "0v0sgpg6pz8h61f9aqjf5xk0ipr512bbz8dxzjjylksj135qr19l")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; FIXME: Requires python-cherrypy. @@ -6453,7 +6651,7 @@ callback signature using a prototype function.") (propagated-inputs `(("python-backcall" ,python-backcall) ("python-pyzmq" ,python-pyzmq) - ("python-prompt-toolkit" ,python-prompt-toolkit) + ("python-prompt-toolkit" ,python-prompt-toolkit-2) ("python-terminado" ,python-terminado) ("python-matplotlib" ,python-matplotlib) ("python-numpy" ,python-numpy) @@ -6834,14 +7032,14 @@ the GObject Introspection bindings to libnotify for non-GTK applications.") (define-public python-beautifulsoup4 (package (name "python-beautifulsoup4") - (version "4.7.1") + (version "4.9.1") (source (origin (method url-fetch) (uri (pypi-uri "beautifulsoup4" version)) (sha256 (base32 - "0j2kycz2dxgx68xzjm7rxg5xn6v61gq5ifvxyg99slmqkybnal4l")))) + "1mvzlw3pzbhsvl3z8784s5h7iiflm2hggiy1fxyrrxwnbc8lvk3k")))) (build-system python-build-system) (arguments `(#:phases @@ -6877,14 +7075,14 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.") (define-public python-soupsieve (package (name "python-soupsieve") - (version "1.9.5") + (version "2.0.1") (source (origin (method url-fetch) (uri (pypi-uri "soupsieve" version)) (sha256 (base32 - "1nhd0q0ifwva9wn645s6pn74p1rd97asn3qfg75nphx1wkgcbhg2")))) + "0ch2rhvsbwfpvzm4kzy81rclbzr533yv83hzg1gx55byfa0w37d5")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;;XXX: 2 tests fail currently despite claming they were to be @@ -6901,10 +7099,19 @@ some are not yet implemented).") (properties `((python2-variant . ,(delay python2-soupsieve)))) (license license:expat))) +;; This is the last version that supports python-2 (define-public python2-soupsieve (let ((base (package-with-python2 (strip-python2-variant python-soupsieve)))) (package (inherit base) + (version "1.9.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "soupsieve" version)) + (sha256 + (base32 + "1apgqxngi1216h1cyvrvj9gy3wf45mh1lz4n76j26jf3k36bm1br")))) (propagated-inputs `(("python2-backports-functools-lru-cache" ,python2-backports-functools-lru-cache) @@ -7253,30 +7460,47 @@ falling into the Python interpreter.") (define-public python2-q (package-with-python2 python-q)) -(define-public python2-xlib +(define-public python-xlib (package - (name "python2-xlib") - (version "0.14") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/python-xlib/python-xlib" - "/" version "/" - "python-xlib-" version ".tar.gz")) - (sha256 - (base32 - "1sv0447j0rx8cgs3jhjl695p5pv13ihglcjlrrz1kq05lsvb0wa7")))) + (name "python-xlib") + (version "0.27") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/python-xlib/python-xlib.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09kimic8rhprx3q8nzalc4aggg42ahqm4v5qcj8dm68yvxfdk986")))) (build-system python-build-system) (arguments - `(#:python ,python-2 ;Python 2 only - #:tests? #f)) ;no tests - (home-page "http://python-xlib.sourceforge.net/") + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'start-xserver + (lambda* (#:key inputs #:allow-other-keys) + (let ((xorg-server (assoc-ref inputs "xorg-server"))) + ;; There must be a running X server and make check doesn't + ;; start one. Therefore we must do it. + (system (format #f "~a/bin/Xvfb :1 &" xorg-server)) + (setenv "DISPLAY" ":1") + #t)))))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-setuptools-scm" ,python-setuptools-scm) + ("python-six" ,python-six) + ("xorg-server" ,xorg-server))) + (home-page "https://github.com/python-xlib/python-xlib") (synopsis "Python X11 client library") (description - "The Python X Library is intended to be a fully functional X client -library for Python programs. It is useful to implement low-level X clients. -It is written entirely in Python.") + "The Python X Library is intended to be a fully functional +X client library for Python programs. It is useful to implement +low-level X clients. It is written entirely in Python.") (license license:gpl2+))) +(define-public python2-xlib + (package-with-python2 python-xlib)) + (define-public python-singledispatch (package (name "python-singledispatch") @@ -7484,14 +7708,14 @@ PEP 8.") (define-public python-pyflakes (package (name "python-pyflakes") - (version "2.1.1") + (version "2.2.0") (source (origin (method url-fetch) (uri (pypi-uri "pyflakes" version)) (sha256 (base32 - "18pq95a1xj2dgdd0m85gyfsn40jajj4xc3lp8wfv7igqhrc86xnr")))) + "1j3zqbiwkyicvww499bblq33x0bjpzdrxajhaysr7sk7x5gdgcim")))) (build-system python-build-system) (home-page "https://github.com/pyflakes/pyflakes") @@ -7585,13 +7809,13 @@ complexity of Python source code.") (define-public python-flake8 (package (name "python-flake8") - (version "3.7.9") + (version "3.8.3") (source (origin (method url-fetch) (uri (pypi-uri "flake8" version)) (sha256 (base32 - "1yscj6avirm6m12bjh4fn2lfgxaamqsjh9pirdqfi0fcgq8ils25")))) + "02527892hh0qjivxaiphzalj7q32qkna1cqaikjs7c03mk5ryjzh")))) (build-system python-build-system) (arguments `(#:phases @@ -8638,6 +8862,26 @@ a hash value.") (define-public python2-termcolor (package-with-python2 python-termcolor)) +(define-public python-terminaltables + (package + (name "python-terminaltables") + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "terminaltables" version)) + (sha256 + (base32 + "109vhldk6nv1z3hzp4dyqf6rjvlhl0y2k5k7qcm9fcrq5swhxszk")))) + (build-system python-build-system) + (home-page "https://github.com/Robpol86/terminaltables") + (synopsis + "Generate simple tables in terminals from a nested list of strings") + (description + "This package makes it easy to draw tables in terminal/console +applications from a list of lists of strings. It supports multi-line rows.") + (license license:expat))) + (define-public python-libarchive-c (package (name "python-libarchive-c") @@ -9007,8 +9251,7 @@ interactive computing.") "1ismyaxbv9d56yqqqb8xl58hg0iq0bbyy014a53y1g3hfbc8g7q7")))) (build-system python-build-system) (propagated-inputs - `(("python-ipykernel" - ,(prompt-toolkit-2-instead-of-prompt-toolkit python-ipykernel)) + `(("python-ipykernel" ,python-ipykernel) ("python-notebook" ,python-notebook))) (native-inputs `(("python-certifi" ,python-certifi) @@ -9035,8 +9278,7 @@ notebooks.") "15sww2mvnkqlvx55gwa82v05062a8j1xpncnqna4k9sl53hgcig9")))) (build-system python-build-system) (propagated-inputs - `(("python-ipython" ,(prompt-toolkit-2-instead-of-prompt-toolkit - python-ipython)) + `(("python-ipython" ,python-ipython) ("python-traitlets" ,python-traitlets) ("python-widgetsnbextension" ,python-widgetsnbextension))) (native-inputs @@ -9066,8 +9308,7 @@ in the data.") "06s3kr5vx0l1y1b7fxb04dmrppscl7q69sl9yyfr0d057d1ssvkg")))) (build-system python-build-system) (propagated-inputs - `(("python-ipykernel" ,(prompt-toolkit-2-instead-of-prompt-toolkit - python-ipykernel)) + `(("python-ipykernel" ,python-ipykernel) ("python-jupyter-client" ,python-jupyter-client) ("python-prompt-toolkit" ,python-prompt-toolkit-2) ("python-pygments" ,python-pygments))) @@ -9881,6 +10122,38 @@ concurrent.futures package from Python 3.2") ("python2-pytest" ,python2-pytest) ,@(package-native-inputs promise)))))) +(define-public python-progressbar2 + (package + (name "python-progressbar2") + (version "3.51.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "progressbar2" version)) + (sha256 + (base32 + "0b2v3mim90rmfvixkaniz2qrs650sk230rzgd5zhcjfldmlqgxpc")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-utils" ,python-utils))) + (native-inputs + `(("python-flake8" ,python-flake8) + ("python-freezegun" ,python-freezegun) + ("python-pycodestyle" ,python-pycodestyle) + ("python-pytest" ,python-pytest) + ("python-pytest-cache" ,python-pytest-cache) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-flakes" ,python-pytest-flakes) + ("python-pytest-pep8" ,python-pytest-pep8) + ("python-sphinx" ,python-sphinx))) + (home-page "https://github.com/WoLpH/python-progressbar") + (synopsis "Text progress bar library for Python") + (description + "This package provides a Python progressbar library to provide +visual (yet text based) progress to long running operations.") + (license license:bsd-3))) + (define-public python-progressbar33 (package (name "python-progressbar33") @@ -10052,6 +10325,29 @@ document.") (define-public python2-jmespath (package-with-python2 python-jmespath)) +(define-public python-symengine + (package + (name "python-symengine") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "symengine" version)) + (sha256 + (base32 "1kn1w4dp9mrsq6kzmhf4pjmx3wicxc3dw1mwa924q8g48g77lr4c")))) + (build-system python-build-system) + (native-inputs + `(("cmake" ,cmake) + ("python-cython" ,python-cython))) + (inputs + `(("symengine" ,symengine))) + (home-page "https://github.com/symengine/symengine.py") + (synopsis "Python library providing wrappers to SymEngine") + (description + "This library provides a Python wrapper to SymEngine, a fast C++ symbolic +manipulation library.") + (license license:expat))) + (define-public python-botocore (package (name "python-botocore") @@ -10087,6 +10383,24 @@ interface to the Amazon Web Services (AWS) API.") (define-public python2-botocore (package-with-python2 python-botocore)) +(define-public python-pyfiglet + (package + (name "python-pyfiglet") + (version "0.8.post1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyfiglet" version)) + (sha256 + (base32 + "0f9n2076ga2ccsg174k2d7n0z4d44ml96yzc72s6g4nhalbk5hn6")))) + (build-system python-build-system) + (home-page "https://github.com/pwaller/pyfiglet") + (synopsis "Draw ASCII art big letters in Python") + (description "This module lets you draw large letter from ordinary characters +in pure Python.") + (license license:expat))) + (define-public python-xdo (package (name "python-xdo") @@ -11155,6 +11469,29 @@ functionality in a modular way, allowing you to extend your panel with your own code, responding to click events and updating clock every second.") (license license:bsd-3))) +(define-public python2-selectors2 + (package + (name "python2-selectors2") + (version "2.0.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "selectors2" version)) + (sha256 + (base32 + "110qr00b9axz1f1jm12b495jkvrz80smknxvssqlhwk0dx67rdw1")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (native-inputs + `(("python2-mock" ,python2-mock) + ("python2-psutil" ,python2-psutil))) + (home-page "https://www.github.com/SethMichaelLarson/selectors2") + (synopsis "Backport of the selectors module from Python 3.5+") + (description + "This package provides a drop-in replacement for the @code{selectors} +module in Python 3.5 and later.") + (license license:expat))) + (define-public python-tblib (package (name "python-tblib") @@ -11201,13 +11538,13 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc). (define-public python-greenlet (package (name "python-greenlet") - (version "0.4.15") + (version "0.4.16") (source (origin (method url-fetch) (uri (pypi-uri "greenlet" version)) (sha256 (base32 - "1g4g1wwc472ds89zmqlpyan3fbnzpa8qm48z3z1y6mlk44z485ll")))) + "0v2571d0av1hz3yx63gvmnrinyn57nnvibg4zkl9frv74b3yl1kf")))) (build-system python-build-system) (home-page "https://greenlet.readthedocs.io/") (synopsis "Lightweight in-process concurrent programming") @@ -11251,13 +11588,13 @@ graphviz.") (define-public python-gevent (package (name "python-gevent") - (version "20.5.0") + (version "20.6.2") (source (origin (method url-fetch) (uri (pypi-uri "gevent" version)) (sha256 (base32 - "1yppsrs0ccld9j9zfbsd0bxb987b2zkh2ar7whjxcrqzpkvg3iqx")) + "1ldmppgghfphdaazjw6wq2i17xcmsjb2jsizfa4cjlg812zjlg52")) (modules '((guix build utils))) (snippet '(begin @@ -11376,15 +11713,15 @@ graphviz.") "known_failures.py" "--ignore" "skipped_tests.txt")))))) (propagated-inputs `(("python-greenlet" ,python-greenlet) - ("python-objgraph" ,python-objgraph))) + ("python-objgraph" ,python-objgraph) + ("python-zope.event" ,python-zope-event) + ("python-zope.interface" ,python-zope-interface))) (native-inputs `(("python-six" ,python-six) ;; For tests. ("python-dnspython" ,python-dnspython) - ("python-psutil" ,python-psutil) - ("python-zope.event" ,python-zope-event) - ("python-zope.interface" ,python-zope-interface))) + ("python-psutil" ,python-psutil))) (inputs `(("c-ares" ,c-ares) ("libev" ,libev))) @@ -11402,18 +11739,19 @@ to provide a high-level synchronous API on top of the libev event loop.") (package (inherit base) (native-inputs `(,@(package-native-inputs base) - ("python-mock" ,python2-mock)))))) + ("python-mock" ,python2-mock) + ("python2-selectors2" ,python2-selectors2)))))) (define-public python-fastimport (package (name "python-fastimport") - (version "0.9.6") + (version "0.9.8") (source (origin (method url-fetch) (uri (pypi-uri "fastimport" version)) (sha256 - (base32 "1aqjsin4rmqm7ln4j0p73fzxifws6c6ikgyhav7r137m2ixsxl43")))) + (base32 "1fb3b7y3sw55f6wykxx478ybkirz0l52lgdqmbhmc0h0jzmyiwmj")))) (build-system python-build-system) (home-page "https://github.com/jelmer/python-fastimport") (synopsis "VCS fastimport parser and generator in Python") @@ -11503,13 +11841,13 @@ It uses LR parsing and does extensive error checking.") (define-public python-tabulate (package (name "python-tabulate") - (version "0.7.7") + (version "0.8.7") (source (origin (method url-fetch) (uri (pypi-uri "tabulate" version)) (sha256 (base32 - "1inqhspd4frxnp08c32yndr0lc4px1xfkqah184i5w09gkhvi843")))) + "01shi7bmj09f0bcm5s0c9skys063lzp76p0n4a2xmg041ni269yv")))) (build-system python-build-system) (arguments ;; FIXME: The pypi release tarball is missing a 'test/common.py' @@ -11749,17 +12087,26 @@ implementation has been adapted, improved, and fixed from Molten.") (define-public python-shellingham (package (name "python-shellingham") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (pypi-uri "shellingham" version)) (sha256 - (base32 - "1q7kws7w4x2hji3g7y0ni9ddk4sd676ylrb3db54gbpys6xj6nwq")))) + (base32 "07kmia2hvd2q7wik89m82hig9mqr2faynvy38vxq5fm0ps11jv2p")))) (build-system python-build-system) - (home-page - "https://github.com/sarugaku/shellingham") + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'restore-setup.py + ;; setup.py will return in the next release. + ;; + (lambda _ + (with-output-to-file "setup.py" + (lambda _ + (display "from setuptools import setup\nsetup()\n"))) + #t))))) + (home-page "https://github.com/sarugaku/shellingham") (synopsis "Tool to detect surrounding shell") (description "Shellingham detects what shell the current Python executable is @@ -11776,7 +12123,8 @@ running in.") (uri (pypi-uri "python-memcached" version)) (sha256 (base32 - "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2")))) + "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2")) + (patches (search-patches "python-memcached-syntax-warnings.patch")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) (home-page @@ -11880,7 +12228,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") (define-public poetry (package (name "poetry") - (version "1.0.5") + (version "1.0.9") ;; Poetry can only be built from source with Poetry. (source (origin @@ -11888,7 +12236,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") (uri (pypi-uri "poetry" version)) (sha256 (base32 - "02h387k0xssvv78yy82pcpknpq4w5ym2in1zl8cg9r5wljl5w6cf")))) + "1avp0db1a4hf6lz3wrzhpdvj4rpmzr4in3myrd3lp5j66nc5ck0a")))) (build-system python-build-system) (arguments `(#:tests? #f ;; Pypi does not have tests. @@ -11899,8 +12247,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") (substitute* "setup.py" ;; poetry won't update version as 21.0.0 relies on python > 3.6 (("keyring>=20.0.1,<21.0.0") "keyring>=21.0.0,<22.0.0") - (("pyrsistent>=0.14.2,<0.15.0") "pyrsistent>=0.14.2,<0.16.0") - (("importlib-metadata>=1.1.3,<1.2.0") "importlib-metadata>=1.1.3,<1.5.0")) + (("pyrsistent>=0.14.2,<0.15.0") "pyrsistent>=0.14.2,<0.17.0")) #t))))) (propagated-inputs `(("python-cachecontrol" ,python-cachecontrol) @@ -11908,9 +12255,9 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") ("python-cleo" ,python-cleo) ("python-clikit" ,python-clikit) ("python-html5lib" ,python-html5lib) - ("python-importlib-metadata" ,python-importlib-metadata) ;; python < 3.8 ("python-jsonschema" ,python-jsonschema) ("python-keyring" ,python-keyring) + ("python-msgpack-transitional" ,python-msgpack-transitional) ("python-pexpect" ,python-pexpect) ("python-pkginfo" ,python-pkginfo) ("python-pyparsing" ,python-pyparsing) @@ -12186,10 +12533,6 @@ characters, mouse support, and auto suggestions.") ("python-six" ,python-six) ("python-pygments" ,python-pygments))))) -(define-public prompt-toolkit-2-instead-of-prompt-toolkit - (package-input-rewriting/spec - `(("python-prompt-toolkit" . ,(const python-prompt-toolkit-2))))) - (define-public python2-prompt-toolkit (package-with-python2 python-prompt-toolkit-2)) @@ -12904,21 +13247,21 @@ English stemmer.") (package-with-python2 python-snowballstemmer)) (define-public python-setproctitle -(package - (name "python-setproctitle") - (version "1.1.10") - (source - (origin - (method url-fetch) - (uri (pypi-uri "setproctitle" version)) - (sha256 + (package + (name "python-setproctitle") + (version "1.1.10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "setproctitle" version)) + (sha256 (base32 - "163kplw9dcrw0lffq1bvli5yws3rngpnvrxrzdw89pbphjjvg0v2")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'check 'patch-Makefile + "163kplw9dcrw0lffq1bvli5yws3rngpnvrxrzdw89pbphjjvg0v2")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'patch-Makefile ;; Stricly this is only required for the python2 variant. ;; But adding a phase in an inherited package seems to be ;; cumbersum. So we patch even for python3. @@ -12929,30 +13272,30 @@ English stemmer.") (("\\$\\(PYTHON\\) [^ ]which nosetests[^ ] ") (string-append nose "/bin/nosetests ")))) #t))) - (replace 'check + (replace 'check (lambda _ (setenv "PYTHON" (or (which "python3") (which "python"))) - (setenv "PYCONFIG" (or (which "python3-config") - (which "python-config"))) + (setenv "PYCONFIG" (string-append (or (which "python3-config") + (which "python-config")) + " --embed")) (setenv "CC" "gcc") ;; No need to extend PYTHONPATH to find the built package, since ;; the Makefile will build anyway (invoke "make" "check")))))) - (native-inputs - `(("procps" ,procps))) ; required for tests - (home-page - "https://github.com/dvarrazzo/py-setproctitle") - (synopsis - "Setproctitle implementation for Python to customize the process title") - (description "The library allows a process to change its title (as displayed + (native-inputs + `(("procps" ,procps))) ; required for tests + (home-page "https://github.com/dvarrazzo/py-setproctitle") + (synopsis + "Setproctitle implementation for Python to customize the process title") + (description "The library allows a process to change its title (as displayed by system tools such as ps and top). Changing the title is mostly useful in multi-process systems, for example when a master process is forked: changing the children's title allows identifying the task each process is busy with. The technique is used by PostgreSQL and the OpenSSH Server for example.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-setproctitle)))))) + (license license:bsd-3) + (properties `((python2-variant . ,(delay python2-setproctitle)))))) (define-public python2-setproctitle (let ((base (package-with-python2 @@ -14010,7 +14353,7 @@ editors.") (define-public python2-backports-functools-lru-cache (package (name "python2-backports-functools-lru-cache") - (version "1.5") + (version "1.6.1") (source (origin (method url-fetch) @@ -14018,7 +14361,7 @@ editors.") (uri (pypi-uri "backports.functools_lru_cache" version)) (sha256 (base32 - "06jgv8gib4fhky0p5cmxdghvsgjyzcdgk48k8pxb1ccf11znk64x")))) + "0jidrkk2w6bhjm197plxiaxrav64mgcrign0bfyr7md2ilc5zplg")))) (build-system python-build-system) (native-inputs `(("python2-setuptools-scm" ,python2-setuptools-scm))) @@ -14170,14 +14513,22 @@ exception message with a traceback that points to the culprit.") (define-public python-utils (package (name "python-utils") - (version "2.1.0") + (version "2.4.0") (source (origin (method url-fetch) (uri (pypi-uri "python-utils" version)) (sha256 (base32 - "1mcsy6q5am4ya72rgkpb6kax6vv7c93cfkkas89xnpa4sj9zf28p")))) + "12c0glzkm81ljgf6pwh0d4rmdm1r7vvgg3ifzp8yp9cfyngw07zj")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (delete-file "pytest.ini") + (invoke "pytest" "-vv")))))) (native-inputs `(("pytest-runner" ,python-pytest-runner) ("pytest" ,python-pytest) @@ -17702,6 +18053,39 @@ on regular expressions.") `(("python2-enum34" ,python2-enum34) ,@(package-propagated-inputs reparser)))))) +(define-public python-retrying + (package + (name "python-retrying") + (version "1.3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rholder/retrying.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kqipkbdaw5s1xg0gi29awm03vp1x8dz24pjidgxagvkvrjpzhi7")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/rholder/retrying") + (synopsis "Library for adding retry behavior") + (description "Retrying is a general-purpose retrying library to simplify +the task of adding retry behavior to just about anything. + +Features: + +@itemize +@item Generic Decorator API. +@item Specify stop condition (i.e. limit by number of attempts). +@item Specify wait condition (i.e. exponential backoff sleeping between attempts). +@item Customize retrying on Exceptions. +@item Customize retrying on expected returned result. +@end itemize") + (license license:asl2.0))) + (define-public python-precis-i18n (package (name "python-precis-i18n") @@ -18138,14 +18522,13 @@ time-or-computationally-expensive properties quick and easy and works in Python (define-public python-folium (package (name "python-folium") - (version "0.10.1") + (version "0.11.0") (source (origin (method url-fetch) (uri (pypi-uri "folium" version)) (sha256 - (base32 - "0gcc267wxwxr57ry86pqpbiyfvl0g48hfvgy0f2mz9s58g87kgzd")))) + (base32 "19sclsq3xcjfa7bavzjpyn6rl9b15jbc76n5aag4cwhqqamqj1sl")))) (build-system python-build-system) (propagated-inputs `(("python-branca" ,python-branca) @@ -18633,9 +19016,9 @@ essential tools are located.") (synopsis "Parallel graph management and execution in heterogeneous computing") (description - "Python-pathos is a framework for heterogenous computing. It provides a + "Python-pathos is a framework for heterogeneous computing. It provides a consistent high-level interface for configuring and launching parallel -computations across heterogenous resources. Python-pathos provides configurable +computations across heterogeneous 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))) @@ -19462,6 +19845,25 @@ using “=” characters. However this conveys no benefit so many protocols choose to use Base64 without the “=” padding.") (license license:asl2.0))) +(define-public python-py-cpuinfo + (package + (name "python-py-cpuinfo") + (version "5.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "py-cpuinfo" version)) + (sha256 + (base32 + "0045y6832gqjg63jmw0qj2jwyypgjwr7sfdq3lfv49b6fxpl5xic")))) + (build-system python-build-system) + (home-page "https://github.com/workhorsy/py-cpuinfo") + (synopsis "Get CPU info with Python") + (description + "This Python module returns the CPU info by using the best sources of +information for your operating system.") + (license license:expat))) + (define-public python-canonicaljson (package (name "python-canonicaljson")