Repolode
asottile

asottile/pyupgrade

Uma ferramenta de linha de comando e hook do pre-commit que reescreve automaticamente código Python para usar a sintaxe mais recente compatível com uma versão-alvo.

Estrelas
4,126
Forks
229
Issues abertas
21
Último commit
há 3 dias

O que é?

pyupgrade reescreve arquivos de código Python no próprio lugar para que usem sintaxe e convenções de versões mais recentes do Python. Ele lida com mudanças como converter formatação de strings antiga em f-strings ou str.format, substituir chamadas de compatibilidade do six por equivalentes nativos e simplificar comprehensions de conjuntos e dicionários. As reescritas específicas de cada versão são ativadas com flags como --py36-plus ou --py310-plus, para que o resultado corresponda à versão mínima do Python definida pelo projeto.

A ferramenta pode ser instalada com pip e executada pela linha de comando em um ou mais arquivos. Também é possível integrá-la ao pre-commit por meio de um hook fornecido pelo projeto, para que as reescritas sejam executadas automaticamente nos arquivos staged antes de cada commit. Algumas reescritas, como as que afetam anotações de tipo, só se aplicam quando o arquivo importa from __future__ import annotations; há também uma flag para manter a tipagem em tempo de execução inalterada quando necessário.

Recursos principais

  • 01Converte formatação antiga de strings em f-strings, str.format e literais simplificados.
  • 02Remove código de compatibilidade com six e com Python 2/3, incluindo imports e verificações de versão.
  • 03Permite definir versões específicas do Python com flags como --py36-plus até --py315-plus.
  • 04Moderniza anotações de tipo, como as formas PEP 585 e PEP 604, quando ativada.
  • 05Funciona como hook do pre-commit nos arquivos staged.

Casos de uso

  • Elevar a versão mínima do Python de uma base de código antiga sem editar cada arquivo manualmente.
  • Remover código de compatibilidade com Python 2 e six após uma migração.
  • Aplicar sintaxe moderna automaticamente com pre-commit em um repositório de equipe.

Início rápido

  1. 1

    Instale pyupgrade com pip

    pip install pyupgrade
  2. 2

    Ou adicione-o como um hook de pre-commit em .pre-commit-config.yaml usando a configuração de exemplo do README

Antes de usar

  • Muitas reescritas só são aplicadas quando você passa uma opção de versão-alvo, como --py36-plus ou --py39-plus.

Em coleções

Tópicos

#python#linter#pre-commit#code-modernization#syntax-upgrade#refactoring

Perguntas frequentes

O que é pyupgrade?
Uma ferramenta de linha de comando e hook do pre-commit que reescreve automaticamente código Python para usar a sintaxe mais recente compatível com uma versão-alvo. pyupgrade reescreve arquivos de código Python no próprio lugar para que usem sintaxe e convenções de versões mais recentes do Python. Ele lida com mudanças como converter formatação de strings antiga em f-strings ou str.format, substituir chamadas de compatibilidade do six por equivalentes nativos e simplificar comprehensions de conjuntos e dicionários. As reescritas específicas de cada versão são ativadas com flags como --py36-plus ou --py310-plus, para que o resultado corresponda à versão mínima do Python definida pelo projeto.
pyupgrade é gratuito? Qual é a licença?
pyupgrade é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
pyupgrade ainda é mantido?
Manutenção ativa. O último commit de pyupgrade foi em 4 de nov. de 2026.
Para que posso usar pyupgrade?
Elevar a versão mínima do Python de uma base de código antiga sem editar cada arquivo manualmente. Remover código de compatibilidade com Python 2 e six após uma migração. Aplicar sintaxe moderna automaticamente com pre-commit em um repositório de equipe.
Como instalar pyupgrade?
Instale pyupgrade com pip: pip install pyupgrade Ou adicione-o como um hook de pre-commit em .pre-commit-config.yaml usando a configuração de exemplo do README
Onde consigo pyupgrade?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/asottile/pyupgrade

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados