diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 1231 |
1 files changed, 1055 insertions, 176 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index e95dec21c2..07a52a0e5c 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -61,7 +61,7 @@ ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com> -;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com> ;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz> @@ -81,6 +81,8 @@ ;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw> ;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> +;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; ;;; 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) @@ -417,13 +420,13 @@ data for video and audio files.") (define-public python-psutil (package (name "python-psutil") - (version "5.7.0") + (version "5.7.2") (source (origin (method url-fetch) (uri (pypi-uri "psutil" version)) (sha256 - (base32 "03jykdi3dgf1cdal9bv4fq9zjvzj9l9bs99gi5ar81sdl5nc2pk8")))) + (base32 "1svv985vmqsls35kmvp3vhh26nsgz229324s9k29awf6qgqhm6ch")))) (build-system python-build-system) (arguments ;; FIXME: some tests do not return and time out. Some tests fail because @@ -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 @@ -649,13 +652,13 @@ and verifies that it matches the intended target hostname.") (define-public python-bitarray (package (name "python-bitarray") - (version "1.2.1") + (version "1.4.0") (source (origin (method url-fetch) (uri (pypi-uri "bitarray" version)) (sha256 (base32 - "1kxrlxfj9nrx512sfwifwl9z4v6ky3qschl0zmk3s3dvc3s7bmif")))) + "177fj6wbw5jln54wpp6plcqy2329wjkwqwvgz7022rrg3xfrq49g")))) (build-system python-build-system) (home-page "https://github.com/ilanschnell/bitarray") (synopsis "Efficient arrays of booleans") @@ -1121,20 +1124,18 @@ multiple Unicode code points, e.g. \"G\" + acute-accent) (define-public python-humanfriendly (package (name "python-humanfriendly") - (version "4.4.1") + (version "8.2") (source (origin (method url-fetch) (uri (pypi-uri "humanfriendly" version)) (sha256 (base32 - "0pisgizjql86785jchfjv217g0lsgk114g2lja5j4y3lsc3b9szi")))) + "04ixg8b7p6xc8x8lffhi7wfl77xhszakhd0s6j0cf6a84j8yqlmz")))) (build-system python-build-system) (arguments `(;; XXX: Tests depend on coloredlogs, which in turn depends on humanfriendly. #:tests? #f)) - (propagated-inputs - `(("python-monotonic" ,python-monotonic))) (home-page "https://humanfriendly.readthedocs.io") (synopsis "Human-friendly input and output in Python") (description @@ -1143,10 +1144,16 @@ text interfaces more user-friendly. It includes tools to parse and format numbers, file sizes, and timespans, timers for long-running operations, menus to allow the user to choose from a list of options, and terminal interaction helpers.") + (properties `((python2-variant . ,(delay python2-humanfriendly)))) (license license:expat))) (define-public python2-humanfriendly - (package-with-python2 python-humanfriendly)) + (let ((base (package-with-python2 + (strip-python2-variant python-humanfriendly)))) + (package (inherit base) + (propagated-inputs + `(("python2-monotonic" ,python2-monotonic) + ,@(package-propagated-inputs base)))))) (define-public python-textparser (package @@ -1306,7 +1313,7 @@ bits instead of primitive data types like @code{char}, @code{int}, etc.") ;; not included with the PyPI archive. (method git-fetch) (uri (git-reference - (url "https://github.com/eerimoq/cantools.git") + (url "https://github.com/eerimoq/cantools") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1697,14 +1704,14 @@ after Andy Lester’s Perl module WWW::Mechanize.") (define-public python-simplejson (package (name "python-simplejson") - (version "3.14.0") + (version "3.17.0") (source (origin (method url-fetch) (uri (pypi-uri "simplejson" version)) (sha256 (base32 - "1lkv3xlf7ryzi69zqfdbkvpxdfy1rg1rq2yzcnxgf4km5m6difqy")))) + "108yf3252fy4ndqab7h46raksxfhcn113bzy2yd8369vidrjnjrb")))) (build-system python-build-system) (home-page "http://simplejson.readthedocs.org/en/latest/") (synopsis @@ -2046,7 +2053,7 @@ and is not compatible with JSON.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/SCons/scons.git") + (url "https://github.com/SCons/scons") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -2389,17 +2396,47 @@ 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") + (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") - (version "7.0") + (version "7.1.2") (source (origin (method url-fetch) (uri (pypi-uri "click" version)) (sha256 (base32 - "1mzjixd4vjbjvzb6vylki9w1556a9qmdh35kzmq6cign46av952v")))) + "06kbzd6sjfkqan3miwj9wqyddfxc2b6hi7p5s4dvqjb3gif2bdfj")))) (build-system python-build-system) (arguments `(#:phases @@ -2408,12 +2445,13 @@ files.") (lambda* (#:key inputs #:allow-other-keys) (let ((glibc (assoc-ref inputs ,(if (%current-target-system) "cross-libc" "libc")))) - (substitute* "click/_unicodefun.py" + (substitute* "src/click/_unicodefun.py" (("'locale'") (string-append "'" glibc "/bin/locale'")))) #t)) (replace 'check (lambda _ + (setenv "PYTHONPATH" (string-append "./src:" (getenv "PYTHONPATH"))) (invoke "python" "-m" "pytest")))))) (native-inputs `(("python-pytest" ,python-pytest))) @@ -2429,6 +2467,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") @@ -3383,7 +3433,7 @@ software version simply.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/tantale/deprecated.git") + (url "https://github.com/tantale/deprecated") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -3419,7 +3469,7 @@ to deprecate classes, functions or methods.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/PyGithub/PyGithub.git") + (url "https://github.com/PyGithub/PyGithub") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -3486,7 +3536,7 @@ ecosystem, but can naturally be used also by other projects.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/robotframework/robotframework.git") + (url "https://github.com/robotframework/robotframework") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -3535,7 +3585,7 @@ process automation (RPA).") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/boakley/robotframework-lint.git") + (url "https://github.com/boakley/robotframework-lint") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -3566,7 +3616,7 @@ utility, a static analysis tool (linter) for Robot Framework source files.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/robotframework/SSHLibrary.git") + (url "https://github.com/robotframework/SSHLibrary") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -3795,20 +3845,18 @@ Server (PLS).") (define-public python-language-server (package (name "python-language-server") - (version "0.32.0") + (version "0.34.1") (source (origin (method url-fetch) (uri (pypi-uri "python-language-server" version)) (sha256 (base32 - "0j5swacmjps9sas1gfwg0xi84rmjhfhz20cwg3k4058d20rs20ip")))) + "0gfjjlj7yg2nf8wkbrshwaljkwlqja4n7s1x949f495anmkg8vxr")))) (build-system python-build-system) (propagated-inputs `(("python-pluggy" ,python-pluggy) ("python-jsonrpc-server" ,python-jsonrpc-server) - ;; Note: Remove the special versions of Jedi and Parso when updating - ;; this package. ("python-jedi" ,python-jedi) ("python-yapf" ,python-yapf) ("python-pyflakes" ,python-pyflakes) @@ -3971,7 +4019,7 @@ and is very extensible.") ;; git-reference because tests are not included in pypi source tarball ;; https://issues.guix.gnu.org/issue/36755#2 (uri (git-reference - (url "https://github.com/projectmallard/mallard-ducktype.git") + (url "https://github.com/projectmallard/mallard-ducktype") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -4377,7 +4425,7 @@ color scales, and color space conversion easy. It has support for: ,(origin ; The build script expects scipy-sphinx-theme as a git submodule (method git-fetch) (uri (git-reference - (url "https://github.com/scipy/scipy-sphinx-theme.git") + (url "https://github.com/scipy/scipy-sphinx-theme") (commit "c466764e2231ba132c09826b5b138fffa1cfcec3"))) (sha256 (base32 @@ -4467,6 +4515,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") @@ -4604,7 +4672,7 @@ To address this and enable easy cycling over arbitrary @code{kwargs}, the (origin (method git-fetch) (uri (git-reference - (url "https://github.com/njsmith/colorspacious.git") + (url "https://github.com/njsmith/colorspacious") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -4998,7 +5066,7 @@ as the original project seems to have been abandoned circa 2007.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/pagekite/PySocksipyChain.git") + (url "https://github.com/pagekite/PySocksipyChain") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -5019,15 +5087,23 @@ a simple netcat replacement with chaining support.") (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 @@ -5118,17 +5194,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 @@ -5212,7 +5289,7 @@ Python's distutils.") ;; source from a (semi-arbitrary, i.e. latest as of now) git commit. (method git-fetch) (uri (git-reference - (url "https://github.com/dieterv/elib.intl.git") + (url "https://github.com/dieterv/elib.intl") (commit "d09997cfef"))) (file-name (string-append name "-" version "-checkout")) (sha256 @@ -5312,6 +5389,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") @@ -5361,14 +5564,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) @@ -5376,17 +5579,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") @@ -5398,9 +5602,6 @@ similar to Fourier transforms, the difference being that Fourier transforms are localized only in frequency instead of in time and frequency.") (license license:expat))) -(define-public python2-pywavelets - (package-with-python2 python-pywavelets)) - (define-public python-pywinrm (package (name "python-pywinrm") @@ -5644,16 +5845,16 @@ 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) (uri (git-reference - (url "https://github.com/pygridtools/gridmap.git") + (url "https://github.com/pygridtools/gridmap") (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. @@ -5680,7 +5881,7 @@ cluster without needing to write any wrapper code yourself.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/nickstenning/honcho.git") + (url "https://github.com/nickstenning/honcho") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -5835,6 +6036,29 @@ all the newest features of the standard @code{pathlib} can be used also on older Python versions.") (license license:expat))) +(define-public python-importlib-resources + (package + (name "python-importlib-resources") + (version "3.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "importlib_resources" version)) + (sha256 + (base32 + "1hq626mx5jl9zfl0wdrjkxsnh8qd98fqv322n68b9251xjk4bxqr")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm) + ("python-toml" ,python-toml))) + (home-page "http://importlib-resources.readthedocs.io/") + (synopsis "Read resources from Python packages") + (description + "@code{importlib_resources} is a backport of Python 3's standard library +@code{importlib.resources} module for Python 2.7, and Python 3.") + (properties `((python2-variant . ,(delay python2-importlib-resources)))) + (license license:asl2.0))) + (define-public python2-importlib-resources (package (name "python2-importlib-resources") @@ -6831,14 +7055,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 @@ -6874,14 +7098,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 @@ -6898,10 +7122,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) @@ -7250,30 +7483,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") + (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") @@ -7481,14 +7731,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") @@ -7582,13 +7832,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 @@ -8574,7 +8824,7 @@ Python Package Index (PyPI).") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/trendmicro/tlsh.git") + (url "https://github.com/trendmicro/tlsh") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -8635,6 +8885,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") @@ -9875,6 +10145,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") @@ -9887,7 +10189,7 @@ concurrent.futures package from Python 3.2") (base32 "1zvf6zs5hzrc03p9nfs4p16vhilqikycvv1yk0pxn8s07fdhvzji")))) (build-system python-build-system) - (home-page "http://github.com/germangh/python-progressbar") + (home-page "https://github.com/germangh/python-progressbar") (synopsis "Text progress bar library for Python") (description "This package provides a text progress bar library for Python. This @@ -10046,6 +10348,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") @@ -10081,6 +10406,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") @@ -11149,6 +11492,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") @@ -11195,13 +11561,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") @@ -11245,13 +11611,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 @@ -11370,15 +11736,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))) @@ -11396,18 +11762,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") @@ -11497,13 +11864,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' @@ -11977,6 +12344,37 @@ It supports TSIG authenticated messages and EDNS0.") (define-public python2-dnspython (package-with-python2 python-dnspython)) +(define-public python-py3dns + (package + (name "python-py3dns") + (version "3.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "py3dns" version)) + (sha256 + (base32 + "1r25f0ys5p37bhld7m7n4gb0lrysaym3w318w2f8bncq7r3d81qz")))) + (build-system python-build-system) + ;; This package wants to read /etc/resolv.conf. We can't patch it without + ;; removing functionality so we copy from Nix and "just don't build it". + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* "setup.py" + (("import DNS") "") + (("DNS.__version__") (string-append "\"" ,version "\""))) + #t))) + #:tests? #f)) ; Also skip the tests. + (home-page "https://launchpad.net/py3dns") + (synopsis "Python 3 DNS library") + (description "This Python 3 module provides a DNS API for looking up DNS +entries from within Python 3 modules and applications. This module is a +simple, lightweight implementation.") + (license license:psfl))) + (define-public python-email-validator (package (name "python-email-validator") @@ -12549,7 +12947,7 @@ discovery, monitoring and configuration.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/schematics/schematics.git") + (url "https://github.com/schematics/schematics") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -12903,21 +13301,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. @@ -12928,30 +13326,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 @@ -13147,6 +13545,93 @@ network.") (define-public python2-argcomplete (package-with-python2 python-argcomplete)) +(define-public python-csscompressor + (package + (name "python-csscompressor") + (version "0.9.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "csscompressor" version)) + (sha256 + (base32 + "018ssffvlpnc1salmnpyl52c11glzzwj4k9f757hl4pkpjnjp8mg")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "py.test")))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/sprymix/csscompressor") + (synopsis "Python port of YUI CSS Compressor") + (description + "This package provides a python port of YUI CSS Compressor.") + (license license:bsd-3))) + +(define-public python-rcssmin + (package + (name "python-rcssmin") + (version "1.0.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rcssmin" version)) + (sha256 + (base32 + "0w42l4dhxghcz7pj3q7hkxp015mvb8z2cq9sfxbl31npsfavd1ya")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "python" "run_tests.py" "tests")))))) + (home-page "http://opensource.perlig.de/rcssmin/") + (synopsis "CSS Minifier") + (description "The minifier is based on the semantics of the YUI compressor, +which itself is based on the rule list by Isaac Schlueter.") + (license license:asl2.0))) + +(define-public python-rjsmin + (package + (name "python-rjsmin") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rjsmin" version)) + (sha256 + (base32 + "0cmc72rlkvzz8fl89bc83czkx0pcvhzj7yn7m29r8pgnf5fcfpdi")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file (find-files "bench" "\\.js$")) + #t)))) + (build-system python-build-system) + (arguments + '(#:tests? #f ; Not all test files included. + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (if tests? + (invoke "py.test" "-vv" "tests") + #t)))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "http://opensource.perlig.de/rjsmin/") + (synopsis "Javascript Minifier") + (description "@code{rJSmin} is a javascript minifier written in Python. The +minifier is based on the semantics of jsmin.c by Douglas Crockford. The module +is a re-implementation aiming for speed, so it can be used at runtime (rather +than during a preprocessing step).") + (license license:asl2.0))) + (define-public python-xopen (package (name "python-xopen") @@ -13970,6 +14455,27 @@ builds partial trees by inspecting living objects.") ,@(alist-delete "python-typed-ast" (package-propagated-inputs base))))))) +(define-public python-isbnlib + (package + (name "python-isbnlib") + (version "3.10.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "isbnlib" version)) + (sha256 + (base32 + "07qhykv0x60d5rsx5pj6s4q15ri4znczscll3xmpf6gyclac1592")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; No test + (home-page "https://github.com/xlcnd/isbnlib") + (synopsis "Python library to work with ISBN strings") + (description "@code{python-isbnlib} is a (pure) python library that provides +several useful methods and functions to validate, clean, transform, hyphenate and +get metadata for ISBN strings. Its origin was as the core of isbntools. This short +version, is suitable to be include as a dependency in other projects.") + (license license:lgpl3+))) + (define-public python-isort (package (name "python-isort") @@ -14009,7 +14515,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) @@ -14017,7 +14523,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))) @@ -14053,6 +14559,28 @@ in other versions.") (define-public python2-configparser (package-with-python2 python-configparser)) +(define-public python-mamba + (package + (name "python-mamba") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "mamba" version)) + (sha256 + (base32 + "0bpbgz9v63rpanjjpc8bnvrr8fkms5rzylh77xrcki1x6az7gnsz")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) ; No test + (propagated-inputs + `(("python-clint" ,python-clint) + ("python-coverage" ,python-coverage))) + (home-page "https://nestorsalceda.com/mamba/") + (synopsis "Test runner for Python") + (description + "Mamba is a Behaviour-Driven Development tool for Python developers. +Is heavily influenced from RSpec, Mocha, Jasmine or Ginkgo.") + (license license:expat))) + (define-public python-mando (package (name "python-mando") @@ -14169,14 +14697,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) @@ -14932,7 +15468,7 @@ Swagger 2.0).") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/rochacbruno/flasgger.git") + (url "https://github.com/rochacbruno/flasgger") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -15122,40 +15658,73 @@ functionality like full case-folding for case-insensitive matches in Unicode.") (define-public python2-regex (package-with-python2 python-regex)) -(define-public python2-pyopengl +(define-public python-pyopengl (package - (name "python2-pyopengl") - (version "3.1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "PyOpenGL" version)) - (sha256 - (base32 - "1byxjj6a8rwzhxhjqlc588zdad2qwxdd7vlam2653ylll31waiwv")))) - (arguments - `(#:python ,python-2)) - (build-system python-build-system) - (home-page "http://pyopengl.sourceforge.net") - (synopsis "Standard OpenGL bindings for Python") - (description - "PyOpenGL is the most common cross platform Python binding to OpenGL and + (name "python-pyopengl") + (version "3.1.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyOpenGL" version)) + (sha256 + (base32 + "091lp9bpqi8yf1nmyg19xmvw611lrzq2q94cl1k5gnlh0c6vl1s1")))) + (build-system python-build-system) + (inputs + `(("mesa" ,mesa) + ("freeglut" ,freeglut) + ("glu" ,glu))) + (arguments + `(#:tests? #f ; Tests fail: AttributeError: 'GLXPlatform' object has no + ;attribute 'OSMesa' + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* '("OpenGL/platform/ctypesloader.py") + (("filenames_to_try = \\[\\]") "filenames_to_try = [name]")) + (substitute* '("OpenGL/platform/glx.py" "tests/check_glut_load.py") + (("'GL'") + (string-append "'" (assoc-ref inputs "mesa") "/lib/libGL.so'")) + (("'GLU'") + (string-append "'" (assoc-ref inputs "glu") "/lib/libGLU.so'")) + (("'glut',") + (string-append "'" (assoc-ref inputs "freeglut") "/lib/libglut.so',")) + (("'GLESv1_CM'") + (string-append "'" (assoc-ref inputs "mesa") "/lib/libGLESv1_CM.so'")) + (("'GLESv2'") + (string-append "'" (assoc-ref inputs "mesa") "/lib/libGLESv2.so'"))) + ;; Not providing libgle. It seems to be very old. + #t))))) + (home-page "http://pyopengl.sourceforge.net") + (synopsis "Standard OpenGL bindings for Python") + (description + "PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs. The binding is created using the standard @code{ctypes} library.") - (license license:bsd-3))) + (license license:bsd-3))) -(define-public python2-pyopengl-accelerate +(define-public python-pyopengl-accelerate (package - (inherit python2-pyopengl) - (name "python2-pyopengl-accelerate") - (version "3.1.0") + (inherit python-pyopengl) + (name "python-pyopengl-accelerate") + (version "3.1.5") (source (origin (method url-fetch) (uri (pypi-uri "PyOpenGL-accelerate" version)) (sha256 (base32 - "0464c1ifzk0k92lyndikmvzjgnx1y25r7bkkc8pnxm4kp1q4czwj")))) + "01iggy5jwxv7lxnj51zbmlbhag9wcb7dvrbwgi97i90n0a5m3r8j")))) + (inputs + `(("mesa" ,mesa) + ("python-numpy" ,python-numpy))) ; for cython module + ; numpy_formathandler, thus not propagated + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'fix-paths)))) (synopsis "Acceleration code for PyOpenGL") (description "This is the Cython-coded accelerator module for PyOpenGL."))) @@ -15465,7 +16034,7 @@ executed more than a given number of times during a given period.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/kovidgoyal/dukpy.git") + (url "https://github.com/kovidgoyal/dukpy") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -15932,7 +16501,7 @@ and works only with Python 2 and NumPy < 1.9.") (origin (method git-fetch) ;; Source tarball on PyPI doesn't include tests. (uri (git-reference - (url "https://github.com/hsoft/send2trash.git") + (url "https://github.com/hsoft/send2trash") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -16044,7 +16613,7 @@ files, and Makefiles.") (invoke "py.test")))))) (native-inputs `(("python-pytest" ,python-pytest))) - (home-page "http://github.com/Suor/whatever") + (home-page "https://github.com/Suor/whatever") (synopsis "Make anonymous functions by partial application of operators") (description "@code{whatever} provides an easy way to make anonymous functions by partial application of operators.") @@ -16061,7 +16630,7 @@ functions by partial application of operators.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/Suor/funcy.git") + (url "https://github.com/Suor/funcy") (commit version))) (sha256 (base32 "1s98vkjnq3zq71737hn8xa15kssvmy1sfzsll3vrlv53902418mw")) @@ -16076,7 +16645,7 @@ functions by partial application of operators.") (native-inputs `(("python-pytest" ,python-pytest) ("python-whatever" ,python-whatever))) - (home-page "http://github.com/Suor/funcy") + (home-page "https://github.com/Suor/funcy") (synopsis "Functional tools") (description "@code{funcy} is a library that provides functional tools. Examples are: @@ -16180,7 +16749,7 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style (origin (method git-fetch) (uri (git-reference - (url "https://github.com/python/typed_ast.git") + (url "https://github.com/python/typed_ast") (commit version))) (sha256 (base32 "0l0hz809f7i356kmqkvfsaswiidb98j9hs9rrjnfawzqcbffzgyb")) @@ -16621,7 +17190,7 @@ manager compatible with @code{asyncio}.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/miracle2k/python-glob2.git") + (url "https://github.com/miracle2k/python-glob2") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -16811,7 +17380,7 @@ user-space file systems in Python.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/pybind/pybind11.git") + (url "https://github.com/pybind/pybind11") (commit (string-append "v" version)))) (sha256 (base32 @@ -16856,19 +17425,20 @@ inferring type information using compile-time introspection.") (define-public python-fasteners (package (name "python-fasteners") - (version "0.14.1") + (version "0.15") (source (origin (method url-fetch) (uri (pypi-uri "fasteners" version)) (sha256 (base32 - "063y20kx01ihbz2mziapmjxi2cd0dq48jzg587xdsdp07xvpcz22")))) + "1vzmz1xh38b84dv0f4hlp7arwmx8wjlih6lf964bpy8dnyk6s5rs")))) (build-system python-build-system) (propagated-inputs `(("python-monotonic" ,python-monotonic) - ("python-six" ,python-six) - ("python-testtools" ,python-testtools))) + ("python-six" ,python-six))) + (native-inputs + `(("python-testtools" ,python-testtools))) (home-page "https://github.com/harlowja/fasteners") (synopsis "Python package that provides useful locks") (description @@ -17701,6 +18271,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") + (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") @@ -18137,14 +18740,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) @@ -18474,7 +19076,7 @@ bindings for Python 2.5+ and 3."))) (origin (method git-fetch) (uri (git-reference - (url "https://github.com/oinume/iocapture.git") + (url "https://github.com/oinume/iocapture") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -18514,7 +19116,7 @@ standard error channel (stderr) in your program.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/neithere/argh.git") + (url "https://github.com/neithere/argh") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -18632,9 +19234,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))) @@ -18820,9 +19422,9 @@ and cuts down boilerplate code when testing libraries for asyncio.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1sk9i8czxgsbrswsf1nlb4c82vgnlzi8zrvrxdip92w2z8hqh43y")))) + (base32 "1sk9i8czxgsbrswsf1nlb4c82vgnlzi8zrvrxdip92w2z8hqh43y")) + (patches (search-patches "python-aionotify-0.2.0-py3.8.patch")))) (build-system python-build-system) - (native-inputs `(("python-asynctest" ,python-asynctest))) (home-page "https://github.com/rbarrois/aionotify") (synopsis "Asyncio-powered inotify library") (description @@ -19343,7 +19945,12 @@ logging in Python. It also provides some custom formatters and handlers.") "150av2pylsjy8ykrpyi0vzy2q24s9rhh2ya01zvwnvj9j5dspviz")))) (build-system python-build-system) (arguments - `(#:tests? #f)) + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "python" "setup.py" "testr" "--slowest" + "--testr-args=until-failure")))))) (propagated-inputs `(("python-click" ,python-click) ("python-daiquiri" ,python-daiquiri) @@ -19404,7 +20011,7 @@ HTML-containing files.") ;; sample.json5 is missing from PyPi source tarball (method git-fetch) (uri (git-reference - (url "https://github.com/dpranke/pyjson5.git") + (url "https://github.com/dpranke/pyjson5") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -19446,7 +20053,7 @@ replacement for dictionaries where immutability is desired.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/matrix-org/python-unpaddedbase64.git") + (url "https://github.com/matrix-org/python-unpaddedbase64") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -19461,6 +20068,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") @@ -20069,3 +20695,256 @@ For the most part it's transliterated from C, the major differences are: @end itemize ") (license license:gpl3+))) + +(define-public python-jinxed + (package + (name "python-jinxed") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "jinxed" version)) + (sha256 + (base32 + "1n7vl03rhjd0xhjgbjlh8x9f8yfbhamcwkgvs4jg7g5qj8f0wk89")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-environment-variables + (lambda* (#:key inputs #:allow-other-keys) + (let ((ncurses (assoc-ref inputs "ncurses"))) + (setenv "TERM" "LINUX") + (setenv "TERMINFO" (string-append ncurses "/share/terminfo")) + #t)))) + #:tests? #f)) ; _curses.error: setupterm: could not find terminal + (native-inputs + `(("ncurses" ,ncurses))) + (home-page "https://github.com/Rockhopper-Technologies/jinxed") + (synopsis "Jinxed Terminal Library") + (description + "Jinxed is an implementation of a subset of the Python curses library.") + (license license:mpl2.0))) + +(define-public python-blessed + (package + (name "python-blessed") + (version "1.17.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "blessed" version)) + (sha256 + (base32 + "1wdj342sk22hfrg0n91x2qnqsbzbiyq9y009v3pxnvfzn9bx0wbn")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Don't get hung up on Windows test failures. + (delete-file "blessed/win_terminal.py") #t)))) + (build-system python-build-system) + (propagated-inputs + `(("python-jinxed" ,python-jinxed) + ("python-six" ,python-six) + ("python-wcwidth" ,python-wcwidth))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest))) + (home-page "https://github.com/jquast/blessed") + (synopsis "Wrapper around terminal capabilities") + (description + "Blessed is a thin, practical wrapper around terminal styling, screen +positioning, and keyboard input.") + (license license:expat))) + +(define-public python-readme-renderer + (package + (name "python-readme-renderer") + (version "26.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "readme_renderer" version)) + (sha256 + (base32 + "13fnrv7z3y0yfafzcjbl55cqxncvbxadr72ql4l29pgyvrqxpsfb")))) + (build-system python-build-system) + (propagated-inputs + `(("python-bleach" ,python-bleach) + ("python-docutils" ,python-docutils) + ("python-pygments" ,python-pygments) + ("python-six" ,python-six))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest))) + (home-page "https://github.com/pypa/readme_renderer") + (synopsis "Render README files in Warehouse") + (description + "Readme Renderer is a library that will safely render arbitrary README +files into HTML. It is designed to be used in Warehouse to render the +@code{long_description} for packages. It can handle Markdown, reStructuredText, +and plain text.") + (license license:asl2.0))) + +(define-public python-lazr-delegates + (package + (name "python-lazr-delegates") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "lazr.delegates" version)) + (sha256 + (base32 + "1rdnl85j9ayp8n85l0ciip621j9dcziz5qnmv2m7krgwgcn31vfx")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "python" "setup.py" "nosetests")))))) + (native-inputs + `(("python-nose" ,python-nose))) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "https://launchpad.net/lazr.delegates") + (synopsis "Easily write objects that delegate behavior") + (description + "The @code{lazr.delegates} package makes it easy to write objects that +delegate behavior to another object. The new object adds some property or +behavior on to the other object, while still providing the underlying interface, +and delegating behavior.") + (license license:lgpl3))) + +(define-public python-lazr-config + (package + (name "python-lazr-config") + (version "2.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "lazr.config" version)) + (sha256 + (base32 + "11xpddgyhyj7sf27wbmrq5lnqk21wnprx3ajycgwlxjamh6sgffd")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "python" "-s" "-m" "nose" "-P" "lazr")))))) + (native-inputs + `(("python-nose" ,python-nose))) + (propagated-inputs + `(("python-lazr-delegates" ,python-lazr-delegates) + ("python-zope-interface" ,python-zope-interface))) + (home-page "https://launchpad.net/lazr.config") + (synopsis "Create configuration schemas and process and validate configurations") + (description + "The LAZR config system is typically used to manage process configuration. +Process configuration is for saying how things change when we run systems on +different machines, or under different circumstances. This system uses ini-like +file format of section, keys, and values. The config file supports inheritance +to minimize duplication of information across files. The format supports schema +validation.") + (license license:lgpl3))) + +(define-public python-flufl-bounce + (package + (name "python-flufl-bounce") + (version "3.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flufl.bounce" version)) + (sha256 + (base32 + "01lg1b0jpf8605mzaz9miq3nray6s7a7gc8n4wzg5nsxl8fglcp4")))) + (build-system python-build-system) + (propagated-inputs + `(("python-atpublic" ,python-atpublic) + ("python-zope-interface" ,python-zope-interface))) + (native-inputs + `(("python-nose2" ,python-nose2))) + (home-page "https://fluflbounce.readthedocs.io/en/latest/") + (synopsis "Email bounce detectors") + (description "The @code{flufl.bounce} library provides a set of heuristics +and an API for detecting the original bouncing email addresses from a bounce +message. Many formats found in the wild are supported, as are VERP and +RFC 3464.") + (license (list license:asl2.0 + license:lgpl3)))) ; only for setup_headers.py + +(define-public python-flufl-i18n + (package + (name "python-flufl-i18n") + (version "3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flufl.i18n" version)) + (sha256 + (base32 + "1flwpn1xhgc957zj3zxw92dhdjh0lsy0hdvzq32dzqpsajfsvq1r")))) + (build-system python-build-system) + (propagated-inputs + `(("python-atpublic" ,python-atpublic))) + (home-page "https://flufli18n.readthedocs.io") + (synopsis "API for Python internationalization") + (description + "This package provides a high level, convenient API for managing +internationalization translation contexts in Python application. There is a +simple API for single-context applications, such as command line scripts which +only need to translate into one language during the entire course of thei +execution. There is a more flexible, but still convenient API for multi-context +applications, such as servers, which may need to switch language contexts for +different tasks.") + (license license:asl2.0))) + +(define-public python-flufl-lock + (package + (name "python-flufl-lock") + (version "4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flufl.lock" version)) + (sha256 + (base32 + "055941zyma3wfx25jhm8wcsghpv3jc3iwi1gdrdjhzcnfhn62lxq")))) + (build-system python-build-system) + (propagated-inputs + `(("python-atpublic" ,python-atpublic) + ("python-psutil" ,python-psutil))) + (home-page "https://flufllock.readthedocs.io") + (synopsis "NFS-safe file locking with timeouts for POSIX systems") + (description + "The @dfn{flufl.lock} package provides NFS-safe file locking with +timeouts for POSIX systems. It is similar to the @code{O_EXCL} option of the +@code{open} system call but uses a lockfile. Lock objects support lock-breaking +and have a maximum lifetime built-in.") + (license (list license:asl2.0 + license:lgpl3)))) ; only for setup_helpers.py + +(define-public python-flufl-testing + (package + (name "python-flufl-testing") + (version "0.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flufl.testing" version)) + (sha256 + (base32 + "1nkm95mhcfhl4x5jgs6y97ikszaxsfh07nyawsih6cxxm6l62641")))) + (build-system python-build-system) + (native-inputs + `(("python-nose2" ,python-nose2))) + (home-page "https://gitlab.com/warsaw/flufl.testing") + (synopsis "Collection of test tool plugins") + (description + "This package contains a small collection of test tool plugins for +@code{nose2} and @code{flake8}.") + (license license:asl2.0))) |