The PEP says: The general form of a standard format specifier is:
[[fill]align][sign][width][.precision][type] but then says: A zero fill character without an alignment flag implies an alignment type of '='. In the above form, how can you get a fill character without an alignment character? And why would you want to support it; It just makes the width look like an (old-style) octal. (The spec already says that you need the alignment if you use a digit other than zero.) -------------- The explicit conversion flag is limited to "r" and "s", but I assume that can be overridden in a Formatter subclass. That possibility might be worth mentioning explicitly. -------------- 'check_unused_args' is used to implement checking for unused arguments ... The intersection of these two sets will be the set of unused args. Huh? I *think* the actual intent is (args union kwargs)-used. I can't find an intersection in there. ----------------- This can easily be done by overriding get_named() as follows: I assume that should be get_value. class NamespaceFormatter(Formatter): def __init__(self, namespace={}, flags=0): Formatter.__init__(self, flags) but the Formatter class took no init parameters -- should flags be added to the Formatter constructor, or taken out of here? The get_value override can be expressed more simply as def get_value(self, key, args, kwds): try: # simplify even more by assuming PEP 3135? super(NamespaceFormatter, self).get_value(key, args, kwds) except KeyError: return self.namespace[name] The example usage then takes globals()... fmt = NamespaceFormatter(globals()) greeting = "hello" print(fmt("{greeting}, world!")) Is there now a promise that the objects returned by locals() and globals() will be "live", so that they would reflect the new value of "greeting", even though it was set after the Formatter was created? -jJ _______________________________________________ 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