Um framework para gerenciar e executar hooks de pre-commit em várias linguagens, que verificam o código antes de cada commit no Git.
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
Instale pyupgrade com pip
pip install pyupgrade - 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
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
Black é um formatador determinístico e opinativo de código Python que reescreve arquivos no lugar e gera diffs mínimos.
Utilitário e biblioteca Python que organiza e agrupa automaticamente as instruções de importação.
Ferramenta de linha de comando e plugin do flake8 que aplica configurações compartilhadas entre vários projetos e corrige arquivos de configuração automaticamente.
Ferramenta Python e hook do pre-commit que adiciona automaticamente vírgulas finais a chamadas, literais e definições multilinha.
Uma ferramenta de CLI que busca, verifica e reescreve código usando padrões de árvores sintáticas abstratas em vez de texto simples.