On Wed, Oct 12, 2016 at 2:32 PM, Serhiy Storchaka
On 12.10.16 07:08, INADA Naoki wrote:
Sample code:
def read_line(buf: bytearray) -> bytes: try: n = buf.index(b'\r\n') except ValueError: return b''
line = bytes(buf)[:n] # bytearray -> bytes -> bytes
Wouldn't be more correct to write this as bytes(buf[:n])?
Yes, you're right! I shouldn't copy whole data only for cast from bytearray to byte.
Adding one more constructor to bytes:
# when length=-1 (default), use until end of *byteslike*. bytes.frombuffer(byteslike, length=-1, offset=0)
This interface looks unusual. Would not be better to support the interface of buffer in Python 2: buffer(object [, offset[, size]])?
It looks better.
(Actually speaking, I love deprecated old buffer for simplicity.
memoryview supports non bytes-like complex data types.)
Thanks,
--
INADA Naoki