[Python-Dev] PEP 461 - Adding % and {} formatting to bytes

Ethan Furman ethan at stoneleaf.us
Tue Jan 14 22:07:57 CET 2014

On 01/14/2014 12:57 PM, Antoine Pitrou wrote:
> On Tue, 14 Jan 2014 11:56:25 -0800
> Ethan Furman <ethan at stoneleaf.us> wrote:
>> %s, because it is the most general, has the most convoluted resolution:
>>     - input type is bytes?
>>       pass it straight through
> It should try to get a Py_buffer instead.

Meaning any bytes or bytes-subtype will support the Py_buffer protocol, and this should be the first thing we try?

Sounds good.

For that matter, should the first test be "does this object support Py_buffer" and not worry about it being 
isinstance(obj, bytes)?

>>     - input type is numeric?
>>       use its __xxx__ [1] [2] method and ascii-encode it (strictly)
> What is the definition of "numeric"?

That is a key question.

Obviously we have int, float, and complex.  We also have Decimal.

But what about Fraction?  Or some users numeric class that doesn't inherit from a core numeric type?  Wherever we draw 
the line, we need to make it's well-documented.


More information about the Python-Dev mailing list