Pylint и pre-commit python 3.7

Я пытаюсь настроить Pylint для работы с pre-commit. Я изучил документы, но все еще в замешательстве. Я не знаю, как правильно настроить.pre-commit-config.yaml.

Не могли бы вы предоставить самый простой шаблон?

-   repo: myrepo
    rev: ''  # Don't know that to type here
    hooks:
    -   id: pylint

3 ответа

Самый простой из возможных шаблонов будет следующим:

-   repo: https://github.com/pre-commit/mirrors-pylint
    rev: v2.3.1
    hooks:
    -   id: pylint

Вы также можете передать аргументы в pylint:

-   repo: https://github.com/pre-commit/mirrors-pylint
    rev: v2.3.1
    hooks:
    -   id: pylint
        args:
        - --max-line-length=80
        - --ignore-imports=yes
        - -d duplicate-code

Примечания о совместимости:

  • Python> =3.7 требует pylint> = 2.0
  • Python 2 требует pylint < 2.0 (поддержка Python 2 была удалена в Pylint 2)

Вот фрагмент конфигурации перед фиксацией, который работает для меня, используя обычные pylint вместо того mirrors-pylint:

  - repo: https://github.com/pycqa/pylint
    rev: pylint-2.5.3
    hooks:
    -   id: pylint
        args:
        - --errors-only

Согласно руководству пользователя Pylint ,

Поскольку для правильной работы pylint необходимо импортировать модули и зависимости, хук работает только при локальной установке pylint (в вашей среде).

Итак, вы должны поставитьrepo: localи установите pylint локально. Их первый пример.pre-commit-config.yamlвыглядит так:

      - repo: local
  hooks:
    - id: pylint
      name: pylint
      entry: pylint
      language: system
      types: [python]
      args:
        [
          "-rn", # Only display messages
          "-sn", # Don't display the score
        ]
Другие вопросы по тегам