[New-bugs-announce] [issue33796] dataclasses.replace broken with class variables

Sigurd Ljødal report at bugs.python.org
Thu Jun 7 10:34:49 EDT 2018


New submission from Sigurd Ljødal <sigurd+python at 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 <report at bugs.python.org>
<https://bugs.python.org/issue33796>
_______________________________________


More information about the New-bugs-announce mailing list