DevToolPal
PT

Formatador de Python

Formate código Python no estilo Black com o formatador do Ruff, compilado para WebAssembly.

Roda localmente, nada é enviado

Opções

Indentação
Aspas

Entrada

0 caracteres · 0 B

Saída

0 caracteres · 0 B

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

  1. Cole código Python ou abra um arquivo .py.
  2. O código formatado aparece à direita enquanto você digita.
  3. 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.
  4. 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.toml do 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.