在Python中创建依赖图
-
08-10-2019 - |
题
我继承了一个巨大的代码库,我需要进行一些小的更改。我想知道是否有一些公用事业可以解析python代码并在功能之间提供依赖性,就像我是否对功能进行更改,我想确保我不违反其他功能,因此,如果我可以在图中看到类似的图表,会让我的生活更轻松。
解决方案
- 通常为模块 /软件包导入定义“依赖关系”。
您正在寻找的是可视化呼叫流。
您仍然不能保证您不会破坏功能:)
我的经验和解决方案:
很多时候,我发现呼叫流数据不堪重负,并且图太复杂了。因此,我通常要做的是对函数的部分跟踪呼叫流部分,我对此感兴趣。
这是通过使用SYS.SetTrace(...)函数来完成的。生成呼叫流作为文本数据后,我使用graphviz生成呼叫图。
- http://docs.python.org/library/sys.html
- 在通话跟踪中
- 要生成图形,请使用来自 NetworkX.
编辑:根据评论
然后,我的零碎解决方案效果更好。只需插入代码并在要跟踪的函数上使用装饰器即可。您会看到延期出现的差距,但可以解决。您将不会直接获得完整的图片。
我一直在尝试这样做,并做了一个 很少有人帖子 这对这种理解有用。
不隶属于 StackOverflow