Stubbed Enum classes does not allow indexing
Abierto
Nadie ha tomado este issue todavía.
bug
false-positive
priority-1-normal
topic-enum
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
I am seeing the issue described here: https://github.com/python/mypy/issues/3137 again on mypy 0.780, but only if the enum is stubbed
# test.py
from package import E
name = 'a'
val = E[name]
assert val == E.a
# package/__init__.pyi
import package.test_def
E = package.test_def.E
# package/test_def.py
from enum import Enum
class E(Enum):
a = 'a'
b = 'b'
c = 'c'
In terminal
$ python -m mypy --version
mypy 0.780
$ python -m mypy ./
test.py:4: error: "E" expects no type arguments, but 1 given
test.py:4: error: Variable "test.name" is not valid as a type
test.py:4: note: See https://mypy.readthedocs.io/en/latest/common_issues.html#variables-vs-type-aliases
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
Comienza con la reproducción mínima en test.py, package/init.pyi y package/test_def.py, y luego ejecuta mypy 0.780 o el comando de prueba equivalente del repositorio para confirmar los diagnósticos. Rastrea cómo se analiza el alias del enum definido en el stub y considera terminado el issue cuando se acepte indexar E con una cadena y el ejemplo pase la comprobación de tipos sin los errores indicados.
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
- Bastante claro
- Aptitud para principiantes
- 45/100