
Performant type-checking for python.
[!WARNING]
Ce dépôt est archivé
Ce dépôt n'est plus maintenu et a été archivé.
- Vérification de type : Pyre a été remplacé par Pyrefly, notre vérificateur de type Python de nouvelle génération et serveur de langage.
- Analyse de sécurité (Pysa) : Pysa a été déplacé vers son propre dépôt sur github.com/facebook/Pysa. Si vous cherchez Pysa, veuillez vous y rendre.
Pyre est un vérificateur de type performant pour Python, conforme à PEP 484. Pyre peut analyser incrémentiellement des bases de code de millions de lignes, offrant un retour instantané aux développeurs pendant qu'ils écrivent du code. Consultez notre documentation pour commencer.
Pyre est livré avec Pysa, un outil d'analyse statique axé sur la sécurité que nous avons construit au-dessus de Pyre et qui raisonne sur les flux de données dans les applications Python. Pysa vit désormais dans son propre dépôt sur github.com/facebook/Pysa — veuillez vous y rendre pour la dernière version et pour commencer avec notre analyse de sécurité.
Pysa est également disponible sur le GitHub Marketplace en tant qu'Action GitHub
Pour commencer, vous avez besoin de Python 3.9 ou ultérieur et de watchman fonctionnant sur votre système. Sur MacOS, vous pouvez tout obtenir avec homebrew :
$ brew install python3 watchman
Sur Ubuntu, Mint ou Debian ; utilisez apt-get et homebrew :
$ sudo apt-get install python3 python3-pip python3-venv
$ brew install watchman
Nous avons testé Pyre sur Ubuntu 18.04.5 LTS, CentOS 7, ainsi que sur OSX 10.11 et ultérieurs.
Nous commençons par créer un répertoire de projet vide et configurer un environnement virtuel :
$ mkdir my_project && cd my_project
$ python3 -m venv ~/.venvs/venv
$ source ~/.venvs/venv/bin/activate
(venv) $ pip install pyre-check
Ensuite, nous apprenons à Pyre à connaître notre nouveau projet :
(venv) $ pyre init
Cette commande configurera une configuration pour Pyre (.pyre_configuration) ainsi que pour watchman (.watchmanconfig) dans le répertoire de votre projet. Acceptez les valeurs par défaut pour l'instant – vous pourrez les modifier plus tard si nécessaire.
Nous sommes maintenant prêts à exécuter 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`.
Cette première invocation démarrera un démon à l'écoute des changements du système de fichiers – vérifiant incrémentiellement votre projet au fur et à mesure que vous modifiez le code. Vous remarquerez que les invocations ultérieures de pyre seront plus rapides que la première.
Pour une documentation plus détaillée, consultez https://pyre-check.org.
Consultez CONTRIBUTING.md pour savoir comment contribuer.
Pyre est sous licence MIT.