MyPy 配置 - 排除多个目录

Jam*_*s B 17 python mypy pyproject.toml

我们目前Mypy在项目中使用(v 0.910)进行pyproject.toml配置。

我有以下文件结构:

src
  --app
    --generated
    --service
    --data
  --ingest
Run Code Online (Sandbox Code Playgroud)

pyproject.toml

...
[tool.mypy]
python_version = 3.8
disallow_untyped_defs = true
exclude = "(src/app/generated)|(src/ingest)"
...
Run Code Online (Sandbox Code Playgroud)

使用此配置运行时,src/ingest将忽略该文件夹,但不会忽略该src/app/generated文件夹。为了测试正则表达式,我还尝试了:

...
[tool.mypy]
python_version = 3.8
disallow_untyped_defs = true
exclude = "(src/app)|(src/ingest)"
...
Run Code Online (Sandbox Code Playgroud)
src
  --app
    --generated
    --service
    --data
  --ingest
Run Code Online (Sandbox Code Playgroud)

成功忽略了所有文件。我想知道为什么第一个示例不忽略src/app/generated文件夹。

Ehu*_*Lev 14

对于任何使用setup.cfg文件的人。以下语法对我有用:

[mypy]
exclude = folder_1|venv|tests
Run Code Online (Sandbox Code Playgroud)


Npn*_*ddy 2

以下应该有效:

[tool.mypy]
python_version = 3.8
disallow_untyped_defs = true
exclude = "src/(app|ingest)"
Run Code Online (Sandbox Code Playgroud)