Serhiy Storchaka added the comment:

Count me as -1 too.

This is just a two-liner:

    with memoryview(bytelike) as m:
        bs = bytes(m[start:end])

In most cases, when all content is used, the bytes constructor works fine.

    bs = bytes(bytelike)

This works not just with bytes, but with bytearray and most other bytes-like 
arrays. With frombuffer() you need to add a new class method to all these 
classes.

Adding new method to builtin type has high bar. I doubts that there are enough 
use cases in which bytes.frombuffer() has an advantage.

The signature of bytes.frombuffer() looks questionable. Why length and offset 
instead of start and stop indices as in slices? Why length is first and offset 
is last? This contradicts the interface of Python 2 buffer(), 
socket.sendfile(), os.sendfile(), etc.

There is also a problem with returned type for subclasses (this is always a 
problem for alternate constructors). Should B.frombuffer() where B is a bytes 
subclass return an instance of bytes or B? If it always returns a bytes object, 
we need to use a constructor for subclasses, if it returns an instance of a 
subclass, how can it be implemented efficiently?

----------
nosy: +serhiy.storchaka

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

Reply via email to