python / python/mypy

Incorrect send type with `yield from`

Abierto
#14,834 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug topic-runtime-semantics
Lenguaje dominante
Python
Estrellas
20.6k
Forks
3.3k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Bug Report

Generators do not respect the send type when using yield from.

To Reproduce

def foo() -> Generator[None, int, None]:
    x: int = yield

def bar() -> Generator[None, str, None]:
    yield from foo()

Expected Behavior

Should error on yield from foo().

Actual Behavior

Does not error and allows gen = bar(); gen.send("abc"), which results in x: int = "abc".

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza ejecutando la reproducción en Python del issue y sigue cómo mypy comprueba los tipos enviados de los generadores mediante yield from. Añade una prueba de regresión que cubra foo() y bar(), y confirma que mypy informa de un error en yield from foo() en lugar de permitir que se envíe un string al generador tipado como integer.

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
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.