Pygithub: Dukungan asinkron

Dibuat pada 24 Mei 2020  ·  10Komentar  ·  Sumber: PyGithub/PyGithub

Apa pendapat Anda tentang dukungan async PyGithub? Jika saya melakukan dukungan async untuk PyGithub - apakah Anda menerimanya?

Komentar yang paling membantu

Saya tidak berpikir masalah ini harus ditutup. Menggunakan asyncio untuk operasi terikat IO adalah kasus penggunaan yang sempurna.

Semua 10 komentar

Dengan cara apa Anda akan menambahkan dukungan async? Mengingat sebagian besar operasi dilakukan dari jarak jauh di GitHub dan kode kami sedang menunggu respons atau gumpalan JSON kembali, bagaimana itu akan membantu?

Mengingat sebagian besar operasi dilakukan dari jarak jauh di GitHub dan kode kami sedang menunggu tanggapan

Itu alasan bagus untuk pengenalan async! Maksud saya... PyGithub harus menangani akses API sebagai coroutine, jika tidak, sebagian besar waktu menunggu respons server alih-alih melakukan sesuatu yang berguna. Ini adalah konsep umum di nodejs dan saat ini didukung di @octokit/rest.js
Saya terkejut tidak ada yang menanyakan fitur ini sebelumnya...

Obs: mungkin saya salah memahami cara kerja PyGithub saat ini, tetapi saya pikir pembungkus API sekuensial dan sinkron kurang efisien daripada yang asinkron.

Saya bisa menambahkan kelas AsyncRequester baru dan membuat semua kelas lain metode asinkron untuk berinteraksi dengannya, sambil mempertahankan logika.

Kode asinkron dapat membantu dalam tugas-tugas di mana Anda perlu menghasilkan sejumlah besar kueri, misalnya, dalam pencarian. Itu juga akan memungkinkan Anda untuk bekerja dengan cepat dengan banyak akun di Github

Kedengarannya seperti desain ulang yang lengkap, bersama dengan menambahkan dukungan untuk menggunakan banyak akun. Saya suka antusiasme Anda, tetapi saya pikir ini adalah pekerjaan yang sangat berat karena tidak cukup mendapatkan keuntungan.

Ini mungkin melibatkan banyak pekerjaan, tetapi saya ingin melihatnya diimplementasikan. Saat ini saya terjebak dengan JS pada penelitian saya karena kinerja @octokit/rest.js mengatasi kinerja PyGithub. Jika diperlukan bantuan, saya akan senang untuk mengerjakan ini juga.

Btw, saya pikir dukungan banyak akun akan terlalu banyak! Bukankah hanya async merupakan langkah pertama yang luar biasa menuju peningkatan kinerja?

Mungkin, saya bisa melakukan edisi apa saja dan menunjukkannya dalam permintaan tarik? Untuk ujian

Asyncio terdengar seperti ide yang bagus mengingat usecase saya. Saya mencoba membaca semua file dalam repositori secara rekursif, dan permintaan sinkron terlalu lambat (saya mungkin kehilangan sesuatu seperti pembatasan kecepatan pada api github tetapi kami pasti dapat membuat operasi seperti itu lebih cepat).

Saya sangat menyarankan menggunakan sesuatu seperti GitPython untuk itu daripada meminta semuanya melalui GitHub API.

Terima kasih atas saran yang menarik, saya akan mencobanya karena masuk akal untuk melakukannya dengan cara itu.

Saya tidak berpikir masalah ini harus ditutup. Menggunakan asyncio untuk operasi terikat IO adalah kasus penggunaan yang sempurna.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat