About `TypeVar`, passing a `name` keyword argument to `name` keyword and positional parameter gets error
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
*Memo:
- mypy test.py
- python test.py
- pyright test.py # Strict mode
- mypy 1.19.1
- Python 3.14.0
- Windows 11
The doc of TypeVar indicates name parameter is both a keyword and positional parameter as shown below:
class typing.TypeVar(name, *constraints, bound=None, covariant=False, contravariant=False, infer_variance=False, default=typing.NoDefault)
But with mypy, passing a name keyword argument to name keyword and positional parameter gets the error as shown below:
*Memo:
- No error occurs at runtime.
- pyright gives no error even with strict mode.
from typing import TypeVar
# ↓↓↓↓↓
T = TypeVar(name='T')
# Error
error: TypeVar() expects a string literal as first argument
So, mypy should accept a name keyword argument.
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 damit, das gemeldete mypy-Beispiel test.py mit mypy 1.19.1 auszuführen, und vergleiche anschließend sein Ergebnis mit dem Laufzeitverhalten von Python und pyright im strikten Modus. Verfolge die Behandlung des TypeVar-Aufrufs und füge einen Regressionstest für TypeVar(name='T') hinzu; erledigt ist die Aufgabe, wenn mypy die Schlüsselwortform akzeptiert, ohne die Behandlung positionaler Argumente zu beeinträchtigen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 52/100