Ruff es un analizador de código y formateador para Python, diseñado para ser rápido y compatible con múltiples reglas de estilo y linters. Sus opciones se pueden configurar desde la línea de comandos o a través de archivos de configuración como pyproject.toml
, .ruff.toml
o ruff.yaml
.
Ruff puede reemplazar herramientas como flake8
, pylint
y mypy
en algunas funciones:
Detección de errores comunes (E
, W
)
Errores de sintaxis y estilo (F
)
Complejidad del código (C
)
Seguridad (S
)
Tipos de datos (ANN
para anotaciones)
Ejemplo:
ruff check .
Opciones útiles:
ruff check --fix # Corrige errores automáticamente
ruff check --select E,W,F # Solo chequea reglas específicas
ruff check --ignore ANN,S # Ignora ciertas reglas
ruff check --show-source # Muestra el código fuente de los errores
ruff check --preview # Activa reglas en desarrollo
Ruff también puede formatear el código como black
:
ruff format .
Opciones útiles:
ruff format --check # Verifica si el código ya está formateado
ruff format --diff # Muestra los cambios sin aplicarlos
Puedes personalizar Ruff en pyproject.toml
:
[tool.ruff]
line-length = 88
target-version = "py311"
[tool.ruff.lint]
select = ["E", "W", "F", "C"]
ignore = ["ANN", "S"]
Puedes usar Ruff con pre-commit
para evitar errores antes de hacer un commit:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.1.0
hooks:
- id: ruff
- id: ruff-format