https://github.com/Trim21/snakefood3
一时兴起想看看项目里的依赖关系, 然后找到了 snakefood, 发现 python3 下面没法跑.
然后就写了一个 python3 版本的, 但没实现原来的所有功能.
原理挺简单的, 直接遍历 ast 的所有节点, 然后分析所有的Import和ImportFrom节点, 看看被导入的是文件还是模块就好了.
会把生成的 dot 文件内容输出到 stdout, 后续还需要用 graphviz 编译成图片才行.
效果图(1.3M) https://github.com/Trim21/snakefood3/raw/master/example/bgmi.png