Incorrect type inference when using generics of "union" TypeVars
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
from typing import MutableSet, Sequence, TypeVar
T = TypeVar('T', str, Sequence[str])
class CustomSet(MutableSet[T]):
def add(self, value: T) -> None:
pass
foo = CustomSet()
foo.add(('a', 'b'))
mypy 0.740 says: error: Argument 1 to "add" of "CustomSet" has incompatible type "Tuple[str, str]"; expected "str"
There's seemingly nothing I can do to get mypy to handle this pattern correctly. If I try explicitly specifying the type of foo, it just complains that the assignment to it is incompatible.
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
Empieza con la reproducción mínima de CustomSet y TypeVar del issue y, después, sigue la inferencia de tipos genéricos de mypy para la llamada a CustomSet.add. Confirma el comportamiento con una prueba de comprobación de tipos centrada en el ejemplo; se considera terminado cuando el argumento de tipo tupla se infiere y se acepta sin una anotación explícita incompatible.
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