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

At least until these latest deprecations, the only nesting that made sense was 
to put a mutually_exclusive_group inside an argument_group.  This was a way of 
providing a title and description for the exclusive_group.  (And not 
documented.)  I don't know if that's still possible.

'required' only makes sense for the exclusive_group.  I don't know what happens 
when one tries to give it to an argument_group.  If it doesn't raise an error, 
I expect it to be ignored.

argument_groups are only used for help formatting; they have no role in 
parsing.  exclusive_groups are primarily a parsing checking tool.  Usage 
formatting tries to display exclusive groups, but is easily broken. 
 
While mutually_exclusive_group is a subclass of argument_group (and that in 
turn a subclass of argument_container), very little usage or behavior is 
inherited.  Don't expect any consistency.

A key point, that is easily lost, is that all groups share the _actions list 
with the parser.  When an argument is added a group (either kind), it is, in 
effect, added to the parser's _actions list.  So when parsing, there's only one 
list of Actions.  

A group will also keep the Action in its own _group_actions list, which is used 
for formatting or for exclusive checking.  But otherwise the _group_actions 
list not used for parsing.

Another point, is that there are 2 default argument_groups.  Thus every Action 
is in an _group_actions list.  If an exclusive_group is not nested in an 
argument_group, its Actions will be added to one of the defaults (optionals or 
positionals).

----------
nosy: +paul.j3

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

Reply via email to