[Python-Dev] PEP 461: Adding % formatting to bytes and bytearray -- Final, Take 2

Nick Coghlan ncoghlan at gmail.com
Sun Feb 23 07:31:33 CET 2014

On 23 February 2014 13:47, Cameron Simpson <cs at zip.com.au> wrote:
> On 22Feb2014 17:56, Ethan Furman <ethan at stoneleaf.us> wrote:
>> Please let me know if anything else needs tweaking.
>> [...]
>> This area of programming is characterized by a mixture of binary data and
>> ASCII compatible segments of text (aka ASCII-encoded text).
>> [...]
>> %-interpolation
>> All the numeric formatting codes (such as ``%x``, ``%o``, ``%e``, ``%f``,
>> ``%g``, etc.) will be supported, and will work as they do for str, including
>> the padding, justification and other related modifiers.
> I would like a single sentence here clarifying that the formatting
> of numeric values uses an ASCII encoding.
> It might be inferred from the earlier context, but I do not think
> it can be deduced and therefore I think it should be said outright.
> All the other formatting codes are quite explicit about how their
> arguments transform into bytes, but the numeric codes just quietly
> assume ASCII. The PEP should be blatant.

Specifically, I believe the PEP should state that, for the numeric codes:

    b"%x" % val

is equivalent to:

    b"%s" % (("%x" % val).encode("ascii"))

The rationale for including them is the unreadability of the latter form :)


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list