diff options
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r-- | gnu/packages/python.scm | 402 |
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") |