paul j3 <ajipa...@gmail.com> added the comment:

In a recent stackoverflow question a user wanted this optional-subparsers 
ability in Python 2.7.

https://stackoverflow.com/questions/46667843/how-to-set-a-default-subparser-using-argparse-module-with-python-2-7

Short of modifying the _parse_known_args method, the best I could suggest was a 
two stage parsing.  That is, one parser without the subparsers.  This uses 
parse_known_args, and if a 'cmd' is provided passes the 'extras' to one that 
handles subparsers.

---

Another issue which I don't think has been addressed is the 'usage' when 
subparsers are optional.  At least with 3.5, subparsers are displayed with the 
choices: {'cmd1', 'cmd2', ...}, but no indication of being optional.  An 
optional positional (with ? nargs) would normally be displayed as

     prog [-h] [{'one', 'two'}] ...

My guess is that 'usage' adds the [] when positionals nargs='?', without regard 
to the 'required' attribute (I should verify this from code).

I'm undecided as to whether we want the brackets or not.  It's more accurate, 
but makes the usage messier.  And the 'help' grouping for 
'optional-positionals' is the subject of other bug/issue(s).

I haven't checked it the patch has changed this behavior.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue9253>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to