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

Reply via email to