X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=blobdiff_plain;f=tools%2Fpy2depgraph.py;h=40ef5983a334b0a9d13f66358b609d1cb17af691;hp=022add32c9042368677410ba483f360452a1e38b;hb=HEAD;hpb=490674b5c63d3dd371e63eba2c45df07cc0fcde4 diff --git a/tools/py2depgraph.py b/tools/py2depgraph.py index 022add32..40ef5983 100755 --- a/tools/py2depgraph.py +++ b/tools/py2depgraph.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # Copyright 2004,2009 Toby Dickenson # # Permission is hereby granted, free of charge, to any person obtaining @@ -20,52 +20,60 @@ # 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("Trimmed fqname", fqname, file=sys.stderr) 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)) + + def load_module(self, fqname, fp, pathname, xxx_todo_changeme): + (suffix, mode, type) = xxx_todo_changeme + 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:])