;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2017 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016, 2017, 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2018, 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
-;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
+;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2019 Sam <smbaines8@gmail.com>
;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
+ #:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
(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
(define-public python2-schedule
(package-with-python2 python-schedule))
-(define-public python-pandas
- (package
- (name "python-pandas")
- (version "0.25.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pandas" version))
- (sha256
- (base32 "1gp2pvzdiakvgjmykdzdlzrsfbg4vjm49jjdl9s0ha0a3yfs34fa"))))
- (build-system python-build-system)
- (arguments
- `(#:modules ((guix build utils)
- (guix build python-build-system)
- (ice-9 ftw)
- (srfi srfi-26))
- #:phases (modify-phases %standard-phases
- (add-after 'unpack 'patch-which
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((which (assoc-ref inputs "which")))
- (substitute* "pandas/io/clipboard/__init__.py"
- (("^CHECK_CMD = .*")
- (string-append "CHECK_CMD = \"" which "\"\n"))))
- #t))
- (replace 'check
- (lambda _
- (let ((build-directory
- (string-append
- (getcwd) "/build/"
- (car (scandir "build"
- (cut string-prefix? "lib." <>))))))
- ;; Disable the "strict data files" option which causes
- ;; the build to error out if required data files are
- ;; not available (as is the case with PyPI archives).
- (substitute* "setup.cfg"
- (("addopts = --strict-data-files") "addopts = "))
- (with-directory-excursion build-directory
- ;; Delete tests that require "moto" which is not yet
- ;; in Guix.
- (for-each delete-file
- '("pandas/tests/io/conftest.py"
- "pandas/tests/io/json/test_compression.py"
- "pandas/tests/io/parser/test_network.py"
- "pandas/tests/io/test_parquet.py"))
- (invoke "pytest" "-vv" "pandas" "--skip-slow"
- "--skip-network" "-k"
- ;; XXX: Due to the deleted tests above.
- "not test_read_s3_jsonl"))))))))
- (propagated-inputs
- `(("python-numpy" ,python-numpy)
- ("python-openpyxl" ,python-openpyxl)
- ("python-pytz" ,python-pytz)
- ("python-dateutil" ,python-dateutil)
- ("python-xlrd" ,python-xlrd)))
- (inputs
- `(("which" ,which)))
- (native-inputs
- `(("python-cython" ,python-cython)
- ("python-beautifulsoup4" ,python-beautifulsoup4)
- ("python-lxml" ,python-lxml)
- ("python-html5lib" ,python-html5lib)
- ("python-nose" ,python-nose)
- ("python-pytest" ,python-pytest)
- ("python-pytest-mock" ,python-pytest-mock)))
- (home-page "https://pandas.pydata.org")
- (synopsis "Data structures for data analysis, time series, and statistics")
- (description
- "Pandas is a Python package providing fast, flexible, and expressive data
-structures designed to make working with structured (tabular,
-multidimensional, potentially heterogeneous) and time series data both easy
-and intuitive. It aims to be the fundamental high-level building block for
-doing practical, real world data analysis in Python.")
- (properties `((python2-variant . ,(delay python2-pandas))))
- (license license:bsd-3)))
-
-;; Pandas 0.24.x are the last versions that support Python 2.
-(define-public python2-pandas
- (let ((pandas (package-with-python2
- (strip-python2-variant python-pandas))))
- (package/inherit
- pandas
- (version "0.24.2")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "pandas" version))
- (sha256
- (base32
- "18imlm8xbhcbwy4wa957a1fkamrcb0z988z006jpfda3ki09z4ag")))))))
-
(define-public python2-mechanize
(package
(name "python2-mechanize")
(define-public python-jsonrpc-server
(package
(name "python-jsonrpc-server")
- (version "0.1.2")
+ (version "0.3.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-jsonrpc-server" version))
(sha256
(base32
- "0m4ykpcdy52x37n1ikysp07j7p8ialcdvvvsrjp3545sn7iiid09"))))
+ "0ddgdp26dfxaz6isjbb12974b3rxavgsqrn2zrmck62cmipg5g05"))))
(build-system python-build-system)
(propagated-inputs
`(("python-future" ,python-future)
("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest)))
+ ("python-pytest" ,python-pytest)
+ ("python-ujson" ,python-ujson)))
(home-page
"https://github.com/palantir/python-jsonrpc-server")
(synopsis "JSON RPC 2.0 server library")
(define-public python-language-server
(package
(name "python-language-server")
- (version "0.29.1")
+ (version "0.31.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-language-server" version))
(sha256
(base32
- "1f8qlflh6j3s7qfmzhirpl8fgidl6f0qbakdmiml96wdxzvka0s3"))))
+ "1nrs56jpx7dvghaas0kc5k9lxas5vr3awj3k87p4akki43nsblb8"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pluggy" ,python-pluggy)
(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,
provides additional functionality on the produced Mallard documents.")
(license license:expat)))
-(define-public python-scikit-image
- (package
- (name "python-scikit-image")
- (version "0.14.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "scikit-image" version))
- (sha256
- (base32 "07qchljkyxvg5nrm12fvszi7pmjk4m01qp0w0z8syxzxxs20pz8s"))))
- (build-system python-build-system)
- (arguments
- ;; TODO: Some tests require running X11 server. Disable them?
- '(#:tests? #f))
- ;; See DEPENDS.txt for the list of build and run time requiremnts
- (propagated-inputs
- `(("python-cloudpickle" ,python-cloudpickle)
- ("python-dask" ,python-dask)
- ("python-matplotlib" ,python-matplotlib)
- ("python-networkx" ,python-networkx)
- ("python-numpy" ,python-numpy)
- ("python-pillow" ,python-pillow)
- ("python-pywavelets" ,python-pywavelets)
- ("python-scipy" ,python-scipy)
- ("python-six" ,python-six)))
- (native-inputs
- `(("python-cython" ,python-cython)))
- (home-page "http://scikit-image.org/")
- (synopsis "Image processing in Python")
- (description
- "Scikit-image is a collection of algorithms for image processing.")
- (license license:bsd-3)))
-
-(define-public python2-scikit-image
- (package-with-python2 python-scikit-image))
-
(define-public python-cython
(package
(name "python-cython")
(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)
operators such as union, intersection, and difference.")
(license license:asl2.0)))
-(define-public python-scipy
- (package
- (name "python-scipy")
- (version "1.3.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "scipy" version))
- (sha256
- (base32 "192d8dsybvhv19igkrsafbdafx198nz7pibkjgrqjhlr66s3jfd0"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-numpy" ,python-numpy)
- ("python-matplotlib" ,python-matplotlib)
- ("python-pyparsing" ,python-pyparsing)))
- (inputs
- `(("lapack" ,lapack)
- ("openblas" ,openblas)))
- (native-inputs
- `(("python-cython" ,python-cython)
- ("python-pytest" ,python-pytest)
- ("python-sphinx" ,python-sphinx)
- ("python-numpydoc" ,python-numpydoc)
- ("gfortran" ,gfortran)
- ("perl" ,perl)
- ("which" ,which)))
- (outputs '("out" "doc"))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'disable-broken-tests
- (lambda _
- (substitute* "scipy/sparse/linalg/dsolve/tests/test_linsolve.py"
- (("^( +)def test_threads_parallel\\(self\\):" m indent)
- (string-append indent
- "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
- m)))
- (substitute* "scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py"
- (("^def test_parallel_threads\\(\\):" m)
- (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
- m)))
- #t))
- (add-before 'build 'configure-openblas
- (lambda* (#:key inputs #:allow-other-keys)
- (call-with-output-file "site.cfg"
- (lambda (port)
- (format port
- "[blas]
-libraries = openblas
-library_dirs = ~a/lib
-include_dirs = ~a/include
-
-# backslash-n to make emacs happy
-\n[atlas]
-library_dirs = ~a/lib
-atlas_libs = openblas
-"
- (assoc-ref inputs "openblas")
- (assoc-ref inputs "openblas")
- (assoc-ref inputs "openblas"))))
- #t))
- (add-after 'install 'install-doc
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
- (doc (string-append data "/doc/" ,name "-" ,version))
- (html (string-append doc "/html"))
- (pyver ,(string-append "PYVER=" (version-major+minor
- (package-version python))))
- ;; By default it tries to run sphinx-build through the Python
- ;; interpreter which won't work with our shell wrapper.
- (sphinxbuild "SPHINXBUILD=LANG=C sphinx-build"))
- ;; Make installed package available for building the
- ;; documentation
- (add-installed-pythonpath inputs outputs)
- (with-directory-excursion "doc"
- ;; Fix generation of images for mathematical expressions.
- (substitute* (find-files "source" "conf\\.py")
- (("pngmath_use_preview = True")
- "pngmath_use_preview = False"))
- (mkdir-p html)
- (invoke "make" "html" pyver sphinxbuild)
- (with-directory-excursion "build/html"
- (for-each (lambda (file)
- (let* ((dir (dirname file))
- (tgt-dir (string-append html "/" dir)))
- (install-file file html)))
- (find-files "." ".*")))))
- #t))
- ;; Tests can only be run after the library has been installed and not
- ;; within the source directory.
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (with-directory-excursion "/tmp"
- (invoke "python" "-c"
- "import scipy; scipy.test(verbose=2)")))))))
- (home-page "https://www.scipy.org/")
- (synopsis "The Scipy library provides efficient numerical routines")
- (description "The SciPy library is one of the core packages that make up
-the SciPy stack. It provides many user-friendly and efficient numerical
-routines such as routines for numerical integration and optimization.")
- (properties `((python2-variant . ,(delay python2-scipy))))
- (license license:bsd-3)))
-
-;; Version 1.2.2 is the last version to support Python 2
-(define-public python2-scipy
- (package
- (inherit (package-with-python2
- (strip-python2-variant python-scipy)))
- (version "1.2.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "scipy" version))
- (sha256
- (base32
- "1cgvgin8fvckv96hjh3ikmwkra5rif51bdb75ifzf7xbil5iwcx4"))))))
-
(define-public python-socksipy-branch
(package
(name "python-socksipy-branch")
(define-public python-socksipychain
(package
(name "python-socksipychain")
- (version "2.0.15")
+ (version "2.1.0")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "1pkljnh9hfwla8sg7mil4f9zrnsqj0dbhr3crxjw3k8dnjz70dvk"))))
+ "0idm9a050rd2kbgbz2sk9ib9589kj4xh1xdnggs6xbq2v2y8f6zn"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; Tests try to access the network.
a simple netcat replacement with chaining support.")
(license license:bsd-3)))
-(define-public python2-socksipychain
- (package-with-python2 python-socksipychain))
-
(define-public python-pycodestyle
(package
(name "python-pycodestyle")
(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")
(define-public python-lxml
(package
(name "python-lxml")
- (version "4.4.1")
+ (version "4.4.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "lxml" version))
(sha256
- (base32
- "14jnpfcpgqr9sx8ppd286jzcbk0b36hbqsvd8jkvffipzw5v8768"))))
+ (base32 "01nvb5j8vs9nk4z5s3250b1m22b4d08kffa36if3g1mdygdrvxpg"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(inputs
`(("libxml2" ,libxml2)
("libxslt" ,libxslt)))
- (home-page "http://lxml.de/")
- (synopsis
- "Python XML processing library")
+ (home-page "https://lxml.de/")
+ (synopsis "Python XML processing library")
(description
"The lxml XML toolkit is a Pythonic binding for the C libraries
libxml2 and libxslt.")
(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")))
`(("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
(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)))
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
(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
(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
(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.
(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.
(package-with-python2 python-pykafka))
(define-public python-wcwidth
- (package
- (name "python-wcwidth")
- (version "0.1.7")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "wcwidth" version))
- (sha256
- (base32
- "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx"))))
- (build-system python-build-system)
- (home-page "https://github.com/jquast/wcwidth")
- (synopsis "Measure number of terminal column cells of wide-character codes")
- (description "Wcwidth measures the number of terminal column cells of
+ (package
+ (name "python-wcwidth")
+ (version "0.1.7")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "wcwidth" version))
+ (sha256
+ (base32
+ "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/jquast/wcwidth")
+ (synopsis "Measure number of terminal column cells of wide-character codes")
+ (description "Wcwidth measures the number of terminal column cells of
wide-character codes. It is useful for those implementing a terminal emulator,
or programs that carefully produce output to be interpreted by one. It is a
Python implementation of the @code{wcwidth} and @code{wcswidth} C functions
specified in POSIX.1-2001 and POSIX.1-2008.")
- (license license:expat)))
+ (license license:expat)))
(define-public python2-wcwidth
(package-with-python2 python-wcwidth))
(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.
(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
(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.
(define-public python-argcomplete
(package
(name "python-argcomplete")
- (version "1.7.0")
+ (version "1.10.3")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "argcomplete" version))
- (sha256
- (base32
- "11bwiw6j0nilgz81xnw6f1npyga3prp8asjqrm87cdr3ria5l03x"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "argcomplete" version))
+ (sha256
+ (base32
+ "02jkc44drb0yjz6x28lvg6rj607n8r2irdpdvyylm8xnycn54zx3"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'embed-tool-references
+ (lambda _
+ (substitute* "argcomplete/bash_completion.d/python-argcomplete.sh"
+ ((" grep")
+ (string-append " " (which "grep")))
+ ((" egrep")
+ (string-append " " (which "egrep")))
+ (("elif which")
+ (string-append "elif " (which "which")))
+ (("\\$\\(which")
+ (string-append "$(" (which "which"))))
+ #t)))))
+ (inputs
+ `(("grep" ,grep)
+ ("which" ,which)))
(native-inputs
- `(("python-pexpect" ,python-pexpect)
+ `(("python-coverage" ,python-coverage)
+ ("python-flake8" ,python-flake8)
+ ("python-pexpect" ,python-pexpect)
+ ("python-wheel" ,python-wheel)
("tcsh" ,tcsh)
- ("bash-full" ,bash))) ;full Bash for 'test_file_completion'
+ ("fish" ,fish)
+ ("bash-full" ,bash))) ;full Bash for 'test_file_completion'
(home-page "https://github.com/kislyuk/argcomplete")
(synopsis "Shell tab completion for Python argparse")
(description "argcomplete provides extensible command line tab completion
(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")
(define-public python-packaging
(package
(name "python-packaging")
- (version "19.0")
+ (version "20.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "packaging" version))
(sha256
(base32
- "1brjhygq9dz6x1kdljivkjfldi3qf5rbkqgck1bpgv9qpv8ab60c"))))
+ "1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(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)))
(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))
(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)))
(define-public python-semver
(package
(name "python-semver")
- (version "2.7.9")
+ (version "2.9.0")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "semver" version))
- (sha256
- (base32
- "0hhgqppchv59rqj0yzi1prdg2nfsywqmjsqy2rycyxm0hvxmbyqz"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "semver" version))
+ (sha256
+ (base32
+ "183kg1rhzz3hqizvphkd8hlbf1zxfx8737zhfkmqzxi71jmdw7pd"))))
(build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-test-requirements
- (lambda _
- (substitute* "setup.py"
- ;; Our Python is new enough.
- (("'virtualenv<14\\.0\\.0'") "'virtualenv'"))
- #t)))))
(native-inputs
`(("python-tox" ,python-tox)
("python-virtualenv" ,python-virtualenv)))
(define-public python-yapf
(package
(name "python-yapf")
- (version "0.24.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "yapf" version))
(sha256
(base32
- "0anwby0ydmyzcsgjc5dn1ryddwvii4dq61vck447q0n96npnzfyf"))))
+ "1pj3xzblmbssshi889b6n9hwqbjpabw6j0fimlng2sshd3226bki"))))
(build-system python-build-system)
(home-page "https://github.com/google/yapf")
(synopsis "Formatter for Python code")
(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
(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)
#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"
;; 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 _
(define-public python-dill
(package
(name "python-dill")
- (version "0.2.9")
+ (version "0.3.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "dill" version))
(sha256
- (base32 "0vwqyi6hyz2r29zydc78dqymkbc5y7gia16xcdh215cikxph9mpn"))))
+ (base32 "1704g8z70d210ksgbccs2v545v9w0wc6lx15m296alb7jf0yzn22"))))
(build-system python-build-system)
- ;; FIXME: The check phase fails with "don't know how to make test from: …".
- (arguments '(#:tests? #f))
- (home-page "https://pypi.org/project/dill")
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (with-directory-excursion "/tmp"
+ (invoke "nosetests" "-v"))
+ #t)))))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "https://pypi.org/project/dill/")
(synopsis "Serialize all of Python")
(description "Dill extends Python's @code{pickle} module for serializing
and de-serializing Python objects to the majority of the built-in Python
(define-public python-multiprocess
(package
(name "python-multiprocess")
- (version "0.70.6.1")
+ (version "0.70.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "multiprocess" version))
(sha256
(base32
- "1ip5caz67b3q0553mr8gm8xwsb8x500jn8ml0gihgyfy52m2ypcq"))))
+ "1r882nvd44xqwbrclwqx5rhs80l6809rcvpc7pkpgnij06cvvmcz"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ ;; This test is broken as there is no keyboard interrupt.
+ (substitute* "py3.7/multiprocess/tests/__init__.py"
+ (("^(.*)def test_wait_result"
+ line indent)
+ (string-append indent
+ "@unittest.skip(\"Disabled by Guix\")\n"
+ line)))
+ #t))
+ ;; Tests must be run after installation.
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "multiprocess.tests")
+ #t)))))
(propagated-inputs
`(("python-dill" ,python-dill)))
- (home-page "https://pypi.org/project/multiprocess")
+ (home-page "https://pypi.org/project/multiprocess/")
(synopsis "Multiprocessing and multithreading in Python")
(description
"This package is a fork of the multiprocessing Python package, a package
(define-public python2-partd
(package-with-python2 python-partd))
+(define-public python-fsspec
+ (package
+ (name "python-fsspec")
+ (version "0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "fsspec" version))
+ (sha256
+ (base32
+ "1g9ba8v04s1nrh7pvzfm2md7ivl2mrz3hcq3y9d1a44gd62h17zj"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ; there are none
+ (home-page "https://github.com/intake/filesystem_spec")
+ (synopsis "File-system specification")
+ (description "The purpose of this package is to produce a template or
+specification for a file-system interface, that specific implementations
+should follow, so that applications making use of them can rely on a common
+behavior and not have to worry about the specific internal implementation
+decisions with any given backend.")
+ (license license:bsd-3)))
+
(define-public python-dask
(package
(name "python-dask")
- (version "1.2.2")
+ (version "2.9.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "dask" version))
(sha256
- (base32 "0b29gvf96gmp20wicly3v3mhyc93zbm3mdv935fka6x0wax7cy2y"))))
+ (base32 "1w1hqr8vyx6ygwflj2737dcy0mmgvrc0s602gnny8pzlcbs9m76b"))))
(build-system python-build-system)
- ;; A single test out of 5000+ fails. This test is marked as xfail when
- ;; pytest-xdist is used.
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'disable-broken-test
+ (add-after 'unpack 'disable-broken-tests
(lambda _
+ ;; This test is marked as xfail when pytest-xdist is used.
(substitute* "dask/tests/test_threaded.py"
(("def test_interrupt\\(\\)" m)
(string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
m)))
- (when (which "python2")
- ;; This test fails with recent Pandas:
- ;; <https://github.com/dask/dask/issues/3794>.
- (substitute* "dask/dataframe/tests/test_dataframe.py"
- (("def test_info\\(\\)" m)
- (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
- m))))
+ ;; This one fails with a type error:
+ ;; TypeError: Already tz-aware, use tz_convert to convert.
+ (substitute* "dask/dataframe/tests/test_shuffle.py"
+ (("def test_set_index_timestamp\\(\\)" m)
+ (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
+ m)))
#t))
(replace 'check
(lambda _ (invoke "pytest" "-vv"))))))
(propagated-inputs
`(("python-cloudpickle" ,python-cloudpickle)
+ ("python-fsspec" ,python-fsspec)
("python-numpy" ,python-numpy)
+ ("python-packaging" ,python-packaging)
("python-pandas" ,python-pandas)
("python-partd" ,python-partd)
("python-toolz" ,python-toolz)
run on top of the dynamic task schedulers. ")
(license license:bsd-3)))
-(define-public python2-dask
- (package-with-python2 python-dask))
-
(define-public python-ilinkedlist
(package
(name "python-ilinkedlist")
(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)
several convenience Python scripts, including \"classic\" hex2bin and bin2hex
converters and more, those based on the library itself.")
(license license:bsd-3)))
+
+(define-public python-pykwalify
+ (package
+ (name "python-pykwalify")
+ (version "1.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pykwalify" version))
+ (sha256
+ (base32
+ "1cnfzkg1b01f825ikpw2fhjclf9c8akxjfrbd1vc22x1lg2kk2vy"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ;missing dependencies
+ (propagated-inputs
+ `(("python-dateutil" ,python-dateutil)
+ ("python-docopt" ,python-docopt)
+ ("python-pyyaml" ,python-pyyaml)))
+ (home-page "https://github.com/grokzen/pykwalify")
+ (synopsis
+ "Python lib/cli for JSON/YAML schema validation")
+ (description
+ "This package provides a parser, schema validator, and data binding tool
+for YAML and JSON.")
+ (license license:expat)))
+
+(define-public python-dbusmock
+ (package
+ (name "python-dbusmock")
+ (version "0.18.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-dbusmock" version))
+ (sha256
+ (base32
+ "0hp2kyac88nh9iv6l8hlmv7s1sa1s5f1a3wc2pmlmmxnd211fjlr"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-shell-path
+ (lambda _
+ (substitute* "tests/test_code.py"
+ (("/bin/bash") (which "bash")))
+ #t)))))
+ (native-inputs
+ `(;; For tests.
+ ("dbus" ,dbus) ; for dbus-daemon
+ ("python-nose" ,python-nose)
+ ("which" ,which)))
+ (propagated-inputs
+ `(("python-dbus" ,python-dbus)
+ ("python-pygobject" ,python-pygobject)))
+ (home-page "https://github.com/martinpitt/python-dbusmock")
+ (synopsis "Python library for mock D-Bus objects")
+ (description "python-dbusmock allows for the easy creation of mock objects on
+D-Bus. This is useful for writing tests for software which talks to D-Bus
+services such as upower, systemd, logind, gnome-session or others, and it is
+hard (or impossible without root privileges) to set the state of the real
+services to what you expect in your tests.")
+ (license license:lgpl3+)))
+
+(define-public python-ujson
+ (package
+ (name "python-ujson")
+ (version "1.35")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ujson" version))
+ (sha256
+ (base32
+ "11jz5wi7mbgqcsz52iqhpyykiaasila4lq8cmc2d54bfa3jp6q7n"))))
+ (build-system python-build-system)
+ (home-page "http://www.esn.me")
+ (synopsis
+ "Ultra fast JSON encoder and decoder for Python")
+ (description
+ "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with
+ bindings for Python 2.5+ and 3.")
+ (license license:bsd-3)))
+
+(define-public python2-ujson
+ (package-with-python2 python-ujson))
+
+(define-public python-iocapture
+ ;; The latest release is more than a year older than this commit.
+ (let ((commit "fdc021c431d0840303908dfc3ca8769db383595c")
+ (revision "1"))
+ (package
+ (name "python-iocapture")
+ (version "0.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/oinume/iocapture.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1mkbhqibxvgwg0p7slr8dfraa3g2s6bsayladhax2jccwj4kcndz"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "py.test" "-v" "tests")
+ #t)))))
+ (propagated-inputs
+ `(("python-flexmock" ,python-flexmock)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-six" ,python-six)))
+ (home-page "https://github.com/oinume/iocapture")
+ (synopsis "Python capturing tool for stdout and stderr")
+ (description
+ "This package helps you to capture the standard out (stdout) and the
+standard error channel (stderr) in your program.")
+ (license license:expat))))
+
+(define-public python-argh
+ ;; There are 21 commits since the latest release containing important
+ ;; improvements.
+ (let ((commit "dcd3253f2994400a6a58a700c118c53765bc50a4")
+ (revision "1"))
+ (package
+ (name "python-argh")
+ (version (git-version "0.26.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/neithere/argh.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1p5h3dnpbsjmqrvil96s71asc6i3gpinmbrabqmwnrsxprz7r3ns"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-iocapture" ,python-iocapture)
+ ("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-xdist" ,python-pytest-xdist)
+ ("python-tox" ,python-tox)))
+ (home-page "https://github.com/neithere/argh/")
+ (synopsis "Argparse wrapper with natural syntax")
+ (description
+ "python-argh is a small library that provides several layers of
+abstraction on top of @code{python-argparse}. The layers can be mixed. It is
+always possible to declare a command with the highest possible (and least
+flexible) layer and then tune the behaviour with any of the lower layers
+including the native API of @code{python-argparse}.")
+ (license license:lgpl3+))))
+
+(define-public python-ppft
+ (package
+ (name "python-ppft")
+ (version "1.6.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ppft" version))
+ (sha256
+ (base32
+ "1z1invkhszc5d2mvgr221v7cszzifcc77mz0pv3wjp6x5q2768cy"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ; there are none
+ (propagated-inputs
+ `(("python-six" ,python-six)))
+ (home-page "https://pypi.org/project/ppft/")
+ (synopsis "Fork of Parallel Python")
+ (description
+ "This package is a fork of Parallel Python. The Parallel Python
+module (@code{pp}) provides an easy and efficient way to create
+parallel-enabled applications for @dfn{symmetric multiprocessing} (SMP)
+computers and clusters. It features cross-platform portability and dynamic
+load balancing.")
+ (license license:bsd-3)))
+
+(define-public python-pox
+ (package
+ (name "python-pox")
+ (version "0.2.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pox" version))
+ (sha256
+ (base32
+ "0y17ckc2p6i6709s279sjdj4q459mpcc38ymg9zv9y6vl6jf3bq6"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (mkdir-p "/tmp/guix")
+ (setenv "SHELL" "bash")
+ (setenv "USERNAME" "guix")
+ (setenv "HOME" "/tmp/guix") ; must end on USERNAME...
+ (invoke "py.test" "-vv")
+ #t)))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("which" ,which)))
+ (home-page "https://pypi.org/project/pox/")
+ (synopsis "Python utilities for filesystem exploration and automated builds")
+ (description
+ "Pox provides a collection of utilities for navigating and manipulating
+filesystems. This module is designed to facilitate some of the low level
+operating system interactions that are useful when exploring a filesystem on a
+remote host. Pox provides Python equivalents of several shell commands such
+as @command{which} and @command{find}. These commands allow automated
+discovery of what has been installed on an operating system, and where the
+essential tools are located.")
+ (license license:bsd-3)))
+
+(define-public python-pathos
+ (package
+ (name "python-pathos")
+ (version "0.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pathos" version))
+ (sha256
+ (base32
+ "0in8hxdz7k081ijn6q94gr39ycy7363sx4zysmbwyvd7snqjrbi1"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (setenv "PYTHONPATH"
+ (string-append (getcwd) ":" (getenv "PYTHONPATH")))
+ (invoke "python" "./tests/__main__.py"))))))
+ (propagated-inputs
+ `(("python-dill" ,python-dill)
+ ("python-multiprocess" ,python-multiprocess)
+ ("python-pox" ,python-pox)
+ ("python-ppft" ,python-ppft)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://pypi.org/project/pathos/")
+ (synopsis
+ "Parallel graph management and execution in heterogeneous computing")
+ (description
+ "Python-pathos is a framework for heterogenous computing. It provides a
+consistent high-level interface for configuring and launching parallel
+computations across heterogenous resources. Python-pathos provides configurable
+launchers for parallel and distributed computing, where each launcher contains
+the syntactic logic to configure and launch jobs in an execution environment.")
+ (license license:bsd-3)))
+
+(define-public python-flit
+ (package
+ (name "python-flit")
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "flit" version))
+ (sha256
+ (base32
+ "0h5vvmqinqzn97mr3ix7zx53af9ad4fimjjwqpx88yp8qhz4r5bc"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; XXX: Check requires network access.
+ (home-page "https://flit.readthedocs.io/")
+ (synopsis
+ "Simple packaging tool for simple packages")
+ (description
+ "Flit is a simple way to put Python packages and modules on PyPI. Flit
+packages a single importable module or package at a time, using the import
+name as the name on PyPI. All subpackages and data files within a package
+are included automatically.")
+ (license license:bsd-3)))
+
+(define-public python-pathtools
+ (package
+ (name "python-pathtools")
+ (version "0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pathtools" version))
+ (sha256
+ (base32
+ "1h7iam33vwxk8bvslfj4qlsdprdnwf8bvzhqh3jq5frr391cadbw"))))
+ (build-system python-build-system)
+ (home-page
+ "https://github.com/gorakhargosh/pathtools")
+ (synopsis "Path utilities for Python")
+ (description "Pattern matching and various utilities for file systems
+paths.")
+ (license license:expat)))
+
+(define-public python-fastentrypoints
+ (package
+ (name "python-fastentrypoints")
+ (version "0.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "fastentrypoints" version))
+ (sha256
+ (base32
+ "02s1j8i2dzbpbwgq2a3fiqwm3cnmhii2qzc0k42l0rdxd4a4ya7z"))))
+ (build-system python-build-system)
+ (home-page
+ "https://github.com/ninjaaron/fast-entry_points")
+ (synopsis
+ "Makes entry_points specified in setup.py load more quickly")
+ (description
+ "Using entry_points in your setup.py makes scripts that start really
+slowly because it imports pkg_resources. This package allows such setup
+scripts to load entry points more quickly.")
+ (license license:bsd-3)))
+
+(define-public python-funcparserlib
+ (package
+ (name "python-funcparserlib")
+ (version "0.3.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "funcparserlib" version))
+ (sha256
+ (base32
+ "07f9cgjr3h4j2m67fhwapn8fja87vazl58zsj4yppf9y3an2x6dp"))))
+ (native-inputs
+ `(("python-tox" ,python-tox)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "tox"))))))
+ (build-system python-build-system)
+ (home-page
+ "https://github.com/vlasovskikh/funcparserlib")
+ (synopsis
+ "Recursive descent parsing library based on functional combinators")
+ (description
+ "This package is a recursive descent parsing library for Python based on
+functional combinators. Parser combinators are just higher-order functions
+that take parsers as their arguments and return them as result values.")
+ (license license:expat)))