SuperAPI AI 工具集

py-modernize

编程与开发

查看项目

更新于 10-15 23:48

技能介绍

用途:把 Python 项目升级到现代工具链、语法与模式,遵循 Engineering Charter 原则。主要目标包括:从 pip 迁移到 uv 以加快依赖管理;将语法升级到 Python 3.13+ 现代写法;替换已弃用 API 与模式;更新工具到当前最佳实践;确保 pyproject.toml 成为唯一配置来源。

所需工具:uv(快速包安装器,pip 替代品)、pyupgrade(自动升级语法)、ruff(带 UP 规则的现代 linter)。安装方式:sudo zypper install uv 或 pip install --user uv;在 [dependency-groups] dev 中加入 "pyupgrade"、"ruff"。权限方面需先运行 py-quality-setup 配置 .claude/settings.local.json。

使用方式:迁移工作流包括用 uv venv 替代 python -m venv venv,用 uv pip install -e ".[dev]" 替代 pip install,用 uv pip compile pyproject.toml -o requirements.txt 编译依赖,用 uv pip sync requirements.txt 同步环境;同步更新 CI/CD(如 astral-sh/setup-uv@v1)与 README。语法升级:在 pyproject.toml 设置 requires-python = ">=3.13"、[tool.pyupgrade] target-version = "py313"、[tool.ruff] target-version = "py313" 及 [tool.ruff.lint] select = ["UP"],然后运行 pyupgrade --py313-plus **/*.py 或 ruff check . --select UP --fix,并用 git diff 与 pytest 验证。常见现代化包括 List[str] → list[str]、Optional[int] → int | None、移除 future 导入、f-strings、Union[int, str] → int | str、海象运算符、match 语句、pathlib、dataclasses。配置现代化:合并 setup.py/setup.cfg/requirements.txt 到 pyproject.toml,之后 rm setup.py setup.cfg 并重新安装与测试。弃用模式更新:collections.Iterable → collections.abc.Iterable、datetime.utcnow() → datetime.now(UTC)、datetime.utcfromtimestamp() → datetime.fromtimestamp(ts, UTC)、imp → importlib、typing.List/Dict → list/dict、typing.Optional[X] → X | None、typing.Union[X, Y] → X | Y,可用 grep 搜索。

适用场景:需要现代化 Python 代码库、统一配置、提升依赖安装速度与语法一致性的项目。限制:资料未提供具体收费、价格、平台支持范围或效果保证;执行前建议先运行 py-quality-setup 与 py-test-quality 作为安全网,并确保测试通过。