Serhiy Storchaka added the comment:

There is also a problem with deepcopying:

>>> class MemReader:
...     def __init__(self, data):
...         self.buf = memoryview(data).cast('B')
...     def read(self, size=-1):
...         if size < 0:
...             size = len(self.buf)
...         res = bytes(self.buf[:size])
...         self.buf = self.buf[size:]
...         return res
...     def close():
...         pass
...     def __deepcopy__(self, memo):
...         return MemReader(self.buf)
...     def __reduce__(self):
...         return MemReader, (bytes(self.buf),)
... 
>>> import codecs, copy
>>> s1 = codecs.getreader('utf-8')(MemReader(b'abcd'))
>>> s2 = copy.deepcopy(s1)
>>> s1.read()
'abcd'
>>> s2.read()
b'abcd'
>>> s2
<__main__.MemReader object at 0xb701988c>

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue6395>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to