code2flow-将您的Python和JavaScript代码转换为DOT流程图的python库

Code2flow将遍历您的项目源代码以查找函数定义。然后它将进行另一次扫描,以查找在何处调用这些函数。Code2flow连接各个点,并为您提供一个估算程序功能结构的流程图。

换句话说,code2flow生成调用图。

Code2flow对于解决意大利面条式代码并使新开发者快速入门特别有用。

Code2flow是实验性的,旨在提供对较简单项目结构的粗略概述。有许多已知的限制(请参阅下文)。期望此应用程序的大多数方面在将来的版本中有所变化。

这是在jquery上运行时发生的情况:

在python日历模块上:

安装

网盘下载code2flow并解压,进入到目录,然后运行:

sudo python setup.py install

如果您是第一次安装,还必须安装graphviz。

用法

要生成DOT文件,请运行以下命令:

code2flow mypythonfile.py

或者,对于javascript

code2flow myjavascriptfile.js

默认情况下,code2flow将呈现DOT文件out.gv和PNG文件out.png。

您也可以使在任何格式的流程图graphviz的支持:BMP佳能cgimage CMAP cmapx cmapx_np点EPS EXR图GIF GV IMAP imap_np ISMAP JP2 JPE JPEG JPG PCT PDF PIC PICT普通纯内线PNG POV PS PS2 PSD SGI SVG SVGZ tga tif tiff tk vml vmlz x11 xdot xlib

例如:

code2flow mypythonfile.py -o myflow.jpeg

局限性

Code2flow旨在为简单项目的结构提供合理的推测,并具有许多已知的局限性。

  • 不处理函数数组

  • 函数是否返回的逻辑只是在该函数中查找“ return”

  • 未在初始类/对象定义中声明的函数(例如,稍后附加)大部分不被处理

  • 动态生成和lambda函数通常不被处理

  • 在python中,不处理从父类继承的函数

  • 在python中,import ... as ...处理不正确

  • 在javascript中,原型会导致无法预测的结果

  • 还有很多

基本上,code2flow可能无法完全按照您期望的方式绘制您的源代码。

(0)

相关推荐