(🐞) some dunder members (`__lt__`) on `dataclass`es show signatures inconsistently in error messages
Abierto
Nadie ha tomado este issue todavía.
bug
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
from dataclasses import dataclass
from typing import Protocol
class Proto(Protocol):
def __lt__(self, other: object) -> None: ...
@dataclass(order=True)
class A:
pass
a: Proto = A()
mypy output
main.py:13: error: Incompatible types in assignment (expression has type "A", variable has type "Proto") [assignment]
main.py:13: note: Following member(s) of "A" have conflicts:
main.py:13: note: Expected:
main.py:13: note: def __lt__(self, object, /) -> None
main.py:13: note: Got:
main.py:13: note: def __lt__(other: A) -> bool
The signature of A's __lt__ is missing the self
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
Empieza ejecutando con mypy el ejemplo proporcionado de dataclass y Protocol para reproducir el diagnóstico. Traza cómo se representan y muestran las firmas lt generadas en la nota de incompatibilidad; estará terminado cuando la firma del miembro generado informe de self de forma coherente con la firma esperada.
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
- 35/100