aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r--gnu/packages/python.scm1029
1 files changed, 891 insertions, 138 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 987e1238ff..2e485a9aff 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,7 +38,7 @@
#:use-module ((guix licenses)
#:select (asl2.0 bsd-4 bsd-3 bsd-2 non-copyleft cc0 x11 x11-style
gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ agpl3+
- isc mpl2.0 psfl public-domain unlicense x11-style
+ isc mpl2.0 psfl public-domain repoze unlicense x11-style
zpl2.1))
#:use-module ((guix licenses) #:select (expat zlib) #:prefix license:)
#:use-module (gnu packages)
@@ -320,8 +321,8 @@ data types.")
(lambda (old new)
(symlink (string-append python old)
(string-append bin "/" new)))
- `("python3", "pydoc3", "idle3")
- `("python", "pydoc", "idle"))))))
+ `("python3" ,"pydoc3" ,"idle3")
+ `("python" ,"pydoc" ,"idle"))))))
(synopsis "Wrapper for the Python 3 commands")
(description
"This package provides wrappers for the commands of Python@tie{}3.x such
@@ -966,14 +967,13 @@ datetime module, available in Python 2.3+.")
(define-public python-pandas
(package
(name "python-pandas")
- (version "0.16.0")
+ (version "0.16.2")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://pypi.python.org/packages/source/p/"
- "pandas/pandas-" version ".tar.gz"))
- (sha256
- (base32 "1wfrp8dx1zcsry6f09ndza6qm1yr7f163211f4l9vjlnhxpxw4s0"))))
+ (method url-fetch)
+ (uri (pypi-uri "pandas" version))
+ (sha256
+ (base32 "10agmrkps8bi5948vwpipfxds5kj1d076m9i0nhaxwqiw7gm6670"))))
(build-system python-build-system)
(arguments
`(;; Three tests fail:
@@ -1301,18 +1301,15 @@ bug tracker.")
(define-public python-enum34
(package
(name "python-enum34")
- (version "1.0")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
- (uri (string-append "https://pypi.python.org/packages/source/e/"
- "enum34/enum34-" version ".tar.gz"))
+ (uri (pypi-uri "enum34" version))
(sha256
(base32
- "0dg6mpg9n4g9diyrbnbb5vd9d1qw9f265zwhknqy0mxh0cvmjjrq"))))
+ "0yx1m4564wxgbm4glb3457hi16xihd9w63rv13y2przkdir9dfgp"))))
(build-system python-build-system)
- (inputs
- `(("python-setuptools" ,python-setuptools)))
(arguments
`(#:phases
(alist-replace
@@ -1326,6 +1323,9 @@ bug tracker.")
backported for previous versions of Python from 2.4 to 3.3.")
(license bsd-3)))
+(define-public python2-enum34
+ (package-with-python2 python-enum34))
+
(define-public python-parse-type
(package
(name "python-parse-type")
@@ -1342,8 +1342,7 @@ backported for previous versions of Python from 2.4 to 3.3.")
(inputs
`(("python-setuptools" ,python-setuptools)
("python-six" ,python-six)
- ("python-parse" ,python-parse)
- ("python-enum34" ,python-enum34))) ;required for python<3.4
+ ("python-parse" ,python-parse)))
(arguments '(#:tests? #f)) ;TODO: tests require pytest
(home-page "https://github.com/jenisys/parse_type")
(synopsis "Extended parse module")
@@ -1655,6 +1654,42 @@ supports coverage of subprocesses.")
(define-public python2-pytest-runner
(package-with-python2 python-pytest-runner))
+(define-public python-pytest-xdist
+ (package
+ (name "python-pytest-xdist")
+ (version "1.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-xdist" version ".zip"))
+ (sha256
+ (base32
+ "08rn2l39ds60xshs4js787l84pfckksqklfq2wq9x8ig2aci2pja"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("unzip" ,unzip)
+ ("python-setuptools" ,python-setuptools)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (propagated-inputs
+ `(("python-execnet" ,python-execnet)
+ ("python-pytest" ,python-pytest)
+ ("python-py" ,python-py)))
+ (home-page
+ "https://github.com/pytest-dev/pytest-xdist")
+ (synopsis
+ "Plugin for py.test with distributed testing and loop-on-failing modes")
+ (description
+ "The pytest-xdist plugin extends py.test with some unique test execution
+modes: parallelization, running tests in boxed subprocesses, the ability
+to run tests repeatedly when failed, and the ability to run tests on multiple
+Python interpreters or platforms. It uses rsync to copy the existing
+program code to a remote location, executes there, and then syncs the
+result back.")
+ (license license:expat)))
+
+(define-public python2-pytest-xdist
+ (package-with-python2 python-pytest-xdist))
+
(define-public python-scripttest
(package
(name "python-scripttest")
@@ -1993,7 +2028,6 @@ backported from Python 2.7 for Python 2.4+.")
(inputs
`(("python-setuptools" ,python-setuptools)
("python-six" ,python-six)
- ("python-enum43" ,python-enum34)
("python-parse" ,python-parse)
("python-parse-type" ,python-parse-type)))
(arguments `(#:tests? #f)) ;TODO: tests require nose>=1.3 and
@@ -2107,14 +2141,14 @@ with sensible defaults out of the box.")
(define-public python-wheel
(package
(name "python-wheel")
- (version "0.26.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "wheel" version))
(sha256
(base32
- "032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga"))))
+ "0j0n38hg1jvrmyy68f9ikvzq1gs9g0sx4ws7maf8wi3bwbbqmfqy"))))
(build-system python-build-system)
(native-inputs
`(("python-setuptools" ,python-setuptools)
@@ -2130,27 +2164,27 @@ packages will be properly installed with only the @code{Unpack} step and the
unpacked archive preserves enough information to @code{Spread} (copy data and
scripts to their final locations) at any later time. Wheel files can be
installed with a newer @code{pip} or with wheel's own command line utility.")
- (license license:expat)))
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-wheel))))))
(define-public python2-wheel
- (let ((wheel (package-with-python2 python-wheel)))
+ (let ((wheel (package-with-python2
+ (strip-python2-variant python-wheel))))
(package (inherit wheel)
- (native-inputs
- `(("python2-functools32" ,python2-functools32)
- ("python2-jsonschema" ,python2-jsonschema)
- ,@(alist-delete "python-jsonschema"
- (package-native-inputs wheel)))))))
+ (native-inputs `(("python2-functools32" ,python2-functools32)
+ ,@(package-native-inputs wheel))))))
+
(define-public python-requests
(package
(name "python-requests")
- (version "2.8.1")
+ (version "2.9.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "requests" version))
(sha256
(base32
- "0ny2nr1sqr4hcn3903ghmh7w2yni8shlfv240a8c9p6wyidqvzl4"))))
+ "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5"))))
(build-system python-build-system)
(native-inputs
`(("python-setuptools" ,python-setuptools)))
@@ -2179,12 +2213,7 @@ than Python’s urllib2 library.")
"0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"))))))
(define-public python2-requests
- (let ((requests (package-with-python2 python-requests)))
- (package (inherit requests)
- (propagated-inputs
- `(("python2-wheel" ,python2-wheel)
- ,@(alist-delete "python-wheel"
- (package-propagated-inputs requests)))))))
+ (package-with-python2 python-requests))
(define-public python-vcversioner
(package
@@ -2231,10 +2260,12 @@ version numbers.")
(synopsis "Implementation of JSON Schema for Python")
(description
"Jsonschema is an implementation of JSON Schema for Python.")
- (license license:expat)))
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-jsonschema))))))
(define-public python2-jsonschema
- (let ((jsonschema (package-with-python2 python-jsonschema)))
+ (let ((jsonschema (package-with-python2
+ (strip-python2-variant python-jsonschema))))
(package (inherit jsonschema)
(inputs
`(("python2-functools32" ,python2-functools32)
@@ -2305,7 +2336,7 @@ somewhat intelligeble.")
(build-system python-build-system)
(native-inputs
`(("python-setuptools" ,python-setuptools)
- ("python-coverage", python-coverage)
+ ("python-coverage" ,python-coverage)
("python-nose" ,python-nose)
("python-mock" ,python-mock)))
(inputs
@@ -2945,7 +2976,7 @@ writing C extensions for Python as easy as Python itself.")
(define python-numpy-bootstrap
(package
(name "python-numpy-bootstrap")
- (version "1.9.1")
+ (version "1.10.4")
(source
(origin
(method url-fetch)
@@ -2953,7 +2984,7 @@ writing C extensions for Python as easy as Python itself.")
"/numpy-" version ".tar.gz"))
(sha256
(base32
- "070ybfvpgfmiz2hs94x445hvkh9dh52nyi0m8jp5kdihgvhbnx80"))))
+ "1bjjhvncraka5s6i4lg644jrxij6bvycxy7an20gcz3a0m11iygp"))))
(build-system python-build-system)
(inputs
`(("python-nose" ,python-nose)
@@ -3014,16 +3045,14 @@ capabilities.")
(define-public python2-fastlmm
(package
(name "python2-fastlmm")
- (version "0.2.14")
+ (version "0.2.21")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/f/fastlmm"
- "/fastlmm-" version ".zip"))
+ (uri (pypi-uri "fastlmm" version ".zip"))
(sha256
(base32
- "023sydkrc3yxad2bycar02jfswwlh4199kafzhf2bssyx2c3xa0l"))))
+ "1q8c34rpmwkfy3r4d5172pzdkpfryj561897z9r3x22gq7813x1m"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2)) ; only Python 2.7 is supported
@@ -3371,16 +3400,14 @@ toolkits.")
(define-public python2-pysnptools
(package
(name "python2-pysnptools")
- (version "0.2.13")
+ (version "0.3.5")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/p/pysnptools"
- "/pysnptools-" version ".zip"))
+ (uri (pypi-uri "pysnptools" version ".zip"))
(sha256
(base32
- "1rzf5qvwfvd2pp84b14pb2gdvxdk5avnj7rb41ac8gndpkr9g6ib"))))
+ "15f4j4w5q603i7mlphb5r6mb1mn33pqg81595fpjp158140yqx7b"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2)) ; only Python 2.7 is supported
@@ -3538,7 +3565,7 @@ routines such as routines for numerical integration and optimization.")
(define-public python-sqlalchemy
(package
(name "python-sqlalchemy")
- (version "0.9.7")
+ (version "1.0.12")
(source
(origin
(method url-fetch)
@@ -3546,7 +3573,7 @@ routines such as routines for numerical integration and optimization.")
"SQLAlchemy/SQLAlchemy-" version ".tar.gz"))
(sha256
(base32
- "059ayifj5l08v6vv56anhyibyllscn10dlzr2fcw68gz1hfjdzsz"))))
+ "1l8qclhd0s90w3pvwhi5mjxdwr5j7gw7cjka2fx6f2vqmq7f4yb6"))))
(build-system python-build-system)
(native-inputs
`(("python-cython" ,python-cython) ;for c extensions
@@ -3570,6 +3597,42 @@ simple and Pythonic domain language.")
(define-public python2-sqlalchemy
(package-with-python2 python-sqlalchemy))
+(define-public python-alembic
+ (package
+ (name "python-alembic")
+ (version "0.8.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "alembic" version))
+ (sha256
+ (base32
+ "0jk23a852l3ybv7gfz81xzslyrnqnpjds5x15zd234y9rh9gq1w5"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-pytest-cov" ,python-pytest-cov)))
+ (propagated-inputs
+ `(("python-sqlalchemy" ,python-sqlalchemy)
+ ("python-mako" ,python-mako)
+ ("python-editor" ,python-editor)))
+ (home-page "http://bitbucket.org/zzzeek/alembic")
+ (synopsis
+ "Database migration tool for SQLAlchemy")
+ (description
+ "Alembic is a lightweight database migration tool for usage with the
+SQLAlchemy Database Toolkit for Python.")
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-alembic))))))
+
+(define-public python2-alembic
+ (let ((alembic (package-with-python2
+ (strip-python2-variant python-alembic))))
+ (package
+ (inherit alembic)
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)
+ ,@(package-native-inputs alembic))))))
+
(define-public python-distutils-extra
(package
(name "python-distutils-extra")
@@ -3888,18 +3951,18 @@ PNG, PostScript, PDF, and SVG file output.")
(define-public python-decorator
(package
(name "python-decorator")
- (version "4.0.6")
+ (version "4.0.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "decorator" version))
(sha256
- (base32 "1710cwsbwr8fkiq59w2min7rwgdz7ly51yz8l8yh1zbpfxcm8qhw"))))
+ (base32 "1a5vwhflfd9sh3rfb40xlyipldgdzfff6brman57hqv3661jw0lh"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; no test target
(native-inputs
`(("python-setuptools" ,python-setuptools)))
- (home-page "http://pypi.python.org/pypi/decorator/")
+ (home-page "https://pypi.python.org/pypi/decorator/")
(synopsis "Python module to simplify usage of decorators")
(description
"The aim of the decorator module is to simplify the usage of decorators
@@ -4141,15 +4204,14 @@ standard library.")
(define-public python-traitlets
(package
(name "python-traitlets")
- (version "4.0.0")
+ (version "4.1.0")
(source
(origin
(method url-fetch)
- (uri (string-append "https://pypi.python.org/packages/source/t/"
- "traitlets/traitlets-" version ".tar.gz"))
+ (uri (pypi-uri "traitlets" version))
(sha256
(base32
- "0fr3w2xwb46c591dp7zw02bgf4d21mjy9g6rhwc9bwd4ji50n50b"))))
+ "0nxgj8jxlm1kqf8cx2x7vjid05zdgbxpqhjbdl46r8njlpgkh3j4"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -4159,7 +4221,8 @@ standard library.")
`(("python-ipython-genutils" ,python-ipython-genutils)
("python-decorator" ,python-decorator)))
(native-inputs
- `(("python-nose" ,python-nose)))
+ `(("python-mock" ,python-mock)
+ ("python-nose" ,python-nose)))
(home-page "http://ipython.org")
(synopsis "Configuration system for Python applications")
(description
@@ -4294,17 +4357,14 @@ computing.")
(define-public python-isodate
(package
(name "python-isodate")
- (version "0.5.1")
+ (version "0.5.4")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/i/isodate/isodate-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "isodate" version))
(sha256
(base32
- "1yqjn0is0p64cmk9xhq4hc6q06jk86d60kg2jws58d78q0qysami"))))
+ "0cafaiwixgpxwh9dsd28qb0dbzsj6xpxjdkyk30ns91ps10mq422"))))
(build-system python-build-system)
(inputs
`(("python-setuptools" ,python-setuptools)))
@@ -4323,17 +4383,14 @@ ISO 8601 dates, time and duration.")
(define-public python-html5lib
(package
(name "python-html5lib")
- (version "1.0b3")
+ (version "1.0b8")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/h/html5lib/html5lib-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "html5lib" version))
(sha256
(base32
- "1l5i6xzckzx4hnh9qzv9q3kyhkgjx2hsi2k9srgci3qizjmvp6ln"))))
+ "1lknq5j3nh11xrl268ks76zaj0gyzh34v94n5vbf6dk8llzxdx0q"))))
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six))) ; required to "import html5lib"
@@ -4395,7 +4452,7 @@ features useful for text console applications.")
(origin
(method url-fetch)
(uri (string-append
- "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-"
+ "https://dbus.freedesktop.org/releases/dbus-python/dbus-python-"
version ".tar.gz"))
(sha256
(base32 "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71"))))
@@ -4471,17 +4528,14 @@ translate the complete SQLite API into Python.")
(define-public python-lxml
(package
(name "python-lxml")
- (version "3.4.2")
+ (version "3.5.0")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/l/lxml/lxml-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "lxml" version))
(sha256
(base32
- "0pd23qz8vms1mgm41p96h4vac5y91igs4wr9640gnvxgk019kmf7"))))
+ "0y7m2s8ci6q642zl85y5axkj8z827l0vhjl532acb75hlkir77rl"))))
(build-system python-build-system)
(inputs
`(("libxml2" ,libxml2)
@@ -4498,6 +4552,39 @@ libxml2 and libxslt.")
(define-public python2-lxml
(package-with-python2 python-lxml))
+;; beautifulsoup4 has a totally different namespace than 3.x,
+;; and pypi seems to put it under its own name, so I guess we should too
+(define-public python-beautifulsoup4
+ (package
+ (name "python-beautifulsoup4")
+ (version "4.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "beautifulsoup4" version))
+ (sha256
+ (base32
+ "1d36lc4pfkvl74fmzdib2nqnvknm0jddgf2n9yd7im150qyh3m47"))))
+ (build-system python-build-system)
+ (home-page
+ "http://www.crummy.com/software/BeautifulSoup/bs4/")
+ (synopsis
+ "Python screen-scraping library")
+ (description
+ "Beautiful Soup is a Python library designed for rapidly setting up
+screen-scraping projects. It offers Pythonic idioms for navigating,
+searching, and modifying a parse tree, providing a toolkit for
+dissecting a document and extracting what you need. It automatically
+converts incoming documents to Unicode and outgoing documents to UTF-8.")
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-beautifulsoup4))))))
+
+(define-public python2-beautifulsoup4
+ (package
+ (inherit (package-with-python2
+ (strip-python2-variant python-beautifulsoup4)))
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+
(define-public python2-pil
(package
(name "python2-pil")
@@ -4658,15 +4745,13 @@ interfaces in an easy and portable manner.")
(define-public python-networkx
(package
(name "python-networkx")
- (version "1.9.1")
+ (version "1.11")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/n/networkx/networkx-"
- version ".tar.gz"))
+ (uri (pypi-uri "networkx" version))
(sha256
- (base32 "0n8wy0yq1kmdq4wh68mlhwhkndvwzx48lg41a1z0sxxms0wfp033"))))
+ (base32 "1f74s56xb4ggixiq0vxyfxsfk8p20c7a099lpcf60izv1php03hd"))))
(build-system python-build-system)
;; python-decorator is needed at runtime
(propagated-inputs
@@ -4965,17 +5050,14 @@ applications.")
(define-public python-pep8
(package
(name "python-pep8")
- (version "1.6.2")
+ (version "1.7.0")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/p/pep8/pep8-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "pep8" version))
(sha256
(base32
- "1zybkcdw1sx84dvkfss96nhykqg9bc0cdpwpl4k9wlxm61bf7dxq"))))
+ "002rkl4lsn6x2mxmf8ar00l0m8i3mzrc6pnzz77blyksmpsxa4x1"))))
(build-system python-build-system)
(inputs
`(("python-setuptools" ,python-setuptools)))
@@ -5016,20 +5098,19 @@ PEP 8.")
(define-public python-mccabe
(package
(name "python-mccabe")
- (version "0.3.1")
+ (version "0.4.0")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/m/mccabe/mccabe-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "mccabe" version))
(sha256
(base32
- "05ix3vdv5hjk4irl97n2n3c4g1vqvz7dbmkzs13f3bx97bxsczjz"))))
+ "0yr08a36h8lqlif10l4xcikbbig7q8f41gqywir7rrvnv3mi4aws"))))
(build-system python-build-system)
(inputs
- `(("python-setuptools" ,python-setuptools)))
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)
+ ("python-setuptools" ,python-setuptools)))
(home-page "https://github.com/flintwork/mccabe")
(synopsis "McCabe checker, plugin for flake8")
(description
@@ -5049,7 +5130,8 @@ complexity of Python source code.")
(uri (pypi-uri "mccabe" version))
(sha256
(base32
- "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs"))))))
+ "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs"))))
+ (inputs `(("python-setuptools" ,python-setuptools)))))
(define-public python2-mccabe-0.2.1
(package-with-python2 python-mccabe-0.2.1))
@@ -5095,19 +5177,19 @@ complexity of Python source code.")
(define-public python-flake8
(package
(name "python-flake8")
- (version "2.5.1")
+ (version "2.5.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "flake8" version))
(sha256
(base32
- "00sn2g5ydriv5anbipcrprpv797kh4q8rfa75w3fc7v7n14fv2j4"))))
+ "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc"))))
(build-system python-build-system)
(inputs
`(("python-setuptools" ,python-setuptools)
- ("python-pep8" ,python-pep8-1.5.7)
- ("python-pyflakes" ,python-pyflakes-0.8.1)
+ ("python-pep8" ,python-pep8)
+ ("python-pyflakes" ,python-pyflakes)
("python-mccabe" ,python-mccabe)
("python-mock" ,python-mock)
("python-nose" ,python-nose)))
@@ -5314,7 +5396,7 @@ from an XML-based format.")
(define-public python-ly
(package
(name "python-ly")
- (version "0.9.2")
+ (version "0.9.3")
(source
(origin
(method url-fetch)
@@ -5323,7 +5405,7 @@ from an XML-based format.")
version ".tar.gz"))
(sha256
(base32
- "1bsjg4q9ihr8bfdclrcmb8yjcg8xm9dznh58f3zsyrkrjzwbhcd2"))))
+ "1y6ananq8fia4y4m5id6gvsrm68bzpzd1y46pfzvawic0wjg2l0l"))))
(build-system python-build-system)
(native-inputs
`(("python-setuptools" ,python-setuptools)))
@@ -5790,7 +5872,6 @@ responses, rather than doing any computation.")
`(("python-cffi" ,python-cffi)
("python-six" ,python-six)
("python-pyasn1" ,python-pyasn1)
- ("python-enum34" ,python-enum34)
("python-idna" ,python-idna)
("python-iso8601" ,python-iso8601)))
(native-inputs
@@ -5810,15 +5891,18 @@ library” for Python. The package includes both high level recipes, and low
level interfaces to common cryptographic algorithms such as symmetric ciphers,
message digests and key derivation functions.")
;; Distributed under either BSD-3 or ASL2.0
- (license (list bsd-3 asl2.0))))
+ (license (list bsd-3 asl2.0))
+ (properties `((python2-variant . ,(delay python2-cryptography))))))
(define-public python2-cryptography
- (let ((crypto (package-with-python2 python-cryptography)))
+ (let ((crypto (package-with-python2
+ (strip-python2-variant python-cryptography))))
(package (inherit crypto)
(propagated-inputs
`(("python2-ipaddress" ,python2-ipaddress)
("python2-backport-ssl-match-hostname"
,python2-backport-ssl-match-hostname)
+ ("python2-enum34" ,python2-enum34)
,@(package-propagated-inputs crypto))))))
(define-public python-pyopenssl
@@ -5870,12 +5954,7 @@ library.")
(license asl2.0)))
(define-public python2-pyopenssl
- (let ((pyopenssl (package-with-python2 python-pyopenssl)))
- (package (inherit pyopenssl)
- (propagated-inputs
- `(("python2-cryptography" ,python2-cryptography)
- ,@(alist-delete "python-cryptography"
- (package-propagated-inputs pyopenssl)))))))
+ (package-with-python2 python-pyopenssl))
(define-public python-pip
(package
@@ -6663,7 +6742,7 @@ of the SSL peer.")
(replace 'check
(lambda _ (zero?
(system*
- "python" "test_contextlib2.py", "-v")))))))
+ "python" "test_contextlib2.py" "-v")))))))
(home-page "http://contextlib2.readthedocs.org/")
(synopsis "Tools for decorators and context managers")
(description "This module is primarily a backport of the Python
@@ -6728,13 +6807,13 @@ WebSocket usage in Python programs.")
(define-public python-atomicwrites
(package
(name "python-atomicwrites")
- (version "0.1.8")
+ (version "0.1.9")
(source (origin
(method url-fetch)
(uri (pypi-uri "atomicwrites" version))
(sha256
(base32
- "13nwk0gw0yb61pnf5vxs3fvhav6q3zrf08x9ggc93bnk5fsssx1j"))))
+ "08s05h211r07vs66r4din3swrbzb344vli041fihpg34q3lcxpvw"))))
(build-system python-build-system)
(synopsis "Atomic file writes in Python")
(description "Library for atomic file writes using platform dependent tools
@@ -6745,13 +6824,13 @@ for atomic filesystem operations.")
(define-public python-requests-toolbelt
(package
(name "python-requests-toolbelt")
- (version "0.5.0")
+ (version "0.6.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "requests-toolbelt" version))
(sha256
(base32
- "1kbms1s52dhb98vbpaprr15b0ijdbqp500lpfsyjccpd8cjkyngk"))))
+ "07slish560haspn0hpwgy2izhk2snqq06s6acp8xzmhhz079qknc"))))
(build-system python-build-system)
(propagated-inputs
`(("python-requests" ,python-requests)))
@@ -6783,13 +6862,13 @@ applications.")
(define-public python-click-log
(package
(name "python-click-log")
- (version "0.1.1")
+ (version "0.1.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "click-log" version))
(sha256
(base32
- "1z3jdwjmwax159zrnyx830xa968rfqrpkm04ad5xqyh0269ydiqb"))))
+ "0kdd1vminxpcfczxl2kkf285n0dr1gxh2cdbx1p6vkj7b7bci3gx"))))
(build-system python-build-system)
(propagated-inputs
`(("python-click" ,python-click)))
@@ -6810,8 +6889,6 @@ applications.")
(base32
"1iks5701qnp3dlr3q1d9qm68y2plp2m029irhpz92a44psfkjf1f"))))
(build-system python-build-system)
- (native-inputs
- `(("unzip" ,unzip)))
(propagated-inputs
`(("python-pytest" ,python-pytest)))
(synopsis "Namespace control and lazy-import mechanism")
@@ -6819,7 +6896,15 @@ applications.")
package and greatly reduce the number of imports for your users. It is a small
pure Python module that works on virtually all Python versions.")
(home-page "https://bitbucket.org/hpk42/apipkg")
- (license license:expat)))
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-apipkg))))))
+
+(define-public python2-apipkg
+ (package
+ (inherit (package-with-python2
+ (strip-python2-variant python-apipkg)))
+ (native-inputs
+ `(("python2-setuptools" ,python2-setuptools)))))
(define-public python-execnet
(package
@@ -6847,7 +6932,17 @@ minimal and fast API targetting the following uses:
@item write scripts to administer multiple environments
@end enumerate")
(home-page "http://codespeak.net/execnet/")
- (license license:expat)))
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-execnet))))))
+
+(define-public python2-execnet
+ (let ((execnet (package-with-python2
+ (strip-python2-variant python-execnet))))
+ (package
+ (inherit execnet)
+ (native-inputs
+ `(("python2-setuptools" ,python2-setuptools)
+ ,@(package-native-inputs execnet))))))
;;; The software provided by this package was integrated into pytest 2.8.
(define-public python-pytest-cache
@@ -6872,13 +6967,13 @@ the last py.test invocation.")
(define-public python-pytest-localserver
(package
(name "python-pytest-localserver")
- (version "0.3.4")
+ (version "0.3.5")
(source (origin
(method url-fetch)
- (uri (pypi-uri "pytest-localserver" version ".zip"))
+ (uri (pypi-uri "pytest-localserver" version))
(sha256
(base32
- "050q505a7gnsz7vqidw0w5dvxjb2flzi7z734agpjzmsl85c2bcx"))))
+ "0dvqspjr6va55zwmnnc2mmpqc7mm65kxig9ya44x1z8aadzxpa4p"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -6902,16 +6997,17 @@ framework which enables you to test server connections locally.")
(define-public python-wsgi-intercept
(package
(name "python-wsgi-intercept")
- (version "0.10.3")
+ (version "1.1.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "wsgi_intercept" version))
(sha256
(base32
- "0xyfchacywb1mql84270mcidsqc5ssyspd18yacjk82x2xc68h0r"))))
+ "14ajy415ch5d0dnspg4b592p66wlgzah7ay218flp13517fp49zl"))))
(build-system python-build-system)
(native-inputs
- `(("python-pytest" ,python-pytest)))
+ `(("python-pytest" ,python-pytest)
+ ("python-six" ,python-six)))
(propagated-inputs
`(("python-httplib2" ,python-httplib2)
("python-requests" ,python-requests)))
@@ -7140,7 +7236,7 @@ authenticated session objects providing things like keep-alive.")
(package (inherit rauth)
(propagated-inputs `(("python2-requests" ,python2-requests)))
(native-inputs
- `(("python2-unittest2", python2-unittest2)
+ `(("python2-unittest2" ,python2-unittest2)
,@(package-native-inputs rauth))))))
(define-public python2-functools32
@@ -7424,17 +7520,14 @@ Amazon Web Services (AWS) API.")
(define-public python-hypothesis
(package
(name "python-hypothesis")
- (version "2.0.0")
+ (version "3.0.4")
(source (origin
(method url-fetch)
(uri (pypi-uri "hypothesis" version))
(sha256
(base32
- "1la6mfpvcn640gs2v35iv8b4sh6xdhp9j5ghay0jd86c9n4fkgxr"))))
+ "0bh6pqyc56cqlbpg0ffzjs6466blyylix4nsw11qrqwf01cg9gdq"))))
(build-system python-build-system)
- (native-inputs
- `(;; setuptools required for python-2 variant
- ("python-setuptools" ,python-setuptools)))
(propagated-inputs
`(("python-flake8" ,python-flake8)
("python-pytest" ,python-pytest)))
@@ -7444,10 +7537,16 @@ much larger range of examples than you would ever want to write by hand. It’s
based on the Haskell library, Quickcheck, and is designed to integrate
seamlessly into your existing Python unit testing work flow.")
(home-page "https://github.com/DRMacIver/hypothesis")
- (license mpl2.0)))
+ (license mpl2.0)
+ (properties `((python2-variant . ,(delay python2-hypothesis))))))
(define-public python2-hypothesis
- (package-with-python2 python-hypothesis))
+ (let ((hypothesis (package-with-python2
+ (strip-python2-variant python-hypothesis))))
+ (package (inherit hypothesis)
+ (native-inputs
+ `(("python2-enum34" ,python2-enum34)
+ ("python2-setuptools" ,python2-setuptools))))))
(define-public python-pytest-subtesthack
(package
@@ -7503,3 +7602,657 @@ input. (Note that this is mostly a legacy library; you may wish to look at
python-xdo for newer bindings.)")
(license bsd-3)))
+(define-public python-wtforms
+ (package
+ (name "python-wtforms")
+ (version "2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "WTForms" version ".zip"))
+ (sha256
+ (base32
+ "0vyl26y9cg409cfyj8rhqxazsdnd0jipgjw06civhrd53yyi1pzz"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "http://wtforms.simplecodes.com/")
+ (synopsis
+ "Form validation and rendering library for Python web development")
+ (description
+ "WTForms is a flexible forms validation and rendering library
+for Python web development. It is very similar to the web form API
+available in Django, but is a standalone package.")
+ (license bsd-3)
+ (properties `((python2-variant . ,(delay python2-wtforms))))))
+
+(define-public python2-wtforms
+ (package
+ (inherit (package-with-python2
+ (strip-python2-variant python-wtforms)))
+ (inputs `(("python2-setuptools" ,python2-setuptools)))))
+
+(define-public python-mako
+ (package
+ (name "python-mako")
+ (version "1.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Mako" version))
+ (sha256
+ (base32
+ "136kcjbs0s98qkx8a418b05dfblqp0kiiqyx8vhx4rarwc7bqi3n"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-markupsafe" ,python-markupsafe)
+ ("python-mock" ,python-mock)
+ ("python-nose" ,python-nose)))
+ (home-page "http://www.makotemplates.org/")
+ (synopsis "Templating language for Python")
+ (description "Mako is a templating language for Python that compiles
+templates into Python modules.")
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-mako))))))
+
+(define-public python2-mako
+ (let ((base (package-with-python2
+ (strip-python2-variant python-mako))))
+ (package
+ (inherit base)
+ (native-inputs
+ (cons `("python2-setuptools" ,python2-setuptools)
+ (package-native-inputs base))))))
+
+(define-public python-waitress
+ (package
+ (name "python-waitress")
+ (version "0.8.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "waitress" version))
+ (sha256
+ (base32
+ "017n9ra6vvmq9d5sfhdzyzr1mg15x2hj2dhm4pdlw98c1ypw2h3w"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/Pylons/waitress")
+ (synopsis "Waitress WSGI server")
+ (description "Waitress is meant to be a production-quality pure-Python WSGI
+server with very acceptable performance.")
+ (license zpl2.1)
+ (properties `((python2-variant . ,(delay python2-waitress))))))
+
+(define-public python2-waitress
+ (package
+ (inherit (package-with-python2
+ (strip-python2-variant python-waitress)))
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+
+(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)
+ (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)
+ (properties `((python2-variant . ,(delay python2-wsgiproxy2))))))
+
+(define-public python2-wsgiproxy2
+ (let ((wsgiproxy2 (package-with-python2
+ (strip-python2-variant python-wsgiproxy2))))
+ (package
+ (inherit wsgiproxy2)
+ (inputs `(("python2-setuptools" ,python2-setuptools)
+ ,@(package-inputs 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)))
+ (propagated-inputs
+ ;; This package uses pkg_resources, part of setuptools, during runtime,
+ ;; hence why not a native-input.
+ `(("python-setuptools" ,python-setuptools)))
+ (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")
+ (version "2.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Paste" version))
+ (sha256
+ (base32
+ "16dsv9qi0r4qsrsb6dilpq2rx0fnglvh36flzywcdnm2jg43mb5d"))
+ (patches (list (search-patch
+ "python-paste-remove-website-test.patch")
+ (search-patch
+ "python-paste-remove-timing-test.patch")))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (propagated-inputs
+ `(;; Uses pkg_resources provided by setuptools internally.
+ ("python-setuptools" ,python-setuptools)
+ ("python-six" ,python-six)))
+ (arguments
+ '(;; Tests don't pass on Python 3, but work fine on Python 2.
+ ;; (As of 2.0.2, Python 3 support in Paste is presently a bit broken,
+ ;; but is usable enough for the minimal amount it's used in MediaGoblin
+ ;; still... things should be better by the next Paste release.)
+ #:tests? #f))
+ (home-page "http://pythonpaste.org")
+ (synopsis
+ "Python web development tools, focusing on WSGI")
+ (description
+ "Paste provides a variety of web development tools and middleware which
+can be nested together to build web applications. Paste's design closely
+follows ideas flowing from WSGI (Web Standard Gateway Interface).")
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-paste))))))
+
+(define-public python2-paste
+ (let ((paste (package-with-python2
+ (strip-python2-variant python-paste))))
+ (package
+ (inherit paste)
+ (arguments
+ ;; Tests are back for Python 2!
+ `(#:tests? #t
+ ,@(package-arguments paste))))))
+
+(define-public python-pastescript
+ (package
+ (name "python-pastescript")
+ (version "2.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PasteScript" version))
+ (sha256
+ (base32
+ "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (propagated-inputs
+ `(;; Uses pkg_resources provided by setuptools internally.
+ ("python-setuptools" ,python-setuptools)
+ ("python-paste" ,python-paste)
+ ("python-pastedeploy" ,python-pastedeploy)))
+ (home-page "http://pythonpaste.org/script/")
+ (arguments
+ '(;; Unfortunately, this requires the latest unittest2,
+ ;; but that requires traceback2 which requires linecache2 which requires
+ ;; unittest2. So we're skipping tests for now.
+ ;; (Note: Apparently linetest2 only needs unittest2 for its tests,
+ ;; so in theory we could get around this situation somehow.)
+ #:tests? #f))
+ (synopsis
+ "Pluggable command line tool for serving web applications and more")
+ (description
+ "PasteScript is a plugin-friendly command line tool which provides a
+variety of features, from launching web applications to bootstrapping project
+layouts.")
+ (license license:expat)))
+
+(define-public python2-pastescript
+ (package-with-python2 python-pastescript))
+
+(define-public python-pyquery
+ (package
+ (name "python-pyquery")
+ (version "1.2.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyquery" version))
+ (sha256
+ (base32
+ "1ikz1387nsp0pp7mzzr6ip9n5gr67acpap24yn33987v7fkjp0sa"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-lxml" ,python-lxml)
+ ("python-cssselect" ,python-cssselect)))
+ (home-page "https://github.com/gawel/pyquery")
+ (synopsis "Make jQuery-like queries on xml documents")
+ (description "pyquery allows you to make jQuery queries on xml documents.
+The API is as much as possible the similar to jQuery. pyquery uses lxml for
+fast xml and html manipulation.")
+ (license bsd-3)
+ (properties `((python2-variant . ,(delay python2-pyquery))))))
+
+(define-public python2-pyquery
+ (let ((pyquery (package-with-python2
+ (strip-python2-variant python-pyquery))))
+ (package
+ (inherit pyquery)
+ (native-inputs `(("python2-setuptools" ,python2-setuptools))))))
+
+(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)
+ (properties `((python2-variant . ,(delay python2-webtest))))))
+
+(define-public python2-webtest
+ (let ((webtest (package-with-python2
+ (strip-python2-variant python-webtest))))
+ (package
+ (inherit webtest)
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)
+ ,@(package-native-inputs webtest))))))
+
+(define-public python-anyjson
+ (package
+ (name "python-anyjson")
+ (version "0.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "anyjson" version))
+ (sha256
+ (base32
+ "1fjph4alvcscsl5d4b6qpv1yh31jy05jxi1l0xff7lws7j32v09p"))))
+ (build-system python-build-system)
+ (arguments
+ `(;; We could possibly get tests working, but on Python 3 it's not so easy.
+ ;; Very strangely, 2to3 is run *during setup.py install* (or bdist, or
+ ;; whatever) so this transformation needs to be done before the tests
+ ;; can be run. Maybe we could add a build step to transform beforehand
+ ;; but it could be annoying/difficult.
+ ;; We can enable tests for the Python 2 version, though, and do below.
+ #:tests? #f))
+ (home-page "http://bitbucket.org/runeh/anyjson/")
+ (synopsis
+ "Wraps best available JSON implementation in a common interface")
+ (description
+ "Anyjson loads whichever is the fastest JSON module installed
+and provides a uniform API regardless of which JSON implementation is used.")
+ (license bsd-3)
+ (properties `((python2-variant . ,(delay python2-anyjson))))))
+
+(define-public python2-anyjson
+ (let ((anyjson (package-with-python2
+ (strip-python2-variant python-anyjson))))
+ (package
+ (inherit anyjson)
+ (arguments `(;; Unlike the python 3 variant, we do run tests. See above!
+ #:tests? #t
+ ,@(package-arguments anyjson)))
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)
+ ("python2-nose" ,python2-nose))))))
+
+(define-public python-amqp
+ (package
+ (name "python-amqp")
+ (version "1.4.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "amqp" version))
+ (sha256
+ (base32
+ "06n6q0kxhjnbfz3vn8x9yz09lwmn1xi9d6wxp31h5jbks0b4vsid"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)
+ ("python-mock" ,python-mock)))
+ (home-page "http://github.com/celery/py-amqp")
+ (synopsis
+ "Low-level AMQP client for Python (fork of amqplib)")
+ (description
+ "This is a fork of amqplib which was originally written by Barry Pederson.
+It is maintained by the Celery project, and used by kombu as a pure python
+alternative when librabbitmq is not available.")
+ (license lgpl2.1+)
+ (properties `((python2-variant . ,(delay python2-amqp))))))
+
+(define-public python2-amqp
+ (let ((amqp (package-with-python2
+ (strip-python2-variant python-amqp))))
+ (package
+ (inherit amqp)
+ (arguments `(;; Tries to run coverage tests with nose-cover3, which seems
+ ;; unmaintained. Weirdly, does not do this on the python 3
+ ;; version?
+ #:tests? #f
+ ,@(package-arguments amqp)))
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)
+ ,@(package-native-inputs amqp))))))
+
+(define-public python-kombu
+ (package
+ (name "python-kombu")
+ (version "3.0.33")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "kombu" version))
+ (sha256
+ (base32
+ "16brjx2lgwbj2a37d0pjbfb84nvld6irghmqrs3qfncajp51hgc5"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-nose" ,python-nose)))
+ (propagated-inputs
+ `(("python-anyjson" ,python-anyjson)
+ ("python-amqp" ,python-amqp)))
+ (home-page "http://kombu.readthedocs.org")
+ (synopsis "Message passing library for Python")
+ (description "The aim of Kombu is to make messaging in Python as easy as
+possible by providing an idiomatic high-level interface for the AMQ protocol,
+and also provide proven and tested solutions to common messaging problems.
+AMQP is the Advanced Message Queuing Protocol, an open standard protocol for
+message orientation, queuing, routing, reliability and security, for which the
+RabbitMQ messaging server is the most popular implementation.")
+ (license bsd-3)
+ (properties `((python2-variant . ,(delay python2-kombu))))))
+
+(define-public python2-kombu
+ (let ((kombu (package-with-python2
+ (strip-python2-variant python-kombu))))
+ (package
+ (inherit kombu)
+ (inputs `(("python2-setuptools" ,python2-setuptools)
+ ("python2-unittest2" ,python2-unittest2)
+ ,@(package-inputs kombu))))))
+
+(define-public python-billiard
+ (package
+ (name "python-billiard")
+ (version "3.3.0.22")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "billiard" version))
+ (sha256
+ (base32
+ "0zp7h6a58alrb3mwdw61jds07395j4j0mj6iqsb8czrihw9ih5nj"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "http://github.com/celery/billiard")
+ (synopsis
+ "Python multiprocessing fork with improvements and bugfixes")
+ (description
+ "Billiard is a fork of the Python 2.7 multiprocessing package. The
+multiprocessing package itself is a renamed and updated version of R Oudkerk's
+pyprocessing package. This standalone variant is intended to be compatible with
+Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.")
+ (license bsd-3)
+ (properties `((python2-variant . ,(delay python2-billiard))))))
+
+(define-public python2-billiard
+ (let ((billiard (package-with-python2
+ (strip-python2-variant python-billiard))))
+ (package
+ (inherit billiard)
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)
+ ("python2-unittest2" ,python2-unittest2)
+ ("python2-mock" ,python2-mock)
+ ,@(package-native-inputs billiard))))))
+
+(define-public python-celery
+ (package
+ (name "python-celery")
+ (version "3.1.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "celery" version))
+ (sha256
+ (base32
+ "1md6ywg1s0946qyp8ndnsd677wm0yax933h2sb4m3a4j7lf1jbyh"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (propagated-inputs
+ `(("python-pytz" ,python-pytz)
+ ("python-billiard" ,python-billiard)
+ ("python-kombu" ,python-kombu)))
+ (home-page "http://celeryproject.org")
+ (synopsis "Distributed Task Queue")
+ (description "Celery is an asynchronous task queue/job queue based on
+distributed message passing. It is focused on real-time operation, but
+supports scheduling as well. The execution units, called tasks, are executed
+concurrently on a single or more worker servers using multiprocessing,
+Eventlet, or gevent. Tasks can execute asynchronously (in the background) or
+synchronously (wait until ready).")
+ (license bsd-3)
+ (properties `((python2-variant . ,(delay python2-celery))))))
+
+(define-public python2-celery
+ (let ((celery (package-with-python2
+ (strip-python2-variant python-celery))))
+ (package
+ (inherit celery)
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)
+ ("python2-unittest2" ,python2-unittest2)
+ ("python2-mock" ,python2-mock)
+ ,@(package-native-inputs celery))))))
+
+(define-public python-translitcodec
+ (package
+ (name "python-translitcodec")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "translitcodec" version))
+ (sha256
+ (base32
+ "10x6pvblkzky1zhjs8nmx64nb9jdzxad4bxhq4iwv0j4z2aqjnki"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; no tests provided
+ (home-page
+ "https://github.com/claudep/translitcodec")
+ (synopsis
+ "Unicode to 8-bit charset transliteration codec")
+ (description
+ "This package contains codecs for transliterating ISO 10646 texts into
+best-effort representations using smaller coded character sets (ASCII,
+ISO 8859, etc.).")
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-translitcodec))))))
+
+(define-public python2-translitcodec
+ (package
+ (inherit (package-with-python2
+ (strip-python2-variant python-translitcodec)))
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+
+(define-public python-editor
+ (package
+ (name "python-editor")
+ (version "0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-editor" version))
+ (sha256
+ (base32
+ "1ypnpgvzpkbwsg4rdvy4sy51j28b5xq9v8pnkwxncn07vqz06p7n"))))
+ (build-system python-build-system)
+ (home-page
+ "https://github.com/fmoo/python-editor")
+ (synopsis
+ "Programmatically open an editor, capture the result")
+ (description
+ "python-editor is a library that provides the editor module for
+programmatically interfacing with your system's $EDITOR.")
+ (license asl2.0)
+ (properties `((python2-variant . ,(delay python2-editor))))))
+
+(define-public python2-editor
+ (package
+ (inherit (package-with-python2
+ (strip-python2-variant python-editor)))
+ (inputs `(("python2-setuptools" ,python2-setuptools)))))
+
+(define-public python-sphinxcontrib-programoutput
+ (package
+ (name "python-sphinxcontrib-programoutput")
+ (version "0.8")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "sphinxcontrib-programoutput" version))
+ (sha256
+ (base32
+ "098as6z1s0gb4dh5xcr1fd2vpm91zj93jzvgawspxf5s4hqs0xhp"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-docutils" ,python-docutils)
+ ("python-sphinx" ,python-sphinx)))
+ (synopsis "Sphinx extension to include program output")
+ (description "A Sphinx extension to literally insert the output of arbitrary
+commands into documents, helping you to keep your command examples up to date.")
+ (home-page "https://github.com/lunaryorn/sphinxcontrib-programoutput")
+ (license bsd-2)
+ (properties `((python2-variant . ,(delay python2-sphinxcontrib-programoutput))))))
+
+(define-public python2-sphinxcontrib-programoutput
+ (package
+ (inherit (package-with-python2
+ (strip-python2-variant python-sphinxcontrib-programoutput)))
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+
+(define-public python-sphinx-repoze-autointerface
+ (package
+ (name "python-sphinx-repoze-autointerface")
+ (version "0.7.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "repoze.sphinx.autointerface" version))
+ (sha256
+ (base32
+ "016mv3wbylw278wl7z33y2liyra8ljp08zq1g0anzadh1an5zvwp"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-docutils" ,python-docutils)
+ ("python-sphinx" ,python-sphinx)
+ ("python-zope-interface" ,python-zope-interface)))
+ (synopsis "Auto-generate Sphinx API docs from Zope interfaces")
+ (description "This package defines an extension for the Sphinx documentation
+system. The extension allows generation of API documentation by
+introspection of @code{zope.interface} instances in code.")
+ (home-page "https://github.com/repoze/repoze.sphinx.autointerface")
+ (license repoze)))
+
+(define-public python2-sphinx-repoze-autointerface
+ (package-with-python2 python-sphinx-repoze-autointerface))
+
+(define-public python-psycopg2
+ (package
+ (name "python-psycopg2")
+ (version "2.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "psycopg2" version))
+ (sha256
+ (base32
+ "0k4hshvrwsh8yagydyxgmd0pjm29lwdxkngcq9fzfzkmpsxrmkva"))))
+ (build-system python-build-system)
+ (arguments
+ ;; Tests would require a postgresql database "psycopg2_test"
+ ;; and a running postgresql database management service.
+ `(#:tests? #f)) ; TODO re-enable after providing a test-db.
+ (inputs
+ `(("postgresql" ,postgresql))) ; libpq
+ (home-page "http://initd.org/psycopg/")
+ (synopsis "Python PostgreSQL adapter")
+ (description
+ "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API 2.0. ")
+ (license lgpl3+)
+ (properties `((python2-variant . ,(delay python2-psycopg2))))))
+
+(define-public python2-psycopg2
+ (package
+ (inherit (package-with-python2
+ (strip-python2-variant python-psycopg2)))
+ (native-inputs `(("python2-setuptools" ,python2-setuptools)))))