CommunityCodierung & Entwicklunggithub.com

migrate-to-uv

Migriert eine Python-Package-Projektstruktur zur Nutzung von uv, ruff und prek.

Was ist migrate-to-uv?

Diese Skill-Anleitung beschreibt, wie ein Python-Paket von der PEP-517-Struktur (mit setup.cfg) auf pyproject.toml mit uv umgestellt wird. Das Ziel ist eine moderne, schnelle und konsistente Entwicklungsumgebung, die uv als Paketmanager und Build-Tool, ruff als Linter und Formatter sowie prek als Pre-Commit-Tool einsetzt. Die Migration umfasst das Übertragen aller Konfigurationen in pyproject.toml, das Ersetzen klassischer Tools wie pylint, flake8, isort, black durch ruff und das Anpassen der CI/CD-Pipelines. Diese Anleitung kann von KI-Agenten wie Claude Code, Cursor oder Codex ausgeführt werden und eignet sich für Benutzer, die ihre Python-Projekte auf den aktuellen Stand bringen möchten.

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht migrate-to-uv?

Diese Skill-Anleitung beschreibt, wie ein Python-Paket vom PEP-517-Stil mit setup.cfg auf pyproject.toml mit uv umgestellt wird.

Wann verwenden

Diese Anleitung sollte verwendet werden, wenn der Benutzer die Migration einer Python-Paket-Repository-Struktur in ein mit uv kompatibles Format anfordert.

Anleitung

  1. Verschieben Sie den Inhalt von setup.cfg in pyproject.toml und löschen Sie setup.cfg
  2. Fügen Sie eine .python-version hinzu, die die Version als 3.11 angibt
  3. Importieren Sie die Abhängigkeiten aus requirements-dev.txt in pyproject.toml mit dem uv-CLI (d. h. uv add -r requirements-dev.txt)
  4. Wechseln Sie das Build-System zu uv_build und entfernen Sie build aus den Entwicklungsabhängigkeiten.
  5. Konfigurieren Sie den Versionsanbieter für Commitizen auf uv
  6. Entfernen Sie pylint, flake8, isort, black aus den Entwicklungsabhängigkeiten und ersetzen Sie sie durch ruff. Entfernen Sie alle zugehörigen Konfigurationsdateien, d. h. pylintrc, .flake8 sowie jegliche Konfiguration in setup.cfg und/oder pyproject.toml
  7. Konfigurieren Sie ruff, um Einzelzeilenimporte zu erzwingen, gemäß der nachstehenden Anleitung.
  8. Verschieben Sie die Konfiguration aus pytest.ini nach pyproject.toml
  9. Ersetzen Sie die Pre-Commit-Hooks für black, pylint, isort, flake8 durch ruff
  10. Entfernen Sie pre-commit aus den Abhängigkeiten und ersetzen Sie es durch prek
  11. Führen Sie ruff format und ruff check --fix auf dem Codebestand aus.
  12. Aktualisieren Sie alle CI/CD-Pipelines, um uv zu verwenden.

Konfigurieren von ruff zur Erzwingung von Einzelzeilenimporten

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

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

Verwandte Skills