Generic NamedTuples and overloads
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
mypy doesn't infer the right type, when using a generic namedtuple and overloads.
To Reproduce
https://gist.github.com/mypy-play/60399580f537f8a7c80bb18266ab357f
Expected Behavior
Revealed type is int (pyright infers the right type).
Actual Behavior
Mypy infers type "< nothing >". Removing "NamedTuple" as a base class fixes the problem. So this seems to be related to the way mypy handles generic namedtuples.
Your Environment
- Mypy version used: 0.981
- Python version used: 3.10.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
Beginne mit der Reproduktion im verlinkten gist und führe sie mit mypy 0.981 unter Python 3.10.7 aus; vergleiche dann den inferierten Typ mit dem erwarteten Ergebnis int. Untersuche das dort gezeigte Verhalten von generischem NamedTuple und overload. Als erledigt gilt die Aufgabe, wenn mypy int statt inferiert, ohne NamedTuple zu entfernen.
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
- 38/100