Wow, excellent feedback. I've added your email to the list of reminders for the next round of edits.
Jim Jewett wrote: > 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/talin%40acm.org > _______________________________________________ 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