CommunityProgramación y desarrollogithub.com

migrate-to-uv

Migra la estructura de un proyecto Python para usar uv, ruff y prek.

¿Qué es migrate-to-uv?

Esta habilidad automatiza la migración de un paquete Python desde el estilo PEP-517 con `setup.cfg` hacia un formato moderno basado en `pyproject.toml` utilizando `uv` como gestor de proyectos y dependencias. Es útil para desarrolladores que desean modernizar sus proyectos Python, adoptar herramientas más rápidas y unificadas como `ruff` para linting y formateo, y `prek` para hooks pre-commit en lugar del clásico `pre-commit`. La habilidad cubre la reubicación de configuraciones, la sustitución de herramientas legacy, la actualización de pipelines CI/CD y la configuración de `ruff` para forzar importaciones en una sola línea. Funciona en cualquier entorno donde se ejecuten agentes como Claude Code, Cursor o Codex, siguiendo pasos claros basados en el SKILL.md asociado.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace migrate-to-uv?

Este skill documenta cómo migrar un paquete Python desde el estilo PEP-517 que usa setup.cfg a usar pyproject.toml con uv.

Cuándo usarlo

Debe usarse cada vez que el usuario solicite migrar la estructura de un repositorio de paquete Python a un formato compatible con uv.

Instrucciones

  1. Mover el contenido de setup.cfg a pyproject.toml y eliminar setup.cfg.
  2. Agregar un archivo .python-version que especifique la versión 3.11.
  3. Importar las dependencias desde requirements-dev.txt a pyproject.toml usando la CLI de uv (ej. uv add -r requirements-dev.txt).
  4. Cambiar el sistema de construcción para usar uv_build y eliminar build de las dependencias de desarrollo.
  5. Configurar el proveedor de versiones para Commitizen como uv.
  6. Eliminar pylint, flake8, isort, black de las dependencias de desarrollo y reemplazarlos con ruff. Eliminar todos los archivos de configuración asociados, como pylintrc, .flake8, así como cualquier configuración en setup.cfg y/o pyproject.toml.
  7. Configurar ruff para forzar importaciones en una sola línea usando la guía a continuación.
  8. Mover la configuración de pytest.ini a pyproject.toml.
  9. Reemplazar los hooks de pre-commit para black, pylint, isort, flake8 con ruff.
  10. Eliminar pre-commit de las dependencias y reemplazarlo con prek.
  11. Ejecutar ruff format y ruff check --fix sobre el código.
  12. Actualizar los pipelines de CI/CD para que usen uv.

Configurar ruff para forzar importaciones en una sola línea

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

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

Skills relacionados