bpo-33109: argparse subparsers are once again not required by default… · python/cpython@dd7a255 (original) (raw)

5 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -1577,7 +1577,7 @@ Sub-commands
1577 1577 stored; by default ``None`` and no value is stored
1578 1578
1579 1579 * required_ - Whether or not a subcommand must be provided, by default
1580 - ``True``.
1580 + ``False``.
1581 1581
1582 1582 * help_ - help for sub-parser group in help output, by default ``None``
1583 1583
Original file line number Diff line number Diff line change
@@ -1077,7 +1077,7 @@ def __init__(self,
1077 1077 prog,
1078 1078 parser_class,
1079 1079 dest=SUPPRESS,
1080 -required=True,
1080 +required=False,
1081 1081 help=None,
1082 1082 metavar=None):
1083 1083
Original file line number Diff line number Diff line change
@@ -1932,7 +1932,9 @@ def test_required_subparsers_default(self):
1932 1932 parser = ErrorRaisingArgumentParser()
1933 1933 subparsers = parser.add_subparsers(dest='command')
1934 1934 subparsers.add_parser('run')
1935 -self._test_required_subparsers(parser)
1935 +# No error here
1936 +ret = parser.parse_args(())
1937 +self.assertIsNone(ret.command)
1936 1938
1937 1939 def test_optional_subparsers(self):
1938 1940 parser = ErrorRaisingArgumentParser()
Original file line number Diff line number Diff line change
@@ -477,6 +477,8 @@ module now requires sqlite version at least 3.3.9.
477 477 argparse subparsers are now required by default. This matches behaviour in
478 478 Python 2. For optional subparsers, use the new parameter
479 479 ``add_subparsers(required=False)``. Patch by Anthony Sottile.
480 +(As of 3.7.0rc1, the default was changed to not required as had been the case
481 +since Python 3.3.)
480 482
481 483 ..
482 484
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1 +argparse subparsers are once again not required by default, reverting the
2 +change in behavior introduced by bpo-26510 in 3.7.0a2.