On 8/11/21 12:02 AM, Thomas Grainger wrote:
I think as long as there's a test case for something like

```
@dataclass
class Node:
     global_node: ClassVar[Node | None]
     left: InitVar[Node | None]
     right: InitVar[None | None]
```

the bug https://bugs.python.org/issue33453 and the current implementation 
https://github.com/python/cpython/blob/bfc2d5a5c4550ab3a2fadeb9459b4bd948ff61a2/Lib/dataclasses.py#L658-L714
 shows this is a tricky problem


The most straightforward workaround for this is to skip the decorator syntax.  With PEP 649 active, this code should work:

   class Node:
        global_node: ClassVar[Node | None]
        left: InitVar[Node | None]
        right: InitVar[None | None]
   Node = dataclass(Node)


//arry/

_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/ZWTTKKIOVA7UYKX4SFWJ6DZ5X72Z2O4P/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to