mypy doesn't understand dict contstruction
Offen
Dieses Issue hat noch niemand übernommen.
bug
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
from typing import Any, Callable, List, Mapping, Tuple, TypeVar
U = TypeVar('U', bound=Mapping[str, Any])
def f(dict_factory: Callable[[List[Tuple[str, Any]]], U] = dict) -> U:
return dict_factory([('a', 1)])
prints
main.py:6: error: Incompatible default for argument "dict_factory" (default has type "Type[Dict[Any, Any]]", argument has type "Callable[[List[Tuple[Any, Any]]], U]")
This is from trying to annotate dataclasses.asdict.
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 dem bereitgestellten Beispiel in main.py und reproduziere den Fehler incompatible-default. Verfolge anschließend mypy bei der Behandlung des dict-Standards im Vergleich zur TypeVar-bound Mapping-Signatur und vergleiche dies mit dem Ziel der dataclasses.asdict-Annotation. Als erledigt gilt die Aufgabe, wenn das Beispiel ohne diesen Fehler einen Type-Check besteht und dabei der beabsichtigte Rückgabetyp erhalten bleibt.
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