Sería genial si PyGithub
tuviera anotaciones de tipo para sus tipos. Esto permitiría a los usuarios crear un código más seguro a su alrededor, así como mejorar las sugerencias del editor. Como PyGithub
ya tiene una jerarquía de tipos bien definida, ya hay tipos que podrían usarse, lo cual es genial.
(De hecho, originalmente asumí a partir de la descripción que PyGithub
estaba anotado y me sorprendió que no lo fuera).
¿Es esto algo que ha considerado y / o estaría abierto a ello?
Si los mantenedores están de acuerdo con esta idea, no me importaría trabajar en ella.
Estoy de acuerdo con esto, pero no será un esfuerzo pequeño. Quizás antes de esto deberíamos actualizar el proyecto a Python 3 (ya que Python2 desaparecerá pronto), para que podamos usar las anotaciones de tipo de estilo Python3 en todas partes.
Es posible utilizar herramientas como https://github.com/Instagram/MonkeyType para aplicar anotaciones de tipo en línea desde un archivo de código auxiliar. Entonces, potencialmente, podríamos comenzar a trabajar en la escritura de códigos auxiliares y luego aplicarlos en línea después de eliminar el soporte para Py2.
Ok, de hecho comencé a trabajar en la idea de @trickeydan . Generé archivos de código auxiliar ejecutando MonkeyType contra unittest y los escribí en archivos .piy junto a los archivos .py. Requerirá verificar todos los stubs a mano porque MonkeyType parece haber perdido algunos detalles aquí y allá, lamentablemente (por lo que puede llevar un tiempo).
Creo que también será necesario exportar más o menos todos los tipos que tenemos en el módulo __init__.py
para que las personas incluyan el tipo de PyGithub en sus comprobaciones de tipos.
Si alguien está interesado, puede consultar el progreso aquí: https://github.com/zer0tonin/PyGithub/tree/agg/type_stubs
El único problema que he notado hasta ahora es que urllib3 no parece tener información de escritura disponible y, lamentablemente, usamos algunos de sus tipos.
@ zer0tonin Sigamos
urllib3
solo se usa para la función Reintentar, que se introdujo recientemente en # 1002. Veamos cómo podemos agregar un código auxiliar a urllib3
más tarde.
Cerrado en # 1231
La aplicación de CI se agregará en el n. ° 1442
Comentario más útil
Es posible utilizar herramientas como https://github.com/Instagram/MonkeyType para aplicar anotaciones de tipo en línea desde un archivo de código auxiliar. Entonces, potencialmente, podríamos comenzar a trabajar en la escritura de códigos auxiliares y luego aplicarlos en línea después de eliminar el soporte para Py2.