mypy does not warn about incorrect default value in dict.get in some case
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 20.6k
- Fork
- 3.3k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
It seems that mypy should actually warn about the assignment of the set in the following code:
from typing import Dict, Any
params: Dict[str, Any] = {}
a: Dict[str, Any] = params.get("abc", set())
reveal_type(a)
mypy does not warn about the incorrect assignment of Set to a but correctly reveals that the type of a is Dict[str, Any]. Sadly the use of Any in this case is common as these dicts represent complex configuration files.
Tested with the current git master version.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con l’esempio Python minimale nell’issue ed esegui mypy per confermare che il valore predefinito incompatibile set() non venga segnalato per l’assegnazione Dict[str, Any]. Traccia il comportamento del controllo dei tipi di dict.get e Any, quindi aggiungi una copertura che mostri che questo caso produce un avviso mentre il tipo rivelato rimane appropriato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- devtools
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100