From: Eric Snow Date: Wed, 29 Sep 2021 18:55:35 +0000 (-0600) Subject: bpo-45020: Do not freeze /__init__.py twice. (gh-28635) X-Git-Tag: v3.11.0a1~43 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=45ca1c04139300ec0289a32f78c7ac922a4f7b07;p=thirdparty%2FPython%2Fcpython.git bpo-45020: Do not freeze /__init__.py twice. (gh-28635) Currently we're freezing the __init__.py twice, duplicating the built data unnecessarily With this change we do it once. There is no change in runtime behavior. https://bugs.python.org/issue45020 --- diff --git a/Tools/scripts/freeze_modules.py b/Tools/scripts/freeze_modules.py index cfc6f7921c97..f7273915b911 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()