Fixed #27799 -- Only add 'args' argument once to command parser. #8002
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If a custom management LabelCommand or AppCommand uses 'args' then only
the last positional argument provided is passed to the command, because
argparse's behaviour when two calls to add_argument with the same name
is undefined (it appears to put all the arguments bar one in the first
'*' argument, then the last one in the '+' argument).
This shows this with a test, and fixes it by not making the first call
to parser.add_argument('args') if it's a LabelCommand or AppCommand.