vulture-查找和分析无效的Python代码的工具

Vulture在Python程序中查找未使用的代码。这对于清理和查找大型代码库中的错误很有用。如果您同时在库和测试套件上运行Vulture,则可以找到未经测试的代码。

由于Python的动态特性,像Vulture这样的静态代码分析器很可能会丢失一些无效代码。同样,仅隐式调用的代码可能会报告为未使用。但是,Vulture对于提高代码质量可能是非常有用的工具。

特征

  • 快速:使用静态代码分析

  • 已测试:自我测试并具有完整的测试范围

  • 对pyflakes的补充,并具有相同的输出语法

  • 使用大小对未使用的类和函数进行排序 --sort-by-size

  • 支持Python> = 3.6

安装

通过pip安装,或者也可以在网盘中下载Vulture的源代码:

$ pip install vulture

用法

提供的参数可以是Python文件或目录。Vulture针对每个目录分析所有包含的 * .py文件。

Vulture为无用的代码的每个块分配一个置信度值。置信度值为100%表示将永远不会执行该代码。低于100%的值仅用于估计未使用代码的可能性。

找到并删除无效代码后,请再次运行Vulture,因为它可能会发现更多的无效代码。

它是如何工作的?

Vulture使用ast模块为所有给定文件构建抽象语法树。在遍历所有语法树时,它记录已定义和已使用对象的名称。之后,它将报告已定义但尚未使用的对象。此分析忽略范围,仅考虑对象名称。

Vulture还通过查找代码后检测不到的代码 return,break,continue和raise报表,并通过搜索不可满足的if和while条件。

例子

考虑以下Python脚本(dead_code.py):

调用:

$ vulture dead_code.py

输出以下结果:

dead_code.py:1: unused import 'os' (90% confidence)dead_code.py:4: unused function 'greet' (60% confidence)dead_code.py:8: unused variable 'message' (60% confidence)
(0)

相关推荐