X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/073723fa9a60dc8421223fcd2f54d265027b3806..4bd428a7ce382f623784a3ff8186aadc3cebca91:/gnu/packages/python-xyz.scm diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 25c6f9c0a5..4dfe6ee612 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari ;;; Copyright © 2015, 2017 Ben Woodcroft ;;; Copyright © 2015, 2016 Erik Edrosa -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner ;;; Copyright © 2015, 2017 Kyle Meyer ;;; Copyright © 2015, 2016 Chris Marusich ;;; Copyright © 2016 Danny Milosavljevic @@ -26,13 +26,13 @@ ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Dylan Jeffers ;;; Copyright © 2016 David Craven -;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke ;;; Copyright © 2016, 2017 Stefan Reichör ;;; Copyright © 2016 Dylan Jeffers ;;; Copyright © 2016, 2017, 2019 Alex Vong ;;; Copyright © 2016, 2017, 2018 Arun Isaac ;;; Copyright © 2016, 2017, 2018 Julien Lepiller -;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2016, 2017 Thomas Danckaert ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Frederick M. Muriithi @@ -51,13 +51,13 @@ ;;; Copyright © 2018 Mathieu Lirzin ;;; Copyright © 2018 Adam Massmann ;;; Copyright © 2016, 2018 Tomáš Čech -;;; Copyright © 2018, 2019 Nicolas Goaziou +;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou ;;; Copyright © 2018 Oleg Pykhalov ;;; Copyright © 2018, 2019 Clément Lassieur ;;; Copyright © 2018, 2019 Maxim Cournoyer ;;; Copyright © 2018 Luther Thompson ;;; Copyright © 2018 Vagrant Cascadian -;;; Copyright © 2019 Brett Gilio +;;; Copyright © 2019, 2020 Brett Gilio ;;; Copyright © 2019 Sam ;;; Copyright © 2019 Jack Hill ;;; Copyright © 2019 Guillaume Le Vaillant @@ -68,6 +68,7 @@ ;;; Copyright © 2019 Wiktor Żelazny ;;; Copyright © 2019 Tanguy Le Carrour ;;; Copyright © 2019 Mădălin Ionel Patrașcu +;;; Copyright © 2020 Riku Viitanen ;;; ;;; This file is part of GNU Guix. ;;; @@ -112,6 +113,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) + #:use-module (gnu packages kerberos) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) @@ -439,7 +441,7 @@ Expressions are constructed from parsed strings or directly in Python.") (propagated-inputs `(("numpy" ,python-numpy))) (inputs `(("hdf4" ,hdf4) - ("libjpeg" ,libjpeg) + ("libjpeg" ,libjpeg-turbo) ("zlib" ,zlib))) (arguments `(#:phases @@ -1052,21 +1054,21 @@ standard.") (define-public python-eventlet (package (name "python-eventlet") - (version "0.20.1") + (version "0.25.1") (source (origin (method url-fetch) (uri (pypi-uri "eventlet" version)) (sha256 (base32 - "0f3q55mq4n021wb7qa53pz3ix6i2py64sap66vsaqm2scjw83m9s")))) + "1hgz8jq19wlz8vwqj900ry8cjv578nz4scc91mlc8944yid6573c")))) (build-system python-build-system) (propagated-inputs `(("python-greenlet" ,python-greenlet))) (arguments ;; TODO: Requires unpackaged 'enum-compat'. '(#:tests? #f)) - (home-page "http://eventlet.net") + (home-page "https://eventlet.net") (synopsis "Concurrent networking library for Python") (description "Eventlet is a concurrent networking library for Python that @@ -1908,18 +1910,20 @@ with sensible defaults out of the box.") (define-public python-wheel (package (name "python-wheel") - (version "0.32.3") + (version "0.33.6") (source (origin (method url-fetch) (uri (pypi-uri "wheel" version)) (sha256 (base32 - "1dhxl1bf18bx9szmqcnxbg6204hp3im8089q3hkwh5jfa6zh75q2")))) + "0ii6f34rvpjg3nmw4bc2h7fhdsy38y1h93hghncfs5akfrldmj8h")))) (build-system python-build-system) - (native-inputs - `(("python-jsonschema" ,python-jsonschema) - ("python-pytest-cov" ,python-pytest-cov))) + (arguments + ;; FIXME: The test suite runs "python setup.py bdist_wheel", which in turn + ;; fails to find the newly-built bdist_wheel library, even though it is + ;; available on PYTHONPATH. What search path is consulted by setup.py? + '(#:tests? #f)) (home-page "https://bitbucket.org/pypa/wheel/") (synopsis "Format for built Python packages") (description @@ -1930,15 +1934,10 @@ packages will be properly installed with only the @code{Unpack} step and the unpacked archive preserves enough information to @code{Spread} (copy data and scripts to their final locations) at any later time. Wheel files can be installed with a newer @code{pip} or with wheel's own command line utility.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-wheel)))))) + (license license:expat))) (define-public python2-wheel - (let ((wheel (package-with-python2 - (strip-python2-variant python-wheel)))) - (package (inherit wheel) - (native-inputs `(("python2-functools32" ,python2-functools32) - ,@(package-native-inputs wheel)))))) + (package-with-python2 python-wheel)) (define-public python-vcversioner (package @@ -2586,6 +2585,30 @@ important tasks for becoming a daemon process: ;; Only setup.py is gpl3+, everything else is apache 2.0 licensed. (license (list license:asl2.0 license:gpl3+)))) +(define-public python-anytree + (package + (name "python-anytree") + (version "2.8.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "anytree" version)) + (sha256 + (base32 + "1aycpc387wqz7h9w2p53qxn43qsh3m6by6ak4kkc66x9aprr63rz")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) + (native-inputs + `(;; For tests. + ("graphviz" ,graphviz) ;for 'dot' + ("python-nose" ,python-nose))) + (home-page "https://github.com/c0fec0de/anytree") + (synopsis "Lightweight tree data library") + (description + "@code{anytree} is a simple, lightweight, and extensible tree data +structure for Python.") + (license license:asl2.0))) + (define-public python-docutils (package (name "python-docutils") @@ -2616,14 +2639,14 @@ reStructuredText.") (define-public python-pygments (package (name "python-pygments") - (version "2.4.2") + (version "2.5.2") (source (origin (method url-fetch) (uri (pypi-uri "Pygments" version)) (sha256 (base32 - "15v2sqm5g12bqa0c7wikfh9ck2nl97ayizy1hpqhmws5gqalq748")))) + "1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q")))) (build-system python-build-system) (arguments ;; FIXME: Tests require sphinx, which depends on this. @@ -3055,14 +3078,14 @@ Server (PLS).") (define-public python-language-server (package (name "python-language-server") - (version "0.31.2") + (version "0.31.6") (source (origin (method url-fetch) (uri (pypi-uri "python-language-server" version)) (sha256 (base32 - "1iq69wc1fyhirfyq25ih41wq9yvr7bchiw0i116adpdgcq6m9idq")))) + "0cqrffd5272p2hifa35rf1h1g6dss741jmjkwa43jninifmbz0df")))) (build-system python-build-system) (propagated-inputs `(("python-pluggy" ,python-pluggy) @@ -3146,42 +3169,30 @@ interested parties to subscribe to events, or \"signals\".") (define-public pelican (package (name "pelican") - (version "4.0.1") + (version "4.2.0") (source (origin (method url-fetch) (uri (pypi-uri "pelican" version)) (sha256 (base32 - "05yda7n6r0ll18fpdjzkzyr0ls8hbb86fnjyb33k9jvv5avah2lr")))) + "0mp7hjyhs38ag1hyfcy882g400z0babqi72pnli46dqijfhajzmy")))) (build-system python-build-system) (propagated-inputs - `(("python-feedgenerator" ,python-feedgenerator) + `(("python-blinker" ,python-blinker) + ("python-dateutil" ,python-dateutil) + ("python-docutils" ,python-docutils) + ("python-feedgenerator" ,python-feedgenerator) ("python-jinja2" ,python-jinja2) + ("python-markdown" ,python-markdown) ("python-pygments" ,python-pygments) - ("python-docutils" ,python-docutils) ("python-pytz" ,python-pytz) - ("python-blinker" ,python-blinker) - ("python-unidecode" ,python-unidecode) ("python-six" ,python-six) - ("python-dateutil" ,python-dateutil) - ("python-markdown" ,python-markdown))) + ("python-unidecode" ,python-unidecode))) (home-page "https://getpelican.com/") (arguments `(;; XXX Requires a lot more packages to do unit tests :P - #:tests? #f - #:phases (modify-phases %standard-phases - (add-before - 'install 'adjust-requires - ;; Since feedgenerator is installed from git, it doesn't - ;; conform to the version requirements. - ;; - ;; We *do have* "feedgenerator >= 1.6", but strip off the - ;; version requirement so setuptools doesn't get confused. - (lambda _ - (substitute* "setup.py" - (("['\"]feedgenerator.*?['\"]") - "'feedgenerator'"))))))) + #:tests? #f)) (synopsis "Python-based static site publishing system") (description "Pelican is a tool to generate a static blog from reStructuredText, @@ -3442,13 +3453,14 @@ capabilities.") (version "1.8.2") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/numpy/numpy/archive/v" version ".tar.gz")) - (file-name (string-append "python2-numpy-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/numpy/numpy") + (commit (string-append "v" version)))) + (file-name (git-file-name "numpy" version)) (sha256 (base32 - "0sc20gz1b17xnyrkp5frca3ql5qfalpv916hfg2kqxpwr6jg0f1g")))) + "0ikgi15rsqwbkfsjjxrwh40lqyal2wvyp3923y6w6ch3dcr82sfk")))) (arguments (substitute-keyword-arguments (package-arguments python2-numpy) ((#:phases phases) @@ -4448,7 +4460,7 @@ the OleFileIO module from PIL, the Python Image Library.") (inputs `(("freetype" ,freetype) ("lcms" ,lcms) - ("libjpeg" ,libjpeg) + ("libjpeg" ,libjpeg-turbo) ("libtiff" ,libtiff) ("libwebp" ,libwebp) ("openjpeg" ,openjpeg) @@ -4972,27 +4984,47 @@ all the newest features of the standard @code{pathlib} can be used also on older Python versions.") (license license:expat))) +(define-public python2-importlib-resources + (package + (name "python2-importlib-resources") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "importlib_resources" version)) + (sha256 + (base32 + "0y3hg12iby1qyaspnbisz4s4vxax7syikk3skznwqizqyv89y9yk")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (native-inputs + `(("python-wheel" ,python2-wheel))) + (propagated-inputs + `(("python-pathlib2" ,python2-pathlib2) + ("python-typing" ,python2-typing))) + (home-page "https://gitlab.com/python-devs/importlib_resources") + (synopsis "Backport of @code{importlib.resources} from Python 3.7") + (description + "This package provides an implementation of @code{importlib.resources} +for older versions of Python.") + (license license:asl2.0))) + (define-public python-importlib-metadata (package (name "python-importlib-metadata") - (version "0.23") + (version "1.4.0") (source (origin (method url-fetch) (uri (pypi-uri "importlib_metadata" version)) (sha256 - (base32 "09mdqdfv5rdrwz80jh9m379gxmvk2vhjfz0fg53hid00icvxf65a")))) + (base32 "1n76444v7zn910xrhh8954jdn4byxbn9f1jck6b85a716mbh2z7i")))) (build-system python-build-system) (propagated-inputs - `(("python-configparser" ,python-configparser) - ("python-contextlib2" ,python-contextlib2) - ("python-docutils" ,python-docutils) - ("python-pathlib2" ,python-pathlib2) - ("python-rst.linker" ,python-rst.linker) - ("python-zipp" ,python-zipp))) + `(("python-zipp" ,python-zipp))) (native-inputs `(("python-setuptools-scm" ,python-setuptools-scm) - ("python-sphinx" ,python-sphinx))) + ("python-packaging" ,python-packaging))) (home-page "https://importlib-metadata.readthedocs.io/") (synopsis "Read metadata from Python packages") (description @@ -5002,8 +5034,22 @@ its top-level name. This functionality intends to replace most uses of @code{pkg_resources} entry point API and metadata API. Along with @code{importlib.resources} in Python 3.7 and newer, this can eliminate the need to use the older and less efficient @code{pkg_resources} package.") + (properties `((python2-variant . ,(delay python2-importlib-metadata)))) (license license:asl2.0))) +(define-public python2-importlib-metadata + (let ((base (package-with-python2 (strip-python2-variant + python-importlib-metadata)))) + (package/inherit + base + (name "python2-importlib-metadata") + (propagated-inputs + `(("python-configparser" ,python2-configparser) + ("python-contextlib2" ,python2-contextlib2) + ("python-importlib-resources" ,python2-importlib-resources) + ("python-pathlib2" ,python2-pathlib2) + ,@(package-propagated-inputs base)))))) + (define-public python-jaraco-packaging (package (name "python-jaraco-packaging") @@ -5632,18 +5678,20 @@ features useful for text console applications.") (version "1.0.2") (source (origin - (method url-fetch) + (method git-fetch) ;; package author intends on distributing via github rather than pypi: ;; https://github.com/pazz/alot/issues/877#issuecomment-230173331 - (uri (string-append "https://github.com/pazz/urwidtrees/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/pazz/urwidtrees") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0d30lyd3s2a97rhqfax5w9ssqds2z6aydqx3c6j2c2lk3cb4ngvh")))) + "1n1kpidvkdnsqyb82vlvk78gmly96kh8351lqxn2pzgwwns6fml2")))) (build-system python-build-system) (arguments - '(#:tests? #f)) ; no tests + '(#:use-setuptools? #f + #:tests? #f)) ; no tests (propagated-inputs `(("python-urwid" ,python-urwid))) (home-page "https://github.com/pazz/urwidtrees") (synopsis "Tree widgets for urwid") @@ -5763,37 +5811,6 @@ the GObject Introspection bindings to libnotify for non-GTK applications.") (define-public python2-notify2 (package-with-python2 python-notify2)) -(define-public python-lxml - (package - (name "python-lxml") - (version "4.4.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "lxml" version)) - (sha256 - (base32 - "14jnpfcpgqr9sx8ppd286jzcbk0b36hbqsvd8jkvffipzw5v8768")))) - (build-system python-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "make" "test")))))) - (inputs - `(("libxml2" ,libxml2) - ("libxslt" ,libxslt))) - (home-page "http://lxml.de/") - (synopsis - "Python XML processing library") - (description - "The lxml XML toolkit is a Pythonic binding for the C libraries -libxml2 and libxslt.") - (license license:bsd-3))) ; and a few more, see LICENSES.txt - -(define-public python2-lxml - (package-with-python2 python-lxml)) - ;; beautifulsoup4 has a totally different namespace than 3.x, ;; and pypi seems to put it under its own name, so I guess we should too (define-public python-beautifulsoup4 @@ -6332,21 +6349,26 @@ so it might be a tiny bit slower.") (define-public python-waf (package (name "python-waf") - (version "2.0.11") + (version "2.0.19") (source (origin (method url-fetch) (uri (string-append "https://waf.io/" "waf-" version ".tar.bz2")) (sha256 (base32 - "13zrniwkmfqgsgzi9v5m1367fppp9yzrz6z2ny6hy8dmpb8mj4z4")))) + "19dvqbsvxz7ch03dh1v0znklrwxlz6yzddc3k9smzrrgny4jch6q")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases (replace 'build (lambda _ - (invoke "python" "waf-light" "configure" "build"))) + ;; XXX: Find a way to add all extra tools. + (let ((tools '("gccdeps" + "clang_compilation_database"))) + (invoke "python" "waf-light" "configure" "build" + (string-append "--tools=" + (string-join tools ",")))))) (replace 'check (lambda _ (invoke "python" "waf" "--version"))) @@ -6806,19 +6828,19 @@ add functionality and customization to your projects with their own plugins.") (define-public python-fonttools (package (name "python-fonttools") - (version "3.38.0") + (version "4.2.2") (source (origin (method url-fetch) (uri (pypi-uri "fonttools" version ".zip")) (sha256 (base32 - "12ripk3s7skgxr1bs9r8n13r94ym3s8iir7ivfixls9fa4dabmlh")))) + "012qqspnwdl4vy8qgzzpfglkk5dgzxiw0fak2jq74ngygvz3vfv6")))) (build-system python-build-system) (native-inputs `(("unzip" ,unzip) ("python-pytest" ,python-pytest) ("python-pytest-runner" ,python-pytest-runner))) - (home-page "https://github.com/behdad/fonttools") + (home-page "https://github.com/fonttools/fonttools") (synopsis "Tools to manipulate font files") (description "FontTools/TTX is a library to manipulate font files from Python. It @@ -6828,8 +6850,18 @@ also contains a tool called “TTX” which converts TrueType/OpenType fonts to from an XML-based format.") (license license:expat))) +;; Fonttools 4.x dropped support for Python 2, so stick with 3.x here. (define-public python2-fonttools - (package-with-python2 python-fonttools)) + (let ((base (package-with-python2 (strip-python2-variant python-fonttools)))) + (package/inherit + base + (version "3.44.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "fonttools" version ".zip")) + (sha256 + (base32 + "0v6399g755f2hn1ry62i5b6gdinf2fpx2966v3bxh6bjw1accb5p"))))))) (define-public python-ly (package @@ -8070,15 +8102,15 @@ automatically detect a wide range of file encodings.") (version "0.6.2") (source (origin - (method url-fetch) + (method git-fetch) ;; The release on PyPI does not include tests. - (uri (string-append - "https://github.com/docopt/docopt/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/docopt/docopt") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "16bf890xbdz3m30rsv2qacklh2rdn1zrfspfnwzx9g7vwz8yw4r1")))) + "0aad9gbswnnhssin2q0m5lmpm0ahyf80ahs2zjigbn5y7fvljnd0")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) @@ -8244,36 +8276,22 @@ be set via config files and/or environment variables.") provides utilities for common tasks involving decorators and context managers. It also contains additional features that are not part of the standard library.") + (properties `((python2-variant . ,(delay python2-contextlib2)))) (license license:psfl))) (define-public python2-contextlib2 - (package - (name "python2-contextlib2") - (version "0.5.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "contextlib2" version)) - (sha256 - (base32 - "0j6ad6lwwyc9kv71skj098v5l7x5biyj2hs4lc5x1kcixqcr97sh")))) - (build-system python-build-system) - (arguments - `(#:python ,python-2 - #:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ (invoke "python" "test_contextlib2.py" "-v")))))) - (native-inputs - `(("python2-unittest2" ,python2-unittest2))) - (home-page "http://contextlib2.readthedocs.org/") - (synopsis "Tools for decorators and context managers") - (description "This module is primarily a backport of the Python -3.2 contextlib to earlier Python versions. Like contextlib, it -provides utilities for common tasks involving decorators and context -managers. It also contains additional features that are not part of -the standard library.") - (license license:psfl))) + (let ((base (package-with-python2 + (strip-python2-variant python-contextlib2)))) + (package + (inherit base) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (replace 'check + (lambda _ (invoke "python" "test_contextlib2.py" "-v"))))))) + (native-inputs + `(("python2-unittest2" ,python2-unittest2)))))) (define-public python-texttable (package @@ -8513,13 +8531,13 @@ with a new public API, and RPython support.") (define-public python-hy (package (name "python-hy") - (version "0.13.0") + (version "0.17.0") (source (origin (method url-fetch) (uri (pypi-uri "hy" version)) (sha256 (base32 - "19sfymaksx9jhksfnb15ahid46mzrhdfzz6yy2craz2qnzvpmky8")))) + "1gdbqsirsdxj320wnp7my5awzs1kfs6m4fqmkzbd1zd47qzj0zfi")))) (build-system python-build-system) (arguments '(#:phases @@ -8538,7 +8556,11 @@ with a new public API, and RPython support.") (propagated-inputs `(("python-astor" ,python-astor) ("python-clint" ,python-clint) - ("python-rply" ,python-rply))) + ("python-rply" ,python-rply) + ("python-fastentrypoints" + ,python-fastentrypoints) + ("python-funcparserlib" + ,python-funcparserlib))) (home-page "http://hylang.org/") (synopsis "Lisp frontend to Python") (description @@ -9523,15 +9545,16 @@ encoding algorithms to do fuzzy string matching.") (name "python2-unicodecsv") (version "0.14.1") (source (origin - (method url-fetch) + (method git-fetch) ;; The test suite is not included in the PyPi release. ;; https://github.com/jdunck/python-unicodecsv/issues/19 - (uri (string-append "https://github.com/jdunck/python-unicodecsv/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/jdunck/python-unicodecsv") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "087nqanfcyp6mlfbbr5lva5f3w6iz1bybls9xlrb8icmc474wh4w")))) + "15hx2k41a2lpv4hcml9zp4cvlx1171mnb5s4s13xc1pxkq3vgdjy")))) (build-system python-build-system) (arguments `(;; It supports Python 3, but Python 3 can already do Unicode CSV. @@ -9911,7 +9934,7 @@ to occurrences in strings and comments.") (lambda* (#:key inputs #:allow-other-keys) (let ((file-path (assoc-ref inputs "file"))) (substitute* "py3status/parse_config.py" - (("\\['file', '-b'") + (("\\[\"file\", \"-b\"") (string-append "['" file-path "/bin/file', '-b'"))) #t)))) #:tests? #f)) ; TODO: Requires many libraries not in Guix. @@ -9998,14 +10021,14 @@ are synchronized with data exchanges on \"channels\".") (define-public python-objgraph (package (name "python-objgraph") - (version "3.4.0") + (version "3.4.1") (source (origin (method url-fetch) (uri (pypi-uri "objgraph" version)) (sha256 (base32 - "184m09am5gpbqfaiy7l0hwh476mczbrly1dffs0rw2p1d1i2q32a")))) + "19qmqsh984zq1rzzjy4vqnmviaqnymcyl8h7z99pnicbgwnm2adz")))) (build-system python-build-system) (propagated-inputs `(("python-graphviz" ,python-graphviz))) @@ -10019,6 +10042,9 @@ are synchronized with data exchanges on \"channels\".") graphviz.") (license license:expat))) +(define-public python2-objgraph + (package-with-python2 python-objgraph)) + (define-public python-gevent (package (name "python-gevent") @@ -10304,25 +10330,24 @@ are optionally backed by a C extension built on librdkafka.") (package-with-python2 python-pykafka)) (define-public python-wcwidth - (package - (name "python-wcwidth") - (version "0.1.7") - (source - (origin - (method url-fetch) - (uri (pypi-uri "wcwidth" version)) - (sha256 - (base32 - "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx")))) - (build-system python-build-system) - (home-page "https://github.com/jquast/wcwidth") - (synopsis "Measure number of terminal column cells of wide-character codes") - (description "Wcwidth measures the number of terminal column cells of + (package + (name "python-wcwidth") + (version "0.1.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "wcwidth" version)) + (sha256 + (base32 + "1a1pzds3xzfylm5mnc5f6c1p8kiig0daqjc9gygd9rc3cj53x2zj")))) + (build-system python-build-system) + (home-page "https://github.com/jquast/wcwidth") + (synopsis "Measure number of terminal column cells of wide-character codes") + (description "Wcwidth measures the number of terminal column cells of wide-character codes. It is useful for those implementing a terminal emulator, or programs that carefully produce output to be interpreted by one. It is a Python implementation of the @code{wcwidth} and @code{wcswidth} C functions specified in POSIX.1-2001 and POSIX.1-2008.") - (license license:expat))) + (license license:expat))) (define-public python2-wcwidth (package-with-python2 python-wcwidth)) @@ -10615,7 +10640,6 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") ("python-html5lib" ,python-html5lib) ("python-jsonschema" ,python-jsonschema) ("python-msgpack" ,python-msgpack) - ("python-pathlib2" ,python-pathlib2) ("python-pkginfo" ,python-pkginfo) ("python-pyparsing" ,python-pyparsing) ("python-pyrsistent" ,python-pyrsistent) @@ -11002,14 +11026,14 @@ relays publish about themselves.") (define-public python-pyserial (package (name "python-pyserial") - (version "3.1.1") + (version "3.4") (source (origin (method url-fetch) (uri (pypi-uri "pyserial" version)) (sha256 (base32 - "0k1nfdrxxkdlv4zgaqsdv8li0pj3gbh2pyxw8q2bsg6f9490amyn")))) + "09y68bczw324a4jb9a1cfwrbjhq179vnfkkkrybbksp0vqgl0bbf")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; FIXME: 3/49 tests are failing. @@ -11354,14 +11378,13 @@ command @command{natsort} that exposes this functionality in the command line.") (define-public python-glances (package (name "python-glances") - (version "3.1.1") + (version "3.1.2") (source (origin (method url-fetch) (uri (pypi-uri "Glances" version)) (sha256 - (base32 - "07j1ggzsqiskyz1i4mrnyr9i95v0dqi0i0hibnv1l188km8shmi8")) + (base32 "15384pbvw9wj4sb8zgvd9v1812vrypbyjg0acicjf1hdb3p30fkk")) (modules '((guix build utils))) (snippet '(begin @@ -11377,8 +11400,7 @@ command @command{natsort} that exposes this functionality in the command line.") (propagated-inputs `(("python-future" ,python-future) ("python-psutil" ,python-psutil))) - (home-page - "https://github.com/nicolargo/glances") + (home-page "https://github.com/nicolargo/glances") (synopsis "Cross-platform curses-based monitoring tool") (description "Glances is a curses-based monitoring tool for a wide variety of platforms. @@ -12812,29 +12834,27 @@ exception message with a traceback that points to the culprit.") (define-public python-mwclient (package (name "python-mwclient") - (version "0.8.4") + (version "0.10.0") (source (origin - (method url-fetch) + (method git-fetch) ;; The PyPI version wouldn't contain tests. - (uri (string-append "https://github.com/mwclient/mwclient/archive/" - "v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/mwclient/mwclient") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1jj0yhilkjir00719fc7w133x7hdyhkxhk6xblla4asig45klsfv")))) + "1c3q6lwmb05yqywc4ya98ca7hsl15niili8rccl4n1yqp77c103v")))) (build-system python-build-system) (propagated-inputs - `(("python-requests" ,python-requests) - ("python-requests-oauthlib" - ,python-requests-oauthlib) + `(("python-requests-oauthlib" ,python-requests-oauthlib) ("python-six" ,python-six))) (native-inputs `(("python-mock" ,python-mock) ("python-pytest" ,python-pytest) - ("python-pytest-pep8" ,python-pytest-pep8) - ("python-pytest-cache" ,python-pytest-cache) ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-runner" ,python-pytest-runner) ("python-responses" ,python-responses))) (home-page "https://github.com/btongminh/mwclient") (synopsis "MediaWiki API client") @@ -13069,14 +13089,17 @@ several utilities, as well as an API for building localization tools.") (define-public python-packaging (package (name "python-packaging") - (version "19.2") + (version "20.0") (source (origin (method url-fetch) (uri (pypi-uri "packaging" version)) + ;; XXX: The URL in the patch file is wrong, it should be + ;; . + (patches (search-patches "python-packaging-test-arch.patch")) (sha256 (base32 - "0izwlz9h0bw171a1chr311g2y7n657zjaf4mq4rgm8pp9lbj9f98")))) + "1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -13319,14 +13342,15 @@ by path in a JSON document (see RFC 6901).") (version "1.16") (source (origin - (method url-fetch) + (method git-fetch) ;; pypi version lacks tests.js - (uri (string-append "https://github.com/stefankoegl/python-json-patch/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/stefankoegl/python-json-patch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "085ykisl8v7mv9h7hvhdy3l2fjzs4214gx32r5k6nx4f76hbv6y5")))) + "0k9pff06lxama3nhsc7cdxbp83422bdy8ifs52i6xkas8hpyzfzr")))) (build-system python-build-system) (native-inputs `(("python-jsonpointer" ,python-jsonpointer))) @@ -13345,13 +13369,14 @@ applying JSON Patches according to RFC 6902.") (version "0.4") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/stefankoegl/python-json-patch/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/stefankoegl/python-json-patch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0j0cd9z9zyp8kppp464jxrfgrnbgkzl1yi10i5gsv8yz6d95929d")))))) + "1fq02y57kinyknxjcav0slcb0k9mwdffqw2hnlhdkpj7palh2mwk")))))) (define-public python2-jsonpatch-0.4 (package-with-python2 python-jsonpatch-0.4)) @@ -13672,14 +13697,13 @@ many of the popular cloud service providers using a unified API.") (define-public python-smmap2 (package (name "python-smmap2") - (version "2.0.3") + (version "2.0.5") (source (origin (method url-fetch) (uri (pypi-uri "smmap2" version)) (sha256 - (base32 - "1hvn28p3zvxa98sbi9lrqvv2ps4q284j4jq9a619zw0m7yv0sly7")))) + (base32 "16k03pcnxd3lgzwgbd7nl4jwzm1wmahirvd09kljnzvy96hgza99")))) (build-system python-build-system) (native-inputs `(("python-nosexcover" ,python-nosexcover))) @@ -14614,12 +14638,13 @@ files, and Makefiles.") (version "0.6") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/Suor/whatever/archive/" version - ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Suor/whatever") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "1rchg9hrlvw4sn20lq1zspczr4x1pv57c02gv73igiqx1hqpy2nc")) - (file-name (string-append name "-" version ".tar.gz")))) + (base32 "1q7ajgqjfivxqsqgnhp4lc4p6jxyh4zprcsdbpd6dw54inaf0av5")))) (build-system python-build-system) (arguments `(#:phases @@ -15544,14 +15569,14 @@ validation testing and application logic.") (define-public python-numba (package (name "python-numba") - (version "0.42.0") + (version "0.46.0") (source (origin (method url-fetch) (uri (pypi-uri "numba" version)) (sha256 (base32 - "03rqdfx0512lcri2bcpngx5k3jwfbqnanqj3n19c7d6h6hqxvq9x")))) + "1vnfzcq6fcnkmdms6114d49awvvj5181fl7z1wlha27qc2paxjy2")))) (build-system python-build-system) (arguments `(#:modules ((guix build utils) @@ -15568,7 +15593,7 @@ validation testing and application logic.") #t)) (add-after 'unpack 'remove-failing-tests (lambda _ - ;; FIXME: these tests fail for unknown reasons: + ;; FIXME: These tests fail for unknown reasons: ;; test_non_writable_pycache, test_non_creatable_pycache, and ;; test_frozen (all in numba.tests.test_dispatcher.TestCache). (substitute* "numba/tests/test_dispatcher.py" @@ -15581,10 +15606,20 @@ validation testing and application logic.") ;; These tests fail because we don't run the tests from the build ;; directory: test_setup_py_distutils, test_setup_py_setuptools - ;; They ar in numba.tests.test_pycc.TestDistutilsSupport. + ;; They are in numba.tests.test_pycc.TestDistutilsSupport. (substitute* "numba/tests/test_pycc.py" (("def test(_setup_py_distutils|_setup_py_setuptools)" _ m) (string-append "def guix_skip" m))) + + ;; These tests fail because our version of Python does not have + ;; a recognizable front-end for the Numba distribution to use + ;; to check against. + (substitute* "numba/tests/test_entrypoints.py" + (("def test(_init_entrypoint)" _ m) + (string-append "def guix_skip" m))) + (substitute* "numba/tests/test_jitclasses.py" + (("def test(_jitclass_longlabel_not_truncated)" _ m) + (string-append "def guix_skip" m))) #t)) (replace 'check (lambda _ @@ -15779,14 +15814,14 @@ that is accessible to other projects developed in Cython.") (define-public python-sortedcontainers (package (name "python-sortedcontainers") - (version "2.0.4") + (version "2.1.0") (source (origin (method url-fetch) (uri (pypi-uri "sortedcontainers" version)) (sha256 (base32 - "10hrk2k0hbf9x78vd3f0lj277m1yzfhzzxr0hja718liwb398wk0")))) + "0fm0w5id2yhqld95hg2m636vjgkz377rvgdfqaxc25vbylr9lklp")))) (build-system python-build-system) (native-inputs `(("python-tox" ,python-tox))) @@ -16527,14 +16562,14 @@ time-or-computationally-expensive properties quick and easy and works in Python (define-public python-folium (package (name "python-folium") - (version "0.10.0") + (version "0.10.1") (source (origin (method url-fetch) (uri (pypi-uri "folium" version)) (sha256 (base32 - "18fzxijsgrb95r0a8anc9ba5ijyw3nlnv3rpavfbkqa5v878x84f")))) + "0gcc267wxwxr57ry86pqpbiyfvl0g48hfvgy0f2mz9s58g87kgzd")))) (build-system python-build-system) (propagated-inputs `(("python-branca" ,python-branca) @@ -16599,31 +16634,6 @@ for manual interpretation.") (description "Library for simple routing on OSM data") (license license:gpl3+))) -(define-public python-elementpath - (package - (name "python-elementpath") - (version "1.2.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "elementpath" version)) - (sha256 - (base32 - "1syn2z543brab23dskh3fjd9pqvz6npqbcicrs2d88dbg26xl08p")))) - (build-system python-build-system) - (home-page - "https://github.com/sissaschool/elementpath") - (synopsis - "XPath 1.0/2.0 parsers and selectors for ElementTree and lxml") - (description - "The proposal of this package is to provide XPath 1.0 and 2.0 selectors -for Python's ElementTree XML data structures, both for the standard -ElementTree library and for the @uref{http://lxml.de, lxml.etree} library. - -For lxml.etree this package can be useful for providing XPath 2.0 selectors, -because lxml.etree already has it's own implementation of XPath 1.0.") - (license license:expat))) - (define-public python-bibtexparser (package (name "python-bibtexparser") @@ -16934,3 +16944,385 @@ parallel-enabled applications for @dfn{symmetric multiprocessing} (SMP) computers and clusters. It features cross-platform portability and dynamic load balancing.") (license license:bsd-3))) + +(define-public python-pox + (package + (name "python-pox") + (version "0.2.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pox" version)) + (sha256 + (base32 + "0y17ckc2p6i6709s279sjdj4q459mpcc38ymg9zv9y6vl6jf3bq6")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (mkdir-p "/tmp/guix") + (setenv "SHELL" "bash") + (setenv "USERNAME" "guix") + (setenv "HOME" "/tmp/guix") ; must end on USERNAME... + (invoke "py.test" "-vv") + #t))))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("which" ,which))) + (home-page "https://pypi.org/project/pox/") + (synopsis "Python utilities for filesystem exploration and automated builds") + (description + "Pox provides a collection of utilities for navigating and manipulating +filesystems. This module is designed to facilitate some of the low level +operating system interactions that are useful when exploring a filesystem on a +remote host. Pox provides Python equivalents of several shell commands such +as @command{which} and @command{find}. These commands allow automated +discovery of what has been installed on an operating system, and where the +essential tools are located.") + (license license:bsd-3))) + +(define-public python-pathos + (package + (name "python-pathos") + (version "0.2.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pathos" version)) + (sha256 + (base32 + "0in8hxdz7k081ijn6q94gr39ycy7363sx4zysmbwyvd7snqjrbi1")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "PYTHONPATH" + (string-append (getcwd) ":" (getenv "PYTHONPATH"))) + (invoke "python" "./tests/__main__.py")))))) + (propagated-inputs + `(("python-dill" ,python-dill) + ("python-multiprocess" ,python-multiprocess) + ("python-pox" ,python-pox) + ("python-ppft" ,python-ppft))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://pypi.org/project/pathos/") + (synopsis + "Parallel graph management and execution in heterogeneous computing") + (description + "Python-pathos is a framework for heterogenous computing. It provides a +consistent high-level interface for configuring and launching parallel +computations across heterogenous resources. Python-pathos provides configurable +launchers for parallel and distributed computing, where each launcher contains +the syntactic logic to configure and launch jobs in an execution environment.") + (license license:bsd-3))) + +(define-public python-flit + (package + (name "python-flit") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flit" version)) + (sha256 + (base32 + "0h5vvmqinqzn97mr3ix7zx53af9ad4fimjjwqpx88yp8qhz4r5bc")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ; XXX: Check requires network access. + (home-page "https://flit.readthedocs.io/") + (synopsis + "Simple packaging tool for simple packages") + (description + "Flit is a simple way to put Python packages and modules on PyPI. Flit +packages a single importable module or package at a time, using the import +name as the name on PyPI. All subpackages and data files within a package +are included automatically.") + (license license:bsd-3))) + +(define-public python-pathtools + (package + (name "python-pathtools") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pathtools" version)) + (sha256 + (base32 + "1h7iam33vwxk8bvslfj4qlsdprdnwf8bvzhqh3jq5frr391cadbw")))) + (build-system python-build-system) + (home-page + "https://github.com/gorakhargosh/pathtools") + (synopsis "Path utilities for Python") + (description "Pattern matching and various utilities for file systems +paths.") + (license license:expat))) + +(define-public python-fastentrypoints + (package + (name "python-fastentrypoints") + (version "0.12") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fastentrypoints" version)) + (sha256 + (base32 + "02s1j8i2dzbpbwgq2a3fiqwm3cnmhii2qzc0k42l0rdxd4a4ya7z")))) + (build-system python-build-system) + (home-page + "https://github.com/ninjaaron/fast-entry_points") + (synopsis + "Makes entry_points specified in setup.py load more quickly") + (description + "Using entry_points in your setup.py makes scripts that start really +slowly because it imports pkg_resources. This package allows such setup +scripts to load entry points more quickly.") + (license license:bsd-3))) + +(define-public python-funcparserlib + (package + (name "python-funcparserlib") + (version "0.3.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "funcparserlib" version)) + (sha256 + (base32 + "07f9cgjr3h4j2m67fhwapn8fja87vazl58zsj4yppf9y3an2x6dp")))) + (native-inputs + `(("python-tox" ,python-tox))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "tox")))))) + (build-system python-build-system) + (home-page + "https://github.com/vlasovskikh/funcparserlib") + (synopsis + "Recursive descent parsing library based on functional combinators") + (description + "This package is a recursive descent parsing library for Python based on +functional combinators. Parser combinators are just higher-order functions +that take parsers as their arguments and return them as result values.") + (license license:expat))) + +(define-public python-speg + (package + (name "python-speg") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "speg" version ".zip")) + (sha256 + (base32 "0w9y4jf4787dzhy6rvhwi0mpl0r8qkqmqmyv2hpwdpv8w53yzjqh")))) + (arguments + `(#:tests? #f)) ;FIXME: tests fail, not sure why + (native-inputs + `(("unzip" ,unzip))) + (build-system python-build-system) + (home-page "https://github.com/avakar/speg") + (synopsis "PEG-based parser interpreter with memoization") + (description "This package is a PEG-based parser and interpreter with +memoization.") + (license license:expat))) + +(define-public python-cson + (package + (name "python-cson") + (version "0.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cson" version)) + (sha256 + (base32 "00cyvigg4npbph39ghkg77xbxisa6plf75vii24igxfizik0337f")))) + (build-system python-build-system) + (propagated-inputs + `(("python-speg" ,python-speg))) + (home-page "https://github.com/avakar/pycson") + (synopsis "Parser for Coffeescript Object Notation (CSON)") + (description "This package is a parser for Coffeescript Object +Notation (CSON).") + (license license:expat))) + +(define-public python-asynctest + (package + (name "python-asynctest") + (version "0.13.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "asynctest" version)) + (sha256 + (base32 + "1b3zsy7p84gag6q8ai2ylyrhx213qdk2h2zb6im3xn0m5n264y62")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "python" "-X" "dev" "-m" "unittest" "-v" "test"))) + (add-after 'unpack 'disable-tests + (lambda* _ + (substitute* "test/test_selector.py" + ;; XXX: This test fails for unknown reason inside the build + ;; environment. + (("def test_events_watched_outside_test_are_ignored") + "@unittest.skip('disabled by guix') + def test_events_watched_outside_test_are_ignored"))))))) + (home-page "https://github.com/Martiusweb/asynctest") + (synopsis "Extension of unittest for testing asyncio libraries") + (description + "The package asynctest is built on top of the standard unittest module +and cuts down boilerplate code when testing libraries for asyncio.") + (license license:asl2.0))) + +(define-public python-aionotify + (package + (name "python-aionotify") + (version "0.2.0") + (source + (origin + ;; Source tarball on PyPi lacks tests + (method git-fetch) + (uri (git-reference + (url "https://github.com/rbarrois/aionotify") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sk9i8czxgsbrswsf1nlb4c82vgnlzi8zrvrxdip92w2z8hqh43y")))) + (build-system python-build-system) + (native-inputs `(("python-asynctest" ,python-asynctest))) + (home-page "https://github.com/rbarrois/aionotify") + (synopsis "Asyncio-powered inotify library") + (description + "@code{aionotify} is a simple, asyncio-based inotify library.") + (license license:bsd-3))) + +(define-public python-forbiddenfruit + (package + (name "python-forbiddenfruit") + (version "0.1.3") + (source + (origin + ;; Source tarball on PyPi lacks Makefile that builds and runs tests + (method git-fetch) + (uri (git-reference + (url "https://github.com/clarete/forbiddenfruit") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fp2xvdqpi910j9r3q68x38phpxbm700gjdi2m2j5gs91xdnyyh2")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "make" "SKIP_DEPS=1")))))) + (native-inputs + `(("python-nose" ,python-nose) + ("python-coverage" ,python-coverage))) + (home-page "https://github.com/clarete/forbiddenfruit") + (synopsis "Patch python built-in objects") + (description "This project allows Python code to extend built-in types.") + (license (list license:gpl3+ license:expat)))) + +(define-public python-shouldbe + (package + (name "python-shouldbe") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "shouldbe" version)) + (sha256 + (base32 + "16zbvjxf71dl4yfbgcr6idyim3mdrfvix1dv8b95p0s9z07372pj")))) + (build-system python-build-system) + (propagated-inputs + `(("python-forbiddenfruit" ,python-forbiddenfruit))) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "https://github.com/directxman12/should_be") + (synopsis "Python Assertion Helpers inspired by Shouldly") + (description + "Python Assertion Helpers inspired by Shouldly.") + (license license:isc))) + +(define-public python-k5test + (package + (name "python-k5test") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "k5test" version)) + (sha256 + (base32 + "1lqp3jgfngyhaxjgj3n230hn90wsylwilh120yjf62h7b1s02mh8")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ;; `which`, `kadmin.local` binaries called inside library + ("which" ,which) + ("mit-krb5" ,mit-krb5))) + (native-inputs `(("mit-krb5" ,mit-krb5))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* _ + (substitute* "k5test/realm.py" + (("'kadmin_local'") "'kadmin.local'"))))))) + (home-page "https://github.com/pythongssapi/k5test") + (synopsis "Library for setting up self-contained Kerberos 5 environments") + (description + "@code{k5test} is a library for setting up self-contained Kerberos 5 +environments, and running Python unit tests inside those environments. It is +based on the file of the same name found alongside the MIT Kerberos 5 unit +tests.") + (license license:isc))) + +(define-public python-gssapi + (package + (name "python-gssapi") + (version "1.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "gssapi" version)) + (sha256 + (base32 + "1gymg4asvwrz7y13qpwp2s5g8qwq179d72gkj09q6bfcgs82l5wr")))) + (build-system python-build-system) + (propagated-inputs + `(("python-decorator" ,python-decorator) + ("python-six" ,python-six))) + (inputs + `(("mit-krb5" ,mit-krb5))) + ;; for tests + (native-inputs + `(("python-shouldbe" ,python-shouldbe) + ("python-parameterized" ,python-parameterized) + ("python-k5test" ,python-k5test) + ("python-nose" ,python-nose))) + (home-page "https://github.com/pythongssapi/python-gssapi") + (synopsis "Python GSSAPI Wrapper") + (description + "Python-GSSAPI provides both low-level and high level wrappers around the +GSSAPI C libraries. While it focuses on the Kerberos mechanism, it should +also be useable with other GSSAPI mechanisms.") + (license license:isc)))