我们目前在项目中使用
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
文件夹。
对于使用
setup.cfg
文件的人。
以下语法对我有用:
[mypy]
exclude = folder_1|venv|tests
以下应该有效:
[tool.mypy]
python_version = 3.8
disallow_untyped_defs = true
exclude = "src/(app|ingest)"
我刚刚遇到了同样的问题 - 事实证明你需要单引号来表示
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'
在
pyproject.toml
中,您可以简单地记下目录列表,例如
[tool.mypy]
exclude = [
"src/app/generated",
"src/ingest",
"venv",
]
更多详细信息(包括注意事项)在 mypy 文档的配置文件章节中进行了解释。