X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tools%2Fpy2depgraph.py;h=5c03f7f2b08c06694f7dfb7a86da8edeec4d6755;hb=8e558be62ca1e048cedb76d6036d1acbfa827bd4;hp=022add32c9042368677410ba483f360452a1e38b;hpb=14ca7e52f6af8accc0ba6e362e2a674ea4579e7f;p=sfa.git diff --git a/tools/py2depgraph.py b/tools/py2depgraph.py index 022add32..5c03f7f2 100755 --- a/tools/py2depgraph.py +++ b/tools/py2depgraph.py @@ -20,52 +20,59 @@ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -import sys, pprint +import sys +import pprint import modulefinder -focus=[ 'sfa' , 'OpenSSL', 'M2Crypto', 'xmlrpclib', 'threading' ] +focus = ['sfa', 'OpenSSL', 'M2Crypto', 'xmlrpclib', 'threading'] + class mymf(modulefinder.ModuleFinder): - def __init__(self,*args,**kwargs): + + def __init__(self, *args, **kwargs): self._depgraph = {} self._types = {} self._last_caller = None - modulefinder.ModuleFinder.__init__(self,*args,**kwargs) - + modulefinder.ModuleFinder.__init__(self, *args, **kwargs) + def import_hook(self, name, caller=None, fromlist=None, level=None): old_last_caller = self._last_caller try: self._last_caller = caller - return modulefinder.ModuleFinder.import_hook(self,name,caller,fromlist) + return modulefinder.ModuleFinder.import_hook(self, name, caller, fromlist) finally: self._last_caller = old_last_caller - - def import_module(self,partnam,fqname,parent): - keep=False + + def import_module(self, partnam, fqname, parent): + keep = False for start in focus: - if fqname.startswith(start): keep=True + if fqname.startswith(start): + keep = True if not keep: - print >> sys.stderr, "Trimmed fqname",fqname + print >> sys.stderr, "Trimmed fqname", fqname return - r = modulefinder.ModuleFinder.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 + 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)) + r = modulefinder.ModuleFinder.load_module( + self, fqname, fp, pathname, (suffix, mode, type)) if r is not None: self._types[r.__name__] = type return r - - -def main(argv): + + +def main(argv): path = sys.path[:] debug = 0 exclude = [] - mf = mymf(path,debug,exclude) + mf = mymf(path, debug, exclude) mf.run_script(argv[0]) - pprint.pprint({'depgraph':mf._depgraph,'types':mf._types}) - -if __name__=='__main__': + pprint.pprint({'depgraph': mf._depgraph, 'types': mf._types}) + +if __name__ == '__main__': main(sys.argv[1:])