MyPy 配置 - 排除多个目录

问题描述 投票:0回答:4

我们目前在项目中使用

Mypy
(v 0.910) 和
pyproject.toml
进行配置。

我有以下文件结构:

src
  --app
    --generated
    --service
    --data
  --ingest

pyproject.toml

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

使用此配置运行时,将忽略

src/ingest
文件夹,但不会忽略
src/app/generated
文件夹。为了测试正则表达式,我也尝试过:

...
[tool.mypy]
python_version = 3.8
disallow_untyped_defs = true
exclude = "(src/app)|(src/ingest)"
...
mypy src --config-file ./pyproject.toml 
Success: no issues found in 1 source file

成功忽略所有文件。我想知道为什么第一个示例不忽略

src/app/generated
文件夹。

python mypy pyproject.toml
4个回答
14
投票

对于使用

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

[mypy]
exclude = folder_1|venv|tests

2
投票

以下应该有效:

[tool.mypy]
python_version = 3.8
disallow_untyped_defs = true
exclude = "src/(app|ingest)"

1
投票

我刚刚遇到了同样的问题 - 事实证明你需要单引号来表示

pyproject.toml
文件:

[tool.mypy]
plugins = [ "mypy_django_plugin.main" ]
ignore_missing_imports = true
check_untyped_defs = true
disallow_untyped_defs = true
exclude = 'util/mixins\.py$|typings/.*\.py'

0
投票

pyproject.toml
中,您可以简单地记下目录列表,例如

[tool.mypy]
exclude = [
  "src/app/generated",
  "src/ingest",
  "venv",
]

更多详细信息(包括注意事项)在 mypy 文档的配置文件章节中进行了解释。

© www.soinside.com 2019 - 2024. All rights reserved.