[docs] [issue22049] argparse: type=<callable> doesn't honor nargs > 1
report at bugs.python.org
Tue Jul 29 21:53:26 CEST 2014
Chris Bruner added the comment:
Just had a chance to try this, and this does exactly what I wanted from
"type=". Thank you!
On Fri, Jul 25, 2014 at 4:17 PM, paul j3 <report at bugs.python.org> wrote:
> paul j3 added the comment:
> What you want is a custom Action rather than a custom Type.
> from the documentation:
> >>> class FooAction(argparse.Action):
> ... def __call__(self, parser, namespace, values,
> ... print('%r %r %r' % (namespace, values, option_string))
> ... setattr(namespace, self.dest, values)
> 'values' will be the list ['1','2','3'], which you test and manipulate,
> before finally saving it to the 'namespace'.
> ret = (int(values), int(values), float(values))
> setattr(namespace, self.dest, ret)
> Setting 'nargs=3' ensures that this action will always get a 3 item list.
> If the parser can't give it 3 items, it will raise an error rather than
> call your Action.
> 'optparse' passed the remaining argument strings to Option's callback,
> which could consume as many as it wanted. 'argparse' does not give the
> Actions that power. There is a fundamental difference in the parsing
> Python tracker <report at bugs.python.org>
Python tracker <report at bugs.python.org>
More information about the docs