<p dir="ltr"><br>
On 18 Jan 2014 06:19, "Terry Reedy" <<a href="mailto:tjreedy@udel.edu">tjreedy@udel.edu</a>> wrote:<br>
><br>
> On 1/17/2014 10:15 AM, Mark Lawrence wrote:<br>
><br>
>> For both options 1 and 2 surely you cannot be suggesting that after<br>
>> people have written 2.x code to use format() as %f formatting is to be<br>
>> deprecated,<br>
><br>
><br>
> I will not be for at least a decade.</p>
<p dir="ltr">It will not be deprecated, period. Originally, we thought that the introduction of the new flexible text formatting system made printf-style formatting redundant.</p>
<p dir="ltr">After running both in parallel for a while, we learned we were wrong:</p>
<p dir="ltr">- it's far more difficult than we originally anticipated to migrate away from it to the new text formatting system<br>
- in particular, the lazy interpolation support in the logging module (and similar systems) has no reasonable migration path<br>
- two different core interpolation systems make it much easier to interpolate into format strings<br>
- it's a better fit for code which needs to semantically align with C<br>
- it's a useful micro-optimisation<br>
- as the current discussion shows, it's much better suited to the interpolation of ASCII compatible segments in binary data formats</p>
<p dir="ltr">Do many of the core devs strongly prefer the new formatting system? Yes. Were we originally planning to deprecate and remove the printf-style formatting system? Yes. Are there still any plans to do so? No. That's why we rewrote the relevant docs to always describe it as "mod formatting" or "printf-style formatting", rather than "legacy" or "old-style". If there are any instances (or even implications) of the latter left in the official docs, that's a bug to be fixed.</p>

<p dir="ltr">Perhaps this needs to be a new Q in my Python 3 Q&A, since a lot of people still seem to have the wrong idea...</p>
<p dir="ltr">Regards,<br>
Nick.</p>
<p dir="ltr">><br>
><br>
>> they now have to change the code back to the way they may<br>
>> well have written it in the first place?<br>
><br>
><br>
> I would suggest that people simply .encode the result if bytes are needed in 3.x as well as 2.x. Polyglot code will likely have a 'py3' boolean already to make the encoding conditional.<br>
><br>
> -- <br>
> Terry Jan Reedy<br>
><br>
><br>
> _______________________________________________<br>
> Python-Dev mailing list<br>
> <a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
> <a href="https://mail.python.org/mailman/listinfo/python-dev">https://mail.python.org/mailman/listinfo/python-dev</a><br>
> Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com">https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com</a><br>
</p>