Es wäre toll, wenn PyGithub
Typanmerkungen für seine Typen hätte. Dies würde es Benutzern ermöglichen, sichereren Code zu erstellen und die Vorschläge des Editors zu verbessern. Da PyGithub
bereits eine gut definierte Typhierarchie hat, gibt es bereits Typen, die verwendet werden könnten, was großartig ist.
(Ich nahm ursprünglich von der Beschreibung an, dass PyGithub
mit Anmerkungen versehen war und war überrascht, dass dies nicht der Fall war).
Ist dies etwas, das Sie in Betracht gezogen haben und/oder für das Sie offen wären?
Wenn die Betreuer mit dieser Idee einverstanden sind, würde ich nichts dagegen haben, daran zu arbeiten.
Ich bin damit einverstanden, aber es wird kein kleiner Aufwand sein. Vielleicht sollten wir das Projekt vorher auf Python 3 aktualisieren (da Python2 bald eingestellt wird), damit wir die Typannotationen im Python3-Stil überall verwenden können.
Es ist möglich, Tools wie https://github.com/Instagram/MonkeyType zu verwenden, um Typanmerkungen inline aus einer Stub-Datei anzuwenden. Möglicherweise könnten wir also damit beginnen, Stubs zu schreiben und sie dann inline anzuwenden, nachdem die Unterstützung für Py2 eingestellt wurde.
Ok, ich habe tatsächlich angefangen, an der @trickeydan- Idee zu arbeiten. Ich habe Stubs-Dateien generiert, indem ich MonkeyType gegen den Unittest ausgeführt und sie in .piy-Dateien neben den .py-Dateien geschrieben habe. Es ist erforderlich, alle Stubs von Hand zu überprüfen, da MonkeyType hier und da leider ein paar Details übersehen zu haben scheint (es kann also eine Weile dauern).
Ich denke, es wird auch erforderlich sein, mehr oder weniger jeden Typ zu exportieren, den wir in den __init__.py
des Moduls haben, damit die Leute den Typ von PyGithub in ihre Typprüfungen aufnehmen können.
Wenn jemand interessiert ist, können Sie den Fortschritt hier überprüfen: https://github.com/zer0tonin/PyGithub/tree/agg/type_stubs
Das einzige Problem, das mir bisher aufgefallen ist, ist, dass urllib3 anscheinend keine Eingabeinformationen verfügbar hat und wir leider einige ihrer Typen verwenden.
@zer0tonin Lass uns den Ball ins Rollen halten. Warum eröffnen Sie nicht eine PR aus Ihrer Filiale, damit wir eine Überprüfung vornehmen können.
urllib3
wird nur für die Retry-Funktion verwendet, die kürzlich in #1002 eingeführt wurde. Sehen wir uns an, wie wir später einen Stub zu urllib3
hinzufügen können.
Geschlossen in #1231
CI-Erzwingung wird in Nr. 1442 hinzugefügt
Hilfreichster Kommentar
Es ist möglich, Tools wie https://github.com/Instagram/MonkeyType zu verwenden, um Typanmerkungen inline aus einer Stub-Datei anzuwenden. Möglicherweise könnten wir also damit beginnen, Stubs zu schreiben und sie dann inline anzuwenden, nachdem die Unterstützung für Py2 eingestellt wurde.