没流泪,不代表没眼泪;无所谓,不代表无所累。这个世界本就邋遢,所以没有什么可怕。每个人都有无法发泄的苦涩,都有无力排解的抑郁,而生活在那里的我们,哪一个不是拼尽全力,甚至不择手段地活着。
用法:
分析一个脚本的依赖: analysis_dependency.py script1.py
递归分析依赖: analysis_dependency.py script1.py -r
#!/usr/bin/env python # encoding: utf-8 # source: https://github.com/MrLYC/ycyc/blob/dev/tools/analysis_dependency.py import ast import importlib import inspect class Analysis(ast.NodeTransformer): def __init__(self, paths, recursion): self.modules = list() self.paths = list(paths) self.recursion = recursion def add_module(self, module): if module and module not in self.modules: self.modules.append(module) if self.recursion: try: path = inspect.getsourcefile(importlib.import_module(module)) if path: self.paths.append(path) except: pass def visit_Import(self, node): for i in node.names: self.add_module(i.name) def visit_ImportFrom(self, node): self.add_module(node.module) def analysis(self): for p in self.paths: try: with open(p,"rt") as fp: self.visit(ast.parse(fp.read(), p)) except: pass return tuple(self.modules) if __name__ =="__main__": import argparse parser = argparse.ArgumentParser() parser.add_argument("paths", nargs="+") parser.add_argument("-r","--recursion", action="store_true", default=False) args = parser.parse_args() analysisor = Analysis(args.paths, args.recursion) for m in analysisor.analysis(): print m
到此这篇关于分析并输出Python代码依赖的库的实现代码就介绍到这了。我不高,也不壮,没有很好的弹跳能够完成炫目的扣篮;也没有恐怖的力量能够统治所有对手。我不能在空中折叠,躲过防守完成得分,我也不能依靠脚步晃过对手戏弄般的完成进攻,高大得对手会把球直接盖在我脸上。是的,如你所见,我只是个普通到极点的人,那么告诉我!你为何还热爱篮球?更多相关分析并输出Python代码依赖的库的实现代码内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!