分析并输出Python代码依赖的库,输出python代码依赖,#!/usr/bin/e
文章由Byrx.net分享于2019-03-23 05:03:46
分析并输出Python代码依赖的库,输出python代码依赖,#!/usr/bin/e
#!/usr/bin/env python# encoding: utf-8# source: https://github.com/MrLYC/ycyc/blob/dev/tools/analysis_dependency.pyimport astimport importlibimport inspectclass 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
相关内容
- 文件按照日期命名,文件日期命名,# -*- coding
- python判断远程端口是否打开,python判断端口,python判断远
- python helloworld,helloworld,#!/usr/bin/e
- o(n)时间复杂度替换字符串中空格为%20,字符串,class o
- python编写的最简单的web服务器,python编写web,下面的py
- A*(A星)算法python实现,算法python,None
- uuid压缩成64位编码,uuid64位编码,SAFEHASH = [
- 批量查询未注册域名,批量未注册域名,#!/usr/bin/e
- python检测端口是否开放,python检测端口,python的socke
- 用100多行python代码写一个数据库,100多python,数据库的名
评论关闭