diff --git a/Lib/argparse.py b/Lib/argparse.py index c46bb302711fc5c..b9c22051f69d75a 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -848,6 +848,7 @@ def _get_kwargs(self): 'default', 'type', 'choices', + 'required', 'help', 'metavar', ] diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index dcc392faf231093..2d1cec13c22f3da 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -4873,12 +4873,13 @@ def test_optional(self): nargs='+', default=42, choices=[1, 2, 3], + required=False, help='HELP', metavar='METAVAR') string = ( "Action(option_strings=['--foo', '-a', '-b'], dest='b', " "nargs='+', const=None, default=42, type='int', " - "choices=[1, 2, 3], help='HELP', metavar='METAVAR')") + "choices=[1, 2, 3], required=False, help='HELP', metavar='METAVAR')") self.assertStringEqual(option, string) def test_argument(self): @@ -4889,12 +4890,13 @@ def test_argument(self): nargs='?', default=2.5, choices=[0.5, 1.5, 2.5], + required=True, help='H HH H', metavar='MV MV MV') string = ( "Action(option_strings=[], dest='x', nargs='?', " "const=None, default=2.5, type=%r, choices=[0.5, 1.5, 2.5], " - "help='H HH H', metavar='MV MV MV')" % float) + "required=True, help='H HH H', metavar='MV MV MV')" % float) self.assertStringEqual(argument, string) def test_namespace(self): diff --git a/Misc/NEWS.d/next/Library/2022-04-23-03-24-00.gh-issue-91832.TyLi65.rst b/Misc/NEWS.d/next/Library/2022-04-23-03-24-00.gh-issue-91832.TyLi65.rst new file mode 100644 index 000000000000000..0ebf77354655867 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-23-03-24-00.gh-issue-91832.TyLi65.rst @@ -0,0 +1 @@ +Add ``required`` attribute to :class:`argparse.Action` repr output.