[Python-ideas] new format spec for iterable types

random832 at fastmail.us random832 at fastmail.us
Thu Sep 10 01:24:55 CEST 2015

On Wed, Sep 9, 2015, at 18:39, Andrew Barnert via Python-ideas wrote:
> I believe he posted a more detailed version of the idea on one of the
> other spinoff threads from the f-string thread, but I don't have a link.
> But there are lots of possibilities, and if you want to start
> bikeshedding, it doesn't matter that much what his original color was.
> For example, here's a complete proposal:
>     class MyJoiner:
>         def __init__(self, value):
>             self.value = value
>         def __format__(self, spec):
>             return spec.join(map(str, self.value))
>     string.register_converter('join', MyJoiner)

Er, I wanted it to be something more like

def __format__(self, spec):
   sep, fmt = # 'somehow' break up spec into two parts
   return sep.join(map(lambda x: x.__format__(fmt)))

And I wasn't the one who actually proposed user-registered converters;
I'm not sure who did. At one point in the f-string thread I suggested
using a _different_ special !word for stuff like a string that can be
inserted into HTML without quoting. I'm also not 100% sure how good an
idea it is (since it means either using global state or moving
formatting to a class instead of str).

The Joiner class wouldn't have to exist as a builtin, it could be
private to the format function.

More information about the Python-ideas mailing list