##### 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
module = _import_module(self.mod)
        return getattr(module, self.attr)
class _SixMetaPathImporter(object):
    """
    A meta path importer to import six.moves and its submodules.
    This class implements a PEP302 finder and loader. It should be compatible
    with Python 2.5 and all existing versions of Python3
    """
    def __init__(self, six_module_name):
        self.name = six_module_name
        self.known_modules = {}
    def _add_module(self, mod, *fullnames):
        for fullname in fullnames:
            self.known_modules[self.name + "." + fullname] = mod
    def _get_module(self, fullname):
        return self.known_modules[self.name + "." + fullname]
    def find_module(self, fullname, path=None):
        if fullname in self.known_modules:
            return self
        return None
    def __get_module(self, fullname):
        try:
            return self.known_modules[fullname]
        except KeyError:
            raise ImportError("This loader does not know module " + fullname)
    def load_module(self, fullname):