Só os espaços são reescritos: a indentação é reorganizada e linhas longas podem ser quebradas, enquanto strings, comentários e operadores são copiados byte a byte. É um formatador de layout, não um linter: não verifica nem corrige a sintaxe.
Funciona localmente no seu navegadorCole um trecho de Python e a ferramenta devolve o mesmo programa com a indentação reorganizada, uma política de linhas em branco e quebra de linha opcional. Só os espaços entre tokens são reescritos: strings, comentários e chaves de f-strings são copiados byte a byte, então o resultado é analisado com a mesma árvore sintática da entrada.
O formatador roda inteiro nesta aba do navegador e nada é enviado. É um formatador de layout, não um linter: não verifica, não compila e não corrige Python, e nunca informa um erro, então um trecho quebrado volta diagramado em vez de consertado.
Só os espaços entre tokens são reescritos: a indentação inicial é reorganizada na unidade escolhida, espaços no fim da linha e linhas em branco sobrando são removidos, e linhas longas podem ser quebradas. Todo o resto é copiado byte a byte: strings com aspas simples e duplas, strings raw, bytes e f-strings (inclusive chaves com aspas aninhadas), strings de três aspas e docstrings com a indentação interna, comentários e operadores como **, //, :=, -> e os * e ** usados em chamadas e desempacotamento.
Uma verificação rápida de qualquer resultado: a saída tem os mesmos tokens, na mesma ordem, que a entrada, apenas com outro espaçamento. Se o código também passa por Black, Ruff ou autopep8 no seu editor, esta página não substitui essa etapa: ela serve para ler um trecho, não para uma etapa de build.
Cada nível mais profundo de indentação na entrada vira uma unidade da largura escolhida, então tabulações, 2, 3, 4 e 8 espaços produzem uma estrutura de blocos consistente, e um arquivo que mistura estilos é normalizado para a unidade que você escolher. Linhas que continuam uma instrução inacabada — dentro de colchetes ou depois de uma barra invertida — mantêm o deslocamento em relação à instrução a que pertencem.
A opção de linhas em branco limita sequências de linhas vazias: removê-las, manter no máximo uma ou duas (o padrão mantém duas, o espaçamento comum em volta de definições de nível superior) ou manter todas. A quebra é gulosa e só corta em espaços fora de strings e comentários, então um token nunca é dividido; quando uma string ou um nome longo não pode ser quebrado, a linha continua longa em vez de ser cortada.
Não é um linter, um corretor de estilo nem um interpretador. Nada é executado, nenhum nome é renomeado, as importações não são ordenadas, as aspas não são convertidas e dois-pontos ausente ou colchete aberto não são avisados. As linhas que o autor dividiu continuam como estão, a não ser pela indentação.
Como o programa nunca é analisado, a página não consegue dizer que a entrada é inválida: mistura de tabulações e espaços, por exemplo, é normalizada em vez de denunciada. Rode o resultado em python -m py_compile ou no verificador do seu editor quando precisar saber se é válido.