在Python中创建依赖关系图

时间:2010-11-12 01:00:45

标签: python dependency-management call-flow

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

1 个答案:

答案 0 :(得分:23)

  • 通常为模块/包导入定义“依赖”。
  • 您正在寻找的是可视化的呼叫流程。

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

  • 我的经验和解决方案:

    很多次,我发现呼叫流数据过于庞大而且图表过于复杂。 所以我通常做的是部分跟踪函数的调用流程,我感兴趣。

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

[编辑:根据评论]

然后我的零碎解决方案效果更好。只需插入代码并在要跟踪的函数上使用装饰器即可。您将看到延迟进入图片的差距,但可以解决。你不会直接得到完整的图片。

我一直在努力做到这一点并制作了一个符合这种理解的few post