msg111321 - (view) |
Author: Steven Bethard (bethard) *  |
Date: 2010-07-23 13:51 |
[From http://code.google.com/p/argparse/issues/detail?id=71] There is a method ArgumentParser.add_argument_group() to create and add an argument group to the parser. I would like the ability to remove an argument group via a method like remove_argument_group(group). The use case for me is I create an argument group and then conditionally add a bunch of arguments to it. If zero arguments are added I would like to then remove the group so that an empty group does not show up in the help output. |
|
|
msg221730 - (view) |
Author: paul j3 (paul.j3) *  |
Date: 2014-06-27 20:59 |
I wonder if this patch is needed. - there hasn't been discussion in 4 years - In Steven's use case, a group without any arguments, the group does not show up. A common example of an empty argument group, is a parser without any user defined arguments. p=argparse.ArgumentParser(prog='PROG') p.print_help() usage: PROG [-h] optional arguments: -h, --help show this help message and exit The empty 'positional arguments' group is not displayed. Removing a group that has arguments is more complicated (and error prone) since it requires removing those arguments as well. There is a '_remove_action' method. But as best I can tell it is only used by '_handle_conflict_resolve', a rarely used alternative conflict handler. |
|
|
msg227779 - (view) |
Author: paul j3 (paul.j3) *  |
Date: 2014-09-28 21:54 |
If the empty argument group has a 'description' it is displayed. For example with positionals group that I mentioned earlier: parser = argparse.ArgumentParser() parser._action_groups[0].description = 'test' parser.print_help() produces usage: ipython [-h] positional arguments: test optional arguments: -h, --help show this help message and exit So the user can fix this empty group display issue by setting this 'description' value to None. |
|
|
msg349920 - (view) |
Author: Hai Shi (shihai1991) *  |
Date: 2019-08-18 16:39 |
IMHO, if we supply the ability to add an argument group, we need add the ability to remove the argument group too. |
|
|
msg349921 - (view) |
Author: paul j3 (paul.j3) *  |
Date: 2019-08-18 17:33 |
hai shi Do you have a specific need for this, or do you want it just for the same of completeness? |
|
|
msg349929 - (view) |
Author: Raymond Hettinger (rhettinger) *  |
Date: 2019-08-19 00:47 |
> The use case for me is I create an argument group and > then conditionally add a bunch of arguments to it. > If zero arguments are added I would like to then remove > the group so that an empty group does not show up > in the help output. ISTM this use is likely rare enough that it doesn't warrant an API expansion. The argparse API is already somewhat large, so we should only expand it when there is a compelling benefit or the absence of a reasonable workaround (i.e. lazily adding a group only when the first argument is added). |
|
|
msg349932 - (view) |
Author: Hai Shi (shihai1991) *  |
Date: 2019-08-19 04:39 |
paul, raymond. Thanks for give me a quick answer:). Looks raymond's reason is good enough, i just only consider this question from api completeness(as paul said) not from user case. |
|
|
msg408542 - (view) |
Author: Irit Katriel (iritkatriel) *  |
Date: 2021-12-14 16:08 |
This is over a decade old and the discussion is mostly that it's not worth doing, so I suggest we close. |
|
|