aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Tools/scripts/freeze_modules.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/scripts/freeze_modules.py')
-rw-r--r--Tools/scripts/freeze_modules.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/Tools/scripts/freeze_modules.py b/Tools/scripts/freeze_modules.py
index cfc6f7921c9..f7273915b91 100644
--- a/Tools/scripts/freeze_modules.py
+++ b/Tools/scripts/freeze_modules.py
@@ -221,6 +221,7 @@ def _parse_spec(spec, knownids=None, section=None):
if ispkg:
pkgid = frozenid
pkgname = modname
+ pkgfiles = {pyfile: pkgid}
def iter_subs():
for frozenid, pyfile, ispkg in resolved:
assert not knownids or frozenid not in knownids, (frozenid, spec)
@@ -228,6 +229,12 @@ def _parse_spec(spec, knownids=None, section=None):
modname = frozenid.replace(pkgid, pkgname, 1)
else:
modname = frozenid
+ if pyfile:
+ if pyfile in pkgfiles:
+ frozenid = pkgfiles[pyfile]
+ pyfile = None
+ elif ispkg:
+ pkgfiles[pyfile] = frozenid
yield frozenid, pyfile, modname, ispkg, section
submodules = iter_subs()