]> granicus.if.org Git - python/commitdiff
Enhancement for ModuleFinder, it can now handle _xmlplus aka PyXML.
authorThomas Heller <theller@ctypes.org>
Thu, 14 Nov 2002 18:45:11 +0000 (18:45 +0000)
committerThomas Heller <theller@ctypes.org>
Thu, 14 Nov 2002 18:45:11 +0000 (18:45 +0000)
Fixes SF # 637835.

Tools/freeze/modulefinder.py

index 96fc2f7822aad98e307465830ca1b3c1b4b6c895..5886e7be21b8e81b8a499572a198c85b779c2b3d 100644 (file)
@@ -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]