Pygithub: Typanmerkungen für mypy (usw.) hinzufügen

Erstellt am 8. Sept. 2019  ·  6Kommentare  ·  Quelle: PyGithub/PyGithub

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?

feature request improvement

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.

Alle 6 Kommentare

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen