Łukasz Langa <luk...@langa.pl> added the comment: > I think we've learned lesson that we shouldn't use typing in modules other > than typing...
This is a blanket statement that as hurtful as it is factually incorrect. Let me address the latter. 1. Dataclasses are entirely dependent on annotations *as described by the typing module*. While it would be entirely possible for users to pass an arbitrary expression as an annotation to denote it's a field of the dataclass, then it's confusing the reader of that code... what's the point? The fact that dataclasses isn't itself importing `typing` is an implementation detail of dataclasses. 2. The problem isn't even specific to `typing` but stringified type annotations in general. If the magic sentinel annotation came from the dataclasses module, it would be just as tricky to get it right as it is now when this sentinel lives in `typing`. 3. singledispatch now also allows registering functions that are type-annotated. In fact, that is a nicer API than the old one. That usage also imports `typing`. I don't see how this is a problem. > If it is really needed, I think we should only allow "typing.ClassVar". All > other prefixes seems ambiguous. I came up with "typing", "t", and straight "ClassVar" by grepping through typed codebases I work with. I agree that "t" is rather arbitrary so I'm totally fine with leaving that one out. ---------- assignee: eric.smith -> _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue33453> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com