"Yield value expected" on generator using send()
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
mypy doesn't allow empty yield statements in generator functions that accept send() values
To Reproduce
from typing import Any, Generator
def foo() -> Generator[int, Any, None]:
yield
while True:
yield 42
Expected Behavior
I expected the second parameter (Any) in Generator[int, Any, None] to indicate that this generator accepts a send() value and that therefore the naked yield statement is accepting a value but not sending one. As far as I know the above code is idiomatic.
Actual Behavior
error: Yield value expected
mypy complains that a yield value is expected, but this standalone yield is for the purpose of accepting the value of a send() to the generator.
Your Environment
mypy 0.812
python 3.7
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Führe zunächst das bereitgestellte Python-Beispiel mit mypy aus und bestätige die Diagnose „Yield value expected“. Verfolge, wie mypy yield-Anweisungen von Generatoren und den Send-Typ von Generator prüft; abgeschlossen ist die Aufgabe, wenn ein nacktes yield in diesem Fall akzeptiert wird und das Beispiel durch eine Regressionstestabdeckung abgesichert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100