Message224240
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@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,
> option_string=None):
> ... 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[0]), int(values[1]), float(values[2]))
> 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
> algorithm.
>
> ----------
>
> _______________________________________
> Python tracker <report@bugs.python.org>
> <http://bugs.python.org/issue22049>
> _______________________________________
> |
|
Date |
User |
Action |
Args |
2014-07-29 19:53:26 | Chris.Bruner | set | recipients:
+ Chris.Bruner, r.david.murray, docs@python, paul.j3 |
2014-07-29 19:53:26 | Chris.Bruner | link | issue22049 messages |
2014-07-29 19:53:26 | Chris.Bruner | create | |
|