TypeVars should be allowed to be the same
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
Two unbound TypeVars A and B can potentially be the same:
from typing import Callable, Iterable, TypeVar
A = TypeVar("A")
B = TypeVar("B")
def identity(x: A) -> A:
return x
# ok
def _map(queue: Iterable[B], function: Callable[[B], A]) -> Iterable[A]:
return map(function, queue)
# fails
def _map2(queue: Iterable[B], function: Callable[[B], A] = identity) -> Iterable[A]:
return map(function, queue)
The introduced default keyword argument leads to the following unexpected error:
error: Incompatible default for argument "function" (default has type "Callable[[A], A]", argument has type "Callable[[B], A]")
I'm using mypy 0.740.
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 ejecutando los dos ejemplos de _map del issue y compara cómo mypy comprueba Callable[[A], A] frente a Callable[[B], A]. Sigue la compatibilidad de las variables de tipo y la comprobación de los argumentos predeterminados. Se considera terminado cuando se acepta _map2 y la incompatibilidad indicada tiene una prueba de regresión.
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
- 45/100