Guia rápida de herramientas modernas en Python
Puedes considerarlo este artículo como unos apuntes rápidos de uv
y ruff
, dos herramientas modernas para gestionar proyectos y paquetes de Python. Ambas son mucho más potentes de lo que muestro aquí, pero creo que con esto es suficiente para empezar a utilizarlas.
uv
En la herramienta universal para gestionar proyectos y paquetes de Python.
- Sustituye a
pip
- Crear entornos virtuales.
- Ejecutar scripts, con o sin dependencias.
- Crear proyectos.
- Sube proyectos a PyPI.
Y mucho más.
Instalación
https://docs.astral.sh/uv/#installation
Uso
Ejecutar un script
uv run script.py
Si necesitas una dependencia, como puede ser httpie
, puedes incluirla.
uv run script.py --with pandas
Crear un proyecto
uv init miproyecto
Después debe entrar al directorio del proyecto:
cd miproyecto
Y a partir de aquí puede instalar dependencias, crear entornos virtuales, etc.
uv add httpie
Además de ejecutarlos.
uv run http GET wttr.in/Valencia?format=3
Crear un entorno virtual
uv venv mientornovirtual
Y para activarlo:
uv activate mientornovirtual
Ruff
Te indica errores de sintaxis, errores de estilo y problemas de calidad en tu código Python. Además de formatear el código automáticamente.
Instalación
uv tool install ruff@latest
Comandos
uvx ruff check # Comprobar errores de sintaxis, estilo y calidad
uvx ruff check /ruta/del/proyecto # Igual que el anterior pero indicando el directorio del proyecto
uvx ruff check --fix # Comprobar errores y corregirlos automáticamente
uvx ruff check --fix --unsafe-fixes # Comprobar errores y corregirlos automáticamente, incluyendo correcciones inseguras
uvx ruff format # Formatear el código automáticamente
uvx ruff format /ruta/del/proyecto # Igual que el anterior pero indicando el directorio del proyecto
Configuración
Si quieres configurar ruff
para que se adapte a tus necesidades, puedes crear un archivo ruff.toml
en la raíz de tu proyecto.
El siguiente es un ejemplo habilita todas las comprobaciones y configuraciones recomendadas, además de establecer la versión de Python y el estilo de documentación.
target-version = "py310"
[lint]
select = [
# pycodestyle
"E",
# Pyflakes
"F",
# pyupgrade
"UP",
# flake8-bugbear
"B",
# flake8-simplify
"SIM",
# isort
"I",
]
[lint.pydocstyle]
convention = "google"
- uv
- Instalación
- Uso
- Ejecutar un script
- Crear un proyecto
- Crear un entorno virtual
- Ruff
- Instalación
- Comandos
- Configuración
This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.
Will you buy me a coffee?
You can use the terminal.
ssh customer@andros.dev -p 5555