New submission from jakirkham <jakirk...@gmail.com>:
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 :) ---------- messages: 369533 nosy: jakirkham priority: normal severity: normal status: open title: Support out-of-band pickling for builtin types type: performance versions: Python 3.8, Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue40718> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com