python-3.x - python预提交和pylint
问题描述
我正在使用 Python 3.8.5(在 Visual Studio Code 中)、预提交和 pylint 设置一个项目。在项目中 pylint 报告 PyQt5 模块导入,因为它们是基于 C 的。
为了不让 Pylint 对此进行报告,该.pylintrc
文件可以配置为extension-pkg-whitelist=PyQt5
. 这在 IDE 中运行良好。此外,我像这样使用 pylint 设置了 pre-commit,但 pylint 似乎忽略了 PyQt5 的值,因为 pre-commit 仍然报告 pyqt5 的导入错误
- repo: https://github.com/PyCQA/pylint
rev: pylint-2.5.0
hooks:
- id: pylint
args: [--extension-pkg-whitelist=PyQt5]
Main\main.py:1:0: E0401: Unable to import 'PyQt5.QtWidgets' (import-error)
Pylint 仍然接受参数,因为例如传递--errors-only
确实有效。在 cli 中使用这些确切参数调用 pylint 可以按预期工作:它不会报告 PyQt5,但通过 pre-commit 调用似乎不起作用。我知道该参数已被注意到,因为省略“PyQt5”作为值会导致错误指出缺少参数。因此,不知何故,该值的解析方式与 cli 中的解析方式不同。
我尝试了上面给出的格式,这里的格式,我尝试像这样拆分参数args: [--extension-pkg-whitelist, PyQt5]
,我尝试添加单/双引号。它似乎没有捡起它。
如何将 args 传递给需要键和值的钩子?
提前致谢
解决方案
我对 pydantic 库也有类似的问题。我必须将库添加为依赖项:
- repo: https://github.com/pycqa/pylint
rev: v2.9.6
hooks:
- id: pylint
additional_dependencies:
- 'pydantic'
args:
["--extension-pkg-whitelist=pydantic"]
推荐阅读
- c# - WebApi 操作方法返回 null
- ios - iOS 13 - 静默推送通知不再可靠
- angular - 如何将值绑定到 Angular 中补丁请求的复选框单击事件?
- elasticsearch - elasticsearch摄取管道丢弃处理器的问题
- linux - Ansible 无法创建符号链接
- regex - PHP 正则表达式替换替代
- html - 当兄弟选择器出现时,它有什么问题?
- python - 如何将 R RDS 模型对象读入 Python 进行预测?
- rust - 为什么 hash_map::Entry::or_insert_with 不能访问条目的键?
- javascript - 如何在保持数据有序状态的同时继续接收数据?