`has no attribute "__aiter__"; maybe "__enter__"? (not async iterable)` when async iterating

Abierto
#17,126 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
compilers

Línea de trabajo

Empieza reproduciendo el diagnóstico con el ejemplo de Python del issue y compáralo con el resultado enlazado de mypy playground. Rastrea el manejo del error async-for y de las sugerencias; después, verifica que una referencia implícita a aiter ya no sugiera enter; el diagnóstico corregido aún debería explicar que Foo no es iterable de forma asíncrona.

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

Descripción

bug

Bug Report

On mypy 1.9.0, this code suggests, somewhat nonsensically, __enter__ because __aiter__ does not exist despite the reference to __aiter__ being entirely implicit in the async for loop:

from typing import Self

class Foo:
    def __enter__(self) -> Self:
        return self

async def f() -> None:
    async for x in Foo():
        print(x)

On playground: https://mypy-play.net/?mypy=latest&python=3.12&gist=3971471bd809ed97a72a1423a56f5318

Expected Behavior

Since the user did not type __aiter__, it is unlikely that it would be a typo for __enter__; therefore, probably the most helpful course would be to not give that suggestion.

Lenguaje dominante
Python
Estrellas
20.6k
Forks
3.3k
Merge medio
1 d 18 h
PR fusionados (30 d)
54

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.

Más de python/mypy

Todos los issues de python/mypy

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.