New submission from Sigurd Ljødal :
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 "", line 1, in
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
<https://bugs.python.org/issue33796>
___
___
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com