Message392022
Here's a self-contained repro:
```
import pickle
class MyList(list):
def __init__(self, required, values):
self.required = required
super().__init__(values)
def __getstate__(self):
return self.required
def __setstate__(self, state):
self.required = state
def extend(self, values):
assert self.required
super().extend(values)
mylist = MyList('foo', [1, 2])
pickled = pickle.dumps(mylist)
unpickled = pickle.loads(pickled)
print(mylist)
```
The above will raise an AttributeError when self.required is accessed in extend().
Oddly, defining a `__reduce__()` function that simply calls and returns `super().__reduce__()` seems to restore the previous behavior and things work again. |
|
Date |
User |
Action |
Args |
2021-04-27 04:00:15 | richardlev | set | recipients:
+ richardlev, gregory.p.smith, serhiy.storchaka |
2021-04-27 04:00:15 | richardlev | set | messageid: <1619496015.26.0.401923173582.issue43946@roundup.psfhosted.org> |
2021-04-27 04:00:15 | richardlev | link | issue43946 messages |
2021-04-27 04:00:15 | richardlev | create | |
|