用法:
分析一个脚本的依赖: 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
本文向大家介绍java实现输入输出流代码分享,包括了java实现输入输出流代码分享的使用技巧和注意事项,需要的朋友参考一下 1,编写一个程序,读取文件test.txt的内容并在控制台输出。如果源文件不存在,则显示相应的错误信息。 2,编写一个程序实现如下功能,从当前目录下的文件fin.txt中读取80个字节(实际读到的字节数可能比80少)并将读来的字节写入当前目录下的文件fout.txt中 3,使
本文向大家介绍Python实现统计代码行的方法分析,包括了Python实现统计代码行的方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现统计代码行的方法。分享给大家供大家参考,具体如下: 参加光荣之路测试开发班已三月有余,吴总上课也总问“ 咱们的课上了这么多次了大家实践了多少行代码了?”。这里是一个一脸懵逼的表情。该怎么统计呢?一个个文件数当然不可取,能用代码解决的事
本文向大家介绍Python 提取dict转换为xml/json/table并输出的实现代码,包括了Python 提取dict转换为xml/json/table并输出的实现代码的使用技巧和注意事项,需要的朋友参考一下 核心代码:
本文向大家介绍asp实现读取数据库输出json代码,包括了asp实现读取数据库输出json代码的使用技巧和注意事项,需要的朋友参考一下 PS:最后的参数是针对miniUI开发的,可以无视 以上就是本文的全部内容了,希望大家能够喜欢。
本文向大家介绍jsp输出当前时间的实现代码,包括了jsp输出当前时间的实现代码的使用技巧和注意事项,需要的朋友参考一下 在jsp页面中输出完整的时间,格式为"年 月 日 时:分:秒" 以上就是小编为大家带来的jsp输出当前时间的实现代码全部内容了,希望大家多多支持呐喊教程~
本文向大家介绍Mybatis 传输List的实现代码,包括了Mybatis 传输List的实现代码的使用技巧和注意事项,需要的朋友参考一下 1. 当查询的参数只有一个时 1.1 如果参数的类型是List, 则在使用时,collection属性要必须指定为 list Xml代码 1.2 如果参数的类型是Array,则在使用时,collection属性要必须指定为 array Xml代码 2. 当