summary refs log tree commit diff
path: root/gnu/packages/python-web.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-04-28 16:24:46 +0200
committerLudovic Courtès <ludo@gnu.org>2022-04-28 16:24:46 +0200
commit284fa7264963acc5d114ef5d54c347126b1654ba (patch)
tree3e5360fcc81b6d0dce76a65aca60cf8528f2931f /gnu/packages/python-web.scm
parent12c9da35389dfba86ae0d863132a6b2c4374205a (diff)
parent882cacc1bb5be0df334dd7ce55b385a3a1678728 (diff)
downloadguix-284fa7264963acc5d114ef5d54c347126b1654ba.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/python-web.scm')
-rw-r--r--gnu/packages/python-web.scm122
1 files changed, 100 insertions, 22 deletions
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 3146cad933..3ca8041edf 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2013, 2014, 2015, 2016, 2020 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016, 2017, 2019-2022 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2021 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@@ -49,6 +49,8 @@
 ;;; Copyright © 2021 Alice Brenon <alice.brenon@ens-lyon.fr>
 ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
 ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -231,11 +233,15 @@ for adding, removing and dropping callbacks.")
        (uri (pypi-uri "aiohttp" version))
        (sha256
         (base32 "0y3m1dzl4h6frg8vys0fc3m83ijd1plfpihv3kvmxqadlphp2m7w"))
-       ;; TODO: Unbundle the llhttp sources.
-       ;; (modules '((guix build utils)))
-       ;; (snippet
-       ;;  '((delete-file-recursively "vendor")))
-       ))
+       (snippet
+        #~(begin
+            (use-modules ((guix build utils)))
+            ;; TODO: Unbundle the llhttp sources.
+            ;; (delete-file-recursively "vendor")
+            (delete-file "aiohttp/_helpers.c")
+            (delete-file "aiohttp/_http_parser.c")
+            (delete-file "aiohttp/_http_writer.c")
+            (delete-file "aiohttp/_websocket.c")))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -497,7 +503,7 @@ Model} (SAM) templates into AWS CloudFormation templates.")
 (define-public python-aws-xray-sdk
   (package
     (name "python-aws-xray-sdk")
-    (version "2.6.0")
+    (version "2.9.0")
     (home-page "https://github.com/aws/aws-xray-sdk-python")
     (source (origin
               (method git-fetch)
@@ -505,7 +511,7 @@ Model} (SAM) templates into AWS CloudFormation templates.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "12fzr0ylpa1lx3xr1x2f1jx8iiyzcr6g57fb9jign0j0lxdlbzpv"))))
+                "04fyik5axbilj2g9fzhhw8ch8xfn7iai3j6myk7z4g26m1mrhxsi"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -519,6 +525,7 @@ Model} (SAM) templates into AWS CloudFormation templates.")
                                   "tests/ext/psycopg2/test_psycopg2.py"
                                   "tests/ext/pymysql/test_pymysql.py"
                                   "tests/ext/pynamodb/test_pynamodb.py"
+                                  "tests/ext/sqlalchemy_core/test_postgres.py"
                                   "tests/test_async_recorder.py"
 
                                   ;; FIXME: Why is this failing?
@@ -527,6 +534,7 @@ Model} (SAM) templates into AWS CloudFormation templates.")
                                   ;; TODO: How to configure Django for these tests.
                                   "tests/ext/django/test_db.py"
                                   "tests/ext/django/test_middleware.py"
+                                  "tests/ext/django/test_settings.py"
 
                                   ;; These tests want to access httpbin.org.
                                   "tests/ext/requests/test_requests.py"
@@ -536,7 +544,13 @@ Model} (SAM) templates into AWS CloudFormation templates.")
                     (lambda _
                       ;; Allow "import tests.utils" to work as expected.
                       (setenv "PYTHONPATH" (getcwd))
-                      (invoke "pytest" "-vv" "tests"))))))
+                      (invoke "pytest" "-vv" "tests"
+                              "-k"
+                              ;; These tests fail because "fixture 'benchmark'
+                              ;; not found"
+                              (string-append
+                               "not test_pkgutil_static_read"
+                               " and not test_pkg_resources_static_read")))))))
     (native-inputs
      (list ;; These are required for the test suite.
            python-bottle
@@ -2860,36 +2874,43 @@ supports url redirection and retries, and also gzip and deflate decoding.")
   (package
     ;; Note: updating awscli typically requires updating botocore as well.
     (name "awscli")
-    (version "1.21.11")
+    (version "1.22.90")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri name version))
        (sha256
         (base32
-         "0fkivwbx4nind5b7l4jhqm5bb9drgqsclcslrg4aggf9rcs4g4s0"))))
+         "0ky4ax4xh7s8w1l0hwc7w9ii8afvh9nib3kz09qhiqdinxzrlv54"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: The 'pypi' release does not contain tests.
      '(#:tests? #f
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-reference-to-groff
+         (add-after 'unpack 'use-recent-pyyaml
            (lambda _
+             (substitute* '("awscli.egg-info/requires.txt"
+                            "setup.cfg"
+                            "setup.py")
+               (("<5.5") "<=6"))))
+         (add-after 'unpack 'fix-reference-to-groff
+           (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "awscli/help.py"
                (("if not self._exists_on_path\\('groff'\\):") "")
                (("raise ExecutableNotFoundError\\('groff'\\)") "")
                (("cmdline = \\['groff'")
-                (string-append "cmdline = ['" (which "groff") "'"))))))))
-    (propagated-inputs
-     (list python-colorama-for-awscli
+                (string-append "cmdline = ['"
+                               (search-input-file inputs "bin/groff")
+                               "'"))))))))
+    (inputs
+     (list groff
+           python-colorama-for-awscli
            python-botocore
            python-s3transfer
            python-docutils-0.15
            python-pyyaml
            python-rsa))
-    (native-inputs
-     (list groff))
     (home-page "https://aws.amazon.com/cli/")
     (synopsis "Command line client for AWS")
     (description "AWS CLI provides a unified command line interface to the
@@ -5026,8 +5047,7 @@ without requiring a page refresh.")
          (add-after 'unpack 'use-urllib3
            (lambda _
              (substitute* "port_for/_download_ranges.py"
-               (("urllib2") "urllib3"))
-             #t)))))
+               (("urllib2") "urllib3")))))))
     (propagated-inputs
      (list python-urllib3))
     (native-inputs
@@ -5043,14 +5063,14 @@ association.")
 (define-public python-livereload
   (package
     (name "python-livereload")
-    (version "2.6.1")
+    (version "2.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "livereload" version))
        (sha256
         (base32
-         "0rhggz185bxc3zjnfpmhcvibyzi86i624za1lfh7x7ajsxw4y9c9"))))
+         "0scqjnhg3ap81v36ghp0pik774dnfdkwqsx5j1jfbzarbs32yvvp"))))
     (build-system python-build-system)
     (propagated-inputs
      (list python-six python-tornado))
@@ -6192,12 +6212,20 @@ communicate with Microsoft Azure Storage services.")
      (origin
        (method url-fetch)
        (uri (pypi-uri "w3lib" version))
+       (patches (search-patches "python-w3lib-fix-test-failure.patch"))
        (sha256
         (base32
          "1pv02lvvmgz2qb61vz1jkjc04fgm4hpfvaj5zm4i3mjp64hd1mha"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest")))))))
     (native-inputs
-     (list python-six))
+     (list python-pytest python-six))
     (home-page "https://github.com/scrapy/w3lib")
     (synopsis "Python library of web-related functions")
     (description
@@ -6391,3 +6419,53 @@ Full documentation may be found at
     (description "This package provides @code{Tweepy}, an easy-to-use Python
 library for accessing the Twitter API.")
     (license license:expat)))
+
+(define-public python-quart
+  (package
+    (name "python-quart")
+    (version "0.17.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Quart" version))
+       (sha256
+        (base32 "0h4n2dwzmqifya1razp9s7ppr4ra23ljac9v7sl039rzp3c17wic"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list hypercorn
+           python-aiofiles
+           python-blinker
+           python-click
+           python-itsdangerous
+           python-jinja2
+           python-markupsafe
+           python-toml
+           python-werkzeug))
+    (home-page "https://gitlab.com/pgjones/quart/")
+    (synopsis "Python ASGI web microframework with the same API as Flask")
+    (description
+     "This package provides a Python ASGI web microframework with the same API
+as Flask.")
+    (license license:expat)))
+
+(define-public python-ajsonrpc
+  (package
+    (name "python-ajsonrpc")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "ajsonrpc" version))
+       (sha256
+        (base32 "17x1a4r4l428mhwn53abki9gzdzq3halyr4lj48fw3dzy0caq6vr"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-quart
+           python-sanic
+           python-tornado))
+    (home-page "https://github.com/pavlov99/ajsonrpc")
+    (synopsis "Async JSON-RPC 2.0 protocol and server")
+    (description
+     "This package provides a Python JSON-RPC 2.0 protocol and server powered
+by asyncio.")
+    (license license:expat)))