在Python中创建依赖关系图

ani*_*haw 29 python dependency-management call-flow

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

pyf*_*unc 25

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

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

  • 我的经验和解决方案:

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

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

[编辑:根据评论]

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

我一直在努力做到这一点,并发表了一些符合这种理解的帖子.

  • 关于担保的最后一点+1.如果它可以遵循使用大量HOF和其他动态功能的大部分代码,我会非常感动.我认为它主要用于评估程序员的工作是否有用,这些程序员要么不够聪明才能使用这些功能,要么足够聪明. (5认同)