Primeiras mudanças

Python 3.14 Alpha 1 é lançado com avaliação diferida de anotações e mais

O Python 3.14 Alpha 1 introduz a avaliação diferida de anotações, melhorias nas mensagens de erro e otimizações no asyncio. Este é o primeiro de sete lançamentos alfa até a versão final, prevista para outubro de 2025.

Logotipo colorido da linguagem de programação Python com duas serpentes entrelaçadas em um fundo preto

Python 3.14 Alpha 1 foi lançado como a primeira versão alfa planejada para a próxima grande atualização da linguagem Python, prevista para 2025. Essa versão traz diversas novidades, incluindo melhorias no desempenho e na usabilidade, ao mesmo tempo em que permite que desenvolvedores comecem a testar novas funcionalidades e relatórios de erros.

Primeiras mudanças e cronograma de desenvolvimento

Representação digital do logotipo do Python flutuando acima de um laptop futurista em um estilo de rede conectada em tons de azul

O Python 3.14 Alpha 1 é o primeiro de sete lançamentos alfa planejados para esta série. A fase alfa tem como objetivo facilitar os testes de novos recursos e correções de bugs. Durante essa fase, novos recursos podem ser adicionados até o congelamento de recursos, que está previsto para o início da fase beta em maio de 2025. A previsão de lançamento final do Python 3.14.0 é para outubro de 2025.

Principais novos recursos e melhorias

Entre as mudanças já presentes nesta versão alfa, destacam-se:

  • Avaliação diferida de anotações (PEP 649 e PEP 749): Um dos principais destaques da versão é a implementação da avaliação diferida das anotações em funções, classes e módulos. As anotações não são mais avaliadas imediatamente, sendo armazenadas em funções especializadas e avaliadas apenas quando necessário, o que otimiza o desempenho.
  • O novo módulo annotationlib foi introduzido para ajudar na introspecção de anotações, permitindo que as mesmas sejam avaliadas em três formatos: VALUE, FORWARDREF e STRING. Isso torna o uso de anotações mais flexível e eficiente.
  • Se você já utiliza anotações para verificações estáticas de tipo, esta mudança não deve afetá-lo diretamente. Além disso, o uso de strings em anotações, que antes era necessário para referências futuras, pode ser dispensado com essa nova implementação.
  • Melhorias nas mensagens de erro: As mensagens de erro foram aprimoradas para fornecer mais informações detalhadas. Por exemplo, agora, ao tentar desempacotar variáveis, o erro exibe o número de valores recebidos, facilitando a correção.
  • Otimizações de desempenho no asyncio: O código asyncio foi aprimorado para usar listas duplamente encadeadas, resultando em um aumento de 10% no desempenho dos benchmarks PyPerformance, além de um uso de memória reduzido.

Alterações em módulos e bibliotecas

O Python 3.14 também introduziu mudanças e melhorias em diversos módulos e bibliotecas:

  • Módulo argparse: Agora reflete melhor a maneira como o Python foi instruído a encontrar o código do módulo principal.
  • Módulo ast: Adição da função ast.compare() para comparação de dois ASTs e suporte para copy.replace() em nós AST.
  • Módulo decimal: Adicionada a função Decimal.from_number() como um construtor alternativo para decimais.
  • Módulo pathlib: Novos métodos para copiar e mover recursivamente arquivos e diretórios foram incluídos, facilitando operações de gerenciamento de arquivos.

Além disso, novos métodos foram adicionados ao módulo inspect para controlar como as anotações são exibidas no código, e melhorias foram implementadas no módulo json, permitindo o uso como script via a opção -m.

Próximos passos no desenvolvimento

A próxima versão pré-lançamento do Python 3.14, o Python 3.14.0a2, está programada para ser lançada em 19 de novembro de 2024. Esta fase alfa continuará até maio de 2025, quando a fase beta será iniciada.

Para acompanhar o progresso e obter mais detalhes sobre as mudanças futuras, visite o blog Python Insider e as notas de versão em andamento no site oficial do Python.