[numpy] mypy does not raise `type-var` when `NDArray` with incompatible dtype is used as a generic.
Offen
Dieses Issue hat noch niemand übernommen.
bug
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
To Reproduce
import numpy as np
from numpy.typing import NDArray
class A: ...
def foo() -> NDArray[A]: # ✅ raises type-var (true positive)
return np.array([A()])
def bar() -> list[NDArray[A]]: # ❌ does not raise type-var (false negative)
return [np.array([A()])]
Expected Behavior
mypy should raise error: Type argument "A" of "NDArray" must be a subtype of "generic" [type-var] in both instances.
Your Environment
- Mypy version used: 1.10
- numpy version: 1.26.4
- Mypy configuration options:
plugins = ["numpy.typing.mypy_plugin"] - Python version used: 3.11.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
Reproduziere das Problem mit den foo- und bar-Beispielen unter Verwendung von mypy 1.10, NumPy 1.26.4, Python 3.11.7 und aktiviertem numpy.typing.mypy_plugin. Vergleiche die Diagnosen für die direkte und verschachtelte Verwendung von NDArray[A]; erledigt bedeutet, dass mypy in beiden Fällen den angegebenen type-var-Fehler ausgibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- numpy, python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 42/100