[Python-Dev] RFC: PEP 460: Add bytes % args and bytes.format(args) to Python 3.5
Stephen J. Turnbull
stephen at xemacs.org
Sat Jan 11 19:44:39 CET 2014
M.-A. Lemburg writes:
> I complete agree with Stephen, that bytes are in fact often
> an encoding of text. If that text is ASCII compatible, I don't
> see any reason why we should not continue to expose the C lib
> standard string APIs available for text manipulations on bytes.
We already *have* a type in Python 3.3 that provides text
manipulations on arrays of 8-bit objects: str (per PEP 393).
> BTW: I don't know why so many people keep asking for use cases.
> Isn't it obvious that text data without known (but ASCII compatible)
> encoding or multiple different encodings in a single data chunk
> is part of life ?
Isn't it equally obvious that if you create or read all such ASCII-
compatible chunks as (encoding='ascii', errors='surrogateescape') that
you *don't need* string APIs for bytes?
Why do these "text chunks" need to be bytes in the first place?
That's why we ask for use cases. AFAICS, reading and writing ASCII-
compatible text data as 'latin1' is just as fast as bytes I/O. So
it's not I/O efficiency, and (since in this model we don't do any
en/decoding on bytes/str), it's not redundant en/decoding of bytes to
str and back.
More information about the Python-Dev