dist: Fix inability to pick up nested hidden modules

This commit is contained in:
rdb
2025-12-06 21:05:40 +01:00
parent d6da1965ae
commit 8fb23c5599

View File

@@ -1249,8 +1249,12 @@ class Freezer:
pass
# Check if any new modules we found have "hidden" imports
for origName in list(self.mf.modules.keys()):
checkHiddenImports = set(self.mf.modules.keys())
while checkHiddenImports:
origName = next(iter(checkHiddenImports))
checkHiddenImports.discard(origName)
hidden = self.hiddenImports.get(origName, [])
preModules = frozenset(self.mf.modules.keys())
for modname in hidden:
if modname.endswith('.*'):
mdefs = self._gatherSubmodules(modname, implicit = True)
@@ -1264,6 +1268,9 @@ class Freezer:
self.__loadModule(self.ModuleDef(modname, implicit = True))
except ImportError:
pass
addedModules = set(self.mf.modules.keys())
addedModules -= preModules
checkHiddenImports |= addedModules
# Special case for sysconfig, which depends on a platform-specific
# sysconfigdata module on POSIX systems.