Community程式設計與開發github.com

ismailuddin/agentic-skills

將 Python 套件專案結構遷移至使用 uv、ruff 和 prek。

agentic-skills 是什麼?

這個技能文件詳細說明如何將 Python 套件從使用 `setup.cfg` 的 PEP-517 樣式遷移到使用 `pyproject.toml` 與 `uv` 的現代化結構。它提供了逐步的指令,包括將 `setup.cfg` 的內容移到 `pyproject.toml`、指定 Python 版本、使用 `uv` CLI 導入依賴、將建置系統切換為 `uv_build`,以及用 `ruff` 取代 `pylint`、`flake8`、`isort`、`black` 等工具。此外,它還涵蓋了用 `prek` 取代 `pre-commit`、更新 CI/CD 管道以及配置 ruff 強制單行導入等步驟。這個技能適用於希望將專案標準化、簡化工具鏈並提升開發效率的開發者,支援所有與 uv 相容的 Python 專案。

相容平台~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/ismailuddin/agentic-skills/tree/HEAD/migrate-to-uv

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

遷移至 uv

本技能說明如何將 Python 套件從使用 setup.cfg 的 PEP-517 樣式遷移到使用 pyproject.toml 與 uv。

使用時機

當使用者要求將 Python 套件倉庫結構遷移至與 uv 相容的格式時,應使用此技能。

指示

  1. 將 setup.cfg 的內容移到 pyproject.toml,並刪除 setup.cfg
  2. 新增一個 .python-version 檔案,指定版本為 3.11
  3. 使用 uv CLI(即 uv add -r requirements-dev.txt)將 requirements-dev.txt 中的依賴導入到 pyproject.toml
  4. 將建置系統切換為使用 uv_build,並從開發依賴中移除 build。
  5. 將 Commitizen 的版本提供者配置為 uv
  6. 從開發依賴中移除 pylint、flake8、isort、black,並以 ruff 取代。移除所有相關的配置檔案,例如 pylintrc、.flake8,以及 setup.cfg 和/或 pyproject.toml 中的任何配置。
  7. 根據以下指引配置 ruff 以強制單行導入。
  8. 將 pytest.ini 中的配置移到 pyproject.toml
  9. 將 black、pylint、isort、flake8 的 pre-commit 掛鉤替換為 ruff
  10. 從依賴中移除 pre-commit,並以 prek 取代
  11. 對程式碼庫執行 ruff format 和 ruff check --fix。
  12. 更新任何 CI/CD 管道以使用 uv。

配置 ruff 以強制單行導入

[tool.ruff.lint.isort]
force-single-line = true

[tool.ruff.lint]
select = ["F", "I"]

相關技能