Re: RFC: PEP 460: Add bytes % args and
bytes.format(args) to Python 3.5
[Posted January 22, 2014 by jake]
From: |
| Ethan Furman <ethan-AT-stoneleaf.us> |
To: |
| python-dev-AT-python.org |
Subject: |
| Re: RFC: PEP 460: Add bytes % args and bytes.format(args) to Python 3.5 |
Date: |
| Fri, 10 Jan 2014 16:23:53 -0800 |
Message-ID: |
| <52D08F19.9070605@stoneleaf.us> |
Archive‑link: | |
Article |
On 01/08/2014 02:42 PM, Antoine Pitrou wrote:
>
> With Victor's consent, I overhauled PEP 460 and made the feature set
> more restricted and consistent with the bytes/str separation.
From the PEP:
=============
> Python 3 generally mandates that text be stored and manipulated as
> unicode (i.e. str objects, not bytes). In some cases, though, it
> makes sense to manipulate bytes objects directly. Typical usage is
> binary network protocols, where you can want to interpolate and
> assemble several bytes object (some of them literals, some of them
> compute) to produce complete protocol messages. For example,
> protocols such as HTTP or SIP have headers with ASCII names and
> opaque "textual" values using a varying and/or sometimes ill-defined
> encoding. Moreover, those headers can be followed by a binary
> body... which can be chunked and decorated with ASCII headers and
> trailers!
As it stands now, the PEP talks about ASCII, about how it makes sense sometimes to work directly
with bytes objects, and
then refuses to allow % to embed ASCII text in the byte stream.
> All other features present in formatting of str objects (either
> through the percent operator or the str.format() method) are
> unsupported. Those features imply treating the recipient of the
> operator or method as text, which goes counter to the text / bytes
> separation (for example, accepting %d as a format code would imply
> that the bytes object really is a ASCII-compatible text string).
No, it implies that portion of the byte stream is ASCII compatible. And we have several examples:
PDF, HTML, DBF, just
about every network protocol (not counting M$), and, I'm sure, plenty I haven't heard of.
-1 on the PEP as it stands now.
--
~Ethan~