使用 pyproject.toml 和 flake8 指定每个文件忽略

Specify per-file-ignores with pyproject.toml and flake8

我正在使用 flake8(带有 flakehell,但不会干扰)并将其配置保存在 pyproject.toml 文件中。我想添加一个 per-file-ignores 配置,但没有任何效果,也没有关于它应该如何在 toml 文件中格式化的文档。

Flake8 docs 仅显示 'native' 配置文件格式:

per-file-ignores =
    project/__init__.py:F401
    setup.py:E121
    other_project/*:W9

pyproject.toml没有描述/示例。

我试过了:

per-file-ignores=["file1.py:W0621", "file2.py:W0621"]

per-file-ignores={"file1.py" = "W0621", "file2.py" = "W0621"}

两者都默默地失败并且没有效果(仍然发出警告)。

使用 pyproject.toml 时 flake8/flakehell 中的每个文件忽略设置的正确语法是什么?

flake8 不支持 pyproject.toml,仅支持 .flake8setup.cfgtox.ini


免责声明:我是 flake8 的维护者

目前,pyproject-flake8 允许您像这样在 pyproject.toml 上编写 flake8 设置。

# pyproject.toml
[tool.flake8]
    exclude = ".venv"
    max-complexity = 10
    max-line-length = 100
    extend-ignore = """
        W503,
        E203,
        E701,
    """
    per-file-ignores = """
        __init__.py: F401
        ./src/*: E402
    """