NamedTuple single line declaration gives error "Too many arguments for NamedTuple() [misc]
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Bug Report
typing.NamedTuple one line declaration gives incorrect error
To Reproduce
# test.py
from typing import NamedTuple
ExampleClass = NamedTuple('ExampleClass', test_id=str, timestamp=str)
mypy --show-error-codes test.py
test.py:[line-no]: error: Too many arguments for NamedTuple() [misc]
Expected Behavior
mypy doesn't give this error
given the above syntax is valid python and works fine, I would expect it to not throw an error, like the following old structure declaration does not, which is labeled as "back-ward compatible usage" in the official doc
ExampleClass = NamedTuple('ExampleClass', [(test_id, str), (timestamp, str)])
Actual Behavior
error: Too many arguments for NamedTuple() [misc]
Your Environment
mypy --version
mypy 0.910
python --version
3.8.10
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 ejecutando el ejemplo reportado de test.py con mypy --show-error-codes e inspecciona el manejo de las llamadas a NamedTuple. Se considera terminado cuando la declaración de una sola línea basada en palabras clave ya no produzca erróneamente el error "Too many arguments for NamedTuple()", mientras que la declaración existente basada en listas siga siendo aceptada; añade una prueba de regresión si se identifica la ubicación de las pruebas en el repositorio.
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
- 45/100