STINNER Victor added the comment: > class MyByteStream(BytesIO): > def read1(self, len_): > return memoryview(super().read(len_)) > bs = MyByteStream(b'some data in ascii\n')
I guess that you are trying to implement a zero-copy I/O. The problem is that BytesIO does copy data. Example: >>> data=b'abcdef' >>> x=io.BytesIO(data) >>> x.read() is data False Before trying to avoid copies in the "buffered" layer, something should be done for the "raw" layer (BytesIO in this case). ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue21057> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com