Not finding type specifications in make_dataclass
Offen
Dieses Issue hat noch niemand übernommen.
feature
priority-1-normal
topic-dataclasses
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Given the following script:
from typing import NamedTuple
from dataclasses import make_dataclass, dataclass
Emp1 = NamedTuple('Emp1', [('name', str), ('id', int)])
r1 = Emp1('raymond', 'xyz')
Emp2 = make_dataclass('Emp2', [('name', str), ('id', int)])
r2 = Emp2('raymond', 'xyz')
class Emp3(NamedTuple):
name: str
id: int
r3 = Emp3('raymond', 'xyz')
@dataclass
class Emp4:
name: str
id: int
r4 = Emp4('raymond', 'xyz')
mypy only finds three of the four type errors:
$ mypy --version
mypy 0.650
$ mypy nt_example.py
nt_example.py:5: error: Argument 2 to "Emp1" has incompatible type "str"; expected "int"
nt_example.py:14: error: Argument 2 to "Emp3" has incompatible type "str"; expected "int"
nt_example.py:21: error: Argument 2 to "Emp4" has incompatible type "str"; expected "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
Reproduziere das Beispiel mit mypy 0.650, wobei der Aufruf make_dataclass und der von ihm generierte Konstruktor im Mittelpunkt stehen. Verfolge, wie mypy dataclasses.make_dataclass behandelt, und füge dann einen Regressionstest auf Grundlage des Skripts hinzu; abgeschlossen ist die Aufgabe, wenn das ungültige String-Argument für Emp2 zusammen mit den drei anderen Fehlern gemeldet wird.
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
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100