代码之家  ›  专栏  ›  技术社区  ›  anijhaw

在python中创建依赖关系图

  •  27
  • anijhaw  · 技术社区  · 14 年前

    我继承了一个巨大的代码库,需要对其进行一些小的修改。我想知道是否有实用程序可以解析python代码并提供函数之间的依赖关系,就像我对一个函数进行更改一样,我想确保不会破坏其他函数,所以如果我能在一个类似图的图表中看到它,我的生活会更轻松。

    1 回复  |  直到 14 年前
        1
  •  23
  •   pyfunc    14 年前
    • 通常为模块/包导入定义“依赖关系”。
    • 您要寻找的是一个可视化的调用流。

    • 您仍然不能保证不会破坏功能:)

    • 我的经验和解决方案:

      很多时候,我发现调用流数据太多,而且图表太复杂。 所以我通常做的是部分跟踪函数的调用流,我对此很感兴趣。

      这是通过使用sys.settrace(…)函数完成的。在将调用流生成为文本数据之后,我使用graphviz生成了一个调用图。

    [编辑:基于评论]

    然后我的零碎解决方案工作得更好。只需插入代码并在要跟踪的函数上使用decorator。你会看到延迟出现在图片中的空白,但这可以解决。您将无法直接获得完整的图片。

    我一直在努力做到这一点, few post 这是基于这种理解。