diff --git a/gnu/local.mk b/gnu/local.mk index 00d82ee4a1..459112fc57 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -341,6 +341,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/protobuf.scm \ %D%/packages/pv.scm \ %D%/packages/python.scm \ + %D%/packages/python-web.scm \ %D%/packages/tryton.scm \ %D%/packages/qt.scm \ %D%/packages/ragel.scm \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 30b5a1fb6a..43a72d7184 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -69,6 +69,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages texinfo) #:use-module (gnu packages groff) #:use-module (gnu packages pciutils) @@ -78,7 +79,6 @@ #:use-module (gnu packages image) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages python) #:use-module (gnu packages man) #:use-module (gnu packages autotools) #:use-module (gnu packages gnome) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index c60d02d1e3..70dfb30c03 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -49,6 +49,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages rsync) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 5a780b9148..f06f232587 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -22,7 +22,8 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (gnu packages) - #:use-module (gnu packages python)) + #:use-module (gnu packages python) + #:use-module (gnu packages python-web)) (define-public radicale (package diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index f983b1aa10..229f0319f4 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -27,7 +27,8 @@ #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages databases) - #:use-module (gnu packages python)) + #:use-module (gnu packages python) + #:use-module (gnu packages python-web)) (define-public python-django (package diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 3cfdb7ef55..f540417b4f 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -24,7 +24,8 @@ #:use-module (guix git-download) #:use-module (guix build-system python) #:use-module (guix utils) - #:use-module (gnu packages python)) + #:use-module (gnu packages python) + #:use-module (gnu packages python-web)) (define-public python-docker-py (package diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 0eeee09054..8cf977cff3 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -44,6 +44,7 @@ #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages serialization) #:use-module (gnu packages tls) diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index 648a07e4c4..6f9056d8f2 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages autotools)) (define-public log4cpp diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index c6ac2662b1..0b1f0e7dbf 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -81,6 +81,7 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages readline) #:use-module (gnu packages search) #:use-module (gnu packages texinfo) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index f5df440709..04a1c934a5 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -93,6 +93,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) ;libsndfile #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 86d1ce9978..410a205849 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -21,6 +21,7 @@ (define-module (gnu packages openstack) #:use-module (gnu packages gnupg) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) @@ -249,46 +250,6 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python2-os-testr (package-with-python2 python-os-testr)) -(define-public python-requests-mock - (package - (name "python-requests-mock") - (version "1.3.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "requests-mock" version)) - (sha256 - (base32 - "0jr997dvk6zbmhvbpcv3rajrgag69mcsm1ai3w3rgk2jdh6rg1mx")))) - (build-system python-build-system) - (propagated-inputs - `(("python-requests" ,python-requests) - ("python-six" ,python-six))) - (native-inputs - `(("python-pbr" ,python-pbr) - ("python-discover" ,python-discover) - ("python-docutils" ,python-docutils) - ("python-fixtures" ,python-fixtures) - ("python-mock" ,python-mock) - ("python-sphinx" ,python-sphinx) - ("python-testrepository" ,python-testrepository) - ("python-testtools" ,python-testtools))) - (home-page "https://requests-mock.readthedocs.org/") - (synopsis "Mock out responses from the requests package") - (description - "This module provides a building block to stub out the HTTP requests -portions of your testing code.") - (properties `((python2-variant . ,(delay python2-requests-mock)))) - (license asl2.0))) - -(define-public python2-requests-mock - (package (inherit (package-with-python2 - (strip-python2-variant python-requests-mock))) - (arguments - `(#:python ,python-2 - ;; FIXME: 'subunit.run discover: error: no such option: --list' - #:tests? #f)))) - (define-public python-stevedore (package (name "python-stevedore") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 1242156dbf..85b6cd2699 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -53,6 +53,7 @@ #:use-module (gnu packages bdw-gc) #:use-module (gnu packages patchutils) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages popt) #:use-module (gnu packages gnuzilla) #:use-module (gnu packages cpio) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm new file mode 100644 index 0000000000..d541b0f3fd --- /dev/null +++ b/gnu/packages/python-web.scm @@ -0,0 +1,2119 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Eric Dvorsak +;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2017 Christopher Baines +;;; Copyright © 2016 Danny Milosavljevic +;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge +;;; Copyright © 2016, 2017 Marius Bakke +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2017 Roel Janssen +;;; Copyright © 2016, 2017 Julien Lepiller +;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2014, 2017 Eric Bavier +;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2015 Cyril Roelandt +;;; Copyright © 2015, 2016, 2017 Leo Famulari +;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice +;;; Copyright © 2015, 2017 Ben Woodcroft +;;; Copyright © 2015, 2016 Christopher Allan Webber +;;; Copyright © 2017 Adriano Peluso +;;; Copyright © 2016 Dylan Jeffers +;;; Copyright © 2016 David Craven +;;; Copyright © 2017 Oleg Pykhalov +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages python-web) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages django) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages xml) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (srfi srfi-1)) + +(define-public python-httplib2 + (package + (name "python-httplib2") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "httplib2" version)) + (sha256 + (base32 + "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3")))) + (build-system python-build-system) + (home-page "https://github.com/jcgregorio/httplib2") + (synopsis "Comprehensive HTTP client library") + (description + "A comprehensive HTTP client library supporting many features left out of +other HTTP libraries.") + (license license:expat))) + +(define-public python2-httplib2 + (package-with-python2 python-httplib2)) + +(define-public python-sockjs-tornado + (package + (name "python-sockjs-tornado") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sockjs-tornado" version)) + (sha256 + (base32 + "16cff40nniqsyvda1pb2j3b4zwmrw7y2g1vqq78lp20xpmhnwwkd")))) + (build-system python-build-system) + (arguments + `(;; There are no tests, and running the test phase requires missing + ;; dependencies + #:tests? #f)) + (propagated-inputs + `(("python-tornado" ,python-tornado))) + (home-page "http://github.com/mrjoes/sockjs-tornado/") + (synopsis + "SockJS python server implementation on top of Tornado framework") + (description + "SockJS-tornado provides the server side counterpart to a SockJS client +library, through the Tornado framework. + +SockJS provides a low latency, full duplex, cross-domain communication channel +between a web browser and web server.") + (license license:expat))) + +(define-public python2-sockjs-tornado + (package-with-python2 python-sockjs-tornado)) + +(define-public python-flask-babel + (package + (name "python-flask-babel") + (version "0.11.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-Babel" version)) + (sha256 + (base32 + "16b80cipdba9xj3jlaiaq6wgrgpjb70w3j01jjy9hbp4k71kd6yj")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-babel" ,python-babel) + ("python-jinja2" ,python-jinja2) + ("python-pytz" ,python-pytz))) + (home-page "https://github.com/python-babel/flask-babel") + (synopsis "Add i18n/l10n support to Flask applications") + (description "This package implements internationalization and localization +support for Flask. This is based on the Python babel module as well as pytz - +both of which are installed automatically if you install this library.") + (license license:bsd-3))) + +(define-public python2-flask-babel + (package-with-python2 python-flask-babel)) + +(define-public python-html5lib + (package + (name "python-html5lib") + (version "1.0b10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "html5lib" version)) + (sha256 + (base32 + "1yd068a5c00wd0ajq0hqimv7fd82lhrw0w3s01vbhy9bbd6xapqd")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-webencodings" ,python-webencodings))) + (arguments + `(#:test-target "check")) + (home-page + "https://github.com/html5lib/html5lib-python") + (synopsis + "Python HTML parser based on the WHATWG HTML specifcation") + (description + "Html5lib is an HTML parser based on the WHATWG HTML specifcation +and written in Python.") + (license license:expat))) + +(define-public python2-html5lib + (package-with-python2 python-html5lib)) + +;; Needed for python-bleach, a dependency of python-notebook +(define-public python-html5lib-0.9 + (package + (inherit python-html5lib) + (version "0.999") + (source + (origin + (method url-fetch) + (uri (pypi-uri "html5lib" version)) + (sha256 + (base32 + "17n4zfsj6ynmbwdwviywmj8r6nzr3xvfx2zs0xhndmvm51z7z263")))))) + +(define-public python2-html5lib-0.9 + (package-with-python2 python-html5lib-0.9)) + +(define-public python-html5-parser + (package + (name "python-html5-parser") + (version "0.4.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "html5-parser" version)) + (sha256 + (base32 + "1d8sxhl41ffh7qlk7wlsy17xw6slzx5v1yna9s72wx5qrpaa3wxr")))) + (build-system python-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libxml2" ,libxml2))) + (propagated-inputs + `(("python-lxml" ,python-lxml) + ("python-beautifulsoup4" ,python-beautifulsoup4))) + (home-page "https://html5-parser.readthedocs.io") + (synopsis "Fast C-based HTML5 parsing for Python") + (description "This package provides a fast implementation of the HTML5 +parsing spec for Python. Parsing is done in C using a variant of the gumbo +parser. The gumbo parse tree is then transformed into an lxml tree, also in +C, yielding parse times that can be a thirtieth of the html5lib parse times.") + ;; src/as-python-tree.[c|h] are licensed GPL3. The other files + ;; indicate ASL2.0, including the LICENSE file for the whole project. + (license (list license:asl2.0 license:gpl3)))) + +(define-public python2-html5-parser + (package-with-python2 python-html5-parser)) + +(define-public python-webencodings + (package + (name "python-webencodings") + (version "0.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "webencodings" version)) + (sha256 + (base32 + "015rw7662lkpb9aqiqah2hbizk6w531badqwjpz41rr47glmxid5")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "py.test" "-v" "webencodings/tests.py"))))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/SimonSapin/python-webencodings") + (synopsis "Character encoding aliases for legacy web content") + (description + "In order to be compatible with legacy web content when interpreting +something like @code{Content-Type: text/html; charset=latin1}, tools need +to use a particular set of aliases for encoding labels as well as some +overriding rules. For example, @code{US-ASCII} and @code{iso-8859-1} on +the web are actually aliases for @code{windows-1252}, and an @code{UTF-8} +or @code{UTF-16} BOM takes precedence over any other encoding declaration. +The WHATWG @url{https://encoding.spec.whatwg.org/,Encoding} standard +defines all such details so that implementations do not have to +reverse-engineer each other. + +This module implements the Encoding standard and has encoding labels and +BOM detection, but the actual implementation for encoders and decoders +is Python’s.") + (license license:bsd-3))) + +(define-public python2-webencodings + (package-with-python2 python-webencodings)) + +(define-public python-openid + (package + (name "python-openid") + (version "3.0.10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python3-openid" version)) + (sha256 + (base32 + "1x3nh3fycqfn43jp5j5pb4q4y2jxp4mdka4absaa3bc0078qd758")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "./admin/runtests"))))))) + (properties `((python2-variant . ,(delay python2-openid)))) + (propagated-inputs + `(("python-defusedxml" ,python-defusedxml))) + (native-inputs + `(("python-psycopg2" ,python-psycopg2) + ("python-django" ,python-django))) + (home-page "https://github.com/necaris/python3-openid") + (synopsis "OpenID support for servers and consumers") + (description "This library provides OpenID authentication for Python, both +for clients and servers.") + (license license:asl2.0))) + +(define-public python2-openid + (package + (name "python2-openid") + (version "2.2.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-openid" version)) + (sha256 + (base32 + "1vvhxlghjan01snfdc4k7ykd80vkyjgizwgg9bncnin8rqz1ricj")))) + (build-system python-build-system) + (arguments + ;; Python 3 support is in `python3-openid`, a separate package. + `(#:python ,python-2)) + (home-page "https://github.com/openid/python-openid") + (synopsis "OpenID support for servers and consumers") + (description "This library provides OpenID authentication for Python, both +for clients and servers.") + (license license:asl2.0))) + +(define-public python-cssutils + (package + (name "python-cssutils") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cssutils" version)) + (sha256 + (base32 + "0qwha9x1wml2qmipbcz03gndnlwhzrjdvw9i09si247a90l8p8fq")))) + (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) ; for unpacking the source + (arguments + `(#:tests? #f)) ;tests require python-pbr < 1.7.0 + (home-page "http://cthedot.de/cssutils/") + (synopsis + "CSS Cascading Style Sheets library for Python") + (description + "Cssutils is a Python package for parsing and building CSS +Cascading Style Sheets. Currently it provides a DOM only and no rendering +options.") + (license license:lgpl3+))) + +(define-public python2-cssutils + (package-with-python2 python-cssutils)) + +(define-public python-cssselect + (package + (name "python-cssselect") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cssselect" version)) + (sha256 + (base32 + "1xg6gbva1yswghiycmgincv6ab4bn7hpm720ndbj40h8xycmnfvi")))) + (build-system python-build-system) + (arguments + ;; tests fail with message + ;; AttributeError: 'module' object has no attribute 'tests' + `(#:tests? #f)) + (home-page + "https://pythonhosted.org/cssselect/") + (synopsis + "CSS3 selector parser and translator to XPath 1.0") + (description + "Cssselect ia a Python module that parses CSS3 Selectors and translates +them to XPath 1.0 expressions. Such expressions can be used in lxml or +another XPath engine to find the matching elements in an XML or HTML document.") + (license license:bsd-3))) + +(define-public python2-cssselect + (package-with-python2 python-cssselect)) + +(define-public python-openid-cla + (package + (name "python-openid-cla") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-openid-cla" version)) + (sha256 + (base32 + "102hy2qisvjxp5s0v9lvwqi4f2dk0dhns40vjgn008yxc7k0h3cr")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. + (home-page "https://github.com/puiterwijk/python-openid-cla/") + (synopsis "Implementation of the OpenID CLA extension for python-openid") + (description "@code{openid-cla} is an implementation of the OpenID +contributor license agreement extension for python-openid.") + (license license:bsd-3))) + +(define-public python2-openid-cla + (package-with-python2 python-openid-cla)) + +(define-public python-openid-teams + (package + (name "python-openid-teams") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-openid-teams" version)) + (sha256 + (base32 + "05zrh78alav24rxkbqlpbad6d3x2nljk6z6j7kflxf3vdqa7w969")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. + (home-page "https://github.com/puiterwijk/python-openid-teams/") + (synopsis "Implementation of the OpenID teams extension for python-openid") + (description + "@code{openid-teams} is an implementation of the OpenID +teams extension for python-openid.") + (license license:bsd-3))) + +(define-public python2-openid-teams + (package-with-python2 python-openid-teams)) + +(define-public python-tornado + (package + (name "python-tornado") + (version "4.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tornado" version)) + (sha256 + (base32 "1zbkgcdfq81k298awrm8p0xwbwwn2p3nbizdglzfbkskhai082fv")))) + (build-system python-build-system) + (arguments + '(;; FIXME: Two tests error out with: + ;; AssertionError: b'Error in atexit._run_exitfuncs:\nFileNotF[44 chars]ry\n' != b'' + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; ;; 'setup.py test' hits an AssertionError on BSD-specific + ;; ;; "tornado/platform/kqueue.py". This is the supported method: + ;; (zero? (system* "python" "-m" "tornado.test"))))) + #:tests? #f)) + (native-inputs + `(("python-certifi" ,python-certifi))) + (propagated-inputs + `(("python-backports-abc" ,python-backports-abc))) + (home-page "http://www.tornadoweb.org/") + (synopsis "Python web framework and asynchronous networking library") + (description + "Tornado is a Python web framework and asynchronous networking library, +originally developed at FriendFeed. By using non-blocking network I/O, +Tornado can scale to tens of thousands of open connections, making it ideal +for long polling, WebSockets, and other applications that require a long-lived +connection to each user.") + (license license:asl2.0) + (properties `((python2-variant . ,(delay python2-tornado)))))) + +(define-public python2-tornado + (let ((tornado (package-with-python2 (strip-python2-variant python-tornado)))) + (package (inherit tornado) + (propagated-inputs + `(("python2-backport-ssl-match-hostname" + ,python2-backport-ssl-match-hostname) + ("python2-singledispatch" ,python2-singledispatch) + ,@(package-propagated-inputs tornado)))))) + +(define-public python-tornado-http-auth + (package + (name "python-tornado-http-auth") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tornado-http-auth" version)) + (sha256 + (base32 + "0znrgqd7k2s4ia474xizi6h3061zj4sn5n6cq76bkwl3wwshifn5")))) + (build-system python-build-system) + (propagated-inputs + `(("python-tornado" ,python-tornado))) + (home-page + "https://github.com/gvalkov/tornado-http-auth") + (synopsis + "Digest and basic authentication module for Tornado") + (description + "Provides support for adding authentication to services using the Tornado +web framework, either via the basic or digest authentication schemes.") + (license license:asl2.0))) + +(define-public python-terminado + (package + (name "python-terminado") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "terminado" version)) + (sha256 + (base32 + "09h1kwi86g5mrk14s4pgbhshd602zry29lnpxamcqz864kva22rc")))) + (build-system python-build-system) + (propagated-inputs + `(("python-tornado" ,python-tornado) + ("python-ptyprocess" ,python-ptyprocess))) + (native-inputs + `(("python-nose" ,python-nose))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "nosetests"))))))) + (home-page "https://github.com/takluyver/terminado") + (synopsis "Terminals served to term.js using Tornado websockets") + (description "This package provides a Tornado websocket backend for the +term.js Javascript terminal emulator library.") + (license license:bsd-2) + (properties `((python2-variant . ,(delay python2-terminado)))))) + +(define-public python2-terminado + (let ((terminado (package-with-python2 (strip-python2-variant python-terminado)))) + (package (inherit terminado) + (propagated-inputs + `(("python2-backport-ssl-match-hostname" + ,python2-backport-ssl-match-hostname) + ,@(package-propagated-inputs terminado)))))) + +(define-public python-webob + (package + (name "python-webob") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "WebOb" version)) + (sha256 + (base32 + "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "http://webob.org/") + (synopsis "WSGI request and response object") + (description + "WebOb provides wrappers around the WSGI request environment, and an +object to help create WSGI responses.") + (license license:expat))) + +(define-public python2-webob + (package-with-python2 python-webob)) + +(define-public python-zope-event + (package + (name "python-zope-event") + (version "4.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.event/zope.event-" version ".tar.gz")) + (sha256 + (base32 + "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw")))) + (build-system python-build-system) + (home-page "http://pypi.python.org/pypi/zope.event") + (synopsis "Event publishing system for Python") + (description "Zope.event provides an event publishing API, intended for +use by applications which are unaware of any subscribers to their events. It +is a simple event-dispatching system on which more sophisticated event +dispatching systems can be built.") + (license license:zpl2.1))) + +(define-public python2-zope-event + (package-with-python2 python-zope-event)) + +(define-public python-zope-interface + (package + (name "python-zope-interface") + (version "4.1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.interface/zope.interface-" version ".tar.gz")) + (sha256 + (base32 + "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if")))) + (build-system python-build-system) + (native-inputs + `(("python-zope-event" ,python-zope-event))) + (home-page "https://github.com/zopefoundation/zope.interface") + (synopsis "Python implementation of the \"design by contract\" +methodology") + (description "Zope.interface provides an implementation of \"object +interfaces\" for Python. Interfaces are a mechanism for labeling objects as +conforming to a given API or contract.") + (license license:zpl2.1))) + +(define-public python2-zope-interface + (package-with-python2 python-zope-interface)) + +(define-public python-zope-exceptions + (package + (name "python-zope-exceptions") + (version "4.0.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.exceptions/zope.exceptions-" + version ".tar.gz")) + (sha256 + (base32 + "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; circular dependency with zope.testrunner + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://cheeseshop.python.org/pypi/zope.exceptions") + (synopsis "Zope exceptions") + (description "Zope.exceptions provides general-purpose exception types +that have uses outside of the Zope framework.") + (license license:zpl2.1))) + +(define-public python2-zope-exceptions + (package-with-python2 python-zope-exceptions)) + +(define-public python-zope-testing + (package + (name "python-zope-testing") + (version "4.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.testing/zope.testing-" version ".tar.gz")) + (sha256 + (base32 + "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove pre-compiled .pyc files backup files from source. + (for-each delete-file (find-files "." "(\\.pyc|~)$")) + #t)))) + (build-system python-build-system) + (native-inputs + `(("python-zope-exceptions" ,python-zope-exceptions))) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.testing") + (synopsis "Zope testing helpers") + (description "Zope.testing provides a number of testing utilities for HTML +forms, HTTP servers, regular expressions, and more.") + (license license:zpl2.1))) + +(define-public python2-zope-testing + (package-with-python2 python-zope-testing)) + +(define-public python-zope-testrunner + (package + (name "python-zope-testrunner") + (version "4.4.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.testrunner/zope.testrunner-" + version ".zip")) + (sha256 + (base32 + "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. + (native-inputs + `(("python-six" ,python-six) + ;("python-zope-interface" ,python-zope-interface) + ("python-zope-exceptions" ,python-zope-exceptions) + ("python-zope-testing" ,python-zope-testing) + ("unzip" ,unzip))) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.testrunner") + (synopsis "Zope testrunner script") + (description "Zope.testrunner provides a script for running Python +tests.") + (license license:zpl2.1))) + +(define-public python2-zope-testrunner + (let ((base (package-with-python2 python-zope-testrunner))) + (package + (inherit base) + (native-inputs + (append (package-native-inputs base) + `(("python2-subunit" ,python2-subunit) + ("python2-mimeparse" ,python2-mimeparse))))))) + +(define-public python-zope-i18nmessageid + (package + (name "python-zope-i18nmessageid") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/z" + "/zope.i18nmessageid/zope.i18nmessageid-" + version ".tar.gz")) + (sha256 + (base32 + "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml")))) + (build-system python-build-system) + (home-page "http://pypi.python.org/pypi/zope.i18nmessageid") + (synopsis "Message identifiers for internationalization") + (description "Zope.i18nmessageid provides facilities for declaring +internationalized messages within program source text.") + (license license:zpl2.1))) + +(define-public python2-zope-i18nmessageid + (package-with-python2 python-zope-i18nmessageid)) + +(define-public python-zope-schema + (package + (name "python-zope-schema") + (version "4.4.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.schema/zope.schema-" version ".tar.gz")) + (sha256 + (base32 + "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.event. + (propagated-inputs + `(("python-zope-event" ,python-zope-event) + ("python-zope-exceptions", python-zope-exceptions) + ("python-zope-interface" ,python-zope-interface))) + (native-inputs + `(("python-zope-testing" ,python-zope-testing) + ("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) + (home-page "http://pypi.python.org/pypi/zope.schema") + (synopsis "Zope data schemas") + (description "Zope.scheme provides extensions to zope.interface for +defining data schemas.") + (license license:zpl2.1))) + +(define-public python2-zope-schema + (package-with-python2 python-zope-schema)) + +(define-public python-zope-configuration + (package + (name "python-zope-configuration") + (version "4.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.configuration/zope.configuration-" + version ".tar.gz")) + (sha256 + (base32 + "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. + (propagated-inputs + `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-schema" ,python-zope-schema))) + (home-page "http://pypi.python.org/pypi/zope.configuration") + (synopsis "Zope Configuration Markup Language") + (description "Zope.configuration implements ZCML, the Zope Configuration +Markup Language.") + (license license:zpl2.1))) + +(define-public python2-zope-configuration + (package-with-python2 python-zope-configuration)) + +(define-public python-zope-proxy + (package + (name "python-zope-proxy") + (version "4.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.proxy/zope.proxy-" version ".tar.gz")) + (sha256 + (base32 + "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.proxy") + (synopsis "Generic, transparent proxies") + (description "Zope.proxy provides generic, transparent proxies for Python. +Proxies are special objects which serve as mostly-transparent wrappers around +another object, intervening in the apparent behavior of the wrapped object +only when necessary to apply the policy (e.g., access checking, location +brokering, etc.) for which the proxy is responsible.") + (license license:zpl2.1))) + +(define-public python2-zope-proxy + (package-with-python2 python-zope-proxy)) + +(define-public python-zope-location + (package + (name "python-zope-location") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.location/zope.location-" version ".tar.gz")) + (sha256 + (base32 + "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. + (propagated-inputs + `(("python-zope-proxy" ,python-zope-proxy) + ("python-zope-schema" ,python-zope-schema))) + (home-page "http://pypi.python.org/pypi/zope.location/") + (synopsis "Zope location library") + (description "Zope.location implements the concept of \"locations\" in +Zope3, which are are special objects that have a structural location.") + (license license:zpl2.1))) + +(define-public python2-zope-location + (package-with-python2 python-zope-location)) + +(define-public python-zope-security + (package + (name "python-zope-security") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.security/zope.security-" version ".tar.gz")) + (sha256 + (base32 + "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.testrunner. + (propagated-inputs + `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-proxy" ,python-zope-proxy) + ("python-zope-schema" ,python-zope-schema))) + (native-inputs + `(("python-six" ,python-six) + ("python-zope-component" ,python-zope-component) + ("python-zope-configuration" ,python-zope-configuration) + ("python-zope-location" ,python-zope-location) + ("python-zope-testrunner" ,python-zope-testrunner) + ("python-zope-testing" ,python-zope-testing))) + (home-page "http://pypi.python.org/pypi/zope.security") + (synopsis "Zope security framework") + (description "Zope.security provides a generic mechanism to implement +security policies on Python objects.") + (license license:zpl2.1))) + +(define-public python2-zope-security + (let ((zope-security (package-with-python2 python-zope-security))) + (package (inherit zope-security) + (propagated-inputs + `(("python2-zope-testrunner" ,python2-zope-testrunner) + ,@(alist-delete + "python-zope-testrunner" + (package-propagated-inputs zope-security))))))) + +(define-public python-zope-component + (package + (name "python-zope-component") + (version "4.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "zope.component" version)) + (sha256 + (base32 + "1hlvzwj1kcfz1qms1dzhwsshpsf38z9clmyksb1gh41n8k3kchdv")))) + (build-system python-build-system) + (arguments + ;; Skip tests due to circular dependency with python-zope-security. + '(#:tests? #f)) + (native-inputs + `(("python-zope-testing" ,python-zope-testing))) + (propagated-inputs + `(("python-zope-event" ,python-zope-event) + ("python-zope-interface" ,python-zope-interface) + ("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-configuration" ,python-zope-configuration))) + (home-page "https://github.com/zopefoundation/zope.component") + (synopsis "Zope Component Architecture") + (description "Zope.component represents the core of the Zope Component +Architecture. Together with the zope.interface package, it provides +facilities for defining, registering and looking up components.") + (license license:zpl2.1))) + +(define-public python2-zope-component + (package-with-python2 python-zope-component)) + +(define-public python-ndg-httpsclient + (package + (name "python-ndg-httpsclient") + (version "0.4.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "ndg_httpsclient" version)) + (sha256 + (base32 + "1b5qirv46v4dpnmfqviwq42mdwfcby4dxmz0i41wad2337pqf2aq")))) + (build-system python-build-system) + (arguments + '(;; The tests appear to require networking. + #:tests? #f)) + (propagated-inputs + `(("python-pyopenssl" ,python-pyopenssl))) + (synopsis "HTTPS support for Python's httplib and urllib2") + (description "This is a HTTPS client implementation for httplib and urllib2 +based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation +over the default provided with Python and importantly enables full verification +of the SSL peer.") + (home-page "https://github.com/cedadev/ndg_httpsclient/") + (license license:bsd-3))) + +;; python2-openssl requires special care, so package-with-python2 is +;; insufficient. +(define-public python2-ndg-httpsclient + (package (inherit python-ndg-httpsclient) + (name "python2-ndg-httpsclient") + (arguments `(#:python ,python-2)) + (propagated-inputs + `(("python2-pyopenssl" ,python2-pyopenssl))))) + +(define-public python-websocket-client + (package + (name "python-websocket-client") + (version "0.37.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "websocket_client" version)) + (sha256 + (base32 + "0h9glp1jll3z76ly3kg08aqgxqk0a68p4zi9yn50353bh5nj92v7")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/liris/websocket-client") + (synopsis "WebSocket client for Python") + (description "The Websocket-client module provides the low level APIs for +WebSocket usage in Python programs.") + (license license:lgpl2.1+))) + +(define-public python2-websocket-client + (package-with-python2 python-websocket-client)) + +(define-public python-requests-mock + (package + (name "python-requests-mock") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "requests-mock" version)) + (sha256 + (base32 + "0jr997dvk6zbmhvbpcv3rajrgag69mcsm1ai3w3rgk2jdh6rg1mx")))) + (build-system python-build-system) + (propagated-inputs + `(("python-requests" ,python-requests) + ("python-six" ,python-six))) + (native-inputs + `(("python-pbr" ,python-pbr) + ("python-discover" ,python-discover) + ("python-docutils" ,python-docutils) + ("python-fixtures" ,python-fixtures) + ("python-mock" ,python-mock) + ("python-sphinx" ,python-sphinx) + ("python-testrepository" ,python-testrepository) + ("python-testtools" ,python-testtools))) + (home-page "https://requests-mock.readthedocs.org/") + (synopsis "Mock out responses from the requests package") + (description + "This module provides a building block to stub out the HTTP requests +portions of your testing code.") + (properties `((python2-variant . ,(delay python2-requests-mock)))) + (license license:asl2.0))) + +(define-public python2-requests-mock + (package (inherit (package-with-python2 + (strip-python2-variant python-requests-mock))) + (arguments + `(#:python ,python-2 + ;; FIXME: 'subunit.run discover: error: no such option: --list' + #:tests? #f)))) + +(define-public python-requests-toolbelt + (package + (name "python-requests-toolbelt") + (version "0.8.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "requests-toolbelt" version)) + (sha256 + (base32 + "1dc7l42i4080r8i4m9fj51jx367lqkai170vrv7wd93gdj9k39gn")))) + (build-system python-build-system) + (native-inputs + `(("python-betamax" ,python-betamax) + ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-requests" ,python-requests))) + (synopsis "Extensions to python-requests") + (description "This is a toolbelt of useful classes and functions to be used +with python-requests.") + (home-page "https://github.com/sigmavirus24/requests-toolbelt") + (license license:asl2.0))) + +(define-public python2-requests-toolbelt + (package-with-python2 python-requests-toolbelt)) + +(define-public python-rauth + (package + (name "python-rauth") + (version "0.7.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rauth" version)) + (sha256 + (base32 + "02kv8w8l98ky223avyq7vw7x1f2ya9chrm59r77ylq45qb0xnk2j")))) + (build-system python-build-system) + (arguments + `(#:test-target "check")) + (propagated-inputs + `(("python-requests" ,python-requests))) + (home-page "https://github.com/litl/rauth") + (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly") + (description + "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also +provides service wrappers for convenient connection initialization and +authenticated session objects providing things like keep-alive.") + (license license:expat) + (properties `((python2-variant . ,(delay python2-rauth)))))) + +(define-public python2-rauth + (let ((base (package-with-python2 (strip-python2-variant python-rauth)))) + (package + (inherit base) + (native-inputs `(("python2-unittest2" ,python2-unittest2) + ,@(package-native-inputs base)))))) + +(define-public python-urllib3 + (package + (name "python-urllib3") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "urllib3" version)) + (sha256 + (base32 + "1wb8aqnq53vzh2amrv8kc66f3h6fx217y0q62y6n30a64p2yqmam")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) + (native-inputs + `(;; some packages for tests + ("python-nose" ,python-nose) + ("python-mock" ,python-mock) + ("python-tornado" ,python-tornado))) + (propagated-inputs + `(;; These 5 inputs are used to build urrlib3[secure] + ("python-certifi" ,python-certifi) + ("python-cryptography" ,python-cryptography) ; + ("python-idna" ,python-idna) + ("python-ipaddress" ,python-ipaddress) + ("python-pyopenssl" ,python-pyopenssl))) + (home-page "https://urllib3.readthedocs.org/") + (synopsis "HTTP library with thread-safe connection pooling") + (description + "Urllib3 supports features left out of urllib and urllib2 libraries. It +can reuse the same socket connection for multiple requests, it can POST files, +supports url redirection and retries, and also gzip and deflate decoding.") + (license license:expat))) + +(define-public python2-urllib3 + (package-with-python2 python-urllib3)) + +(define-public awscli + (package + (name "awscli") + (version "1.11.164") + (source + (origin + (method url-fetch) + (uri (pypi-uri name version)) + (sha256 + (base32 + "05r8cw7i7ff6barpmyxxk3i52gzb1xyxwj8isynmiyqlmk3c9r8w")))) + (build-system python-build-system) + (propagated-inputs + `(("python-colorama" ,python-colorama) + ("python-botocore" ,python-botocore) + ("python-s3transfer" ,python-s3transfer) + ("python-docutils" ,python-docutils) + ("python-pyyaml" ,python-pyyaml) + ("python-rsa" ,python-rsa))) + (arguments + ;; FIXME: The 'pypi' release does not contain tests. + '(#:tests? #f)) + (home-page "https://aws.amazon.com/cli/") + (synopsis "Command line client for AWS") + (description "AWS CLI provides a unified command line interface to the +Amazon Web Services (AWS) API.") + (license license:asl2.0))) + +(define-public python-wsgiproxy2 + (package + (name "python-wsgiproxy2") + (version "0.4.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "WSGIProxy2" version ".zip")) + (sha256 + (base32 + "13kf9bdxrc95y9vriaz0viry3ah11nz4rlrykcfvb8nlqpx3dcm4")))) + (build-system python-build-system) + (arguments + '(;; Wsgiproxy2's test suite requires Restkit, which does not yet fully + ;; support Python 3: + ;; https://github.com/benoitc/restkit/issues/140 + #:tests? #f)) + (native-inputs + `(("unzip" ,unzip) + ("python-nose" ,python-nose) + ("python-coverage" ,python-coverage))) + (propagated-inputs + `(("python-six" ,python-six) + ("python-webob" ,python-webob))) + (home-page + "https://github.com/gawel/WSGIProxy2/") + (synopsis "WSGI Proxy with various http client backends") + (description "WSGI turns HTTP requests into WSGI function calls. +WSGIProxy turns WSGI function calls into HTTP requests. +It also includes code to sign requests and pass private data, +and to spawn subprocesses to handle requests.") + (license license:expat))) + +(define-public python2-wsgiproxy2 + (package-with-python2 python-wsgiproxy2)) + +(define-public python-pastedeploy + (package + (name "python-pastedeploy") + (version "1.5.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PasteDeploy" version)) + (sha256 + (base32 + "1jz3m4hq8v6hyhfjz9425nd3nvn52cvbfipdcd72krjmla4qz1fm")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "http://pythonpaste.org/deploy/") + (synopsis + "Load, configure, and compose WSGI applications and servers") + (description + "This tool provides code to load WSGI applications and servers from URIs; +these URIs can refer to Python Eggs for INI-style configuration files. Paste +Script provides commands to serve applications based on this configuration +file.") + (license license:expat))) + +(define-public python2-pastedeploy + (package-with-python2 python-pastedeploy)) + +(define-public python-webtest + (package + (name "python-webtest") + (version "2.0.20") + (source + (origin + (method url-fetch) + (uri (pypi-uri "WebTest" version)) + (sha256 + (base32 + "0bv0qhdjakdsdgj4sk21gnpp8xp8bga4x03p6gjb83ihrsb7n4xv")))) + (build-system python-build-system) + (arguments + `(;; Unfortunately we have to disable tests! + ;; This release of WebTest is pinned to python-nose < 1.3, + ;; but older versions of python-nose are plagued with the following + ;; bug(s), which rears its ugly head during test execution: + ;; https://github.com/nose-devs/nose/issues/759 + ;; https://github.com/nose-devs/nose/pull/811 + #:tests? #f)) + ;; Commented out code is no good, but in this case, once tests + ;; are ready to be enabled again, we should put the following + ;; in place: + ;; (native-inputs + ;; `(("python-nose" ,python-nose) ; technially < 1.3, + ;; ; but see above comment + ;; ("python-coverage" ,python-coverage) + ;; ("python-mock" ,python-mock) + ;; ("python-pastedeploy" ,python-pastedeploy) + ;; ("python-wsgiproxy2" ,python-wsgiproxy2) + ;; ("python-pyquery" ,python-pyquery))) + (propagated-inputs + `(("python-waitress" ,python-waitress) + ("python-webob" ,python-webob) + ("python-six" ,python-six) + ("python-beautifulsoup4" ,python-beautifulsoup4))) + (home-page "http://webtest.pythonpaste.org/") + (synopsis "Helper to test WSGI applications") + (description "Webtest allows you to test your Python web applications +without starting an HTTP server. It supports anything that supports the +minimum of WSGI.") + (license license:expat))) + +(define-public python2-webtest + (package-with-python2 python-webtest)) + +(define-public python-flask + (package + (name "python-flask") + (version "0.11.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "Flask" version)) + (sha256 + (base32 + "03kbfll4sj3v5z7r31c7bhfpi11r1np076d4p1k2kg4yzcmkywdl")))) + (build-system python-build-system) + (propagated-inputs + `(("python-itsdangerous" ,python-itsdangerous) + ("python-jinja2" ,python-jinja2) + ("python-click" ,python-click) + ("python-werkzeug" ,python-werkzeug))) + (home-page "https://github.com/mitsuhiko/flask/") + (synopsis "Microframework based on Werkzeug, Jinja2 and good intentions") + (description "Flask is a micro web framework based on the Werkzeug toolkit +and Jinja2 template engine. It is called a micro framework because it does not +presume or force a developer to use a particular tool or library.") + (license license:bsd-3))) + +(define-public python2-flask + (package-with-python2 python-flask)) + +(define-public python-flask-wtf + (package + (name "python-flask-wtf") + (version "0.13.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-WTF" version)) + (sha256 + (base32 + "04l5743j2dici46038sqlzvf0xzpg8rf7s9ld2x24xv7f4idg990")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'drop-failing-test + (lambda _ + ;; FIXME: This file tries resolving an external server, which + ;; fails. Try to patch out the offending section instead of + ;; deleting the whole thing. + (delete-file "tests/test_recaptcha.py") + #t))))) + (propagated-inputs + `(("python-flask-babel" ,python-flask-babel) + ("python-babel" ,python-babel) + ("python-wtforms" ,python-wtforms))) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "https://github.com/lepture/flask-wtf") + (synopsis "Simple integration of Flask and WTForms") + (description "Flask-WTF integrates Flask and WTForms, including CSRF, file +upload, and reCAPTCHA.") + (license license:bsd-3))) + +(define-public python2-flask-wtf + (package-with-python2 python-flask-wtf)) + +(define-public python-flask-multistatic + (package + (name "python-flask-multistatic") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-multistatic" version)) + (sha256 + (base32 + "0p4v50rwv64wcd0zlq7rzl4waprwr4hj19s3cgf1isywa7jcisgm")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask))) + (home-page "https://pagure.io/flask-multistatic") + (synopsis "Flask plugin to allow overriding static files") + (description "@code{flask-multistatic} is a flask plugin that adds support +for overriding static files.") + (license license:gpl3+))) + +(define-public python2-flask-multistatic + (package-with-python2 python-flask-multistatic)) + +(define-public python-cookies + (package + (name "python-cookies") + (version "2.2.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "cookies" version)) + (sha256 + (base32 + "13pfndz8vbk4p2a44cfbjsypjarkrall71pgc97glk5fiiw9idnn")))) + (build-system python-build-system) + (arguments + `(;; test are broken: https://gitlab.com/sashahart/cookies/issues/3 + #:tests? #f)) + (native-inputs + `(("python-pytest" ,python2-pytest))) + (synopsis "HTTP cookie parser and renderer") + (description "A RFC 6265-compliant HTTP cookie parser and renderer in +Python.") + (home-page "https://gitlab.com/sashahart/cookies") + (license license:expat))) + +(define-public python2-cookies + (package-with-python2 python-cookies)) + +(define-public python-responses + (package + (name "python-responses") + (version "0.5.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "responses" version)) + (sha256 + (base32 + "1spcfxixyk9k7pk82jm6zqkwk031s95lh8q0mz7539jrb7269bcc")))) + (build-system python-build-system) + (arguments + `(;; Test suite is not distributed: + ;; https://github.com/getsentry/responses/issues/38 + #:tests? #f)) + (native-inputs + `(("python-mock" ,python-mock))) + (propagated-inputs + `(("python-requests" ,python-requests) + ("python-cookies" ,python-cookies) + ("python-six" ,python-six))) + (home-page "https://github.com/getsentry/responses") + (synopsis "Utility for mocking out the `requests` Python library") + (description "A utility library for mocking out the `requests` Python +library.") + (license license:asl2.0))) + +(define-public python2-responses + (package-with-python2 python-responses)) + +(define-public python-geventhttpclient + (package + (name "python-geventhttpclient") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "geventhttpclient" version)) + (sha256 + (base32 + "07d0q3wzmml75227r6y6mrl5a0zpf4v9gj0ni5rhbyzmaj4az1xx")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete pre-compiled files. + (for-each delete-file (find-files "src/geventhttpclient" + ".*\\.pyc")) + #t)))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-network-tests + (lambda _ + (delete-file "src/geventhttpclient/tests/test_client.py") + #t)) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (zero? (system* "py.test" "src/geventhttpclient/tests" "-v"))))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-certifi" ,python-certifi) + ("python-gevent" ,python-gevent) + ("python-six" ,python-six))) + (home-page "https://github.com/gwik/geventhttpclient") + (synopsis "HTTP client library for gevent") + (description "@code{python-geventhttpclient} is a high performance, +concurrent HTTP client library for python using @code{gevent}.") + (license license:expat))) + +(define-public python2-geventhttpclient + (package-with-python2 python-geventhttpclient)) + +(define-public python-requests-oauthlib + (package + (name "python-requests-oauthlib") + (version "0.6.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "requests-oauthlib" version)) + (sha256 + (base32 + "0ykff67sjcl227c23g0rxzfx34rr5bf21kwv0z3zmgk0lfmch7hn")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; removes tests that require network access + (add-before 'check 'pre-check + (lambda _ + (delete-file "tests/test_core.py") + #t))))) + (native-inputs + `(("python-requests-mock" ,python-requests-mock) + ("python-mock" ,python-mock))) + (propagated-inputs + `(("python-oauthlib" ,python-oauthlib) + ("python-requests" ,python-requests))) + (home-page + "https://github.com/requests/requests-oauthlib") + (synopsis + "OAuthlib authentication support for Requests") + (description + "Requests-OAuthlib uses the Python Requests and OAuthlib libraries to +provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients.") + (license license:isc))) + +(define-public python2-requests-oauthlib + (package-with-python2 python-requests-oauthlib)) + +(define-public python-url + (package + (name "python-url") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "url" version)) + (sha256 + (base32 + "0v879yadcz9qxfl41ak6wkga1kimp9cflla9ddz03hjjvgkqy5ki")))) + (build-system python-build-system) + (propagated-inputs + `(("python-publicsuffix" ,python-publicsuffix))) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) + (arguments + `(#:tests? #f)) ; FIXME: tests fail with "ImportError: No module named 'tests'" + (home-page "https://github.com/seomoz/url-py") + (synopsis "URL Parsing") + (description "Library for parsing urls.") + (license license:expat) + (properties `((python2-variant . ,(delay python2-url)))))) + +(define-public python2-url + (let ((base (package-with-python2 (strip-python2-variant python-url)))) + (package (inherit base) + (propagated-inputs + `(("python2-publicsuffix" ,python2-publicsuffix)))))) + +(define-public python-cachecontrol + (package + (name "python-cachecontrol") + (version "0.11.6") + (source + (origin + (method url-fetch) + ;; Pypi does not have tests. + (uri (string-append + "https://github.com/ionrock/cachecontrol/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0yj60d0f69a2l8p7y86k4zhzzm6rnxpq74sfl240pry9l0lfw2vw")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Drop test that requires internet access. + (delete-file "tests/test_regressions.py") + (setenv "PYTHONPATH" + (string-append (getcwd) "/build/lib:" + (getenv "PYTHONPATH"))) + (zero? (system* "py.test" "-vv"))))))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-redis" ,python-redis) + ("python-webtest" ,python-webtest) + ("python-mock" ,python-mock))) + (propagated-inputs + `(("python-requests" ,python-requests) + ("python-lockfile" ,python-lockfile))) + (home-page "https://github.com/ionrock/cachecontrol") + (synopsis "The httplib2 caching algorithms for use with requests") + (description "CacheControl is a port of the caching algorithms in +@code{httplib2} for use with @code{requests} session objects.") + (license license:asl2.0))) + +(define-public python2-cachecontrol + (package-with-python2 python-cachecontrol)) + +(define-public python-betamax + (package + (name "python-betamax") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "betamax" version)) + (sha256 + (base32 + "18f8v5gng3j773jlbbzx4rg1i4y2zw3m2l1zpmbvp8bh5a2q1i42")))) + (build-system python-build-system) + (arguments + '(;; Many tests fail because they require networking. + #:tests? #f)) + (propagated-inputs + `(("python-requests" ,python-requests))) + (home-page "https://github.com/sigmavirus24/betamax") + (synopsis "Record HTTP interactions with python-requests") + (description "Betamax will record your test suite's HTTP interactions and +replay them during future tests. It is designed to work with python-requests.") + (license license:expat))) + +(define-public python2-betamax + (package-with-python2 python-betamax)) + +(define-public python-betamax-matchers + (package + (name "python-betamax-matchers") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "betamax-matchers" version)) + (sha256 + (base32 + "07qpwjyq2i2aqhz5iwghnj4pqr2ys5n45v1vmpcfx9r5mhwrsq43")))) + (build-system python-build-system) + (propagated-inputs + `(("python-betamax" ,python-betamax) + ("python-requests-toolbelt" ,python-requests-toolbelt))) + (home-page "https://github.com/sigmavirus24/betamax_matchers") + (synopsis "VCR imitation for python-requests") + (description "@code{betamax-matchers} provides a set of Matchers for +Betamax.") + (license license:asl2.0))) + +(define-public python2-betamax-matchers + (package-with-python2 python-betamax-matchers)) + +(define-public python-s3transfer + (package + (name "python-s3transfer") + (version "0.1.11") + (source (origin + (method url-fetch) + (uri (pypi-uri "s3transfer" version)) + (sha256 + (base32 + "0yfrfnf404cxzn3iswibqjxklsl0b1lwgqiml6pwiqj79a7zbwbn")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; 7 of the 'integration' tests require network access or login + ;; credentials. + (zero? (system* "nosetests" "--exclude=integration"))))))) + (native-inputs + `(("python-docutils" ,python-docutils) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose))) + (propagated-inputs + `(("python-botocore" ,python-botocore))) + (synopsis "Amazon S3 Transfer Manager") + (description "S3transfer is a Python library for managing Amazon S3 +transfers.") + (home-page "https://github.com/boto/s3transfer") + (license license:asl2.0) + (properties `((python2-variant . ,(delay python2-s3transfer)))))) + +(define-public python2-s3transfer + (let ((base (package-with-python2 (strip-python2-variant python-s3transfer)))) + (package + (inherit base) + (native-inputs + `(("python2-futures" ,python2-futures) + ,@(package-native-inputs base)))))) + +(define-public python-flask-restful + (package + (name "python-flask-restful") + (version "0.3.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-RESTful" version)) + (sha256 + (base32 + "0hjcmdb56b7z4bkw848lxfkyrpnkwzmqn2dgnlv12mwvjpzsxr6c")))) + (build-system python-build-system) + (propagated-inputs + `(("python-aniso8601" ,python-aniso8601) + ("python-flask" ,python-flask) + ("python-pycrypto" ,python-pycrypto) + ("python-pytz" ,python-pytz))) + (native-inputs + `(;; Optional dependency of Flask. Tests need it. + ("python-blinker" ,python-blinker) + ("python-mock" ,python-mock) ; For tests + ("python-nose" ,python-nose) ; For tests + ("python-sphinx" ,python-sphinx))) + (home-page + "https://www.github.com/flask-restful/flask-restful/") + (synopsis + "Flask module for creating REST APIs") + (description + "This package contains a Flask module for creating REST APIs.") + (license license:bsd-3))) + +(define-public python-flask-basicauth + (package + (name "python-flask-basicauth") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-BasicAuth" version)) + (sha256 + (base32 + "1zq1spkjr4sjdnalpp8wl242kdqyk6fhbnhr8hi4r4f0km4bspnz")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask))) + (home-page + "https://github.com/jpvanhal/flask-basicauth") + (synopsis + "HTTP basic access authentication for Flask") + (description + "This package provides HTTP basic access authentication for Flask.") + (license license:bsd-3))) + +(define-public python-flask-sqlalchemy + (package + (name "python-flask-sqlalchemy") + (version "2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-SQLAlchemy" version)) + (sha256 + (base32 + "1i9ps5d5snih9xlqhrvmi3qfiygkmqzxh92n25kj4pf89kj4s965")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-sqlalchemy" ,python-sqlalchemy))) + (home-page + "https://github.com/mitsuhiko/flask-sqlalchemy") + (synopsis + "Module adding SQLAlchemy support to your Flask application") + (description + "This package adds SQLAlchemy support to your Flask application.") + (license license:bsd-3))) + +(define-public python-flask-restplus + (package + (name "python-flask-restplus") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-restplus" version)) + (sha256 + (base32 + "11his6ii5brpkhld0d5bwzjjw4q3vmplpd6fmgzjrvvklsbk0cf4")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: 35/882 tests failing. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; (zero? (system* "nosetests"))))))) + (propagated-inputs + `(("python-aniso8601" ,python-aniso8601) + ("python-flask" ,python-flask) + ("python-jsonschema" ,python-jsonschema) + ("python-pytz" ,python-pytz) + ("python-six" ,python-six))) + (native-inputs + `(("python-tzlocal" ,python-tzlocal) + ("python-blinker" ,python-blinker) + ("python-nose" ,python-nose) + ("python-rednose" ,python-rednose))) + (home-page "https://github.com/noirbizarre/flask-restplus") + (synopsis "Framework for documented API development with Flask") + (description "This package provides a framework for API development with +the Flask web framework in Python. It is similar to package +@code{python-flask-restful} but supports the @code{python-swagger} +documentation builder.") + (license license:expat))) + +(define-public python-flask-restful-swagger + (package + (name "python-flask-restful-swagger") + (version "0.19") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-restful-swagger" version)) + (sha256 + (base32 + "16msl8hd5xjmj833bpy264v98cpl5hkw5bgl5gf5vgndxbv3rm6v")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask-restful" ,python-flask-restful))) + (home-page "https://github.com/rantav/flask-restful-swagger") + (synopsis "Extract Swagger specs from Flask-Restful projects") + (description "This package lets you extract Swagger API documentation +specs from your Flask-Restful projects.") + (license license:expat))) + +(define-public python2-flask-restful-swagger + (package-with-python2 python-flask-restful-swagger)) + +(define-public python-htmlmin + (package + (name "python-htmlmin") + (version "0.1.10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "htmlmin" version)) + (sha256 + (base32 + "0qxa93j3p1ak32qh8d9kshqv8v3z0hkc13dwbhp5cn7sn3xmsp6a")))) + (arguments + `(#:tests? #f)) ;htmlmin has no tests + (build-system python-build-system) + (home-page "https://htmlmin.readthedocs.org/en/latest/") + (synopsis "HTML minifier") + (description "@code{htmlmin} is an HTML minifier that just works. +It comes with safe defaults and easily configurable options.") + (license license:bsd-3))) + +(define-public python2-htmlmin + (package-with-python2 python-htmlmin)) + +(define-public python-flask-htmlmin + (package + (name "python-flask-htmlmin") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-HTMLmin" version)) + (sha256 + (base32 + "1n6zlq72kakkw0z2jpq6nh74lfsmxybm4g053pwhc14fbr809348")))) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-htmlmin" ,python-htmlmin))) + (build-system python-build-system) + (home-page "https://github.com/hamidfzm/Flask-HTMLmin") + (synopsis "HTML response minifier for Flask") + (description + "Minify @code{text/html} MIME type responses when using @code{Flask}.") + (license license:bsd-3))) + +(define-public python2-flask-htmlmin + (package-with-python2 python-flask-htmlmin)) + +(define-public python-flask-login + (package + (name "python-flask-login") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/maxcountryman/flask-login/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1pdqp7a2gyb7k06xda004x0fi2w66s6kn2i0ndkqndmg12d83f9w")))) + (arguments + ;; Tests fail PEP8 compliance. See: + ;; https://github.com/maxcountryman/flask-login/issues/340 + `(#:tests? #f)) + (build-system python-build-system) + (home-page "https://github.com/maxcountryman/flask-login") + (synopsis "User session management for Flask") + (description + "@code{Flask-Login} provides user session management for Flask. It +handles the common tasks of logging in, logging out, and remembering your +users' sessions over extended periods of time.") + (license license:expat))) + +(define-public python2-flask-login + (package-with-python2 python-flask-login)) + +(define-public python-oauth2client + (package + (name "python-oauth2client") + (version "4.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "oauth2client" version)) + (sha256 + (base32 + "1irqqap2zibysf8dba8sklfqikia579srd0phm5n754ni0h59gl0")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs + `(("python-httplib2" ,python-httplib2) + ("python-pyasn1" ,python-pyasn1) + ("python-pyasn1-modules" ,python-pyasn1-modules) + ("python-rsa" ,python-rsa) + ("python-six" ,python-six))) + (home-page "http://github.com/google/oauth2client/") + (synopsis "OAuth 2.0 client library") + (description "@code{python-oauth2client} provides an OAuth 2.0 client +library for Python") + (license license:asl2.0))) + +(define-public python-flask-oidc + (package + (name "python-flask-oidc") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-oidc" version)) + (sha256 + (base32 + "1ay5j0mf174bix7i67hclr95gv16z81fpx0dijvi0gydvdj3ddy2")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-itsdangerous" ,python-itsdangerous) + ("python-oauth2client" ,python-oauth2client) + ("python-six" ,python-six))) + (native-inputs + `(("python-nose" ,python-nose) + ("python-mock" ,python-mock))) + (home-page "https://github.com/puiterwijk/flask-oidc") + (synopsis "OpenID Connect extension for Flask") + (description "@code{python-flask-oidc} provides an OpenID Connect extension +for Flask.") + (license license:bsd-2))) + +(define-public python-webassets + (package + (name "python-webassets") + (version "0.12.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "webassets" version)) + (sha256 + (base32 + "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7")))) + (build-system python-build-system) + (native-inputs + `(("python-jinja2" ,python-jinja2) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-pytest" ,python-pytest))) + (home-page "https://github.com/miracle2k/webassets") + (synopsis "Media asset management") + (description "Merges, minifies and compresses Javascript and CSS files, +supporting a variety of different filters, including YUI, jsmin, jspacker or +CSS tidy. Also supports URL rewriting in CSS files.") + (license license:bsd-2))) + +(define-public python-cssmin + (package + (name "python-cssmin") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cssmin" version)) + (sha256 + (base32 + "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0")))) + (build-system python-build-system) + (home-page "https://github.com/zacharyvoase/cssmin") + (synopsis "Python port of the YUI CSS Compressor") + (description "Python port of the YUI CSS Compressor.") + (license (list license:expat license:bsd-3)))) + +(define-public python2-cssmin + (package-with-python2 python-cssmin)) + +(define-public python-elasticsearch + (package + (name "python-elasticsearch") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "elasticsearch" version)) + (sha256 + (base32 + "1sdw1r05cw7ihnmng8ra9v968fj7bq6sji8i1dikymsnkcpgc69g")))) + (build-system python-build-system) + (native-inputs + `(("python-mock" ,python-mock) + ("python-nosexcover" ,python-nosexcover) + ("python-pyaml" ,python-pyaml) + ("python-requests" ,python-requests))) + (propagated-inputs + `(("urllib3" ,python-urllib3))) + (arguments + ;; tests require the test_elasticsearch module but it is not distributed. + `(#:tests? #f)) + (home-page "https://github.com/elastic/elasticsearch-py") + (synopsis "Low-level client for Elasticsearch") + (description "Official low-level client for Elasticsearch. Its goal is to +provide common ground for all Elasticsearch-related code in Python; because of +this it tries to be opinion-free and very extendable.") + (license license:expat))) + +(define-public python2-elasticsearch + (package-with-python2 python-elasticsearch)) + +(define-public python-flask-script + (package + (name "python-flask-script") + (version "2.0.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-Script" version)) + (sha256 + (base32 + "0zqh2yq8zk7m9b4xw1ryqmrljkdigfb3hk5155a3b5hkfnn6xxyf")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-argcomplete" ,python-argcomplete) + ("python-werkzeug" ,python-werkzeug))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page + "http://github.com/smurfix/flask-script") + (synopsis "Scripting support for Flask") + (description "The Flask-Script extension provides support for writing +external scripts in Flask. This includes running a development server, +a customised Python shell, scripts to set up your database, cronjobs, +and other command-line tasks that belong outside the web application +itself.") + (license license:bsd-3))) + +(define-public python2-flask-script + (package-with-python2 python-flask-script)) + +(define-public python-flask-migrate + (package + (name "python-flask-migrate") + (version "2.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-Migrate" version)) + (sha256 + (base32 + "107x78lkqsnbg92dld3dkagg07jvchp3ib3y0sivc4ipz6n1y7rk")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-alembic" ,python-alembic) + ("python-sqlalchemy" ,python-sqlalchemy) + ("python-flask-script" ,python-flask-script) + ("python-flask-sqlalchemy" ,python-flask-sqlalchemy))) + (home-page "http://github.com/miguelgrinberg/flask-migrate/") + (synopsis "SQLAlchemy database migrations for Flask programs using +Alembic") + (description "This package contains SQLAlchemy database migration tools +for Flask programs that are using @code{python-alembic}.") + (license license:expat))) + +(define-public python2-flask-migrate + (package-with-python2 python-flask-migrate)) + +(define-public python-genshi + (package + (name "python-genshi") + (version "0.7") + (source + (origin + (method url-fetch) + (uri (string-append + "https://ftp.edgewall.org/pub/genshi/Genshi-" + version ".tar.gz")) + (patches + (search-patches + ;; The first 4 patches are in the master branch upstream. + ;; See this as a reference https://genshi.edgewall.org/ticket/582 + ;; The last 2 are NOT in any branch. + ;; They were sent as attachments to a ticket opened at + ;; https://genshi.edgewall.org/ticket/602#no1 + "python-genshi-stripping-of-unsafe-script-tags.patch" + "python-genshi-disable-speedups-on-python-3.3.patch" + "python-genshi-isstring-helper.patch" + "python-genshi-add-support-for-python-3.4-AST.patch" + "python-genshi-fix-tests-on-python-3.5.patch" + "python-genshi-buildable-on-python-2.7.patch")) + (sha256 + (base32 + "0lkkbp6fbwzv0zda5iqc21rr7rdldkwh3hfabfjl9i4bwq14858x")))) + (build-system python-build-system) + (home-page "https://genshi.edgewall.org/") + (synopsis "Toolkit for generation of output for the web") + (description "Genshi is a Python library that provides an integrated set +of components for parsing, generating, and processing HTML, XML or other +textual content for output generation on the web.") + (license license:bsd-3))) + +;; The linter here claims that patch file names should start with the package +;; name. But, in this case the patches are inherited from python-genshi with +;; the "python-genshi-" prefix instead of "python2-genshi-". +(define-public python2-genshi + (package-with-python2 python-genshi)) + +(define-public python-flask-principal + (package + (name "python-flask-principal") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-Principal" version)) + (sha256 + (base32 + "0lwlr5smz8vfm5h9a9i7da3q1c24xqc6vm9jdywdpgxfbi5i7mpm")))) + (build-system python-build-system) + (propagated-inputs + `(("python-blinker" ,python-blinker))) + (native-inputs + `(("python-flask" ,python-flask) + ("python-nose" ,python-nose))) + (home-page "http://packages.python.org/Flask-Principal/") + (synopsis "Identity management for Flask") + (description "@code{flask_principal} is a identity management library for +Flask. It supports managing both authentication and authorization data in a +thread-local variable.") + (license license:expat))) + +(define-public python2-flask-principal + (package-with-python2 python-flask-principal)) + +(define-public python-flask-httpauth + (package + (name "python-flask-httpauth") + (version "3.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-HTTPAuth" version)) + (sha256 + (base32 + "13gff5w1mqpzm5nccyg02v3ifb9ifqh5k866cssjhghhg6msfjsz")))) + (build-system python-build-system) + (native-inputs + `(("python-flask" ,python-flask))) + (home-page "http://github.com/miguelgrinberg/flask-httpauth/") + (synopsis "Basic and Digest HTTP authentication for Flask routes") + (description "@code{flask_httpauth} provides Basic and Digest HTTP +authentication for Flask routes.") + (license license:expat))) + +(define-public python2-flask-httpauth + (package-with-python2 python-flask-httpauth)) + +(define-public python-uritemplate + (package + (name "python-uritemplate") + (version "3.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "uritemplate" version)) + (sha256 + (base32 + "0781gm9g34wa0asc19dx81ng0nqq07igzv3bbvdqmz13pv7469n0")))) + (build-system python-build-system) + (home-page "https://uritemplate.readthedocs.org") + (synopsis "Library to deal with URI Templates") + (description "@code{uritemplate} provides Python library to deal with URI +Templates.") + (license license:bsd-2))) + +(define-public python2-uritemplate + (package-with-python2 python-uritemplate)) + diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a6a4ec9372..0d5c09b86b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -73,7 +73,6 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) - #:use-module (gnu packages django) #:use-module (gnu packages file) #:use-module (gnu packages fontutils) #:use-module (gnu packages gcc) @@ -101,6 +100,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages sdl) @@ -573,28 +573,6 @@ Python interface around SSH networking concepts.") (package-with-python2 python-paramiko)) -(define-public python-httplib2 - (package - (name "python-httplib2") - (version "0.9.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "httplib2" version)) - (sha256 - (base32 - "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3")))) - (build-system python-build-system) - (home-page "https://github.com/jcgregorio/httplib2") - (synopsis "Comprehensive HTTP client library") - (description - "A comprehensive HTTP client library supporting many features left out of -other HTTP libraries.") - (license license:expat))) - -(define-public python2-httplib2 - (package-with-python2 python-httplib2)) - (define-public python-ecdsa (package (name "python-ecdsa") @@ -4755,38 +4733,6 @@ routines such as routines for numerical integration and optimization.") (package-with-python2 (strip-python2-variant python-scipy))) -(define-public python-sockjs-tornado - (package - (name "python-sockjs-tornado") - (version "1.0.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "sockjs-tornado" version)) - (sha256 - (base32 - "16cff40nniqsyvda1pb2j3b4zwmrw7y2g1vqq78lp20xpmhnwwkd")))) - (build-system python-build-system) - (arguments - `(;; There are no tests, and running the test phase requires missing - ;; dependencies - #:tests? #f)) - (propagated-inputs - `(("python-tornado" ,python-tornado))) - (home-page "http://github.com/mrjoes/sockjs-tornado/") - (synopsis - "SockJS python server implementation on top of Tornado framework") - (description - "SockJS-tornado provides the server side counterpart to a SockJS client -library, through the Tornado framework. - -SockJS provides a low latency, full duplex, cross-domain communication channel -between a web browser and web server.") - (license license:expat))) - -(define-public python2-sockjs-tornado - (package-with-python2 python-sockjs-tornado)) - (define-public python-socksipy-branch (package (name "python-socksipy-branch") @@ -4963,33 +4909,6 @@ retried.") (define-public python2-flaky (package-with-python2 python-flaky)) -(define-public python-flask-babel - (package - (name "python-flask-babel") - (version "0.11.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-Babel" version)) - (sha256 - (base32 - "16b80cipdba9xj3jlaiaq6wgrgpjb70w3j01jjy9hbp4k71kd6yj")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-babel" ,python-babel) - ("python-jinja2" ,python-jinja2) - ("python-pytz" ,python-pytz))) - (home-page "https://github.com/python-babel/flask-babel") - (synopsis "Add i18n/l10n support to Flask applications") - (description "This package implements internationalization and localization -support for Flask. This is based on the Python babel module as well as pytz - -both of which are installed automatically if you install this library.") - (license license:bsd-3))) - -(define-public python2-flask-babel - (package-with-python2 python-flask-babel)) - (define-public python-sqlalchemy-utils (package (name "python-sqlalchemy-utils") @@ -6068,122 +5987,6 @@ ISO 8601 dates, time and duration.") (define-public python2-isodate (package-with-python2 python-isodate)) -(define-public python-html5lib - (package - (name "python-html5lib") - (version "1.0b10") - (source - (origin - (method url-fetch) - (uri (pypi-uri "html5lib" version)) - (sha256 - (base32 - "1yd068a5c00wd0ajq0hqimv7fd82lhrw0w3s01vbhy9bbd6xapqd")))) - (build-system python-build-system) - (propagated-inputs - `(("python-six" ,python-six) - ("python-webencodings" ,python-webencodings))) - (arguments - `(#:test-target "check")) - (home-page - "https://github.com/html5lib/html5lib-python") - (synopsis - "Python HTML parser based on the WHATWG HTML specifcation") - (description - "Html5lib is an HTML parser based on the WHATWG HTML specifcation -and written in Python.") - (license license:expat))) - -(define-public python2-html5lib - (package-with-python2 python-html5lib)) - -;; Needed for python-bleach, a dependency of python-notebook -(define-public python-html5lib-0.9 - (package - (inherit python-html5lib) - (version "0.999") - (source - (origin - (method url-fetch) - (uri (pypi-uri "html5lib" version)) - (sha256 - (base32 - "17n4zfsj6ynmbwdwviywmj8r6nzr3xvfx2zs0xhndmvm51z7z263")))))) - -(define-public python2-html5lib-0.9 - (package-with-python2 python-html5lib-0.9)) - -(define-public python-html5-parser - (package - (name "python-html5-parser") - (version "0.4.4") - (source (origin - (method url-fetch) - (uri (pypi-uri "html5-parser" version)) - (sha256 - (base32 - "1d8sxhl41ffh7qlk7wlsy17xw6slzx5v1yna9s72wx5qrpaa3wxr")))) - (build-system python-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("libxml2" ,libxml2))) - (propagated-inputs - `(("python-lxml" ,python-lxml) - ("python-beautifulsoup4" ,python-beautifulsoup4))) - (home-page "https://html5-parser.readthedocs.io") - (synopsis "Fast C-based HTML5 parsing for Python") - (description "This package provides a fast implementation of the HTML5 -parsing spec for Python. Parsing is done in C using a variant of the gumbo -parser. The gumbo parse tree is then transformed into an lxml tree, also in -C, yielding parse times that can be a thirtieth of the html5lib parse times.") - ;; src/as-python-tree.[c|h] are licensed GPL3. The other files - ;; indicate ASL2.0, including the LICENSE file for the whole project. - (license (list license:asl2.0 license:gpl3)))) - -(define-public python2-html5-parser - (package-with-python2 python-html5-parser)) - -(define-public python-webencodings - (package - (name "python-webencodings") - (version "0.5") - (source (origin - (method url-fetch) - (uri (pypi-uri "webencodings" version)) - (sha256 - (base32 - "015rw7662lkpb9aqiqah2hbizk6w531badqwjpz41rr47glmxid5")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (zero? (system* "py.test" "-v" "webencodings/tests.py"))))))) - (native-inputs - `(("python-pytest" ,python-pytest))) - (home-page "https://github.com/SimonSapin/python-webencodings") - (synopsis "Character encoding aliases for legacy web content") - (description - "In order to be compatible with legacy web content when interpreting -something like @code{Content-Type: text/html; charset=latin1}, tools need -to use a particular set of aliases for encoding labels as well as some -overriding rules. For example, @code{US-ASCII} and @code{iso-8859-1} on -the web are actually aliases for @code{windows-1252}, and an @code{UTF-8} -or @code{UTF-16} BOM takes precedence over any other encoding declaration. -The WHATWG @url{https://encoding.spec.whatwg.org/,Encoding} standard -defines all such details so that implementations do not have to -reverse-engineer each other. - -This module implements the Encoding standard and has encoding labels and -BOM detection, but the actual implementation for encoders and decoders -is Python’s.") - (license license:bsd-3))) - -(define-public python2-webencodings - (package-with-python2 python-webencodings)) - (define-public python-urwid (package (name "python-urwid") @@ -6232,57 +6035,6 @@ features useful for text console applications.") (delete-file "urwid/tests/test_vterm.py")))) (package-arguments python-urwid)))))) -(define-public python-openid - (package - (name "python-openid") - (version "3.0.10") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python3-openid" version)) - (sha256 - (base32 - "1x3nh3fycqfn43jp5j5pb4q4y2jxp4mdka4absaa3bc0078qd758")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (zero? (system* "./admin/runtests"))))))) - (properties `((python2-variant . ,(delay python2-openid)))) - (propagated-inputs - `(("python-defusedxml" ,python-defusedxml))) - (native-inputs - `(("python-psycopg2" ,python-psycopg2) - ("python-django" ,python-django))) - (home-page "https://github.com/necaris/python3-openid") - (synopsis "OpenID support for servers and consumers") - (description "This library provides OpenID authentication for Python, both -for clients and servers.") - (license license:asl2.0))) - -(define-public python2-openid - (package - (name "python2-openid") - (version "2.2.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python-openid" version)) - (sha256 - (base32 - "1vvhxlghjan01snfdc4k7ykd80vkyjgizwgg9bncnin8rqz1ricj")))) - (build-system python-build-system) - (arguments - ;; Python 3 support is in `python3-openid`, a separate package. - `(#:python ,python-2)) - (home-page "https://github.com/openid/python-openid") - (synopsis "OpenID support for servers and consumers") - (description "This library provides OpenID authentication for Python, both -for clients and servers.") - (license license:asl2.0))) - (define-public python-urwidtrees (package (name "python-urwidtrees") @@ -6469,108 +6221,6 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.") (strip-python2-variant python-beautifulsoup4))) (arguments `(#:python ,python-2)))) -(define-public python-cssutils - (package - (name "python-cssutils") - (version "1.0.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cssutils" version)) - (sha256 - (base32 - "0qwha9x1wml2qmipbcz03gndnlwhzrjdvw9i09si247a90l8p8fq")))) - (build-system python-build-system) - (native-inputs - `(("unzip" ,unzip))) ; for unpacking the source - (arguments - `(#:tests? #f)) ;tests require python-pbr < 1.7.0 - (home-page "http://cthedot.de/cssutils/") - (synopsis - "CSS Cascading Style Sheets library for Python") - (description - "Cssutils is a Python package for parsing and building CSS -Cascading Style Sheets. Currently it provides a DOM only and no rendering -options.") - (license license:lgpl3+))) - -(define-public python2-cssutils - (package-with-python2 python-cssutils)) - -(define-public python-cssselect - (package - (name "python-cssselect") - (version "0.9.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cssselect" version)) - (sha256 - (base32 - "1xg6gbva1yswghiycmgincv6ab4bn7hpm720ndbj40h8xycmnfvi")))) - (build-system python-build-system) - (arguments - ;; tests fail with message - ;; AttributeError: 'module' object has no attribute 'tests' - `(#:tests? #f)) - (home-page - "https://pythonhosted.org/cssselect/") - (synopsis - "CSS3 selector parser and translator to XPath 1.0") - (description - "Cssselect ia a Python module that parses CSS3 Selectors and translates -them to XPath 1.0 expressions. Such expressions can be used in lxml or -another XPath engine to find the matching elements in an XML or HTML document.") - (license license:bsd-3))) - -(define-public python2-cssselect - (package-with-python2 python-cssselect)) - -(define-public python-openid-cla - (package - (name "python-openid-cla") - (version "1.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python-openid-cla" version)) - (sha256 - (base32 - "102hy2qisvjxp5s0v9lvwqi4f2dk0dhns40vjgn008yxc7k0h3cr")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ; No tests. - (home-page "https://github.com/puiterwijk/python-openid-cla/") - (synopsis "Implementation of the OpenID CLA extension for python-openid") - (description "@code{openid-cla} is an implementation of the OpenID -contributor license agreement extension for python-openid.") - (license license:bsd-3))) - -(define-public python2-openid-cla - (package-with-python2 python-openid-cla)) - -(define-public python-openid-teams - (package - (name "python-openid-teams") - (version "1.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python-openid-teams" version)) - (sha256 - (base32 - "05zrh78alav24rxkbqlpbad6d3x2nljk6z6j7kflxf3vdqa7w969")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ; No tests. - (home-page "https://github.com/puiterwijk/python-openid-teams/") - (synopsis "Implementation of the OpenID teams extension for python-openid") - (description - "@code{openid-teams} is an implementation of the OpenID -teams extension for python-openid.") - (license license:bsd-3))) - -(define-public python2-openid-teams - (package-with-python2 python-openid-teams)) - (define-public python-netifaces (package (name "python-netifaces") @@ -6889,75 +6539,6 @@ It is written entirely in Python.") (define-public python2-singledispatch (package-with-python2 python-singledispatch)) -(define-public python-tornado - (package - (name "python-tornado") - (version "4.5.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tornado" version)) - (sha256 - (base32 "1zbkgcdfq81k298awrm8p0xwbwwn2p3nbizdglzfbkskhai082fv")))) - (build-system python-build-system) - (arguments - '(;; FIXME: Two tests error out with: - ;; AssertionError: b'Error in atexit._run_exitfuncs:\nFileNotF[44 chars]ry\n' != b'' - ;; #:phases - ;; (modify-phases %standard-phases - ;; (replace 'check - ;; (lambda _ - ;; ;; 'setup.py test' hits an AssertionError on BSD-specific - ;; ;; "tornado/platform/kqueue.py". This is the supported method: - ;; (zero? (system* "python" "-m" "tornado.test"))))) - #:tests? #f)) - (native-inputs - `(("python-certifi" ,python-certifi))) - (propagated-inputs - `(("python-backports-abc" ,python-backports-abc))) - (home-page "http://www.tornadoweb.org/") - (synopsis "Python web framework and asynchronous networking library") - (description - "Tornado is a Python web framework and asynchronous networking library, -originally developed at FriendFeed. By using non-blocking network I/O, -Tornado can scale to tens of thousands of open connections, making it ideal -for long polling, WebSockets, and other applications that require a long-lived -connection to each user.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-tornado)))))) - -(define-public python2-tornado - (let ((tornado (package-with-python2 (strip-python2-variant python-tornado)))) - (package (inherit tornado) - (propagated-inputs - `(("python2-backport-ssl-match-hostname" - ,python2-backport-ssl-match-hostname) - ("python2-singledispatch" ,python2-singledispatch) - ,@(package-propagated-inputs tornado)))))) - -(define-public python-tornado-http-auth - (package - (name "python-tornado-http-auth") - (version "1.1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tornado-http-auth" version)) - (sha256 - (base32 - "0znrgqd7k2s4ia474xizi6h3061zj4sn5n6cq76bkwl3wwshifn5")))) - (build-system python-build-system) - (propagated-inputs - `(("python-tornado" ,python-tornado))) - (home-page - "https://github.com/gvalkov/tornado-http-auth") - (synopsis - "Digest and basic authentication module for Tornado") - (description - "Provides support for adding authentication to services using the Tornado -web framework, either via the basic or digest authentication schemes.") - (license license:asl2.0))) - ;; the python- version can be removed with python-3.5 (define-public python-backports-abc (package @@ -7449,44 +7030,6 @@ output.") (define-public python2-cram (package-with-python2 python-cram)) -(define-public python-terminado - (package - (name "python-terminado") - (version "0.6") - (source - (origin - (method url-fetch) - (uri (pypi-uri "terminado" version)) - (sha256 - (base32 - "09h1kwi86g5mrk14s4pgbhshd602zry29lnpxamcqz864kva22rc")))) - (build-system python-build-system) - (propagated-inputs - `(("python-tornado" ,python-tornado) - ("python-ptyprocess" ,python-ptyprocess))) - (native-inputs - `(("python-nose" ,python-nose))) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (zero? (system* "nosetests"))))))) - (home-page "https://github.com/takluyver/terminado") - (synopsis "Terminals served to term.js using Tornado websockets") - (description "This package provides a Tornado websocket backend for the -term.js Javascript terminal emulator library.") - (license license:bsd-2) - (properties `((python2-variant . ,(delay python2-terminado)))))) - -(define-public python2-terminado - (let ((terminado (package-with-python2 (strip-python2-variant python-terminado)))) - (package (inherit terminado) - (propagated-inputs - `(("python2-backport-ssl-match-hostname" - ,python2-backport-ssl-match-hostname) - ,@(package-propagated-inputs terminado)))))) - (define-public python-straight-plugin (package (name "python-straight-plugin") @@ -7804,30 +7347,6 @@ fractional seconds) of a clock which never goes backwards.") (define-public python2-monotonic (package-with-python2 python-monotonic)) -(define-public python-webob - (package - (name "python-webob") - (version "1.5.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "WebOb" version)) - (sha256 - (base32 - "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq")))) - (build-system python-build-system) - (native-inputs - `(("python-nose" ,python-nose))) - (home-page "http://webob.org/") - (synopsis "WSGI request and response object") - (description - "WebOb provides wrappers around the WSGI request environment, and an -object to help create WSGI responses.") - (license license:expat))) - -(define-public python2-webob - (package-with-python2 python-webob)) - (define-public python-xlrd (package (name "python-xlrd") @@ -8813,366 +8332,6 @@ programatically with command-line parsers like @code{getopt} and (define-public python2-docopt (package-with-python2 python-docopt)) -(define-public python-zope-event - (package - (name "python-zope-event") - (version "4.1.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.event/zope.event-" version ".tar.gz")) - (sha256 - (base32 - "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw")))) - (build-system python-build-system) - (home-page "http://pypi.python.org/pypi/zope.event") - (synopsis "Event publishing system for Python") - (description "Zope.event provides an event publishing API, intended for -use by applications which are unaware of any subscribers to their events. It -is a simple event-dispatching system on which more sophisticated event -dispatching systems can be built.") - (license license:zpl2.1))) - -(define-public python2-zope-event - (package-with-python2 python-zope-event)) - -(define-public python-zope-interface - (package - (name "python-zope-interface") - (version "4.1.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.interface/zope.interface-" version ".tar.gz")) - (sha256 - (base32 - "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if")))) - (build-system python-build-system) - (native-inputs - `(("python-zope-event" ,python-zope-event))) - (home-page "https://github.com/zopefoundation/zope.interface") - (synopsis "Python implementation of the \"design by contract\" -methodology") - (description "Zope.interface provides an implementation of \"object -interfaces\" for Python. Interfaces are a mechanism for labeling objects as -conforming to a given API or contract.") - (license license:zpl2.1))) - -(define-public python2-zope-interface - (package-with-python2 python-zope-interface)) - -(define-public python-zope-exceptions - (package - (name "python-zope-exceptions") - (version "4.0.8") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.exceptions/zope.exceptions-" - version ".tar.gz")) - (sha256 - (base32 - "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; circular dependency with zope.testrunner - (propagated-inputs - `(("python-zope-interface" ,python-zope-interface))) - (home-page "http://cheeseshop.python.org/pypi/zope.exceptions") - (synopsis "Zope exceptions") - (description "Zope.exceptions provides general-purpose exception types -that have uses outside of the Zope framework.") - (license license:zpl2.1))) - -(define-public python2-zope-exceptions - (package-with-python2 python-zope-exceptions)) - -(define-public python-zope-testing - (package - (name "python-zope-testing") - (version "4.5.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.testing/zope.testing-" version ".tar.gz")) - (sha256 - (base32 - "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Remove pre-compiled .pyc files backup files from source. - (for-each delete-file (find-files "." "(\\.pyc|~)$")) - #t)))) - (build-system python-build-system) - (native-inputs - `(("python-zope-exceptions" ,python-zope-exceptions))) - (propagated-inputs - `(("python-zope-interface" ,python-zope-interface))) - (home-page "http://pypi.python.org/pypi/zope.testing") - (synopsis "Zope testing helpers") - (description "Zope.testing provides a number of testing utilities for HTML -forms, HTTP servers, regular expressions, and more.") - (license license:zpl2.1))) - -(define-public python2-zope-testing - (package-with-python2 python-zope-testing)) - -(define-public python-zope-testrunner - (package - (name "python-zope-testrunner") - (version "4.4.9") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.testrunner/zope.testrunner-" - version ".zip")) - (sha256 - (base32 - "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. - (native-inputs - `(("python-six" ,python-six) - ;("python-zope-interface" ,python-zope-interface) - ("python-zope-exceptions" ,python-zope-exceptions) - ("python-zope-testing" ,python-zope-testing) - ("unzip" ,unzip))) - (propagated-inputs - `(("python-zope-interface" ,python-zope-interface))) - (home-page "http://pypi.python.org/pypi/zope.testrunner") - (synopsis "Zope testrunner script") - (description "Zope.testrunner provides a script for running Python -tests.") - (license license:zpl2.1))) - -(define-public python2-zope-testrunner - (let ((base (package-with-python2 python-zope-testrunner))) - (package - (inherit base) - (native-inputs - (append (package-native-inputs base) - `(("python2-subunit" ,python2-subunit) - ("python2-mimeparse" ,python2-mimeparse))))))) - -(define-public python-zope-i18nmessageid - (package - (name "python-zope-i18nmessageid") - (version "4.0.3") - (source - (origin - (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/z" - "/zope.i18nmessageid/zope.i18nmessageid-" - version ".tar.gz")) - (sha256 - (base32 - "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml")))) - (build-system python-build-system) - (home-page "http://pypi.python.org/pypi/zope.i18nmessageid") - (synopsis "Message identifiers for internationalization") - (description "Zope.i18nmessageid provides facilities for declaring -internationalized messages within program source text.") - (license license:zpl2.1))) - -(define-public python2-zope-i18nmessageid - (package-with-python2 python-zope-i18nmessageid)) - -(define-public python-zope-schema - (package - (name "python-zope-schema") - (version "4.4.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.schema/zope.schema-" version ".tar.gz")) - (sha256 - (base32 - "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.event. - (propagated-inputs - `(("python-zope-event" ,python-zope-event) - ("python-zope-exceptions", python-zope-exceptions) - ("python-zope-interface" ,python-zope-interface))) - (native-inputs - `(("python-zope-testing" ,python-zope-testing) - ("python-coverage" ,python-coverage) - ("python-nose" ,python-nose))) - (home-page "http://pypi.python.org/pypi/zope.schema") - (synopsis "Zope data schemas") - (description "Zope.scheme provides extensions to zope.interface for -defining data schemas.") - (license license:zpl2.1))) - -(define-public python2-zope-schema - (package-with-python2 python-zope-schema)) - -(define-public python-zope-configuration - (package - (name "python-zope-configuration") - (version "4.0.3") - (source (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.configuration/zope.configuration-" - version ".tar.gz")) - (sha256 - (base32 - "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. - (propagated-inputs - `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) - ("python-zope-schema" ,python-zope-schema))) - (home-page "http://pypi.python.org/pypi/zope.configuration") - (synopsis "Zope Configuration Markup Language") - (description "Zope.configuration implements ZCML, the Zope Configuration -Markup Language.") - (license license:zpl2.1))) - -(define-public python2-zope-configuration - (package-with-python2 python-zope-configuration)) - -(define-public python-zope-proxy - (package - (name "python-zope-proxy") - (version "4.1.6") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.proxy/zope.proxy-" version ".tar.gz")) - (sha256 - (base32 - "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. - (propagated-inputs - `(("python-zope-interface" ,python-zope-interface))) - (home-page "http://pypi.python.org/pypi/zope.proxy") - (synopsis "Generic, transparent proxies") - (description "Zope.proxy provides generic, transparent proxies for Python. -Proxies are special objects which serve as mostly-transparent wrappers around -another object, intervening in the apparent behavior of the wrapped object -only when necessary to apply the policy (e.g., access checking, location -brokering, etc.) for which the proxy is responsible.") - (license license:zpl2.1))) - -(define-public python2-zope-proxy - (package-with-python2 python-zope-proxy)) - -(define-public python-zope-location - (package - (name "python-zope-location") - (version "4.0.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.location/zope.location-" version ".tar.gz")) - (sha256 - (base32 - "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. - (propagated-inputs - `(("python-zope-proxy" ,python-zope-proxy) - ("python-zope-schema" ,python-zope-schema))) - (home-page "http://pypi.python.org/pypi/zope.location/") - (synopsis "Zope location library") - (description "Zope.location implements the concept of \"locations\" in -Zope3, which are are special objects that have a structural location.") - (license license:zpl2.1))) - -(define-public python2-zope-location - (package-with-python2 python-zope-location)) - -(define-public python-zope-security - (package - (name "python-zope-security") - (version "4.0.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.security/zope.security-" version ".tar.gz")) - (sha256 - (base32 - "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.testrunner. - (propagated-inputs - `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) - ("python-zope-proxy" ,python-zope-proxy) - ("python-zope-schema" ,python-zope-schema))) - (native-inputs - `(("python-six" ,python-six) - ("python-zope-component" ,python-zope-component) - ("python-zope-configuration" ,python-zope-configuration) - ("python-zope-location" ,python-zope-location) - ("python-zope-testrunner" ,python-zope-testrunner) - ("python-zope-testing" ,python-zope-testing))) - (home-page "http://pypi.python.org/pypi/zope.security") - (synopsis "Zope security framework") - (description "Zope.security provides a generic mechanism to implement -security policies on Python objects.") - (license license:zpl2.1))) - -(define-public python2-zope-security - (let ((zope-security (package-with-python2 python-zope-security))) - (package (inherit zope-security) - (propagated-inputs - `(("python2-zope-testrunner" ,python2-zope-testrunner) - ,@(alist-delete - "python-zope-testrunner" - (package-propagated-inputs zope-security))))))) - -(define-public python-zope-component - (package - (name "python-zope-component") - (version "4.3.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "zope.component" version)) - (sha256 - (base32 - "1hlvzwj1kcfz1qms1dzhwsshpsf38z9clmyksb1gh41n8k3kchdv")))) - (build-system python-build-system) - (arguments - ;; Skip tests due to circular dependency with python-zope-security. - '(#:tests? #f)) - (native-inputs - `(("python-zope-testing" ,python-zope-testing))) - (propagated-inputs - `(("python-zope-event" ,python-zope-event) - ("python-zope-interface" ,python-zope-interface) - ("python-zope-i18nmessageid" ,python-zope-i18nmessageid) - ("python-zope-configuration" ,python-zope-configuration))) - (home-page "https://github.com/zopefoundation/zope.component") - (synopsis "Zope Component Architecture") - (description "Zope.component represents the core of the Zope Component -Architecture. Together with the zope.interface package, it provides -facilities for defining, registering and looking up components.") - (license license:zpl2.1))) - -(define-public python2-zope-component - (package-with-python2 python-zope-component)) - (define-public python-pythondialog (package (name "python-pythondialog") @@ -9336,39 +8495,6 @@ be set via config files and/or environment variables.") (define-public python2-configargparse (package-with-python2 python-configargparse)) -(define-public python-ndg-httpsclient - (package - (name "python-ndg-httpsclient") - (version "0.4.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "ndg_httpsclient" version)) - (sha256 - (base32 - "1b5qirv46v4dpnmfqviwq42mdwfcby4dxmz0i41wad2337pqf2aq")))) - (build-system python-build-system) - (arguments - '(;; The tests appear to require networking. - #:tests? #f)) - (propagated-inputs - `(("python-pyopenssl" ,python-pyopenssl))) - (synopsis "HTTPS support for Python's httplib and urllib2") - (description "This is a HTTPS client implementation for httplib and urllib2 -based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation -over the default provided with Python and importantly enables full verification -of the SSL peer.") - (home-page "https://github.com/cedadev/ndg_httpsclient/") - (license license:bsd-3))) - -;; python2-openssl requires special care, so package-with-python2 is -;; insufficient. -(define-public python2-ndg-httpsclient - (package (inherit python-ndg-httpsclient) - (name "python2-ndg-httpsclient") - (arguments `(#:python ,python-2)) - (propagated-inputs - `(("python2-pyopenssl" ,python2-pyopenssl))))) - (define-public python-contextlib2 (package (name "python-contextlib2") @@ -9422,29 +8548,6 @@ tables.") (define-public python2-texttable (package-with-python2 python-texttable)) -(define-public python-websocket-client - (package - (name "python-websocket-client") - (version "0.37.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "websocket_client" version)) - (sha256 - (base32 - "0h9glp1jll3z76ly3kg08aqgxqk0a68p4zi9yn50353bh5nj92v7")))) - (build-system python-build-system) - (propagated-inputs - `(("python-six" ,python-six))) - (home-page "https://github.com/liris/websocket-client") - (synopsis "WebSocket client for Python") - (description "The Websocket-client module provides the low level APIs for -WebSocket usage in Python programs.") - (license license:lgpl2.1+))) - -(define-public python2-websocket-client - (package-with-python2 python-websocket-client)) - (define-public python-atomicwrites (package (name "python-atomicwrites") @@ -9465,32 +8568,6 @@ for atomic file system operations.") (define-public python2-atomicwrites (package-with-python2 python-atomicwrites)) -(define-public python-requests-toolbelt - (package - (name "python-requests-toolbelt") - (version "0.8.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "requests-toolbelt" version)) - (sha256 - (base32 - "1dc7l42i4080r8i4m9fj51jx367lqkai170vrv7wd93gdj9k39gn")))) - (build-system python-build-system) - (native-inputs - `(("python-betamax" ,python-betamax) - ("python-mock" ,python-mock) - ("python-pytest" ,python-pytest))) - (propagated-inputs - `(("python-requests" ,python-requests))) - (synopsis "Extensions to python-requests") - (description "This is a toolbelt of useful classes and functions to be used -with python-requests.") - (home-page "https://github.com/sigmavirus24/requests-toolbelt") - (license license:asl2.0))) - -(define-public python2-requests-toolbelt - (package-with-python2 python-requests-toolbelt)) - (define-public python-click-threading (package (name "python-click-threading") @@ -9895,38 +8972,6 @@ Python at your fingertips, in Lisp form.") (define-public python2-hy (package-with-python2 python-hy)) -(define-public python-rauth - (package - (name "python-rauth") - (version "0.7.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "rauth" version)) - (sha256 - (base32 - "02kv8w8l98ky223avyq7vw7x1f2ya9chrm59r77ylq45qb0xnk2j")))) - (build-system python-build-system) - (arguments - `(#:test-target "check")) - (propagated-inputs - `(("python-requests" ,python-requests))) - (home-page "https://github.com/litl/rauth") - (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly") - (description - "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also -provides service wrappers for convenient connection initialization and -authenticated session objects providing things like keep-alive.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-rauth)))))) - -(define-public python2-rauth - (let ((base (package-with-python2 (strip-python2-variant python-rauth)))) - (package - (inherit base) - (native-inputs `(("python2-unittest2" ,python2-unittest2) - ,@(package-native-inputs base)))))) - (define-public python2-functools32 (package (name "python2-functools32") @@ -10046,42 +9091,6 @@ concurrent.futures package from Python 3.2") ("python2-pytest" ,python2-pytest) ,@(package-native-inputs promise)))))) -(define-public python-urllib3 - (package - (name "python-urllib3") - (version "1.18.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "urllib3" version)) - (sha256 - (base32 - "1wb8aqnq53vzh2amrv8kc66f3h6fx217y0q62y6n30a64p2yqmam")))) - (build-system python-build-system) - (arguments `(#:tests? #f)) - (native-inputs - `(;; some packages for tests - ("python-nose" ,python-nose) - ("python-mock" ,python-mock) - ("python-tornado" ,python-tornado))) - (propagated-inputs - `(;; These 5 inputs are used to build urrlib3[secure] - ("python-certifi" ,python-certifi) - ("python-cryptography" ,python-cryptography) ; - ("python-idna" ,python-idna) - ("python-ipaddress" ,python-ipaddress) - ("python-pyopenssl" ,python-pyopenssl))) - (home-page "https://urllib3.readthedocs.org/") - (synopsis "HTTP library with thread-safe connection pooling") - (description - "Urllib3 supports features left out of urllib and urllib2 libraries. It -can reuse the same socket connection for multiple requests, it can POST files, -supports url redirection and retries, and also gzip and deflate decoding.") - (license license:expat))) - -(define-public python2-urllib3 - (package-with-python2 python-urllib3)) - (define-public python-colorama (package (name "python-colorama") @@ -10243,34 +9252,6 @@ interface to the Amazon Web Services (AWS) API.") (define-public python2-botocore (package-with-python2 python-botocore)) -(define-public awscli - (package - (name "awscli") - (version "1.11.164") - (source - (origin - (method url-fetch) - (uri (pypi-uri name version)) - (sha256 - (base32 - "05r8cw7i7ff6barpmyxxk3i52gzb1xyxwj8isynmiyqlmk3c9r8w")))) - (build-system python-build-system) - (propagated-inputs - `(("python-colorama" ,python-colorama) - ("python-botocore" ,python-botocore) - ("python-s3transfer" ,python-s3transfer) - ("python-docutils" ,python-docutils) - ("python-pyyaml" ,python-pyyaml) - ("python-rsa" ,python-rsa))) - (arguments - ;; FIXME: The 'pypi' release does not contain tests. - '(#:tests? #f)) - (home-page "https://aws.amazon.com/cli/") - (synopsis "Command line client for AWS") - (description "AWS CLI provides a unified command line interface to the -Amazon Web Services (AWS) API.") - (license license:asl2.0))) - (define-public python-hypothesis (package (name "python-hypothesis") @@ -10454,69 +9435,6 @@ server with very acceptable performance.") (define-public python2-waitress (package-with-python2 python-waitress)) -(define-public python-wsgiproxy2 - (package - (name "python-wsgiproxy2") - (version "0.4.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "WSGIProxy2" version ".zip")) - (sha256 - (base32 - "13kf9bdxrc95y9vriaz0viry3ah11nz4rlrykcfvb8nlqpx3dcm4")))) - (build-system python-build-system) - (arguments - '(;; Wsgiproxy2's test suite requires Restkit, which does not yet fully - ;; support Python 3: - ;; https://github.com/benoitc/restkit/issues/140 - #:tests? #f)) - (native-inputs - `(("unzip" ,unzip) - ("python-nose" ,python-nose) - ("python-coverage" ,python-coverage))) - (propagated-inputs - `(("python-six" ,python-six) - ("python-webob" ,python-webob))) - (home-page - "https://github.com/gawel/WSGIProxy2/") - (synopsis "WSGI Proxy with various http client backends") - (description "WSGI turns HTTP requests into WSGI function calls. -WSGIProxy turns WSGI function calls into HTTP requests. -It also includes code to sign requests and pass private data, -and to spawn subprocesses to handle requests.") - (license license:expat))) - -(define-public python2-wsgiproxy2 - (package-with-python2 python-wsgiproxy2)) - -(define-public python-pastedeploy - (package - (name "python-pastedeploy") - (version "1.5.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "PasteDeploy" version)) - (sha256 - (base32 - "1jz3m4hq8v6hyhfjz9425nd3nvn52cvbfipdcd72krjmla4qz1fm")))) - (build-system python-build-system) - (native-inputs - `(("python-nose" ,python-nose))) - (home-page "http://pythonpaste.org/deploy/") - (synopsis - "Load, configure, and compose WSGI applications and servers") - (description - "This tool provides code to load WSGI applications and servers from URIs; -these URIs can refer to Python Eggs for INI-style configuration files. Paste -Script provides commands to serve applications based on this configuration -file.") - (license license:expat))) - -(define-public python2-pastedeploy - (package-with-python2 python-pastedeploy)) - (define-public python-paste (package (name "python-paste") @@ -10611,52 +9529,6 @@ fast xml and html manipulation.") (define-public python2-pyquery (package-with-python2 python-pyquery)) -(define-public python-webtest - (package - (name "python-webtest") - (version "2.0.20") - (source - (origin - (method url-fetch) - (uri (pypi-uri "WebTest" version)) - (sha256 - (base32 - "0bv0qhdjakdsdgj4sk21gnpp8xp8bga4x03p6gjb83ihrsb7n4xv")))) - (build-system python-build-system) - (arguments - `(;; Unfortunately we have to disable tests! - ;; This release of WebTest is pinned to python-nose < 1.3, - ;; but older versions of python-nose are plagued with the following - ;; bug(s), which rears its ugly head during test execution: - ;; https://github.com/nose-devs/nose/issues/759 - ;; https://github.com/nose-devs/nose/pull/811 - #:tests? #f)) - ;; Commented out code is no good, but in this case, once tests - ;; are ready to be enabled again, we should put the following - ;; in place: - ;; (native-inputs - ;; `(("python-nose" ,python-nose) ; technially < 1.3, - ;; ; but see above comment - ;; ("python-coverage" ,python-coverage) - ;; ("python-mock" ,python-mock) - ;; ("python-pastedeploy" ,python-pastedeploy) - ;; ("python-wsgiproxy2" ,python-wsgiproxy2) - ;; ("python-pyquery" ,python-pyquery))) - (propagated-inputs - `(("python-waitress" ,python-waitress) - ("python-webob" ,python-webob) - ("python-six" ,python-six) - ("python-beautifulsoup4" ,python-beautifulsoup4))) - (home-page "http://webtest.pythonpaste.org/") - (synopsis "Helper to test WSGI applications") - (description "Webtest allows you to test your Python web applications -without starting an HTTP server. It supports anything that supports the -minimum of WSGI.") - (license license:expat))) - -(define-public python2-webtest - (package-with-python2 python-webtest)) - (define-public python-anyjson (package (name "python-anyjson") @@ -11035,147 +9907,6 @@ useful for solving the Assignment Problem.") (define-public python2-munkres (package-with-python2 python-munkres)) -(define-public python-flask - (package - (name "python-flask") - (version "0.11.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "Flask" version)) - (sha256 - (base32 - "03kbfll4sj3v5z7r31c7bhfpi11r1np076d4p1k2kg4yzcmkywdl")))) - (build-system python-build-system) - (propagated-inputs - `(("python-itsdangerous" ,python-itsdangerous) - ("python-jinja2" ,python-jinja2) - ("python-click" ,python-click) - ("python-werkzeug" ,python-werkzeug))) - (home-page "https://github.com/mitsuhiko/flask/") - (synopsis "Microframework based on Werkzeug, Jinja2 and good intentions") - (description "Flask is a micro web framework based on the Werkzeug toolkit -and Jinja2 template engine. It is called a micro framework because it does not -presume or force a developer to use a particular tool or library.") - (license license:bsd-3))) - -(define-public python2-flask - (package-with-python2 python-flask)) - -(define-public python-flask-wtf - (package - (name "python-flask-wtf") - (version "0.13.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-WTF" version)) - (sha256 - (base32 - "04l5743j2dici46038sqlzvf0xzpg8rf7s9ld2x24xv7f4idg990")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'check 'drop-failing-test - (lambda _ - ;; FIXME: This file tries resolving an external server, which - ;; fails. Try to patch out the offending section instead of - ;; deleting the whole thing. - (delete-file "tests/test_recaptcha.py") - #t))))) - (propagated-inputs - `(("python-flask-babel" ,python-flask-babel) - ("python-babel" ,python-babel) - ("python-wtforms" ,python-wtforms))) - (native-inputs - `(("python-nose" ,python-nose))) - (home-page "https://github.com/lepture/flask-wtf") - (synopsis "Simple integration of Flask and WTForms") - (description "Flask-WTF integrates Flask and WTForms, including CSRF, file -upload, and reCAPTCHA.") - (license license:bsd-3))) - -(define-public python2-flask-wtf - (package-with-python2 python-flask-wtf)) - -(define-public python-flask-multistatic - (package - (name "python-flask-multistatic") - (version "1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flask-multistatic" version)) - (sha256 - (base32 - "0p4v50rwv64wcd0zlq7rzl4waprwr4hj19s3cgf1isywa7jcisgm")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask))) - (home-page "https://pagure.io/flask-multistatic") - (synopsis "Flask plugin to allow overriding static files") - (description "@code{flask-multistatic} is a flask plugin that adds support -for overriding static files.") - (license license:gpl3+))) - -(define-public python2-flask-multistatic - (package-with-python2 python-flask-multistatic)) - -(define-public python-cookies - (package - (name "python-cookies") - (version "2.2.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "cookies" version)) - (sha256 - (base32 - "13pfndz8vbk4p2a44cfbjsypjarkrall71pgc97glk5fiiw9idnn")))) - (build-system python-build-system) - (arguments - `(;; test are broken: https://gitlab.com/sashahart/cookies/issues/3 - #:tests? #f)) - (native-inputs - `(("python-pytest" ,python2-pytest))) - (synopsis "HTTP cookie parser and renderer") - (description "A RFC 6265-compliant HTTP cookie parser and renderer in -Python.") - (home-page "https://gitlab.com/sashahart/cookies") - (license license:expat))) - -(define-public python2-cookies - (package-with-python2 python-cookies)) - -(define-public python-responses - (package - (name "python-responses") - (version "0.5.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "responses" version)) - (sha256 - (base32 - "1spcfxixyk9k7pk82jm6zqkwk031s95lh8q0mz7539jrb7269bcc")))) - (build-system python-build-system) - (arguments - `(;; Test suite is not distributed: - ;; https://github.com/getsentry/responses/issues/38 - #:tests? #f)) - (native-inputs - `(("python-mock" ,python-mock))) - (propagated-inputs - `(("python-requests" ,python-requests) - ("python-cookies" ,python-cookies) - ("python-six" ,python-six))) - (home-page "https://github.com/getsentry/responses") - (synopsis "Utility for mocking out the `requests` Python library") - (description "A utility library for mocking out the `requests` Python -library.") - (license license:asl2.0))) - -(define-public python2-responses - (package-with-python2 python-responses)) - (define-public python-whoosh (package (name "python-whoosh") @@ -11846,51 +10577,6 @@ to provide a high-level synchronous API on top of the libev event loop.") (define-public python2-gevent (package-with-python2 python-gevent)) -(define-public python-geventhttpclient - (package - (name "python-geventhttpclient") - (version "1.3.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "geventhttpclient" version)) - (sha256 - (base32 - "07d0q3wzmml75227r6y6mrl5a0zpf4v9gj0ni5rhbyzmaj4az1xx")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Delete pre-compiled files. - (for-each delete-file (find-files "src/geventhttpclient" - ".*\\.pyc")) - #t)))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'delete-network-tests - (lambda _ - (delete-file "src/geventhttpclient/tests/test_client.py") - #t)) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (zero? (system* "py.test" "src/geventhttpclient/tests" "-v"))))))) - (native-inputs - `(("python-pytest" ,python-pytest))) - (propagated-inputs - `(("python-certifi" ,python-certifi) - ("python-gevent" ,python-gevent) - ("python-six" ,python-six))) - (home-page "https://github.com/gwik/geventhttpclient") - (synopsis "HTTP client library for gevent") - (description "@code{python-geventhttpclient} is a high performance, -concurrent HTTP client library for python using @code{gevent}.") - (license license:expat))) - -(define-public python2-geventhttpclient - (package-with-python2 python-geventhttpclient)) - (define-public python-fastimport (package (name "python-fastimport") @@ -12559,44 +11245,6 @@ etc.") (inherit base) (name "ptpython2")))) -(define-public python-requests-oauthlib - (package - (name "python-requests-oauthlib") - (version "0.6.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "requests-oauthlib" version)) - (sha256 - (base32 - "0ykff67sjcl227c23g0rxzfx34rr5bf21kwv0z3zmgk0lfmch7hn")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; removes tests that require network access - (add-before 'check 'pre-check - (lambda _ - (delete-file "tests/test_core.py") - #t))))) - (native-inputs - `(("python-requests-mock" ,python-requests-mock) - ("python-mock" ,python-mock))) - (propagated-inputs - `(("python-oauthlib" ,python-oauthlib) - ("python-requests" ,python-requests))) - (home-page - "https://github.com/requests/requests-oauthlib") - (synopsis - "OAuthlib authentication support for Requests") - (description - "Requests-OAuthlib uses the Python Requests and OAuthlib libraries to -provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients.") - (license license:isc))) - -(define-public python2-requests-oauthlib - (package-with-python2 python-requests-oauthlib)) - (define-public python-stem (package (name "python-stem") @@ -12921,36 +11569,6 @@ List. Forked from and using the same API as the publicsuffix package.") (define-public python2-publicsuffix2 (package-with-python2 python-publicsuffix2)) -(define-public python-url - (package - (name "python-url") - (version "0.2.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "url" version)) - (sha256 - (base32 - "0v879yadcz9qxfl41ak6wkga1kimp9cflla9ddz03hjjvgkqy5ki")))) - (build-system python-build-system) - (propagated-inputs - `(("python-publicsuffix" ,python-publicsuffix))) - (native-inputs - `(("python-coverage" ,python-coverage) - ("python-nose" ,python-nose))) - (arguments - `(#:tests? #f)) ; FIXME: tests fail with "ImportError: No module named 'tests'" - (home-page "https://github.com/seomoz/url-py") - (synopsis "URL Parsing") - (description "Library for parsing urls.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-url)))))) - -(define-public python2-url - (let ((base (package-with-python2 (strip-python2-variant python-url)))) - (package (inherit base) - (propagated-inputs - `(("python2-publicsuffix" ,python2-publicsuffix)))))) - (define-public python-freezegun (package (name "python-freezegun") @@ -13024,50 +11642,6 @@ Python to manipulate OpenDocument 1.2 files.") (define-public python2-odfpy (package-with-python2 python-odfpy)) -(define-public python-cachecontrol - (package - (name "python-cachecontrol") - (version "0.11.6") - (source - (origin - (method url-fetch) - ;; Pypi does not have tests. - (uri (string-append - "https://github.com/ionrock/cachecontrol/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0yj60d0f69a2l8p7y86k4zhzzm6rnxpq74sfl240pry9l0lfw2vw")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; Drop test that requires internet access. - (delete-file "tests/test_regressions.py") - (setenv "PYTHONPATH" - (string-append (getcwd) "/build/lib:" - (getenv "PYTHONPATH"))) - (zero? (system* "py.test" "-vv"))))))) - (native-inputs - `(("python-pytest" ,python-pytest) - ("python-redis" ,python-redis) - ("python-webtest" ,python-webtest) - ("python-mock" ,python-mock))) - (propagated-inputs - `(("python-requests" ,python-requests) - ("python-lockfile" ,python-lockfile))) - (home-page "https://github.com/ionrock/cachecontrol") - (synopsis "The httplib2 caching algorithms for use with requests") - (description "CacheControl is a port of the caching algorithms in -@code{httplib2} for use with @code{requests} session objects.") - (license license:asl2.0))) - -(define-public python2-cachecontrol - (package-with-python2 python-cachecontrol)) - (define-public python-lit (package (name "python-lit") @@ -13437,96 +12011,6 @@ theme for the Sphinx documentation system. It's the default theme of Sphinx.") (define-public python2-sphinx-alabaster-theme (package-with-python2 python-sphinx-alabaster-theme)) -(define-public python-betamax - (package - (name "python-betamax") - (version "0.8.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "betamax" version)) - (sha256 - (base32 - "18f8v5gng3j773jlbbzx4rg1i4y2zw3m2l1zpmbvp8bh5a2q1i42")))) - (build-system python-build-system) - (arguments - '(;; Many tests fail because they require networking. - #:tests? #f)) - (propagated-inputs - `(("python-requests" ,python-requests))) - (home-page "https://github.com/sigmavirus24/betamax") - (synopsis "Record HTTP interactions with python-requests") - (description "Betamax will record your test suite's HTTP interactions and -replay them during future tests. It is designed to work with python-requests.") - (license license:expat))) - -(define-public python2-betamax - (package-with-python2 python-betamax)) - -(define-public python-betamax-matchers - (package - (name "python-betamax-matchers") - (version "0.4.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "betamax-matchers" version)) - (sha256 - (base32 - "07qpwjyq2i2aqhz5iwghnj4pqr2ys5n45v1vmpcfx9r5mhwrsq43")))) - (build-system python-build-system) - (propagated-inputs - `(("python-betamax" ,python-betamax) - ("python-requests-toolbelt" ,python-requests-toolbelt))) - (home-page "https://github.com/sigmavirus24/betamax_matchers") - (synopsis "VCR imitation for python-requests") - (description "@code{betamax-matchers} provides a set of Matchers for -Betamax.") - (license license:asl2.0))) - -(define-public python2-betamax-matchers - (package-with-python2 python-betamax-matchers)) - -(define-public python-s3transfer - (package - (name "python-s3transfer") - (version "0.1.11") - (source (origin - (method url-fetch) - (uri (pypi-uri "s3transfer" version)) - (sha256 - (base32 - "0yfrfnf404cxzn3iswibqjxklsl0b1lwgqiml6pwiqj79a7zbwbn")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; 7 of the 'integration' tests require network access or login - ;; credentials. - (zero? (system* "nosetests" "--exclude=integration"))))))) - (native-inputs - `(("python-docutils" ,python-docutils) - ("python-mock" ,python-mock) - ("python-nose" ,python-nose))) - (propagated-inputs - `(("python-botocore" ,python-botocore))) - (synopsis "Amazon S3 Transfer Manager") - (description "S3transfer is a Python library for managing Amazon S3 -transfers.") - (home-page "https://github.com/boto/s3transfer") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-s3transfer)))))) - -(define-public python2-s3transfer - (let ((base (package-with-python2 (strip-python2-variant python-s3transfer)))) - (package - (inherit base) - (native-inputs - `(("python2-futures" ,python2-futures) - ,@(package-native-inputs base)))))) - (define-public python-setproctitle (package (name "python-setproctitle") @@ -13654,82 +12138,6 @@ useful as a validator for JSON data.") (define-public python2-aniso8601 (package-with-python2 python-aniso8601)) -(define-public python-flask-restful - (package - (name "python-flask-restful") - (version "0.3.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-RESTful" version)) - (sha256 - (base32 - "0hjcmdb56b7z4bkw848lxfkyrpnkwzmqn2dgnlv12mwvjpzsxr6c")))) - (build-system python-build-system) - (propagated-inputs - `(("python-aniso8601" ,python-aniso8601) - ("python-flask" ,python-flask) - ("python-pycrypto" ,python-pycrypto) - ("python-pytz" ,python-pytz))) - (native-inputs - `(;; Optional dependency of Flask. Tests need it. - ("python-blinker" ,python-blinker) - ("python-mock" ,python-mock) ; For tests - ("python-nose" ,python-nose) ; For tests - ("python-sphinx" ,python-sphinx))) - (home-page - "https://www.github.com/flask-restful/flask-restful/") - (synopsis - "Flask module for creating REST APIs") - (description - "This package contains a Flask module for creating REST APIs.") - (license license:bsd-3))) - -(define-public python-flask-basicauth - (package - (name "python-flask-basicauth") - (version "0.2.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-BasicAuth" version)) - (sha256 - (base32 - "1zq1spkjr4sjdnalpp8wl242kdqyk6fhbnhr8hi4r4f0km4bspnz")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask))) - (home-page - "https://github.com/jpvanhal/flask-basicauth") - (synopsis - "HTTP basic access authentication for Flask") - (description - "This package provides HTTP basic access authentication for Flask.") - (license license:bsd-3))) - -(define-public python-flask-sqlalchemy - (package - (name "python-flask-sqlalchemy") - (version "2.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-SQLAlchemy" version)) - (sha256 - (base32 - "1i9ps5d5snih9xlqhrvmi3qfiygkmqzxh92n25kj4pf89kj4s965")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-sqlalchemy" ,python-sqlalchemy))) - (home-page - "https://github.com/mitsuhiko/flask-sqlalchemy") - (synopsis - "Module adding SQLAlchemy support to your Flask application") - (description - "This package adds SQLAlchemy support to your Flask application.") - (license license:bsd-3))) - (define-public python-pyev (package (name "python-pyev") @@ -13917,44 +12325,6 @@ asynchronous messaging environments.") (define-public python2-rednose (package-with-python2 python-rednose)) -(define-public python-flask-restplus - (package - (name "python-flask-restplus") - (version "0.9.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flask-restplus" version)) - (sha256 - (base32 - "11his6ii5brpkhld0d5bwzjjw4q3vmplpd6fmgzjrvvklsbk0cf4")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: 35/882 tests failing. - ;; #:phases - ;; (modify-phases %standard-phases - ;; (replace 'check - ;; (lambda _ - ;; (zero? (system* "nosetests"))))))) - (propagated-inputs - `(("python-aniso8601" ,python-aniso8601) - ("python-flask" ,python-flask) - ("python-jsonschema" ,python-jsonschema) - ("python-pytz" ,python-pytz) - ("python-six" ,python-six))) - (native-inputs - `(("python-tzlocal" ,python-tzlocal) - ("python-blinker" ,python-blinker) - ("python-nose" ,python-nose) - ("python-rednose" ,python-rednose))) - (home-page "https://github.com/noirbizarre/flask-restplus") - (synopsis "Framework for documented API development with Flask") - (description "This package provides a framework for API development with -the Flask web framework in Python. It is similar to package -@code{python-flask-restful} but supports the @code{python-swagger} -documentation builder.") - (license license:expat))) - (define-public python-sadisplay (package (name "python-sadisplay") @@ -13981,29 +12351,6 @@ database).") (define-public python2-sadisplay (package-with-python2 python-sadisplay)) -(define-public python-flask-restful-swagger - (package - (name "python-flask-restful-swagger") - (version "0.19") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flask-restful-swagger" version)) - (sha256 - (base32 - "16msl8hd5xjmj833bpy264v98cpl5hkw5bgl5gf5vgndxbv3rm6v")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask-restful" ,python-flask-restful))) - (home-page "https://github.com/rantav/flask-restful-swagger") - (synopsis "Extract Swagger specs from Flask-Restful projects") - (description "This package lets you extract Swagger API documentation -specs from your Flask-Restful projects.") - (license license:expat))) - -(define-public python2-flask-restful-swagger - (package-with-python2 python-flask-restful-swagger)) - (define-public python-argcomplete (package (name "python-argcomplete") @@ -14674,82 +13021,6 @@ copy-on-write. This makes it easy to clone a tree, and modify only the clone, while other processes access the original tree.") (license license:gpl3+))) -(define-public python-htmlmin - (package - (name "python-htmlmin") - (version "0.1.10") - (source - (origin - (method url-fetch) - (uri (pypi-uri "htmlmin" version)) - (sha256 - (base32 - "0qxa93j3p1ak32qh8d9kshqv8v3z0hkc13dwbhp5cn7sn3xmsp6a")))) - (arguments - `(#:tests? #f)) ;htmlmin has no tests - (build-system python-build-system) - (home-page "https://htmlmin.readthedocs.org/en/latest/") - (synopsis "HTML minifier") - (description "@code{htmlmin} is an HTML minifier that just works. -It comes with safe defaults and easily configurable options.") - (license license:bsd-3))) - -(define-public python2-htmlmin - (package-with-python2 python-htmlmin)) - -(define-public python-flask-htmlmin - (package - (name "python-flask-htmlmin") - (version "1.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-HTMLmin" version)) - (sha256 - (base32 - "1n6zlq72kakkw0z2jpq6nh74lfsmxybm4g053pwhc14fbr809348")))) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-htmlmin" ,python-htmlmin))) - (build-system python-build-system) - (home-page "https://github.com/hamidfzm/Flask-HTMLmin") - (synopsis "HTML response minifier for Flask") - (description - "Minify @code{text/html} MIME type responses when using @code{Flask}.") - (license license:bsd-3))) - -(define-public python2-flask-htmlmin - (package-with-python2 python-flask-htmlmin)) - -(define-public python-flask-login - (package - (name "python-flask-login") - (version "0.4.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/maxcountryman/flask-login/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1pdqp7a2gyb7k06xda004x0fi2w66s6kn2i0ndkqndmg12d83f9w")))) - (arguments - ;; Tests fail PEP8 compliance. See: - ;; https://github.com/maxcountryman/flask-login/issues/340 - `(#:tests? #f)) - (build-system python-build-system) - (home-page "https://github.com/maxcountryman/flask-login") - (synopsis "User session management for Flask") - (description - "@code{Flask-Login} provides user session management for Flask. It -handles the common tasks of logging in, logging out, and remembering your -users' sessions over extended periods of time.") - (license license:expat))) - -(define-public python2-flask-login - (package-with-python2 python-flask-login)) - (define-public python-astroid (package (name "python-astroid") @@ -15076,58 +13347,6 @@ exception message with a traceback that points to the culprit.") (define-public python2-fudge (package-with-python2 python-fudge)) -(define-public python-oauth2client - (package - (name "python-oauth2client") - (version "4.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "oauth2client" version)) - (sha256 - (base32 - "1irqqap2zibysf8dba8sklfqikia579srd0phm5n754ni0h59gl0")))) - (build-system python-build-system) - (arguments - `(#:tests? #f)) - (propagated-inputs - `(("python-httplib2" ,python-httplib2) - ("python-pyasn1" ,python-pyasn1) - ("python-pyasn1-modules" ,python-pyasn1-modules) - ("python-rsa" ,python-rsa) - ("python-six" ,python-six))) - (home-page "http://github.com/google/oauth2client/") - (synopsis "OAuth 2.0 client library") - (description "@code{python-oauth2client} provides an OAuth 2.0 client -library for Python") - (license license:asl2.0))) - -(define-public python-flask-oidc - (package - (name "python-flask-oidc") - (version "1.1.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flask-oidc" version)) - (sha256 - (base32 - "1ay5j0mf174bix7i67hclr95gv16z81fpx0dijvi0gydvdj3ddy2")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-itsdangerous" ,python-itsdangerous) - ("python-oauth2client" ,python-oauth2client) - ("python-six" ,python-six))) - (native-inputs - `(("python-nose" ,python-nose) - ("python-mock" ,python-mock))) - (home-page "https://github.com/puiterwijk/flask-oidc") - (synopsis "OpenID Connect extension for Flask") - (description "@code{python-flask-oidc} provides an OpenID Connect extension -for Flask.") - (license license:bsd-2))) - (define-public python-mwclient (package (name "python-mwclient") @@ -15260,30 +13479,6 @@ make common patterns shorter and easier.") (define-public python2-utils (package-with-python2 python-utils)) -(define-public python-webassets - (package - (name "python-webassets") - (version "0.12.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "webassets" version)) - (sha256 - (base32 - "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7")))) - (build-system python-build-system) - (native-inputs - `(("python-jinja2" ,python-jinja2) - ("python-mock" ,python-mock) - ("python-nose" ,python-nose) - ("python-pytest" ,python-pytest))) - (home-page "https://github.com/miracle2k/webassets") - (synopsis "Media asset management") - (description "Merges, minifies and compresses Javascript and CSS files, -supporting a variety of different filters, including YUI, jsmin, jspacker or -CSS tidy. Also supports URL rewriting in CSS files.") - (license license:bsd-2))) - (define-public python-sphinx-me (package (name "python-sphinx-me") @@ -15308,26 +13503,6 @@ use in your Sphinx docs.") (define-public python2-sphinx-me (package-with-python2 python-sphinx-me)) -(define-public python-cssmin - (package - (name "python-cssmin") - (version "0.2.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cssmin" version)) - (sha256 - (base32 - "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0")))) - (build-system python-build-system) - (home-page "https://github.com/zacharyvoase/cssmin") - (synopsis "Python port of the YUI CSS Compressor") - (description "Python port of the YUI CSS Compressor.") - (license (list license:expat license:bsd-3)))) - -(define-public python2-cssmin - (package-with-python2 python-cssmin)) - (define-public python-diff-match-patch (package (name "python-diff-match-patch") @@ -15400,38 +13575,6 @@ especially -cover-package.") (define-public python2-nosexcover (package-with-python2 python-nosexcover)) -(define-public python-elasticsearch - (package - (name "python-elasticsearch") - (version "1.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "elasticsearch" version)) - (sha256 - (base32 - "1sdw1r05cw7ihnmng8ra9v968fj7bq6sji8i1dikymsnkcpgc69g")))) - (build-system python-build-system) - (native-inputs - `(("python-mock" ,python-mock) - ("python-nosexcover" ,python-nosexcover) - ("python-pyaml" ,python-pyaml) - ("python-requests" ,python-requests))) - (propagated-inputs - `(("urllib3" ,python-urllib3))) - (arguments - ;; tests require the test_elasticsearch module but it is not distributed. - `(#:tests? #f)) - (home-page "https://github.com/elastic/elasticsearch-py") - (synopsis "Low-level client for Elasticsearch") - (description "Official low-level client for Elasticsearch. Its goal is to -provide common ground for all Elasticsearch-related code in Python; because of -this it tries to be opinion-free and very extendable.") - (license license:expat))) - -(define-public python2-elasticsearch - (package-with-python2 python-elasticsearch)) - (define-public python-levenshtein (package (name "python-levenshtein") @@ -15698,65 +13841,6 @@ JSON APIs with Behave.") (define-public python2-behave-web-api (package-with-python2 python-behave-web-api)) -(define-public python-flask-script - (package - (name "python-flask-script") - (version "2.0.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-Script" version)) - (sha256 - (base32 - "0zqh2yq8zk7m9b4xw1ryqmrljkdigfb3hk5155a3b5hkfnn6xxyf")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-argcomplete" ,python-argcomplete) - ("python-werkzeug" ,python-werkzeug))) - (native-inputs - `(("python-pytest" ,python-pytest))) - (home-page - "http://github.com/smurfix/flask-script") - (synopsis "Scripting support for Flask") - (description "The Flask-Script extension provides support for writing -external scripts in Flask. This includes running a development server, -a customised Python shell, scripts to set up your database, cronjobs, -and other command-line tasks that belong outside the web application -itself.") - (license license:bsd-3))) - -(define-public python2-flask-script - (package-with-python2 python-flask-script)) - -(define-public python-flask-migrate - (package - (name "python-flask-migrate") - (version "2.0.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-Migrate" version)) - (sha256 - (base32 - "107x78lkqsnbg92dld3dkagg07jvchp3ib3y0sivc4ipz6n1y7rk")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-alembic" ,python-alembic) - ("python-sqlalchemy" ,python-sqlalchemy) - ("python-flask-script" ,python-flask-script) - ("python-flask-sqlalchemy" ,python-flask-sqlalchemy))) - (home-page "http://github.com/miguelgrinberg/flask-migrate/") - (synopsis "SQLAlchemy database migrations for Flask programs using -Alembic") - (description "This package contains SQLAlchemy database migration tools -for Flask programs that are using @code{python-alembic}.") - (license license:expat))) - -(define-public python2-flask-migrate - (package-with-python2 python-flask-migrate)) - (define-public python-packaging (package (name "python-packaging") @@ -15810,46 +13894,6 @@ transforms idiomatic python function calls to well-formed SQL queries.") (define-public python2-sql (package-with-python2 python-sql)) -(define-public python-genshi - (package - (name "python-genshi") - (version "0.7") - (source - (origin - (method url-fetch) - (uri (string-append - "https://ftp.edgewall.org/pub/genshi/Genshi-" - version ".tar.gz")) - (patches - (search-patches - ;; The first 4 patches are in the master branch upstream. - ;; See this as a reference https://genshi.edgewall.org/ticket/582 - ;; The last 2 are NOT in any branch. - ;; They were sent as attachments to a ticket opened at - ;; https://genshi.edgewall.org/ticket/602#no1 - "python-genshi-stripping-of-unsafe-script-tags.patch" - "python-genshi-disable-speedups-on-python-3.3.patch" - "python-genshi-isstring-helper.patch" - "python-genshi-add-support-for-python-3.4-AST.patch" - "python-genshi-fix-tests-on-python-3.5.patch" - "python-genshi-buildable-on-python-2.7.patch")) - (sha256 - (base32 - "0lkkbp6fbwzv0zda5iqc21rr7rdldkwh3hfabfjl9i4bwq14858x")))) - (build-system python-build-system) - (home-page "https://genshi.edgewall.org/") - (synopsis "Toolkit for generation of output for the web") - (description "Genshi is a Python library that provides an integrated set -of components for parsing, generating, and processing HTML, XML or other -textual content for output generation on the web.") - (license license:bsd-3))) - -;; The linter here claims that patch file names should start with the package -;; name. But, in this case the patches are inherited from python-genshi with -;; the "python-genshi-" prefix instead of "python2-genshi-". -(define-public python2-genshi - (package-with-python2 python-genshi)) - (define-public python-relatorio (package (name "python-relatorio") @@ -16550,56 +14594,6 @@ requirements is not met.") (define-public python2-xenon (package-with-python2 python-xenon)) -(define-public python-flask-principal - (package - (name "python-flask-principal") - (version "0.4.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-Principal" version)) - (sha256 - (base32 - "0lwlr5smz8vfm5h9a9i7da3q1c24xqc6vm9jdywdpgxfbi5i7mpm")))) - (build-system python-build-system) - (propagated-inputs - `(("python-blinker" ,python-blinker))) - (native-inputs - `(("python-flask" ,python-flask) - ("python-nose" ,python-nose))) - (home-page "http://packages.python.org/Flask-Principal/") - (synopsis "Identity management for Flask") - (description "@code{flask_principal} is a identity management library for -Flask. It supports managing both authentication and authorization data in a -thread-local variable.") - (license license:expat))) - -(define-public python2-flask-principal - (package-with-python2 python-flask-principal)) - -(define-public python-flask-httpauth - (package - (name "python-flask-httpauth") - (version "3.2.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-HTTPAuth" version)) - (sha256 - (base32 - "13gff5w1mqpzm5nccyg02v3ifb9ifqh5k866cssjhghhg6msfjsz")))) - (build-system python-build-system) - (native-inputs - `(("python-flask" ,python-flask))) - (home-page "http://github.com/miguelgrinberg/flask-httpauth/") - (synopsis "Basic and Digest HTTP authentication for Flask routes") - (description "@code{flask_httpauth} provides Basic and Digest HTTP -authentication for Flask routes.") - (license license:expat))) - -(define-public python2-flask-httpauth - (package-with-python2 python-flask-httpauth)) - (define-public python-pysocks (package (name "python-pysocks") @@ -16644,27 +14638,6 @@ ECB and OFB).") (define-public python2-pyaes (package-with-python2 python-pyaes)) -(define-public python-uritemplate - (package - (name "python-uritemplate") - (version "3.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "uritemplate" version)) - (sha256 - (base32 - "0781gm9g34wa0asc19dx81ng0nqq07igzv3bbvdqmz13pv7469n0")))) - (build-system python-build-system) - (home-page "https://uritemplate.readthedocs.org") - (synopsis "Library to deal with URI Templates") - (description "@code{uritemplate} provides Python library to deal with URI -Templates.") - (license license:bsd-2))) - -(define-public python2-uritemplate - (package-with-python2 python-uritemplate)) - (define-public python-pydiff (package (name "python-pydiff") diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 2ccfc2cec4..88ba1c3d63 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -41,6 +41,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages tls) #:use-module (gnu packages xml)) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 98867fd391..34de680a7d 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -52,6 +52,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages texinfo) #:use-module (gnu packages base) #:use-module (srfi srfi-1)) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 85e7e8779e..9562bbfa8d 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -37,6 +37,7 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages autotools) #:use-module (gnu packages tls) diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm index c9e9e50f84..99245fa0b0 100644 --- a/gnu/packages/tryton.scm +++ b/gnu/packages/tryton.scm @@ -21,6 +21,7 @@ #:use-module (gnu packages) #:use-module (gnu packages gtk) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system python)) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 22c48f0c6b..20f20a4040 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -73,6 +73,7 @@ #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages readline) #:use-module (gnu packages databases) #:use-module (gnu packages admin) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 0369ac6134..385147c379 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages image) #:use-module (gnu packages tls) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index dc9849eafe..a78f5b6f0d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -92,6 +92,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt)