Pygithub: Asynchrone Unterstützung

Erstellt am 24. Mai 2020  ·  10Kommentare  ·  Quelle: PyGithub/PyGithub

Was halten Sie von der asynchronen Unterstützung von PyGithub? Wenn ich asynchrone Unterstützung für PyGithub mache – akzeptieren Sie das?

Hilfreichster Kommentar

Ich denke nicht, dass dieses Thema geschlossen werden sollte. Die Verwendung asyncio für IO-gebundene Operationen ist der perfekte Anwendungsfall.

Alle 10 Kommentare

Auf welche Weise würden Sie asynchrone Unterstützung hinzufügen? Angesichts der Tatsache, dass die meisten Vorgänge remote auf GitHub ausgeführt werden und unser Code auf eine Antwort oder einen JSON-Blob wartet, wie würde es helfen?

Da die meisten Vorgänge remote auf GitHub ausgeführt werden und unser Code auf eine Antwort wartet

Das ist ein guter Grund für die asynchrone Einführung! Ich meine ... PyGithub sollte den API-Zugriff als Coroutinen handhaben, ansonsten wartet es die meiste Zeit auf die Antwort des Servers, anstatt etwas Nützliches zu tun. Es ist ein allgemeines Konzept auf nodejs und wird derzeit auf @octokit/rest.js unterstützt
Ich bin überrascht, dass noch niemand nach dieser Funktion gefragt hat ...

Anmerkungen: Vielleicht habe ich missverstanden, wie PyGithub derzeit funktioniert, aber ich denke, dass sequentielle und synchrone API-Wrapper weniger effizient sind als asynchrone.

Ich könnte eine neue AsyncRequester-Klasse hinzufügen und in allen anderen Klassen asynchrone Methoden für die Interaktion mit ihr erstellen, während die Logik erhalten bleibt.

Asynchroner Code kann bei Aufgaben hilfreich sein, bei denen Sie eine große Anzahl von Abfragen erstellen müssen, beispielsweise bei einer Suche. Es würde Ihnen auch ermöglichen, schnell mit mehreren Konten auf Github zu arbeiten

Das klingt nach einer kompletten Neugestaltung, zusammen mit der Unterstützung für die Verwendung mehrerer Konten. Ich liebe deinen Enthusiasmus, aber ich denke, es ist eine Menge Arbeit für zu wenig Gewinn.

Es könnte eine Menge Arbeit bedeuten, aber ich würde gerne sehen, wie es umgesetzt wird. Derzeit stecke ich bei meiner Recherche bei JS fest, weil die Leistung von @octokit/rest.js die von PyGithub übertrifft. Wenn Hilfe benötigt wird, würde ich mich freuen, auch daran zu arbeiten.

Übrigens denke ich, dass die Unterstützung mehrerer Konten zu viel wäre! Ist Asynchronität nicht ein gewaltiger erster Schritt in Richtung Leistungssteigerung?

Vielleicht kann ich irgendwelche Editionen machen und es in Pull Request zeigen? Zum Testen

Asyncio klingt angesichts meines Anwendungsfalls nach einer guten Idee. Ich versuche, alle Dateien in einem Repository rekursiv zu lesen, und synchrone Anfragen sind einfach zu langsam (ich vermisse vielleicht so etwas wie eine Ratenbegrenzung auf der API von Github, aber wir könnten solche Operationen definitiv schneller machen).

Ich würde dringend empfehlen, dafür etwas wie GitPython zu verwenden, anstatt alles über die GitHub-API anzufordern.

Danke für den interessanten Vorschlag, ich werde es versuchen, da es Sinn macht, es so zu machen.

Ich denke nicht, dass dieses Thema geschlossen werden sollte. Die Verwendung asyncio für IO-gebundene Operationen ist der perfekte Anwendungsfall.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen