On 8 Mar 2010, at 16:53 , David Stanek wrote: > > On Mon, Mar 8, 2010 at 10:40 AM, Steven Bethard > <steven.beth...@gmail.com> wrote: >> >> In argparse, unlike optparse, actions are actually defined by objects >> with a particular API, and the string is just a shorthand for >> referring to that. So: >> >> parser.add_argument ('--plot', action='store_true') >> >> is equivalent to: >> >> parser.add_argument('--plot', argparse._StoreTrueAction) >> >> Because the names are so long and you'd have to import them, I've left >> them as private attributes of the module, but if there's really >> demand, we could rename them to argparse.StoreTrueAction, etc. >> > > Any reason not to do something like: > > from argparse import actions > ... > parser.add_argument('--plot', actions.store_true) > > Basically a small namespace for the constants.
action is taken from **kwargs, not from a positional argument as *args is a sequence of option strings (so you can write add_argument('-p', '/p', '--plot', '--land-mass')). So you'd have to write add_argument('--plot', action=actions.store_true) which is straight from the department of redundant redundancies. An option would be parser.add(actions.StoreTrue('--plot')) but I'm not sure this makes any sense API-wise, and it would probably make the code a lot messier as the parser would have to reach into the action to get the information it needs. Either that, or the action would be an *arg and argparse would have to walk all of its *args type-testing each one to find if there's an action anywhere. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com