]> granicus.if.org Git - python/commitdiff
Thomas Heller <thomas.heller@ion-tof.com>:
authorFred Drake <fdrake@acm.org>
Thu, 13 Apr 2000 14:52:27 +0000 (14:52 +0000)
committerFred Drake <fdrake@acm.org>
Thu, 13 Apr 2000 14:52:27 +0000 (14:52 +0000)
ihooks.ModuleLoader does not implement reload(mod) correctly:
If mod has already been loaded by ModuleLoader, it has
been returned from a cache. Added an additional parameter
to import_it() to force reloading.

Lib/ihooks.py

index 5c9adfe82bed4993465dd3ea5f39a121ddf276d7..3f1984c7b9adf6b3ab8270bcf2434fe6bebf5015 100644 (file)
@@ -467,13 +467,14 @@ class ModuleImporter(BasicModuleImporter):
                 if not submod:
                     raise ImportError, "No module named " + subname
 
-    def import_it(self, partname, fqname, parent):
+    def import_it(self, partname, fqname, parent, force_load=0):
         if not partname:
             raise ValueError, "Empty module name"
-        try:
-            return self.modules[fqname]
-        except KeyError:
-            pass
+        if not force_load:
+            try:
+                return self.modules[fqname]
+            except KeyError:
+                pass
         try:
             path = parent and parent.__path__
         except AttributeError:
@@ -489,11 +490,11 @@ class ModuleImporter(BasicModuleImporter):
     def reload(self, module):
         name = module.__name__
         if '.' not in name:
-            return self.import_it(name, name, None)
+            return self.import_it(name, name, None, force_load=1)
         i = string.rfind(name, '.')
         pname = name[:i]
         parent = self.modules[pname]
-        return self.import_it(name[i+1:], name, parent)
+        return self.import_it(name[i+1:], name, parent, force_load=1)
 
 
 default_importer = None