Message369533
It would be nice (where possible) to support out-of-band pickling of builtin `bytes`-like types. This would allow binary data from these objects to be shipped along separately zero-copy and later reconstructed during unpickling.
It seems that `bytes`, `bytearray`, and `array` would be good candidates for this behavior. Not sure if `mmap` or `memoryview` would make sense as it might not be clear on how to reconstruct them during unpickling, but if someone sees a way those would be nice to support too.
To illustrate this a bit, here is the behavior with a `bytes` object today:
```
In [1]: import pickle
In [2]: b = b"abc"
In [3]: l = []
In [4]: p = pickle.dumps(b, protocol=5, buffer_callback=l.append)
In [5]: l
Out[5]: []
```
With this change, we would see this behavior instead:
```
In [1]: import pickle
In [2]: b = b"abc"
In [3]: l = []
In [4]: p = pickle.dumps(b, protocol=5, buffer_callback=l.append)
In [5]: l
Out[5]: [<pickle.PickleBuffer at 0x10efe7540>]
```
(This is my first Python bug submission. So apologies if I got turned around here. Please go easy on me :) |
|
Date |
User |
Action |
Args |
2020-05-21 19:25:54 | jakirkham | set | recipients:
+ jakirkham |
2020-05-21 19:25:54 | jakirkham | set | messageid: <1590089154.09.0.42583865069.issue40718@roundup.psfhosted.org> |
2020-05-21 19:25:54 | jakirkham | link | issue40718 messages |
2020-05-21 19:25:53 | jakirkham | create | |
|