[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)
 
 

AltStyle によって変換されたページ (->オリジナル) /