diff options
-rw-r--r-- | Doc/library/argparse.rst | 2 | ||||
-rw-r--r-- | Lib/argparse.py | 2 | ||||
-rw-r--r-- | Lib/test/test_argparse.py | 4 | ||||
-rw-r--r-- | Misc/NEWS.d/3.7.0a2.rst | 2 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2018-05-16-14-57-58.bpo-33109.nPLL_S.rst | 2 |
5 files changed, 9 insertions, 3 deletions
diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index 3f327c0cfa7..260e5cbf700 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -1577,7 +1577,7 @@ Sub-commands stored; by default ``None`` and no value is stored * required_ - Whether or not a subcommand must be provided, by default - ``True``. + ``False``. * help_ - help for sub-parser group in help output, by default ``None`` diff --git a/Lib/argparse.py b/Lib/argparse.py index e3da7f0443c..e0e367bf20c 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -1077,7 +1077,7 @@ class _SubParsersAction(Action): prog, parser_class, dest=SUPPRESS, - required=True, + required=False, help=None, metavar=None): diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index c4440e4df7c..bcf15ce123e 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -1932,7 +1932,9 @@ class TestAddSubparsers(TestCase): parser = ErrorRaisingArgumentParser() subparsers = parser.add_subparsers(dest='command') subparsers.add_parser('run') - self._test_required_subparsers(parser) + # No error here + ret = parser.parse_args(()) + self.assertIsNone(ret.command) def test_optional_subparsers(self): parser = ErrorRaisingArgumentParser() diff --git a/Misc/NEWS.d/3.7.0a2.rst b/Misc/NEWS.d/3.7.0a2.rst index 190038d5dd1..621de6d78a7 100644 --- a/Misc/NEWS.d/3.7.0a2.rst +++ b/Misc/NEWS.d/3.7.0a2.rst @@ -477,6 +477,8 @@ module now requires sqlite version at least 3.3.9. argparse subparsers are now required by default. This matches behaviour in Python 2. For optional subparsers, use the new parameter ``add_subparsers(required=False)``. Patch by Anthony Sottile. +(As of 3.7.0rc1, the default was changed to not required as had been the case +since Python 3.3.) .. diff --git a/Misc/NEWS.d/next/Library/2018-05-16-14-57-58.bpo-33109.nPLL_S.rst b/Misc/NEWS.d/next/Library/2018-05-16-14-57-58.bpo-33109.nPLL_S.rst new file mode 100644 index 00000000000..be731f99f7f --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-05-16-14-57-58.bpo-33109.nPLL_S.rst @@ -0,0 +1,2 @@ +argparse subparsers are once again not required by default, reverting the +change in behavior introduced by bpo-26510 in 3.7.0a2. |