[Python-ideas] Added a function to parse str.format() mini-language specifiers

Eric Smith eric at trueblade.com
Mon Mar 16 21:31:20 CET 2009


Terry Reedy wrote:
> Eric Smith wrote:
>> I'd like to add a function (or method) to parse str.format()'s 
>> standard mini-language format specifiers. It's hard to get right, and 
>> if PEP 378 is accepted, it gets more complex.
...
>> So, is such a function desirable, and if so,
> 
> Yes, but I would take it further and and consider the string and 
> dict/named-tuple as alternate interfaces to the formatting machinery. So 
> I would

If the only use case for this is for non-builtin numeric types, I'd vote 
for a named tuple. But since Mark (who's one of the primary users) also 
raised the dict issue, I'll give it some thought.

> a) add an inverse function that would take a dict or named tuple and 
> produce the field specifier as a string (or raise ValueError).  Such a 
> string could be embedded into a complete format string.  Some people 
> might prefer this specification method.

This is a pretty simple transformation. I'm not so sure it's all that 
useful.

> b> amend built-in format() to take a dict/n-t as the second argument on 
> the basis that it is silly to transform the parse result back into a 
> string just to be parsed again.  This would make repeated calls to 
> format faster by eliminating the parsing step.

But format() works for any type, including ones that don't understand 
the standard mini-language. What would they do with this info?





More information about the Python-ideas mailing list