[Image-SIG] Proper application of the buffer interface
Fred L. Drake, Jr.
fdrake at acm.org
Fri Aug 6 16:17:38 CEST 1999
M.-A. Lemburg writes:
> Wait... what's so bad about buffer(struct.pack()) ? Strings already
> know the buffer interface, so this works just fine already.
I think the issue is that if strings ever change to Unicode, we
don't want non-character data to ever be exposed as a string. Using a
buffer takes care of this and works now, allowing preparations for
further integration of Unicode to be tested gradually, rather than
having a complete meltdown from a large cutover.
Functions which need to receive binary data will always use s#,
because s will raise TypeError if '\0' is in the string.
The other way around is done less consistently now. The S format
character might not raise an exception if '\0' is in the data, and may
standard functions and methods probably need to be adjusted to finish
up a Unicode integration, but I think using a buffer object for binary
data will only avoid problems, not create them.
Fred L. Drake, Jr. <fdrake at acm.org>
Corporation for National Research Initiatives
More information about the Python-list