Pygithub: Soporte asíncrono

Creado en 24 may. 2020  ·  10Comentarios  ·  Fuente: PyGithub/PyGithub

¿Qué opinas sobre el soporte asíncrono de PyGithub? Si hago soporte asincrónico para PyGithub, ¿lo aceptas?

Comentario más útil

No creo que se deba cerrar este tema. Usar asyncio para operaciones vinculadas a IO es el caso de uso perfecto.

Todos 10 comentarios

¿De qué manera agregaría soporte asíncrono? Dado que la mayoría de las operaciones se realizan de forma remota en GitHub y nuestro código está esperando una respuesta o un blob JSON, ¿cómo ayudaría?

Dado que la mayoría de las operaciones se realizan de forma remota en GitHub y nuestro código está esperando una respuesta

¡Esa es una buena razón para la introducción asíncrona! Quiero decir... PyGithub debería manejar el acceso a la API como rutinas, de lo contrario, la mayoría de las veces está esperando la respuesta del servidor en lugar de hacer algo útil. Es un concepto común en nodejs y actualmente es compatible con @octokit/rest.js
Me sorprende que nadie haya pedido esta función antes...

Obs: tal vez no entendí bien cómo funciona actualmente PyGithub, pero creo que los contenedores API secuenciales y sincrónicos son menos eficientes que uno asíncrono.

Podría agregar una nueva clase AsyncRequester y crear en todas las demás clases métodos asincrónicos para interactuar con ella, conservando la lógica.

El código asincrónico podría ayudar en tareas en las que necesita producir una gran cantidad de consultas, por ejemplo, en una búsqueda. También te permitiría trabajar rápidamente con múltiples cuentas en Github

Lo que suena como un rediseño completo, además de agregar soporte para utilizar múltiples cuentas. Me encanta tu entusiasmo, pero creo que es mucho trabajo para no ganar lo suficiente.

Puede implicar mucho trabajo, pero me encantaría verlo implementado. Actualmente estoy atascado con JS en mi investigación debido a que el rendimiento de @octokit/rest.js supera al de PyGithub. Si se necesita ayuda, me encantaría trabajar en esto también.

Por cierto, ¡creo que el soporte de múltiples cuentas sería demasiado! ¿No es simplemente asíncrono un tremendo primer paso hacia las ganancias de rendimiento?

Tal vez, ¿puedo hacer alguna edición y mostrarla en la solicitud de extracción? para prueba

Asyncio suena como una buena idea dado mi caso de uso. Estoy tratando de leer todos los archivos en un repositorio de forma recursiva, y las solicitudes síncronas son demasiado lentas (es posible que me falte algo como la limitación de velocidad en la API de github, pero definitivamente podríamos hacer que esas operaciones sean más rápidas).

Recomiendo encarecidamente usar algo como GitPython para eso en lugar de solicitar todo a través de la API de GitHub.

Gracias por la interesante sugerencia, lo intentaré ya que tiene sentido hacerlo de esa manera.

No creo que se deba cerrar este tema. Usar asyncio para operaciones vinculadas a IO es el caso de uso perfecto.

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