查找看起来是损坏的python包的dir,作为预提交挂钩。
pyorphans的Python项目详细描述
查找看起来是损坏的python包的dirs,即 包含*.py文件,但不包含必需的__init__.py
建议使用作为Pre-commit钩子运行。
为什么?
在您的主代码中,不太可能有孤立模块,因为它们不可导入,并且可能导致可见的错误。
然而,在单元测试中,特别是如果您有很多测试,您可能会发现孤儿。它们不会被发现,因为在开发过程中,您可能会将孤儿的完整路径传递给您的测试运行者,并且它是有效的。但是当你运行完整的测试套件时,孤儿将找不到,所以你有没有运行的测试!
通过将pyorphans作为预提交挂钩运行,您可以捕获孤儿并立即修复它们。
cli用法
pip install pyorphans
这将安装控制台脚本pyorphans。
要运行检查程序,只需将项目中的根包列表传递给它即可:
pyorphans tests myproject
它返回如下输出:
tests/unit -> test_important_stuff.py tests/integration/important_stuff tests/integration/important_stuff/api -> test_views.py
我们可以在这里看到,tests/unitdir缺少一个__init__.py,但包含test_important_stuff.py
而且tests/integration/important_stuff和tests/integration/important_stuff/api目录都丢失了它们的__init__.py文件。在两个目录中都找到一个单独的“孤立”文件,tests/integration/important_stuff/api/test_views.py。
假设您得到如下输出:
myproject/scripts -> do_something.py
也许scripts不是一个包,do_something.py是一个从命令行运行的非常好的独立脚本。
在本例中,在项目的根目录(pyornans将从中运行的目录)中创建一个.pyorphans_ignore文件,其中包含:
myproject/scripts
现在myproject/scripts(及其所有子目录)将从孤儿搜索中排除。
预提交挂钩
我们建议使用Pre-commit。
pip install pre-commit
pyorphans被配置为预提交插件。若要将其应用于项目,请将.pre-commit-config.yaml文件添加到项目的根目录中,如下所示:
repos:-repo:https://github.com/depop/pyorphansrev:"0.2.0"hooks:-id:pyorphansargs:-myproject-tests
现在每次你做出承诺,皮奥纳尔都会跑去要求你修复它找到的任何东西。孤儿跑得很快,所以你几乎不会注意到它在那里!