我对在网络空间中某个地方之前被问过的这个问题记忆犹新,但是我再也找不到了。
说我有一个定义了许多函数(和/或类)的文件,但是我知道其中一些在我的项目中没有使用。是否有工具可以扫描我的项目以查看未使用的功能?
我知道我可以为每个功能单独执行此操作,例如使用Pycharm,但是我不知道对文件中的所有功能执行此操作的方法。感觉必须要有一种工具,但是我不知道。
编辑
我知道@deceze指出,在某些极端情况下,这种代码通常无法进行使用检查。但我对99%的时间都可以使用的工具感到满意。其余的可以通过例如单元测试来捕获,并手动处理。
答案 0 :(得分:1)
我不知道有什么工具可以探索您的整个项目,但是您可以使用jedi库轻松地编写几行代码。
这里jedi.Script.usages正是您想要的,该工具将执行以下操作:
sys.path
的信息PS:最“棘手”的步骤是从python文件中提取函数的步骤,但我想这也可以通过jedi来完成,而不是使用另一个内置的python解析器,这是未经测试的代码:
for definition in jedi.names(source, all_scopes=True, definitions=True, references=True):
if definition.parent().type == "function": # The name is located in a function ...
ass = definition.goto_assignments()
if len(ass) > 0 and ass[0].parent().type == "function": # ... and is assigned to in a function
print("Found a local variable:", definition.name)
摘自该github issue
答案 1 :(得分:0)
Coverage.py-最近使用它来显示我的测试范围。但它也可以在其他情况下使用