On Sun, Oct 05, 2014 at 11:32:08PM +0200, Victor Stinner wrote: > I'm not sure that the term has an unique definition. In some parts of > Python, I saw explicit checks on the type: bytes or bytearray, > sometimes memoryview is accepted. The behaviour is different in C > functions using PyArg API. It probably depends if the function relies > on the content (read bytes) or on methods (ex: call .find).
Buffers aren't "bytes like" in that many of them aren't immutable, even when the buffer object itself is hashable. An example of this is the buffer exposed by mmap.mmap() with MAP_SHARED. This came up during the StringIO optimization changes a few months back, it seems some oversight in the original design that got carried through to Python 3. If we're approaching the topic of defining bytes-like things with improved rigor, it might be worth discussing. Making bytes-like objects an explicit thing in the language feels like solidifying what is mostly a CPython implementation detail. For example, at least until recently, PyPy emulated buffers in ways that often made them much slower to use than regular bytes. Another aspect is that the ability to twiddle bits derived from a buffer mostly implies that the code you are calling is going to always be written in C, or its future implementation will remain sufficiently restricted as to always accept buffers (perhaps by first copying them to bytes -- exactly what PyPy did until recently). +1 on improving the notion of bytes-like things in Python, but not necessarily by concretizing the existing interface. David > > Victor > > _______________________________________________ > 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/dw%2Bpython-dev%40hmmz.org _______________________________________________ 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