寻找可自动修复PEP 585类型提示的工具:替换typing模块集合类型
符合PEP 585规范的类型提示自动转换工具
当然有这类工具,以下是两个实用选项:
pyupgrade
这是专门用于升级Python代码语法的工具,核心功能就包含将typing模块中的集合类型(如Dict/List/Set等)替换为PEP 585规定的内置类型(dict/list/set),同时会自动清理不再需要的typing导入语句。
使用方式:
- 安装:
pip install pyupgrade - 处理单个文件:
pyupgrade --py39-plus your_file.py(--py39-plus指定针对Python 3.9+版本,因为3.9才正式支持内置集合类型的泛型语法) - 批量处理项目:
pyupgrade --py39-plus **/*.py
它可以和Black配合使用——先运行pyupgrade完成语法升级,再用Black做代码格式化。
ruff
作为新一代Python代码检查与修复工具,ruff也支持这类转换,对应的规则是UP006(替换typing集合类型为内置类型)和UP007(移除未使用的typing导入)。
使用步骤:
- 安装:
pip install ruff - 自动修复代码:
ruff check --fix your_file.py - 项目级配置可在
pyproject.toml中添加:
[tool.ruff.lint] select = ["UP006", "UP007"]
另外你提到的Black确实不提供这类功能,因为Black的定位是代码格式化工具,仅负责统一代码排版风格,不会修改语法层面的类型提示导入与替换。
内容的提问来源于stack exchange,提问作者Raquel
相关产品推荐
相关产品推荐

