You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MyPy pyproject.toml配置exclude字段无法排除多个指定目录问题

这个问题是MyPy v0.910版本的正则匹配逻辑和配置写法共同导致的,核心原因有两个:

  1. 路径匹配逻辑的差异
    MyPy的exclude规则匹配的是相对于执行命令目录的完整文件路径,不是单纯的目录名称。你写的正则(src/app/generated)|(src/ingest)匹配src/ingest下的文件时,比如src/ingest/test.py,路径里明确包含src/ingest子串,可以正常命中规则;但该版本处理三级以上嵌套路径的子串匹配时,内部解析会有尾部斜杠的兼容问题,导致src/app/generated无法匹配到src/app/generated/test.py这类带后缀的完整文件路径。
  2. 正则写法的兼容缺陷
    你用的分组正则写法在0.910版本中对多段路径的支持存在已知小问题,嵌套层级越多,匹配出错概率越高,你测试时替换为src/app就能全局生效也印证了这一点。

解决方案

针对该版本有两种稳妥的修正方式:

  • 改用官方推荐的列表形式写exclude规则,避免正则分组的兼容性问题:
[tool.mypy]
python_version = 3.8
disallow_untyped_defs = true
exclude = [
  "src/app/generated",
  "src/ingest"
]
  • 如果坚持使用单正则写法,给目录路径加通配符匹配目录下所有文件即可:
exclude = "(src/app/generated/.*)|(src/ingest/.*)"

内容的提问来源于stack exchange,提问作者James B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:27:03