fix(cli): handle argparse different behavior after python 3.9 #430
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.
Description
argparse raises TypeError when non exist command is provided on Python < 3.9
but raise SystemExit with exit code == 2 on Python 3.9
this error does not break anything obviously from the user perspective, but will break our existing test
#429
This issue is caused by https://bugs.python.org/issue29298. The new checking is the correct one, but we'll need to keep the old one for backward compatibility. This fix was first introduced on 3.9.7 👉 see argparse.py#L730-L731
Checklist
./script/format
and./script/test
locally to ensure this change passes linter check and testExpected behavior
detailed on #429
Steps to Test This Pull Request
detailed on #429
Additional context