New submission from Sigurd Ljødal <sigurd+pyt...@ljodal.no>: The dataclasses.replace function does not work for classes that have class variables. See the console output below for an example.
$ python Python 3.7.0b5+ (heads/3.7:3c417610ad, Jun 7 2018, 16:21:29) [Clang 9.1.0 (clang-902.0.39.2)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import typing >>> import dataclasses >>> @dataclasses.dataclass(frozen=True) ... class Test: ... a: int ... class_var: typing.ClassVar[str] = 'foo' ... >>> obj = Test(a=1) >>> dataclasses.replace(obj, a=2) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/sigurdljodal/.pyenv/versions/3.7-dev/lib/python3.7/dataclasses.py", line 1179, in replace return obj.__class__(**changes) TypeError: __init__() got an unexpected keyword argument 'class_var' ---------- messages: 318942 nosy: sigurd priority: normal severity: normal status: open title: dataclasses.replace broken with class variables versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue33796> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com