diff options
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r-- | gnu/packages/python.scm | 554 |
1 files changed, 445 insertions, 109 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6b9fe0325c..f1dc2da050 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com> +;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com> ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com> @@ -41,7 +41,7 @@ ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> -;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com> ;;; @@ -68,6 +68,7 @@ #:use-module (gnu packages attr) #:use-module (gnu packages backup) #:use-module (gnu packages bash) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) @@ -79,6 +80,7 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages graphviz) + #:use-module (gnu packages graphics) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) @@ -1248,6 +1250,33 @@ datetime module, available in Python 2.3+.") (define-public python2-parsedatetime (package-with-python2 python-parsedatetime)) +(define-public python-schedule + (package + (name "python-schedule") + (version "0.4.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "schedule" version)) + (sha256 + (base32 + "0vplyjcbfrq50sphlwya749z8p2pcyi2nycw3518i0qpd9a6189i")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-mock" ,python-mock))) + (home-page "https://github.com/dbader/schedule") + (synopsis "Schedule periodic function calls in Python") + (description + "Schedule is an in-process scheduler for periodic jobs that uses the +builder pattern for configuration. Schedule lets you run Python functions (or +any other callable) periodically at pre-determined intervals using a simple, +human-friendly syntax.") + (license license:expat))) + +(define-public python2-schedule + (package-with-python2 python-schedule)) + (define-public python-pandas (package (name "python-pandas") @@ -2811,13 +2840,13 @@ cutting and pasting that code over and over.") (define-public python-unidecode (package (name "python-unidecode") - (version "0.04.20") + (version "0.04.21") (source (origin (method url-fetch) (uri (pypi-uri "Unidecode" version)) (sha256 (base32 - "1q00i8gpsq3d9r0q8wk4b290fxl0kqlsdk7iadvli45in6s1hi7d")))) + "0lfhp9c5xrbpjvbpr12ji52g1lx04404bzzdg6pvabhzisw6l2i8")))) (build-system python-build-system) (home-page "https://pypi.python.org/pypi/Unidecode") (synopsis "ASCII transliterations of Unicode text") @@ -2826,7 +2855,7 @@ cutting and pasting that code over and over.") useful when integrating with legacy code that doesn't support Unicode, or for ease of entry of non-Roman names on a US keyboard, or when constructing ASCII machine identifiers from human-readable Unicode strings that should still be -somewhat intelligeble.") +somewhat intelligible.") (license license:gpl2+))) (define-public python2-unidecode @@ -2835,17 +2864,23 @@ somewhat intelligeble.") (define-public python-pyjwt (package (name "python-pyjwt") - (version "1.4.0") + (version "1.5.3") (source (origin (method url-fetch) (uri (pypi-uri "PyJWT" version)) (sha256 (base32 - "1556v2jppd8mjkkj66pxb5rcazm35jq81r233mdl8hfmz9n3icp1")))) + "1rxsg14i33vm2i6lz0my628108c81k43v10n4h3p0gx62xdyf2sh")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file-recursively + (find-files "." "\\.pyc$")) + #t)))) (build-system python-build-system) (native-inputs - `(("python-pytest" ,python-pytest) + `(("python-pytest" ,python-pytest-3.0) ("python-pytest-cov" ,python-pytest-cov) ("python-pytest-runner" ,python-pytest-runner))) (home-page "https://github.com/progrium/pyjwt") @@ -3030,15 +3065,27 @@ for Python.") (define-public python-jinja2 (package (name "python-jinja2") - (version "2.8") + (version "2.9.6") (source (origin (method url-fetch) (uri (pypi-uri "Jinja2" version)) (sha256 (base32 - "1x0v41lp5m1pjix3l46zx02b7lqp2hflgpnxwkywxynvi3zz47xw")))) + "1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; These files cannot be built with Python < 3.6. See + ;; https://github.com/pallets/jinja/issues/655 + ;; FIXME: Remove this when the "python" package is upgraded. + (add-after 'unpack 'delete-incompatible-files + (lambda _ + (for-each delete-file + '("jinja2/asyncsupport.py" + "jinja2/asyncfilters.py")) + #t))))) (propagated-inputs `(("python-markupsafe" ,python-markupsafe))) (home-page "http://jinja.pocoo.org/") @@ -3169,14 +3216,14 @@ reStructuredText.") (define-public python-pygments (package (name "python-pygments") - (version "2.1.3") + (version "2.2.0") (source (origin (method url-fetch) (uri (pypi-uri "Pygments" version)) (sha256 (base32 - "10axnp2wpjnq9g8wg53fx0c70dfxqrz498jyz8mrdx9a3flwir48")))) + "1k78qdvir1yb1c634nkv6rbga8wv4289xarghmsbbvzhvr311bnv")))) (build-system python-build-system) (arguments ;; FIXME: Tests require sphinx, which depends on this. @@ -3611,14 +3658,14 @@ is designed to have a low barrier to entry.") (define-public python-cython (package (name "python-cython") - (version "0.26") + (version "0.27") (source (origin (method url-fetch) (uri (pypi-uri "Cython" version)) (sha256 (base32 - "0riciynnr0r68cvg6r3gbhi9x7h44pdwb7926m6n5vfs5p1f492c")))) + "02y0pp1nx77b8s1mpxc6da2dccl6wd31pp4ksi9via479qcvacmr")))) (build-system python-build-system) ;; we need the full python package and not just the python-wrapper ;; because we need libpython3.3m.so @@ -3673,22 +3720,21 @@ between language specification and implementation aspects.") (define-public python-numpy (package (name "python-numpy") - (version "1.12.0") + (version "1.13.1") (source (origin (method url-fetch) - (uri (string-append - "https://github.com/numpy/numpy/archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (pypi-uri "numpy" version ".zip")) (sha256 (base32 - "025d4j4aakcp8w5i5diqh812cbbjgac7jszx1j56ivrbi1i8vv7d")))) + "1fsgkhh1vdkhmlz8vmdgxnj9n9yaanckxxzz9s0b4p08fqvjic69")))) (build-system python-build-system) (inputs `(("openblas" ,openblas) ("lapack" ,lapack))) (native-inputs - `(("python-cython" ,python-cython) + `(("unzip" ,unzip) + ("python-cython" ,python-cython) ("python-nose" ,python-nose) ("gfortran" ,gfortran))) (arguments @@ -3696,6 +3742,8 @@ between language specification and implementation aspects.") (modify-phases %standard-phases (add-before 'build 'set-environment-variables (lambda* (#:key inputs #:allow-other-keys) + ;; numpy's distutils uses $SHELL to run external commands. + (setenv "SHELL" "bash") (call-with-output-file "site.cfg" (lambda (port) (format port @@ -3762,6 +3810,71 @@ objects.") (define-public python2-munch (package-with-python2 python-munch)) +(define-public python-colormath + (package + (name "python-colormath") + (version "2.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "colormath" version)) + (sha256 + (base32 + "01wp5xwm0a89wdm1dc9rr1ij90idzdiiipxdj1yslhqzkhnjnfh0")))) + (build-system python-build-system) + (propagated-inputs + `(("python-networkx" ,python-networkx) + ("python-numpy" ,python-numpy))) + (home-page "https://github.com/gtaylor/python-colormath") + (synopsis "Color math and conversion library") + (description + "This is a Python library for color math and conversions.") + (license license:bsd-3))) + +(define-public python2-colormath + (package-with-python2 python-colormath)) + +(define-public python-spectra + (package + (name "python-spectra") + (version "0.0.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "spectra" version)) + (sha256 + (base32 + "0n87kzhpkml2s2q91rdkl8wz2kkv5b0bkrgww45lxa5vq34qh6w5")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "nosetests" "-v"))))))) + (propagated-inputs + `(("python-colormath" ,python-colormath))) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "http://github.com/jsvine/spectra") + (synopsis "Color scales and color conversion") + (description + "This package provides a Python library intended to make color math, +color scales, and color space conversion easy. It has support for: + +@enumerate +@item Color scales +@item Color ranges +@item Color blending +@item Brightening/darkening colors +@item Saturating/desaturating colors +@item Conversion to/from multiple color spaces. +@end enumerate\n") + (license license:expat))) + +(define-public python2-spectra + (package-with-python2 python-spectra)) + (define-public python2-fastlmm (package (name "python2-fastlmm") @@ -4313,33 +4426,56 @@ operators such as union, intersection, and difference.") (define-public python-rpy2 (package (name "python-rpy2") - (version "2.7.6") + (version "2.9.0") (source (origin (method url-fetch) (uri (pypi-uri "rpy2" version)) (sha256 (base32 - "0nhan2qvrw7b7gg5zddwa22kybdv3x1g26vkd7q8lvnkgzrs4dga")))) + "0bqihjrdqwj5r1h86shvfb1p5hfr4a6klv1v54bzfr9r144w3rni")))) (build-system python-build-system) (arguments - '(#:phases + '(#:modules ((ice-9 ftw) + (srfi srfi-1) + (srfi srfi-26) + (guix build utils) + (guix build python-build-system)) + #:phases (modify-phases %standard-phases - (delete 'check) - (add-after 'install 'check + ;; Without this phase the test loader cannot find the directories, in + ;; which it is supposed to look for test files. + (add-after 'unpack 'fix-tests + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "rpy/tests.py" + (("loader.discover\\(") + "loader.discover(rpy_root + '/' +")) + #t)) + (replace 'check (lambda* (#:key outputs inputs #:allow-other-keys) - ;; It's easier to run tests after install. - ;; Make installed package available for running the tests - (add-installed-pythonpath inputs outputs) + (let ((cwd (getcwd))) + (setenv "PYTHONPATH" + (string-append cwd "/build/" + (find (cut string-prefix? "lib" <>) + (scandir (string-append cwd "/build"))) + ":" + (getenv "PYTHONPATH")))) (zero? (system* "python" "-m" "rpy2.tests" "-v"))))))) (propagated-inputs - `(("python-six" ,python-six))) + `(("python-six" ,python-six) + ("python-jinja2" ,python-jinja2) + ("python-pytz" ,python-pytz))) (inputs `(("readline" ,readline) ("icu4c" ,icu4c) ("pcre" ,pcre) ("r-minimal" ,r-minimal) - ("r-survival" ,r-survival))) + ("r-survival" ,r-survival) + ("r-ggplot2" ,r-ggplot2) + ("r-rsqlite" ,r-rsqlite) + ("r-dplyr" ,r-dplyr) + ("r-dbplyr" ,r-dbplyr) + ("python-numpy" ,python-numpy))) (native-inputs `(("zlib" ,zlib))) (home-page "http://rpy.sourceforge.net/") @@ -4348,14 +4484,10 @@ operators such as union, intersection, and difference.") low-level interface to R from Python, a proposed high-level interface, including wrappers to graphical libraries, as well as R-like structures and functions.") - (license license:gpl3+))) - -(define-public python2-rpy2 - (let ((rpy2 (package-with-python2 python-rpy2))) - (package (inherit rpy2) - (propagated-inputs - `(("python2-singledispatch" ,python2-singledispatch) - ,@(package-propagated-inputs rpy2)))))) + ;; Any of these licenses can be picked for the R interface. The whole + ;; project is released under GPLv2+ according to the license declaration + ;; in "setup.py". + (license (list license:mpl2.0 license:gpl2+ license:lgpl2.1+)))) (define-public python-scipy (package @@ -5652,13 +5784,13 @@ tools for mocking system commands and recording calls to those.") (define-public python-ipython (package (name "python-ipython") - (version "5.2.2") + (version "5.3.0") (source (origin (method url-fetch) (uri (pypi-uri "ipython" version ".tar.gz")) (sha256 - (base32 "1qhjwa9cyz1np7rhv3p4ip13lkgbqsad62l24xkwiq1ic2gwiqbf")))) + (base32 "079wyjir4a9qx6kvx096b1asm63djbidk65z3ykcbnlngmg62pmz")))) (build-system python-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -5873,6 +6005,37 @@ and written in Python.") (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") @@ -6104,6 +6267,16 @@ implementation of D-Bus.") (arguments `(#:phases (modify-phases %standard-phases + (replace 'build + (lambda _ + (zero? + (system* "python" "setup.py" "build" "--enable-all-extensions")))) + (add-after 'build 'build-test-helper + (lambda _ + (zero? + (system + (string-append "gcc -fPIC -shared -o ./testextension.sqlext " + "-I. -Isqlite3 src/testextension.c") )))) (delete 'check) (add-after 'install 'check (lambda* (#:key inputs outputs #:allow-other-keys) @@ -6123,14 +6296,14 @@ translate the complete SQLite API into Python.") (define-public python-lxml (package (name "python-lxml") - (version "3.6.0") + (version "3.8.0") (source (origin (method url-fetch) (uri (pypi-uri "lxml" version)) (sha256 (base32 - "1pvbmiy2m7jwv493kilbghhj2pkh8wy1na3ji350vhzhlwlclx4w")))) + "15nvf6n285n282682qyw3wihsncb0x5amdhyi4b83bfa2nz74vvk")))) (build-system python-build-system) (inputs `(("libxml2" ,libxml2) @@ -7809,14 +7982,14 @@ message digests and key derivation functions.") (define-public python-pyopenssl (package (name "python-pyopenssl") - (version "17.2.0") + (version "17.3.0") (source (origin (method url-fetch) (uri (pypi-uri "pyOpenSSL" version)) (sha256 (base32 - "0d283g4zi0hr9papd24mjl70mi15gyzq6fx618rizi87dgipqqax")))) + "0xkc1wfnpg6abzllivg3ylhc63npjdy1v81f4kc08bm8cj80nqr9")))) (build-system python-build-system) (arguments '(#:phases @@ -9096,16 +9269,13 @@ with python-requests.") (define-public python-click-threading (package (name "python-click-threading") - (version "0.2.0") + (version "0.4.3") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/" - "fe/b7/e7f609d18a2a351cb71616adcf54df1acd82f83cb9b5936935a4d20e2c23/" - "click-threading-" version ".tar.gz")) + (uri (pypi-uri "click-threading" version)) (sha256 (base32 - "18bcqikxwb3drb8rf60cclxkxw52521b38ax3byah6j8cn8y9p4j")))) + "0xs4bg2ws0zgyiplk312l049hi23c2zqf1g771rjhh5vr2msk4cg")))) (build-system python-build-system) (propagated-inputs `(("python-click" ,python-click))) @@ -9118,13 +9288,13 @@ applications.") (define-public python-click-log (package (name "python-click-log") - (version "0.1.8") + (version "0.2.0") (source (origin (method url-fetch) (uri (pypi-uri "click-log" version)) (sha256 (base32 - "14ikfjfgnzf21mjniq9lfk2igzykgzfvwwrk85nw2b9fq44109sp")))) + "1bjrfxji1yv4fj0g78ri2yfgn2wbivn8g69fxfinxvxpmighhshp")))) (build-system python-build-system) (propagated-inputs `(("python-click" ,python-click))) @@ -9329,13 +9499,13 @@ processes across test runs.") (define-public python-icalendar (package (name "python-icalendar") - (version "3.11.6") + (version "3.11.7") (source (origin (method url-fetch) (uri (pypi-uri "icalendar" version)) (sha256 (base32 - "1ny9mbm9zgghl612b8wc4ap52bz3kgl486d7f307gxjmlqgz3i64")))) + "0ahf1i98wjizhld2qd7v2vmvzsmdw08mmins82bf3fpbnp2sxbgc")))) (build-system python-build-system) (propagated-inputs `(("python-dateutil" ,python-dateutil) @@ -9756,14 +9926,14 @@ Pytest but stripped of Pytest specific details.") (define-public python-tox (package (name "python-tox") - (version "2.3.1") + (version "2.8.0") (source (origin (method url-fetch) (uri (pypi-uri "tox" version)) (sha256 (base32 - "1vj73ar4rimq3fwy5r2z3jv4g9qbh8rmpmncsc00g0k310acqzxz")))) + "00lrql2cfzhb712v70inac6mrgdv8s8fmvz7qpggkk623hkm2pgc")))) (build-system python-build-system) (arguments ;; FIXME: Tests require pytest-timeout, which itself requires @@ -9775,7 +9945,8 @@ Pytest but stripped of Pytest specific details.") ("python-virtualenv" ,python-virtualenv))) (native-inputs `(; FIXME: Missing: ("python-pytest-timeout" ,python-pytest-timeout) - ("python-pytest" ,python-pytest))) ; >= 2.3.5 + ("python-pytest" ,python-pytest) ; >= 2.3.5 + ("python-setuptools-scm" ,python-setuptools-scm))) (home-page "http://tox.testrun.org/") (synopsis "Virtualenv-based automation of test activities") (description "Tox is a generic virtualenv management and test command line @@ -9815,14 +9986,14 @@ document.") (define-public python-botocore (package (name "python-botocore") - (version "1.5.26") + (version "1.7.9") (source (origin (method url-fetch) (uri (pypi-uri "botocore" version)) (sha256 (base32 - "1b7l48hr88galrrc5q6k21z3sdadzxc87ppzs7k9fz4p1w8bfnvb")))) + "02b1bw25r1wdjs5yppb1h9igf11wj092biriv2yg8hzp5r0wrkmg")))) (build-system python-build-system) (arguments ;; FIXME: Many tests are failing. @@ -9849,14 +10020,14 @@ interface to the Amazon Web Services (AWS) API.") (define-public awscli (package (name "awscli") - (version "1.11.63") + (version "1.11.151") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "1r8aqv8w27k76lcsfk83w6qw9lz8gk2ibzwacp5wjhpp2gik911m")))) + "0h6rirbfy0f9cxm7ikll0kr720dircfmxf2vslmhn4n325831wsp")))) (build-system python-build-system) (propagated-inputs `(("python-colorama" ,python-colorama) @@ -11815,20 +11986,22 @@ Wikipedia code samples at (define-public python-cleo (package (name "python-cleo") - (version "0.4.1") + (version "0.6.1") (source (origin (method url-fetch) (uri (pypi-uri "cleo" version)) (sha256 (base32 - "1k2dcl6mqpn5bljyl6w42rqyd9mb3y9kh2mg7m2x3kfjwvg0rpva")))) + "0q1cf0szr0d54am4pypzwdnm74zpladdsinad94c2fz5i06fdpf7")))) (build-system python-build-system) (native-inputs `(;; For testing ("python-mock" ,python-mock) + ("python-pytest-mock" ,python-pytest-mock) ("python-pytest" ,python-pytest))) (propagated-inputs - `(("python-psutil" ,python-psutil) + `(("python-backpack" ,python-backpack) + ("python-pastel" ,python-pastel) ("python-pylev" ,python-pylev))) (home-page "https://github.com/sdispater/cleo") (synopsis "Command-line arguments library for Python") @@ -11989,13 +12162,13 @@ addresses, and phone numbers.") (define-public python-pyaml (package (name "python-pyaml") - (version "15.8.2") + (version "17.7.2") (source (origin (method url-fetch) (uri (pypi-uri "pyaml" version)) (sha256 (base32 - "1f5m28vkh4ksq3d80d8mmd2z8wxvc3mgy2pmrv2751dm2xgznm4w")))) + "132grrw0ajq4nrappi3ldbkb952k7yn9b6c7csi2rmvzm1g6ppp2")))) (build-system python-build-system) (native-inputs `(("python-unidecode" ,python-unidecode))) @@ -12011,6 +12184,32 @@ YAML-serialized data.") (define-public python2-pyaml (package-with-python2 python-pyaml)) +(define-public python-backpack + (package + (name "python-backpack") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "backpack" version)) + (sha256 + (base32 + "14rq1mvm0jda90lcx9gyyby9dvq4x3js2cmxvd6vl4686ixwyqh1")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-nose" ,python-nose))) + (propagated-inputs + `(("python-simplejson" ,python-simplejson))) + (home-page "https://github.com/sdispater/backpack") + (synopsis "Utilities for working with Python collections") + (description "Backpack provides some useful utilities for working with +collections of data.") + (license license:expat))) + +(define-public python2-backpack + (package-with-python2 python-backpack)) + (define-public python-flexmock (package (name "python-flexmock") @@ -12032,44 +12231,6 @@ mocks, stubs and fakes.") (define-public python2-flexmock (package-with-python2 python-flexmock)) -(define-public python-orator - (package - (name "python-orator") - (version "0.8.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "orator" version)) - (sha256 - (base32 - "1li49irsqha17nrda4nsb48biyy0rarp9pphf0jpqwm5zr8hv569")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ; no tests - (propagated-inputs - `(("python-arrow" ,python-arrow) - ("python-blinker" ,python-blinker) - ("python-cleo" ,python-cleo) - ("python-faker" ,python-faker) - ("python-inflection" ,python-inflection) - ("python-lazy-object-proxy" ,python-lazy-object-proxy) - ("python-pyaml" ,python-pyaml) - ("python-simplejson" ,python-simplejson) - ("python-wrapt" ,python-wrapt))) - (home-page "https://orator-orm.com/") - (synopsis "ActiveRecord ORM for Python") - (description - "Orator provides a simple ActiveRecord-like Object Relational Mapping -implementation for Python.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-orator)))))) - -(define-public python2-orator - (let ((base (package-with-python2 (strip-python2-variant python-orator)))) - (package - (inherit base) - (propagated-inputs - `(("python2-ipaddress" ,python2-ipaddress) - ,@(package-propagated-inputs base)))))) - (define-public python-prompt-toolkit (package (name "python-prompt-toolkit") @@ -13070,16 +13231,40 @@ replay them during future tests. It is designed to work with python-requests.") (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.10") + (version "0.1.11") (source (origin (method url-fetch) (uri (pypi-uri "s3transfer" version)) (sha256 (base32 - "1h8g9bknvxflxkpbnxyfxmk8pvgykbbk9ljdvhqh6z4vjc2926ms")))) + "0yfrfnf404cxzn3iswibqjxklsl0b1lwgqiml6pwiqj79a7zbwbn")))) (build-system python-build-system) (arguments `(#:phases @@ -13992,7 +14177,22 @@ parse many formal languages.") "1i9gik0xrj6jmi95s5w988jl1y265baz5xm5pbqdyvsh8h9ln6yq")))) (build-system python-build-system) (arguments - `(#:python ,python-2)) + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + ;; check phase needs to be run before the build phase. If not, + ;; coverage-test-runner looks for tests for the built source files, + ;; and fails. + (delete 'check) + (add-before 'build 'check + (lambda _ + ;; Disable python3 tests + (substitute* "check" + (("python3") "# python3")) + (zero? (system* "./check"))))))) + (native-inputs + `(("python2-coverage-test-runner" ,python2-coverage-test-runner) + ("python2-pep8" ,python2-pep8))) (propagated-inputs `(("python2-pyaml" ,python2-pyaml))) (home-page "https://liw.fi/cliapp/") @@ -14017,8 +14217,20 @@ iterating over input files.") (base32 "0vivqbw7ddhsq1zj3g9cvvv4f0phl0pis2smsnwcr2szz2fk3hl6")))) (build-system python-build-system) + (native-inputs + `(("python2-coverage-test-runner" ,python2-coverage-test-runner) + ("python2-pep8" ,python2-pep8))) (arguments - `(#:python ,python-2)) + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + ;; check phase needs to be run before the build phase. If not, + ;; coverage-test-runner looks for tests for the built source files, + ;; and fails. + (delete 'check) + (add-before 'build 'check + (lambda _ + (zero? (system* "make" "check"))))))) (home-page "https://liw.fi/ttystatus/") (synopsis "Python library for showing progress reporting and status updates on terminals") @@ -14065,12 +14277,26 @@ happens using the @code{logging} library.") (uri (string-append "http://git.liw.fi/cgi-bin/cgit/cgit.cgi/larch/snapshot/larch-" version ".tar.gz")) + (patches (search-patches + "python2-larch-coverage-4.0a6-compatibility.patch")) (sha256 (base32 "1p4knkkavlqymgciz2wbcnfrdgdbafhg14maplnk4vbw0q8xs663")))) (build-system python-build-system) (arguments - `(#:python ,python-2)) + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + ;; check phase needs to be run before the build phase. If not, + ;; coverage-test-runner looks for tests for the built source files, + ;; and fails. + (delete 'check) + (add-before 'build 'check + (lambda _ + (zero? (system* "make" "check"))))))) + (native-inputs + `(("cmdtest" ,cmdtest) + ("python2-coverage-test-runner" ,python2-coverage-test-runner))) (propagated-inputs `(("python2-tracing" ,python2-tracing))) (home-page "https://liw.fi/larch/") @@ -15917,6 +16143,51 @@ pure Python module.") (define-public python2-rencode (package-with-python2 python-rencode)) +(define-public python-xenon + (package + (name "python-xenon") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "xenon" version)) + (sha256 + (base32 + "14kby2y48vp3sgwxqlm5d5789yibqwb1qli5fwcmdqg3iayrbklc")))) + (build-system python-build-system) + (native-inputs + `(("python-pyyaml" ,python-pyyaml) + ("python-radon" ,python-radon) + ("python-requests" ,python-requests) + ("python-flake8" ,python-flake8) + ("python-tox" ,python-tox))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'patch-test-requirements + (lambda* (#:key inputs #:allow-other-keys) + ;; Update requirements from dependency==version to + ;; dependency>=version. + (substitute* "requirements.txt" + (("==") ">=") + ((",<1.5.0") "")) + ;; Remove httpretty dependency for tests. + (substitute* "setup.py" + (("httpretty") "")) + #t))))) + (home-page "https://xenon.readthedocs.org/") + (synopsis "Monitor code metrics for Python on your CI server") + (description + "Xenon is a monitoring tool based on Radon. It monitors code complexity. +Ideally, @code{xenon} is run every time code is committed. Through command +line options, various thresholds can be set for the complexity of code. It +will fail (i.e. it will exit with a non-zero exit code) when any of these +requirements is not met.") + (license license:expat))) + +(define-public python2-xenon + (package-with-python2 python-xenon)) + (define-public python-flask-principal (package (name "python-flask-principal") @@ -15966,3 +16237,68 @@ authentication for Flask routes.") (define-public python2-flask-httpauth (package-with-python2 python-flask-httpauth)) + +(define-public python-pysocks + (package + (name "python-pysocks") + (version "1.6.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PySocks" version)) + (sha256 + (base32 + "1krkiss578zqwcg4c8iqz1hwscwhsvy2djp3xyvps5gsgvr2j0yh")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) + (home-page "https://github.com/Anorov/PySocks") + (synopsis "SOCKS client module") + (description "@code{pysocks} is an updated and semi-actively maintained +version of @code{SocksiPy} with bug fixes and extra features.") + (license license:bsd-3))) + +(define-public python2-pysocks + (package-with-python2 python-pysocks)) + +(define-public python-pyaes + (package + (name "python-pyaes") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyaes" version)) + (sha256 + (base32 + "0bp9bjqy1n6ij1zb86wz9lqa1dhla8qr1d7w2kxyn7jbj56sbmcw")))) + (build-system python-build-system) + (home-page "https://github.com/ricmoo/pyaes") + (synopsis "Implementation of AES in Python") + (description "This package contains a pure-Python implementation of the +AES block cipher algorithm and the common modes of operation (CBC, CFB, CTR, +ECB and OFB).") + (license license:expat))) + +(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)) |