Files
openide/python/testData/inspections/PyDataclassInspection/mutatingFrozenAttrs.py
Mikhail Golubev 84c48c48a9 PY-47532 Support new API and namespace of "attrs" package
GitOrigin-RevId: a8a0f909b21cc9f3b95a7b823452599374a943a9
2022-08-18 16:13:12 +00:00

60 lines
1.1 KiB
Python

import attr
import attrs
@attr.s(auto_attribs=True)
class B1:
x: int
y: str
z: float = 0.0
B1.x = 5
b1 = B1(1, "2")
b1.x = 2
b1.y = "3"
b1.z = 1.0
del b1.x
del b1.y
del b1.z
@attr.s(frozen=False, auto_attribs=True)
class B2:
x: int
y: str
z: float = 0.0
B2.x = 5
b2 = B2(1, "2")
b2.x = 2
b2.y = "3"
b2.z = 1.0
del b2.x
del b2.y
del b2.z
@attr.s(frozen=True, auto_attribs=True)
class B3:
x: int
y: str
z: float = 0.0
B3.x = 5
b3 = B3(1, "2")
<error descr="'B3' object attribute 'x' is read-only">b3.x</error> = 2
<error descr="'B3' object attribute 'y' is read-only">b3.y</error> = "3"
<error descr="'B3' object attribute 'z' is read-only">b3.z</error> = 1.0
del <error descr="'B3' object attribute 'x' is read-only">b3.x</error>
del <error descr="'B3' object attribute 'y' is read-only">b3.y</error>
del <error descr="'B3' object attribute 'z' is read-only">b3.z</error>
@attrs.frozen
class B4:
x: int
y: str
b4 = B4(1, "2")
<error descr="'B4' object attribute 'x' is read-only">b4.x</error> = 2
del <error descr="'B4' object attribute 'x' is read-only">b4.x</error>