查找看起来是损坏的python包的dir,作为预提交挂钩。

pyorphans的Python项目详细描述


Latest PyPI versionBuild Status

查找看起来是损坏的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_stufftests/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

现在每次你做出承诺,皮奥纳尔都会跑去要求你修复它找到的任何东西。孤儿跑得很快,所以你几乎不会注意到它在那里!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将列表a作为从流收集的映射中的值   java SVN Eclipse忽略所有用户的文件夹   @PathVariable类型不匹配的java配置错误页   java在应用程序中使用Oracle数据库需要什么?   java无法确定用户何时为我的自定义异常输入数字小于0的问题   java如何通过软件导航网站?   java将JFace TableViewer添加到SWT表   Java中“field”和“this.field”的区别   java战舰代码不工作   java如何设置可执行IE 11驱动程序的路径   java这个程序如何一步一步地计算两个区间之间的阿姆斯特朗数?   JavaRestlet:在过滤器中使用转换器服务   Tensorflow:如何在java中使用python训练的语音识别模型   EclipseJava。util。使用迭代器从HashMap获取ArrayList时出现NoTouchElementException   Java Swing启动屏幕配置错误   为什么MySQL浮点与Java浮点不同?