V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Trim21
V2EX  ›  分享创造

写了一个 python3 版本的 snakefood

  •  
  •   Trim21 ·
    Trim21 · 2019-04-13 04:32:22 +08:00 · 2472 次点击
    这是一个创建于 2033 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/Trim21/snakefood3

    一时兴起想看看项目里的依赖关系, 然后找到了 snakefood, 发现 python3 下面没法跑.

    然后就写了一个 python3 版本的, 但没实现原来的所有功能.

    原理挺简单的, 直接遍历 ast 的所有节点, 然后分析所有的ImportImportFrom节点, 看看被导入的是文件还是模块就好了.

    会把生成的 dot 文件内容输出到 stdout, 后续还需要用 graphviz 编译成图片才行.

    效果图(1.3M) https://github.com/Trim21/snakefood3/raw/master/example/bgmi.png

    3 条回复    2019-04-13 11:03:35 +08:00
    shell314
        1
    shell314  
       2019-04-13 09:15:16 +08:00 via Android
    这个不错
    curiouscat
        2
    curiouscat  
       2019-04-13 09:34:56 +08:00
    这让我想起来以前写的分析 C++代码的工具,也是通过 ast 生成 dot,然后 graphviz 画图
    guyskk0x0
        3
    guyskk0x0  
       2019-04-13 11:03:35 +08:00 via Android
    线条好多好混乱
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1083 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:14 · PVG 03:14 · LAX 11:14 · JFK 14:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.