[Python-Dev] PEP 461 - Adding % and {} formatting to bytes (original) (raw)
Nick Coghlan ncoghlan at gmail.com
Tue Jan 14 23:17:31 CET 2014
- Previous message: [Python-Dev] PEP 461 - Adding % and {} formatting to bytes
- Next message: [Python-Dev] PEP 461 - Adding % and {} formatting to bytes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 15 Jan 2014 07:36, "Ethan Furman" <ethan at stoneleaf.us> wrote:
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 Pybuffer instead. Meaning any bytes or bytes-subtype will support the Pybuffer 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)?
Yep. I actually suggest adjusting the %s handling to:
- interpolate Py_buffer exporters directly
- interpolate bytes if defined
- reject anything with an "encode" method
- otherwise interpolate str(obj).encode("ascii")
- 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.
As suggested above, I would flip the question and explicitly disallow implicit encoding of any object with its own "encode" method, while allowing everything else.
Cheers, Nick.
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. --
Ethan
Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20140115/4615556c/attachment.html>
- Previous message: [Python-Dev] PEP 461 - Adding % and {} formatting to bytes
- Next message: [Python-Dev] PEP 461 - Adding % and {} formatting to bytes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]