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 <rep...@bugs.python.org>
<http://bugs.python.org/issue22049>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to