Eric Smith wrote: > Eric Smith wrote: >> Talin wrote: >>> A new version is up, incorporating material from the various discussions >>> on this list: >>> >>> http://www.python.org/dev/peps/pep-3101/ >> self.assertEquals('{0[{1}]}'.format('abcdefg', 4), 'e') >> self.assertEquals('{foo[{bar}]}'.format(foo='abcdefg', bar=4), 'e') > > I've been re-reading the PEP, in an effort to make sure everything is > working. I realized that these tests should not pass. The PEP says > that "Format specifiers can themselves contain replacement fields". The > tests above have replacement fields in the field name, which is not > allowed. I'm going to remove this functionality. > > I believe the intent is to support a replacement for: > "%.*s" % (4, 'how now brown cow') > > Which would be: > "{0:.{1}}".format('how now brown cow', 4) > > For this, there's no need for replacement on field name. I've taken it > out of the code, and made these tests in to errors. > > Eric.
I think it should work myself, but it could be added back in later if there is a need to. I'm still concerned about the choice of {{ and }} as escaped brackets. What does the following do? "{0:{{^{1}}".format('Python', '12') "{{{{Python}}}}" "{{{0:{{^{1}}}}".format('Python', '12') "{{{{{Python}}}}}" class ShowSpec(str): def __format__(self, spec): return spec ShowSpec("{0:{{{1}}}}").format('abc', 'xyz') "{{xyz}}" "{0}".format('{value:{{^{width}}', width='10', value='Python') "{{Python}}" _RON _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com