
pylyzer é um analisador de código estático / servidor de idiomas para Python, escrito em ferrugem.
pip install pylyzercargo install pylyzer --lockedgit clone https://github.com/mtshiba/pylyzer.git
cargo install --path . --locked Certifique-se de que cargo / rustc esteja atualizada, pois o Pylyzer pode ser escrito com os mais recentes recursos de linguagem (estável).
pylyzer file.pySe você não especificar um caminho de arquivo, o Pylyzer procurará automaticamente o ponto de entrada.
pylyzerEsta opção é usada quando um editor de consciência do LSP exige argumentos para iniciar o Pylyzer.
pylyzer --serverPara outras opções, verifique o manual.
Em média, o Pylyzer pode inspecionar scripts de Python mais de 100 vezes mais rápido que o Pytype e o Pyright 1 . Isso se deve em grande parte ao fato de o pylyzer ser implementado em ferrugem.
Embora os relatórios de erro do Pytype/Pyright sejam ilegíveis, Pylyzer mostra onde ocorreu o erro e fornece mensagens de erro claras.
O Pylyzer como servidor de idiomas suporta vários recursos, como conclusão e renomeação (o servidor de idiomas é uma adaptação do ERG Language Server (ELS). Para obter mais informações sobre os recursos implementados, consulte aqui).
Você pode instalar a extensão do VSCode no mercado ou na linha de comando:
code --install-extension pylyzer.pylyzerRuff, como Pylyzer, é uma ferramenta de análise de código estática para Python escrita em Rust, mas o Ruff é um linhador e Pylyzer é um verificador e servidor de idiomas do tipo. O Pylyzer não executa o LING e a formatação, e o RUFF não executa a verificação do tipo.
Pylyzer usa o verificador de tipo da linguagem de programação ERG internamente. Esse idioma é um idioma transpilado que tem como alvo o Python e possui um sistema de tipo estático.
Pylyzer converte o Python ASTS em ergs e passa para o verificador do tipo ERG. Em seguida, exibe os resultados com modificações apropriadas.
O inspetor de tipo de Pylyzer assume apenas o código tipado estaticamente (potencialmente), para que você não possa verificar nenhum código que use reflexões, como exec , setattr , etc.
O Pylyzer (= sistema de tipo de ERG) tem suas próprias declarações de tipo para as APIs padrão do Python. A digitação de todas as APIs não está completa e pode resultar em um erro que essa API não existe.
Como a verificação do tipo de Pylyzer é conservadora, você pode encontrar muitos erros (possivelmente falsos positivos). Estamos trabalhando para corrigir isso, mas se você estiver preocupado com os erros do editor, desligue o recurso de diagnóstico.
async/awaitlistdicttuplesettypingUnionOptionalLiteralCallableAnyTypeVarTypedDictClassVarGenericProtocolFinalAnnotatedTypeAliasTypeGuardcollections.abcIterableIteratorMappingSequencetyping.cast ) is , isinstance ) pyi (stub) # type: ... ) pippoetryuvEstamos à procura de colaboradores para nos ajudar a melhorar o Pylyzer. Se você estiver interessado em contribuir e tiver alguma dúvida, não hesite em entrar em contato conosco.
1 O teste de desempenho foi realizado no MacBook (início de 2016) com processador M3 Intel Core de 1,1 GHz e 8 GB de 1867 MHz LPDDR3 Memory.↩