[Python-checkins] CVS: python/dist/src/Lib ihooks.py,1.9,1.10
Fred Drake
python-dev@python.org
2000年4月13日 10:52:30 -0400
Update of /projects/cvsroot/python/dist/src/Lib
In directory seahag.cnri.reston.va.us:/home/fdrake/projects/python/Lib
Modified Files:
ihooks.py
Log Message:
Thomas Heller <thomas.heller@ion-tof.com>:
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.
Index: ihooks.py
===================================================================
RCS file: /projects/cvsroot/python/dist/src/Lib/ihooks.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** ihooks.py 1998年06月29日 20:31:16 1.9
--- ihooks.py 2000年04月13日 14:52:27 1.10
***************
*** 468,479 ****
raise ImportError, "No module named " + subname
! def import_it(self, partname, fqname, parent):
if not partname:
raise ValueError, "Empty module name"
try:
- return self.modules[fqname]
- except KeyError:
- pass
- try:
path = parent and parent.__path__
except AttributeError:
--- 468,480 ----
raise ImportError, "No module named " + subname
! def import_it(self, partname, fqname, parent, force_load=0):
if not partname:
raise ValueError, "Empty module name"
+ if not force_load:
+ try:
+ return self.modules[fqname]
+ except KeyError:
+ pass
try:
path = parent and parent.__path__
except AttributeError:
***************
*** 490,498 ****
name = module.__name__
if '.' not in name:
! return self.import_it(name, name, None)
i = string.rfind(name, '.')
pname = name[:i]
parent = self.modules[pname]
! return self.import_it(name[i+1:], name, parent)
--- 491,499 ----
name = module.__name__
if '.' not in name:
! 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, force_load=1)