【问题标题】:pre-commit: run flake8 with python 3.6.8预提交:使用 python 3.6.8 运行 flake8
【发布时间】:2020-03-13 07:32:48
【问题描述】:

我在我的系统上安装了 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)

【问题讨论】:

  • language_version: python3.6.8?或者那是一个可执行文件?我假设您使用的是pre-commit.com。你还有其他 flake8 配置吗?如果您通过预提交以外的方式运行它会发生什么?
  • 是的,我使用 pre-commit.com。如果我使用 python3.6.8 我仍然会得到同样的错误。我没有更多的 flake8 配置文件。
  • 如果直接运行 flake8 会怎样?也许你应该有其他配置。
  • 当我运行 flake8 file.rb 时,我没有收到此错误消息。安装者; python3 -m pip 安装 flake8。此外 flake8 --version 也是 3.7.9
  • edit这个信息进入问题。

标签: python-3.6 flake8 pre-commit pre-commit.com


【解决方案1】:

免责声明:我是两个相关工具(pre-commit、flake8-typing-imports)的作者和另一个 (flake8) 的维护者


TYP005 代码来自flake8-typing-imports

有两个选项可以将您支持的最低版本指示为flake8-typing-imports,第一个是命令行参数/ flake8 设置:

--min-python-version 3.6.1

或在您的 flake8 配置中

[flake8]
min_python_version = 3.6.1

如果您正在分发一个库,您可以使用python_requires metadata 指明支持的最低版本——这在setup.cfg 中指定

[options]
python_requires >= 3.6.1

顺便说一句,我相信您的问题中缺少一些信息,如果您的预提交配置中没有additional_dependenciesflake8 将被单独安装,并且无法访问诸如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]

【讨论】:

    猜你喜欢
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2020-12-06
    • 1970-01-01
    • 2022-10-13
    相关资源
    最近更新 更多