@@ -220,6 +220,7 @@ def import_module(self, partname, fqname, parent):
220220 return m
221221 if self .badmodules .has_key (fqname ):
222222 self .msgout (3 , "import_module -> None" )
223+ self .badmodules [fqname ][parent .__name__ ] = None
223224 return None
224225 try :
225226 fp , pathname , stuff = self .find_module (partname ,
@@ -279,7 +280,7 @@ def scan_code(self, co, m):
279280 self .import_hook (name , m )
280281 except ImportError , msg :
281282 self .msg (2 , "ImportError:" , str (msg ))
282- self .badmodules [name ] = None
283+ self .badmodules [name ] = { m . __name__ : None }
283284 elif op == IMPORT_FROM :
284285 name = co .co_names [oparg ]
285286 assert lastname is not None
@@ -289,7 +290,7 @@ def scan_code(self, co, m):
289290 except ImportError , msg :
290291 self .msg (2 , "ImportError:" , str (msg ))
291292 fullname = lastname + "." + name
292- self .badmodules [fullname ] = None
293+ self .badmodules [fullname ] = { m . __name__ : None }
293294 else :
294295 lastname = None
295296 for c in co .co_consts :
@@ -361,7 +362,9 @@ def report(self):
361362 for key in keys :
362363 # ... but not if they were explicitely excluded.
363364 if key not in self .excludes :
364- print "?" , key
365+ mods = self .badmodules [key ].keys ()
366+ mods .sort ()
367+ print "?" , key , "from" , string .join (mods , ', ' )
365368
366369
367370def test ():
0 commit comments