From: Eli Bendersky Date: Fri, 6 Sep 2013 13:49:15 +0000 (-0700) Subject: Issue #18920: argparse's default version action (for -v, --version) should X-Git-Tag: v3.4.0a2~13 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cdac5516750e3b80b846e0e156e496dd92be9b56;p=thirdparty%2FPython%2Fcpython.git Issue #18920: argparse's default version action (for -v, --version) should output to stdout, matching the 'python -v' Reported by Wolfgang Maier --- diff --git a/Lib/argparse.py b/Lib/argparse.py index 5ff755c84ab2..9520e0ea7c67 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -1037,7 +1037,8 @@ class _VersionAction(Action): version = parser.version formatter = parser._get_formatter() formatter.add_text(version) - parser.exit(message=formatter.format_help()) + parser._print_message(formatter.format_help(), _sys.stdout) + parser.exit() class _SubParsersAction(Action): diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index 00cde2ed5cc9..c10c5909bf3e 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -4359,7 +4359,7 @@ class TestOptionalsHelpVersionActions(TestCase): def test_version_format(self): parser = ErrorRaisingArgumentParser(prog='PPP') parser.add_argument('-v', '--version', action='version', version='%(prog)s 3.5') - msg = self._get_error(parser.parse_args, ['-v']).stderr + msg = self._get_error(parser.parse_args, ['-v']).stdout self.assertEqual('PPP 3.5\n', msg) def test_version_no_help(self): @@ -4372,7 +4372,7 @@ class TestOptionalsHelpVersionActions(TestCase): def test_version_action(self): parser = ErrorRaisingArgumentParser(prog='XXX') parser.add_argument('-V', action='version', version='%(prog)s 3.7') - msg = self._get_error(parser.parse_args, ['-V']).stderr + msg = self._get_error(parser.parse_args, ['-V']).stdout self.assertEqual('XXX 3.7\n', msg) def test_no_help(self): diff --git a/Misc/NEWS b/Misc/NEWS index c69110f1f827..67788c911eb2 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -193,6 +193,9 @@ Library existing directory caused mkstemp and related APIs to fail instead of retrying. Report and fix by Vlad Shcherbina. +- Issue #18920: argparse's default destination for the version action (-v, + --version) has also been changed to stdout, to match the Python executable. + Tests -----