如何禁止mypy的`# type: ignore`注释?无需修改源码可行吗?
如何让Mypy忽略所有
# type: ignore注释(无需修改源码) 你可以通过Mypy的命令行参数或配置文件实现完全禁用所有# type: ignore注释的效果,无需修改源代码,类似flake8的--disable-noqa功能,具体方法如下:
一、全局禁用(整个项目)
直接在运行Mypy时添加--disable-error-code ignore参数:
mypy --disable-error-code ignore your_project/
这个参数会让Mypy完全忽略所有# type: ignore注释(无论是否附带错误码),所有原本被该注释屏蔽的类型错误都会被检测出来。
二、针对特定模块禁用
如果只需要在部分模块中禁用# type: ignore注释,可以通过项目的Mypy配置文件(如mypy.ini、pyproject.toml)进行局部配置:
1. 使用mypy.ini
[mypy-your_target_module.*] disable_error_code = ignore
将your_target_module替换为实际的模块名,即可仅对该模块下的代码禁用所有# type: ignore注释。
2. 使用pyproject.toml
[tool.mypy] [[tool.mypy.overrides]] module = "your_target_module.*" disable_error_code = ["ignore"]
三、与已启用的ignore-without-code规则兼容
你已经启用了ignore-without-code规则(要求所有# type: ignore必须附带错误码),叠加--disable-error-code ignore参数后,会直接覆盖该规则的效果——所有# type: ignore注释(无论是否带码)都会失效,Mypy会检查所有原本被屏蔽的错误。
内容的提问来源于stack exchange,提问作者Gabriel G.
相关产品推荐
相关产品推荐

