migrate-to-uv
本技能文档说明如何将一个基于 PEP-517 规范(使用 setup.cfg)的 Python 包迁移至使用 pyproject.toml 和 uv 的现代结构。
何时使用
当用户要求将 Python 包仓库结构迁移为符合 uv 规范的格式时,应使用此技能。
操作指南
- 将
setup.cfg的内容移至pyproject.toml并删除setup.cfg - 添加一个
.python-version文件,指定版本为 3.11 - 使用
uvCLI 将requirements-dev.txt中的依赖导入到pyproject.toml(即执行uv add -r requirements-dev.txt) - 将构建系统切换为使用
uv_build,并从开发依赖中移除build - 将 Commitizen 的版本提供者配置为
uv - 从开发依赖中移除
pylint、flake8、isort、black,并替换为ruff。删除所有相关配置文件,如pylintrc、.flake8,以及setup.cfg和/或pyproject.toml中的相关配置 - 使用以下指导配置
ruff,强制单行导入 - 将
pytest.ini的配置移至pyproject.toml - 将
black、pylint、isort、flake8的 pre-commit 钩子替换为ruff - 从依赖中移除
pre-commit,并替换为prek - 对代码库运行
ruff format和ruff check --fix - 更新所有 CI/CD 流水线以使用
uv
配置 ruff 强制单行导入
[tool.ruff.lint.isort]
force-single-line = true
[tool.ruff.lint]
select = ["F", "I"]