Pygithub: Agregue anotaciones de tipo para mypy (etc.)

Creado en 8 sept. 2019  ·  6Comentarios  ·  Fuente: PyGithub/PyGithub

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?

feature request improvement

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.

Todos 6 comentarios

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

¿Fue útil esta página
0 / 5 - 0 calificaciones