Type checking unexpectedly passing when misusing `default` and `converter`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
Start by running the Python 2/3 reproducer and checking the reported MyPy diagnostics for A, especially the y attribute using default=None and _convert_int. Trace whether the missing error belongs to attrs' generated typing information or to MyPy/Typeshed, and consider the issue done when the ownership and a regression check for this case are established.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I was playing around with type annotations and Attrs, and I think I may have found an issue.
Given the following Python 2/3 script:
from __future__ import absolute_import
from pprint import pprint as pp
import attr
def _convert_int(val):
# type: (int) -> int
if val <= 0:
return -1
return val
@attr.s
class A(object):
x = attr.ib(default=0, converter=_convert_int, type=int)
y = attr.ib(default=None, converter=_convert_int, type=int) # `default` is incompatible with our declared `type`
def main():
# type: () -> None
a1 = A(5, 5) # correct: type checks
pp(a1)
a2 = A(5, None) # correct: doesn't type check
pp(a2)
a3 = A(5) # incorrect: type checks but shouldn't!
pp(a3)
if __name__ == '__main__':
main()
I'd expect MyPy to complain about the relationship between default and converter for y. Nevertheless, I'm getting:

Which is one error less than expected.
Should I perhaps report this to MyPy or Typeshed as well/instead?
- Lenguaje dominante
- Python
- Estrellas
- 5.8k
- Forks
- 480
- Merge medio
- 2 h 15 min
- PR fusionados (30 d)
- 2
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.
Más de python-attrs/attrs
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
python-attrs/attrs#1620 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
python-attrs/attrs#1596 · 2 comentarios · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
python-attrs/attrs#1549 · 3 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
python-attrs/attrs#1543 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
python-attrs/attrs#1532 ·
Todos los issues de python-attrs/attrs
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
xinnan-tech/xiaozhi-fde-talk#263 ·
-
rules
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
huggingface/Repo2RLEnv#163 · 1 comentario ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
huggingface/sentence-transformers#4074 ·
-
comp/dashboard invalid P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
NousResearch/hermes-agent#121143 ·