On Oct 3, 2009, at 11:41 AM, Steven Bethard wrote:
I thought it might be useful for those who don't have time to read a million posts to have a summary of what's happened in the formatting discussion.
The basic problem is that many APIs in the standard library and elsewhere support only %-formatting and not {}-formatting, e.g. logging.Formatter accepts:: logging.Formatter(fmt="%(asctime)s - %(name)s") but not:: logging.Formatter(fmt="{asctime} - {name}")
I'd like to at least keep in mind $-strings. I don't have any experience with {}-strings w.r.t. i18n translators, but I'm very confident that $-strings are better for translators than %-strings. OT1H {}-strings don't suffer from the #1 problem of %-strings: leaving off the trailing 's' or whatever. OTOH, I suspect that $-strings are still easier for the simple substitution case; for example, it's conceivable that translators may forget the trailing close brace. Since we're likely to have multiple formatting styles at least for Python 3's lifetime, I'd like any solution we come up with to at least not preclude the use of $-strings. I also don't think this is a case of anti-TOOWTDI. For most situations {}-strings are great (IMO), but in the specific translation domain, I suspect $-strings are still better. -Barry