> > Also, why do the conversion from bytearray to bytes? It is definitely not > always needed. > >>>> ba = bytearray(b'abc') >>>> b = b'def' >>>> ba + b > bytearray(b'abcdef') >>>> b'%s %s' % (ba, b) > b'abc def' >>>> b + ba > b'defabc' >>>> ba.extend(b) >>>> ba > bytearray(b'abcdef') > > Even if it is sometimes needed, why do it always? The essence of read_line > is to slice out a line, delete it from the buffer, and return the line. Let > the caller explicitly convert when needed. > > -- > Terry Jan Reedy >
Because it's public module API. While bytearray is mostly API compatible (passes duck typing), isinstance(b, bytes) is False when b is bytearray. So, I feel changing return type from bytes to bytearray is last option. I want to return bytes if possible. -- INADA Naoki <songofaca...@gmail.com> _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com