1

我使用 Pylint 并通过预提交挂钩运行它。它不会忽略我的迁移文件夹。我应该在配置中添加什么?

repos:
  - repo: https://github.com/PyCQA/pylint
    rev: pylint-2.5.2
    hooks:
      - id: pylint
        name: pylint
        entry: pylint
        language: system
        types: [python]
        args:
        - --rcfile=./backend/.pylintrc
        - --load-plugins=pylint_django

和文件.pylintrc

[MASTER]
init-hook='import sys; sys.path.append("./backend")'
max-line-length=120
disable=
    missing-module-docstring,
    missing-function-docstring,
    missing-class-docstring,
    too-few-public-methods,
    no-self-use,
    fixme,
ignore=migrations
4

1 回答 1

1

预提交将文件名作为位置参数传递给钩子

这意味着它将 pylint 称为:

pylint path/to/filename.py path/to/migrations/filename.py ...

当您像这样调用 pylint 时,它会显式地为命令行上的任何文件产生 lint 错误。该ignore设置仅用于 pylint 的递归模式

建议的解决方法是在您的预提交配置中从 pylint 中排除这些文件

另请注意,您的配置还有另一个问题:

  • 您正在使用基于存储库的配置,但随后使用挂钩覆盖设置,language: system因此您完全放弃了存储库配置

把所有这些放在一起:

repos:
  - repo: local
    hooks:
      - id: pylint
        name: pylint
        entry: pylint
        language: system
        types: [python]
        exclude: ^migrations/
        args:
        - --rcfile=./backend/.pylintrc
        - --load-plugins=pylint_django

免责声明:我是 pre-commit 的作者

于 2021-01-12T14:57:32.317 回答