Pyre est un vérificateur de type performant pour Python conforme à la PEP 484. Pyre peut analyser des bases de code contenant des millions de lignes de code de manière incrémentielle, fournissant ainsi un retour instantané aux développeurs lorsqu'ils écrivent du code. Vous pouvez l’essayer sur des exemples dans le Pyre Playground.
Pyre est livré avec Pysa , un outil d'analyse statique axé sur la sécurité que nous avons construit sur Pyre et qui analyse les flux de données dans les applications Python. Veuillez vous référer à notre documentation pour commencer notre analyse de sécurité.
Pysa est également disponible sur le marché GitHub en tant qu'action Github
Pour commencer, vous avez besoin de Python 3.8 ou version ultérieure et d'un gardien travaillant sur votre système. Sur MacOS, vous pouvez tout obtenir avec l'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 OSX 10.11 et versions ultérieures.
Nous commençons par créer un répertoire de projet vide et mettre en place 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 parlons à Pyre de notre nouveau projet :
(venv) $ pyre init
Cette commande configurera une configuration pour Pyre ( .pyre_configuration
) ainsi que watchman ( .watchmanconfig
) dans le répertoire de votre projet. Acceptez les valeurs par défaut pour le moment – 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 lancera un démon à l'écoute des modifications du système de fichiers – tapez en vérifiant votre projet progressivement 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, voir https://pyre-check.org.
Voir CONTRIBUTING.md pour savoir comment aider.
Pyre est sous licence MIT.