--- staging/lib/python3.10/site-packages/sphinxcontrib/openapi/utils.py	2022-12-02 18:47:40.050490678 -0500
+++ venv_docs/lib/python3.10/site-packages/sphinxcontrib/openapi/utils.py	2022-12-02 18:45:53.023832002 -0500
@@ -10,12 +10,7 @@
 
 from __future__ import unicode_literals
 
-try:
-    import collections.abc
-    from collections.abc import Mapping
-except ImportError: # fall through
-    import collections
-    from collections import Mapping
+import collections
 
 import jsonschema
 try:
@@ -40,10 +35,10 @@
     resolver = jsonschema.RefResolver(uri, spec)
 
     def _do_resolve(node):
-        if isinstance(node, Mapping) and '$ref' in node:
+        if isinstance(node, collections.Mapping) and '$ref' in node:
             with resolver.resolving(node['$ref']) as resolved:
                 return resolved
-        elif isinstance(node, Mapping):
+        elif isinstance(node, collections.Mapping):
             for k, v in node.items():
                 node[k] = _do_resolve(v)
         elif isinstance(node, (list, tuple)):
