Un outil CLI pour ajouter automatiquement les annotations de type dans le code Python.
Le scénario principal pour l'utilisation de l'outil est de vous aider à annoter une grande et ancienne base de code. Cela ne résoudra pas la tâche pour vous à 100%, mais vous aidera certainement énormément, car de nombreuses fonctions du monde réel ont des types de retour assez simples qui sont faciles à déduire automatiquement.
Caractéristiques:
Disons que vous avez la méthode suivante:
class Database :
def users_count ( self ):
return len ( self . users ) Étant donné que len retourne toujours int , infer-types sont capables de déduire le type de retour de la méthode. Ainsi, après avoir exécuté l'outil, le code ressemblera à ceci:
class Database :
def users_count ( self ) -> int :
return len ( self . users )python3 -m pip install infer-typespython3 -m infer_types ./example/L'outil ajoutera de nouvelles instructions d'importation qui peuvent être dupliquées et qui ne sont pas situées en haut du fichier. Pour le réparer, exécutez Isort:
python3 -m isort ./example/ L'outil de type inférieur utilise la nouvelle syntaxe fantaisie pour les annotations de type introduites dans Python 3.10. Ainsi, au lieu de Optional[str] il émettra str | None . Si votre code est censé s'exécuter sur une ancienne version de Python, ajoutez from __future__ import annotations au début de chaque fichier. Il résoudra le problème et rendra également le démarrage de votre application plus rapidement. Vous pouvez également le faire avec ISORT:
python3 -m isort --add-import ' from __future__ import annotations ' ./example/Voir le type impressionnant-python pour plus d'outils pour vous aider à annotrant votre code.
None .yield , le type de retour est typing.Iterator .is_open est supposée retourner bool car elle commence par is_ . Vous ne pouvez exécuter qu'une heuristique spécifique en utilisant le drapeau --only .