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

Skip to content

Commit 8deeced

Browse files
committed
Thomas Heller <[email protected]>:
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.
1 parent 10dfd4c commit 8deeced

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

Lib/ihooks.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -467,13 +467,14 @@ def ensure_fromlist(self, m, fromlist, recursive=0):
467467
if not submod:
468468
raise ImportError, "No module named " + subname
469469

470-
def import_it(self, partname, fqname, parent):
470+
def import_it(self, partname, fqname, parent, force_load=0):
471471
if not partname:
472472
raise ValueError, "Empty module name"
473-
try:
474-
return self.modules[fqname]
475-
except KeyError:
476-
pass
473+
if not force_load:
474+
try:
475+
return self.modules[fqname]
476+
except KeyError:
477+
pass
477478
try:
478479
path = parent and parent.__path__
479480
except AttributeError:
@@ -489,11 +490,11 @@ def import_it(self, partname, fqname, parent):
489490
def reload(self, module):
490491
name = module.__name__
491492
if '.' not in name:
492-
return self.import_it(name, name, None)
493+
return self.import_it(name, name, None, force_load=1)
493494
i = string.rfind(name, '.')
494495
pname = name[:i]
495496
parent = self.modules[pname]
496-
return self.import_it(name[i+1:], name, parent)
497+
return self.import_it(name[i+1:], name, parent, force_load=1)
497498

498499

499500
default_importer = None

0 commit comments

Comments
 (0)