предварительная фиксация: запустите flake8 с python 3.6.8

Я установил Pyton 3.6.8 в свою систему.

python3 --version   //-> Python 3.6.8
python3.6 --version //-> Python 3.6.8

Мой файл pre-commit-config.yaml:

repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.4.0
-   repo: https://gitlab.com/pycqa/flake8
rev: 3.7.9
hooks:
- id: flake8
  language_version: python3.6

Я установил для своего проекта ловушку предварительной фиксации. Каждый раз, когда я хочу зафиксировать некоторые изменения в git, предварительная фиксация выполняется с ошибкой flake8:

TYP005 NamedTuple does not support defaults in 3.6.0

Это верно для Python 3.6.0, потому что эта функция введена и разрешена в Python 3.6.1+. https://docs.python.org/3.6/library/typing.html#typing.NamedTuple

Как настроить flake8 для работы с Python 3.6.8?

ИЗМЕНИТЬ Когда я запускаю flake8 file.rb, я не получаю сообщение об ошибке TYP005.

python3 -m pip install flake
flake --version //-> 3.7.9 (the same version as in the pre-commit script file)

person user5580578    schedule 13.03.2020    source источник
comment
language_version: python3.6.8? Или это исполняемый файл? Я предполагаю, что вы используете pre-commit.com. У вас есть другой конфиг flake8? Что произойдет, если вы запустите его иначе, чем до фиксации?   -  person jonrsharpe    schedule 13.03.2020
comment
Да, я использую pre-commit.com. Если я использую python3.6.8, я все равно получаю ту же ошибку. У меня больше нет конфигурационных файлов flake8.   -  person user5580578    schedule 13.03.2020
comment
Что если вы запустите flake8 напрямую? Может быть, вам следует иметь другую конфигурацию.   -  person jonrsharpe    schedule 13.03.2020
comment
когда я запускаю flake8 file.rb, я не получаю это сообщение об ошибке. Установлено; python3 -m pip install flake8. Кроме того, flake8 --version тоже 3.7.9   -  person user5580578    schedule 13.03.2020
comment
Пожалуйста, измените эту информацию в вопросе.   -  person jonrsharpe    schedule 13.03.2020


Ответы (1)


отказ от ответственности: я являюсь автором двух рассматриваемых инструментов (предварительная фиксация, flake8-typing-import) и сопровождающим другого (flake8)


код TYP005 взят из flake8-typing-imports

есть два варианта указания минимальной поддерживаемой версии для flake8-typing-imports, первый - параметр командной строки / flake8:

--min-python-version 3.6.1

или в вашей конфигурации flake8

[flake8]
min_python_version = 3.6.1

если вы распространяете библиотеку, вы можете указать минимальную поддерживаемую версию с помощью _ 4_ метаданные - это указано в setup.cfg

[options]
python_requires >= 3.6.1

Кроме того, я считаю, что в вашем вопросе отсутствует некоторая информация, без additional_dependencies в вашей конфигурации перед фиксацией flake8 будет установлен изолированно и не будет иметь доступа к таким плагинам, как flake8-typing-imports - я предполагаю, что у вас действительно есть конфигурация похожа на:


-   repo: https://gitlab.com/pycqa/flake8
    rev: 3.7.9
    hooks:
    -   id: flake8
        additional_dependencies: [flake8-typing-imports==1.9.0]

говоря об аргументах командной строки выше, вы можете указать их здесь как args (хотя я лично предпочитаю подходы с конфигурационным файлом)

    -   id: flake8
        args: [--min-python-version, '3.6.1']
        additional_dependencies: [flake8-typing-imports==1.9.0]
person Anthony Sottile    schedule 14.03.2020