Martin Panter added the comment: I realize there is another problem, and doing tricks with a bytes object won’t help that. BufferedWriter bypasses its own buffer for large writes:
>>> writer = BufferedWriter(Raw()) >>> large = bytearray(10000) >>> writer.write(large) 10000 >>> written.tobytes()[:10] b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' >>> large[:5] = b"blaua" >>> written.tobytes()[:10] b'blaua\x00\x00\x00\x00\x00' BufferedWriter is passing a view of the original input through, without any copying. Perhaps the simplest thing is to warn and prevent the user from accessing the buffer after write() returns. I suggested some imperfect ideas in Issue 15994. Maybe I should just close this as a duplicate. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue26720> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com