Pylint 不会忽略迁移

Pylint does not ignore migrations

我使用 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

预提交 passes filenames as positional arguments 到 hooks

这意味着它调用 pylint 为:

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

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

建议的修复是 exclude 预提交配置中来自 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

免责声明:我是预提交的作者