[Python-Dev] The buffer() function
Thomas Heller
theller at python.net
Thu Jul 13 18:52:33 CEST 2006
I just answered a question on comp.lang.python for someone
who was asking about how to convert the internal buffer of
a ctypes instance into base64 coding, without too much copying:
"The conversion calls in the base64 module expect strings as input, so
right now I'm converting the binary blocks to strings first, then
converting the resulting string to base64. This seems highly
inefficient and I'd like to just go straight from binary to a base64
string."
Naturally I tried to call base64.encodestring(buffer(ctypes_instance))
and it worked, so that was my answer.
As it turns out the guy (unusal!) tried to look up information
about the buffer function in the documentation. What he found
is this:
"Python programmers, trainers, students and bookwriters should feel
free to bypass these functions without concerns about missing something
important".
Not an encouragement to use this function. So, what is the real state
of the buffer() function, and the buffer object?
IIUC, the buffer object was broken some time ago, but I think it has
been fixed. Can the 'status' of the buffer function be changed?
To quote the next question from the OP:
"Is buffer safe to use? Is there an alternative?"
My thinking is that it *is* safe to use, and that there is
no alternative (but imo also no alternative is needed).
Thanks,
Thomas
More information about the Python-Dev
mailing list