A JetBrains anunciou que a linha de lançamento do PyCharm 2026.2 inclui 263 correções e melhorias, muitas das quais se concentram na forma como o ambiente de desenvolvimento compreende o código Python. As mudanças incluem inferência de tipos mais precisa, menos avisos falsos, preenchimento automático mais adequado e melhorias na importação e na refatoração.
A empresa afirma que esses ajustes têm como alvo detalhes que surgem no trabalho diário, especialmente ao usar tipos modernos e frameworks populares, em vez de oferecer uma única funcionalidade principal separada.
Suporte mais preciso ao SQLAlchemy 2.0
A atualização corrigiu um conjunto de problemas relacionados ao SQLAlchemy 2.0, que anteriormente causavam o aparecimento de avisos falsos. O PyCharm agora lida corretamente com referências textuais a classes dentro de Mapped[...] e infere o tipo retornado por Session.get() como um objeto do modelo ou um valor None, em vez de interpretá-lo como o próprio tipo da classe.
O editor também passou a reconhecer os mecanismos modernos de configuração da propriedade hybrid_property usando @name.inplace.setter e a lidar com atributos de classes de modelos herdados por meio de mixins, reduzindo os relatos de argumentos inesperados durante a criação de objetos.
Melhoria na inferência de tipos e na análise do fluxo de execução
A JetBrains corrigiu casos em que a análise declarava incorretamente que uma parte do código era inacessível ou perdia o estreitamento de tipo após a passagem por loops. Ao verificar uma união numérica como int | float usando isinstance, o ramo else não é mais tratado como inacessível, e o estreitamento correto do tipo continua dentro de loops while.
As correções também incluíram a preservação das informações de tipo ao usar desempacotamento e expressões com asterisco, a correção do tipo resultante de atribuições aumentadas como /= e o aprimoramento do tratamento de Self e dos resultados de construtores que usam __new__, __init__ ou metaclass __call__.
Nas enumerações, os valores .value e .name agora são inferidos como tipos precisos de Literal, em vez de serem ampliados para str ou int. Também é possível inferir os tipos dos parâmetros de funções decoradas a partir das restrições impostas pelo decorador, em vez de atribuir o tipo genérico Any.
Importação e preenchimento automático mais úteis
A importação automática agora reutiliza o módulo já importado, em vez de sugerir uma segunda importação duplicada. Se o módulo já estiver disponível, o PyCharm prefere referenciá-lo por meio do nome qualificado, e também foi adicionado suporte à importação automática de classes aninhadas.
Os destinos textuais de unittest.mock.patch() agora contam com preenchimento automático para caminhos que incluem módulos, classes e atributos. Além disso, o preenchimento para redefinições de funções integradas ou funções dunter preenche a assinatura completa com anotações e importa automaticamente os tipos necessários.
O que muda na prática?
Essas melhorias reduzem o tempo que o desenvolvedor passa revisando avisos incorretos ou corrigindo sugestões de importação e preenchimento. As dicas de tipo em linha, que agora podem ser clicadas para acessar a definição do tipo, também ajudam a compreender diretamente no local de uso o resultado de tipos genéricos.
A atualização adicionou a validação de especificações de formatação dentro de f-strings, identificando especificadores incompatíveis ou tipos que não implementam __format__. Na refatoração, renomear um módulo agora também atualiza as referências e as instruções de importação relacionadas. Além disso, o nome da ação Refactor | Field foi alterado para Attribute, em conformidade com a terminologia do Python relacionada aos atributos de objetos.