30 puntos por darjeeling 2025-07-07 | 4 comentarios | Compartir por WhatsApp

Resumen del video "uv: Making Python Local Workflows FAST and BORING in 2025"

Este video es la segunda parte sobre cómo usar la herramienta de empaquetado de Python uv para hacer que el flujo de trabajo de desarrollo local sea rápido y eficiente. Los puntos principales son los siguientes.

1. Uso de los comandos clave de uv
  • uv run: ejecuta comandos como pytest o fastapi dentro de un entorno virtual usando las dependencias definidas en pyproject.toml y fijadas en el archivo uv.lock.
  • uv add: agrega una nueva dependencia a pyproject.toml y actualiza automáticamente el archivo uv.lock.
  • uv run --with: permite inyectar temporalmente módulos auxiliares de desarrollo como pdbpp sin agregarlos a las dependencias principales del proyecto.
  • uv lock --upgrade: actualiza el archivo de bloqueo de dependencias a gran velocidad. uv run detecta automáticamente los cambios en el archivo de bloqueo al ejecutarse y sincroniza el entorno.
2. Estandarización del flujo de trabajo con just
  • uv no incluye de forma nativa una función para definir comandos personalizados como sí lo hacen hatch o pdm.
  • En el video se señalan las desventajas de Makefile (dependencia de la plataforma, sintaxis no estándar, etc.) y se recomienda fuertemente como alternativa el ejecutor de comandos escrito en Rust, just.
  • Con un justfile se estandarizan como recetas tareas repetitivas como las siguientes.
    • test: ejecutar pruebas (con posibilidad de pasar argumentos)
    • cov: revisar la cobertura de pruebas
    • serve: iniciar el servidor de desarrollo
    • checkall: ejecutar de una sola vez todas las verificaciones, como lint y comprobación de tipos
3. Integración entre just y uv
  • Archivo .env: just puede leer un archivo .env para configurar variables de entorno. Con esto es posible, por ejemplo, añadir dinámicamente el argumento --with a uv run o cambiar el puerto del servidor, lo que permite construir flujos de trabajo flexibles.
  • uvx (uv tool run): es un comando que ejecuta paquetes de PyPI de forma independiente al proyecto, similar a pipx. Dentro de recetas de just, permite usar herramientas como httpie sin agregarlas a las dependencias del proyecto.
4. Gestión directa del entorno virtual (flujo de trabajo opcional)
  • Es un método pensado para desarrolladores que prefieren activar y usar el entorno virtual (.venv) de la forma tradicional, sin pasar por uv run.
  • uv sync: sincroniza el estado del archivo uv.lock y la carpeta .venv. (instala dependencias y elimina paquetes innecesarios)
  • direnv: es una herramienta de shell que ejecuta automáticamente el script .envrc al entrar en un directorio específico. Esto permite ejecutar uv sync automáticamente al entrar al directorio y activar el entorno virtual.
Conclusión

Al combinar la velocidad de uv con herramientas como just y direnv, es posible automatizar y estandarizar la gestión de dependencias y la ejecución de comandos para que los desarrolladores puedan concentrarse más en la lógica principal y construir un entorno de desarrollo "rápido y aburrido", es decir, muy estable y predecible.

4 comentarios

 
gracefullight 2025-07-10

Estoy usando https://github.com/gracefullight/py-starter, así que dejé preparada una plantilla.

 
aabb2467 2025-07-08

Con poethepoet, puedes definir tareas dentro de pyproject.toml, así que yo lo uso en lugar de just.

 
gracefullight 2025-07-10

Gracias.