aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--Doc/library/argparse.rst2
-rw-r--r--Lib/argparse.py2
-rw-r--r--Lib/test/test_argparse.py4
-rw-r--r--Misc/NEWS.d/3.7.0a2.rst2
-rw-r--r--Misc/NEWS.d/next/Library/2018-05-16-14-57-58.bpo-33109.nPLL_S.rst2
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.