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可能无法完全按照您期望的方式绘制您的源代码。