mypy recognizes value type in nested dicts as object
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Bug Report
In some cases (see code below) mypy recognizes type of values in nested dict as object. Adding hint with more exact type results in an error.
To Reproduce
from typing import Union
key = 'foo'
x: dict[str, Union[str, bool]] = {
'foo': {
'key1': 'value',
'key2': True,
},
'bar': {
'key3': 'value',
'key4': False,
},
}[key]
Expected Behavior
mypy should not raise any error.
Actual Behavior
main.py:4: error: Incompatible types in assignment (expression has type "Dict[str, object]", variable has type "Dict[str, Union[str, bool]]")
Found 1 error in 1 file (checked 1 source file)
Your Environment
- Mypy version used: 0.971
- Python version used: 3.11
- Operating system: Linux
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el reproductor de diccionarios anidados en main.py y ejecuta mypy con él usando las versiones de Python y mypy indicadas. Sigue la inferencia de tipos para el literal de diccionario y el acceso indexado; se considera terminado cuando el ejemplo no produce ningún error y conserva el tipo esperado dict[str, Union[str, bool]].
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- devtools
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100