Solo se reescriben los espacios: la sangría se reorganiza y las líneas largas se pueden ajustar, mientras que las cadenas, los comentarios y los operadores se copian byte a byte. Es un formateador de presentación, no un linter: no comprueba ni repara la sintaxis.
Se ejecuta localmente en tu navegadorPega un fragmento de Python y la herramienta devuelve el mismo programa con la sangría reorganizada, una política de líneas en blanco y ajuste de línea opcional. Solo se reescriben los espacios entre tokens: las cadenas, los comentarios y las llaves de los f-strings se copian byte a byte, así que el resultado se analiza con el mismo árbol sintáctico que la entrada.
El formateador se ejecuta por completo en esta pestaña del navegador y no sube nada. Es un formateador de presentación, no un linter: no comprueba, no compila ni repara Python, y nunca informa de un error, de modo que un fragmento roto vuelve maquetado en lugar de corregido.
Solo se reescriben los espacios entre tokens: la sangría inicial se reorganiza según la unidad elegida, se eliminan los espacios finales y las líneas en blanco sobrantes, y las líneas largas se pueden ajustar. Todo lo demás se copia byte a byte: cadenas con comillas simples y dobles, cadenas raw, bytes y f-strings (incluidas las llaves con comillas anidadas), cadenas de tres comillas y docstrings con su sangría interna, comentarios y operadores como **, //, :=, -> y los * y ** de llamadas y desempaquetado.
Una comprobación rápida de cualquier resultado: la salida contiene los mismos tokens, en el mismo orden, que la entrada, solo que con otro espaciado. Si el código también pasa por Black, Ruff o autopep8 en tu editor, esta página no sustituye ese paso: sirve para leer un fragmento, no para una cadena de compilación.
Cada nivel de sangría más profundo de la entrada se convierte en una unidad del ancho seleccionado, de modo que tabuladores, 2, 3, 4 y 8 espacios producen una estructura de bloques coherente, y un archivo que mezcla estilos se normaliza a la unidad que elijas. Las líneas que continúan una instrucción sin terminar —dentro de corchetes o tras una barra invertida— conservan su desplazamiento respecto a la instrucción a la que pertenecen.
El ajuste de líneas en blanco limita las rachas de líneas vacías: eliminarlas, conservar como máximo una o dos (el valor predeterminado conserva dos, el espaciado habitual alrededor de definiciones de nivel superior) o conservarlas todas. El ajuste de longitud es voraz y solo corta en espacios fuera de cadenas y comentarios, así que nunca parte un token; cuando una cadena o un nombre largos no se pueden dividir, la línea queda larga en lugar de cortarse.
No es un linter, ni un corrector de estilo, ni un intérprete. No se ejecuta nada, no se renombra nada, no se ordenan las importaciones, no se convierten las comillas y no se avisa de dos puntos que faltan o de un corchete sin cerrar. Las líneas que el autor dividió se mantienen tal cual, salvo por su sangría.
Como el programa nunca se analiza, la página no puede decirte si la entrada no es válida: por ejemplo, una mezcla de tabuladores y espacios se normaliza en lugar de denunciarse. Pasa el resultado por python -m py_compile o por el verificador de tu editor cuando necesites saber que es válido.