PyGithub非同期サポートについてどう思いますか? PyGithubの非同期サポートを行う場合、それを受け入れますか?
非同期サポートをどのように追加しますか? ほとんどの操作がGitHubでリモートで実行され、コードが応答またはJSON BLOBの返送を待っているとすると、どのように役立ちますか?
ほとんどの操作はGitHubでリモートで実行され、コードは応答を待っています。
それが非同期導入の正当な理由です! つまり...PyGithubはAPIアクセスをコルーチンとして処理する必要があります。そうしないと、ほとんどの場合、何か便利なことをする代わりに、サーバーの応答を待機します。 これはnodejsの一般的な概念であり、現在@ octokit/rest.jsでサポートされています。
これまで誰もこの機能を尋ねなかったことに驚いています...
Obs:PyGithubが現在どのように機能しているかを誤解しているかもしれませんが、シーケンシャルおよび同期APIラッパーは非同期ラッパーよりも効率が悪いと思います。
新しいAsyncRequesterクラスを追加し、他のすべてのクラスで、ロジックを維持しながら、それと対話するための非同期メソッドを作成できます。
非同期コードは、検索など、多数のクエリを生成する必要があるタスクに役立ちます。 また、Githubで複数のアカウントをすばやく操作できるようになります
これは、複数のアカウントを利用するためのサポートを追加するとともに、完全な再設計のように聞こえます。 私はあなたの熱意が大好きです、しかしそれは十分な利益のために非常に多くの仕事だと思います。
大変な作業になるかもしれませんが、実装してもらいたいです。 @ octokit / rest.jsのパフォーマンスがPyGithubのパフォーマンスを上回っているため、現在、私は自分の研究でJSに固執しています。 助けが必要な場合は、私もこれに取り組んでうれしいです。
ところで、複数のアカウントのサポートは多すぎると思います! パフォーマンスの向上に向けた途方もない最初のステップは、非同期ではありませんか?
たぶん、私は任意のエディションを実行して、プルリクエストで表示できますか? テスト用
私のユースケースを考えると、Asyncioは良いアイデアのように思えます。 リポジトリ内のすべてのファイルを再帰的に読み取ろうとしていますが、同期リクエストが遅すぎます(githubのAPIのレート制限などが欠落している可能性がありますが、そのような操作を確実に高速化できます)。
GitHub APIを介してすべてをリクエストするのではなく、GitPythonのようなものを使用することを強くお勧めします。
興味深い提案をありがとう、そのようにするのは理にかなっているので、私はそれを試してみます。
この問題は解決されるべきではないと思います。 IOバウンド操作にasyncio
を使用することは、完璧なユースケースです。
最も参考になるコメント
この問題は解決されるべきではないと思います。 IOバウンド操作に
asyncio
を使用することは、完璧なユースケースです。