paul j3 added the comment: Another situation in which this MultiGroupHelpFormatter helps is when one or more of the groups includes an optional positional.
The regular formatter moves all the positionals to the end, after the optionals. This move could easily break up a mutually exclusive group, and make formatting it impossible. But the MultiGroupHelpFormatter gives the group order priority. Thus for example: p=argparse.ArgumentParser() # (formatter_class=argparse.MultiGroupHelpFormatter) g=p.add_mutually_exclusive_group() g.add_argument('-f') g.add_argument('foo',nargs='?') g=p.add_mutually_exclusive_group() g.add_argument('-b') g.add_argument('-c') g.add_argument('bar',nargs='*',default='X') print(p.format_usage()) produces (positionals at end, no group markings) usage: PROG [-h] [-f F] [-b B] [-c C] [foo] [bar [bar ...]] But the MultiGroupHelpFormatter produces: usage: PROG [-h] [-f F | foo] [-b B | -c C | bar [bar ...]] In this last case, the positionals are listed with their respective groups, and the groups are ordered by the relative ordering of the positionals. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue10984> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com