python / python/typeshed

iscoroutinefunction should use TypeIs

Offen Anfängerfreundlich
#15,529 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

stubs: improvement
Vorherrschende Sprache
Python
Sterne
5.1k
Forks
2.1k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
82

Beschreibung

One of the things I find myself writing a lot is

if iscoroutinefunction(myfunction):
    do_something_with_async(myfunction)
else:
    do_something_with_just_sync(myfunction)

however the else block doesn't narrow the type to non-awaitable. Shouldn't it? Some of the other is... functions in inspect seem to use TypeIs as well.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Suchen Sie den typeshed-Stub-Eintrag für inspect.iscoroutinefunction und vergleichen Sie seine Annotation mit den anderen inspect-is...-Funktionen, die TypeIs verwenden. Aktualisieren Sie die Annotation so, dass beide Zweige wie beschrieben eingegrenzt werden, und führen Sie anschließend die relevanten Typprüfungs-Tests aus, um zu bestätigen, dass Coroutine-Funktionen und der else-Zweig korrekt eingegrenzt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
tooling
Issue-Typ
Feature
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
64/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.