- O Pyrefly da Meta é um verificador de tipos para Python de código aberto e uma extensão para IDE desenvolvida em Rust
- Oferece análise ultrarrápida e recursos de integração com IDE, tendo sido criado para superar as limitações do Pyre
- Adota como princípios a inferência automática de tipos, o suporte a bases de código grandes e a filosofia de código aberto
- Busca melhorar o sistema de tipos em todo o ecossistema por meio de colaboração e contribuições com a comunidade Python
- A versão alfa já foi lançada, e a equipe está pedindo ativamente feedback e contribuições da comunidade
Introdução
- Pyrefly é um projeto open source da Meta, desenvolvido em Rust, que funciona como verificador estático de tipos para Python e extensão de IDE
- Ajuda na detecção prévia de erros ao verificar a consistência de tipos antes da execução do código
- Pode ser usado tanto com integração em IDE quanto via CLI, oferecendo um fluxo de trabalho flexível
- Tem como objetivo contribuir para a evolução do sistema de tipos do Python e de várias bibliotecas por meio da colaboração com a comunidade open source
Contexto do desenvolvimento do Pyrefly
- Em 2017, a Meta desenvolveu um novo verificador de tipos, que mais tarde se tornou o Pyre, para a grande base de código Python do Instagram
- O Pyre foi desenvolvido em OCaml com foco em desempenho, inspirado em projetos de design robusto como Hack e Flow
- Com o passar do tempo, surgiram limitações à medida que cresciam as necessidades de evolução do sistema de tipos e de integração com IDE
- Ferramentas da comunidade, como o Pyright, também foram usadas, mas havia limitações para atender requisitos como navegação em bases de código muito grandes e exportação de tipos, o que levou à criação do Pyrefly
Princípios principais do Pyrefly
-
1. Desempenho
- Desenvolvedores precisam de verificação de tipos rápida a cada tecla digitada logo após escrever o código
- O Pyrefly tem uma arquitetura em Rust de alto desempenho capaz de verificar 1,8 milhão de linhas por segundo mesmo em bases de código extremamente grandes
-
2. Projeto centrado em IDE
- As abstrações foram projetadas desde o início para que IDE e CLI mantenham a mesma visão
- No Pyre isso foi uma adaptação posterior, mas no Pyrefly a consistência foi enfatizada desde a fase de projeto
-
3. Inferência
- Suporta inferência automática de tipos mesmo em código Python sem anotações e sem tipos explicitamente declarados
- Exibe no IDE os tipos de valores de retorno e variáveis locais e, para ajudar a escrever código melhor, permite inserir automaticamente o tipo inferido com duplo clique
-
4. Código aberto
- O Pyrefly está disponível no GitHub sob licença MIT, e PRs e relatos de issues da comunidade são bem-vindos
- Busca comunicação ativa por meio de um canal no Discord e integração com o ecossistema Python e bibliotecas importantes da Meta, como o PyTorch
O futuro do Pyrefly
- A equipe está trabalhando com a comunidade para melhorar a linguagem Python e a experiência do desenvolvedor
- Desde o início do desenvolvimento do Pyre, a Meta manteve o código aberto e contribuições para PEPs, e com o Pyrefly pretende maximizar os benefícios do uso de tipos para diversos desenvolvedores, bibliotecas e iniciantes
- Com base em sua experiência e resultados no uso de tipos em linguagens dinâmicas, a Meta pretende compartilhar várias experiências e promover a melhoria da qualidade dos tipos no ecossistema
- Atualmente o Pyrefly está em versão alfa, mas segue recebendo correções de bugs e novos recursos com meta de lançamento oficial neste verão
- O feedback da comunidade é muito importante, e a equipe pede ativamente relatos de issues e solicitações de melhoria após o uso do Pyrefly
Uso da versão alfa do Pyrefly e informações da comunidade
- O processo de desenvolvimento do Pyrefly e seus detalhes técnicos foram apresentados no Meta Tech Podcast e em palestras da PyCon US
- Mais novidades são divulgadas por vários canais, como sites relacionados ao Meta Open Source, YouTube, Facebook, Threads, X e LinkedIn
1 comentários
Comentários no Hacker News