如何在项目中对所有.py文件运行mypy?
如何用文件掩码/通配符让mypy检查所有.py文件
嘿,这个需求其实很容易实现,mypy对通配符和目录扫描的支持很灵活,给你几种常用的方案:
直接用通配符匹配文件
如果想检查当前目录下所有.py文件,直接运行:mypy *.py要是需要递归检查所有子目录里的.py文件,用递归通配符
**就行。不过这里要注意shell的差异:- 如果你的shell支持globstar(比如bash开启后、zsh),可以直接跑:
mypy **/*.py - 如果shell不支持,或者怕shell提前展开通配符出问题,把通配符用引号括起来,让mypy自己处理递归匹配:
mypy "**/*.py"
- 如果你的shell支持globstar(比如bash开启后、zsh),可以直接跑:
直接指定目录(更简洁的方式)
其实不用写复杂的通配符,直接给mypy指定项目里的目录路径,它会自动递归扫描目录下所有的.py文件。比如你的项目有src和tests两个核心目录,只需要:mypy src tests这种方式更清晰,尤其是当你有多个固定目录需要检查时。
用配置文件固化检查范围(适合长期项目)
要是不想每次命令行都输入路径,可以在项目根目录创建mypy.ini或者pyproject.toml配置文件,指定要检查的文件/目录。比如在pyproject.toml里添加:[tool.mypy] files = ["src/**/*.py", "tests/**/*.py", "scripts/*.py"]之后直接运行
mypy命令,它就会自动按照配置里的路径去检查所有匹配的.py文件了。
另外补充个小技巧:如果有一些不需要检查的文件(比如虚拟环境目录、临时脚本),可以用--exclude参数排除,或者在配置文件里加exclude项,比如:
mypy "**/*.py" --exclude "venv/*" --exclude "temp/*.py"
内容的提问来源于stack exchange,提问作者Notbad
相关产品推荐
相关产品推荐

