python / python/mypy

Daemon does not progate change from decorated to async function

Abierto
#13,706 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

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

Descripción

This fine-grained incremental test case fails (no error on second run):

[case testDecoratedToAsyncReExported]
from mm import f
x: int = f()

[file mm.py]
from m import f

[file m.py]
from d import singleton

@singleton
def f() -> int:
    return 0

[file m.py.2]
async def f() -> str:
    return 'x'

[file d.py]
from typing import Callable

class Singleton:
    def __call__(self) -> int:
        return 0

def singleton(f: Callable[[], int]) -> Singleton: pass
[out]
==
main:2: error: Incompatible types in assignment (expression has type "Coroutine[Any, Any, str]", variable has type "int")

It seems necessary to have a re-export, a decorator, and an async function for this to work. Also changing the return type of the functions seems required. I have no idea so far why this corner case fails.

This fails in 0.971 so it's not a recent regression.

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

Reproduce el caso testDecoratedToAsyncReExported en el arnés de pruebas incremental de granularidad fina, usando las instantáneas indicadas de mm.py, m.py y d.py. Rastrea por qué la segunda ejecución no produce ningún error; se considera completado cuando la segunda ejecución informa del diagnóstico incompatible-types mostrado sin hacer retroceder las pruebas incrementales relacionadas.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
tooling
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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.