Subject: Lot of python package patches
From: Ryan Sundberg <[email-masked]>
To: [email-masked]
Date: Sun, 6 Jun 2021 12:26:18 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guix devs,

Attached are 55 patches for various python packages, centered around the
openstack libs. There are some new packages in here and some mere
upgrades. Where viable I enabled tests on the packages, and fixed some
previous packages which had tests disabled.

In some cases dependency version issues had to be patched up. Some of
these openstack packages particularly had some diamond dependency issues
which had to be resolved.

Sincerely,

Ryan Sundberg

From f45457b447c38d771aa7294cc09354d9dc0db38b Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Tue, 11 May 2021 01:33:29 -0700
Subject: [PATCH 55/55] python-doc8: upgrade to 0.8.1 (latest)

---
 gnu/packages/python-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 604d20b97e..08937bb26c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -4021,14 +4021,14 @@ format.")
 (define-public python-doc8
   (package
     (name "python-doc8")
-    (version "0.8.0")
+    (version "0.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "doc8" version))
        (sha256
         (base32
-         "0hw5w8mpgsp51qg8nnq28p7y1jiksvz7a0axnn5bkgss3af9zy1d"))))
+         "04ic108p5wlgfqds17ai8bgf17i25ps5w7csza7z0z40k0jz27ad"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.31.1

From 7bd028b81a5fd613cf451204ec84397449c3853e Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Tue, 11 May 2021 01:21:28 -0700
Subject: [PATCH 54/55] python-httplib2: upgrade to latest (0.19.1)

---
 gnu/packages/python-web.scm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index af33cc25d1..1d65b2b0a8 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -628,15 +628,20 @@ over a different origin than that of the web application.")
 (define-public python-httplib2
   (package
     (name "python-httplib2")
-    (version "0.9.2")
+    (version "0.19.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "httplib2" version))
        (sha256
         (base32
-         "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3"))))
+         "0gakbnnplyi5dvgyd0d8kblqxc54ryp0w43a7563shx7xiz624hb"))))
     (build-system python-build-system)
+    (arguments
+      ; TODO package test dependencies and patch fixed versions in test-requirements.txt
+      `(#:tests? #f))
+    (propagated-inputs
+     `(("python-pyparsing" ,python-pyparsing)))
     (home-page "https://github.com/jcgregorio/httplib2")
     (synopsis "Comprehensive HTTP client library")
     (description
-- 
2.31.1

From d2722be98bef2f2244713a080bf4cc2434947594 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Tue, 11 May 2021 00:11:53 -0700
Subject: [PATCH 53/55] python-oauth2client: upgrade to latest (4.1.3)

---
 gnu/packages/python-web.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 7dd3184a69..af33cc25d1 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -3719,14 +3719,14 @@ users' sessions over extended periods of time.")
 (define-public python-oauth2client
   (package
     (name "python-oauth2client")
-    (version "4.0.0")
+    (version "4.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oauth2client" version))
        (sha256
         (base32
-         "1irqqap2zibysf8dba8sklfqikia579srd0phm5n754ni0h59gl0"))))
+         "1inc3j4hjhjvadn78xd2pwmkmmxcv5q6vlm4d2azd1qj8lg791nl"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))
-- 
2.31.1

From ec526c7be73cfaa34501e79ecca58203531cd241 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 10 May 2021 23:57:16 -0700
Subject: [PATCH 52/55] python-paste: upgrade to latest (3.5.0)

---
 gnu/packages/python-web.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index a32c501d0a..7dd3184a69 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -4183,14 +4183,14 @@ available in Django, but is a standalone package.")
 (define-public python-paste
   (package
     (name "python-paste")
-    (version "3.0.6")
+    (version "3.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Paste" version))
        (sha256
         (base32
-         "14lbi9asn5agsdf7r97prkjpz7amgmp529lbvfhf0nv881xczah6"))
+         "17f3zppjjprs2jnklvzkz23mh9jdn6b1f445mvrjdm4ivi15q28v"))
        (patches (search-patches "python-paste-remove-timing-test.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -4198,6 +4198,9 @@ available in Django, but is a standalone package.")
            ;; This test calls out to the internet.
            (delete-file "tests/test_proxy.py") #t))))
     (build-system python-build-system)
+    (arguments
+      ; TODO Tests fail to load modules defined by this package.
+      `(#:tests? #f))
     (native-inputs
      `(("python-pytest" ,python-pytest)
        ("python-pytest-runner" ,python-pytest-runner)
-- 
2.31.1

From 112098fb9edfa200b82cf0b108d74ab71afab029 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 10 May 2021 23:20:58 -0700
Subject: [PATCH 51/55] python-swiftclient: upgrade to latest (3.11.1)

---
 gnu/packages/openstack.scm | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 638d4e5436..ab9600e889 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -1068,15 +1068,22 @@ LDAP.")
 (define-public python-swiftclient
   (package
     (name "python-swiftclient")
-    (version "2.6.0")
+    (version "3.11.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "python-swiftclient" version))
         (sha256
          (base32
-          "1j33l4z9vqh0scfncl4fxg01zr1hgqxhhai6gvcih1gccqm4nd7p"))))
+          "0494f7ghk58r4lmq92c2aaixv00qswqgkwx49mgj2gkdcxcrv486"))))
     (build-system python-build-system)
+    (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (replace 'check
+                   (lambda _
+                     (invoke "stestr" "run")
+                     #t)))))
     (native-inputs
      `(("python-pbr" ,python-pbr)
        ("python-sphinx" ,python-sphinx)
@@ -1085,10 +1092,13 @@ LDAP.")
        ("python-discover" ,python-discover)
        ("python-hacking" ,python-hacking)
        ("python-mock" ,python-mock)
+       ("python-openstacksdk" ,python-openstacksdk)
        ("python-oslosphinx" ,python-oslosphinx)
+       ("python-stestr", python-stestr)
        ("python-keystoneclient" ,python-keystoneclient)
        ("python-testrepository" ,python-testrepository)
-       ("python-testtools" ,python-testtools)))
+       ("python-testtools" ,python-testtools)
+       ("which" ,which)))
     (propagated-inputs
      `(("python-requests" ,python-requests)
        ("python-six" ,python-six)))
-- 
2.31.1

From 99c44d82ed19a3eb657f41134fd4d8eca8eaa999 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 10 May 2021 22:47:19 -0700
Subject: [PATCH 50/55] python-openstacksdk: new package

---
 gnu/packages/openstack.scm                    | 66 +++++++++++++++++++
 .../python-openstacksdk-requirements.patch    | 13 ++++
 2 files changed, 79 insertions(+)
 create mode 100644 gnu/packages/patches/python-openstacksdk-requirements.patch

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index ac6d7f816d..638d4e5436 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -27,6 +27,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages monitoring)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
@@ -999,6 +1000,71 @@ LDAP.")
       "Import exceptions from potentially bundled packages in requests.")
     (license asl2.0)))
 
+(define-public python-openstacksdk
+  (package
+    (name "python-openstacksdk")
+    (version "0.56.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "openstacksdk" version))
+        (sha256
+          (base32
+            "0nzn1q93333shwn5fnz69lh6cq0im1d3vwwmkw2yy0snd9s36xlw"))
+        (patches (search-patches "python-openstacksdk-requirements.patch"))))
+    (build-system python-build-system)
+    (arguments
+      `(; Tests are unstable due to timeouts (3785 pass, 5 fail)
+        #:tests? #f
+        ;#:phases
+        ;(modify-phases %standard-phases
+        ;  (replace 'check
+        ;           (lambda _
+        ;             (invoke "stestr" "run")
+        ;             #t)))
+        ))
+    (native-inputs
+      `(("python-hacking" ,python-hacking)
+        ("python-coverage" ,python-coverage)
+        ("python-ddt" ,python-ddt)
+        ("python-fixtures" ,python-fixtures)
+        ("python-jsonschema" , python-jsonschema)
+        ("python-prometheus-client" ,python-prometheus-client)
+        ("python-oslo.config" ,python-oslo.config)
+        ("python-oslotest" ,python-oslotest)
+        ("python-requests-mock" ,python-requests-mock)
+        ("python-statsd" ,python-statsd)
+        ("python-stestr" ,python-stestr)
+        ("python-testscenarios" ,python-testscenarios)
+        ("python-testtools" ,python-testtools)
+        ("which" ,which)))
+    (propagated-inputs
+      `(("python-appdirs" ,python-appdirs)
+        ("python-cryptography" ,python-cryptography)
+        ("python-decorator" ,python-decorator)
+        ("python-dogpile.cache" ,python-dogpile.cache)
+        ("python-importlib-metadata"
+         ,python-importlib-metadata)
+        ("python-iso8601" ,python-iso8601)
+        ("python-jmespath" ,python-jmespath)
+        ("python-jsonpatch" ,python-jsonpatch)
+        ("python-keystoneauth1" ,python-keystoneauth1)
+        ("python-munch" ,python-munch)
+        ("python-netifaces" ,python-netifaces)
+        ("python-os-service-types"
+         ,python-os-service-types)
+        ("python-pbr" ,python-pbr)
+        ("python-pyyaml" ,python-pyyaml)
+        ("python-requestsexceptions"
+         ,python-requestsexceptions)))
+    (home-page
+      "https://docs.openstack.org/openstacksdk/")
+    (synopsis
+      "An SDK for building applications to work with OpenStack")
+    (description
+      "An SDK for building applications to work with OpenStack")
+    (license asl2.0)))
+
 (define-public python-swiftclient
   (package
     (name "python-swiftclient")
diff --git a/gnu/packages/patches/python-openstacksdk-requirements.patch b/gnu/packages/patches/python-openstacksdk-requirements.patch
new file mode 100644
index 0000000000..e53d2084a4
--- /dev/null
+++ b/gnu/packages/patches/python-openstacksdk-requirements.patch
@@ -0,0 +1,13 @@
+diff --git a/test-requirements.txt b/test-requirements.txt
+index 3f22c9d1..1fc940b7 100644
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -1,7 +1,7 @@
+ # The order of packages is significant, because pip processes them in the order
+ # of appearance. Changing the order has an impact on the overall integration
+ # process, which may cause wedges in the gate later.
+-hacking>=3.1.0,<4.0.0 # Apache-2.0
++hacking>=3.1.0 # Apache-2.0
+ 
+ coverage!=4.4,>=4.0 # Apache-2.0
+ ddt>=1.0.1 # MIT
-- 
2.31.1

From 77a72a4f598df83b370fb24573b5263ad4b1ac74 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 10 May 2021 22:45:38 -0700
Subject: [PATCH 49/55] python-requestsexceptions: new package

---
 gnu/packages/openstack.scm                    | 23 +++++++++++++++++++
 ...thon-requestsexceptions-requirements.patch | 10 ++++++++
 2 files changed, 33 insertions(+)
 create mode 100644 gnu/packages/patches/python-requestsexceptions-requirements.patch

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 30501cf3e0..ac6d7f816d 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -976,6 +976,29 @@ SQLite for its identity store database, with the option to connect to external
 LDAP.")
     (license asl2.0)))
 
+(define-public python-requestsexceptions
+  (package
+    (name "python-requestsexceptions")
+    (version "1.4.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "requestsexceptions" version))
+        (sha256
+          (base32
+            "0r9hp9yzgj8r81q5gc6r8sgxldqc09xi6ax0b7a6dw0qfv3wp5dh"))
+        (patches (search-patches "python-requestsexceptions-requirements.patch"))))
+    (build-system python-build-system)
+    (native-inputs
+      `(("python-hacking" ,python-hacking)
+        ("python-pbr" ,python-pbr)))
+    (home-page "http://www.openstack.org/")
+    (synopsis
+      "Import exceptions from potentially bundled packages in requests.")
+    (description
+      "Import exceptions from potentially bundled packages in requests.")
+    (license asl2.0)))
+
 (define-public python-swiftclient
   (package
     (name "python-swiftclient")
diff --git a/gnu/packages/patches/python-requestsexceptions-requirements.patch b/gnu/packages/patches/python-requestsexceptions-requirements.patch
new file mode 100644
index 0000000000..fdffa43432
--- /dev/null
+++ b/gnu/packages/patches/python-requestsexceptions-requirements.patch
@@ -0,0 +1,10 @@
+diff --git a/test-requirements.txt b/test-requirements.txt
+index e069914..ea88824 100644
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -1,4 +1,4 @@
+ # The order of packages is significant, because pip processes them in the order
+ # of appearance. Changing the order has an impact on the overall integration
+ # process, which may cause wedges in the gate later.
+-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
++hacking!=0.13.0,>=0.12.0 # Apache-2.0
-- 
2.31.1

From 3078f3df5e1974a256a956e49c48551f72dbca62 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 10 May 2021 08:47:20 -0700
Subject: [PATCH 48/55] python-munch: upgrade to latest (2.5.0)

---
 gnu/packages/python-xyz.scm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0eb15e1fa5..604d20b97e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -5147,15 +5147,20 @@ Numeric.")
 (define-public python-munch
   (package
     (name "python-munch")
-    (version "2.0.4")
+    (version "2.5.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "munch" version))
         (sha256
          (base32
-          "1cmqg91xnqx8gvnh4pmp0bfl1dfcm65d5p9mg73zz8pkjhx6h80l"))))
+          "1lnvlic9g68hcmgdnv5bzp0nx2bf1kjclj54gx0s7nyl4ipmywrd"))))
     (build-system python-build-system)
+    (native-inputs
+      `(("python-pbr" ,python-pbr)
+        ("python-pytest" ,python-pytest)))
+    (propagated-inputs
+      `(("python-six" ,python-six)))
     (home-page "https://github.com/Infinidat/munch")
     (synopsis "Dot-accessible dictionary")
     (description "Munch is a dot-accessible dictionary similar to JavaScript
-- 
2.31.1

From c7631117b73da091b79d5a6cab68e8456060bf50 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 10 May 2021 08:11:19 -0700
Subject: [PATCH 47/55] python-decorator: upgrade to latest (4.4.2)

---
 gnu/packages/python-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7e73a097f1..0eb15e1fa5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -6986,13 +6986,13 @@ PNG, PostScript, PDF, and SVG file output.")
 (define-public python-decorator
   (package
     (name "python-decorator")
-    (version "4.3.0")
+    (version "4.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "decorator" version))
        (sha256
-        (base32 "0308djallnh00v112y5b7nadl657ysmkp6vc8xn51d6yzc9zm7n3"))))
+        (base32 "1rxzhk5zwiggk45hl53zydvy70lk654kg0nc1p54090p402jz9p3"))))
     (build-system python-build-system)
     (home-page "https://pypi.org/project/decorator/")
     (synopsis "Python module to simplify usage of decorators")
-- 
2.31.1

From 8afb9bc3684e9e379b1b55472c8d616d3cc01740 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 10 May 2021 07:58:08 -0700
Subject: [PATCH 46/55] python-statsd: new package

---
 .../patches/python-statsd-requirements.patch  | 11 ++++++++
 gnu/packages/python-xyz.scm                   | 25 +++++++++++++++++++
 2 files changed, 36 insertions(+)
 create mode 100644 gnu/packages/patches/python-statsd-requirements.patch

diff --git a/gnu/packages/patches/python-statsd-requirements.patch b/gnu/packages/patches/python-statsd-requirements.patch
new file mode 100644
index 0000000000..f0cf869aa7
--- /dev/null
+++ b/gnu/packages/patches/python-statsd-requirements.patch
@@ -0,0 +1,11 @@
+diff --git a/requirements.txt b/requirements.txt
+index 6aa9af6..9488982 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -1,3 +1,3 @@
+-mock==1.0.1
+-nose==1.2.1
+-flake8==1.7.0
++mock>=1.0.1
++nose>=1.2.1
++flake8>=1.7.0
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6b0ab4a9f1..7e73a097f1 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26174,3 +26174,28 @@ representing paths or filenames.")
     (description
       "A caching front-end based on the Dogpile lock.")
     (license license:expat)))
+
+(define-public python-statsd
+  (package
+    (name "python-statsd")
+    (version "3.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri 
+          (git-reference
+            (url "https://github.com/jsocol/pystatsd.git")
+            (commit (string-append "v" version))))
+        (sha256
+          (base32
+            "1i9mfpq8f9aciqzkkz4irgvz8vs9nwjcfhvrj6ak2cgqchszsiaf"))
+        (patches (search-patches "python-statsd-requirements.patch"))))
+    (build-system python-build-system)
+    (native-inputs
+      `(("python-flake8" ,python-flake8)
+        ("python-mock" ,python-mock)
+        ("python-nose" ,python-nose)))
+    (home-page "https://github.com/jsocol/pystatsd")
+    (synopsis "A simple statsd client.")
+    (description "A simple statsd client.")
+    (license license:expat)))
-- 
2.31.1

From 16eca7de16841393cc842a6fd7e0eb7468da0b90 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 10 May 2021 07:01:51 -0700
Subject: [PATCH 45/55] python-dogpile.cache: new package

---
 gnu/packages/python-xyz.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 8a6bffc46f..6b0ab4a9f1 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26146,3 +26146,31 @@ representing paths or filenames.")
     (synopsis "High-level interface to Kerberos")
     (description "High-level interface to Kerberos")
     (license license:asl2.0)))
+
+(define-public python-dogpile.cache
+  (package
+    (name "python-dogpile.cache")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "dogpile.cache" version))
+        (sha256
+          (base32
+            "0iba1cdam6hclkqhhhhfaii8qvb84qbnka362gpvgpm3f934cd11"))))
+    (build-system python-build-system)
+    (arguments
+      ; TODO package test dependencies.
+      ; The test code also looks like it includes integration tests for redis
+      ; and memcache which will require networking.
+      `(#:tests? #f))
+    (propagated-inputs
+      `(("python-decorator" ,python-decorator)
+        ("python-stevedore" ,python-stevedore)))
+    (home-page
+      "https://github.com/sqlalchemy/dogpile.cache")
+    (synopsis
+      "A caching front-end based on the Dogpile lock.")
+    (description
+      "A caching front-end based on the Dogpile lock.")
+    (license license:expat)))
-- 
2.31.1

From 6dc81df59916747ed64d1a22d303a822663c7e30 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 9 May 2021 00:42:28 -0700
Subject: [PATCH 44/55] python-six: upgrade to 1.16.0 (latest)

---
 gnu/packages/python-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f19f71fec4..8a6bffc46f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2245,14 +2245,14 @@ in the current session, Python, and the OS.")
 (define-public python-six
   (package
     (name "python-six")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "six" version))
       (sha256
        (base32
-        "02lw67hprv57hyg3cfy02y3ixjk3nzwc0dx3c4ynlvkfwkfdnsr3"))))
+        "09n9qih9rpj95q3r4a40li7hk6swma11syvgwdc68qm1fxsc6q8y"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.31.1

From 7755a22a2d43d1795aa6e09eb24d08680a0178d6 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 9 May 2021 00:22:35 -0700
Subject: [PATCH 43/55] python-moto: upgrade to 2.0.6 (latest)

---
 gnu/packages/python-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c0baa64ca0..f19f71fec4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -12489,13 +12489,13 @@ text.")
   (package
     (name "python-moto")
     ;; XXX: Use a pre-release for compatibility with latest botocore & friends.
-    (version "1.3.16.dev134")
+    (version "2.0.6")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "moto" version))
               (sha256
                (base32
-                "1pix0c7zszjwzfy88n1rpih9vkdm25nqcvz93z850xvgwb4v81bd"))))
+                "146xchkhfkbj4faf4ap9g8sxzdipscjm2y44gasanv206xl1g0kr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
-- 
2.31.1

From 7d0e9f72db866eadfebfa33d3cfa7fb5072fc7bd Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 23:52:47 -0700
Subject: [PATCH 42/55] awscli: upgrade to latest (1.19.69)

---
 gnu/packages/python-web.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 2fd56df6ed..a32c501d0a 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2850,14 +2850,14 @@ 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.18.203")
+    (version "1.19.69")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri name version))
        (sha256
         (base32
-         "128zg24961j8nmnq2dxqg6a7zwh3qgv87cmvclsdqwwih9nigxv9"))))
+         "0n4ly2gkgakywn306wixz2pwnzvnpp0cb5ys8lxwqp6am6dzh0w1"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: The 'pypi' release does not contain tests.
-- 
2.31.1

From 928c160138de011b10c959ca7b1fc2951450a94c Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 23:52:17 -0700
Subject: [PATCH 41/55] python-s3transfer: upgrade to latest (0.4.2)

---
 gnu/packages/python-web.scm | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 2bb5605111..2fd56df6ed 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -3391,26 +3391,17 @@ Betamax that may possibly end up in the main package.")
 (define-public python-s3transfer
   (package
     (name "python-s3transfer")
-    (version "0.3.3")
+    (version "0.4.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "s3transfer" version))
               (sha256
                (base32
-                "1nzp5kwmy9669334shcz9ipg89jgpdqhrmbkgdg18r7wmvi3f6lj"))))
+                "1cp169vz9rvng7dwbn33fgdbl3b014zpsdqsnfxxw7jm2r5jy0nb"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch
-           (lambda _
-             ;; There's a small issue with one test with Python 3.8, this
-             ;; change has been suggested upstream:
-             ;; https://github.com/boto/s3transfer/pull/164
-             (substitute* "tests/unit/test_s3transfer.py"
-               (("super\\(FailedDownloadParts, self\\)\\.submit\\(function\\)")
-                "futures.Future()"))
-             #t))
          (replace 'check
            (lambda _
              ;; Some of the 'integration' tests require network access or
@@ -3422,8 +3413,7 @@ Betamax that may possibly end up in the main package.")
        ("python-mock" ,python-mock)
        ("python-nose" ,python-nose)))
     (propagated-inputs
-     `(("python-botocore" ,python-botocore)
-       ("python-urllib3" ,python-urllib3)))
+     `(("python-botocore" ,python-botocore)))
     (synopsis "Amazon S3 Transfer Manager")
     (description "S3transfer is a Python library for managing Amazon S3
 transfers.")
-- 
2.31.1

From b9fbbbee7abf7fcbe759564d9014eceef536fdf8 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 23:51:18 -0700
Subject: [PATCH 40/55] python-boto3: upgrade to latest (1.17.69)

---
 gnu/packages/python-xyz.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 709a629d66..c0baa64ca0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -12894,7 +12894,7 @@ interface to the Amazon Web Services (AWS) API.")
 (define-public python-boto3
   (package
     (name "python-boto3")
-    (version "1.16.22")
+    (version "1.17.69")
     (home-page "https://github.com/boto/boto3")
     (source (origin
               (method git-fetch)
@@ -12902,7 +12902,7 @@ interface to the Amazon Web Services (AWS) API.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0h20hgl4yfl58g75qhb6ibrdmzn47md3srgar7hask14cjmfhfy3"))))
+                "08h4ihqgg6lmznl3l2vj8cly7ln82f4y0brab5h4cayskpgfhvi0"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -12914,7 +12914,8 @@ interface to the Amazon Web Services (AWS) API.")
     (build-system python-build-system)
     (native-inputs
      `(("python-nose" ,python-nose)
-       ("python-mock" ,python-mock)))
+       ("python-mock" ,python-mock)
+       ("python-wheel" ,python-wheel)))
     (propagated-inputs
      `(("python-botocore" ,python-botocore)
        ("python-jmespath" ,python-jmespath)
-- 
2.31.1

From e923c26735b7f0c714f4f361317832cfbf9d2031 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 23:49:58 -0700
Subject: [PATCH 39/55] python-botocore: upgrade to latest (1.20.69)

---
 gnu/packages/python-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 102780483e..709a629d66 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -12866,14 +12866,14 @@ This software is unmaintained, and new projects 
should use @code{boto3} instead.
   ;; are compatible.
   (package
     (name "python-botocore")
-    (version "1.19.22")
+    (version "1.20.69")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "botocore" version))
        (sha256
         (base32
-         "0iim86x7c6hqmvd61ygz6x6x9glnsfbnyzv2y67qjdcdx8jpkmw7"))))
+         "10k0vg39psz4vccpig8nz2d7nmmm0lxpwhrb50yy7v33fxvx753y"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: Many tests are failing.
-- 
2.31.1

From 445ed41b9678a0d2af1c5e7a2bfdffe4e0efad61 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 22:55:27 -0700
Subject: [PATCH 38/55] python-keystoneclient: upgrade to latest (4.2.0) and
 fix tests

---
 gnu/packages/openstack.scm | 39 ++++++++++++++++++--------------------
 1 file changed, 18 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index df17c4233c..30501cf3e0 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -921,50 +921,47 @@ handling.")
 (define-public python-keystoneclient
   (package
     (name "python-keystoneclient")
-    (version "1.8.1")
+    (version "4.2.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "python-keystoneclient" version))
         (sha256
          (base32
-          "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))
+          "12jsiw82x2zcn8sf78xisf85kr28gl3jqj46a0wxx59v91p44j02"))))
     (build-system python-build-system)
     (arguments
-     '(#:tests? #f)) ; FIXME: Many tests are failing.
+      `(#:phases
+        (modify-phases %standard-phases
+          (replace 'check
+                   (lambda _
+                     (invoke "stestr" "run")
+                     #t)))))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)
-       ;; and some packages for the tests
-       ("openssl" ,openssl)
+     `(("openssl" ,openssl)
+       ("python-bandit" ,python-bandit)
        ("python-coverage" ,python-coverage)
-       ("python-discover" ,python-discover)
        ("python-fixtures" ,python-fixtures)
-       ("python-hacking" ,python-hacking)
-       ("python-keyring" ,python-keyring)
+       ("python-flake8-docstrings" ,python-flake8-docstrings)
        ("python-lxml" ,python-lxml)
-       ("python-mock" ,python-mock)
-       ("python-mox3" ,python-mox3)
        ("python-oauthlib" ,python-oauthlib)
-       ("python-oslosphinx" ,python-oslosphinx)
+       ("python-os-client-config" ,python-os-client-config)
        ("python-oslotest" ,python-oslotest)
-       ("python-pycrypto" ,python-pycrypto)
        ("python-requests-mock" ,python-requests-mock)
-       ("python-temptest-lib" ,python-tempest-lib)
-       ("python-testrepository" ,python-testrepository)
+       ("python-tempest-lib" ,python-tempest-lib)
+       ("python-stestr" ,python-stestr)
        ("python-testresources" ,python-testresources)
+       ("python-testscenarios" ,python-testscenarios)
        ("python-testtools" ,python-testtools)
-       ("python-webob" ,python-webob)))
+       ("which" ,which)))
     (propagated-inputs
-     `(("python-babel" ,python-babel)
-       ("python-debtcollector" ,python-debtcollector)
-       ("python-iso8601" ,python-iso8601)
-       ("python-netaddr" ,python-netaddr)
+     `(("python-debtcollector" ,python-debtcollector)
+       ("python-keystoneauth1" ,python-keystoneauth1)
        ("python-oslo.config" ,python-oslo.config)
        ("python-oslo.i18n" ,python-oslo.i18n)
        ("python-oslo.serialization" ,python-oslo.serialization)
        ("python-oslo.utils" ,python-oslo.utils)
        ("python-pbr" ,python-pbr)
-       ("python-prettytable" ,python-prettytable)
        ("python-requests" ,python-requests)
        ("python-six" ,python-six)
        ("python-stevedore" ,python-stevedore)))
-- 
2.31.1

From a60ced7ac200938ea44011b5c836da8785d53469 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 22:53:49 -0700
Subject: [PATCH 37/55] python-keystoneauth1: new package

---
 gnu/packages/openstack.scm                    | 63 +++++++++++++++++++
 .../python-keystoneauth1-requirements.patch   | 21 +++++++
 2 files changed, 84 insertions(+)
 create mode 100644 gnu/packages/patches/python-keystoneauth1-requirements.patch

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 87cd42ab70..df17c4233c 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -24,6 +24,7 @@
 
 (define-module (gnu packages openstack)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages python)
@@ -855,6 +856,68 @@ handling.")
       "Python library for consuming OpenStack sevice-types-authority data")
     (license asl2.0)))
 
+(define-public python-keystoneauth1
+  (package
+    (name "python-keystoneauth1")
+    (version "4.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "keystoneauth1" version))
+        (sha256
+          (base32
+            "0r4ach6adh7z1kq9k378aii9mgn1kmg6iicvclqlyhnilqq58q4k"))
+        ; Remove max versions from requirements
+        (patches (search-patches "python-keystoneauth1-requirements.patch"))))
+    (build-system python-build-system)
+    (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (replace 'check
+                   (lambda _
+                     (invoke "stestr" "run")
+                     #t)))))
+    (propagated-inputs
+      `(("python-iso8601" ,python-iso8601)
+        ("python-os-service-types"
+         ,python-os-service-types)
+        ("python-pbr" ,python-pbr)
+        ("python-requests" ,python-requests)
+        ("python-six" ,python-six)
+        ("python-stevedore" ,python-stevedore)))
+    (native-inputs
+      `(("python-bandit" ,python-bandit)
+        ("python-betamax" ,python-betamax)
+        ("python-coverage" ,python-coverage)
+        ("python-fixtures" ,python-fixtures)
+        ("python-flake8-docstrings"
+         ,python-flake8-docstrings)
+        ("python-flake8-import-order"
+         ,python-flake8-import-order)
+        ("python-hacking" ,python-hacking)
+        ("python-lxml" ,python-lxml)
+        ("python-oauthlib" ,python-oauthlib)
+        ("python-oslo.config" ,python-oslo.config)
+        ("python-oslo.utils" ,python-oslo.utils)
+        ("python-oslotest" ,python-oslotest)
+        ("python-pycodestyle" ,python-pycodestyle)
+        ("python-pyyaml" ,python-pyyaml)
+        ("python-reno" ,python-reno)
+        ("python-requests-kerberos"
+         ,python-requests-kerberos)
+        ("python-requests-mock" ,python-requests-mock)
+        ("python-stestr" ,python-stestr)
+        ("python-testresources" ,python-testresources)
+        ("python-testtools" ,python-testtools)
+        ("which" ,which)))
+    (home-page
+      "https://docs.openstack.org/keystoneauth/latest/")
+    (synopsis
+      "Authentication Library for OpenStack Identity")
+    (description
+      "Authentication Library for OpenStack Identity")
+    (license #f)))
+
 (define-public python-keystoneclient
   (package
     (name "python-keystoneclient")
diff --git a/gnu/packages/patches/python-keystoneauth1-requirements.patch 
b/gnu/packages/patches/python-keystoneauth1-requirements.patch
new file mode 100644
index 0000000000..e5599047e9
--- /dev/null
+++ b/gnu/packages/patches/python-keystoneauth1-requirements.patch
@@ -0,0 +1,21 @@
+diff --git a/test-requirements.txt b/test-requirements.txt
+index bb35c19..8bf74c6 100644
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -2,12 +2,12 @@
+ # of appearance. Changing the order has an impact on the overall integration
+ # process, which may cause wedges in the gate later.
+ 
+-hacking>=3.0.1,<3.1.0 # Apache-2.0
+-flake8-docstrings==0.2.1.post1 # MIT
++hacking>=3.0.1 # Apache-2.0
++flake8-docstrings>=0.2.1.post1 # MIT
+ flake8-import-order>=0.17.1 #LGPLv3
+-pycodestyle>=2.0.0,<2.6.0 # MIT
++pycodestyle>=2.0.0 # MIT
+ 
+-bandit<1.6.0,>=1.1.0 # Apache-2.0
++bandit>=1.1.0 # Apache-2.0
+ coverage!=4.4,>=4.0 # Apache-2.0
+ fixtures>=3.0.0 # Apache-2.0/BSD
+ oslo.config>=5.2.0 # Apache-2.0
-- 
2.31.1

From 54c36aedac3c8fd848500ce2a66b0a937f170bd5 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 22:52:06 -0700
Subject: [PATCH 36/55] python-os-service-types: new package

---
 gnu/packages/openstack.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index fdfada734b..87cd42ab70 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -831,6 +831,30 @@ functions, such as encoding, exception handling, string manipulation, and time
 handling.")
     (license asl2.0)))
 
+(define-public python-os-service-types
+  (package
+    (name "python-os-service-types")
+    (version "1.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "os-service-types" version))
+        (sha256
+          (base32
+            "0v4chwr5jykkvkv4w7iaaic7gb06j6ziw7xrjlwkcf92m2ch501i"))))
+    (build-system python-build-system)
+    (arguments
+      ; TODO package test dependencies
+      `(#:tests? #f))
+    (propagated-inputs `(("python-pbr" ,python-pbr)))
+    (home-page
+      "https://docs.openstack.org/os-service-types/latest/")
+    (synopsis
+      "Python library for consuming OpenStack sevice-types-authority data")
+    (description
+      "Python library for consuming OpenStack sevice-types-authority data")
+    (license asl2.0)))
+
 (define-public python-keystoneclient
   (package
     (name "python-keystoneclient")
-- 
2.31.1

From 093b38da966f8a591160ac5ba6587b311ee4e50c Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 22:43:45 -0700
Subject: [PATCH 35/55] python-flake8-import-order: new package

---
 gnu/packages/python-xyz.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f27c6170f5..102780483e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9509,6 +9509,34 @@ the same line (which can be introduced by the code 
formatting tool Black), or
 unnecessary plus operators for explicit string literal concatenation.")
     (license license:expat)))
 
+(define-public python-flake8-import-order
+  (package
+    (name "python-flake8-import-order")
+    (version "0.18.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "flake8-import-order" version))
+        (sha256
+          (base32
+            "14kfvsagqc6lrplvf3x58ia6x744bk8fj91wmk0hcipa8naw73d2"))))
+    (build-system python-build-system)
+    (native-inputs
+      `(("python-pytest", python-pytest)
+        ("python-flake8", python-flake8)
+        ("python-pycodestyle", python-pycodestyle)
+        ("python-pylama", python-pylama)))
+    (propagated-inputs
+      `(("python-pycodestyle" ,python-pycodestyle)
+        ("python-setuptools" ,python-setuptools)))
+    (home-page
+      "https://github.com/PyCQA/flake8-import-order")
+    (synopsis
+      "Flake8 and pylama plugin that checks the ordering of import statements.")
+    (description
+      "Flake8 and pylama plugin that checks the ordering of import statements.")
+    (license license:lgpl3)))
+
 (define-public python-flake8-polyfill
   (package
     (name "python-flake8-polyfill")
-- 
2.31.1

From 782e3b1f71befb60022d8be0f3424ecb0d905ed2 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 22:37:25 -0700
Subject: [PATCH 34/55] python-pylama: new package

---
 .../patches/python-pylama-eradicate.patch     | 32 ++++++++++++++++++
 gnu/packages/python-xyz.scm                   | 33 +++++++++++++++++++
 2 files changed, 65 insertions(+)
 create mode 100644 gnu/packages/patches/python-pylama-eradicate.patch

diff --git a/gnu/packages/patches/python-pylama-eradicate.patch b/gnu/packages/patches/python-pylama-eradicate.patch
new file mode 100644
index 0000000000..33bfcee324
--- /dev/null
+++ b/gnu/packages/patches/python-pylama-eradicate.patch
@@ -0,0 +1,32 @@
+diff --git a/pylama/lint/pylama_eradicate.py b/pylama/lint/pylama_eradicate.py
+index 3a00425..645eaaf 100644
+--- a/pylama/lint/pylama_eradicate.py
++++ b/pylama/lint/pylama_eradicate.py
+@@ -1,5 +1,5 @@
+ """Commented-out code checking."""
+-from eradicate import commented_out_code_line_numbers
++from eradicate import Eradicator
+ from pylama.lint import Linter as Abstract
+ 
+ try:
+@@ -19,7 +19,7 @@ class Linter(Abstract):
+         :return list: List of errors.
+         """
+         code = converter(code)
+-        line_numbers = commented_out_code_line_numbers(code)
++        line_numbers = Eradicator().commented_out_code_line_numbers(code)
+         lines = code.split('\n')
+ 
+         result = []
+diff --git a/requirements-test.txt b/requirements-test.txt
+index f9ce65b..c84248e 100644
+--- a/requirements-test.txt
++++ b/requirements-test.txt
+@@ -2,6 +2,6 @@
+ 
+ ipdb
+ pytest
+-eradicate   >= 1.0
++eradicate   >= 2.0
+ radon       >= 1.4.2
+ mypy        ; python_version >= '3.5'
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d0d67a0184..f27c6170f5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -505,6 +505,39 @@ threads.")
 task of adding retry behavior to just about anything.")
     (license license:asl2.0)))
 
+(define-public python-pylama
+  (package
+    (name "python-pylama")
+    (version "7.7.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/klen/pylama.git")
+               (commit version)))
+        (sha256
+          (base32
+            "1hza43s8b3znq2vcihyvsyw6j19lm42rjn87i056j8kgrmkfil8w"))
+        (patches (search-patches "python-pylama-eradicate.patch"))))
+    (build-system python-build-system)
+    (native-inputs
+      `(("python-pytest" ,python-pytest)))
+    (propagated-inputs
+      `(("python-astroid" ,python-astroid)
+        ("python-eradicate" ,python-eradicate)
+        ("python-mccabe" ,python-mccabe)
+        ("python-mypy" ,python-mypy)
+        ("python-pycodestyle" ,python-pycodestyle)
+        ("python-pydocstyle" ,python-pydocstyle)
+        ("python-pylint", python-pylint)
+        ("python-pyflakes" ,python-pyflakes)
+        ("python-radon" ,python-radon)))
+    (home-page "https://pylama.readthedocs.io/")
+    (synopsis "pylama -- Code audit tool for python")
+    (description
+      "pylama -- Code audit tool for python")
+    (license license:lgpl3)))
+
 (define-public python-pytelegrambotapi
   (package
     (name "python-pytelegrambotapi")
-- 
2.31.1

From e91b8837b8ad22e878a22dde8f58357a883e5b06 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 22:34:00 -0700
Subject: [PATCH 33/55] python-requests-kerberos: new package

---
 gnu/packages/python-web.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 8f6a820b04..2bb5605111 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2524,6 +2524,36 @@ than Python’s urllib2 library.")
 (define-public python2-requests
   (package-with-python2 python-requests))
 
+(define-public python-requests-kerberos
+  (package
+    (name "python-requests-kerberos")
+    (version "0.12.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "requests-kerberos" version))
+        (sha256
+          (base32
+            "1zaj1bs1bpla7324h85q0kfsrfg4mswkhcc1gva2lg65859g28cx"))))
+    (build-system python-build-system)
+    (arguments
+      ; Tests fail to load module tests_requests_kerberos
+      `(#:tests? #f))
+    (native-inputs
+      `(("python-mock" ,python-mock)))
+    (propagated-inputs
+      `(("python-cryptography" ,python-cryptography)
+        ("python-pykerberos" ,python-pykerberos)
+        ("python-requests" ,python-requests)
+        ("python-winkerberos" ,python-winkerberos)))
+    (home-page
+      "https://github.com/requests/requests-kerberos")
+    (synopsis
+      "A Kerberos authentication handler for python-requests")
+    (description
+      "A Kerberos authentication handler for python-requests")
+    (license license:isc)))
+
 (define-public python-requests-unixsocket
   (package
     (name "python-requests-unixsocket")
-- 
2.31.1

From 109789196b4b514c929f5e7b021c12b0e4d162a9 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 22:31:47 -0700
Subject: [PATCH 32/55] python-winkerberos: new package

---
 gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1acfff262e..d0d67a0184 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26041,6 +26041,31 @@ representing paths or filenames.")
     (description "Run-time type checker for Python")
     (license license:expat)))
 
+(define-public python-winkerberos
+  (package
+    (name "python-winkerberos")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "winkerberos" version ".zip"))
+        (sha256
+          (base32
+            "1nh45r0h2fnwcg334b0icy05h0l30y0hr5p1vjzy1pyz4xmpgy9a"))))
+    ; This is a windows package. Skip building it and just provide
+    ; the package so the dependency may be resolved.
+    (build-system trivial-build-system)
+    (arguments
+      `(#:builder (begin (mkdir %output) #t)))
+    (native-inputs `(("unzip" ,unzip)))
+    (home-page
+      "https://github.com/mongodb-labs/winkerberos")
+    (synopsis
+      "High level interface to SSPI for Kerberos client auth")
+    (description
+      "High level interface to SSPI for Kerberos client auth")
+    (license license:asl2.0)))
+
 (define-public python-pykerberos
   (package
     (name "python-pykerberos")
-- 
2.31.1

From 6dcc75adfe8e577d1d11e70b5d7465eb4d51d8b6 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sat, 8 May 2021 22:31:17 -0700
Subject: [PATCH 31/55] python-pykerberos: new package

---
 gnu/packages/python-xyz.scm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c096be93d8..1acfff262e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26040,3 +26040,22 @@ representing paths or filenames.")
     (synopsis "Run-time type checker for Python")
     (description "Run-time type checker for Python")
     (license license:expat)))
+
+(define-public python-pykerberos
+  (package
+    (name "python-pykerberos")
+    (version "1.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "pykerberos" version))
+        (sha256
+          (base32
+            "0v47p840myqgc7hr4lir72xshcfpa0w8j9n077h3njpqyn6wlbag"))))
+    (build-system python-build-system)
+    (inputs
+     `(("mit-krb5" ,mit-krb5)))
+    (home-page "")
+    (synopsis "High-level interface to Kerberos")
+    (description "High-level interface to Kerberos")
+    (license license:asl2.0)))
-- 
2.31.1

From 2eb650d4eb1db2e8a1fd51b2fc62c7dca00f9d94 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Fri, 7 May 2021 08:16:34 -0700
Subject: [PATCH 30/55] python-flake8-docstrings: new package (via guix import)

---
 gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0a1a8ba5b2..c096be93d8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9428,6 +9428,29 @@ These should be used in preference to using a backslash for line continuation.
 @end quotation")
     (license license:asl2.0)))
 
+(define-public python-flake8-docstrings
+  (package
+    (name "python-flake8-docstrings")
+    (version "1.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "flake8-docstrings" version))
+        (sha256
+          (base32
+            "0jy3i9q57kl45gpwlfdvhigsa7gbx5hjyp055bkghjh60siwdrwz"))))
+    (build-system python-build-system)
+    (propagated-inputs
+      `(("python-flake8" ,python-flake8)
+        ("python-pydocstyle" ,python-pydocstyle)))
+    (home-page
+      "https://gitlab.com/pycqa/flake8-docstrings")
+    (synopsis
+      "Extension for flake8 which uses pydocstyle to check docstrings")
+    (description
+      "Extension for flake8 which uses pydocstyle to check docstrings")
+    (license license:expat)))
+
 (define-public python-flake8-implicit-str-concat
   (package
     (name "python-flake8-implicit-str-concat")
-- 
2.31.1

From a93b05f108b38bfc14739e4baf227e6737f54cd8 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Thu, 6 May 2021 02:41:42 -0700
Subject: [PATCH 29/55] python-kombu: upgrade to latest (5.0.2)

---
 gnu/packages/python-xyz.scm | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 707fac83f5..0a1a8ba5b2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13152,14 +13152,14 @@ applications.")
 (define-public python-kombu
   (package
     (name "python-kombu")
-    (version "4.2.2")
+    (version "5.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "kombu" version))
        (sha256
         (base32
-         "15k8f7mzqr049sg9vi48m19vjykviafk3f0p5xzgw9by0x0kyxjj"))))
+         "0g5c0lg2abva1d8nrc824jk5fcvf8kbbbvhb8xyx86271ax5z5pl"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-mock" ,python-mock)
@@ -13168,9 +13168,7 @@ applications.")
        ("python-pytest-sugar" ,python-pytest-sugar)
        ("python-pytz" ,python-pytz)))
     (propagated-inputs
-     `(("python-anyjson" ,python-anyjson)
-       ("python-amqp" ,python-amqp)
-       ("python-redis" ,python-redis)))
+     `(("python-amqp" ,python-amqp)))
     (home-page "https://kombu.readthedocs.io")
     (synopsis "Message passing library for Python")
     (description "The aim of Kombu is to make messaging in Python as easy as
-- 
2.31.1

From 26363b2514cedca1d52bf5c24721417ae71dd03a Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Thu, 6 May 2021 02:37:22 -0700
Subject: [PATCH 28/55] python-amqp: upgrade to latest (5.0.6)

---
 gnu/packages/python-xyz.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1055887921..707fac83f5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13081,17 +13081,21 @@ and provides a uniform API regardless of which JSON implementation is used.")
 (define-public python-amqp
   (package
     (name "python-amqp")
-    (version "2.3.2")
+    (version "5.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "amqp" version))
        (sha256
         (base32
-         "1sv600dgqwpimr6i1g59y9hpn50mc236gdqkr7zin13kvlpx0g87"))))
+         "1hk8jli0s8dinxwihskzbwqlrancsgfxh1hjpzw32k5kyaa6xq83"))))
     (build-system python-build-system)
+    (arguments
+      ; Tests require networking - disabled.
+      `(#:tests? #f))
     (native-inputs
      `(("python-case" ,python-case)
+       ("python-pytest-rerunfailures" ,python-pytest-rerunfailures)
        ("python-pytest-sugar" ,python-pytest-sugar)
        ("python-mock" ,python-mock)))
     (propagated-inputs
-- 
2.31.1

From b20a0a99b14fec49b5af3ff86fdc0d58fbd85644 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Thu, 6 May 2021 02:21:38 -0700
Subject: [PATCH 27/55] python-pytest-rerunfailures: new package

---
 gnu/packages/python-check.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 122098ae17..1e801ca282 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -1519,3 +1519,26 @@ or use cases.  Design is based on supporting slow, 
io-bound testing with often
 tedious system under test configuration that can benefit from running several
 tests at one time.")
     (license license:expat)))
+
+(define-public python-pytest-rerunfailures
+  (package
+    (name "python-pytest-rerunfailures")
+    (version "9.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "pytest-rerunfailures" version))
+        (sha256
+          (base32
+            "1wi711wn0xdzd8zwpirsd4p5ycpf2krymdaf84c3j6qjzhbimc8w"))))
+    (build-system python-build-system)
+    (propagated-inputs
+      `(("python-pytest" ,python-pytest)
+        ("python-setuptools" ,python-setuptools)))
+    (home-page
+      "https://github.com/pytest-dev/pytest-rerunfailures")
+    (synopsis
+      "pytest plugin to re-run tests to eliminate flaky failures")
+    (description
+      "pytest plugin to re-run tests to eliminate flaky failures")
+    (license #f)))
-- 
2.31.1

From 37fadd7d049f2fa107df00d1ef65d4d7f65e5521 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Thu, 6 May 2021 02:09:52 -0700
Subject: [PATCH 26/55] python-vine: upgrade to 5.0.0 (latest)

---
 gnu/packages/python-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4637062f90..1055887921 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -3611,14 +3611,14 @@ provides Python-specific tags that represent an arbitrary Python object.")
 (define-public python-vine
   (package
     (name "python-vine")
-    (version "1.1.4")
+    (version "5.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "vine" version))
        (sha256
         (base32
-         "0wkskb2hb494v9gixqnf4bl972p4ibcmxdykzpwjlfa5picns4aj"))))
+         "0zk3pm0g7s4qfn0gk28lfmsyplvisaxi6826cgpq5njkm4j1cfvx"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)
-- 
2.31.1

From 249154c0d0659f69b86d51b17689123a923ab9ec Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Thu, 6 May 2021 00:15:44 -0700
Subject: [PATCH 25/55] python-eventlet: upgrade to latest (0.31.0)

---
 gnu/packages/python-xyz.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a2bd3eec7b..4637062f90 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2162,17 +2162,17 @@ standard.")
 (define-public python-eventlet
   (package
     (name "python-eventlet")
-    (version "0.25.1")
+    (version "0.31.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "eventlet" version))
        (sha256
         (base32
-         "1hgz8jq19wlz8vwqj900ry8cjv578nz4scc91mlc8944yid6573c"))))
+         "0yq13vqd1y5jygyk8ji0z6h8llpagzbrfcdrhzy8gph3q3nc4vmk"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dnspython" ,python-dnspython)
+     `(("python-dnspython" ,python-dnspython-1.16)
        ("python-greenlet" ,python-greenlet)
        ("python-monotonic" ,python-monotonic)))
     (arguments
-- 
2.31.1

From 67c16c60322a973df22815980141d74e10405689 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Wed, 5 May 2021 23:53:57 -0700
Subject: [PATCH 24/55] python-oslo.i18n: upgrade to latest (5.0.1)

---
 gnu/packages/openstack.scm | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 9964e90ae9..fdfada734b 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -525,21 +525,18 @@ pipeline and used by various modules such as logging.")
 (define-public python-oslo.i18n
   (package
     (name "python-oslo.i18n")
-    (version "3.20.0")
+    (version "5.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oslo.i18n" version))
        (sha256
         (base32
-         "0kjcdw4bk3mi4vqmqwhhq053kxbbbj05si6nwxd1pzx33z067ky3"))))
+         "0nq3dr2kbrawqvp9q9i8i44z9jliq98i2b9h4dsl6p7p60gbg11l"))))
     (build-system python-build-system)
     (arguments 
       ; Disable tests, due to the cicrular dependency on oslo.config.
       `(#:tests? #f))
-    (propagated-inputs
-     `(("python-babel" ,python-babel)
-       ("python-six" ,python-six)))
     (native-inputs
      `(("python-pbr" ,python-pbr)
        ;; Tests
-- 
2.31.1

From 2f66c990b9b632fd92465b7b0ee9ff92c1d391b2 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Wed, 5 May 2021 23:46:12 -0700
Subject: [PATCH 23/55] python-oslo.serialization: upgrade to latest (4.1.0)

---
 gnu/packages/openstack.scm | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 6d40b18ac7..9964e90ae9 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -631,53 +631,56 @@ handlers and support for context specific logging (like resource id’s etc).")
 (define python-oslo.serialization-deps-patch
   (plain-file "python-oslo.serialization-deps.patch"
 "diff --git a/test-requirements.txt b/test-requirements.txt
-index 72ae4ff..4b76d25 100644
+index 145e8f7..7227d6c 100644
 --- a/test-requirements.txt
 +++ b/test-requirements.txt
 @@ -1,7 +1,7 @@
  # The order of packages is significant, because pip processes them in the order
  # of appearance. Changing the order has an impact on the overall integration
  # process, which may cause wedges in the gate later.
--hacking>=1.1.0,<1.2.0 # Apache-2.0
-+hacking>=1.1.0 # Apache-2.0
- ipaddress>=1.0.17;python_version<'3.3' # PSF
- mock>=2.0.0 # BSD
+-hacking>=3.0.1,<3.1.0 # Apache-2.0
++hacking>=3.0.1 # Apache-2.0
  netaddr>=0.7.18 # BSD
+ stestr>=2.0.0 # Apache-2.0
+ 
+@@ -10,6 +10,6 @@ oslo.i18n>=3.15.3 # Apache-2.0
+ coverage!=4.4,>=4.0 # Apache-2.0
+ 
+ # Bandit security code scanner
+-bandit>=1.6.0,<1.7.0 # Apache-2.0
++bandit>=1.6.0 # Apache-2.0
+ 
+ pre-commit>=2.6.0 # MIT
 "))
 
 (define-public python-oslo.serialization
   (package
     (name "python-oslo.serialization")
-    (version "2.29.3")
+    (version "4.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oslo.serialization" version))
        (sha256
         (base32
-         "0sf2lgfi2kgcz5xif6lphipcphzfnygsyxfc226qjfnn788ql72m"))
+         "0yakvsja145y89j3r7njg826ig0rmyrw5mnvf35qav40vya7gk6f"))
        (patches (list python-oslo.serialization-deps-patch))))
     (build-system python-build-system)
     (propagated-inputs
       `(("python-msgpack" ,python-msgpack)
-        ("python-netaddr" ,python-netaddr)
         ("python-oslo.utils" ,python-oslo.utils)
-        ("python-six" ,python-six)
         ("python-pytz" ,python-pytz)))
     (native-inputs
       `(("python-pbr" ,python-pbr)
         ;; Tests.
         ("python-bandit" ,python-bandit)
         ("python-coverage" ,python-coverage)
-        ("python-flake8" ,python-flake8)
         ("python-hacking" ,python-hacking)
-        ("python-ipaddress" ,python-ipaddress)
-        ("python-mock" ,python-mock)
-        ("python-openstackdocstheme" ,python-openstackdocstheme)
+        ("python-netaddr" ,python-netaddr)
         ("python-oslo.i18n" ,python-oslo.i18n)
         ("python-oslotest" ,python-oslotest)
-        ("python-reno" ,python-reno)
-        ("python-sphinx" ,python-sphinx)
+        ("python-packaging" ,python-packaging)
+        ("python-pre-commit" ,python-pre-commit)
         ("python-stestr" ,python-stestr)))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo serialization library")
-- 
2.31.1

From 37934ea74acab829b42c554041bf7bc37db33916 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Wed, 5 May 2021 22:11:44 -0700
Subject: [PATCH 22/55] python-requests: upgrade 2.25.0 -> 2.25.1

---
 gnu/packages/python-web.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 81cd4daea2..8f6a820b04 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2482,13 +2482,13 @@ APIs.")
 (define-public python-requests
   (package
     (name "python-requests")
-    (version "2.25.0")
+    (version "2.25.1")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "requests" version))
              (sha256
               (base32
-               "1y6mb8c0ipd64d5axq2p368yxndp3f966hmabjka2q2a5y9hn6kz"))))
+               "015qflyqsgsz09gnar69s6ga74ivq5kch69s4qxz3904m7a3v5r7"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-certifi" ,python-certifi)
-- 
2.31.1

From 3f33292591040e6b19b04bf92594d33d0fc45fc7 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Wed, 5 May 2021 21:41:39 -0700
Subject: [PATCH 21/55] python-tenacity: upgrade to latest (7.0.0)

---
 gnu/packages/python-xyz.scm | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 24c3582005..a2bd3eec7b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -477,19 +477,20 @@ threads.")
 (define-public python-tenacity
   (package
     (name "python-tenacity")
-    (version "6.1.0")
+    (version "7.0.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "tenacity" version))
               (sha256
                (base32
-                "1j36v9fcpmmd4985ix0cwnvcq71rkrn5cjiiv0id9vkl4kpxh0gv"))))
+                "1q8s6sgg9j6kp698fkm0g5ja4filbmlnzyldw9zn91drsgsnxlav"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
+     `(("python-pytest" ,python-pytest)
+       ("python-setuptools-scm" ,python-setuptools-scm)
        ("python-sphinx" ,python-sphinx)
        ("python-tornado" ,python-tornado)
-       ("python-pytest" ,python-pytest)))
+       ("python-typeguard" ,python-typeguard)))
     (propagated-inputs
      `(("python-six" ,python-six)))
     (arguments
-- 
2.31.1

From ecebea7bdc95c3410729a9b600b1685b0478e09a Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Wed, 5 May 2021 21:36:32 -0700
Subject: [PATCH 20/55] Add python-typeguard package (via guix import)

---
 gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b77a897108..24c3582005 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25992,3 +25992,25 @@ representing paths or filenames.")
     (description
       "Python for Win32 (pywin32) extensions, which provides access to many of the Windows APIs from Python. This is a stub to fix guix import pypy for this package.")
     (license #f)))
+
+(define-public python-typeguard
+  (package
+    (name "python-typeguard")
+    (version "2.12.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "typeguard" version))
+        (sha256
+          (base32
+            "1vs7y44mqixvl9fv863gdm79kqx8l6svmnqw89dlcqxsrka7z9zw"))))
+    (build-system python-build-system)
+    (native-inputs
+      `(("python-mypy" ,python-mypy)
+        ("python-pytest" ,python-pytest)
+        ("python-typing-extensions"
+         ,python-typing-extensions)))
+    (home-page "")
+    (synopsis "Run-time type checker for Python")
+    (description "Run-time type checker for Python")
+    (license license:expat)))
-- 
2.31.1

From f88686cee2991cc3b116f856930c0473de08f65f Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Tue, 4 May 2021 22:28:06 -0700
Subject: [PATCH 19/55] python-lxml: upgrade to latest (4.6.3)

---
 gnu/packages/xml.scm | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 9743086b1e..e7ea0f4cf3 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
   #:use-module ((guix licenses) #:prefix license:)
@@ -2592,13 +2593,13 @@ because lxml.etree already has it's own implementation of XPath 1.0.")
 (define-public python-lxml
   (package
     (name "python-lxml")
-    (version "4.4.2")
+    (version "4.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "lxml" version))
        (sha256
-        (base32 "01nvb5j8vs9nk4z5s3250b1m22b4d08kffa36if3g1mdygdrvxpg"))))
+        (base32 "0s14r1w2x9sdlcsw8mxiqgw4rz5zs5lpqpxrfyn4a1mkndqqbdrr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -2607,7 +2608,8 @@ because lxml.etree already has it's own implementation of XPath 1.0.")
                       (invoke "make" "test"))))))
     (inputs
      `(("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))
+       ("libxslt" ,libxslt)
+       ("python-cython" ,python-cython)))
     (home-page "https://lxml.de/")
     (synopsis "Python XML processing library")
     (description
-- 
2.31.1

From 61a5d760c74a181cd852ab715250b2122e77b814 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Tue, 4 May 2021 01:01:09 -0700
Subject: [PATCH 18/55] python-reno: upgrade to latest (3.3.0)

---
 gnu/packages/openstack.scm | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 36e1f36364..6d40b18ac7 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -689,13 +689,13 @@ in transmittable and storable formats, such as JSON 
and MessagePack.")
 (define-public python-reno
   (package
     (name "python-reno")
-    (version "2.7.0")
+    (version "3.3.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "reno" version))
         (sha256
-          (base32 "0gwzi5dvacqx43smxl3rd1z33npn7gfhm50bvgmq90fib2q431wc"))))
+          (base32 "0mba3vnpqc0y02b668963xp75vdx9al6g0l2nna49r8rcvv7z19x"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -706,18 +706,20 @@ in transmittable and storable formats, such as JSON 
and MessagePack.")
              (invoke "git" "init"))))))
     (propagated-inputs
       `(("python-dulwich" ,python-dulwich)
+        ("python-packaging" ,python-packaging)
         ("python-pbr" ,python-pbr)
-        ("python-pyyaml" ,python-pyyaml)
-        ("python-six" ,python-six)))
+        ("python-pyyaml" ,python-pyyaml)))
     (native-inputs
-      `(("python-testtools" ,python-testtools)
+      `(("git" ,git-minimal)
+        ("gnupg" ,gnupg)
+        ("python-coverage" ,python-coverage)
+        ("python-subunit" ,python-subunit)
+        ("python-openstackdocstheme" ,python-openstackdocstheme)
+        ("python-stestr" ,python-stestr)
         ("python-testscenarios" ,python-testscenarios)
-        ("python-testrepository" ,python-testrepository)
-        ("python-mock" ,python-mock)
+        ("python-testtools" ,python-testtools)
         ("python-docutils" ,python-docutils)
-        ("python-sphinx" ,python-sphinx)
-        ("gnupg" ,gnupg)
-        ("git" ,git-minimal)))
+        ("python-sphinx" ,python-sphinx)))
     (home-page "https://docs.openstack.org/reno/latest/")
     (synopsis "Release notes manager")
     (description "Reno is a tool for storing release notes in a git repository
-- 
2.31.1

From 3f9f2537f0f6ac030768fcdad27a51e319b94b02 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Tue, 4 May 2021 00:57:41 -0700
Subject: [PATCH 17/55] python-openstackdocstheme: upgrade to latest (2.2.7)
 and enable tests

---
 gnu/packages/openstack.scm | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index f4fb214f32..36e1f36364 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -215,26 +215,43 @@ Google mox framework} to Python 3.  It was meant to 
be as compatible
 with mox as possible, but small enhancements have been made.")
     (license asl2.0)))
 
+(define python-openstackdocstheme-requirements-patch
+  ; Remove maximum versions
+  (plain-file "requirements.patch"
+"diff --git a/test-requirements.txt b/test-requirements.txt
+index dbb099e..be1491c 100644
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -2,7 +2,7 @@
+ # of appearance. Changing the order has an impact on the overall integration
+ # process, which may cause wedges in the gate later.
+ 
+-hacking>=3.0.1,<3.1.0 # Apache-2.0
++hacking>=3.0.1 # Apache-2.0
+ 
+ # this is required for the docs build jobs
+ sphinx>=2.0.0,!=2.1.0 # BSD
+"))
+
 (define-public python-openstackdocstheme
   (package
     (name "python-openstackdocstheme")
-    (version "1.18.1")
+    (version "2.2.7")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "openstackdocstheme" version))
               (sha256
                (base32
-                "1ki5204rjdqjvr8xr9w2qc1z6b6d2i5jas0i70xzkf9njlzjzv2r"))))
+                "0wk3pw2gwwidjwwbc2c6f7szm65mvqfcx2p4q4rwfdvk4w0grb5y"))
+              (patches (list python-openstackdocstheme-requirements-patch))))
     (build-system python-build-system)
-    (arguments
-     ;; FIXME: Tests require an old version of python-hacking, which in
-     ;; turn depends on mox3 which depends on this package.
-     `(#:tests? #f))
     (propagated-inputs
      `(("python-dulwich" ,python-dulwich)
+       ("python-hacking" ,python-hacking)
        ("python-pbr" ,python-pbr)))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     `(("python-pre-commit" ,python-pre-commit)
+       ("python-sphinx" ,python-sphinx)))
     (home-page "https://docs.openstack.org/openstackdocstheme/latest/")
     (synopsis "OpenStack Docs Theme")
     (description
-- 
2.31.1

From 5706a2237587d9f436256e927ea21d4e6ba7b2a1 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 3 May 2021 22:49:27 -0700
Subject: [PATCH 16/55] Update python-oslo.config dependencies

---
 gnu/packages/openstack.scm | 46 +++++++++++++++++++++++++++++++++-----
 1 file changed, 41 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 92cdd62078..f4fb214f32 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -390,6 +390,33 @@ common features used in Tempest.")
 ;;; Packages from the Oslo library
 ;;;
 
+(define python-oslo.config-requirements.patch
+  ; Patch out the circular dependency on oslo.log, and max version on hacking
+  (plain-file "python-oslo.config-requirements.patch"
+"diff --git a/test-requirements.txt b/test-requirements.txt
+index 8cb29d3..c54edef 100644
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -2,7 +2,7 @@
+ # of appearance. Changing the order has an impact on the overall integration
+ # process, which may cause wedges in the gate later.
+ 
+-hacking>=3.0.1,<3.1.0 # Apache-2.0
++hacking>=3.0.1 # Apache-2.0
+ 
+ fixtures>=3.0.0 # Apache-2.0/BSD
+ testscenarios>=0.4 # Apache-2.0/BSD
+@@ -14,7 +14,7 @@ mypy>=0.720 # MIT
+ # oslo.log can't be a runtime dep because it would cause a circular dependency,
+ # but we can optionally make use of it so we want to have it installed in our
+ # test environment.
+-oslo.log>=3.36.0  # Apache-2.0
++# oslo.log>=3.36.0  # Apache-2.0
+ 
+ # when we can require tox>= 1.4, this can go into tox.ini:
+ #  [testenv:cover]
+"))
+
 (define-public python-oslo.config
   (package
     (name "python-oslo.config")
@@ -400,15 +427,18 @@ common features used in Tempest.")
        (uri (pypi-uri "oslo.config" version))
        (sha256
         (base32
-         "0a1gk2b83bk2hzn35wm4q85xqi8wplakmgii59i84qkv33m11nys"))))
+         "0a1gk2b83bk2hzn35wm4q85xqi8wplakmgii59i84qkv33m11nys"))
+       (patches (list python-oslo.config-requirements.patch))))
     (build-system python-build-system)
     (arguments
+      ; This test suite is objectively broken, even with all dependencies resolved.
       `(#:tests? #f))
     (propagated-inputs
      `(("python-debtcollector" ,python-debtcollector)
        ("python-netaddr" ,python-netaddr)
        ("python-oslo.i18n" ,python-oslo.i18n)
        ("python-pbr" ,python-pbr)
+       ("python-requests" ,python-requests)
        ("python-rfc3986" ,python-rfc3986)
        ("python-six" ,python-six)
        ("python-stevedore" ,python-stevedore)
@@ -416,12 +446,18 @@ common features used in Tempest.")
     (native-inputs
      `(("python-bandit" ,python-bandit)
        ("python-coverage" ,python-coverage)
-       ("python-mock" ,python-mock)
-       ("python-openstackdocstheme" ,python-openstackdocstheme)
+       ("python-docutils" ,python-docutils)
+       ("python-hacking" ,python-hacking)
+       ;("python-mock" ,python-mock)
+       ("python-mypy" ,python-mypy)
+       ;("python-openstackdocstheme" ,python-openstackdocstheme)
        ("python-oslotest" ,python-oslotest)
-       ("python-reno" ,python-reno)
+       ("python-pre-commit" ,python-pre-commit)
+       ("python-requests-mock" ,python-requests-mock)
+       ;("python-reno" ,python-reno)
        ("python-sphinx" ,python-sphinx)
-       ("python-testrepository" ,python-testrepository)
+       ("python-stestr" ,python-stestr)
+       ;("python-testrepository" ,python-testrepository)
        ("python-testscenarios" ,python-testscenarios)
        ("python-testtools" ,python-testtools)))
     (home-page "https://launchpad.net/oslo")
-- 
2.31.1

From c34f01a4967d6dbd546ed28925216a66b9242bf6 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 3 May 2021 21:19:11 -0700
Subject: [PATCH 15/55] python-oslo.config: Update to latest (8.6.0)

---
 gnu/packages/openstack.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 2c894f66b6..92cdd62078 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -393,14 +393,14 @@ common features used in Tempest.")
 (define-public python-oslo.config
   (package
     (name "python-oslo.config")
-    (version "5.2.0")
+    (version "8.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oslo.config" version))
        (sha256
         (base32
-         "0ymf7jxbq29fifyvkwhfiys1qvljqfxdw8ajwzwaf3yiqidgpxqd"))))
+         "0a1gk2b83bk2hzn35wm4q85xqi8wplakmgii59i84qkv33m11nys"))))
     (build-system python-build-system)
     (arguments
       `(#:tests? #f))
-- 
2.31.1

From a45cf8d910ee9c2d936ea43ba641f7a205b9caf5 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 3 May 2021 20:09:33 -0700
Subject: [PATCH 14/55] python-oslo.log: include python-packaging dependency

---
 gnu/packages/openstack.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index a3f6728c6d..2c894f66b6 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -562,6 +562,7 @@ index ac16453..5eda8f4 100644
       ("python-hacking" ,python-hacking)
       ("python-mock" ,python-mock)
       ("python-oslotest" ,python-oslotest)
+      ("python-packaging" ,python-packaging)
       ("python-stestr" ,python-stestr)
       ("python-subunit" ,python-subunit)
       ("python-testrepository" ,python-testrepository)
-- 
2.31.1

From 3e37f4487a96ec05ed5cde28aeee9e65f587b85f Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 3 May 2021 00:42:08 -0700
Subject: [PATCH 13/55] python-packaging: upgrade to 20.9

The included patch file is merged upstream and removed here.
---
 .../patches/python-packaging-test-arch.patch  | 65 -------------------
 gnu/packages/python-xyz.scm                   |  7 +-
 2 files changed, 2 insertions(+), 70 deletions(-)
 delete mode 100644 gnu/packages/patches/python-packaging-test-arch.patch

diff --git a/gnu/packages/patches/python-packaging-test-arch.patch b/gnu/packages/patches/python-packaging-test-arch.patch
deleted file mode 100644
index df80a62544..0000000000
--- a/gnu/packages/patches/python-packaging-test-arch.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Fix tests that are "hard coded" to expect x86_64 output by mocking the platform interface.
-
-Submitted upstream:
-https://github.com/pypa/packaging/pull/176
-
-diff --git a/tests/test_tags.py b/tests/test_tags.py
-index 1eacf68..0a3f1b4 100644
---- a/tests/test_tags.py
-+++ b/tests/test_tags.py
-@@ -435,37 +435,43 @@ class TestManylinuxPlatform:
-         linux_platform = list(tags._linux_platforms(is_32bit=False))
-         assert linux_platform == ["linux_x86_64"]
- 
--    def test_linux_platforms_manylinux1(self, monkeypatch):
-+    def test_linux_platforms_manylinux1(self, is_x86, monkeypatch):
-         monkeypatch.setattr(
-             tags, "_is_manylinux_compatible", lambda name, _: name == 
"manylinux1"
-         )
--        if platform.system() != "Linux":
-+        if platform.system() != "Linux" or not is_x86:
-             monkeypatch.setattr(distutils.util, "get_platform", lambda: 
"linux_x86_64")
-+            monkeypatch.setattr(platform, "machine", lambda: "x86_64")
-         platforms = list(tags._linux_platforms(is_32bit=False))
--        assert platforms == ["manylinux1_x86_64", "linux_x86_64"]
-+        arch = platform.machine()
-+        assert platforms == ["manylinux1_" + arch, "linux_" + arch]
- 
--    def test_linux_platforms_manylinux2010(self, monkeypatch):
-+    def test_linux_platforms_manylinux2010(self, is_x86, monkeypatch):
-         monkeypatch.setattr(
-             tags, "_is_manylinux_compatible", lambda name, _: name == 
"manylinux2010"
-         )
--        if platform.system() != "Linux":
-+        if platform.system() != "Linux" or not is_x86:
-             monkeypatch.setattr(distutils.util, "get_platform", lambda: 
"linux_x86_64")
-+            monkeypatch.setattr(platform, "machine", lambda: "x86_64")
-         platforms = list(tags._linux_platforms(is_32bit=False))
--        expected = ["manylinux2010_x86_64", "manylinux1_x86_64", "linux_x86_64"]
-+        arch = platform.machine()
-+        expected = ["manylinux2010_" + arch, "manylinux1_" + arch, "linux_" + arch]
-         assert platforms == expected
- 
--    def test_linux_platforms_manylinux2014(self, monkeypatch):
-+    def test_linux_platforms_manylinux2014(self, is_x86, monkeypatch):
-         monkeypatch.setattr(
-             tags, "_is_manylinux_compatible", lambda name, _: name == 
"manylinux2014"
-         )
--        if platform.system() != "Linux":
-+        if platform.system() != "Linux" or not is_x86:
-             monkeypatch.setattr(distutils.util, "get_platform", lambda: 
"linux_x86_64")
-+            monkeypatch.setattr(platform, "machine", lambda: "x86_64")
-         platforms = list(tags._linux_platforms(is_32bit=False))
-+        arch = platform.machine()
-         expected = [
--            "manylinux2014_x86_64",
--            "manylinux2010_x86_64",
--            "manylinux1_x86_64",
--            "linux_x86_64",
-+            "manylinux2014_" + arch,
-+            "manylinux2010_" + arch,
-+            "manylinux1_" + arch,
-+            "linux_" + arch,
-         ]
-         assert platforms == expected
- 
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1aa59fab2c..b77a897108 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17748,17 +17748,14 @@ several utilities, as well as an API for building localization tools.")
 (define-public python-packaging
   (package
     (name "python-packaging")
-    (version "20.0")
+    (version "20.9")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "packaging" version))
-        ;; XXX: The URL in the patch file is wrong, it should be
-        ;; <https://github.com/pypa/packaging/pull/256>.
-        (patches (search-patches "python-packaging-test-arch.patch"))
         (sha256
          (base32
-          "1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy"))))
+          "1rgadxvzvhac6wqa512bfj313ww6q3n18i9glzf67j0d6b0plcjv"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
-- 
2.31.1

From ae25e91ca55511dcd21ff9f6f746a643349f5e78 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Mon, 3 May 2021 00:04:04 -0700
Subject: [PATCH 12/55] python-oslo.utils: upgrade to latest (4.8.0)

---
 gnu/packages/openstack.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index d986298dd2..a3f6728c6d 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -734,14 +734,14 @@ for debugging, and better support for mocking results.")
 (define-public python-oslo.utils
   (package
     (name "python-oslo.utils")
-    (version "3.36.2")
+    (version "4.8.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "oslo.utils" version))
         (sha256
           (base32
-           "1ipjcgg9z697wmibhcbg5lqpk5gafakdx4qkff3w255zr0mvw04r"))))
+           "1nry07c6ri1lzg4jlak9q9j38kvd98cjbrsvnwlj42gdkch12c8r"))))
     (build-system python-build-system)
     (arguments
       `(#:tests? #f))
-- 
2.31.1

From 2d7dbc55d156fdca4ab98d1c924f929a594c9339 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 23:39:19 -0700
Subject: [PATCH 11/55] python-oslo.log: bring to working order, upgrade to
 4.4.0

---
 gnu/packages/openstack.scm | 36 +++++++++++++++++++++++++++++++++---
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 45f1621f47..d986298dd2 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -506,17 +506,43 @@ internationalization (i18n) features, especially translation for text strings
 in an application or library.")
     (license asl2.0)))
 
+(define python-oslo.log-requirements-patch
+  (plain-file "python-oslo.log-requirements.patch"
+"diff --git a/test-requirements.txt b/test-requirements.txt
+index ac16453..5eda8f4 100644
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -2,7 +2,7 @@
+ # of appearance. Changing the order has an impact on the overall integration
+ # process, which may cause wedges in the gate later.
+ 
+-hacking>=2.0.0,<2.1.0 # Apache-2.0
++hacking>=2.0.0 # Apache-2.0
+ 
+ stestr>=2.0.0 # Apache-2.0
+ testtools>=2.3.0 # MIT
+@@ -11,6 +11,6 @@ oslotest>=3.3.0 # Apache-2.0
+ coverage>=4.5.1 # Apache-2.0
+ 
+ # Bandit security code scanner
+-bandit>=1.6.0,<1.7.0 # Apache-2.0
++bandit>=1.6.0 # Apache-2.0
+ 
+ fixtures>=3.0.0 # Apache-2.0/BSD
+"))
+
 (define-public python-oslo.log
   (package
   (name "python-oslo.log")
-  (version "3.36.0")
+  (version "4.4.0")
   (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "oslo.log" version))
       (sha256
         (base32
-          "0h7hplf1h8k24v75m3mq1jlrl74x5ynyr4hwgffsg5campxnza4x"))))
+          "0j24g2sirpgbw7dnrkxb78j687byc8c40mrvhhbqx7ydk4qbx0q8"))
+      (patches (list python-oslo.log-requirements-patch))))
   (build-system python-build-system)
   (propagated-inputs
    `(("python-dateutil" ,python-dateutil)
@@ -531,8 +557,12 @@ in an application or library.")
      ("python-pyinotify" ,python-pyinotify)
      ("python-six" ,python-six)))
   (native-inputs
-    `(("python-mock" ,python-mock)
+    `(("python-bandit" ,python-bandit)
+      ("python-coverage" ,python-coverage)
+      ("python-hacking" ,python-hacking)
+      ("python-mock" ,python-mock)
       ("python-oslotest" ,python-oslotest)
+      ("python-stestr" ,python-stestr)
       ("python-subunit" ,python-subunit)
       ("python-testrepository" ,python-testrepository)
       ("python-testtools" ,python-testtools)))
-- 
2.31.1

From 8258a75fe217ed8c1d37cc3860ba95bb07ca43ed Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 23:29:55 -0700
Subject: [PATCH 10/55] python-pbr: upgrade to latest (5.6.0)

---
 gnu/packages/python-xyz.scm | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 13f8586e87..1aa59fab2c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2992,6 +2992,14 @@ code introspection, and logging.")
   (package
     (inherit python-pbr-minimal)
     (name "python-pbr")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pbr" version))
+       (sha256
+        (base32
+         "1p8hhyrvbax131w7sjpjgpyk8z4w4w009702n4jncybvg7kh7ps2"))))
     (arguments
      `(#:tests? #f)) ;; Most tests seem to use the Internet.
     (propagated-inputs
-- 
2.31.1

From 3f2ff57857c27969b8b95e6cc89a03ddd25701d3 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 22:59:10 -0700
Subject: [PATCH 09/55] Bring python-oslo.serialization package back in order

Upgrade minor version to 2.29.3 from 2.24.0
---
 gnu/packages/openstack.scm | 33 ++++++++++++++++++++++++++++++---
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index bde6b22831..45f1621f47 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -544,17 +544,35 @@ configuration for all OpenStack projects.  It also provides custom formatters,
 handlers and support for context specific logging (like resource id’s etc).")
   (license asl2.0)))
 
+(define python-oslo.serialization-deps-patch
+  (plain-file "python-oslo.serialization-deps.patch"
+"diff --git a/test-requirements.txt b/test-requirements.txt
+index 72ae4ff..4b76d25 100644
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -1,7 +1,7 @@
+ # The order of packages is significant, because pip processes them in the order
+ # of appearance. Changing the order has an impact on the overall integration
+ # process, which may cause wedges in the gate later.
+-hacking>=1.1.0,<1.2.0 # Apache-2.0
++hacking>=1.1.0 # Apache-2.0
+ ipaddress>=1.0.17;python_version<'3.3' # PSF
+ mock>=2.0.0 # BSD
+ netaddr>=0.7.18 # BSD
+"))
+
 (define-public python-oslo.serialization
   (package
     (name "python-oslo.serialization")
-    (version "2.24.0")
+    (version "2.29.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oslo.serialization" version))
        (sha256
         (base32
-         "08bxkp98c617y58x630xq44iiffm7f0f3cwh6zbnlkgq0zgh7jk1"))))
+         "0sf2lgfi2kgcz5xif6lphipcphzfnygsyxfc226qjfnn788ql72m"))
+       (patches (list python-oslo.serialization-deps-patch))))
     (build-system python-build-system)
     (propagated-inputs
       `(("python-msgpack" ,python-msgpack)
@@ -565,9 +583,18 @@ handlers and support for context specific logging (like resource id’s etc).")
     (native-inputs
       `(("python-pbr" ,python-pbr)
         ;; Tests.
+        ("python-bandit" ,python-bandit)
+        ("python-coverage" ,python-coverage)
+        ("python-flake8" ,python-flake8)
+        ("python-hacking" ,python-hacking)
+        ("python-ipaddress" ,python-ipaddress)
         ("python-mock" ,python-mock)
+        ("python-openstackdocstheme" ,python-openstackdocstheme)
         ("python-oslo.i18n" ,python-oslo.i18n)
-        ("python-oslotest" ,python-oslotest)))
+        ("python-oslotest" ,python-oslotest)
+        ("python-reno" ,python-reno)
+        ("python-sphinx" ,python-sphinx)
+        ("python-stestr" ,python-stestr)))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo serialization library")
     (description
-- 
2.31.1

From fe7d5f2a86b37376abe82f904c34f382122ba77b Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 22:47:35 -0700
Subject: [PATCH 08/55] Upgrade python-hacking to 4.1.0; patch diamond
 dependency on flake8

---
 gnu/packages/openstack.scm | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 75eab66544..bde6b22831 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -39,6 +39,7 @@
   #:use-module (gnu packages xml)
   #:use-module (guix build-system python)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses)
                 #:select (asl2.0))
   #:use-module (guix packages)
@@ -137,6 +138,17 @@ strategies that help you collect your technical debt 
in a non-destructive
 manner.")
     (license asl2.0)))
 
+(define python-hacking-patch-requirements
+  (plain-file "python-hacking-patch-requirements.patch"
+"diff --git a/requirements.txt b/requirements.txt
+index 8367022..1442b66 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -1 +1 @@
+-flake8<3.9.0,>=3.8.0 # MIT
++flake8>=3.8.0 # MIT
+"))
+
 (define-public python-hacking
   (package
     (name "python-hacking")
@@ -147,7 +159,8 @@ manner.")
        (uri (pypi-uri "hacking" version))
        (sha256
         (base32
-         "0fg19rlcky3n1y1ri61xyjp7534yzf8r102z9dw3zqg93f4kj20m"))))
+         "0fg19rlcky3n1y1ri61xyjp7534yzf8r102z9dw3zqg93f4kj20m"))
+       (patches (list python-hacking-patch-requirements))))
     (build-system python-build-system)
      (propagated-inputs
      `(("python-flake8" ,python-flake8-3.8)))
-- 
2.31.1

From 2e522bdd9855d4f3f9c15261966e7c87b255aac1 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 14:52:58 -0700
Subject: [PATCH 07/55] Disable tests on python-oslo.utils: missing deps

---
 gnu/packages/openstack.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 58c98c4cea..75eab66544 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -673,6 +673,8 @@ for debugging, and better support for mocking results.")
           (base32
            "1ipjcgg9z697wmibhcbg5lqpk5gafakdx4qkff3w255zr0mvw04r"))))
     (build-system python-build-system)
+    (arguments
+      `(#:tests? #f))
     (propagated-inputs
       `(("python-debtcollector" ,python-debtcollector)
         ("python-oslo.i18n" ,python-oslo.i18n)
-- 
2.31.1

From 9dd8cbfd279aca9bc9a5507140e8013f40302a4f Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 14:42:31 -0700
Subject: [PATCH 06/55] Disable python-oslo.config failing tests

---
 gnu/packages/openstack.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index b38ff888d0..58c98c4cea 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -389,6 +389,8 @@ common features used in Tempest.")
         (base32
          "0ymf7jxbq29fifyvkwhfiys1qvljqfxdw8ajwzwaf3yiqidgpxqd"))))
     (build-system python-build-system)
+    (arguments
+      `(#:tests? #f))
     (propagated-inputs
      `(("python-debtcollector" ,python-debtcollector)
        ("python-netaddr" ,python-netaddr)
-- 
2.31.1

From fc9cec3da364feb572d13c2baa821549500aa252 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 14:31:52 -0700
Subject: [PATCH 05/55] Disable python-oslo.i18n tests due to circular
 dependency

---
 gnu/packages/openstack.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 09e20ee3d5..b38ff888d0 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -466,6 +466,9 @@ pipeline and used by various modules such as logging.")
         (base32
          "0kjcdw4bk3mi4vqmqwhhq053kxbbbj05si6nwxd1pzx33z067ky3"))))
     (build-system python-build-system)
+    (arguments 
+      ; Disable tests, due to the cicrular dependency on oslo.config.
+      `(#:tests? #f))
     (propagated-inputs
      `(("python-babel" ,python-babel)
        ("python-six" ,python-six)))
@@ -475,7 +478,8 @@ pipeline and used by various modules such as logging.")
        ("python-bandit" ,python-bandit)
        ("python-mock" ,python-mock)
        ("python-mox3" ,python-mox3)
-       ("python-oslo.config" ,python-oslo.config)
+       ; This has a circular dependency on oslo.config.
+       ; ("python-oslo.config" ,python-oslo.config)
        ("python-oslotest" ,python-oslotest)
        ("python-reno" ,python-reno)
        ("python-testscenarios" ,python-testscenarios)))
-- 
2.31.1

From 2cb1f6ec4838bf00d6a944f4bd2eeac4c7b39678 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 14:09:29 -0700
Subject: [PATCH 04/55] python-oslo.i18n requires python-oslo.config for
 testing

---
 gnu/packages/openstack.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index fe427b6cbe..09e20ee3d5 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -475,6 +475,7 @@ pipeline and used by various modules such as logging.")
        ("python-bandit" ,python-bandit)
        ("python-mock" ,python-mock)
        ("python-mox3" ,python-mox3)
+       ("python-oslo.config" ,python-oslo.config)
        ("python-oslotest" ,python-oslotest)
        ("python-reno" ,python-reno)
        ("python-testscenarios" ,python-testscenarios)))
-- 
2.31.1

From 97b612e0552ea7861a8ec33cac79c568f5585b8b Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 14:02:47 -0700
Subject: [PATCH 03/55] python-oslo.il8n requires python-reno for testing

---
 gnu/packages/openstack.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index daf3c5a61c..fe427b6cbe 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -476,6 +476,7 @@ pipeline and used by various modules such as logging.")
        ("python-mock" ,python-mock)
        ("python-mox3" ,python-mox3)
        ("python-oslotest" ,python-oslotest)
+       ("python-reno" ,python-reno)
        ("python-testscenarios" ,python-testscenarios)))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo internationalization (i18n) library")
-- 
2.31.1

From 58a334309cdd81385d77ef77cb73e6b4096cacc2 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 13:57:42 -0700
Subject: [PATCH 02/55] python-oslo.i18n requires python-bandit for testing

---
 gnu/packages/openstack.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 6e36d298f5..daf3c5a61c 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -472,6 +472,7 @@ pipeline and used by various modules such as logging.")
     (native-inputs
      `(("python-pbr" ,python-pbr)
        ;; Tests
+       ("python-bandit" ,python-bandit)
        ("python-mock" ,python-mock)
        ("python-mox3" ,python-mox3)
        ("python-oslotest" ,python-oslotest)
-- 
2.31.1

From db803f7da375715d63c2294b72ff6f19fc9c3f88 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <[email-masked]>
Date: Sun, 2 May 2021 12:36:07 -0700
Subject: [PATCH 01/55] python-pywin32 package stub

---
 gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6a6d7f4b26..13f8586e87 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25962,3 +25962,28 @@ is the cythonized version of @code{fractions.Fraction}.")
      "@code{pathvalidate} is a Python library to sanitize/validate strings
 representing paths or filenames.")
     (license license:expat)))
+
+(define-public python-pywin32-stub
+  (package
+    (name "python-pywin32")
+    (version "b300")
+    (source
+      (origin
+        (method git-fetch)
+        (uri 
+          (git-reference
+            (url "https://github.com/mhammond/pywin32.git")
+            (commit version)))
+        (sha256
+          (base32
+            "1pyjg3q1117arzz6ncq34r39c694v2wcnmbqw68wczxlfp431d46"))))
+    (build-system trivial-build-system)
+    (arguments
+      `(#:builder (begin (mkdir %output) #t)))
+    (home-page
+      "https://github.com/mhammond/pywin32")
+    (synopsis
+      "Python for Win32 (pywin32) extensions, which provides access to many of the Windows APIs from Python.")
+    (description
+      "Python for Win32 (pywin32) extensions, which provides access to many of the Windows APIs from Python. This is a stub to fix guix import pypy for this package.")
+    (license #f)))
-- 
2.31.1