
Controllo dei tipi performante per Python.
[!WARNING]
Questo repository è archiviato
Questo repository non è più mantenuto ed è stato archiviato.
- Type checking: Pyre è stato sostituito da Pyrefly, il nostro type checker e language server di nuova generazione per Python.
- Analisi di sicurezza (Pysa): Pysa è stato spostato nel proprio repository su github.com/facebook/Pysa. Se stai cercando Pysa, vai lì.
Pyre è un type checker performante per Python conforme a PEP 484. Pyre può analizzare codebase con milioni di righe di codice in modo incrementale – fornendo feedback immediato agli sviluppatori mentre scrivono codice. Consulta la nostra documentazione per iniziare.
Pyre include Pysa, uno strumento di analisi statica focalizzato sulla sicurezza che abbiamo costruito sopra Pyre e che ragiona sui flussi di dati nelle applicazioni Python. Pysa ora vive nel proprio repository su github.com/facebook/Pysa — vai lì per l'ultima versione e per iniziare con la nostra analisi di sicurezza.
Pysa è disponibile anche su GitHub Marketplace come GitHub Action
Per iniziare, hai bisogno di Python 3.9 o successivo e watchman funzionante sul tuo sistema. Su MacOS puoi ottenere tutto con homebrew:
$ brew install python3 watchman
Su Ubuntu, Mint o Debian; usa apt-get e homebrew:
$ sudo apt-get install python3 python3-pip python3-venv
$ brew install watchman
Abbiamo testato Pyre su Ubuntu 18.04.5 LTS, CentOS 7, e OSX 10.11 e successivi.
Iniziamo creando una directory di progetto vuota e impostando un ambiente virtuale:
$ mkdir my_project && cd my_project
$ python3 -m venv ~/.venvs/venv
$ source ~/.venvs/venv/bin/activate
(venv) $ pip install pyre-check
Successivamente, insegniamo a Pyre a conoscere il nostro nuovo progetto:
(venv) $ pyre init
Questo comando imposterà una configurazione per Pyre (.pyre_configuration) e per watchman (.watchmanconfig) nella directory del tuo progetto. Accetta i valori predefiniti per ora – puoi modificarli in seguito se necessario.
Ora siamo pronti per eseguire 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`.
Questa prima invocazione avvierà un demone in ascolto delle modifiche al filesystem – verificando incrementalmente i tipi del tuo progetto mentre modifichi il codice. Noterai che le invocazioni successive di pyre saranno più veloci della prima.
Per una documentazione più dettagliata, vedi https://pyre-check.org.
Vedi CONTRIBUTING.md per come contribuire.
Pyre è concesso in licenza con licenza MIT.