Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master.ParentEnumerationMethod: Require matching pkg.__name__
When the requested module (e.g. ansible.module_utils.distro) - is provided by another module *e.g. distro) - that itself was a package (e.g. distro 1.7.0) At runtime - ansible/module_utils/distro/__init__.py executes - if https://pypi.org/project/distro/ is present, it's loaded as ansible.module_utils.distro - otherwise ansible/module_utils/distro/_distro.py is loaded ParentEnumerationMethod would wrongly use whatever was in sys.modules['ansible.module_utils.distro]. Instead we should ascend to the first parent that has fullname == sys.modules[fullname].__name__. Then descend to the appropriate .py file on disk. This bug didn't show up before because until distro 1.7.0 (Feb 2022) the top-level distro module was a module (distro.py) not a package (distro/__init__.py) fixes mitogen-hq#906
- Loading branch information