master.ParentEnumerationMethod: Require matching pkg.__name__
Co-authored-by: Stefano Rivera <stefano@rivera.za.net> 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 #906pull/913/head
parent
47699e15aa
commit
d2ca8a9423
Loading…
Reference in New Issue