summaryrefslogtreecommitdiff
path: root/gnu/packages/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r--gnu/packages/python.scm402
1 files changed, 335 insertions, 67 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index ba9153b68b..3bd6710667 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -43,6 +43,7 @@
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -100,6 +101,7 @@
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
+ #:use-module (gnu packages search)
#:use-module (gnu packages shells)
#:use-module (gnu packages ssh)
#:use-module (gnu packages statistics)
@@ -655,26 +657,50 @@ on localhost.")
(define-public python-pytz
(package
(name "python-pytz")
- (version "2016.10")
+ (version "2017.2")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "pytz" version ".tar.bz2"))
+ (uri (pypi-uri "pytz" version ".zip"))
(sha256
(base32
- "0az099cyp6p5xbsvfcdacj4hvxncbwm2ayn3h55mcp07zb2b45kh"))))
+ "12cmd3j46d2gcw08bspvp6s9icfcvx88zjz52n1bli9dyvl5dh7m"))))
(build-system python-build-system)
- (arguments `(#:tests? #f)) ; no test target
+ (native-inputs
+ `(("unzip" ,unzip)))
(home-page "http://pythonhosted.org/pytz")
(synopsis "Python timezone library")
- (description
- "This library allows accurate and cross platform timezone calculations
-using Python 2.4 or higher and provides access to the Olson timezone database.")
+ (description "This library brings the Olson tz database into Python. It
+allows accurate and cross platform timezone calculations using Python 2.4 or
+higher. It also solves the issue of ambiguous times at the end of daylight
+saving time. Almost all of the Olson timezones are supported.")
(license license:expat)))
(define-public python2-pytz
(package-with-python2 python-pytz))
+(define-public python-clyent
+ (package
+ (name "python-clyent")
+ (version "1.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "clyent" version))
+ (sha256
+ (base32
+ "1r9987qmy1pz3hq54160bapqsywpq14waw4w9x3ly8hmq7kpgfbj"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-mock" ,python-mock)))
+ (home-page "https://github.com/binstar/clyent")
+ (synopsis "Command line client library")
+ (description "Clyent is a Python command line utiliy library. It is used
+by @code{binstar}, @code{binstar-build} and @code{chalmers}.")
+ (license license:bsd-3)))
+
+(define-public python2-clyent
+ (package-with-python2 python-clyent))
(define-public python-babel
(package
@@ -2715,6 +2741,46 @@ version numbers.")
(propagated-inputs
`(("python2-functools32" ,python2-functools32))))))
+(define-public python-schema
+ (package
+ (name "python-schema")
+ (version "0.6.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "schema" version))
+ (sha256
+ (base32
+ "1lw28j9w9vxyigg7vkfkvi6ic9lgjkdnfvnxdr7pklslqvzmk2vm"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/keleshev/schema")
+ (synopsis "Simple data validation library")
+ (description
+ "@code{python-schema} is a library for validating Python data
+structures, such as those obtained from config-files, forms, external
+services or command-line parsing, converted from JSON/YAML (or
+something else) to Python data-types.")
+ (license license:psfl)))
+
+(define-public python2-schema
+ (package-with-python2 python-schema))
+
+(define-public python-schema-0.5
+ (package (inherit python-schema)
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "schema" version))
+ (sha256
+ (base32
+ "10zqvpaky51kgb8nd42bk7jwl8cn2zvayxjpdc1wwmpybj92x67s"))))))
+
+(define-public python2-schema-0.5
+ (package-with-python2 python-schema-0.5))
+
(define-public python-kitchen
(package
(name "python-kitchen")
@@ -3125,6 +3191,36 @@ reStructuredText.")
(define-public python2-pygments
(package-with-python2 python-pygments))
+(define-public python-sphinxcontrib-websupport
+ (package
+ (name "python-sphinxcontrib-websupport")
+ (version "1.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "sphinxcontrib-websupport" version))
+ (sha256
+ (base32
+ "1f9f0wjpi9nhikbyaz6d19s7qvzdf1nq2g5dsh640fma4q9rd1bs"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-xapian-bindings" ,python-xapian-bindings)))
+ ;; Needed for running the test suite
+ (native-inputs
+ `(("python-six" ,python-six)
+ ("python-jinja2" ,python-jinja2)
+ ("python-docutils" ,python-docutils)
+ ("python-sphinx" ,python-sphinx)
+ ("python-sqlalchemy" ,python-sqlalchemy)
+ ("python-whoosh" ,python-whoosh)))
+ (home-page "http://sphinx-doc.org/")
+ (synopsis "Sphinx API for web applications")
+ (description "This package provides a Python API to easily integrate
+Sphinx documentation into your web application. It provides tools to
+integrate Sphinx documents in web templates and to handle searches.")
+ (license license:bsd-3)))
+
(define-public python-sphinx
(package
(name "python-sphinx")
@@ -3169,6 +3265,36 @@ sources.")
(license license:bsd-3)
(properties `((python2-variant . ,(delay python2-sphinx))))))
+(define-public python-sphinx-1.6
+ (package (inherit python-sphinx)
+ (name "python-sphinx")
+ (version "1.6.3")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "Sphinx" version))
+ (sha256
+ (base32
+ "1rj6f3i8hmrx2qlkshi5kp5xcy98dlynwlyl05yvflj5f66dp2xg"))))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ ;; Requires Internet access.
+ (delete-file "tests/test_build_linkcheck.py")
+ (substitute* "tests/test_build_latex.py"
+ (("@pytest.mark.sphinx\\('latex', testroot='images'\\)")
+ "@pytest.mark.skip()"))
+ (zero? (system* "make" "test")))))))
+ (propagated-inputs
+ `(("python-sphinxcontrib-websupport" ,python-sphinxcontrib-websupport)
+ ,@(package-propagated-inputs python-sphinx)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest-3.0)
+ ("imagemagick" ,imagemagick) ; for "convert"
+ ,@(package-native-inputs python-sphinx)))
+ (properties '())))
+
(define-public python-sphinx-1.5.3
(package
(inherit python-sphinx)
@@ -3684,7 +3810,39 @@ association studies (GWAS) on extremely large data sets.")
("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx)
("python-numpydoc" ,python-numpydoc)
- ("texlive" ,texlive)
+ ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
+ texlive-fonts-ec
+ texlive-generic-ifxetex
+ texlive-generic-pdftex
+ texlive-latex-amsfonts
+ texlive-latex-capt-of
+ texlive-latex-cmap
+ texlive-latex-environ
+ texlive-latex-eqparbox
+ texlive-latex-etoolbox
+ texlive-latex-expdlist
+ texlive-latex-fancyhdr
+ texlive-latex-fancyvrb
+ texlive-latex-fncychap
+ texlive-latex-float
+ texlive-latex-framed
+ texlive-latex-geometry
+ texlive-latex-graphics
+ texlive-latex-hyperref
+ texlive-latex-mdwtools
+ texlive-latex-multirow
+ texlive-latex-oberdiek
+ texlive-latex-parskip
+ texlive-latex-preview
+ texlive-latex-tabulary
+ texlive-latex-threeparttable
+ texlive-latex-titlesec
+ texlive-latex-trimspaces
+ texlive-latex-ucs
+ texlive-latex-upquote
+ texlive-latex-url
+ texlive-latex-varwidth
+ texlive-latex-wrapfig)))
("texinfo" ,texinfo)
("perl" ,perl)
("scipy-sphinx-theme"
@@ -3713,6 +3871,11 @@ association studies (GWAS) on extremely large data sets.")
(scipy-sphinx-theme "scipy-sphinx-theme")
(sphinx-theme-checkout (assoc-ref inputs scipy-sphinx-theme))
(pyver ,(string-append "PYVER=")))
+
+ ;; FIXME: this is needed to for texlive-union to generate
+ ;; fonts, which are not found.
+ (setenv "HOME" "/tmp")
+
(with-directory-excursion "doc"
(copy-recursively sphinx-theme-checkout scipy-sphinx-theme)
(mkdir-p html)
@@ -4480,6 +4643,35 @@ multivalue dictionary that retains the order of insertions and deletions.")
(define-public python2-furl
(package-with-python2 python-furl))
+(define-public python-flaky
+ (package
+ (name "python-flaky")
+ (version "3.4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "flaky" version))
+ (sha256
+ (base32
+ "18pkmf79rfkfpy1d2rrx3v55nxj762ilyk9rvd6s6dccxw58imsa"))))
+ (build-system python-build-system)
+ (arguments
+ ;; TODO: Tests require 'coveralls' and 'genty' which are not in Guix yet.
+ '(#:tests? #f))
+ (home-page "https://github.com/box/flaky")
+ (synopsis "Automatically rerun flaky tests")
+ (description
+ "Flaky is a plugin for @code{nose} or @code{py.test} that automatically
+reruns flaky tests.
+
+Ideally, tests reliably pass or fail, but sometimes test fixtures must rely
+on components that aren't 100% reliable. With flaky, instead of removing
+those tests or marking them to @code{@skip}, they can be automatically
+retried.")
+ (license license:asl2.0)))
+
+(define-public python2-flaky
+ (package-with-python2 python-flaky))
+
(define-public python-flask-babel
(package
(name "python-flask-babel")
@@ -5429,7 +5621,40 @@ tools for mocking system commands and recording calls to those.")
("python-nose" ,python-nose)
("python-sphinx" ,python-sphinx)
("python-shpinx-rtd-theme" ,python-sphinx-rtd-theme)
- ("texlive" ,texlive)
+ ;; FIXME: It's possible that a smaller union would work just as well.
+ ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
+ texlive-fonts-ec
+ texlive-generic-ifxetex
+ texlive-generic-pdftex
+ texlive-latex-amsfonts
+ texlive-latex-capt-of
+ texlive-latex-cmap
+ texlive-latex-environ
+ texlive-latex-eqparbox
+ texlive-latex-etoolbox
+ texlive-latex-expdlist
+ texlive-latex-fancyhdr
+ texlive-latex-fancyvrb
+ texlive-latex-fncychap
+ texlive-latex-float
+ texlive-latex-framed
+ texlive-latex-geometry
+ texlive-latex-graphics
+ texlive-latex-hyperref
+ texlive-latex-mdwtools
+ texlive-latex-multirow
+ texlive-latex-oberdiek
+ texlive-latex-parskip
+ texlive-latex-preview
+ texlive-latex-tabulary
+ texlive-latex-threeparttable
+ texlive-latex-titlesec
+ texlive-latex-trimspaces
+ texlive-latex-ucs
+ texlive-latex-upquote
+ texlive-latex-url
+ texlive-latex-varwidth
+ texlive-latex-wrapfig)))
("texinfo" ,texinfo)))
(arguments
`(#:phases
@@ -6049,13 +6274,13 @@ of the structure, dynamics, and functions of complex networks.")
(define-public snakemake
(package
(name "snakemake")
- (version "3.11.2")
+ (version "3.13.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "snakemake" version))
(sha256
- (base32 "0qcp7y9csvanyzh08jppryhd5di8r1z7p0d4wkfg5591pj3bb8zp"))))
+ (base32 "1nixb944r4hlskwkzc4wjs34b40xpxpw9gmhhm5p09gvmm22ap5d"))))
(build-system python-build-system)
(arguments
;; TODO: Package missing test dependencies.
@@ -6337,6 +6562,31 @@ connection to each user.")
(define-public python2-backports-abc
(package-with-python2 python-backports-abc))
+(define-public python-backports-csv
+ (package
+ (name "python-backports-csv")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "backports.csv" version))
+ (sha256
+ (base32
+ "1imzbrradkfn8s2m1qcimyn74dn1mz2p3j381jljn166rf2i6hlc"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/ryanhiebert/backports.csv")
+ (synopsis "Backport of Python 3's csv module for Python 2")
+ (description
+ "Provides a backport of Python 3's @code{csv} module for parsing
+comma separated values. The API of the @code{csv} module in Python 2
+is drastically different from the @code{csv} module in Python 3.
+This is due, for the most part, to the difference between str in
+Python 2 and Python 3.")
+ (license license:psfl)))
+
+(define-public python2-backports-csv
+ (package-with-python2 python-backports-csv))
+
(define-public python2-backports-shutil-get-terminal-size
(package
(name "python2-backports-shutil-get-terminal-size")
@@ -7392,14 +7642,14 @@ responses, rather than doing any computation.")
(define-public python-cryptography-vectors
(package
(name "python-cryptography-vectors")
- (version "1.9")
+ (version "2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography_vectors" version))
(sha256
(base32
- "1wvq1p1viam1diz9x6d61x1bsy6cninv7cjgd35x9ffig9r6gxxv"))))
+ "0qadys01517k5wy0rifxip02p08kzrqxm5j0lmmlp0kr07h9jc7h"))))
(build-system python-build-system)
(home-page "https://github.com/pyca/cryptography")
(synopsis "Test vectors for the cryptography package")
@@ -7414,14 +7664,14 @@ responses, rather than doing any computation.")
(define-public python-cryptography
(package
(name "python-cryptography")
- (version "1.9")
+ (version "2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography" version))
(sha256
(base32
- "10j8r1s29f4h59kp3mla14g588rm7qpn90nrczijk03i49q3662m"))))
+ "1c40qlxyn1jgg99f3pqi7146d3561rn9zdqc7w8f7kwr9ysm696k"))))
(build-system python-build-system)
(inputs
`(("openssl" ,openssl)))
@@ -7463,16 +7713,14 @@ message digests and key derivation functions.")
(define-public python-pyopenssl
(package
(name "python-pyopenssl")
- (version "17.1.0")
+ (version "17.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyOpenSSL" version))
- (patches
- (search-patches "python-pyopenssl-17.1.0-test-overflow.patch"))
(sha256
(base32
- "0qwmqhfsq84ydir9dz273ypmlcvs7v71m1jns0sd4k0h6lfsa82s"))))
+ "0d283g4zi0hr9papd24mjl70mi15gyzq6fx618rizi87dgipqqax"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -7496,7 +7744,8 @@ message digests and key derivation functions.")
(inputs
`(("openssl" ,openssl)))
(native-inputs
- `(("python-pretend" ,python-pretend)
+ `(("python-flaky" ,python-flaky)
+ ("python-pretend" ,python-pretend)
("python-pytest" ,python-pytest-3.0)))
(home-page "https://github.com/pyca/pyopenssl")
(synopsis "Python wrapper module around the OpenSSL library")
@@ -11641,53 +11890,6 @@ addresses, and phone numbers.")
`(("python2-ipaddress" ,python2-ipaddress)
,@(package-propagated-inputs base))))))
-(define-public python-fake-factory
- (package
- (name "python-fake-factory")
- (version "0.7.2")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "fake-factory" version))
- (sha256
- (base32
- "0vs0dkmg0dlaxf8w6q2i3k0i03gmp56ablldv7ci9x3nbadkn71g"))
- (patches
- (search-patches
- "python-fake-factory-fix-build-32bit.patch"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (zero? (system* "python" "-m" "unittest" "-v" "faker.tests")))))))
- (native-inputs
- `(;; For testing
- ("python-email-validator" ,python-email-validator)
- ("python-mock" ,python-mock)
- ("python-ukpostcodeparser" ,python-ukpostcodeparser)))
- (propagated-inputs
- `(("python-dateutil" ,python-dateutil)
- ("python-six" ,python-six)))
- (home-page "https://github.com/joke2k/faker")
- (synopsis "Python package that generates fake data")
- (description
- "Faker is a Python package that generates fake data such as names,
-addresses, and phone numbers.")
- (license license:expat)
- (properties `((python2-variant . ,(delay python2-fake-factory))
- (superseded . ,python-faker)))))
-
-(define-public python2-fake-factory
- (let ((base (package-with-python2 (strip-python2-variant
- python-fake-factory))))
- (package
- (inherit base)
- (properties `((superseded . ,python2-faker)))
- (propagated-inputs
- `(("python2-ipaddress" ,python2-ipaddress)
- ,@(package-propagated-inputs base))))))
-
(define-public python-pyaml
(package
(name "python-pyaml")
@@ -14297,6 +14499,29 @@ pytest report.")
(define-public python2-pytest-warnings
(package-with-python2 python-pytest-warnings))
+(define-public python-pytest-capturelog
+ (package
+ (name "python-pytest-capturelog")
+ (version "0.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-capturelog" version ".tar.gz"))
+ (sha256
+ (base32
+ "038049nyjl7di59ycnxvc9nydivc5m8np3hqq84j2iirkccdbs5n"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("pytest" ,python-pytest-3.0)))
+ (home-page "http://bitbucket.org/memedough/pytest-capturelog/overview")
+ (synopsis "Pytest plugin to catch log messages")
+ (description
+ "Python-pytest-catchlog is a pytest plugin to catch log messages.")
+ (license license:expat)))
+
+(define-public python2-pytest-capturelog
+ (package-with-python2 python-pytest-capturelog))
+
(define-public python-pytest-catchlog
(package
(name "python-pytest-catchlog")
@@ -15173,6 +15398,49 @@ by path in a JSON document (see RFC 6901).")
(define-public python2-jsonpointer
(package-with-python2 python-jsonpointer))
+(define-public python-jsonpatch
+ (package
+ (name "python-jsonpatch")
+ (version "1.16")
+ (source
+ (origin
+ (method url-fetch)
+ ;; pypi version lacks tests.js
+ (uri (string-append "https://github.com/stefankoegl/python-json-patch/"
+ "archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "085ykisl8v7mv9h7hvhdy3l2fjzs4214gx32r5k6nx4f76hbv6y5"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-jsonpointer" ,python-jsonpointer)))
+ (home-page "https://github.com/stefankoegl/python-json-patch")
+ (synopsis "Applying JSON Patches in Python 2.6+ and 3.x")
+ (description "@code{jsonpatch} is a library and program that allows
+applying JSON Patches according to RFC 6902.")
+ (license license:bsd-3)))
+
+(define-public python2-jsonpatch
+ (package-with-python2 python-jsonpatch))
+
+(define-public python-jsonpatch-0.4
+ (package (inherit python-jsonpatch)
+ (name "python-jsonpatch")
+ (version "0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/stefankoegl/python-json-patch/"
+ "archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0j0cd9z9zyp8kppp464jxrfgrnbgkzl1yi10i5gsv8yz6d95929d"))))))
+
+(define-public python2-jsonpatch-0.4
+ (package-with-python2 python-jsonpatch-0.4))
+
(define-public python-rfc3987
(package
(name "python-rfc3987")