Introduction

Lorsque vous écrivez du code Python typé, vous attendez de votre vérificateur de types qu'il suive les règles du langage. Mais à quel point les vérificateurs de types d'aujourd'hui suivent-ils réellement la spécification de typage Python ?

Contexte Technique

Le système de types de Python a commencé avec la PEP 484. À l'époque, la sémantique du système de types était principalement définie par la mise en œuvre de référence, mypy. Au fil du temps, d'autres vérificateurs de types sont apparus : Pyright (de Microsoft), Pytype (de Google) et Pyre (de Facebook), pour n'en citer que quelques-uns.

La spécification de typage Python inclut un jeu de tests de conformité qui contient environ une centaine de fichiers de test. Chaque fichier encode des attentes sur les endroits où un vérificateur de types devrait et ne devrait pas émettre des erreurs.

Analyse et Implications

La conformité est un indicateur précieux pour mesurer à quel point un vérificateur de types suit les règles formelles de typage. Cependant, l'expérience du développeur dépend de nombreux autres facteurs, tels que la qualité de l'inférence, les performances, l'intégration dans l'IDE, la clarté des messages d'erreur et le support des packages tiers.

Les résultats de la conformité peuvent varier en fonction des différents vérificateurs de types. Par exemple, mypy, le vérificateur de types de référence, ne passe que 57% des tests de conformité.

Perspective

Il est important de surveiller la conformité des vérificateurs de types, mais également de considérer les autres facteurs qui influencent l'expérience du développeur. Les futurs articles exploreront certaines de ces dimensions et compareront la façon dont les différents vérificateurs de types abordent ces questions.