国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

分析并輸出Python代碼依賴的庫的實(shí)現(xiàn)代碼

2019-11-25 17:05:45
字體:
供稿:網(wǎng)友

用法:
分析一個(gè)腳本的依賴: 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.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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永福县| 保山市| 天台县| 区。| 绥德县| 聂荣县| 四平市| 许昌县| 丹寨县| 拉孜县| 原平市| 称多县| 常山县| 龙胜| 桐乡市| 上犹县| 台东市| 梧州市| 海林市| 海阳市| 开远市| 嘉义县| 达州市| 乌兰察布市| 上林县| 芦山县| 探索| 舞阳县| 贵定县| 雷州市| 丹巴县| 都匀市| 东丽区| 清新县| 黄冈市| 长海县| 洛川县| 集安市| 永定县| 平阳县| 应用必备|