Pygithub: Ajouter des annotations de type pour mypy (etc.)

Créé le 8 sept. 2019  ·  6Commentaires  ·  Source: PyGithub/PyGithub

Ce serait génial si PyGithub avait des annotations de type pour ses types. Cela permettrait aux utilisateurs de créer un code plus sûr autour de celui-ci et d'améliorer les suggestions de l'éditeur. Comme PyGithub déjà une hiérarchie de types bien définie, il existe déjà des types qui pourraient être utilisés, ce qui est génial.

(En fait, à l'origine, j'ai supposé à partir de la description que PyGithub était annoté et j'ai été surpris que ce ne soit pas le cas).

Est-ce quelque chose que vous avez envisagé et/ou auquel vous seriez ouvert ?

feature request improvement

Commentaire le plus utile

Il est possible d'utiliser des outils tels que https://github.com/Instagram/MonkeyType pour appliquer des annotations de type en ligne à partir d'un fichier de raccord. Donc potentiellement, nous pourrions commencer à travailler sur l'écriture des stubs, puis les appliquer en ligne après avoir abandonné la prise en charge de Py2.

Tous les 6 commentaires

Si les responsables sont d'accord avec cette idée, cela ne me dérangerait pas de travailler dessus.

Je suis d'accord avec ça, mais ce ne sera pas un petit effort. Peut-être qu'avant cela, nous devrions mettre à niveau le projet vers Python 3 (puisque Python2 va bientôt disparaître), afin que nous puissions utiliser les annotations de type Python3 partout.

Il est possible d'utiliser des outils tels que https://github.com/Instagram/MonkeyType pour appliquer des annotations de type en ligne à partir d'un fichier de raccord. Donc potentiellement, nous pourrions commencer à travailler sur l'écriture des stubs, puis les appliquer en ligne après avoir abandonné la prise en charge de Py2.

D'accord, j'ai commencé à travailler sur l'idée de @trickeydan . J'ai généré des fichiers stubs en exécutant MonkeyType sur le test unit et les ai écrits dans des fichiers .piy à côté des fichiers .py. Cela nécessitera de vérifier tous les stubs à la main car MonkeyType semble malheureusement avoir manqué quelques détails ici et là (cela peut donc prendre un certain temps).

Je pense qu'il sera également nécessaire d'exporter plus ou moins tous les types que nous avons dans le module __init__.py pour que les gens incluent le type de PyGithub dans leurs vérifications de type.

Si quelqu'un est intéressé, vous pouvez vérifier les progrès ici : https://github.com/zer0tonin/PyGithub/tree/agg/type_stubs

Le seul problème que j'ai remarqué jusqu'à présent est que urllib3 ne semble pas avoir d'informations de frappe disponibles et, malheureusement, nous utilisons quelques-uns de leurs types.

@zer0tonin Gardons le bal. Pourquoi ne pas ouvrir un RP depuis votre agence, afin que nous puissions avoir un examen.

urllib3 n'est utilisé que pour la fonction Retry, qui a été récemment introduite dans #1002. Voyons comment nous pouvons ajouter un stub à urllib3 plus tard.

Fermé en #1231
L'application de la CI sera ajoutée en #1442

Cette page vous a été utile?
0 / 5 - 0 notes