Not finding type specifications in make_dataclass
Abierto
Nadie ha tomado este issue todavía.
feature
priority-1-normal
topic-dataclasses
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Given the following script:
from typing import NamedTuple
from dataclasses import make_dataclass, dataclass
Emp1 = NamedTuple('Emp1', [('name', str), ('id', int)])
r1 = Emp1('raymond', 'xyz')
Emp2 = make_dataclass('Emp2', [('name', str), ('id', int)])
r2 = Emp2('raymond', 'xyz')
class Emp3(NamedTuple):
name: str
id: int
r3 = Emp3('raymond', 'xyz')
@dataclass
class Emp4:
name: str
id: int
r4 = Emp4('raymond', 'xyz')
mypy only finds three of the four type errors:
$ mypy --version
mypy 0.650
$ mypy nt_example.py
nt_example.py:5: error: Argument 2 to "Emp1" has incompatible type "str"; expected "int"
nt_example.py:14: error: Argument 2 to "Emp3" has incompatible type "str"; expected "int"
nt_example.py:21: error: Argument 2 to "Emp4" has incompatible type "str"; expected "int"
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
Reproduce el ejemplo con mypy 0.650, centrándote en la llamada a make_dataclass y en el constructor que genera. Rastrea cómo mypy gestiona dataclasses.make_dataclass y después añade una prueba de regresión basada en el script; la tarea estará terminada cuando el argumento de string no válido para Emp2 se notifique junto con los otros tres errores.
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
- 42/100