Various class based NamedTuple and TypedDict errors not caught
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
This example has a bunch of errors that the semantic analyzer should probably report (and one what seems like a false positive):
from typing import NamedTuple, TypeVar, Generic
from typing_extensions import Protocol
from mypy_extensions import TypedDict
@xyz # No error
class N1(NamedTuple):
x: int
@xyz # No error
class T1(TypedDict):
x: int
class N2(NamedTuple, Protocol): # No error
x: int
class T2(TypedDict, Protocol): # No error
x: int
class M(type):
def f(cls) -> None: pass
class N3(NamedTuple, metaclass=M): # No error
x: int
N3.f() # Error
class T3(TypedDict, metaclass=M): # No error
x: int
T = TypeVar('T')
class N4(NamedTuple, Generic[T]): # No error
x: int
class T4(TypedDict, Generic[T]): # No error
x: int
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 Python-Beispiel zu reproduzieren und nachzuverfolgen, wie der semantische Analysator klassenbasierte NamedTuple- und TypedDict-Definitionen verarbeitet. Vergleiche die Diagnosen für Dekoratoren, Protocol- und Metaklassen-Basen sowie Generic-Kombinationen mit den Erwartungen im Issue, einschließlich des gemeldeten False Positive. Die Aufgabe ist abgeschlossen, wenn die fehlenden Fehler gemeldet werden und der False Positive behoben ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100