O que esta ferramenta faz
O formatador de Python reescreve código Python no estilo Black, amplamente usado: indentação consistente, espaços ao redor dos operadores, aspas duplas, duas linhas em branco entre definições de nível superior e linhas longas quebradas em pontos sensatos.
Por baixo dos panos, ele roda o formatador do Ruff, o linter e formatador de Python rápido escrito em Rust, compilado para WebAssembly. A saída do Ruff bate com a do Black praticamente linha por linha, então o código formatado aqui não será reformatado de novo pelo hook de pre-commit do seu projeto.
Como usar
- Cole código Python ou abra um arquivo
.py. - O código formatado aparece à direita enquanto você digita.
- Ajuste as opções se o seu projeto usa outro estilo:
- Indentação: 4 espaços é o PEP 8 e o padrão; 2 espaços e tabs estão disponíveis.
- Largura da linha: 88 é o padrão do Black, 79 é o limite do PEP 8, e 100 ou 120 servem para telas mais largas.
- Aspas: duplas, simples ou manter as aspas que cada string já usa.
- Respeitar vírgulas finais: mantém expandidas as coleções que terminam com vírgula.
- Copie ou baixe o resultado.
Quando o código não pode ser analisado, a mensagem de erro mostra onde o parser parou, como Expected `,`, found `=` na linha 4, e você pode pular para essa linha.
Exemplo
O exemplo é um pequeno módulo escrito sem cuidado: imports em uma linha sem espaços, uma dataclass com espaço antes dos dois-pontos, um método indentado com dois espaços e um if de uma linha. Depois da formatação, todos os blocos usam indentação de quatro espaços, o corpo do if vai para uma linha própria, os operadores ganham espaços, aspas simples viram aspas duplas e linhas em branco são adicionadas entre a classe e as funções. A lista que terminava com vírgula é expandida com um dicionário por linha.
O que o formatador não faz
A formatação só muda o layout. Ela não ordena imports, não remove variáveis não usadas nem renomeia nada; isso é trabalho do linter (ruff check --fix cuida disso). Comentários e docstrings são mantidos, e o formatador se recusa a mudar código que não consegue analisar em vez de tentar adivinhar.
Dicas
- Use a mesma largura de linha do
pyproject.tomldo seu projeto para que o resultado bata com o seu CI. - Formatar um trecho antes de postá-lo em uma pergunta ou revisão o deixa muito mais fácil de ler.
- Se o código veio de um notebook ou de um chat e mistura tabs e espaços, o formatador normaliza tudo de uma vez.
Perguntas frequentes
› A saída é igual à do Black?
O formatador do Ruff foi projetado como substituto direto do Black e produz a mesma saída em mais de 99,9% das linhas em grandes projetos reais. As configurações padrão aqui (indentação de 4 espaços, 88 colunas, aspas duplas) são as do Black.
› O que é a "vírgula final mágica"?
Se uma lista, chamada ou definição termina com vírgula, o Black e o Ruff a mantêm expandida, com um item por linha, mesmo quando caberia em uma linha só. Desative a opção para recolher essas coleções sempre que couberem.
› Quais versões do Python são suportadas?
O parser entende a sintaxe moderna do Python 3, incluindo instruções match, listas de parâmetros de tipo e f-strings com aspas aninhadas. Código Python 2 como `print "x"` é um erro de sintaxe.
› Meu código é enviado?
Não. O módulo WebAssembly do Ruff é baixado uma vez e a formatação roda no seu navegador.