
Verificação de tipos de alto desempenho para python.
[!WARNING]
Este Repositório Está Arquivado
Este repositório não é mais mantido e foi arquivado.
- Verificação de tipos: Pyre foi substituído pelo Pyrefly, nosso verificador de tipos Python de próxima geração e servidor de linguagem.
- Análise de segurança (Pysa): Pysa foi movido para seu próprio repositório em github.com/facebook/Pysa. Se você está procurando por Pysa, por favor, vá para lá.
Pyre é um verificador de tipos de alto desempenho para Python compatível com PEP 484. Pyre pode analisar bases de código com milhões de linhas de código de forma incremental – fornecendo feedback instantâneo aos desenvolvedores enquanto escrevem código. Consulte nossa documentação para começar.
Pyre vem com Pysa, uma ferramenta de análise estática focada em segurança que construímos sobre o Pyre e que raciocina sobre fluxos de dados em aplicações Python. O Pysa agora reside em seu próprio repositório em github.com/facebook/Pysa — por favor, vá para lá para a versão mais recente e para começar com nossa análise de segurança.
Pysa também está disponível no GitHub Marketplace como uma Github Action
Para começar, você precisa de Python 3.9 ou posterior e watchman funcionando no seu sistema. No MacOS você pode obter tudo com homebrew:
$ brew install python3 watchman
No Ubuntu, Mint ou Debian; use apt-get e homebrew:
$ sudo apt-get install python3 python3-pip python3-venv
$ brew install watchman
Testamos Pyre no Ubuntu 18.04.5 LTS, CentOS 7, bem como OSX 10.11 e posteriores.
Começamos criando um diretório de projeto vazio e configurando um ambiente virtual:
$ mkdir my_project && cd my_project
$ python3 -m venv ~/.venvs/venv
$ source ~/.venvs/venv/bin/activate
(venv) $ pip install pyre-check
Em seguida, ensinamos ao Pyre sobre nosso novo projeto:
(venv) $ pyre init
Este comando configurará uma configuração para Pyre (.pyre_configuration) bem como watchman (.watchmanconfig) no diretório do seu projeto. Aceite os padrões por enquanto – você pode alterá-los mais tarde, se necessário.
Estamos prontos para executar Pyre:
(venv) $ echo "i: int = 'string'" > test.py
(venv) $ pyre
ƛ Found 1 type error!
test.py:1:0 Incompatible variable type [9]: i is declared to have type `int` but is used as type `str`.
Esta primeira invocação iniciará um daemon ouvindo mudanças no sistema de arquivos – verificando tipos do seu projeto incrementalmente conforme você faz edições no código. Você notará que invocações subsequentes de pyre serão mais rápidas que a primeira.
Para documentação mais detalhada, veja https://pyre-check.org.
Veja CONTRIBUTING.md para saber como ajudar.
Pyre está licenciado sob a licença MIT.