pre-commit: запустите flake8 с python 3.6.8 - PullRequest
0 голосов
/ 13 марта 2020

Я установил 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

Я установил ловушку pre-commit для моего проекта. Каждый раз, когда я хочу зафиксировать некоторые изменения в 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 .rb, я не получаю сообщение об ошибке TYP005.

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

1 Ответ

0 голосов
/ 14 марта 2020

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


код TYP005 из flake8-typing-import

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

--min-python-version 3.6.1

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

[flake8]
min_python_version = 3.6.1

если вы распространяете библиотеку, вы можете указать минимальную поддерживаемую версию, используя python_requires метаданные - это указано в 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]
...