self._paths = {}
self._last_caller = None
modulefinder.ModuleFinder.__init__(self,*args,**kwargs)
-
+
def import_hook(self, name, caller=None, fromlist=None, level=-1):
old_last_caller = self._last_caller
try:
return modulefinder.ModuleFinder.import_hook(self,name,caller,fromlist, level)
finally:
self._last_caller = old_last_caller
-
+
def import_module(self,partnam,fqname,parent):
r = modulefinder.ModuleFinder.import_module(self,partnam,fqname,parent)
if r is not None:
self._depgraph.setdefault(self._last_caller.__name__,{})[r.__name__] = 1
return r
-
+
def load_module(self, fqname, fp, pathname, (suffix, mode, type)):
r = modulefinder.ModuleFinder.load_module(self, fqname, fp, pathname, (suffix, mode, type))
if r is not None:
self._types[r.__name__] = type
self._paths[r.__name__] = pathname
return r
-
-
+
+
if __name__=='__main__':
from optparse import OptionParser
from pprint import pprint