[3.12] gh-61011: Fix inheritance of nested mutually exclusive groups in argparse (GH-125210) (GH-125309)

Previously, all nested mutually exclusive groups lost their connection
to the group containing them and were displayed as belonging directly
to the parser.

(cherry picked from commit 18c7449768)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Danica J. Sutherland <djsutherland@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2024-10-11 11:07:03 +02:00 committed by GitHub
parent 4c40381023
commit 23cefd9f4c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 39 additions and 1 deletions

View file

@ -1564,7 +1564,11 @@ class _ActionsContainer(object):
# NOTE: if add_mutually_exclusive_group ever gains title= and
# description= then this code will need to be expanded as above
for group in container._mutually_exclusive_groups:
mutex_group = self.add_mutually_exclusive_group(
if group._container is container:
cont = self
else:
cont = title_group_map[group._container.title]
mutex_group = cont.add_mutually_exclusive_group(
required=group.required)
# map the actions to their new mutex group