summary refs log tree commit diff
path: root/gnu/packages/python-web.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-web.scm')
-rw-r--r--gnu/packages/python-web.scm105
1 files changed, 75 insertions, 30 deletions
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 219b7f9fe2..dce651246c 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
+;;; Copyright © 2017 Mark Meyer <mark@ofosos.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,11 +46,13 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages django)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages time)
   #:use-module (gnu packages xml)
   #:use-module ((guix licenses) #:prefix license:)
@@ -138,14 +141,14 @@ between a web browser and web server.")
 (define-public python-flask-babel
   (package
     (name "python-flask-babel")
-    (version "0.11.1")
+    (version "0.11.2")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "Flask-Babel" version))
         (sha256
           (base32
-            "16b80cipdba9xj3jlaiaq6wgrgpjb70w3j01jjy9hbp4k71kd6yj"))))
+            "0ff9n165vhf1nhv6807ckhpp224jw7k7sd7jz5kfh3sbpl85gmy0"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-flask" ,python-flask)
@@ -165,14 +168,14 @@ both of which are installed automatically if you install this library.")
 (define-public python-html5lib
   (package
     (name "python-html5lib")
-    (version "1.0b10")
+    (version "1.0.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "html5lib" version))
         (sha256
           (base32
-            "1yd068a5c00wd0ajq0hqimv7fd82lhrw0w3s01vbhy9bbd6xapqd"))))
+            "0dipzfrycv6j1jw82v9b7d8lzggx3x8xngx6l4xrqkxwvg7hvjv6"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)
@@ -238,23 +241,58 @@ C, yielding parse times that can be a thirtieth of the html5lib parse times.")
 (define-public python2-html5-parser
   (package-with-python2 python-html5-parser))
 
+(define-public python-pycurl
+  (package
+    (name "python-pycurl")
+    (version "7.43.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dl.bintray.com/pycurl/pycurl/pycurl-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1ali1gjs9iliwjra7w0y5hwg79a2fd0f4ydvv6k27sgxpbr1n8s3"))))
+    (build-system python-build-system)
+    (arguments
+     ;; The tests attempt to access external web servers, so we cannot run
+     ;; them.  Furthermore, they are skipped altogether when using Python 2.
+     '(#:tests? #f))
+    (native-inputs
+     `(("python-nose" ,python-nose)
+       ("python-bottle" ,python-bottle)))
+    (inputs
+     `(("curl" ,curl)
+       ("gnutls" ,gnutls)))
+    (home-page "http://pycurl.io/")
+    (synopsis "Lightweight Python wrapper around libcurl")
+    (description "Pycurl is a lightweight wrapper around libcurl.  It provides
+high-speed transfers via libcurl and frequently outperforms alternatives.")
+
+    ;; Per 'README.rst', this is dual-licensed: users can redistribute pycurl
+    ;; under the terms of LGPLv2.1+ or Expat.
+    (license (list license:lgpl2.1+ license:expat))))
+
+(define-public python2-pycurl
+  (package-with-python2 python-pycurl))
+
 (define-public python-webencodings
   (package
     (name "python-webencodings")
-    (version "0.5")
+    (version "0.5.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "webencodings" version))
               (sha256
                (base32
-                "015rw7662lkpb9aqiqah2hbizk6w531badqwjpz41rr47glmxid5"))))
+                "08qrgrc4hrximb2gqnl69g01s93rhf2842jfxdjljc1dbwj1qsmk"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (zero? (system* "py.test" "-v" "webencodings/tests.py")))))))
+             (invoke "py.test" "-v" "webencodings/tests.py")
+             #t)))))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (home-page "https://github.com/SimonSapin/python-webencodings")
@@ -264,7 +302,7 @@ C, yielding parse times that can be a thirtieth of the html5lib parse times.")
 something like @code{Content-Type: text/html; charset=latin1}, tools need
 to use a particular set of aliases for encoding labels as well as some
 overriding rules.  For example, @code{US-ASCII} and @code{iso-8859-1} on
-the web are actually aliases for @code{windows-1252}, and an @code{UTF-8}
+the web are actually aliases for @code{windows-1252}, and a @code{UTF-8}
 or @code{UTF-16} BOM takes precedence over any other encoding declaration.
 The WHATWG @url{https://encoding.spec.whatwg.org/,Encoding} standard
 defines all such details so that implementations do not have to
@@ -295,7 +333,8 @@ is Python’s.")
        (modify-phases %standard-phases
         (replace 'check
           (lambda _
-            (zero? (system* "./admin/runtests")))))))
+            (invoke "./admin/runtests")
+            #t)))))
     (properties `((python2-variant . ,(delay python2-openid))))
     (propagated-inputs
      `(("python-defusedxml" ,python-defusedxml)))
@@ -332,19 +371,19 @@ for clients and servers.")
 (define-public python-cssutils
   (package
     (name "python-cssutils")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "cssutils" version))
         (sha256
          (base32
-          "0qwha9x1wml2qmipbcz03gndnlwhzrjdvw9i09si247a90l8p8fq"))))
+          "1bxchrbqzapwijap0yhlxdil1w9bmwvgx77aizlkhc2mcxjg1z52"))))
     (build-system python-build-system)
     (native-inputs
-      `(("unzip" ,unzip))) ; for unpacking the source
+     `(("unzip" ,unzip)))               ; for unpacking the source
     (arguments
-     `(#:tests? #f))                    ;tests require python-pbr < 1.7.0
+     `(#:tests? #f))                    ; tests require python-pbr < 1.7.0
     (home-page "http://cthedot.de/cssutils/")
     (synopsis
       "CSS Cascading Style Sheets library for Python")
@@ -451,7 +490,8 @@ teams extension for python-openid.")
        ;;     (lambda _
        ;;       ;; 'setup.py test' hits an AssertionError on BSD-specific
        ;;       ;; "tornado/platform/kqueue.py". This is the supported method:
-       ;;       (zero? (system* "python" "-m" "tornado.test")))))
+       ;;       (invoke- "python" "-m" "tornado.test")
+       ;;       #t)))
        #:tests? #f))
     (native-inputs
      `(("python-certifi" ,python-certifi)))
@@ -522,7 +562,8 @@ web framework, either via the basic or digest authentication schemes.")
        (modify-phases %standard-phases
          (replace 'check
                   (lambda _
-                    (zero? (system* "nosetests")))))))
+                    (invoke "nosetests")
+                    #t)))))
     (home-page "https://github.com/takluyver/terminado")
     (synopsis "Terminals served to term.js using Tornado websockets")
     (description "This package provides a Tornado websocket backend for the
@@ -956,13 +997,13 @@ facilities for defining, registering and looking up components.")
 (define-public python-ndg-httpsclient
   (package
     (name "python-ndg-httpsclient")
-    (version "0.4.2")
+    (version "0.4.4")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "ndg_httpsclient" version))
               (sha256
                 (base32
-                  "1b5qirv46v4dpnmfqviwq42mdwfcby4dxmz0i41wad2337pqf2aq"))))
+                  "0sl5ak1r1xil9ms0a9fh9fm6ncml65kgnjpjfic9dhnaimwx997v"))))
     (build-system python-build-system)
     (arguments
      '(;; The tests appear to require networking.
@@ -1306,14 +1347,14 @@ file.")
 (define-public python-webtest
   (package
     (name "python-webtest")
-    (version "2.0.20")
+    (version "2.0.29")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "WebTest" version))
        (sha256
         (base32
-         "0bv0qhdjakdsdgj4sk21gnpp8xp8bga4x03p6gjb83ihrsb7n4xv"))))
+         "0bcj1ica5lnmj5zbvk46x28kgphcsgh7sfnwjmn0cr94mhawrg6v"))))
     (build-system python-build-system)
     (arguments
      `(;; Unfortunately we have to disable tests!
@@ -1519,7 +1560,8 @@ library.")
          (add-after 'install 'check
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
-             (zero? (system* "py.test" "src/geventhttpclient/tests" "-v")))))))
+             (invoke "py.test" "src/geventhttpclient/tests" "-v")
+             #t)))))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (propagated-inputs
@@ -1629,7 +1671,8 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients."
              (setenv "PYTHONPATH"
                      (string-append (getcwd) "/build/lib:"
                                     (getenv "PYTHONPATH")))
-             (zero? (system* "py.test" "-vv")))))))
+             (invoke "py.test" "-vv")
+             #t)))))
     (native-inputs
      `(("python-pytest" ,python-pytest)
        ("python-redis" ,python-redis)
@@ -1700,13 +1743,13 @@ Betamax.")
 (define-public python-s3transfer
   (package
     (name "python-s3transfer")
-    (version "0.1.11")
+    (version "0.1.13")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "s3transfer" version))
               (sha256
                (base32
-                "0yfrfnf404cxzn3iswibqjxklsl0b1lwgqiml6pwiqj79a7zbwbn"))))
+                "1harvyn1s8v54n1w5h7c0lg4bgjh68aylhg28s8n174q53h1ip4h"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1715,7 +1758,8 @@ Betamax.")
            (lambda _
              ;; 7 of the 'integration' tests require network access or login
              ;; credentials.
-             (zero? (system* "nosetests" "--exclude=integration")))))))
+             (invoke "nosetests" "--exclude=integration")
+             #t)))))
     (native-inputs
      `(("python-docutils" ,python-docutils)
        ("python-mock" ,python-mock)
@@ -1831,7 +1875,8 @@ transfers.")
        ;; (modify-phases %standard-phases
        ;;   (replace 'check
        ;;     (lambda _
-       ;;       (zero? (system* "nosetests")))))))
+       ;;       (invoke "nosetests")
+       ;;       #t)))))
     (propagated-inputs
       `(("python-aniso8601" ,python-aniso8601)
         ("python-flask" ,python-flask)
@@ -1877,16 +1922,16 @@ specs from your Flask-Restful projects.")
 (define-public python-htmlmin
   (package
     (name "python-htmlmin")
-    (version "0.1.10")
+    (version "0.1.12")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "htmlmin" version))
        (sha256
         (base32
-         "0qxa93j3p1ak32qh8d9kshqv8v3z0hkc13dwbhp5cn7sn3xmsp6a"))))
+         "0y51xhabw6x8jk8k93xl8vznshpz3jb6l28075r5sjip613fzhah"))))
     (arguments
-     `(#:tests? #f)) ;htmlmin has no tests
+     `(#:tests? #f))                    ; no tests
     (build-system python-build-system)
     (home-page "https://htmlmin.readthedocs.org/en/latest/")
     (synopsis "HTML minifier")
@@ -2081,14 +2126,14 @@ this it tries to be opinion-free and very extendable.")
 (define-public python-flask-script
   (package
   (name "python-flask-script")
-  (version "2.0.5")
+  (version "2.0.6")
   (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "Flask-Script" version))
       (sha256
         (base32
-          "0zqh2yq8zk7m9b4xw1ryqmrljkdigfb3hk5155a3b5hkfnn6xxyf"))))
+          "0r8w2v89nj6b9p91p495cga5m72a673l2wc0hp0zqk05j4yrc9b4"))))
   (build-system python-build-system)
   (propagated-inputs
    `(("python-flask" ,python-flask)