<blockquote>
<p>Is there a simple way to make vulture aware of the view functions?</p>
</blockquote>
<p>是的,有-秃鹫称这个过程为“白名单”。基本思想是显式地“使用”代码Vulture报告为未使用的代码。这可以通过为未使用的代码创建一个模拟对象来实现。由于创建这样的模拟对象是相当普遍的做法,Vulture最近开始为这个非常特殊的目的发布一个抽象类<code>vulture.whitelist_utils.Whitelist</code>。在</p>
<p>对于您给出的示例视图函数,白名单可能如下所示:</p>
<pre><code># whitelists/whitelist_view.py
from vulture.whitelist_utils import Whitelist
view_whitelist = Whitelist()
# Create an attribute named exactly as your
# unused object - a function in this case
view_whitelist.some_url_view
</code></pre>
<p>请注意,您还必须将此文件作为参数传递给Vulture才能正常工作。在上面的示例中,假设您正在<code>apps</code>和<code>tests</code>目录上运行Vulture,如果白名单保存为<code>whitelists/whitelist_view.py</code>,那么Vulture的命令应该是:</p>
^{pr2}$
<p>这是怎么回事?</strong></p>
<p>由于您还传递了白名单文件和要分析的文件,vulture为它们都创建了<code>ast</code>,在解析这些抽象语法树时,vulture创建了一个公共集,用于存储已使用和定义的对象的名称。由于假阳性函数的名称同时出现在这两个函数中,因此不将其视为未使用的函数。在</p>
<p>有关如何减少误报的更多方法,请通过<a href="https://github.com/jendrikseipp/vulture/#usage" rel="nofollow noreferrer">Vulture's Documentation</a>。还有这个<a href="https://rj722.github.io/blog/2018/05/19/why-use-coverage-to-find-which-python-code-is-run/" rel="nofollow noreferrer">blog post by Rahul on Vulture and false positives.</a></p>