From c7aaf953faf3f4f22c8a77209927dcacfba91490 Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Thu, 14 Nov 2002 18:45:11 +0000 Subject: Enhancement for ModuleFinder, it can now handle _xmlplus aka PyXML. Fixes SF # 637835. --- Tools/freeze/modulefinder.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Tools/freeze/modulefinder.py b/Tools/freeze/modulefinder.py index 96fc2f7..5886e7b 100644 --- a/Tools/freeze/modulefinder.py +++ b/Tools/freeze/modulefinder.py @@ -29,6 +29,17 @@ def AddPackagePath(packagename, path): paths.append(path) packagePathMap[packagename] = paths +replacePackageMap = {} + +# This ReplacePackage mechanism allows modulefinder to work around the +# way the _xmlplus package injects itself under the name "xml" into +# sys.modules at runtime by calling ReplacePackage("_xmlplus", "xml") +# before running ModuleFinder. + +def ReplacePackage(oldname, newname): + replacePackageMap[oldname] = newname + + class Module: def __init__(self, name, file=None, path=None): @@ -336,6 +347,9 @@ class ModuleFinder: def load_package(self, fqname, pathname): self.msgin(2, "load_package", fqname, pathname) + newname = replacePackageMap.get(fqname) + if newname: + fqname = newname m = self.add_module(fqname) m.__file__ = pathname m.__path__ = [pathname] -- cgit v0.12