On 2017-01-05 7:11 PM, INADA Naoki wrote:
bytes.frombuffer(x) is bytes(memoryview(x)) or memoryview(x).tobytes().
There is pitfall: memoryview should be closed.
So b = bytes.frombuffer(x) is:
with memoryview(x) as m:
b = bytes(m)
# or b = m.tobytes()
Thinking more about this, and after looking at my own code in asyncpg
and uvloop, I'm now in favor of adding bytes.frombuffer() with the
proposed signature: ``bytes.frombuffer(byteslike, length=-1, offset=0)``
Inada-san is right, the memoryview should be explicitly released, but
few do that. Instead, a lot of people simply rely on CPython refcounting
semantics, which will cause the temporary memoryview be GCed asap. That
won't work so flawlessly in PyPy and will cause hard to understand bugs.
Yury
_______________________________________________
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