- Pyrefly de Meta est un vérificateur de types Python open source ainsi qu’une extension pour IDE, développé en Rust
- Il prend en charge une analyse ultra-rapide et l’intégration IDE, et a été conçu pour dépasser les limites de Pyre
- Il repose sur l’inférence automatique des types, la prise en charge des grandes bases de code et une philosophie open source comme principe fondamental
- Son objectif est d’améliorer le système de types dans l’ensemble de l’écosystème grâce à la collaboration et aux contributions de la communauté Python
- Une version alpha est actuellement disponible, et les retours ainsi que les contributions de la communauté sont activement sollicités
Présentation
- Pyrefly est un vérificateur de types statique pour Python développé en Rust par Meta, ainsi qu’un projet open source d’extension IDE
- Il aide à détecter les erreurs en amont en vérifiant la cohérence des types avant l’exécution du code
- Il peut être utilisé à la fois via l’intégration IDE et en CLI, offrant ainsi un workflow flexible
- L’objectif est de contribuer à l’évolution du système de types de Python et de diverses bibliothèques via la collaboration avec la communauté open source
Contexte du développement de Pyrefly
- En 2017, Meta a développé un nouveau vérificateur de types, devenu ensuite Pyre, pour la vaste base de code Python d’Instagram
- Pyre s’inspirait d’une conception robuste, notamment de Hack et Flow, et a été développé en OCaml pour des raisons de performance
- Avec le temps, des limites sont apparues à mesure que les besoins en évolution du système de types et en intégration IDE grandissaient
- Meta a également utilisé des outils de la communauté comme Pyright, mais face à des exigences comme l’exploration de code à grande échelle et l’export de types, ces outils avaient leurs limites, ce qui a conduit au développement de Pyrefly
Principes clés de Pyrefly
-
1. Performance
- Les développeurs ont besoin d’une vérification de types rapide à chaque frappe juste après avoir écrit du code
- Pyrefly adopte une architecture Rust haute performance capable d’analyser 1,8 million de lignes par seconde, même sur des bases de code extrêmement volumineuses
-
2. Conception centrée sur l’IDE
- Les abstractions ont été conçues dès le départ pour que l’IDE et la CLI partagent la même vision du code
- Dans Pyre, cela relevait d’ajustements a posteriori, alors que Pyrefly met l’accent sur la cohérence dès la phase de conception
-
3. Inférence
- Même pour du code Python sans annotations ni types explicitement déclarés, Pyrefly prend en charge l’inférence automatique des types
- Il affiche dans l’IDE le type des valeurs de retour et des variables locales, et peut insérer automatiquement le type inféré par double-clic pour faciliter l’écriture d’un meilleur code
-
4. Open source
- Pyrefly est publié sur GitHub sous licence MIT, et les PR de la communauté comme les signalements d’issues sont les bienvenus
- Il vise une communication active via un canal Discord, en lien avec l’écosystème Python et les principales bibliothèques de Meta comme PyTorch
L’avenir de Pyrefly
- Le projet avance avec la communauté avec pour objectif d’améliorer le langage Python et l’expérience développeur
- Depuis les débuts de Pyre, Meta a maintenu l’ouverture du code source et sa contribution aux PEP ; avec Pyrefly, l’entreprise prévoit aussi de maximiser les bénéfices de l’usage des types pour divers développeurs, bibliothèques et débutants
- En s’appuyant sur son expérience et ses résultats dans l’usage des types dans les langages dynamiques, Meta prévoit de partager largement son savoir-faire et de faire progresser la qualité du typage dans l’écosystème
- Pyrefly est actuellement en version alpha, mais vise un lancement officiel cet été, avec des correctifs de bugs et ajouts de fonctionnalités en continu
- Les retours de la communauté sont essentiels, et Meta encourage activement les utilisateurs de Pyrefly à signaler des issues et demander des améliorations
Utilisation de la version alpha de Pyrefly et informations sur la communauté
- Le processus de développement de Pyrefly et ses détails techniques ont été présentés dans le Meta Tech Podcast ainsi que lors d’interventions à PyCon US
- Des informations supplémentaires sont diffusées via différents canaux, notamment les sites liés à Meta Open Source, YouTube, Facebook, Threads, X et LinkedIn
1 commentaires
Commentaires sur Hacker News