Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c7aaf95

Browse files
author
Thomas Heller
committed
Enhancement for ModuleFinder, it can now handle _xmlplus aka PyXML.
Fixes SF # 637835.
1 parent c293704 commit c7aaf95

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

Tools/freeze/modulefinder.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,17 @@ def AddPackagePath(packagename, path):
2929
paths.append(path)
3030
packagePathMap[packagename] = paths
3131

32+
replacePackageMap = {}
33+
34+
# This ReplacePackage mechanism allows modulefinder to work around the
35+
# way the _xmlplus package injects itself under the name "xml" into
36+
# sys.modules at runtime by calling ReplacePackage("_xmlplus", "xml")
37+
# before running ModuleFinder.
38+
39+
def ReplacePackage(oldname, newname):
40+
replacePackageMap[oldname] = newname
41+
42+
3243
class Module:
3344

3445
def __init__(self, name, file=None, path=None):
@@ -336,6 +347,9 @@ def scan_code(self, co, m):
336347

337348
def load_package(self, fqname, pathname):
338349
self.msgin(2, "load_package", fqname, pathname)
350+
newname = replacePackageMap.get(fqname)
351+
if newname:
352+
fqname = newname
339353
m = self.add_module(fqname)
340354
m.__file__ = pathname
341355
m.__path__ = [pathname]

0 commit comments

Comments
 (0)