Curso de Python Intermedio para  Entornos virtuales y PEP8

Cómo aplicar PEP 8 y automatizarlo con Ruff

Curso de Python Intermedio para Entornos virtuales y PEP8

Contenido del curso

Cómo aplicar PEP 8 y automatizarlo con Ruff

Resumen

Escribir código limpio en Python empieza por conocer el PEP 8, el documento oficial que reúne las reglas de estilo para escribir código legible. Si estás iniciando un proyecto y quieres que tu código sea claro tanto para ti como para tu equipo, aquí aprenderás las convenciones esenciales y cómo automatizarlas con Ruff.

El PEP 8 fue escrito por Guido van Rossum, el creador de Python, y forma parte de los documentos PEP, que son propuestas de mejora para el lenguaje. La idea central es sencilla: el código se lee muchas más veces de las que se escribe, así que vale la pena que sea consistente.

¿Qué reglas del PEP 8 debo aplicar al escribir código Python?

Desde el minuto uno del proyecto conviene fijar las reglas de estilo. La primera es la documentación del archivo, que siempre va en la parte de arriba usando triple comilla. En el ejemplo se coloca "Sistema de análisis de noticias con APIs múltiples" como descripción inicial [00:44].

De ahí en adelante, estas son las convenciones clave que se trabajan en el proyecto:

  • Las constantes van en mayúsculas y separan palabras con guion bajo, como DEFAULT_LANGUAGE, que aquí se usa para traer noticias en español por defecto [01:14].
  • Los strings usan un solo tipo de comillas de forma consistente; se recomiendan las comillas dobles [01:37].
  • Las funciones se escriben en snake case, en minúsculas y separando palabras con guion bajo [01:53].
  • La identación es de cuatro espacios, ni más ni menos [02:00].

Un truco práctico: en Visual Studio Code puedes activar editor.renderWhitespace en la opción all dentro del JSON de settings, y así ver los espacios sin tener que seleccionarlos [02:12].

¿Qué es el PEP 8? Es el documento oficial de Python que define cómo escribir código legible y consistente: nombres de variables, identación, uso de comillas y organización de imports. Fue escrito por Guido van Rossum.

¿Cómo organizo funciones e imports según la convención?

La organización lógica del archivo también forma parte del estilo. Entre funciones que no están relacionadas se dejan dos líneas en blanco para separarlas visualmente. En el ejemplo, clean_text, que limpia y formatea texto, se separa de la función que valida una API key [02:48].

Hay una jerarquía clara: primero las funciones de utilidad y después las funciones principales, que hacen el trabajo real del proyecto. Cuando una función todavía no está implementada, se coloca un pass para que el código siga siendo válido [03:20].

Un detalle sobre el idioma: en el curso la documentación se escribe en español, pero el código se escribe en inglés como buena convención [03:38].

Los imports tienen su propio orden recomendado:

  1. Módulos de la librería estándar, ya integrados en Python, como json.
  2. Paquetes de terceros que instalaste, como requests.
  3. Módulos locales que tú mismo creaste dentro del proyecto.

Si un import no se usa, la herramienta de formateo lo elimina automáticamente al guardar [05:24].

¿En qué orden van los imports en Python? Primero los de la librería estándar, luego los paquetes de terceros y al final los módulos locales. Cada grupo se separa y se ordena de forma explícita según el PEP 8.

¿Cómo formateo mi código automáticamente con Ruff?

Recordar todas las reglas del PEP 8 es casi imposible, y aquí viene lo interesante: no hace falta. La mayoría de desarrolladores usamos una herramienta que formatea el código por nosotros. La recomendada es Ruff, creada por el equipo Astral y construida sobre Rust, lo que la hace muy rápida [05:52].

Para usarla dentro del editor, el flujo es directo:

  • Ve a extensiones, busca Ruff e instálala.
  • Haz clic derecho y selecciona "formatear documento".
  • Observa cómo, por ejemplo, unas comillas simples se convierten en dobles al instante [06:29].

Para no depender del clic derecho, puedes activar Format On Save en el settings.json. Así, cada vez que guardas, el código se ajusta solo [06:48]. También puedes agregar configuraciones que organicen los imports automáticamente al guardar, siguiendo el mismo formato del PEP 8 [07:07].

Ruff también funciona desde la terminal con el comando ruff format, al que le puedes pasar un archivo o una carpeta completa. Si quieres explorar todas sus opciones, ejecuta:

bash ruff format --help

Este comando muestra la ayuda completa de lo que Ruff puede hacer como formatter [08:37].

¿Qué es Ruff en Python? Es una herramienta creada por Astral y construida en Rust que formatea automáticamente tu código para cumplir el PEP 8. También incluye un linter que detecta errores antes de ejecutar el código.

Además del formateo, Ruff trae un linter. Esta parte del linting te ayuda a identificar variables sin usar o código que podría fallar antes de ejecutarse, mostrándotelo directamente en el editor [09:02].

¿Cuáles son las mejores prácticas de estilo que debo recordar?

Si tuvieras que quedarte con un resumen accionable, estas son las prácticas que se implementan en el proyecto:

  • Longitud de línea de máximo 88 caracteres, que Ruff aplica por defecto.
  • Identación de cuatro espacios.
  • Nombres descriptivos en variables y funciones.
  • Imports ordenados en estándar, terceros y locales.
  • Líneas en blanco para separar bloques lógicos.
  • Comillas consistentes en todo el archivo [08:04].

Como reto, ve a la documentación oficial del PEP 8, busca la regla que más te guste y compártela en los comentarios para iniciar una discusión con otro compañero. ¿Cuál elegirías tú?