python / python/mypy

Mypy should report errors when bpo-33346 would occur

Abierto
#14,256 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

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

Descripción

https://bugs.python.org/issue33346 details some cases where you would get

SyntaxError: asynchronous comprehension outside of an asynchronous function

in some versions of Python, but mypy doesn't complain about these cases. Arguably this isn't necessarily specific to type checking, but it would be nice to report an error if Python is going to give a syntax error (even though it parses!)

I'm not quite sure what version of Python the fix (https://github.com/python/cpython/commit/054e9c84ac7c394941bba3ea1829d14dce1243fc) is in, but it would be nice to give an error message like "await cannot be used in dict comprehensions" in older versions of Python - especially because the error Python gives at runtime is not so good and doesn't include a line number, which gives a subpar experience trying to fix it - something mypy could provide a solution for.

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

Empieza leyendo bpo-33346 y el commit de CPython referenciado para identificar los casos de comprensiones asíncronas y las versiones de Python afectadas. Después, sigue cómo mypy gestiona estas construcciones y sus diagnósticos específicos de cada versión; se considera terminado cuando los destinos de versiones antiguas informan del uso inválido de await con un número de línea útil.

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

Evaluación

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.