Compartir comentarios
Las respuestas se generan en base a la documentación.

Análisis de código, formateo y comprobación de tipos para Python

Requisitos previos

Completa Desarrollar tu aplicación.

Descripción general

En esta sección, aprenderás a configurar herramientas de calidad de código para tu aplicación Python. Esto incluye:

  • Análisis de código (linting) y formateo con Ruff
  • Comprobación estática de tipos con Pyright
  • Automatización de comprobaciones con hooks de pre-commit

Análisis de código y formateo con Ruff

Ruff es un analizador de código (linter) y formateador de Python extremadamente rápido escrito en Rust. Reemplaza múltiples herramientas como flake8, isort y black con una sola herramienta unificada.

Antes de usar Ruff, instálalo en tu entorno de Python:

pip install ruff

Si estás utilizando un entorno virtual, asegúrate de que esté activado para que el comando ruff esté disponible cuando ejecutes los siguientes comandos.

Crea un archivo pyproject.toml:

[tool.ruff]
target-version = "py312"

[tool.ruff.lint]
select = [
    "E",  # Errores de pycodestyle
    "W",  # Advertencias de pycodestyle
    "F",  # pyflakes
    "I",  # isort
    "B",  # flake8-bugbear
    "C4",  # flake8-comprehensions
    "UP",  # pyupgrade
    "ARG001", # Argumentos no utilizados en funciones
]
ignore = [
    "E501",  # Línea demasiado larga, manejada por black
    "B008",  # No realizar llamadas a funciones en valores predeterminados de argumentos
    "W191",  # La sangría contiene tabulaciones
    "B904",  # Permitir lanzar excepciones sin 'from e', para HTTPException
]

Uso de Ruff

Ejecuta estos comandos para comprobar y formatear tu código:

# Comprobar si hay errores
ruff check .

# Corregir automáticamente los errores solucionables
ruff check --fix .

# Formatear el código
ruff format .

Comprobación de tipos con Pyright

Pyright es un comprobador estático de tipos rápido para Python que funciona muy bien con las características modernas de Python.

Agrega la configuración de Pyright en pyproject.toml:

[tool.pyright]
typeCheckingMode = "strict"
pythonVersion = "3.12"
exclude = [".venv"]

Ejecutar Pyright

Para comprobar tu código en busca de errores de tipo:

pyright

Configurar hooks de pre-commit

Los hooks de pre-commit ejecutan comprobaciones automáticamente antes de cada confirmación (commit). El siguiente fragmento de .pre-commit-config.yaml configura Ruff:

  https: https://github.com/charliermarsh/ruff-pre-commit
  rev: v0.2.2
  hooks:
    - id: ruff
      args: [--fix]
    - id: ruff-format

Para instalar y usar:

pre-commit install
git commit -m "Confirmación de prueba"  # Ejecuta automáticamente las comprobaciones

Resumen

En esta sección, aprendiste a:

  • Configurar y usar Ruff para análisis de código y formateo
  • Configurar Pyright para la comprobación estática de tipos
  • Automatizar las comprobaciones con hooks de pre-commit

Estas herramientas ayudan a mantener la calidad del código y a detectar errores de forma temprana en el desarrollo.

Pasos siguientes

  • Configurar GitHub Actions para ejecutar estas comprobaciones automáticamente
  • Personalizar las reglas de análisis de código para que coincidan con las preferencias de estilo de tu equipo
  • Explorar características avanzadas de comprobación de tipos