предварительная фиксация python и pylint

Я настраиваю проект с Python 3.8.5 (в Visual Studio Code), pre-commit и pylint. В проекте pylint сообщает об импорте модуля PyQt5, поскольку он основан на C.

Чтобы Pylint не сообщал об этом, .pylintrc файл может быть настроенным с помощью extension-pkg-whitelist=PyQt5. Это отлично работает в среде IDE. Кроме того, я настроил предварительную фиксацию с помощью pylint, как это, но pylint, похоже, игнорирует значение PyQt5, поскольку предварительная фиксация по-прежнему сообщает об ошибках импорта для 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 действительно работает. Вызов pylint с этими точными параметрами в cli работает должным образом: он не сообщает о PyQt5, но вызов через предварительную фиксацию, похоже, не работает. Я знаю, что аргумент замечен, поскольку пропуск PyQt5 в качестве значения приводит к ошибке, в которой указывается, что аргумент отсутствует. Так что почему-то значение анализируется иначе, чем в cli.

Я попробовал формат, указанный выше, этот формат здесь, я попытался разделить такие аргументы args: [--extension-pkg-whitelist, PyQt5], я пробовал добавлять одинарные / двойные кавычки. Кажется, он не улавливает.

Как передать в ловушку аргументы, требующие ключа и значения?

заранее спасибо


person timv    schedule 16.08.2020    source источник
comment
Я бы посоветовал прочитать предложения по использованию pylint с предварительной фиксацией - может помочь вам с настройкой. Сам pylint выполняет динамический анализ, поэтому изолированные virtualenvs перед фиксацией не всегда подходят для него (некоторые из его проверок статичны и работают нормально, но когда pylint пытается следовать за импортом, у вас будет плохое время!) (отказ от ответственности: автор предварительной фиксации)   -  person Anthony Sottile    schedule 16.08.2020