@David What you propose as `Infer` annotation was proposed some time ago (not only for dataclasses, there are other use cases). The discussion is here https://github.com/python/typing/issues/276
@Chris People are still allowed not to use dataclasses if they really don't like type hints :-) Seriously however, annotations are just syntax. In this sense PEP 526 is more like PEP 3107, and less like PEP 484. People are still free to write: @dataclass class C: x: "first coordinate" y: "second coordinate" plus: "I don't like types" or @dataclass class C: x: ... y: ... I don't see so big difference between hypothesis (testing lib) using annotations for their purposes from the situation with dataclasses. It is true that the syntax was chosen to simplify support in static type checkers (partially because users were often asking for such feature), but not more than this. If you don't use type checkers, there is no problem in using one of the above forms. If you have ideas about how to improve the dataclass docs, this can be discussed in the issue https://bugs.python.org/issue32216 > ... the type will in fact be completely ignored by the implementation. > Newbies are going to be confused by this -- they really are. This is not different from def f(x: int): pass f("What") # OK that exists starting from Python 3.0. Although I agree this is confusing, the way forward could be just explaining this better in the docs. If you want my personal opinion about the current situation about type hints _in general_, then I can say that I have seen many cases where people use type hints where they are not needed (for example in 10 line scripts or in highly polymorphic functions), so I agree that some community style guidance (like PEP 8) may be helpful. I had started such project an the end of last year (it was called pep-555, but I didn't have time to work on this and this number is already taken). -- Ivan
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com