##### SUMMARY

There are several options for resolving this:

* Vendoring a second copy of `six` that implements `find_spec` and `exec_module`, and using it for newer Pythons.
* Vendoring the latest version of `six` and updating it as needed to work back through Python 2.6.

See also: https://github.com/ansible/ansible/issues/72952

##### ISSUE TYPE

Feature Idea

##### COMPONENT NAME

lib/ansible/module_utils/six/__init__.py
f = functools.wraps(wrapped, assigned, updated)(f)
            f.__wrapped__ = wrapped
            return f
        return wrapper
else:
    wraps = functools.wraps
def with_metaclass(meta, *bases):
    """Create a base class with a metaclass."""
    
    
    
    class metaclass(type):
        def __new__(cls, name, this_bases, d):
            if sys.version_info[:2] >= (3, 7):
                
                
                resolved_bases = types.resolve_bases(bases)
                if resolved_bases is not bases:
                    d['__orig_bases__'] = bases
            else:
                resolved_bases = bases
            return meta(name, resolved_bases, d)
        @classmethod
        def __prepare__(cls, name, this_bases):
            return meta.__prepare__(name, bases)
    return type.__new__(metaclass, 'temporary_class', (), {})
def add_metaclass(metaclass):
    """Class decorator for creating a class with a metaclass."""
    def wrapper(cls):