DevToolPal
ES

Formateador de Python

Formatea código Python al estilo Black con el formateador de Ruff, compilado a WebAssembly.

Se ejecuta en local, nunca se sube

Opciones

Sangría
Comillas

Entrada

0 caracteres · 0 B

Salida

0 caracteres · 0 B

Qué hace esta herramienta

El formateador de Python reescribe código Python en el popular estilo Black: sangría coherente, espacios alrededor de los operadores, comillas dobles, dos líneas en blanco entre definiciones de nivel superior y líneas largas partidas en puntos razonables.

Por dentro ejecuta el formateador de Ruff, el linter y formateador de Python rápido escrito en Rust, compilado a WebAssembly. La salida de Ruff coincide con Black casi línea por línea, así que el código formateado aquí no volverá a reformatearse con el hook de pre-commit de tu proyecto.

Cómo se usa

  1. Pega código Python o abre un archivo .py.
  2. El código formateado aparece a la derecha mientras escribes.
  3. Ajusta las opciones si tu proyecto usa otro estilo:
    • Sangría: 4 espacios es PEP 8 y el valor predeterminado; también hay 2 espacios y tabulaciones.
    • Ancho de línea: 88 es el valor predeterminado de Black, 79 es el límite de PEP 8, y 100 o 120 van bien en pantallas más anchas.
    • Comillas: dobles, simples o mantener las comillas que ya usa cada cadena.
    • Respetar comas finales: mantiene expandidas las colecciones que terminan con una coma.
  4. Copia o descarga el resultado.

Cuando el código no se puede analizar, el mensaje de error muestra dónde se detuvo el parser, por ejemplo Expected `,`, found `=` en la línea 4, y puedes saltar a esa línea.

Ejemplo

El ejemplo es un módulo pequeño escrito sin cuidado: imports en una línea sin espacios, una dataclass con un espacio antes de los dos puntos, un método con sangría de dos espacios y una sentencia if en una línea. Tras formatearlo, todos los bloques usan sangría de cuatro espacios, el cuerpo del if pasa a su propia línea, los operadores llevan espacios, las comillas simples pasan a dobles y se añaden líneas en blanco entre la clase y las funciones. La lista que terminaba con coma final se expande con un diccionario por línea.

Lo que no hace el formateador

El formateo solo cambia la disposición. No ordena los imports, no elimina variables sin usar ni renombra nada; eso es tarea del linter (ruff check --fix se encarga). Los comentarios y docstrings se conservan, y el formateador se niega a cambiar código que no puede analizar en lugar de adivinar.

Consejos

  • Usa el mismo ancho de línea que el pyproject.toml de tu proyecto para que el resultado coincida con tu CI.
  • Formatear un fragmento antes de publicarlo en una pregunta o una revisión lo hace mucho más fácil de leer.
  • Si el código viene de un notebook o de un chat y mezcla tabulaciones y espacios, el formateador lo normaliza de una vez.

Preguntas frecuentes

› ¿La salida es la misma que la de Black?

El formateador de Ruff está diseñado como sustituto directo de Black y coincide con su salida en más del 99,9 % de las líneas en proyectos reales grandes. Los ajustes predeterminados aquí (sangría de 4 espacios, 88 columnas, comillas dobles) son los de Black.

› ¿Qué es la «magic trailing comma»?

Si una lista, llamada o definición termina con una coma final, Black y Ruff la mantienen expandida con un elemento por línea aunque quepa en una sola. Desactiva el interruptor para contraer esas colecciones siempre que quepan.

› ¿Qué versiones de Python se admiten?

El parser entiende la sintaxis moderna de Python 3, incluidas las sentencias match, las listas de parámetros de tipo y los f-strings con comillas anidadas. El código de Python 2 como `print "x"` es un error de sintaxis.

› ¿Se sube mi código?

No. El módulo WebAssembly de Ruff se descarga una vez y el formateo se ejecuta en tu navegador.